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;
}
/// <summary>Enumerates all light entities currently registered (at runtime) in Home Assistant as LightEntity</summary>
public IEnumerable<LightEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("light.")).Select(e => new LightEntity(e));
///<summary>M5Stack Atom Echo 31196c </summary>
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;
}
/// <summary>Enumerates all media_player entities currently registered (at runtime) in Home Assistant as MediaPlayerEntity</summary>
public IEnumerable<MediaPlayerEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("media_player.")).Select(e => new MediaPlayerEntity(e));
public AssistSatelliteEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all assist_satellite entities currently registered (at runtime) in Home Assistant as AssistSatelliteEntity</summary>
public IEnumerable<AssistSatelliteEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("assist_satellite.")).Select(e => new AssistSatelliteEntity(e));
///<summary>M5Stack Atom Echo 31196c Assist satellite</summary>
public AssistSatelliteEntity M5stackAtomEcho31196cAssistSatellite => new(_haContext, "assist_satellite.m5stack_atom_echo_31196c_assist_satellite");
/// <summary>Enumerates all automation entities currently registered (at runtime) in Home Assistant as AutomationEntity</summary>
public IEnumerable<AutomationEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("automation.")).Select(e => new AutomationEntity(e));
///<summary>Assist - TimerFinished</summary>
public AutomationEntity AssistTimerfinished => new(_haContext, "automation.assist_timerfinished");
///<summary>Assist - TimerReached</summary>
public AutomationEntity AssistTimerreached => new(_haContext, "automation.assist_timerreached");
///<summary>Turn On UE</summary>
public AutomationEntity TurnOnUe => new(_haContext, "automation.turn_on_ue");
}
public partial class BinarySensorEntities
{
private readonly IHaContext _haContext;
public BinarySensorEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all binary_sensor entities currently registered (at runtime) in Home Assistant as BinarySensorEntity</summary>
public IEnumerable<BinarySensorEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("binary_sensor.")).Select(e => new BinarySensorEntity(e));
///<summary>CODA-4680-FIZ WAN status</summary>
public BinarySensorEntity Coda4680FizWanStatus => new(_haContext, "binary_sensor.coda_4680_fiz_wan_status");
///<summary>M5Stack Atom Echo 31196c Button</summary>
public BinarySensorEntity M5stackAtomEcho131196cButton => new(_haContext, "binary_sensor.m5stack_atom_echo_1_31196c_button");
///<summary>Pixel 8 Bluetooth state</summary>
public BinarySensorEntity Pixel8BluetoothState => new(_haContext, "binary_sensor.pixel_8_bluetooth_state");
///<summary>Pixel 8 Headphones</summary>
public BinarySensorEntity Pixel8Headphones => new(_haContext, "binary_sensor.pixel_8_headphones");
///<summary>Pixel 8 Hotspot state</summary>
public BinarySensorEntity Pixel8HotspotState => new(_haContext, "binary_sensor.pixel_8_hotspot_state");
///<summary>Pixel 8 Is charging</summary>
public BinarySensorEntity Pixel8IsCharging => new(_haContext, "binary_sensor.pixel_8_is_charging");
///<summary>Pixel 8 Mic muted</summary>
public BinarySensorEntity Pixel8MicMuted => new(_haContext, "binary_sensor.pixel_8_mic_muted");
///<summary>Pixel 8 Mobile data</summary>
public BinarySensorEntity Pixel8MobileData => new(_haContext, "binary_sensor.pixel_8_mobile_data");
///<summary>Pixel 8 Mobile data roaming</summary>
public BinarySensorEntity Pixel8MobileDataRoaming => new(_haContext, "binary_sensor.pixel_8_mobile_data_roaming");
///<summary>Pixel 8 Music active</summary>
public BinarySensorEntity Pixel8MusicActive => new(_haContext, "binary_sensor.pixel_8_music_active");
///<summary>Pixel 8 NFC state</summary>
public BinarySensorEntity Pixel8NfcState => new(_haContext, "binary_sensor.pixel_8_nfc_state");
///<summary>Pixel 8 Speakerphone</summary>
public BinarySensorEntity Pixel8Speakerphone => new(_haContext, "binary_sensor.pixel_8_speakerphone");
///<summary>Pixel 8 WiFi state</summary>
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;
}
/// <summary>Enumerates all button entities currently registered (at runtime) in Home Assistant as ButtonEntity</summary>
public IEnumerable<ButtonEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("button.")).Select(e => new ButtonEntity(e));
///<summary>M5Stack Atom Echo 31196c Factory reset</summary>
public ButtonEntity M5stackAtomEcho131196cFactoryReset => new(_haContext, "button.m5stack_atom_echo_1_31196c_factory_reset");
///<summary>M5Stack Atom Echo 31196c Safe Mode Boot</summary>
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;
}
/// <summary>Enumerates all calendar entities currently registered (at runtime) in Home Assistant as CalendarEntity</summary>
public IEnumerable<CalendarEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("calendar.")).Select(e => new CalendarEntity(e));
///<summary>Canada, QC</summary>
public CalendarEntity CanadaQc => new(_haContext, "calendar.canada_qc");
///<summary>Contact birthdays</summary>
public CalendarEntity ContactBirthdays => new(_haContext, "calendar.contact_birthdays");
///<summary>Personal</summary>
public CalendarEntity Personal => new(_haContext, "calendar.personal");
}
public partial class ConversationEntities
{
private readonly IHaContext _haContext;
public ConversationEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all conversation entities currently registered (at runtime) in Home Assistant as ConversationEntity</summary>
public IEnumerable<ConversationEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("conversation.")).Select(e => new ConversationEntity(e));
public ConversationEntity HomeAssistant => new(_haContext, "conversation.home_assistant");
}
public partial class DeviceTrackerEntities
{
private readonly IHaContext _haContext;
public DeviceTrackerEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all device_tracker entities currently registered (at runtime) in Home Assistant as DeviceTrackerEntity</summary>
public IEnumerable<DeviceTrackerEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("device_tracker.")).Select(e => new DeviceTrackerEntity(e));
/// <summary>Enumerates all input_boolean entities currently registered (at runtime) in Home Assistant as InputBooleanEntity</summary>
public IEnumerable<InputBooleanEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("input_boolean.")).Select(e => new InputBooleanEntity(e));
/// <summary>Enumerates all input_text entities currently registered (at runtime) in Home Assistant as InputTextEntity</summary>
public IEnumerable<InputTextEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("input_text.")).Select(e => new InputTextEntity(e));
///<summary>Assist - Timer 1 Location</summary>
public InputTextEntity AssistTimer1Location => new(_haContext, "input_text.assist_timer1_location");
///<summary>Assist - Timer 2 Location</summary>
public InputTextEntity AssistTimer2Location => new(_haContext, "input_text.assist_timer2_location");
///<summary>Assist - Timer 3 Location</summary>
public InputTextEntity AssistTimer3Location => new(_haContext, "input_text.assist_timer3_location");
}
public partial class LockEntities
{
private readonly IHaContext _haContext;
public LockEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all lock entities currently registered (at runtime) in Home Assistant as LockEntity</summary>
public IEnumerable<LockEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("lock.")).Select(e => new LockEntity(e));
public LockEntity Smartplug1ChildLock => new(_haContext, "lock.smartplug_1_child_lock");
///<summary>Smartplug2 Child lock</summary>
public LockEntity Smartplug2ChildLock => new(_haContext, "lock.smartplug2_child_lock");
///<summary>Smartplug3 Child lock</summary>
public LockEntity Smartplug3ChildLock => new(_haContext, "lock.smartplug3_child_lock");
}
public partial class NumberEntities
{
private readonly IHaContext _haContext;
public NumberEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all number entities currently registered (at runtime) in Home Assistant as NumberEntity</summary>
public IEnumerable<NumberEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("number.")).Select(e => new NumberEntity(e));
public NumberEntity Smartplug1Timer => new(_haContext, "number.smartplug_1_timer");
///<summary>Smartplug2 Timer</summary>
public NumberEntity Smartplug2Timer => new(_haContext, "number.smartplug2_timer");
///<summary>Smartplug3 Timer</summary>
public NumberEntity Smartplug3Timer => new(_haContext, "number.smartplug3_timer");
}
public partial class PersonEntities
{
private readonly IHaContext _haContext;
public PersonEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all person entities currently registered (at runtime) in Home Assistant as PersonEntity</summary>
public IEnumerable<PersonEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("person.")).Select(e => new PersonEntity(e));
/// <summary>Enumerates all remote entities currently registered (at runtime) in Home Assistant as RemoteEntity</summary>
public IEnumerable<RemoteEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("remote.")).Select(e => new RemoteEntity(e));
public RemoteEntity Onn4kStreamingBox => new(_haContext, "remote.onn_4k_streaming_box");
}
public partial class ScriptEntities
{
private readonly IHaContext _haContext;
public ScriptEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all script entities currently registered (at runtime) in Home Assistant as ScriptEntity</summary>
public IEnumerable<ScriptEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("script.")).Select(e => new ScriptEntity(e));
///<summary>Assist - TimerPause</summary>
public ScriptEntity AssistTimerpause => new(_haContext, "script.assist_timerpause");
///<summary>Assist - TimerStart</summary>
public ScriptEntity AssistTimerstart => new(_haContext, "script.assist_timerstart");
///<summary>Assist - TimerStop</summary>
public ScriptEntity AssistTimerstop => new(_haContext, "script.assist_timerstop");
///<summary>Music - TurnOnUE</summary>
public ScriptEntity TurnOnUe => new(_haContext, "script.turn_on_ue");
}
public partial class SelectEntities
{
private readonly IHaContext _haContext;
public SelectEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all select entities currently registered (at runtime) in Home Assistant as SelectEntity</summary>
public IEnumerable<SelectEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("select.")).Select(e => new SelectEntity(e));
public SelectEntity Smartplug1LightMode => new(_haContext, "select.smartplug_1_light_mode");
///<summary>Smartplug2 Initial state</summary>
public SelectEntity Smartplug2InitialState => new(_haContext, "select.smartplug2_initial_state");
///<summary>Smartplug2 Light mode</summary>
public SelectEntity Smartplug2LightMode => new(_haContext, "select.smartplug2_light_mode");
///<summary>Smartplug3 Initial state</summary>
public SelectEntity Smartplug3InitialState => new(_haContext, "select.smartplug3_initial_state");
///<summary>Smartplug3 Light mode</summary>
public SelectEntity Smartplug3LightMode => new(_haContext, "select.smartplug3_light_mode");
}
public partial class SensorEntities
{
private readonly IHaContext _haContext;
public SensorEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all sensor entities currently registered (at runtime) in Home Assistant as SensorEntity</summary>
public IEnumerable<SensorEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.")).Select(e => new SensorEntity(e));
/// <summary>Enumerates all non-numeric sensor entities currently registered (at runtime) in Home Assistant as SensorEntity</summary>
public IEnumerable<SensorEntity> EnumerateAllNonNumeric() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.") && !(e.EntityState?.AttributesJson?.TryGetProperty("unit_of_measurement", out _) ?? false)).Select(e => new SensorEntity(e));
/// <summary>Enumerates all numeric sensor entities currently registered (at runtime) in Home Assistant as NumericSensorEntity</summary>
public IEnumerable<NumericSensorEntity> EnumerateAllNumeric() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.") && (e.EntityState?.AttributesJson?.TryGetProperty("unit_of_measurement", out _) ?? false)).Select(e => new NumericSensorEntity(e));
///<summary>CODA-4680-FIZ External IP</summary>
public SensorEntity Coda4680FizExternalIp => new(_haContext, "sensor.coda_4680_fiz_external_ip");
/// <summary>Enumerates all stt entities currently registered (at runtime) in Home Assistant as SttEntity</summary>
public IEnumerable<SttEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("stt.")).Select(e => new SttEntity(e));
///<summary>faster-whisper</summary>
public SttEntity FasterWhisper => new(_haContext, "stt.faster_whisper");
}
public partial class SunEntities
{
private readonly IHaContext _haContext;
public SunEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all sun entities currently registered (at runtime) in Home Assistant as SunEntity</summary>
public IEnumerable<SunEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sun.")).Select(e => new SunEntity(e));
///<summary>Sun</summary>
public SunEntity Sun => new(_haContext, "sun.sun");
}
public partial class SwitchEntities
{
private readonly IHaContext _haContext;
public SwitchEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all switch entities currently registered (at runtime) in Home Assistant as SwitchEntity</summary>
public IEnumerable<SwitchEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("switch.")).Select(e => new SwitchEntity(e));
///<summary>M5Stack Atom Echo 31196c Use listen light</summary>
public SwitchEntity M5stackAtomEcho131196cUseListenLight => new(_haContext, "switch.m5stack_atom_echo_1_31196c_use_listen_light");
///<summary>M5Stack Atom Echo 31196c Use wake word</summary>
public SwitchEntity M5stackAtomEcho31196cUseWakeWord => new(_haContext, "switch.m5stack_atom_echo_31196c_use_wake_word");
///<summary>Salon Lamp</summary>
public SwitchEntity Smartplug1 => new(_haContext, "switch.smartplug1");
public SwitchEntity Smartplug3 => new(_haContext, "switch.smartplug3");
}
public partial class TimerEntities
{
private readonly IHaContext _haContext;
public TimerEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all timer entities currently registered (at runtime) in Home Assistant as TimerEntity</summary>
public IEnumerable<TimerEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("timer.")).Select(e => new TimerEntity(e));
///<summary>Assist - Timer 1</summary>
public TimerEntity AssistTimer1 => new(_haContext, "timer.assist_timer1");
///<summary>Assist - Timer 2</summary>
public TimerEntity AssistTimer2 => new(_haContext, "timer.assist_timer2");
///<summary>Assist - Timer 3</summary>
public TimerEntity AssistTimer3 => new(_haContext, "timer.assist_timer3");
}
public partial class TodoEntities
{
private readonly IHaContext _haContext;
public TodoEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all todo entities currently registered (at runtime) in Home Assistant as TodoEntity</summary>
public IEnumerable<TodoEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("todo.")).Select(e => new TodoEntity(e));
///<summary>Shopping List</summary>
public TodoEntity ShoppingList => new(_haContext, "todo.shopping_list");
}
public partial class TtsEntities
{
private readonly IHaContext _haContext;
public TtsEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all tts entities currently registered (at runtime) in Home Assistant as TtsEntity</summary>
public IEnumerable<TtsEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("tts.")).Select(e => new TtsEntity(e));
///<summary>piper</summary>
public TtsEntity Piper => new(_haContext, "tts.piper");
}
public partial class WakeWordEntities
{
private readonly IHaContext _haContext;
public WakeWordEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all wake_word entities currently registered (at runtime) in Home Assistant as WakeWordEntity</summary>
public IEnumerable<WakeWordEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("wake_word.")).Select(e => new WakeWordEntity(e));
///<summary>openwakeword</summary>
public WakeWordEntity Openwakeword => new(_haContext, "wake_word.openwakeword");
}
public partial class WeatherEntities
{
private readonly IHaContext _haContext;
public WeatherEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all weather entities currently registered (at runtime) in Home Assistant as WeatherEntity</summary>
public IEnumerable<WeatherEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("weather.")).Select(e => new WeatherEntity(e));
///<summary>Forecast Home</summary>
public WeatherEntity ForecastHome => new(_haContext, "weather.forecast_home");
}
public partial class ZoneEntities
{
private readonly IHaContext _haContext;
public ZoneEntities(IHaContext haContext)
{
_haContext = haContext;
}
/// <summary>Enumerates all zone entities currently registered (at runtime) in Home Assistant as ZoneEntity</summary>
public IEnumerable<ZoneEntity> EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("zone.")).Select(e => new ZoneEntity(e));
///<summary>Home</summary>
public ZoneEntity Home => new(_haContext, "zone.home");
}
public partial record LightEntity : Entity<LightEntity, EntityState<LightAttributes>, 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<string>? 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<double>? HsColor { get; init; }
[JsonPropertyName("rgb_color")]
public IReadOnlyList<double>? RgbColor { get; init; }
[JsonPropertyName("xy_color")]
public IReadOnlyList<double>? XyColor { get; init; }
[JsonPropertyName("entity_id")]
public IReadOnlyList<string>? EntityId { get; init; }
[JsonPropertyName("effect_list")]
public IReadOnlyList<string>? EffectList { get; init; }
public partial record AutomationEntity : Entity<AutomationEntity, EntityState<AutomationAttributes>, 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<BinarySensorEntity, EntityState<BinarySensorAttributes>, 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<ButtonEntity, EntityState<ButtonAttributes>, 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<CalendarEntity, EntityState<CalendarAttributes>, 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<ConversationEntity, EntityState<ConversationAttributes>, 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<DeviceTrackerEntity, EntityState<DeviceTrackerAttributes>, DeviceTrackerAttributes>, IDeviceTrackerEntityCore
{
public DeviceTrackerEntity(IHaContext haContext, string entityId) : base(haContext, entityId)
{
}
public DeviceTrackerEntity(IEntityCore entity) : base(entity)
public partial record InputBooleanEntity : Entity<InputBooleanEntity, EntityState<InputBooleanAttributes>, 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<InputTextEntity, EntityState<InputTextAttributes>, 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<LockEntity, EntityState<LockAttributes>, 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<NumberEntity, NumericEntityState<NumberAttributes>, 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<PersonEntity, EntityState<PersonAttributes>, 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<string>? DeviceTrackers { get; init; }
public partial record NumericSensorEntity : NumericEntity<NumericSensorEntity, NumericEntityState<NumericSensorAttributes>, NumericSensorAttributes>, ISensorEntityCore
{
public NumericSensorEntity(IHaContext haContext, string entityId) : base(haContext, entityId)
{
}
public NumericSensorEntity(IEntityCore entity) : base(entity)
///<summary>Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action.</summary>
///<param name="target">The target for this service call</param>
public void LearnSendevent(ServiceTarget target, object? data = null)
///<param name="summary">Defines the short summary or subject for the event. eg: Department Party</param>
///<param name="description">A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design.</param>
///<param name="startDateTime">The date and time the event should start. eg: 2022-03-22 20:00:00</param>
///<param name="endDateTime">The date and time the event should end. eg: 2022-03-22 22:00:00</param>
///<param name="startDate">The date the all-day event should start. eg: 2022-03-22</param>
///<param name="endDate">The date the all-day event should end (exclusive). eg: 2022-03-23</param>
///<param name="in">Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2}</param>
///<param name="location">The location of the event. eg: Conference Room - F123, Bldg. 002</param>
public partial record CalendarCreateEventParameters
{
///<summary>Defines the short summary or subject for the event. eg: Department Party</summary>
[JsonPropertyName("summary")]
public string? Summary { get; init; }
///<summary>A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design.</summary>
[JsonPropertyName("description")]
public string? Description { get; init; }
///<summary>The date and time the event should start. eg: 2022-03-22 20:00:00</summary>
[JsonPropertyName("start_date_time")]
public DateTime? StartDateTime { get; init; }
///<summary>The date and time the event should end. eg: 2022-03-22 22:00:00</summary>
[JsonPropertyName("end_date_time")]
public DateTime? EndDateTime { get; init; }
///<summary>The date the all-day event should start. eg: 2022-03-22</summary>
[JsonPropertyName("start_date")]
public DateOnly? StartDate { get; init; }
///<summary>The date the all-day event should end (exclusive). eg: 2022-03-23</summary>
[JsonPropertyName("end_date")]
public DateOnly? EndDate { get; init; }
///<summary>Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2}</summary>
[JsonPropertyName("in")]
public object? In { get; init; }
///<summary>The location of the event. eg: Conference Room - F123, Bldg. 002</summary>
[JsonPropertyName("location")]
public string? Location { get; init; }
}
public partial record CalendarGetEventsParameters
{
///<summary>Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00</summary>
///<summary>Launches a conversation from a transcribed text.</summary>
///<param name="text">Transcribed text input. eg: Turn all lights on</param>
///<param name="language">Language of text. Defaults to server language. eg: NL</param>
///<param name="agentId">Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant</param>
///<param name="conversationId">ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1</param>
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 });
}
///<summary>Launches a conversation from a transcribed text.</summary>
public Task<JsonElement?> ProcessAsync(ConversationProcessParameters data)
///<summary>Launches a conversation from a transcribed text.</summary>
///<param name="text">Transcribed text input. eg: Turn all lights on</param>
///<param name="language">Language of text. Defaults to server language. eg: NL</param>
///<param name="agentId">Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant</param>
///<param name="conversationId">ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1</param>
public Task<JsonElement?> 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 });
}
///<summary>Reloads the intent configuration.</summary>
public void Reload(ConversationReloadParameters data)
///<summary>Reloads the intent configuration.</summary>
///<param name="language">Language to clear cached intents for. Defaults to server language. eg: NL</param>
///<param name="agentId">Conversation agent to reload. eg: homeassistant</param>
public void Reload(string? language = null, object? agentId = null)
{
_haContext.CallService("conversation", "reload", null, new ConversationReloadParameters { Language = language, AgentId = agentId });
}
}
public partial record ConversationProcessParameters
{
///<summary>Transcribed text input. eg: Turn all lights on</summary>
[JsonPropertyName("text")]
public string? Text { get; init; }
///<summary>Language of text. Defaults to server language. eg: NL</summary>
[JsonPropertyName("language")]
public string? Language { get; init; }
///<summary>Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant</summary>
[JsonPropertyName("agent_id")]
public object? AgentId { get; init; }
///<summary>ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1</summary>
[JsonPropertyName("conversation_id")]
public string? ConversationId { get; init; }
}
public partial record ConversationReloadParameters
{
///<summary>Language to clear cached intents for. Defaults to server language. eg: NL</summary>
[JsonPropertyName("language")]
public string? Language { get; init; }
///<summary>Conversation agent to reload. eg: homeassistant</summary>
[JsonPropertyName("agent_id")]
public object? AgentId { get; init; }
}
public partial class CounterServices
{
private readonly IHaContext _haContext;
public CounterServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Decrements a counter.</summary>
///<param name="target">The target for this service call</param>
public void Decrement(ServiceTarget target, object? data = null)
///<param name="mac">MAC address of the device. eg: FF:FF:FF:FF:FF:FF</param>
///<param name="devId">ID of the device (find the ID in `known_devices.yaml`). eg: phonedave</param>
///<param name="hostName">Hostname of the device. eg: Dave</param>
///<param name="locationName">Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone. eg: home</param>
///<param name="gps">GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539]). eg: [51.509802, -0.086692]</param>
///<param name="gpsAccuracy">Accuracy of the GPS coordinates.</param>
///<param name="battery">Battery level of the device.</param>
///<summary>MAC address of the device. eg: FF:FF:FF:FF:FF:FF</summary>
[JsonPropertyName("mac")]
public string? Mac { get; init; }
///<summary>ID of the device (find the ID in `known_devices.yaml`). eg: phonedave</summary>
[JsonPropertyName("dev_id")]
public string? DevId { get; init; }
///<summary>Hostname of the device. eg: Dave</summary>
[JsonPropertyName("host_name")]
public string? HostName { get; init; }
///<summary>Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone. eg: home</summary>
[JsonPropertyName("location_name")]
public string? LocationName { get; init; }
///<summary>GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539]). eg: [51.509802, -0.086692]</summary>
[JsonPropertyName("gps")]
public object? Gps { get; init; }
///<summary>Accuracy of the GPS coordinates.</summary>
[JsonPropertyName("gps_accuracy")]
public double? GpsAccuracy { get; init; }
///<summary>Battery level of the device.</summary>
[JsonPropertyName("battery")]
public double? Battery { get; init; }
}
public partial class ExtendedOllamaConversationServices
{
private readonly IHaContext _haContext;
public ExtendedOllamaConversationServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Take in images and answer questions about them</summary>
public void QueryImage(ExtendedOllamaConversationQueryImageParameters data)
///<summary>Take in images and answer questions about them</summary>
///<param name="configEntry">The config entry to use for this service</param>
///<param name="model">The model eg: gpt-4-vision-preview</param>
///<param name="prompt">The text to ask about image eg: What’s in this image?</param>
///<param name="images">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"}</param>
///<param name="maxTokens">The maximum tokens eg: 300</param>
public void QueryImage(object configEntry, string prompt, object images, string? model = null, double? maxTokens = null)
///<summary>Take in images and answer questions about them</summary>
///<param name="configEntry">The config entry to use for this service</param>
///<param name="model">The model eg: gpt-4-vision-preview</param>
///<param name="prompt">The text to ask about image eg: What’s in this image?</param>
///<param name="images">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"}</param>
///<param name="maxTokens">The maximum tokens eg: 300</param>
public Task<JsonElement?> QueryImageAsync(object configEntry, string prompt, object images, string? model = null, double? maxTokens = null)
public partial record ExtendedOllamaConversationQueryImageParameters
{
///<summary>The config entry to use for this service</summary>
[JsonPropertyName("config_entry")]
public object? ConfigEntry { get; init; }
///<summary>The model eg: gpt-4-vision-preview</summary>
[JsonPropertyName("model")]
public string? Model { get; init; }
///<summary>The text to ask about image eg: What’s in this image?</summary>
[JsonPropertyName("prompt")]
public string? Prompt { get; init; }
///<summary>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"}</summary>
[JsonPropertyName("images")]
public object? Images { get; init; }
///<summary>The maximum tokens eg: 300</summary>
[JsonPropertyName("max_tokens")]
public double? MaxTokens { get; init; }
}
public partial class FfmpegServices
{
private readonly IHaContext _haContext;
public FfmpegServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Sends a restart command to a ffmpeg based sensor.</summary>
///<summary>Reloads Jinja2 templates found in the `custom_templates` folder in your config. New values will be applied on the next render of the template.</summary>
public void ReloadCustomTemplates(object? data = null)
///<param name="datetime">The target date & time. eg: "2019-04-20 05:04:20"</param>
///<param name="timestamp">The target date & time, expressed by a UNIX timestamp.</param>
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
///<summary>Toggles one or more lights, from on to off, or, off to on, based on their current state.</summary>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<summary>Turn on one or more lights and adjust properties of the light, even when they are turned on already.</summary>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<param name="brightnessStepPct">Change brightness by a percentage.</param>
///<summary>Duration it takes to get to next state.</summary>
[JsonPropertyName("transition")]
public double? Transition { get; init; }
///<summary>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]</summary>
[JsonPropertyName("rgb_color")]
public IReadOnlyCollection<int>? RgbColor { get; init; }
///<summary>Color temperature in Kelvin.</summary>
[JsonPropertyName("kelvin")]
public object? Kelvin { get; init; }
///<summary>Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</summary>
///<summary>Duration it takes to get to next state.</summary>
[JsonPropertyName("transition")]
public double? Transition { get; init; }
[JsonPropertyName("flash")]
public object? Flash { get; init; }
}
public partial record LightTurnOnParameters
{
///<summary>Duration it takes to get to next state.</summary>
[JsonPropertyName("transition")]
public double? Transition { get; init; }
///<summary>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]</summary>
[JsonPropertyName("rgb_color")]
public IReadOnlyCollection<int>? RgbColor { get; init; }
///<summary>Color temperature in Kelvin.</summary>
[JsonPropertyName("kelvin")]
public object? Kelvin { get; init; }
///<summary>Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</summary>
[JsonPropertyName("brightness_pct")]
public double? BrightnessPct { get; init; }
///<summary>Change brightness by a percentage.</summary>
///<summary>Creates a custom entry in the logbook.</summary>
///<param name="name">Custom name for an entity, can be referenced using an `entity_id`. eg: Kitchen</param>
///<param name="message">Message of the logbook entry. eg: is being used</param>
///<param name="entityId">Entity to reference in the logbook entry.</param>
///<param name="domain">Determines which icon is used in the logbook entry. The icon illustrates the integration domain related to this logbook entry. eg: light</param>
_haContext.CallService("logbook", "log", null, new LogbookLogParameters { Name = name, Message = message, EntityId = entityId, Domain = domain });
}
}
public partial record LogbookLogParameters
{
///<summary>Custom name for an entity, can be referenced using an `entity_id`. eg: Kitchen</summary>
[JsonPropertyName("name")]
public string? Name { get; init; }
///<summary>Message of the logbook entry. eg: is being used</summary>
[JsonPropertyName("message")]
public string? Message { get; init; }
///<summary>Entity to reference in the logbook entry.</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>Determines which icon is used in the logbook entry. The icon illustrates the integration domain related to this logbook entry. eg: light</summary>
[JsonPropertyName("domain")]
public string? Domain { get; init; }
}
public partial class LoggerServices
{
private readonly IHaContext _haContext;
public LoggerServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Sets the default log level for integrations.</summary>
public void SetDefaultLevel(LoggerSetDefaultLevelParameters data)
///<summary>Groups media players together for synchronous playback. Only works on supported multiroom audio systems.</summary>
///<param name="groupMembers">The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 </param>
public void Join(ServiceTarget target, IEnumerable<string> groupMembers)
{
_haContext.CallService("media_player", "join", target, new MediaPlayerJoinParameters { GroupMembers = groupMembers });
}
///<summary>Selects the next track.</summary>
///<param name="target">The target for this service call</param>
public void MediaNextTrack(ServiceTarget target, object? data = null)
///<summary>Starts playing specified media.</summary>
///<param name="mediaContentId">The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png</param>
///<param name="mediaContentType">The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music</param>
///<param name="enqueue">If the content should be played now or be added to the queue.</param>
///<param name="announce">If the media should be played as an announcement. eg: true</param>
///<summary>The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 </summary>
[JsonPropertyName("group_members")]
public IEnumerable<string>? GroupMembers { get; init; }
}
public partial record MediaPlayerMediaSeekParameters
{
///<summary>Target position in the currently playing media. The format is platform dependent.</summary>
[JsonPropertyName("seek_position")]
public double? SeekPosition { get; init; }
}
public partial record MediaPlayerPlayMediaParameters
{
///<summary>The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png</summary>
[JsonPropertyName("media_content_id")]
public string? MediaContentId { get; init; }
///<summary>The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music</summary>
[JsonPropertyName("media_content_type")]
public string? MediaContentType { get; init; }
///<summary>If the content should be played now or be added to the queue.</summary>
[JsonPropertyName("enqueue")]
public object? Enqueue { get; init; }
///<summary>If the media should be played as an announcement. eg: true</summary>
[JsonPropertyName("announce")]
public bool? Announce { get; init; }
}
public partial record MediaPlayerRepeatSetParameters
{
///<summary>Repeat mode to set.</summary>
[JsonPropertyName("repeat")]
public object? Repeat { get; init; }
}
public partial record MediaPlayerSelectSoundModeParameters
{
///<summary>Name of the sound mode to switch to. eg: Music</summary>
[JsonPropertyName("sound_mode")]
public string? SoundMode { get; init; }
}
public partial record MediaPlayerSelectSourceParameters
{
///<summary>Name of the source to switch to. Platform dependent. eg: video1</summary>
[JsonPropertyName("source")]
public string? Source { get; init; }
}
public partial record MediaPlayerShuffleSetParameters
{
///<summary>Whether or not shuffle mode is enabled.</summary>
[JsonPropertyName("shuffle")]
public bool? Shuffle { get; init; }
}
public partial record MediaPlayerVolumeMuteParameters
{
///<summary>Defines whether or not it is muted.</summary>
[JsonPropertyName("is_volume_muted")]
public bool? IsVolumeMuted { get; init; }
}
public partial record MediaPlayerVolumeSetParameters
{
///<summary>The volume. 0 is inaudible, 1 is the maximum volume.</summary>
[JsonPropertyName("volume_level")]
public double? VolumeLevel { get; init; }
}
public partial class NetdaemonServices
{
private readonly IHaContext _haContext;
public NetdaemonServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Create an entity</summary>
public void EntityCreate(NetdaemonEntityCreateParameters data)
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 });
public void MobileAppZFlip6(string message, string? title = null, object? target = null, object? data = null)
{
_haContext.CallService("notify", "mobile_app_z_flip_6", null, new NotifyMobileAppZFlip6Parameters { Message = message, Title = title, Target = target, Data = data });
///<summary>Sends a notification that is visible in the notifications panel.</summary>
///<param name="message">Message body of the notification. eg: The garage door has been open for 10 minutes.</param>
///<param name="title">Title of the notification. eg: Your Garage Door Friend</param>
///<param name="data">Some integrations provide extended functionality. For information on how to use _data_, refer to the integration documentation.. eg: platform specific</param>
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 });
}
///<summary>Sends a notification message.</summary>
///<param name="target">The target for this service call</param>
public void SendMessage(ServiceTarget target, NotifySendMessageParameters data)
///<summary> eg: The garage door has been open for 10 minutes.</summary>
[JsonPropertyName("message")]
public string? Message { get; init; }
///<summary> eg: Your Garage Door Friend</summary>
[JsonPropertyName("title")]
public string? Title { get; init; }
///<summary> eg: platform specific</summary>
[JsonPropertyName("target")]
public object? Target { get; init; }
///<summary> eg: platform specific</summary>
[JsonPropertyName("data")]
public object? Data { get; init; }
}
public partial record NotifyPersistentNotificationParameters
{
///<summary>Message body of the notification. eg: The garage door has been open for 10 minutes.</summary>
[JsonPropertyName("message")]
public string? Message { get; init; }
///<summary>Title of the notification. eg: Your Garage Door Friend</summary>
[JsonPropertyName("title")]
public string? Title { get; init; }
///<summary>Some integrations provide extended functionality. For information on how to use _data_, refer to the integration documentation.. eg: platform specific</summary>
[JsonPropertyName("data")]
public object? Data { get; init; }
}
public partial record NotifySendMessageParameters
{
///<summary>Your notification message.</summary>
[JsonPropertyName("message")]
public string? Message { get; init; }
///<summary>Title for your notification message.</summary>
[JsonPropertyName("title")]
public string? Title { get; init; }
}
public partial class NumberServices
{
private readonly IHaContext _haContext;
public NumberServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Sets the value of a number.</summary>
///<param name="target">The target for this service call</param>
public void SetValue(ServiceTarget target, NumberSetValueParameters data)
///<summary>Shows a notification on the notifications panel.</summary>
///<param name="message">Message body of the notification. eg: Please check your configuration.yaml.</param>
///<param name="title">Optional title of the notification. eg: Test notification</param>
///<param name="notificationId">ID of the notification. This new notification will overwrite an existing notification with the same ID. eg: 1234</param>
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 });
}
///<summary>Removes a notification from the notifications panel.</summary>
public void Dismiss(PersistentNotificationDismissParameters data)
///<summary>Starts purge task - to clean up old data from your database.</summary>
///<param name="keepDays">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.</param>
///<param name="repack">Attempt to save disk space by rewriting the entire database file.</param>
///<param name="applyFilter">Apply `entity_id` and `event_type` filters in addition to time-based purge.</param>
///<summary>Starts a purge task to remove the data related to specific entities from your database.</summary>
///<param name="entityId">List of entities for which the data is to be removed from the recorder database.</param>
///<param name="domains">List of domains for which the data needs to be removed from the recorder database. eg: sun</param>
///<param name="entityGlobs">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*</param>
///<param name="keepDays">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.</param>
///<summary>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.</summary>
[JsonPropertyName("keep_days")]
public double? KeepDays { get; init; }
///<summary>Attempt to save disk space by rewriting the entire database file.</summary>
[JsonPropertyName("repack")]
public bool? Repack { get; init; }
///<summary>Apply `entity_id` and `event_type` filters in addition to time-based purge.</summary>
[JsonPropertyName("apply_filter")]
public bool? ApplyFilter { get; init; }
}
public partial record RecorderPurgeEntitiesParameters
{
///<summary>List of entities for which the data is to be removed from the recorder database.</summary>
[JsonPropertyName("entity_id")]
public IEnumerable<string>? EntityId { get; init; }
///<summary>List of domains for which the data needs to be removed from the recorder database. eg: sun</summary>
[JsonPropertyName("domains")]
public object? Domains { get; init; }
///<summary>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*</summary>
[JsonPropertyName("entity_globs")]
public object? EntityGlobs { get; init; }
///<summary>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.</summary>
///<summary>Learns a command or a list of commands from a device.</summary>
///<param name="device">Device ID to learn command from. eg: television</param>
///<param name="command">A single command or a list of commands to learn. eg: Turn on</param>
///<param name="commandType">The type of command to be learned.</param>
///<param name="alternative">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.</param>
///<param name="timeout">Timeout for the command to be learned.</param>
///<param name="activity">Activity ID or activity name to be started. eg: BedroomTV</param>
public void TurnOn(ServiceTarget target, string? activity = null)
{
_haContext.CallService("remote", "turn_on", target, new RemoteTurnOnParameters { Activity = activity });
}
}
public partial record RemoteDeleteCommandParameters
{
///<summary>Device from which commands will be deleted. eg: television</summary>
[JsonPropertyName("device")]
public string? Device { get; init; }
///<summary>The single command or the list of commands to be deleted. eg: Mute</summary>
[JsonPropertyName("command")]
public object? Command { get; init; }
}
public partial record RemoteLearnCommandParameters
{
///<summary>Device ID to learn command from. eg: television</summary>
[JsonPropertyName("device")]
public string? Device { get; init; }
///<summary>A single command or a list of commands to learn. eg: Turn on</summary>
[JsonPropertyName("command")]
public object? Command { get; init; }
///<summary>The type of command to be learned.</summary>
[JsonPropertyName("command_type")]
public object? CommandType { get; init; }
///<summary>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.</summary>
[JsonPropertyName("alternative")]
public bool? Alternative { get; init; }
///<summary>Timeout for the command to be learned.</summary>
[JsonPropertyName("timeout")]
public long? Timeout { get; init; }
}
public partial record RemoteSendCommandParameters
{
///<summary>Device ID to send command to. eg: 32756745</summary>
[JsonPropertyName("device")]
public string? Device { get; init; }
///<summary>A single command or a list of commands to send. eg: Play</summary>
[JsonPropertyName("command")]
public object? Command { get; init; }
///<summary>The number of times you want to repeat the commands.</summary>
[JsonPropertyName("num_repeats")]
public double? NumRepeats { get; init; }
///<summary>The time you want to wait in between repeated commands.</summary>
[JsonPropertyName("delay_secs")]
public double? DelaySecs { get; init; }
///<summary>The time you want to have it held before the release is send.</summary>
[JsonPropertyName("hold_secs")]
public double? HoldSecs { get; init; }
}
public partial record RemoteTurnOnParameters
{
///<summary>Activity ID or activity name to be started. eg: BedroomTV</summary>
///<param name="sceneId">The entity ID of the new scene. eg: all_lights</param>
///<param name="entities">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 </param>
///<param name="snapshotEntities">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 </param>
///<param name="transition">Time it takes the devices to transition into the states defined in the scene.</param>
public void TurnOn(ServiceTarget target, double? transition = null)
{
_haContext.CallService("scene", "turn_on", target, new SceneTurnOnParameters { Transition = transition });
}
}
public partial record SceneApplyParameters
{
///<summary>List of entities and their target state. eg: light.kitchen: "on" light.ceiling: state: "on" brightness: 80 </summary>
[JsonPropertyName("entities")]
public object? Entities { get; init; }
///<summary>Time it takes the devices to transition into the states defined in the scene.</summary>
[JsonPropertyName("transition")]
public double? Transition { get; init; }
}
public partial record SceneCreateParameters
{
///<summary>The entity ID of the new scene. eg: all_lights</summary>
[JsonPropertyName("scene_id")]
public string? SceneId { get; init; }
///<summary>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 </summary>
[JsonPropertyName("entities")]
public object? Entities { get; init; }
///<summary>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 </summary>
[JsonPropertyName("snapshot_entities")]
public IEnumerable<string>? SnapshotEntities { get; init; }
}
public partial record SceneTurnOnParameters
{
///<summary>Time it takes the devices to transition into the states defined in the scene.</summary>
[JsonPropertyName("transition")]
public double? Transition { get; init; }
}
public partial class ScheduleServices
{
private readonly IHaContext _haContext;
public ScheduleServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Reloads schedules from the YAML-configuration.</summary>
///<summary>Add one or more items to the end of the user's current Spotify Player playback queue.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="uris">A list of Spotify track or episode URIs to add to the queue (spotify:track:6zd8T1PBe9JFHmuVnurdRp, spotify:track:1kWUud3vY5ij5r62zxpTRy); values can be track or episode URIs. All URIs must be of the same type - you cannot mix and match tracks and episodes. An unlimited number of items can be added in one request, but the more items the longer it will take. eg: spotify:track:6zd8T1PBe9JFHmuVnurdRp</param>
///<param name="deviceId">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</param>
///<param name="verifyDeviceId">True to verify a device id is active; otherwise, false to assume that a device id is already active. Default is True. eg: True</param>
///<param name="delay">Time delay (in seconds) to wait AFTER issuing the add request (if necessary). This delay will give the spotify web api time to process the change before another command is issued. Default is 0.15; value range is 0 - 10. eg: 0.15</param>
///<summary>Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites.</summary>
public void CheckAlbumFavorites(SpotifyplusCheckAlbumFavoritesParameters data)
///<summary>Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckAlbumFavorites(string entityId, string? ids = null)
///<summary>Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites.</summary>
public Task<JsonElement?> CheckAlbumFavoritesAsync(SpotifyplusCheckAlbumFavoritesParameters data)
///<summary>Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckAlbumFavoritesAsync(string entityId, string? ids = null)
///<summary>Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites.</summary>
public void CheckArtistsFollowing(SpotifyplusCheckArtistsFollowingParameters data)
///<summary>Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckArtistsFollowing(string entityId, string? ids = null)
///<summary>Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites.</summary>
public Task<JsonElement?> CheckArtistsFollowingAsync(SpotifyplusCheckArtistsFollowingParameters data)
///<summary>Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckArtistsFollowingAsync(string entityId, string? ids = null)
///<summary>Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites.</summary>
public void CheckAudiobookFavorites(SpotifyplusCheckAudiobookFavoritesParameters data)
///<summary>Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckAudiobookFavorites(string entityId, string? ids = null)
///<summary>Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites.</summary>
public Task<JsonElement?> CheckAudiobookFavoritesAsync(SpotifyplusCheckAudiobookFavoritesParameters data)
///<summary>Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckAudiobookFavoritesAsync(string entityId, string? ids = null)
///<summary>Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites.</summary>
public void CheckEpisodeFavorites(SpotifyplusCheckEpisodeFavoritesParameters data)
///<summary>Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckEpisodeFavorites(string entityId, string? ids = null)
///<summary>Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites.</summary>
public Task<JsonElement?> CheckEpisodeFavoritesAsync(SpotifyplusCheckEpisodeFavoritesParameters data)
///<summary>Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckEpisodeFavoritesAsync(string entityId, string? ids = null)
///<summary>Check to see if the current user is following a specified playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). eg: 3cEYpjA9oz9GiPac4AsH4n</param>
///<param name="userIds">Deprecated - must contain the current user's Spotify Username; Maximum of 1 id. Omit to default to current user name.</param>
public void CheckPlaylistFollowers(string entityId, string playlistId, string? userIds = null)
///<summary>Check to see if the current user is following a specified playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). eg: 3cEYpjA9oz9GiPac4AsH4n</param>
///<param name="userIds">Deprecated - must contain the current user's Spotify Username; Maximum of 1 id. Omit to default to current user name.</param>
public Task<JsonElement?> CheckPlaylistFollowersAsync(string entityId, string playlistId, string? userIds = null)
///<summary>Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckShowFavorites(string entityId, string? ids = null)
///<summary>Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckShowFavoritesAsync(string entityId, string? ids = null)
///<summary>Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites.</summary>
public void CheckTrackFavorites(SpotifyplusCheckTrackFavoritesParameters data)
///<summary>Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void CheckTrackFavorites(string entityId, string? ids = null)
///<summary>Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites.</summary>
public Task<JsonElement?> CheckTrackFavoritesAsync(SpotifyplusCheckTrackFavoritesParameters data)
///<summary>Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public Task<JsonElement?> CheckTrackFavoritesAsync(string entityId, string? ids = null)
///<summary>Check to see if the current user is following one or more users.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">A comma-separated list of Spotify user ID's to check (e.g. `smedjan, 7piUznRWxNyKpaPvmOSdiZ`). A maximum of 50 ID's can be specified. eg: smedjan, 7piUznRWxNyKpaPvmOSdiZ</param>
public void CheckUsersFollowing(string entityId, string ids)
///<summary>Check to see if the current user is following one or more users.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">A comma-separated list of Spotify user ID's to check (e.g. `smedjan, 7piUznRWxNyKpaPvmOSdiZ`). A maximum of 50 ID's can be specified. eg: smedjan, 7piUznRWxNyKpaPvmOSdiZ</param>
public Task<JsonElement?> CheckUsersFollowingAsync(string entityId, string ids)
///<summary>Add the current user as a follower of one or more artists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void FollowArtists(string entityId, string? ids = null)
///<summary>Add the current user as a follower of a playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n</param>
///<param name="public">If true the playlist will be included in user's public playlists, if false it will remain private. eg: True</param>
///<summary>Add the current user as a follower of one or more users.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void FollowUsers(string entityId, string ids)
///<summary>Get Spotify catalog information for a single album.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="albumId">The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information for a single album.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="albumId">The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE</param>
///<param name="market">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</param>
///<summary>Get a list of the albums saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the albums saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of new album releases featured in Spotify.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of new album releases featured in Spotify.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information about an album's tracks.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="albumId">The Spotify ID of the album (e.g. `6vc9OTcyd3hyzabCmsdnwE`). If null, the currently playing album uri id value is used; a Spotify Free or Premium account is required to correctly read the currently playing context. eg: 6vc9OTcyd3hyzabCmsdnwE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about an album's tracks.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="albumId">The Spotify ID of the album (e.g. `6vc9OTcyd3hyzabCmsdnwE`). If null, the currently playing album uri id value is used; a Spotify Free or Premium account is required to correctly read the currently playing context. eg: 6vc9OTcyd3hyzabCmsdnwE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information for a single artist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
public void GetArtist(string entityId, string? artistId = null)
///<summary>Get Spotify catalog information for a single artist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
public Task<JsonElement?> GetArtistAsync(string entityId, string? artistId = null)
///<summary>Get Spotify catalog information about an artist's albums.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="includeGroups">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information about an artist's albums.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="includeGroups">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get artist about information from the Spotify Artist Biography page for the specified Spotify artist ID.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
public void GetArtistInfo(string entityId, string? artistId = null)
///<summary>Get artist about information from the Spotify Artist Biography page for the specified Spotify artist ID.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
public Task<JsonElement?> GetArtistInfoAsync(string entityId, string? artistId = null)
///<summary>Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.</summary>
public void GetArtistRelatedArtists(SpotifyplusGetArtistRelatedArtistsParameters data)
///<summary>Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.</summary>
public Task<JsonElement?> GetArtistRelatedArtistsAsync(SpotifyplusGetArtistRelatedArtistsParameters data)
///<summary>Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information about an artist's top tracks by country.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="market">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information about an artist's top tracks by country.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="artistId">The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="market">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</param>
///<param name="sortResult">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</param>
///<summary>Get the current user's followed artists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="after">The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="limit">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
public void GetArtistsFollowed(string entityId, string? after = null, double? limit = null, double? limitTotal = null, bool? sortResult = null)
///<summary>Get the current user's followed artists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="after">The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q</param>
///<param name="limit">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
public Task<JsonElement?> GetArtistsFollowedAsync(string entityId, string? after = null, double? limit = null, double? limitTotal = null, bool? sortResult = null)
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="audiobookId">The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information for a single audiobook.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="audiobookId">The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information about an audiobook's chapters.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="audiobookId">The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about an audiobook's chapters.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="audiobookId">The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get a list of the audiobooks saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the audiobooks saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a sorted list of ALL categories used to tag items in Spotify.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="country">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</param>
///<param name="locale">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</param>
///<param name="refresh">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</param>
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 });
}
///<summary>Get a sorted list of ALL categories used to tag items in Spotify.</summary>
public Task<JsonElement?> GetBrowseCategorysListAsync(SpotifyplusGetBrowseCategorysListParameters data)
///<summary>Get a sorted list of ALL categories used to tag items in Spotify.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="country">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</param>
///<param name="locale">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</param>
///<param name="refresh">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</param>
public Task<JsonElement?> 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 });
}
///<summary>Get a list of Spotify playlists tagged with a particular category.</summary>
public void GetCategoryPlaylists(SpotifyplusGetCategoryPlaylistsParameters data)
///<summary>Get a list of Spotify playlists tagged with a particular category.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="categoryId">The Spotify category ID (not name) for the category. eg: dinner</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of Spotify playlists tagged with a particular category.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="categoryId">The Spotify category ID (not name) for the category. eg: dinner</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information for a single chapter.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="chapterId">The Spotify ID of the chapter. If omitted, the currently playing chapter uri id value is used. eg: 3V0yw9UDrYAfkhAvTrvt9Y</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information for a single chapter.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="chapterId">The Spotify ID of the chapter. If omitted, the currently playing chapter uri id value is used. eg: 3V0yw9UDrYAfkhAvTrvt9Y</param>
///<param name="market">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</param>
///<summary>Gets the contents of an image url and transfers the contents to the local file system.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="imageUrl">The cover image url whose contents are to be retrieved. eg: https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b</param>
///<param name="outputPath">Fully-qualified path to store the downloaded image to. eg: /config/www/images/cover_file_image.jpg</param>
public void GetCoverImageFile(string entityId, string imageUrl, string outputPath)
///<summary>Get Spotify catalog information for a single episode.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="episodeId">The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information for a single episode.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="episodeId">The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC</param>
///<param name="market">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</param>
///<summary>Get a list of the episodes saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the episodes saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of Spotify featured playlists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="locale">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</param>
///<param name="timestamp">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of Spotify featured playlists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="country">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</param>
///<param name="locale">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</param>
///<param name="timestamp">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>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.</summary>
public void GetPlayerDevices(SpotifyplusGetPlayerDevicesParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="refresh">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</param>
///<param name="sortResult">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</param>
///<summary>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.</summary>
public Task<JsonElement?> GetPlayerDevicesAsync(SpotifyplusGetPlayerDevicesParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="refresh">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</param>
///<param name="sortResult">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</param>
///<summary>Get the object currently being played on the user's Spotify account.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="market">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</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get the object currently being played on the user's Spotify account.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="market">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</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get information about the user's current playback state, including track or episode, progress, and active device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="market">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</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get information about the user's current playback state, including track or episode, progress, and active device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="market">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</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get the list of objects that make up the user's playback queue.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
public void GetPlayerQueueInfo(string entityId)
{
_haContext.CallService("spotifyplus", "get_player_queue_info", null, new SpotifyplusGetPlayerQueueInfoParameters { EntityId = entityId });
}
///<summary>Get the list of objects that make up the user's playback queue.</summary>
public Task<JsonElement?> GetPlayerQueueInfoAsync(SpotifyplusGetPlayerQueueInfoParameters data)
///<summary>Get the list of objects that make up the user's playback queue.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
public Task<JsonElement?> GetPlayerQueueInfoAsync(string entityId)
///<summary>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.</summary>
public void GetPlayerRecentTracks(SpotifyplusGetPlayerRecentTracksParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="after">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</param>
///<param name="before">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</param>
///<param name="limitTotal">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</param>
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 });
}
///<summary>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.</summary>
public Task<JsonElement?> GetPlayerRecentTracksAsync(SpotifyplusGetPlayerRecentTracksParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="after">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</param>
///<param name="before">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</param>
///<param name="limitTotal">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</param>
public Task<JsonElement?> 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 });
}
///<summary>Get a playlist owned by a Spotify user.</summary>
public void GetPlaylist(SpotifyplusGetPlaylistParameters data)
///<summary>Get a playlist owned by a Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
///<param name="market">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</param>
///<param name="fields">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)))))</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get a playlist owned by a Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
///<param name="market">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</param>
///<param name="fields">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)))))</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</param>
///<summary>Get the current image associated with a specific playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
public void GetPlaylistCoverImage(string entityId, string? playlistId = null)
///<summary>Get the current image associated with a specific playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
public Task<JsonElement?> GetPlaylistCoverImageAsync(string entityId, string? playlistId = null)
///<summary>Get a list of the playlists owned or followed by the current Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the playlists owned or followed by the current Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get full details of the items of a playlist owned by a Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If null, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="fields">Filters for the query; a comma-separated list of the fields to return. If omitted, all fields are returned. For example, specify 'fields=description,uri' to get just the playlist's description and URI. eg: items(track(name,uri,album(name,uri)))</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: track</param>
///<param name="limitTotal">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</param>
///<summary>Get full details of the items of a playlist owned by a Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If null, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="fields">Filters for the query; a comma-separated list of the fields to return. If omitted, all fields are returned. For example, specify 'fields=description,uri' to get just the playlist's description and URI. eg: items(track(name,uri,album(name,uri)))</param>
///<param name="additionalTypes">A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: track</param>
///<param name="limitTotal">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</param>
///<summary>Get a list of the playlists owned or followed by the current Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="userId">The user's Spotify user ID (e.g. `smedjan`). eg: smedjan</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the playlists owned or followed by the current Spotify user.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="userId">The user's Spotify user ID (e.g. `smedjan`). eg: smedjan</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information for a single show.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="showId">The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information for a single show.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="showId">The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe</param>
///<param name="market">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</param>
///<summary>Get Spotify catalog information about a show's episodes.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="showId">The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about a show's episodes.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="showId">The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<summary>Get a list of the shows saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<param name="excludeAudiobooks">True (default) to exclude audiobook shows from the returned list, leaving only podcast shows; otherwise, False to include all results returned by the Spotify Web API. eg: True</param>
///<summary>Get a list of the shows saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<param name="excludeAudiobooks">True (default) to exclude audiobook shows from the returned list, leaving only podcast shows; otherwise, False to include all results returned by the Spotify Web API. eg: True</param>
///<summary>Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceValue">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</param>
///<param name="verifyUserContext">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</param>
///<param name="verifyTimeout">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</param>
///<param name="refreshDeviceList">True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True</param>
///<param name="activateDevice">True to activate the device if necessary; otherwise, False. eg: True</param>
///<param name="delay">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</param>
///<summary>Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceValue">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</param>
///<param name="verifyUserContext">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</param>
///<param name="verifyTimeout">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</param>
///<param name="refreshDeviceList">True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True</param>
///<param name="activateDevice">True to activate the device if necessary; otherwise, False. eg: True</param>
///<param name="delay">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</param>
///<summary>Get information about all available Spotify Connect player (both static and dynamic) devices.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="refresh">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</param>
///<param name="sortResult">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</param>
///<summary>Get information about all available Spotify Connect player (both static and dynamic) devices.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="refresh">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</param>
///<param name="sortResult">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</param>
///<summary>Get Spotify catalog information for a single track.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="trackId">The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy</param>
public void GetTrack(string entityId, string? trackId = null)
///<summary>Get Spotify catalog information for a single track.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="trackId">The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy</param>
public Task<JsonElement?> GetTrackAsync(string entityId, string? trackId = null)
///<summary>Get a list of the tracks saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get a list of the tracks saved in the current Spotify user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get track recommendations for specified criteria.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="market">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</param>
///<param name="seedArtists">A comma separated list of Spotify IDs for seed artists (e.g. 4NHQUGzhtTLFvgF5SZesLK). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedGenres and seedTracks are not set.</param>
///<param name="seedGenres">A comma separated list of any genres in the set of available genre seeds (e.g. classical,country). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedTracks are not set. eg: rock,hard-rock,rock-n-roll</param>
///<param name="seedTracks">A comma separated list of Spotify IDs for a seed track (e.g. 0c6xIDDpzE81m2q797ordA). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedGenres are not set.</param>
///<param name="minAcousticness">Restrict results to only those tracks whose acousticness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxAcousticness">Restrict results to only those tracks whose acousticness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetAcousticness">Restrict results to only those tracks whose acousticness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minDanceability">Restrict results to only those tracks whose danceability level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxDanceability">Restrict results to only those tracks whose danceability level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetDanceability">Restrict results to only those tracks whose acousticness is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minDurationMs">Restrict results to only those tracks whose duration is greater than the specified value in milliseconds.</param>
///<param name="maxDurationMs">Restrict results to only those tracks whose duration is less than the specified value in milliseconds.</param>
///<param name="targetDurationMs">Restrict results to only those tracks whose duration is equal to the specified value in milliseconds.</param>
///<param name="minEnergy">Restrict results to only those tracks whose energy level is greater than the specified value. Range is `0` - `1`. eg: 0.975</param>
///<param name="maxEnergy">Restrict results to only those tracks whose energy level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetEnergy">Restrict results to only those tracks whose energy level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minInstrumentalness">Restrict results to only those tracks whose instrumentalness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxInstrumentalness">Restrict results to only those tracks whose instrumentalness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetInstrumentalness">Restrict results to only those tracks whose instrumentalness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minKey">Restrict results to only those tracks whose key level is greater than the specified value. Range is `0` - `11`.</param>
///<param name="maxKey">Restrict results to only those tracks whose key level is less than the specified value. Range is `0` - `11`.</param>
///<param name="targetKey">Restrict results to only those tracks whose key level is equal to the specified value. Range is `0` - `11`.</param>
///<param name="minLiveness">Restrict results to only those tracks whose liveness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxLiveness">Restrict results to only those tracks whose liveness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetLiveness">Restrict results to only those tracks whose liveness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minLoudness">Restrict results to only those tracks whose loudness level is greater than the specified value. eg: -9.201</param>
///<param name="maxLoudness">Restrict results to only those tracks whose loudness level is less than the specified value.</param>
///<param name="targetLoudness">Restrict results to only those tracks whose loudness level is equal to the specified value.</param>
///<param name="minMode">Restrict results to only those tracks whose mode level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxMode">Restrict results to only those tracks whose mode level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetMode">Restrict results to only those tracks whose mode level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minPopularity">Restrict results to only those tracks whose popularity level is greater than the specified value. Range is `0` - `100`.</param>
///<param name="maxPopularity">Restrict results to only those tracks whose popularity level is less than the specified value. Range is `0` - `100`.</param>
///<param name="targetPopularity">Restrict results to only those tracks whose popularity level is equal to the specified value. Range is `0` - `100`.</param>
///<param name="minSpeechiness">Restrict results to only those tracks whose speechiness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxSpeechiness">Restrict results to only those tracks whose speechiness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetSpeechiness">Restrict results to only those tracks whose speechiness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minTempo">Restrict results to only those tracks with a tempo greater than the specified number of beats per minute.</param>
///<param name="maxTempo">Restrict results to only those tracks with a tempo less than the specified number of beats per minute.</param>
///<param name="targetTempo">Restrict results to only those tracks with a tempo equal to the specified number of beats per minute.</param>
///<param name="minTimeSignature">Restrict results to only those tracks whose time signature is greater than the specified value. Range is `0` - `11`. eg: 4</param>
///<param name="maxTimeSignature">Restrict results to only those tracks whose time signature is less than the specified value. Range is `0` - `11`.</param>
///<param name="targetTimeSignature">Restrict results to only those tracks whose time signature is equal to the specified value. Range is `0` - `11`.</param>
///<param name="minValence">Restrict results to only those tracks whose valence level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxValence">Restrict results to only those tracks whose valence level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetValence">Restrict results to only those tracks whose valence level is equal to the specified value. Range is `0` - `1`.</param>
///<summary>Get track recommendations for specified criteria.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="limit">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</param>
///<param name="market">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</param>
///<param name="seedArtists">A comma separated list of Spotify IDs for seed artists (e.g. 4NHQUGzhtTLFvgF5SZesLK). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedGenres and seedTracks are not set.</param>
///<param name="seedGenres">A comma separated list of any genres in the set of available genre seeds (e.g. classical,country). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedTracks are not set. eg: rock,hard-rock,rock-n-roll</param>
///<param name="seedTracks">A comma separated list of Spotify IDs for a seed track (e.g. 0c6xIDDpzE81m2q797ordA). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedGenres are not set.</param>
///<param name="minAcousticness">Restrict results to only those tracks whose acousticness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxAcousticness">Restrict results to only those tracks whose acousticness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetAcousticness">Restrict results to only those tracks whose acousticness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minDanceability">Restrict results to only those tracks whose danceability level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxDanceability">Restrict results to only those tracks whose danceability level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetDanceability">Restrict results to only those tracks whose acousticness is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minDurationMs">Restrict results to only those tracks whose duration is greater than the specified value in milliseconds.</param>
///<param name="maxDurationMs">Restrict results to only those tracks whose duration is less than the specified value in milliseconds.</param>
///<param name="targetDurationMs">Restrict results to only those tracks whose duration is equal to the specified value in milliseconds.</param>
///<param name="minEnergy">Restrict results to only those tracks whose energy level is greater than the specified value. Range is `0` - `1`. eg: 0.975</param>
///<param name="maxEnergy">Restrict results to only those tracks whose energy level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetEnergy">Restrict results to only those tracks whose energy level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minInstrumentalness">Restrict results to only those tracks whose instrumentalness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxInstrumentalness">Restrict results to only those tracks whose instrumentalness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetInstrumentalness">Restrict results to only those tracks whose instrumentalness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minKey">Restrict results to only those tracks whose key level is greater than the specified value. Range is `0` - `11`.</param>
///<param name="maxKey">Restrict results to only those tracks whose key level is less than the specified value. Range is `0` - `11`.</param>
///<param name="targetKey">Restrict results to only those tracks whose key level is equal to the specified value. Range is `0` - `11`.</param>
///<param name="minLiveness">Restrict results to only those tracks whose liveness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxLiveness">Restrict results to only those tracks whose liveness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetLiveness">Restrict results to only those tracks whose liveness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minLoudness">Restrict results to only those tracks whose loudness level is greater than the specified value. eg: -9.201</param>
///<param name="maxLoudness">Restrict results to only those tracks whose loudness level is less than the specified value.</param>
///<param name="targetLoudness">Restrict results to only those tracks whose loudness level is equal to the specified value.</param>
///<param name="minMode">Restrict results to only those tracks whose mode level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxMode">Restrict results to only those tracks whose mode level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetMode">Restrict results to only those tracks whose mode level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minPopularity">Restrict results to only those tracks whose popularity level is greater than the specified value. Range is `0` - `100`.</param>
///<param name="maxPopularity">Restrict results to only those tracks whose popularity level is less than the specified value. Range is `0` - `100`.</param>
///<param name="targetPopularity">Restrict results to only those tracks whose popularity level is equal to the specified value. Range is `0` - `100`.</param>
///<param name="minSpeechiness">Restrict results to only those tracks whose speechiness level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxSpeechiness">Restrict results to only those tracks whose speechiness level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetSpeechiness">Restrict results to only those tracks whose speechiness level is equal to the specified value. Range is `0` - `1`.</param>
///<param name="minTempo">Restrict results to only those tracks with a tempo greater than the specified number of beats per minute.</param>
///<param name="maxTempo">Restrict results to only those tracks with a tempo less than the specified number of beats per minute.</param>
///<param name="targetTempo">Restrict results to only those tracks with a tempo equal to the specified number of beats per minute.</param>
///<param name="minTimeSignature">Restrict results to only those tracks whose time signature is greater than the specified value. Range is `0` - `11`. eg: 4</param>
///<param name="maxTimeSignature">Restrict results to only those tracks whose time signature is less than the specified value. Range is `0` - `11`.</param>
///<param name="targetTimeSignature">Restrict results to only those tracks whose time signature is equal to the specified value. Range is `0` - `11`.</param>
///<param name="minValence">Restrict results to only those tracks whose valence level is greater than the specified value. Range is `0` - `1`.</param>
///<param name="maxValence">Restrict results to only those tracks whose valence level is less than the specified value. Range is `0` - `1`.</param>
///<param name="targetValence">Restrict results to only those tracks whose valence level is equal to the specified value. Range is `0` - `1`.</param>
///<summary>Get audio features for multiple tracks based on their Spotify IDs.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B</param>
public void GetTracksAudioFeatures(string entityId, string ids)
///<summary>Get audio features for multiple tracks based on their Spotify IDs.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B</param>
public Task<JsonElement?> GetTracksAudioFeaturesAsync(string entityId, string ids)
///<summary>Get the current user's top artists based on calculated affinity.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="timeRange">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get the current user's top artists based on calculated affinity.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="timeRange">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get the current user's top tracks based on calculated affinity.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="timeRange">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Get the current user's top tracks based on calculated affinity.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="timeRange">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</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="limitTotal">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</param>
///<param name="sortResult">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</param>
///<summary>Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="verifyUserContext">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</param>
///<param name="delay">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</param>
///<summary>Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="verifyUserContext">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</param>
///<param name="delay">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</param>
///<summary>Pause media play for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Start playing one or more tracks of the specified context on a Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="contextUri">Spotify URI of the context to play (e.g. `spotify:album:6vc9OTcyd3hyzabCmsdnwE`). Valid contexts are albums, artists & playlists. eg: spotify:album:6vc9OTcyd3hyzabCmsdnwE</param>
///<param name="offsetUri">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</param>
///<param name="offsetPosition">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</param>
///<param name="positionMs">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</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Start playing track favorites on the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="shuffle">True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True</param>
///<param name="delay">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</param>
///<param name="resolveDeviceId">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</param>
///<summary>Start playing one or more tracks on the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="uris">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</param>
///<param name="positionMs">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</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Resume media play for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Seeks to the given absolute or relative position in the user's currently playing track for the specified Spotify Connect device.</summary>
public void PlayerMediaSeek(SpotifyplusPlayerMediaSeekParameters data)
///<summary>Seeks to the given absolute or relative position in the user's currently playing track for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="positionMs">The absolute position in milliseconds to seek to; must be a positive number or zero if the `relativePositionMS` argument is specified. Passing in a position that is greater than the length of the track will cause the player to start playing the next song. Example = `25000` to start playing at the 25 second mark. eg: 25000</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<param name="relativePositionMs">The relative position in milliseconds to seek to; can be a positive or negative number, or zero if the `positionMS` argument is specified. Example = `-10000` to seek behind by 10 seconds; `10000` to seek ahead by 10 seconds. eg: 10000</param>
///<summary>Skips to next track in the user's queue for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Skips to previous track in the user's queue for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>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.</summary>
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceValue">The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1</param>
///<param name="verifyUserContext">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</param>
///<param name="verifyTimeout">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</param>
///<summary>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.</summary>
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceValue">The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1</param>
///<param name="verifyUserContext">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</param>
///<param name="verifyTimeout">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</param>
///<summary>Set repeat mode for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="state">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</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Set shuffle mode for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="state">True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Set volume level for the specified Spotify Connect device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="volumeLevel">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</param>
///<param name="deviceId">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</param>
///<param name="delay">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</param>
///<summary>Transfer playback to a new Spotify Connect device and optionally begin playback.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="deviceId">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</param>
///<param name="play">True (default) to start playback on the new device; otherise, False to keep the current playback state on the existing device. eg: True</param>
///<param name="delay">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</param>
///<param name="refreshDeviceList">True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True</param>
///<param name="forceActivateDevice">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</param>
///<summary>Change a playlist's details (name, description, and public / private state).</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `5AC9ZXA7nJ7oGWO911FuDG`). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
///<param name="name">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</param>
///<param name="description">The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist updated by the SpotifyPlus integration</param>
///<param name="public">If true, the playlist will be public; if false, it will be private. eg: False</param>
///<param name="collaborative">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</param>
///<param name="imagePath">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</param>
///<summary>Replace the image used to represent a specific playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5v5ETK9WFXAnGQ3MRubKuE</param>
///<param name="imagePath">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</param>
public void PlaylistCoverImageAdd(string entityId, string playlistId, string imagePath)
///<summary>Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="userId">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</param>
///<param name="name">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</param>
///<param name="description">The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration</param>
///<param name="public">If true, the playlist will be public; if false, it will be private. eg: False</param>
///<param name="collaborative">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</param>
///<param name="imagePath">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</param>
///<summary>Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="userId">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</param>
///<param name="name">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</param>
///<param name="description">The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration</param>
///<param name="public">If true, the playlist will be public; if false, it will be private. eg: False</param>
///<param name="collaborative">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</param>
///<param name="imagePath">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</param>
///<summary>Add one or more items to a user's playlist. Items are added in the order they are listed in the `uris` argument.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
///<param name="uris">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</param>
///<param name="position">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</param>
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 });
///<summary>Add one or more items to a user's playlist. Items are added in the order they are listed in the `uris` argument.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
///<param name="uris">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</param>
///<param name="position">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</param>
public Task<JsonElement?> PlaylistItemsAddAsync(string entityId, string playlistId, string? uris = null, double? position = null)
{
return _haContext.CallServiceWithResponseAsync("spotifyplus", "playlist_items_add", null, new SpotifyplusPlaylistItemsAddParameters { EntityId = entityId, PlaylistId = playlistId, Uris = uris, Position = position });
///<summary>Removes (clears) all items from a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
public void PlaylistItemsClear(string entityId, string playlistId)
///<summary>Removes (clears) all items from a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
public Task<JsonElement?> PlaylistItemsClearAsync(string entityId, string playlistId)
///<summary>Remove one or more items from a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
///<param name="uris">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</param>
///<param name="snapshotId">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.</param>
///<summary>Remove one or more items from a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</param>
///<param name="uris">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</param>
///<param name="snapshotId">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.</param>
///<summary>Reorder items in a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 4yptcTKnXjCu3V92tVVafS</param>
///<param name="rangeStart">The position of the first item to be reordered. This is a one-offset integer (NOT zero-offset). eg: 2</param>
///<param name="insertBefore">The position where the items should be inserted. To reorder the items to the end of the playlist, simply set `insertBefore` to the position after the last item. This is a one-offset integer (NOT zero-offset). eg: 1</param>
///<param name="rangeLength">The amount of items to be reordered; defaults to 1 if not set. The range of items to be reordered begins from the `rangeStart` position, and includes the `rangeLength` subsequent items. eg: 1</param>
///<param name="snapshotId">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.</param>
///<summary>Reorder items in a user's playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 4yptcTKnXjCu3V92tVVafS</param>
///<param name="rangeStart">The position of the first item to be reordered. This is a one-offset integer (NOT zero-offset). eg: 2</param>
///<param name="insertBefore">The position where the items should be inserted. To reorder the items to the end of the playlist, simply set `insertBefore` to the position after the last item. This is a one-offset integer (NOT zero-offset). eg: 1</param>
///<param name="rangeLength">The amount of items to be reordered; defaults to 1 if not set. The range of items to be reordered begins from the `rangeStart` position, and includes the `rangeLength` subsequent items. eg: 1</param>
///<param name="snapshotId">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.</param>
///<summary>Replace one or more items in a user's playlist. Replacing items in a playlist will overwrite its existing items. This service can also be used to clear a playlist.</summary>
public void PlaylistItemsReplace(SpotifyplusPlaylistItemsReplaceParameters data)
///<summary>Replace one or more items in a user's playlist. Replacing items in a playlist will overwrite its existing items. This service can also be used to clear a playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). eg: 3cEYpjA9oz9GiPac4AsH4n</param>
///<param name="uris">A comma-separated list of Spotify URIs to replace; can be track or episode URIs (e.g. `spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:episode:26c0zVyOv1lzfYpBXdh1zC`). A maximum of 100 items can be specified in one request.</param>
public void PlaylistItemsReplace(string entityId, string playlistId, string? uris = null)
///<summary>Replace one or more items in a user's playlist. Replacing items in a playlist will overwrite its existing items. This service can also be used to clear a playlist.</summary>
public Task<JsonElement?> PlaylistItemsReplaceAsync(SpotifyplusPlaylistItemsReplaceParameters data)
///<summary>Replace one or more items in a user's playlist. Replacing items in a playlist will overwrite its existing items. This service can also be used to clear a playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). eg: 3cEYpjA9oz9GiPac4AsH4n</param>
///<param name="uris">A comma-separated list of Spotify URIs to replace; can be track or episode URIs (e.g. `spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:episode:26c0zVyOv1lzfYpBXdh1zC`). A maximum of 100 items can be specified in one request.</param>
public Task<JsonElement?> PlaylistItemsReplaceAsync(string entityId, string playlistId, string? uris = null)
///<summary>Remove one or more albums from the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void RemoveAlbumFavorites(string entityId, string? ids = null)
///<summary>Remove one or more audiobooks from the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void RemoveAudiobookFavorites(string entityId, string? ids = null)
///<summary>Remove one or more episodes from the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void RemoveEpisodeFavorites(string entityId, string? ids = null)
///<summary>Remove one or more albums from the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void RemoveShowFavorites(string entityId, string? ids = null)
///<summary>Remove one or more tracks from the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void RemoveTrackFavorites(string entityId, string? ids = null)
///<summary>Save one or more albums to the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void SaveAlbumFavorites(string entityId, string? ids = null)
///<summary>Save one or more audiobook to the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void SaveAudiobookFavorites(string entityId, string? ids = null)
///<summary>Save one or more episodes to the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void SaveEpisodeFavorites(string entityId, string? ids = null)
///<summary>Save one or more shows to the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void SaveShowFavorites(string entityId, string? ids = null)
///<summary>Save one or more tracks to the current user's 'Your Library'.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void SaveTrackFavorites(string entityId, string? ids = null)
///<summary>Get Spotify catalog information about Albums that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Welcome to the New</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Albums that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Welcome to the New</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Artists that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: MercyMe</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Artists that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: MercyMe</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Audiobooks that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: The Elfstones of Shannara</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Audiobooks that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: The Elfstones of Shannara</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Episodes that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Armchair Anonymous</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Episodes that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Armchair Anonymous</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Playlists that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Daily Mix</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Playlists that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Daily Mix</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Shows that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Dax Shepard</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Shows that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Dax Shepard</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Tracks that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Dear Younger Me</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Get Spotify catalog information about Tracks that match a keyword string.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="criteria">The criteria to search for. eg: Dear Younger Me</param>
///<param name="limit">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</param>
///<param name="offset">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</param>
///<param name="market">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</param>
///<param name="includeExternal">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</param>
///<param name="limitTotal">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</param>
///<summary>Remove the current user as a follower of one or more artists.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void UnfollowArtists(string entityId, string? ids = null)
///<summary>Remove the current user as a follower of a playlist.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="playlistId">The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n</param>
public void UnfollowPlaylist(string entityId, string? playlistId = null)
///<summary>Remove the current user as a follower of one or more users.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</param>
///<param name="ids">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</param>
public void UnfollowUsers(string entityId, string ids)
///<summary>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.</summary>
public void ZeroconfDeviceConnect(SpotifyplusZeroconfDeviceConnectParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
///<param name="username">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. If not specified, the integration options Spotify Connect username value will be used. eg: yourusername@mail.com</param>
///<param name="password">Spotify Connect user password to login with. If not specified, the integration options Spotify Connect password value will be used. eg: yourpassword</param>
///<param name="loginid">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. If not specified, the integration options Spotify Connect loginId value will be used. eg: 31l77y75hfnhk79f7gk6jkk878mg</param>
///<param name="preDisconnect">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</param>
///<param name="verifyDeviceListEntry">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</param>
///<param name="delay">Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</param>
///<summary>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.</summary>
public Task<JsonElement?> ZeroconfDeviceConnectAsync(SpotifyplusZeroconfDeviceConnectParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
///<param name="username">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. If not specified, the integration options Spotify Connect username value will be used. eg: yourusername@mail.com</param>
///<param name="password">Spotify Connect user password to login with. If not specified, the integration options Spotify Connect password value will be used. eg: yourpassword</param>
///<param name="loginid">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. If not specified, the integration options Spotify Connect loginId value will be used. eg: 31l77y75hfnhk79f7gk6jkk878mg</param>
///<param name="preDisconnect">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</param>
///<param name="verifyDeviceListEntry">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</param>
///<param name="delay">Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</param>
///<summary>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.</summary>
public void ZeroconfDeviceDisconnect(SpotifyplusZeroconfDeviceDisconnectParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
///<param name="delay">Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</param>
///<summary>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.</summary>
public Task<JsonElement?> ZeroconfDeviceDisconnectAsync(SpotifyplusZeroconfDeviceDisconnectParameters data)
///<summary>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.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
///<param name="delay">Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</param>
///<summary>Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
public void ZeroconfDeviceGetinfo(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null)
///<summary>Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</param>
///<param name="hostIpv4Address">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</param>
///<param name="hostIpPort">Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</param>
///<param name="cpath">Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</param>
///<param name="version">Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</param>
///<param name="useSsl">True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</param>
public Task<JsonElement?> ZeroconfDeviceGetinfoAsync(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null)
///<summary>Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username</param>
///<param name="timeout">Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0</param>
public void ZeroconfDiscoverDevices(string entityId, double? timeout = null)
///<summary>Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device.</summary>
///<param name="entityId">Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username</param>
///<param name="timeout">Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0</param>
public Task<JsonElement?> ZeroconfDiscoverDevicesAsync(string entityId, double? timeout = null)
public partial record SpotifyplusAddPlayerQueueItemsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>A list of Spotify track or episode URIs to add to the queue (spotify:track:6zd8T1PBe9JFHmuVnurdRp, spotify:track:1kWUud3vY5ij5r62zxpTRy); values can be track or episode URIs. All URIs must be of the same type - you cannot mix and match tracks and episodes. An unlimited number of items can be added in one request, but the more items the longer it will take. eg: spotify:track:6zd8T1PBe9JFHmuVnurdRp</summary>
[JsonPropertyName("uris")]
public string? Uris { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>True to verify a device id is active; otherwise, false to assume that a device id is already active. Default is True. eg: True</summary>
[JsonPropertyName("verify_device_id")]
public bool? VerifyDeviceId { get; init; }
///<summary>Time delay (in seconds) to wait AFTER issuing the add request (if necessary). This delay will give the spotify web api time to process the change before another command is issued. Default is 0.15; value range is 0 - 10. eg: 0.15</summary>
public partial record SpotifyplusCheckAlbumFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusCheckArtistsFollowingParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusCheckAudiobookFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusCheckEpisodeFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusCheckShowFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusCheckTrackFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusCheckUsersFollowingParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>A comma-separated list of Spotify user ID's to check (e.g. `smedjan, 7piUznRWxNyKpaPvmOSdiZ`). A maximum of 50 ID's can be specified. eg: smedjan, 7piUznRWxNyKpaPvmOSdiZ</summary>
public partial record SpotifyplusFollowArtistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusFollowPlaylistParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>If true the playlist will be included in user's public playlists, if false it will remain private. eg: True</summary>
[JsonPropertyName("public")]
public bool? Public { get; init; }
}
public partial record SpotifyplusFollowUsersParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusGetAlbumParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE</summary>
[JsonPropertyName("album_id")]
public string? AlbumId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
}
public partial record SpotifyplusGetAlbumFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetAlbumNewReleasesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("country")]
public string? Country { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetAlbumTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the album (e.g. `6vc9OTcyd3hyzabCmsdnwE`). If null, the currently playing album uri id value is used; a Spotify Free or Premium account is required to correctly read the currently playing context. eg: 6vc9OTcyd3hyzabCmsdnwE</summary>
[JsonPropertyName("album_id")]
public string? AlbumId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetArtistParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</summary>
[JsonPropertyName("artist_id")]
public string? ArtistId { get; init; }
}
public partial record SpotifyplusGetArtistAlbumsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</summary>
[JsonPropertyName("artist_id")]
public string? ArtistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_groups")]
public string? IncludeGroups { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetArtistRelatedArtistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</summary>
[JsonPropertyName("artist_id")]
public string? ArtistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetArtistTopTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q</summary>
[JsonPropertyName("artist_id")]
public string? ArtistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetArtistsFollowedParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q</summary>
[JsonPropertyName("after")]
public string? After { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetAudiobookParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</summary>
[JsonPropertyName("audiobook_id")]
public string? AudiobookId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetAudiobookChaptersParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID for the audiobook (e.g. `74aydHJKgYz3AIq3jjBSv1`). If null, the currently playing audiobook uri id value is used. eg: 74aydHJKgYz3AIq3jjBSv1</summary>
[JsonPropertyName("audiobook_id")]
public string? AudiobookId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetAudiobookFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetBrowseCategorysListParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("country")]
public string? Country { get; init; }
///<summary>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</summary>
[JsonPropertyName("locale")]
public string? Locale { get; init; }
///<summary>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</summary>
[JsonPropertyName("refresh")]
public bool? Refresh { get; init; }
}
public partial record SpotifyplusGetCategoryPlaylistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify category ID (not name) for the category. eg: dinner</summary>
[JsonPropertyName("category_id")]
public string? CategoryId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("country")]
public string? Country { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetChapterParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the chapter. If omitted, the currently playing chapter uri id value is used. eg: 3V0yw9UDrYAfkhAvTrvt9Y</summary>
[JsonPropertyName("chapter_id")]
public string? ChapterId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetEpisodeParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC</summary>
[JsonPropertyName("episode_id")]
public string? EpisodeId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
}
public partial record SpotifyplusGetEpisodeFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetFeaturedPlaylistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("country")]
public string? Country { get; init; }
///<summary>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</summary>
[JsonPropertyName("locale")]
public string? Locale { get; init; }
///<summary>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</summary>
[JsonPropertyName("timestamp")]
public string? Timestamp { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetPlayerDevicesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("refresh")]
public bool? Refresh { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetPlayerNowPlayingParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</summary>
[JsonPropertyName("additional_types")]
public string? AdditionalTypes { get; init; }
}
public partial record SpotifyplusGetPlayerPlaybackStateParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</summary>
[JsonPropertyName("additional_types")]
public string? AdditionalTypes { get; init; }
}
public partial record SpotifyplusGetPlayerQueueInfoParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
}
public partial record SpotifyplusGetPlayerRecentTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("after")]
public double? After { get; init; }
///<summary>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</summary>
[JsonPropertyName("before")]
public double? Before { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusGetPlaylistParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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)))))</summary>
[JsonPropertyName("fields")]
public string? Fields { get; init; }
///<summary>A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode</summary>
public partial record SpotifyplusGetPlaylistCoverImageParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</summary>
public partial record SpotifyplusGetPlaylistFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetPlaylistItemsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5v5ETK9WFXAnGQ3MRubKuE). If null, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>Filters for the query; a comma-separated list of the fields to return. If omitted, all fields are returned. For example, specify 'fields=description,uri' to get just the playlist's description and URI. eg: items(track(name,uri,album(name,uri)))</summary>
[JsonPropertyName("fields")]
public string? Fields { get; init; }
///<summary>A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: track</summary>
[JsonPropertyName("additional_types")]
public string? AdditionalTypes { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetPlaylistsForUserParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The user's Spotify user ID (e.g. `smedjan`). eg: smedjan</summary>
[JsonPropertyName("user_id")]
public string? UserId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetShowParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe</summary>
[JsonPropertyName("show_id")]
public string? ShowId { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
}
public partial record SpotifyplusGetShowEpisodesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE</summary>
[JsonPropertyName("show_id")]
public string? ShowId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusGetShowFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
///<summary>True (default) to exclude audiobook shows from the returned list, leaving only podcast shows; otherwise, False to include all results returned by the Spotify Web API. eg: True</summary>
public partial record SpotifyplusGetSpotifyConnectDeviceParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_value")]
public string? DeviceValue { get; init; }
///<summary>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</summary>
[JsonPropertyName("verify_user_context")]
public bool? VerifyUserContext { get; init; }
///<summary>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</summary>
[JsonPropertyName("verify_timeout")]
public double? VerifyTimeout { get; init; }
///<summary>True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True</summary>
[JsonPropertyName("refresh_device_list")]
public bool? RefreshDeviceList { get; init; }
///<summary>True to activate the device if necessary; otherwise, False. eg: True</summary>
[JsonPropertyName("activate_device")]
public bool? ActivateDevice { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusGetSpotifyConnectDevicesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("refresh")]
public bool? Refresh { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetTrackParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy</summary>
[JsonPropertyName("track_id")]
public string? TrackId { get; init; }
}
public partial record SpotifyplusGetTrackFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
public partial record SpotifyplusGetTrackRecommendationsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>A comma separated list of Spotify IDs for seed artists (e.g. 4NHQUGzhtTLFvgF5SZesLK). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedGenres and seedTracks are not set.</summary>
[JsonPropertyName("seed_artists")]
public string? SeedArtists { get; init; }
///<summary>A comma separated list of any genres in the set of available genre seeds (e.g. classical,country). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedTracks are not set. eg: rock,hard-rock,rock-n-roll</summary>
[JsonPropertyName("seed_genres")]
public string? SeedGenres { get; init; }
///<summary>A comma separated list of Spotify IDs for a seed track (e.g. 0c6xIDDpzE81m2q797ordA). Up to 5 seed values may be provided in any combination of seedArtists, seedTracks and seedGenres; only required if seedArtists and seedGenres are not set.</summary>
[JsonPropertyName("seed_tracks")]
public string? SeedTracks { get; init; }
///<summary>Restrict results to only those tracks whose acousticness level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_acousticness")]
public double? MinAcousticness { get; init; }
///<summary>Restrict results to only those tracks whose acousticness level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_acousticness")]
public double? MaxAcousticness { get; init; }
///<summary>Restrict results to only those tracks whose acousticness level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_acousticness")]
public double? TargetAcousticness { get; init; }
///<summary>Restrict results to only those tracks whose danceability level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_danceability")]
public double? MinDanceability { get; init; }
///<summary>Restrict results to only those tracks whose danceability level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_danceability")]
public double? MaxDanceability { get; init; }
///<summary>Restrict results to only those tracks whose acousticness is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_danceability")]
public double? TargetDanceability { get; init; }
///<summary>Restrict results to only those tracks whose duration is greater than the specified value in milliseconds.</summary>
[JsonPropertyName("min_duration_ms")]
public double? MinDurationMs { get; init; }
///<summary>Restrict results to only those tracks whose duration is less than the specified value in milliseconds.</summary>
[JsonPropertyName("max_duration_ms")]
public double? MaxDurationMs { get; init; }
///<summary>Restrict results to only those tracks whose duration is equal to the specified value in milliseconds.</summary>
[JsonPropertyName("target_duration_ms")]
public double? TargetDurationMs { get; init; }
///<summary>Restrict results to only those tracks whose energy level is greater than the specified value. Range is `0` - `1`. eg: 0.975</summary>
[JsonPropertyName("min_energy")]
public double? MinEnergy { get; init; }
///<summary>Restrict results to only those tracks whose energy level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_energy")]
public double? MaxEnergy { get; init; }
///<summary>Restrict results to only those tracks whose energy level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_energy")]
public double? TargetEnergy { get; init; }
///<summary>Restrict results to only those tracks whose instrumentalness level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_instrumentalness")]
public double? MinInstrumentalness { get; init; }
///<summary>Restrict results to only those tracks whose instrumentalness level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_instrumentalness")]
public double? MaxInstrumentalness { get; init; }
///<summary>Restrict results to only those tracks whose instrumentalness level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_instrumentalness")]
public double? TargetInstrumentalness { get; init; }
///<summary>Restrict results to only those tracks whose key level is greater than the specified value. Range is `0` - `11`.</summary>
[JsonPropertyName("min_key")]
public double? MinKey { get; init; }
///<summary>Restrict results to only those tracks whose key level is less than the specified value. Range is `0` - `11`.</summary>
[JsonPropertyName("max_key")]
public double? MaxKey { get; init; }
///<summary>Restrict results to only those tracks whose key level is equal to the specified value. Range is `0` - `11`.</summary>
[JsonPropertyName("target_key")]
public double? TargetKey { get; init; }
///<summary>Restrict results to only those tracks whose liveness level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_liveness")]
public double? MinLiveness { get; init; }
///<summary>Restrict results to only those tracks whose liveness level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_liveness")]
public double? MaxLiveness { get; init; }
///<summary>Restrict results to only those tracks whose liveness level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_liveness")]
public double? TargetLiveness { get; init; }
///<summary>Restrict results to only those tracks whose loudness level is greater than the specified value. eg: -9.201</summary>
[JsonPropertyName("min_loudness")]
public double? MinLoudness { get; init; }
///<summary>Restrict results to only those tracks whose loudness level is less than the specified value.</summary>
[JsonPropertyName("max_loudness")]
public double? MaxLoudness { get; init; }
///<summary>Restrict results to only those tracks whose loudness level is equal to the specified value.</summary>
[JsonPropertyName("target_loudness")]
public double? TargetLoudness { get; init; }
///<summary>Restrict results to only those tracks whose mode level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_mode")]
public double? MinMode { get; init; }
///<summary>Restrict results to only those tracks whose mode level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_mode")]
public double? MaxMode { get; init; }
///<summary>Restrict results to only those tracks whose mode level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_mode")]
public double? TargetMode { get; init; }
///<summary>Restrict results to only those tracks whose popularity level is greater than the specified value. Range is `0` - `100`.</summary>
[JsonPropertyName("min_popularity")]
public double? MinPopularity { get; init; }
///<summary>Restrict results to only those tracks whose popularity level is less than the specified value. Range is `0` - `100`.</summary>
[JsonPropertyName("max_popularity")]
public double? MaxPopularity { get; init; }
///<summary>Restrict results to only those tracks whose popularity level is equal to the specified value. Range is `0` - `100`.</summary>
[JsonPropertyName("target_popularity")]
public double? TargetPopularity { get; init; }
///<summary>Restrict results to only those tracks whose speechiness level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_speechiness")]
public double? MinSpeechiness { get; init; }
///<summary>Restrict results to only those tracks whose speechiness level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_speechiness")]
public double? MaxSpeechiness { get; init; }
///<summary>Restrict results to only those tracks whose speechiness level is equal to the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("target_speechiness")]
public double? TargetSpeechiness { get; init; }
///<summary>Restrict results to only those tracks with a tempo greater than the specified number of beats per minute.</summary>
[JsonPropertyName("min_tempo")]
public double? MinTempo { get; init; }
///<summary>Restrict results to only those tracks with a tempo less than the specified number of beats per minute.</summary>
[JsonPropertyName("max_tempo")]
public double? MaxTempo { get; init; }
///<summary>Restrict results to only those tracks with a tempo equal to the specified number of beats per minute.</summary>
[JsonPropertyName("target_tempo")]
public double? TargetTempo { get; init; }
///<summary>Restrict results to only those tracks whose time signature is greater than the specified value. Range is `0` - `11`. eg: 4</summary>
[JsonPropertyName("min_time_signature")]
public double? MinTimeSignature { get; init; }
///<summary>Restrict results to only those tracks whose time signature is less than the specified value. Range is `0` - `11`.</summary>
[JsonPropertyName("max_time_signature")]
public double? MaxTimeSignature { get; init; }
///<summary>Restrict results to only those tracks whose time signature is equal to the specified value. Range is `0` - `11`.</summary>
[JsonPropertyName("target_time_signature")]
public double? TargetTimeSignature { get; init; }
///<summary>Restrict results to only those tracks whose valence level is greater than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("min_valence")]
public double? MinValence { get; init; }
///<summary>Restrict results to only those tracks whose valence level is less than the specified value. Range is `0` - `1`.</summary>
[JsonPropertyName("max_valence")]
public double? MaxValence { get; init; }
///<summary>Restrict results to only those tracks whose valence level is equal to the specified value. Range is `0` - `1`.</summary>
public partial record SpotifyplusGetTracksAudioFeaturesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusGetUsersTopArtistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("time_range")]
public string? TimeRange { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusGetUsersTopTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("time_range")]
public string? TimeRange { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
///<summary>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</summary>
[JsonPropertyName("sort_result")]
public bool? SortResult { get; init; }
}
public partial record SpotifyplusPlayerActivateDevicesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("verify_user_context")]
public bool? VerifyUserContext { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerMediaPauseParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerMediaPlayContextParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>Spotify URI of the context to play (e.g. `spotify:album:6vc9OTcyd3hyzabCmsdnwE`). Valid contexts are albums, artists & playlists. eg: spotify:album:6vc9OTcyd3hyzabCmsdnwE</summary>
[JsonPropertyName("context_uri")]
public string? ContextUri { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset_uri")]
public string? OffsetUri { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset_position")]
public double? OffsetPosition { get; init; }
///<summary>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</summary>
[JsonPropertyName("position_ms")]
public double? PositionMs { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusPlayerMediaPlayTrackFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True</summary>
[JsonPropertyName("shuffle")]
public bool? Shuffle { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerMediaPlayTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("uris")]
public string? Uris { get; init; }
///<summary>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</summary>
[JsonPropertyName("position_ms")]
public double? PositionMs { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerMediaResumeParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerMediaSeekParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The absolute position in milliseconds to seek to; must be a positive number or zero if the `relativePositionMS` argument is specified. Passing in a position that is greater than the length of the track will cause the player to start playing the next song. Example = `25000` to start playing at the 25 second mark. eg: 25000</summary>
[JsonPropertyName("position_ms")]
public double? PositionMs { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
///<summary>The relative position in milliseconds to seek to; can be a positive or negative number, or zero if the `positionMS` argument is specified. Example = `-10000` to seek behind by 10 seconds; `10000` to seek ahead by 10 seconds. eg: 10000</summary>
public partial record SpotifyplusPlayerMediaSkipNextParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusPlayerMediaSkipPreviousParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
public partial record SpotifyplusPlayerResolveDeviceIdParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1</summary>
[JsonPropertyName("device_value")]
public string? DeviceValue { get; init; }
///<summary>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</summary>
[JsonPropertyName("verify_user_context")]
public bool? VerifyUserContext { get; init; }
///<summary>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</summary>
[JsonPropertyName("verify_timeout")]
public double? VerifyTimeout { get; init; }
}
public partial record SpotifyplusPlayerSetRepeatModeParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("state")]
public object? State { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusPlayerSetShuffleModeParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True</summary>
[JsonPropertyName("state")]
public bool? State { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusPlayerSetVolumeLevelParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("volume_level")]
public double? VolumeLevel { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
}
public partial record SpotifyplusPlayerTransferPlaybackParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("device_id")]
public string? DeviceId { get; init; }
///<summary>True (default) to start playback on the new device; otherise, False to keep the current playback state on the existing device. eg: True</summary>
[JsonPropertyName("play")]
public bool? Play { get; init; }
///<summary>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</summary>
[JsonPropertyName("delay")]
public double? Delay { get; init; }
///<summary>True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True</summary>
[JsonPropertyName("refresh_device_list")]
public bool? RefreshDeviceList { get; init; }
///<summary>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</summary>
[JsonPropertyName("force_activate_device")]
public bool? ForceActivateDevice { get; init; }
}
public partial record SpotifyplusPlaylistChangeParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. `5AC9ZXA7nJ7oGWO911FuDG`). eg: 5AC9ZXA7nJ7oGWO911FuDG</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("name")]
public string? Name { get; init; }
///<summary>The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist updated by the SpotifyPlus integration</summary>
[JsonPropertyName("description")]
public string? Description { get; init; }
///<summary>If true, the playlist will be public; if false, it will be private. eg: False</summary>
[JsonPropertyName("public")]
public bool? Public { get; init; }
///<summary>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</summary>
[JsonPropertyName("collaborative")]
public bool? Collaborative { get; init; }
///<summary>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</summary>
[JsonPropertyName("image_path")]
public string? ImagePath { get; init; }
}
public partial record SpotifyplusPlaylistCoverImageAddParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5v5ETK9WFXAnGQ3MRubKuE</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("image_path")]
public string? ImagePath { get; init; }
}
public partial record SpotifyplusPlaylistCreateParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("user_id")]
public string? UserId { get; init; }
///<summary>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</summary>
[JsonPropertyName("name")]
public string? Name { get; init; }
///<summary>The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration</summary>
[JsonPropertyName("description")]
public string? Description { get; init; }
///<summary>If true, the playlist will be public; if false, it will be private. eg: False</summary>
[JsonPropertyName("public")]
public bool? Public { get; init; }
///<summary>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</summary>
[JsonPropertyName("collaborative")]
public bool? Collaborative { get; init; }
///<summary>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</summary>
[JsonPropertyName("image_path")]
public string? ImagePath { get; init; }
}
public partial record SpotifyplusPlaylistItemsAddParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
[JsonPropertyName("uris")]
public string? Uris { get; init; }
///<summary>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</summary>
[JsonPropertyName("position")]
public double? Position { get; init; }
}
public partial record SpotifyplusPlaylistItemsClearParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
}
public partial record SpotifyplusPlaylistItemsRemoveParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>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</summary>
///<summary>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.</summary>
public partial record SpotifyplusPlaylistItemsReorderParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 4yptcTKnXjCu3V92tVVafS</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>The position of the first item to be reordered. This is a one-offset integer (NOT zero-offset). eg: 2</summary>
[JsonPropertyName("range_start")]
public double? RangeStart { get; init; }
///<summary>The position where the items should be inserted. To reorder the items to the end of the playlist, simply set `insertBefore` to the position after the last item. This is a one-offset integer (NOT zero-offset). eg: 1</summary>
[JsonPropertyName("insert_before")]
public double? InsertBefore { get; init; }
///<summary>The amount of items to be reordered; defaults to 1 if not set. The range of items to be reordered begins from the `rangeStart` position, and includes the `rangeLength` subsequent items. eg: 1</summary>
[JsonPropertyName("range_length")]
public double? RangeLength { get; init; }
///<summary>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.</summary>
[JsonPropertyName("snapshot_id")]
public string? SnapshotId { get; init; }
}
public partial record SpotifyplusPlaylistItemsReplaceParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). eg: 3cEYpjA9oz9GiPac4AsH4n</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
///<summary>A comma-separated list of Spotify URIs to replace; can be track or episode URIs (e.g. `spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:episode:26c0zVyOv1lzfYpBXdh1zC`). A maximum of 100 items can be specified in one request.</summary>
public partial record SpotifyplusRemoveAlbumFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusRemoveAudiobookFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusRemoveEpisodeFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusRemoveShowFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusRemoveTrackFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSaveAlbumFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSaveAudiobookFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSaveEpisodeFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSaveShowFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSaveTrackFavoritesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusSearchAlbumsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: Welcome to the New</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchArtistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: MercyMe</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchAudiobooksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: The Elfstones of Shannara</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchEpisodesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: Armchair Anonymous</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchPlaylistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: Daily Mix</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchShowsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: Dax Shepard</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusSearchTracksParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The criteria to search for. eg: Dear Younger Me</summary>
[JsonPropertyName("criteria")]
public string? Criteria { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit")]
public double? Limit { get; init; }
///<summary>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</summary>
[JsonPropertyName("offset")]
public double? Offset { get; init; }
///<summary>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</summary>
[JsonPropertyName("market")]
public string? Market { get; init; }
///<summary>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</summary>
[JsonPropertyName("include_external")]
public string? IncludeExternal { get; init; }
///<summary>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</summary>
[JsonPropertyName("limit_total")]
public double? LimitTotal { get; init; }
}
public partial record SpotifyplusUnfollowArtistsParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusUnfollowPlaylistParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n</summary>
[JsonPropertyName("playlist_id")]
public string? PlaylistId { get; init; }
}
public partial record SpotifyplusUnfollowUsersParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("ids")]
public string? Ids { get; init; }
}
public partial record SpotifyplusZeroconfDeviceConnectParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("host_ipv4_address")]
public string? HostIpv4Address { get; init; }
///<summary>Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</summary>
[JsonPropertyName("host_ip_port")]
public double? HostIpPort { get; init; }
///<summary>Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</summary>
[JsonPropertyName("cpath")]
public string? Cpath { get; init; }
///<summary>Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</summary>
[JsonPropertyName("version")]
public string? Version { get; init; }
///<summary>True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</summary>
///<summary>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. If not specified, the integration options Spotify Connect username value will be used. eg: yourusername@mail.com</summary>
///<summary>Spotify Connect user password to login with. If not specified, the integration options Spotify Connect password value will be used. eg: yourpassword</summary>
///<summary>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. If not specified, the integration options Spotify Connect loginId value will be used. eg: 31l77y75hfnhk79f7gk6jkk878mg</summary>
///<summary>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</summary>
[JsonPropertyName("pre_disconnect")]
public bool? PreDisconnect { get; init; }
///<summary>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</summary>
///<summary>Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</summary>
public partial record SpotifyplusZeroconfDeviceDisconnectParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("host_ipv4_address")]
public string? HostIpv4Address { get; init; }
///<summary>Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</summary>
[JsonPropertyName("host_ip_port")]
public double? HostIpPort { get; init; }
///<summary>Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</summary>
[JsonPropertyName("cpath")]
public string? Cpath { get; init; }
///<summary>Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</summary>
[JsonPropertyName("version")]
public string? Version { get; init; }
///<summary>True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</summary>
///<summary>Time delay (in seconds) to wait AFTER issuing a 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.50; value range is 0 - 10. eg: 0.50</summary>
public partial record SpotifyplusZeroconfDeviceGetinfoParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>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</summary>
[JsonPropertyName("host_ipv4_address")]
public string? HostIpv4Address { get; init; }
///<summary>Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200</summary>
[JsonPropertyName("host_ip_port")]
public double? HostIpPort { get; init; }
///<summary>Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc</summary>
[JsonPropertyName("cpath")]
public string? Cpath { get; init; }
///<summary>Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0</summary>
[JsonPropertyName("version")]
public string? Version { get; init; }
///<summary>True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False</summary>
[JsonPropertyName("use_ssl")]
public bool? UseSsl { get; init; }
}
public partial record SpotifyplusZeroconfDiscoverDevicesParameters
{
///<summary>Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0</summary>
[JsonPropertyName("timeout")]
public double? Timeout { get; init; }
}
public partial class SwitchServices
{
private readonly IHaContext _haContext;
public SwitchServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Toggles a switch on/off.</summary>
///<param name="target">The target for this service call</param>
public void Toggle(ServiceTarget target, object? data = null)
///<param name="item">The name that represents the to-do item. eg: Submit income tax return</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>
///<summary>Update an existing to-do list item based on its name.</summary>
///<param name="item">The name for the to-do list item. eg: Submit income tax return</param>
///<param name="rename">The new name of the to-do item eg: Something else</param>
///<param name="status">A status or confirmation of the to-do item. eg: needs_action</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>
///<summary>The name that represents the to-do item. eg: Submit income tax return</summary>
[JsonPropertyName("item")]
public string? Item { get; init; }
///<summary>The date the to-do item is expected to be completed. eg: 2023-11-17</summary>
[JsonPropertyName("due_date")]
public DateOnly? DueDate { get; init; }
///<summary>The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</summary>
[JsonPropertyName("due_datetime")]
public DateTime? DueDatetime { get; init; }
///<summary>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.</summary>
[JsonPropertyName("description")]
public string? Description { get; init; }
}
public partial record TodoGetItemsParameters
{
///<summary>Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action</summary>
[JsonPropertyName("status")]
public IEnumerable<object>? Status { get; init; }
}
public partial record TodoRemoveItemParameters
{
///<summary>The name for the to-do list items.</summary>
[JsonPropertyName("item")]
public string? Item { get; init; }
}
public partial record TodoUpdateItemParameters
{
///<summary>The name for the to-do list item. eg: Submit income tax return</summary>
[JsonPropertyName("item")]
public string? Item { get; init; }
///<summary>The new name of the to-do item eg: Something else</summary>
[JsonPropertyName("rename")]
public string? Rename { get; init; }
///<summary>A status or confirmation of the to-do item. eg: needs_action</summary>
[JsonPropertyName("status")]
public object? Status { get; init; }
///<summary>The date the to-do item is expected to be completed. eg: 2023-11-17</summary>
[JsonPropertyName("due_date")]
public DateOnly? DueDate { get; init; }
///<summary>The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</summary>
[JsonPropertyName("due_datetime")]
public DateTime? DueDatetime { get; init; }
///<summary>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.</summary>
[JsonPropertyName("description")]
public string? Description { get; init; }
}
public partial class TtsServices
{
private readonly IHaContext _haContext;
public TtsServices(IHaContext haContext)
{
_haContext = haContext;
}
///<summary>Removes all cached text-to-speech files and purges the memory.</summary>
///<summary>Execute various yamaha_soundbar-specific commands on the player.</summary>
///<param name="entityId">Entity ID of the player against which the command wil be execuded. eg: media_player.sound_room1</param>
///<param name="command">To set the names for WriteDeviceNameToUnit and SetApSSIDName please switch to YAML mode and enter the name there. eg: Update</param>
///<param name="notify">Displays the result of the command as a persistent notification in Lovelace UI (optional, defaults to True). Set to False during automations to avoid seeing these. eg: False</param>
public void Command(string entityId, object command, bool? notify = null)
///<summary>Group players together in a multiroom setup.</summary>
///<param name="master">Entity ID of the player that should become the master of the group. eg: media_player.sound_room2</param>
///<param name="entityId">Entity ID(s) of the player(s) that will connect to the master. Switch to YAML mode to manually add more, separated by comma. eg: media_player.sound_room1</param>
///<summary>Prepare the player to play TTS and save the current state of it for restore afterwards. Current playback will stop.</summary>
///<param name="entityId">Entity ID of the player of which the snapshot should be saved. eg: media_player.sound_room1</param>
///<param name="switchinput">To be used with Spotify Integration. Switch player to stream input along with snapshotting, before playing TTS. Applies for players with multiple inputs like Line-in, Optical, etc. Optional - if not specified, defaults to True. eg: False</param>
public void Snapshot(string entityId, bool? switchinput = null)
///<summary>Unjoin a player or all players from the multiroom setup.</summary>
///<param name="entityId">Entity ID(s) of the player(s) that will be unjoined from the group. If this is a master, all slaves will be unjoined. eg: media_player.sound_room2</param>
public void Unjoin(string entityId)
{
_haContext.CallService("yamaha_soundbar", "unjoin", null, new YamahaSoundbarUnjoinParameters { EntityId = entityId });
}
}
public partial record YamahaSoundbarCommandParameters
{
///<summary>Entity ID of the player against which the command wil be execuded. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>To set the names for WriteDeviceNameToUnit and SetApSSIDName please switch to YAML mode and enter the name there. eg: Update</summary>
[JsonPropertyName("command")]
public object? Command { get; init; }
///<summary>Displays the result of the command as a persistent notification in Lovelace UI (optional, defaults to True). Set to False during automations to avoid seeing these. eg: False</summary>
[JsonPropertyName("notify")]
public bool? Notify { get; init; }
}
public partial record YamahaSoundbarJoinParameters
{
///<summary>Entity ID of the player that should become the master of the group. eg: media_player.sound_room2</summary>
[JsonPropertyName("master")]
public string? Master { get; init; }
///<summary>Entity ID(s) of the player(s) that will connect to the master. Switch to YAML mode to manually add more, separated by comma. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
}
public partial record YamahaSoundbarPlayTrackParameters
{
///<summary>Entity ID of the player on which the playback wil be execuded. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>(Part of) The name of the track from the list eg: Commodores - Machine Gun Extended Mix.mp3</summary>
[JsonPropertyName("track")]
public string? Track { get; init; }
}
public partial record YamahaSoundbarPresetParameters
{
///<summary>Entity ID of the player for which the preset will be recalled. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>Content preset number on the device eg: 1</summary>
[JsonPropertyName("preset")]
public double? Preset { get; init; }
}
public partial record YamahaSoundbarRestoreParameters
{
///<summary>Entity ID of the player of which the snapshot should be restored. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
}
public partial record YamahaSoundbarSnapshotParameters
{
///<summary>Entity ID of the player of which the snapshot should be saved. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>To be used with Spotify Integration. Switch player to stream input along with snapshotting, before playing TTS. Applies for players with multiple inputs like Line-in, Optical, etc. Optional - if not specified, defaults to True. eg: False</summary>
[JsonPropertyName("switchinput")]
public bool? Switchinput { get; init; }
}
public partial record YamahaSoundbarSoundSettingsParameters
{
///<summary>Entity ID of the player on which the playback wil be execuded. eg: media_player.sound_room1</summary>
[JsonPropertyName("entity_id")]
public string? EntityId { get; init; }
///<summary>Select the sound preset</summary>
[JsonPropertyName("sound_program")]
public object? SoundProgram { get; init; }
///<summary>Set the subwoofer volume</summary>
[JsonPropertyName("subwoofer_volume")]
public long? SubwooferVolume { get; init; }
///<summary>Set the 3D surround option on or off</summary>
[JsonPropertyName("surround")]
public bool? Surround { get; init; }
///<summary>Set the clear voice option on or off</summary>
[JsonPropertyName("clear_voice")]
public bool? ClearVoice { get; init; }
///<summary>Set the bass extension option on or off</summary>
[JsonPropertyName("bass_extension")]
public bool? BassExtension { get; init; }
///<summary>Set the mute on or off</summary>
[JsonPropertyName("mute")]
public bool? Mute { get; init; }
///<summary>Set the power saving option on or off</summary>
[JsonPropertyName("power_saving")]
public bool? PowerSaving { get; init; }
}
public partial record YamahaSoundbarUnjoinParameters
{
///<summary>Entity ID(s) of the player(s) that will be unjoined from the group. If this is a master, all slaves will be unjoined. eg: media_player.sound_room2</summary>
///<summary>Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action.</summary>
public static void LearnSendevent(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("learn_sendevent", data);
}
///<summary>Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action.</summary>
public static void LearnSendevent(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("learn_sendevent", data);
}
///<summary>Uploads a file from your Home Assistant instance to an Android / Fire TV device.</summary>
public static void Upload(this IMediaPlayerEntityCore target, AndroidtvUploadParameters data)
{
target.CallService("upload", data);
}
///<summary>Uploads a file from your Home Assistant instance to an Android / Fire TV device.</summary>
public static void Upload(this IEnumerable<IMediaPlayerEntityCore> target, AndroidtvUploadParameters data)
{
target.CallService("upload", data);
}
///<summary>Uploads a file from your Home Assistant instance to an Android / Fire TV device.</summary>
///<param name="target">The IMediaPlayerEntityCore to call this service for</param>
///<param name="devicePath">The filepath on the Android / Fire TV device. eg: /storage/emulated/0/Download/example.txt</param>
///<param name="localPath">The filepath on your Home Assistant instance. eg: /config/www/example.txt</param>
public static void Upload(this IMediaPlayerEntityCore target, string devicePath, string localPath)
public static class AutomationEntityExtensionMethods
{
///<summary>Toggles (enable / disable) an automation.</summary>
public static void Toggle(this IAutomationEntityCore target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Toggles (enable / disable) an automation.</summary>
public static void Toggle(this IEnumerable<IAutomationEntityCore> target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Triggers the actions of an automation.</summary>
public static void Trigger(this IAutomationEntityCore target, AutomationTriggerParameters data)
{
target.CallService("trigger", data);
}
///<summary>Triggers the actions of an automation.</summary>
public static void Trigger(this IEnumerable<IAutomationEntityCore> target, AutomationTriggerParameters data)
{
target.CallService("trigger", data);
}
///<summary>Triggers the actions of an automation.</summary>
///<param name="target">The IAutomationEntityCore to call this service for</param>
///<param name="skipCondition">Defines whether or not the conditions will be skipped.</param>
public static void Trigger(this IAutomationEntityCore target, bool? skipCondition = null)
{
target.CallService("trigger", new AutomationTriggerParameters { SkipCondition = skipCondition });
}
///<summary>Triggers the actions of an automation.</summary>
///<param name="target">The IEnumerable<IAutomationEntityCore> to call this service for</param>
///<param name="skipCondition">Defines whether or not the conditions will be skipped.</param>
public static void Trigger(this IEnumerable<IAutomationEntityCore> target, bool? skipCondition = null)
{
target.CallService("trigger", new AutomationTriggerParameters { SkipCondition = skipCondition });
}
///<summary>Disables an automation.</summary>
public static void TurnOff(this IAutomationEntityCore target, AutomationTurnOffParameters data)
{
target.CallService("turn_off", data);
}
///<summary>Disables an automation.</summary>
public static void TurnOff(this IEnumerable<IAutomationEntityCore> target, AutomationTurnOffParameters data)
{
target.CallService("turn_off", data);
}
///<summary>Disables an automation.</summary>
///<param name="target">The IAutomationEntityCore to call this service for</param>
///<param name="stopActions">Stops currently running actions.</param>
public static void TurnOff(this IAutomationEntityCore target, bool? stopActions = null)
{
target.CallService("turn_off", new AutomationTurnOffParameters { StopActions = stopActions });
}
///<summary>Disables an automation.</summary>
///<param name="target">The IEnumerable<IAutomationEntityCore> to call this service for</param>
///<param name="stopActions">Stops currently running actions.</param>
public static void TurnOff(this IEnumerable<IAutomationEntityCore> target, bool? stopActions = null)
{
target.CallService("turn_off", new AutomationTurnOffParameters { StopActions = stopActions });
}
///<summary>Enables an automation.</summary>
public static void TurnOn(this IAutomationEntityCore target, object? data = null)
{
target.CallService("turn_on", data);
}
///<summary>Enables an automation.</summary>
public static void TurnOn(this IEnumerable<IAutomationEntityCore> target, object? data = null)
{
target.CallService("turn_on", data);
}
}
public static class ButtonEntityExtensionMethods
{
///<summary>Press the button entity.</summary>
public static void Press(this IButtonEntityCore target, object? data = null)
{
target.CallService("press", data);
}
///<summary>Press the button entity.</summary>
public static void Press(this IEnumerable<IButtonEntityCore> target, object? data = null)
{
target.CallService("press", data);
}
}
public static class CalendarEntityExtensionMethods
{
///<summary>Adds a new calendar event.</summary>
public static void CreateEvent(this ICalendarEntityCore target, CalendarCreateEventParameters data)
{
target.CallService("create_event", data);
}
///<summary>Adds a new calendar event.</summary>
public static void CreateEvent(this IEnumerable<ICalendarEntityCore> target, CalendarCreateEventParameters data)
{
target.CallService("create_event", data);
}
///<summary>Adds a new calendar event.</summary>
///<param name="target">The ICalendarEntityCore to call this service for</param>
///<param name="summary">Defines the short summary or subject for the event. eg: Department Party</param>
///<param name="description">A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design.</param>
///<param name="startDateTime">The date and time the event should start. eg: 2022-03-22 20:00:00</param>
///<param name="endDateTime">The date and time the event should end. eg: 2022-03-22 22:00:00</param>
///<param name="startDate">The date the all-day event should start. eg: 2022-03-22</param>
///<param name="endDate">The date the all-day event should end (exclusive). eg: 2022-03-23</param>
///<param name="in">Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2}</param>
///<param name="location">The location of the event. eg: Conference Room - F123, Bldg. 002</param>
///<param name="target">The IEnumerable<ICalendarEntityCore> to call this service for</param>
///<param name="summary">Defines the short summary or subject for the event. eg: Department Party</param>
///<param name="description">A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design.</param>
///<param name="startDateTime">The date and time the event should start. eg: 2022-03-22 20:00:00</param>
///<param name="endDateTime">The date and time the event should end. eg: 2022-03-22 22:00:00</param>
///<param name="startDate">The date the all-day event should start. eg: 2022-03-22</param>
///<param name="endDate">The date the all-day event should end (exclusive). eg: 2022-03-23</param>
///<param name="in">Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2}</param>
///<param name="location">The location of the event. eg: Conference Room - F123, Bldg. 002</param>
public static class InputBooleanEntityExtensionMethods
{
///<summary>Toggles the helper on/off.</summary>
public static void Toggle(this IInputBooleanEntityCore target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Toggles the helper on/off.</summary>
public static void Toggle(this IEnumerable<IInputBooleanEntityCore> target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Turns off the helper.</summary>
public static void TurnOff(this IInputBooleanEntityCore target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Turns off the helper.</summary>
public static void TurnOff(this IEnumerable<IInputBooleanEntityCore> target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Turns on the helper.</summary>
public static void TurnOn(this IInputBooleanEntityCore target, object? data = null)
{
target.CallService("turn_on", data);
}
///<summary>Turns on the helper.</summary>
public static void TurnOn(this IEnumerable<IInputBooleanEntityCore> target, object? data = null)
{
target.CallService("turn_on", data);
}
}
public static class InputTextEntityExtensionMethods
{
///<summary>Sets the value.</summary>
public static void SetValue(this IInputTextEntityCore target, InputTextSetValueParameters data)
{
target.CallService("set_value", data);
}
///<summary>Sets the value.</summary>
public static void SetValue(this IEnumerable<IInputTextEntityCore> target, InputTextSetValueParameters data)
{
target.CallService("set_value", data);
}
///<summary>Sets the value.</summary>
///<param name="target">The IInputTextEntityCore to call this service for</param>
///<param name="value">The target value. eg: This is an example text</param>
public static void SetValue(this IInputTextEntityCore target, string value)
{
target.CallService("set_value", new InputTextSetValueParameters { Value = value });
}
///<summary>Sets the value.</summary>
///<param name="target">The IEnumerable<IInputTextEntityCore> to call this service for</param>
///<param name="value">The target value. eg: This is an example text</param>
public static void SetValue(this IEnumerable<IInputTextEntityCore> target, string value)
{
target.CallService("set_value", new InputTextSetValueParameters { Value = value });
}
}
public static class LightEntityExtensionMethods
{
///<summary>Toggles one or more lights, from on to off, or, off to on, based on their current state.</summary>
public static void Toggle(this ILightEntityCore target, LightToggleParameters data)
{
target.CallService("toggle", data);
}
///<summary>Toggles one or more lights, from on to off, or, off to on, based on their current state.</summary>
public static void Toggle(this IEnumerable<ILightEntityCore> target, LightToggleParameters data)
{
target.CallService("toggle", data);
}
///<summary>Toggles one or more lights, from on to off, or, off to on, based on their current state.</summary>
///<param name="target">The ILightEntityCore to call this service for</param>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<summary>Toggles one or more lights, from on to off, or, off to on, based on their current state.</summary>
///<param name="target">The IEnumerable<ILightEntityCore> to call this service for</param>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<summary>Turn on one or more lights and adjust properties of the light, even when they are turned on already.</summary>
public static void TurnOn(this ILightEntityCore target, LightTurnOnParameters data)
{
target.CallService("turn_on", data);
}
///<summary>Turn on one or more lights and adjust properties of the light, even when they are turned on already.</summary>
public static void TurnOn(this IEnumerable<ILightEntityCore> target, LightTurnOnParameters data)
{
target.CallService("turn_on", data);
}
///<summary>Turn on one or more lights and adjust properties of the light, even when they are turned on already.</summary>
///<param name="target">The ILightEntityCore to call this service for</param>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<param name="brightnessStepPct">Change brightness by a percentage.</param>
///<summary>Turn on one or more lights and adjust properties of the light, even when they are turned on already.</summary>
///<param name="target">The IEnumerable<ILightEntityCore> to call this service for</param>
///<param name="transition">Duration it takes to get to next state.</param>
///<param name="rgbColor">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]</param>
///<param name="kelvin">Color temperature in Kelvin.</param>
///<param name="brightnessPct">Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.</param>
///<param name="brightnessStepPct">Change brightness by a percentage.</param>
public static void Lock(this ILockEntityCore target, LockLockParameters data)
{
target.CallService("lock", data);
}
///<summary>Locks a lock.</summary>
public static void Lock(this IEnumerable<ILockEntityCore> target, LockLockParameters data)
{
target.CallService("lock", data);
}
///<summary>Locks a lock.</summary>
///<param name="target">The ILockEntityCore to call this service for</param>
///<param name="code">Code used to lock the lock. eg: 1234</param>
public static void Lock(this ILockEntityCore target, string? code = null)
{
target.CallService("lock", new LockLockParameters { Code = code });
}
///<summary>Locks a lock.</summary>
///<param name="target">The IEnumerable<ILockEntityCore> to call this service for</param>
///<param name="code">Code used to lock the lock. eg: 1234</param>
public static void Lock(this IEnumerable<ILockEntityCore> target, string? code = null)
{
target.CallService("lock", new LockLockParameters { Code = code });
}
///<summary>Opens a lock.</summary>
public static void Open(this ILockEntityCore target, LockOpenParameters data)
{
target.CallService("open", data);
}
///<summary>Opens a lock.</summary>
public static void Open(this IEnumerable<ILockEntityCore> target, LockOpenParameters data)
{
target.CallService("open", data);
}
///<summary>Opens a lock.</summary>
///<param name="target">The ILockEntityCore to call this service for</param>
///<param name="code">Code used to open the lock. eg: 1234</param>
public static void Open(this ILockEntityCore target, string? code = null)
{
target.CallService("open", new LockOpenParameters { Code = code });
}
///<summary>Opens a lock.</summary>
///<param name="target">The IEnumerable<ILockEntityCore> to call this service for</param>
///<param name="code">Code used to open the lock. eg: 1234</param>
public static void Open(this IEnumerable<ILockEntityCore> target, string? code = null)
{
target.CallService("open", new LockOpenParameters { Code = code });
}
///<summary>Unlocks a lock.</summary>
public static void Unlock(this ILockEntityCore target, LockUnlockParameters data)
{
target.CallService("unlock", data);
}
///<summary>Unlocks a lock.</summary>
public static void Unlock(this IEnumerable<ILockEntityCore> target, LockUnlockParameters data)
{
target.CallService("unlock", data);
}
///<summary>Unlocks a lock.</summary>
///<param name="target">The ILockEntityCore to call this service for</param>
///<param name="code">Code used to unlock the lock. eg: 1234</param>
public static void Unlock(this ILockEntityCore target, string? code = null)
{
target.CallService("unlock", new LockUnlockParameters { Code = code });
}
///<summary>Unlocks a lock.</summary>
///<param name="target">The IEnumerable<ILockEntityCore> to call this service for</param>
///<param name="code">Code used to unlock the lock. eg: 1234</param>
public static void Unlock(this IEnumerable<ILockEntityCore> target, string? code = null)
{
target.CallService("unlock", new LockUnlockParameters { Code = code });
}
}
public static class MediaPlayerEntityExtensionMethods
{
///<summary>Clears the playlist.</summary>
public static void ClearPlaylist(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("clear_playlist", data);
}
///<summary>Clears the playlist.</summary>
public static void ClearPlaylist(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("clear_playlist", data);
}
///<summary>Groups media players together for synchronous playback. Only works on supported multiroom audio systems.</summary>
public static void Join(this IMediaPlayerEntityCore target, MediaPlayerJoinParameters data)
{
target.CallService("join", data);
}
///<summary>Groups media players together for synchronous playback. Only works on supported multiroom audio systems.</summary>
public static void Join(this IEnumerable<IMediaPlayerEntityCore> target, MediaPlayerJoinParameters data)
{
target.CallService("join", data);
}
///<summary>Groups media players together for synchronous playback. Only works on supported multiroom audio systems.</summary>
///<param name="target">The IMediaPlayerEntityCore to call this service for</param>
///<param name="groupMembers">The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 </param>
public static void Join(this IMediaPlayerEntityCore target, IEnumerable<string> groupMembers)
{
target.CallService("join", new MediaPlayerJoinParameters { GroupMembers = groupMembers });
}
///<summary>Groups media players together for synchronous playback. Only works on supported multiroom audio systems.</summary>
///<param name="target">The IEnumerable<IMediaPlayerEntityCore> to call this service for</param>
///<param name="groupMembers">The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 </param>
public static void Join(this IEnumerable<IMediaPlayerEntityCore> target, IEnumerable<string> groupMembers)
{
target.CallService("join", new MediaPlayerJoinParameters { GroupMembers = groupMembers });
}
///<summary>Selects the next track.</summary>
public static void MediaNextTrack(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_next_track", data);
}
///<summary>Selects the next track.</summary>
public static void MediaNextTrack(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_next_track", data);
}
///<summary>Pauses.</summary>
public static void MediaPause(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_pause", data);
}
///<summary>Pauses.</summary>
public static void MediaPause(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_pause", data);
}
///<summary>Starts playing.</summary>
public static void MediaPlay(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_play", data);
}
///<summary>Starts playing.</summary>
public static void MediaPlay(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_play", data);
}
///<summary>Toggles play/pause.</summary>
public static void MediaPlayPause(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_play_pause", data);
}
///<summary>Toggles play/pause.</summary>
public static void MediaPlayPause(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_play_pause", data);
}
///<summary>Selects the previous track.</summary>
public static void MediaPreviousTrack(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_previous_track", data);
}
///<summary>Selects the previous track.</summary>
public static void MediaPreviousTrack(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_previous_track", data);
}
///<summary>Allows you to go to a different part of the media that is currently playing.</summary>
public static void MediaSeek(this IMediaPlayerEntityCore target, MediaPlayerMediaSeekParameters data)
{
target.CallService("media_seek", data);
}
///<summary>Allows you to go to a different part of the media that is currently playing.</summary>
public static void MediaSeek(this IEnumerable<IMediaPlayerEntityCore> target, MediaPlayerMediaSeekParameters data)
{
target.CallService("media_seek", data);
}
///<summary>Allows you to go to a different part of the media that is currently playing.</summary>
///<param name="target">The IMediaPlayerEntityCore to call this service for</param>
///<param name="seekPosition">Target position in the currently playing media. The format is platform dependent.</param>
public static void MediaSeek(this IMediaPlayerEntityCore target, double seekPosition)
{
target.CallService("media_seek", new MediaPlayerMediaSeekParameters { SeekPosition = seekPosition });
}
///<summary>Allows you to go to a different part of the media that is currently playing.</summary>
///<param name="target">The IEnumerable<IMediaPlayerEntityCore> to call this service for</param>
///<param name="seekPosition">Target position in the currently playing media. The format is platform dependent.</param>
public static void MediaSeek(this IEnumerable<IMediaPlayerEntityCore> target, double seekPosition)
{
target.CallService("media_seek", new MediaPlayerMediaSeekParameters { SeekPosition = seekPosition });
}
///<summary>Stops playing.</summary>
public static void MediaStop(this IMediaPlayerEntityCore target, object? data = null)
{
target.CallService("media_stop", data);
}
///<summary>Stops playing.</summary>
public static void MediaStop(this IEnumerable<IMediaPlayerEntityCore> target, object? data = null)
{
target.CallService("media_stop", data);
}
///<summary>Starts playing specified media.</summary>
public static void PlayMedia(this IMediaPlayerEntityCore target, MediaPlayerPlayMediaParameters data)
{
target.CallService("play_media", data);
}
///<summary>Starts playing specified media.</summary>
public static void PlayMedia(this IEnumerable<IMediaPlayerEntityCore> target, MediaPlayerPlayMediaParameters data)
{
target.CallService("play_media", data);
}
///<summary>Starts playing specified media.</summary>
///<param name="target">The IMediaPlayerEntityCore to call this service for</param>
///<param name="mediaContentId">The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png</param>
///<param name="mediaContentType">The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music</param>
///<param name="enqueue">If the content should be played now or be added to the queue.</param>
///<param name="announce">If the media should be played as an announcement. eg: true</param>
///<summary>Starts playing specified media.</summary>
///<param name="target">The IEnumerable<IMediaPlayerEntityCore> to call this service for</param>
///<param name="mediaContentId">The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png</param>
///<param name="mediaContentType">The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music</param>
///<param name="enqueue">If the content should be played now or be added to the queue.</param>
///<param name="announce">If the media should be played as an announcement. eg: true</param>
///<summary>Learns a command or a list of commands from a device.</summary>
public static void LearnCommand(this IRemoteEntityCore target, RemoteLearnCommandParameters data)
{
target.CallService("learn_command", data);
}
///<summary>Learns a command or a list of commands from a device.</summary>
public static void LearnCommand(this IEnumerable<IRemoteEntityCore> target, RemoteLearnCommandParameters data)
{
target.CallService("learn_command", data);
}
///<summary>Learns a command or a list of commands from a device.</summary>
///<param name="target">The IRemoteEntityCore to call this service for</param>
///<param name="device">Device ID to learn command from. eg: television</param>
///<param name="command">A single command or a list of commands to learn. eg: Turn on</param>
///<param name="commandType">The type of command to be learned.</param>
///<param name="alternative">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.</param>
///<param name="timeout">Timeout for the command to be learned.</param>
target.CallService("learn_command", new RemoteLearnCommandParameters { Device = device, Command = command, CommandType = commandType, Alternative = alternative, Timeout = timeout });
}
///<summary>Learns a command or a list of commands from a device.</summary>
///<param name="target">The IEnumerable<IRemoteEntityCore> to call this service for</param>
///<param name="device">Device ID to learn command from. eg: television</param>
///<param name="command">A single command or a list of commands to learn. eg: Turn on</param>
///<param name="commandType">The type of command to be learned.</param>
///<param name="alternative">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.</param>
///<param name="timeout">Timeout for the command to be learned.</param>
///<summary>Toggle a script. Starts it, if isn't running, stops it otherwise.</summary>
public static void Toggle(this IScriptEntityCore target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Toggle a script. Starts it, if isn't running, stops it otherwise.</summary>
public static void Toggle(this IEnumerable<IScriptEntityCore> target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Stops a running script.</summary>
public static void TurnOff(this IScriptEntityCore target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Stops a running script.</summary>
public static void TurnOff(this IEnumerable<IScriptEntityCore> target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Runs the sequence of actions defined in a script.</summary>
public static void TurnOn(this IScriptEntityCore target, object? data = null)
{
target.CallService("turn_on", data);
}
///<summary>Runs the sequence of actions defined in a script.</summary>
public static void TurnOn(this IEnumerable<IScriptEntityCore> target, object? data = null)
{
target.CallService("turn_on", data);
}
}
public static class SelectEntityExtensionMethods
{
///<summary>Selects the first option.</summary>
public static void SelectFirst(this ISelectEntityCore target, object? data = null)
{
target.CallService("select_first", data);
}
///<summary>Selects the first option.</summary>
public static void SelectFirst(this IEnumerable<ISelectEntityCore> target, object? data = null)
{
target.CallService("select_first", data);
}
///<summary>Selects the last option.</summary>
public static void SelectLast(this ISelectEntityCore target, object? data = null)
{
target.CallService("select_last", data);
}
///<summary>Selects the last option.</summary>
public static void SelectLast(this IEnumerable<ISelectEntityCore> target, object? data = null)
{
target.CallService("select_last", data);
}
///<summary>Selects the next option.</summary>
public static void SelectNext(this ISelectEntityCore target, SelectSelectNextParameters data)
{
target.CallService("select_next", data);
}
///<summary>Selects the next option.</summary>
public static void SelectNext(this IEnumerable<ISelectEntityCore> target, SelectSelectNextParameters data)
{
target.CallService("select_next", data);
}
///<summary>Selects the next option.</summary>
///<param name="target">The ISelectEntityCore to call this service for</param>
///<param name="cycle">If the option should cycle from the last to the first.</param>
public static void SelectNext(this ISelectEntityCore target, bool? cycle = null)
{
target.CallService("select_next", new SelectSelectNextParameters { Cycle = cycle });
}
///<summary>Selects the next option.</summary>
///<param name="target">The IEnumerable<ISelectEntityCore> to call this service for</param>
///<param name="cycle">If the option should cycle from the last to the first.</param>
public static void SelectNext(this IEnumerable<ISelectEntityCore> target, bool? cycle = null)
{
target.CallService("select_next", new SelectSelectNextParameters { Cycle = cycle });
}
///<summary>Selects an option.</summary>
public static void SelectOption(this ISelectEntityCore target, SelectSelectOptionParameters data)
{
target.CallService("select_option", data);
}
///<summary>Selects an option.</summary>
public static void SelectOption(this IEnumerable<ISelectEntityCore> target, SelectSelectOptionParameters data)
{
target.CallService("select_option", data);
}
///<summary>Selects an option.</summary>
///<param name="target">The ISelectEntityCore to call this service for</param>
///<param name="option">Option to be selected. eg: "Item A"</param>
public static void SelectOption(this ISelectEntityCore target, string option)
{
target.CallService("select_option", new SelectSelectOptionParameters { Option = option });
}
///<summary>Selects an option.</summary>
///<param name="target">The IEnumerable<ISelectEntityCore> to call this service for</param>
///<param name="option">Option to be selected. eg: "Item A"</param>
public static void SelectOption(this IEnumerable<ISelectEntityCore> target, string option)
{
target.CallService("select_option", new SelectSelectOptionParameters { Option = option });
}
///<summary>Selects the previous option.</summary>
public static void SelectPrevious(this ISelectEntityCore target, SelectSelectPreviousParameters data)
{
target.CallService("select_previous", data);
}
///<summary>Selects the previous option.</summary>
public static void SelectPrevious(this IEnumerable<ISelectEntityCore> target, SelectSelectPreviousParameters data)
{
target.CallService("select_previous", data);
}
///<summary>Selects the previous option.</summary>
///<param name="target">The ISelectEntityCore to call this service for</param>
///<param name="cycle">If the option should cycle from the first to the last.</param>
public static void SelectPrevious(this ISelectEntityCore target, bool? cycle = null)
{
target.CallService("select_previous", new SelectSelectPreviousParameters { Cycle = cycle });
}
///<summary>Selects the previous option.</summary>
///<param name="target">The IEnumerable<ISelectEntityCore> to call this service for</param>
///<param name="cycle">If the option should cycle from the first to the last.</param>
public static void SelectPrevious(this IEnumerable<ISelectEntityCore> target, bool? cycle = null)
{
target.CallService("select_previous", new SelectSelectPreviousParameters { Cycle = cycle });
}
}
public static class SwitchEntityExtensionMethods
{
///<summary>Toggles a switch on/off.</summary>
public static void Toggle(this ISwitchEntityCore target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Toggles a switch on/off.</summary>
public static void Toggle(this IEnumerable<ISwitchEntityCore> target, object? data = null)
{
target.CallService("toggle", data);
}
///<summary>Turns a switch off.</summary>
public static void TurnOff(this ISwitchEntityCore target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Turns a switch off.</summary>
public static void TurnOff(this IEnumerable<ISwitchEntityCore> target, object? data = null)
{
target.CallService("turn_off", data);
}
///<summary>Turns a switch on.</summary>
public static void TurnOn(this ISwitchEntityCore target, object? data = null)
{
target.CallService("turn_on", data);
}
///<summary>Turns a switch on.</summary>
public static void TurnOn(this IEnumerable<ISwitchEntityCore> target, object? data = null)
{
target.CallService("turn_on", data);
}
}
public static class TimerEntityExtensionMethods
{
///<summary>Cancels a timer.</summary>
public static void Cancel(this ITimerEntityCore target, object? data = null)
{
target.CallService("cancel", data);
}
///<summary>Cancels a timer.</summary>
public static void Cancel(this IEnumerable<ITimerEntityCore> target, object? data = null)
{
target.CallService("cancel", data);
}
///<summary>Changes a timer.</summary>
public static void Change(this ITimerEntityCore target, TimerChangeParameters data)
{
target.CallService("change", data);
}
///<summary>Changes a timer.</summary>
public static void Change(this IEnumerable<ITimerEntityCore> target, TimerChangeParameters data)
{
target.CallService("change", data);
}
///<summary>Changes a timer.</summary>
///<param name="target">The ITimerEntityCore to call this service for</param>
///<param name="duration">Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60</param>
public static void Change(this ITimerEntityCore target, string duration)
{
target.CallService("change", new TimerChangeParameters { Duration = duration });
}
///<summary>Changes a timer.</summary>
///<param name="target">The IEnumerable<ITimerEntityCore> to call this service for</param>
///<param name="duration">Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60</param>
public static void Change(this IEnumerable<ITimerEntityCore> target, string duration)
{
target.CallService("change", new TimerChangeParameters { Duration = duration });
}
///<summary>Finishes a timer.</summary>
public static void Finish(this ITimerEntityCore target, object? data = null)
{
target.CallService("finish", data);
}
///<summary>Finishes a timer.</summary>
public static void Finish(this IEnumerable<ITimerEntityCore> target, object? data = null)
{
target.CallService("finish", data);
}
///<summary>Pauses a timer.</summary>
public static void Pause(this ITimerEntityCore target, object? data = null)
{
target.CallService("pause", data);
}
///<summary>Pauses a timer.</summary>
public static void Pause(this IEnumerable<ITimerEntityCore> target, object? data = null)
{
target.CallService("pause", data);
}
///<summary>Starts a timer.</summary>
public static void Start(this ITimerEntityCore target, TimerStartParameters data)
{
target.CallService("start", data);
}
///<summary>Starts a timer.</summary>
public static void Start(this IEnumerable<ITimerEntityCore> target, TimerStartParameters data)
{
target.CallService("start", data);
}
///<summary>Starts a timer.</summary>
///<param name="target">The ITimerEntityCore to call this service for</param>
///<param name="duration">Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60</param>
public static void Start(this ITimerEntityCore target, string? duration = null)
{
target.CallService("start", new TimerStartParameters { Duration = duration });
}
///<summary>Starts a timer.</summary>
///<param name="target">The IEnumerable<ITimerEntityCore> to call this service for</param>
///<param name="duration">Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60</param>
public static void Start(this IEnumerable<ITimerEntityCore> target, string? duration = null)
{
target.CallService("start", new TimerStartParameters { Duration = duration });
}
}
public static class TodoEntityExtensionMethods
{
///<summary>Add a new to-do list item.</summary>
public static void AddItem(this TodoEntity target, TodoAddItemParameters data)
{
target.CallService("add_item", data);
}
///<summary>Add a new to-do list item.</summary>
public static void AddItem(this IEnumerable<TodoEntity> target, TodoAddItemParameters data)
{
target.CallService("add_item", data);
}
///<summary>Add a new to-do list item.</summary>
///<param name="target">The TodoEntity to call this service for</param>
///<param name="item">The name that represents the to-do item. eg: Submit income tax return</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>
///<param name="target">The IEnumerable<TodoEntity> to call this service for</param>
///<param name="item">The name that represents the to-do item. eg: Submit income tax return</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>
///<summary>Remove an existing to-do list item by its name.</summary>
public static void RemoveItem(this TodoEntity target, TodoRemoveItemParameters data)
{
target.CallService("remove_item", data);
}
///<summary>Remove an existing to-do list item by its name.</summary>
public static void RemoveItem(this IEnumerable<TodoEntity> target, TodoRemoveItemParameters data)
{
target.CallService("remove_item", data);
}
///<summary>Remove an existing to-do list item by its name.</summary>
///<param name="target">The TodoEntity to call this service for</param>
///<param name="item">The name for the to-do list items.</param>
public static void RemoveItem(this TodoEntity target, string item)
{
target.CallService("remove_item", new TodoRemoveItemParameters { Item = item });
}
///<summary>Remove an existing to-do list item by its name.</summary>
///<param name="target">The IEnumerable<TodoEntity> to call this service for</param>
///<param name="item">The name for the to-do list items.</param>
public static void RemoveItem(this IEnumerable<TodoEntity> target, string item)
{
target.CallService("remove_item", new TodoRemoveItemParameters { Item = item });
}
///<summary>Update an existing to-do list item based on its name.</summary>
public static void UpdateItem(this TodoEntity target, TodoUpdateItemParameters data)
{
target.CallService("update_item", data);
}
///<summary>Update an existing to-do list item based on its name.</summary>
public static void UpdateItem(this IEnumerable<TodoEntity> target, TodoUpdateItemParameters data)
{
target.CallService("update_item", data);
}
///<summary>Update an existing to-do list item based on its name.</summary>
///<param name="target">The TodoEntity to call this service for</param>
///<param name="item">The name for the to-do list item. eg: Submit income tax return</param>
///<param name="rename">The new name of the to-do item eg: Something else</param>
///<param name="status">A status or confirmation of the to-do item. eg: needs_action</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>
///<summary>Update an existing to-do list item based on its name.</summary>
///<param name="target">The IEnumerable<TodoEntity> to call this service for</param>
///<param name="item">The name for the to-do list item. eg: Submit income tax return</param>
///<param name="rename">The new name of the to-do item eg: Something else</param>
///<param name="status">A status or confirmation of the to-do item. eg: needs_action</param>
///<param name="dueDate">The date the to-do item is expected to be completed. eg: 2023-11-17</param>
///<param name="dueDatetime">The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00</param>
///<param name="description">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.</param>