get_queue_items:
  fields:
    limit:
      name: Limit
      description: Limit on the number of items in queue to return
      required: false
      example: 500
      selector:
        number:
          min: 1
          max: 1000
          step: 1
    offset:
      name: Offset
      description: Location in queue to start where zero equals the first item in queue, not the current item.
      required: false
      advanced: true
      example: 50
      selector:
        number:
          min: 1
          max: 1000
          step: 1
    limit_before:
      name: Limit Before
      description: Number of items to pull before current active item in queue.
      required: false
      example: 5
      default: 5
      selector:
        number:
          min: 1
          max: 1000
          step: 1
    limit_after:
      name: Limit After
      description: Number of items to pull after current active item in queue.
      required: false
      example: 50
      default: 100
      selector:
        number:
          min: 1
          max: 1000
          step: 1
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
remove_queue_item:
  fields:
    queue_item_id:
      name: Queue Item ID
      required: true
      selector:
        text:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
move_queue_item_up:
  fields:
    queue_item_id:
      name: Queue Item ID
      required: true
      selector:
        text:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
move_queue_item_down:
  fields:
    queue_item_id:
      name: Queue Item ID
      required: true
      selector:
        text:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
move_queue_item_next:
  fields:
    queue_item_id:
      name: Queue Item ID
      required: true
      selector:
        text:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
play_queue_item:
  fields:
    queue_item_id:
      name: Queue Item ID
      required: true
      selector:
        text:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
send_command:
  fields:
    command:
      name: Command
      description: Command to send to Music Assistant
      required: true
      selector:
        text:
    data:
      name: Data
      description: Command data to send
      required: false
      default: {}
      selector:
        object:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue

unfavorite_current_item:
  fields:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
get_recommendations:
  fields:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
    providers:
      name: Providers
      description: Limit recommendations to the specified providers.
      required: false
      selector:
        text:
          multiple: true
get_group_volume:
  fields:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
set_group_volume:
  fields:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
    volume_level:
      name: Volume Level
      description: Volume level to set the player to.
      required: true
      selector:
        number:
          min: 1
          max: 100
          step: 1
          unit_of_measurement: "%"
          mode: slider

clear_queue_from_here:
  fields:
    entity:
      name: Entity
      description: Music Assistant Media Player Entity
      required: true
      selector:
        entity:
          domain: media_player
          integration: music_assistant
get_playlist_tracks:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Playlist URI
      description: URI for the playlist
      selector:
        text:
      example: "library://playlist/12"
      required: true
    page:
      selector:
        number:
          min: 0
          max: 1000
          step: 1
          mode: box
      required: false
      example: 0
get_album_tracks:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Album URI
      description: URI for the album
      selector:
        text:
      example: "library://album/12"
      required: true
    page:
      selector:
        number:
          min: 0
          max: 1000
          step: 1
          mode: box
      required: false
      example: 0
get_artist_tracks:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Artist URI
      description: URI for the artist
      selector:
        text:
      example: "library://artist/12"
      required: true
    page:
      selector:
        number:
          min: 0
          max: 1000
          step: 1
          mode: box
      required: false
      example: 0
get_podcast_episodes:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Podcast URI
      description: URI for the podcast
      selector:
        text:
      example: "library://podcast/12"
      required: true
get_album:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Album URI
      description: URI for the Album
      selector:
        text:
      example: "library://album/12"
      required: true
get_artist:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Artist URI
      description: URI for the artist
      selector:
        text:
      example: "library://artist/12"
      required: true
get_playlist:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Playlist URI
      description: URI for the playlist
      selector:
        text:
      example: "library://playlist/12"
      required: true
get_podcast:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    uri:
      name: Podcast URI
      description: URI for the podcast
      selector:
        text:
      example: "library://podcast/12"
      required: true
remove_playlist_tracks:
  fields:
    config_entry_id:
      name: Config Entry ID
      required: true
      selector:
        config_entry:
          integration: mass_queue
    playlist_id:
      required: true
      selector:
        text:
    positions_to_remove:
      required: true
      selector:
        text:
          multiple: true
