Added Alexa Music
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
# ty:ignore[unresolved-import]
|
||||
"""Schemas."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import voluptuous as vol
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
|
||||
from .const import (
|
||||
ATTR_COMMAND,
|
||||
ATTR_CONFIG_ENTRY_ID,
|
||||
ATTR_DATA,
|
||||
ATTR_DURATION,
|
||||
ATTR_FAVORITE,
|
||||
ATTR_LIMIT,
|
||||
ATTR_LIMIT_AFTER,
|
||||
ATTR_LIMIT_BEFORE,
|
||||
ATTR_LOCAL_IMAGE_ENCODED,
|
||||
ATTR_MEDIA_ALBUM_NAME,
|
||||
ATTR_MEDIA_ARTIST,
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_IMAGE,
|
||||
ATTR_MEDIA_TITLE,
|
||||
ATTR_OFFSET,
|
||||
ATTR_PAGE,
|
||||
ATTR_PLAYER_ENTITY,
|
||||
ATTR_PLAYLIST_ID,
|
||||
ATTR_POSITION,
|
||||
ATTR_POSITIONS_TO_REMOVE,
|
||||
ATTR_PROVIDERS,
|
||||
ATTR_QUEUE_ITEM_ID,
|
||||
ATTR_QUEUE_ITEMS,
|
||||
ATTR_URI,
|
||||
ATTR_VOLUME_LEVEL,
|
||||
)
|
||||
|
||||
CLEAR_QUEUE_FROM_HERE_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
},
|
||||
)
|
||||
|
||||
GET_GROUP_VOLUME_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
},
|
||||
)
|
||||
|
||||
QUEUE_ITEM_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
vol.Required(ATTR_MEDIA_TITLE): str,
|
||||
vol.Required(ATTR_MEDIA_ALBUM_NAME): str,
|
||||
vol.Required(ATTR_MEDIA_ARTIST): str,
|
||||
vol.Required(ATTR_MEDIA_CONTENT_ID): str,
|
||||
vol.Required(ATTR_MEDIA_IMAGE): str,
|
||||
vol.Required(ATTR_FAVORITE): bool,
|
||||
vol.Optional(ATTR_LOCAL_IMAGE_ENCODED): str,
|
||||
},
|
||||
)
|
||||
|
||||
TRACK_ITEM_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_MEDIA_TITLE): str,
|
||||
vol.Optional(ATTR_MEDIA_ALBUM_NAME): str,
|
||||
vol.Optional(ATTR_MEDIA_ARTIST): str,
|
||||
vol.Required(ATTR_MEDIA_CONTENT_ID): str,
|
||||
vol.Required(ATTR_MEDIA_IMAGE): str,
|
||||
vol.Required(ATTR_FAVORITE): bool,
|
||||
vol.Required(ATTR_DURATION): vol.Any(int, None),
|
||||
vol.Optional(ATTR_LOCAL_IMAGE_ENCODED): str,
|
||||
vol.Optional(ATTR_POSITION): str,
|
||||
},
|
||||
)
|
||||
|
||||
QUEUE_DETAILS_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_QUEUE_ITEMS): vol.All(
|
||||
cv.ensure_list,
|
||||
[vol.Schema(QUEUE_ITEM_SCHEMA)],
|
||||
),
|
||||
},
|
||||
)
|
||||
|
||||
QUEUE_ITEMS_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Optional(ATTR_OFFSET): int,
|
||||
vol.Optional(ATTR_LIMIT): int,
|
||||
vol.Optional(ATTR_LIMIT_BEFORE): int,
|
||||
vol.Optional(ATTR_LIMIT_AFTER): int,
|
||||
},
|
||||
)
|
||||
PLAY_QUEUE_ITEM_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
},
|
||||
)
|
||||
REMOVE_QUEUE_ITEM_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
},
|
||||
)
|
||||
MOVE_QUEUE_ITEM_UP_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
},
|
||||
)
|
||||
MOVE_QUEUE_ITEM_DOWN_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
},
|
||||
)
|
||||
MOVE_QUEUE_ITEM_NEXT_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_QUEUE_ITEM_ID): str,
|
||||
},
|
||||
)
|
||||
|
||||
SEND_COMMAND_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_COMMAND): str,
|
||||
vol.Optional(ATTR_DATA, default={}): dict,
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): str,
|
||||
},
|
||||
)
|
||||
|
||||
GET_TRACKS_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): str,
|
||||
vol.Required(ATTR_URI): str,
|
||||
vol.Optional(ATTR_PAGE): int,
|
||||
},
|
||||
)
|
||||
|
||||
GET_PODCAST_EPISODES_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): str,
|
||||
vol.Required(ATTR_URI): str,
|
||||
},
|
||||
)
|
||||
|
||||
GET_DATA_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): str,
|
||||
vol.Required(ATTR_URI): str,
|
||||
},
|
||||
)
|
||||
|
||||
GET_RECOMMENDATIONS_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Optional(ATTR_PROVIDERS): [str],
|
||||
},
|
||||
)
|
||||
|
||||
UNFAVORITE_CURRENT_ITEM_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
},
|
||||
)
|
||||
|
||||
SET_GROUP_VOLUME_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_PLAYER_ENTITY): str,
|
||||
vol.Required(ATTR_VOLUME_LEVEL): int,
|
||||
},
|
||||
)
|
||||
|
||||
REMOVE_PLAYLIST_TRACKS_SERVICE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_CONFIG_ENTRY_ID): str,
|
||||
vol.Required(ATTR_PLAYLIST_ID): vol.Any(int, str),
|
||||
vol.Required(ATTR_POSITIONS_TO_REMOVE): vol.Any(int, [int], str, [str]),
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user