mobileclient.schemas — Mobile API response schemas

All mobile client schemas are a subclass of marshmallow.Schema with the strict option set to True. Unknown fields trigger a marshmallow.ValidationError exception.

class AlbumSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'albumArtist': 'albumArtist',
        'albumArtRef': 'albumArtRef',
        'albumId': 'albumId',
        'artist': 'artist',
        'artistId': ['artistId'],
        'contentType': 'contentType',
        'description': 'description',
        'description_attribution': ATTRIBUTION,
        'explicitType': 'explicitType',
        'kind': 'sj#album',
        'name': 'name',
        'tracks': [STORE_TRACK],
        'year': 2000
}
class ArtRefSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'url': 'url'
}
class ArtistSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'albums': [ALBUM],
        'artistArtRef': 'artistArtRef',
        'artistArtRefs': [IMAGE_REF],
        'artistBio': 'artistBio',
        'artistId': 'artistId',
        'artist_bio_attribution': ATTRIBUTION,
        'kind': 'sj#artist',
        'name': 'name',
        'related_artists': [],
        'topTracks': [STORE_TRACK],
        'total_albums': 1
}
class AttributionSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#attribution',
        'license_title': 'license title',
        'license_url': 'license url',
        'source_title': 'source title',
        'source_url': 'source url'
}
class BrowseStationCategoriesSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#getStationCategoriesResponse',
        'root': STATION_CATEGORY
}
class BrowseStationsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#getStationsResponse',
        'stations': [RADIO_STATION]
}
class BrowseTopChartGenresSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'genres': [GENRE_REF]
}
class BrowseTopChartSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'chart': TOP_CHART,
        'header': TOP_CHART_HEADER
}
class ColorStyleSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'blue': 0,
        'green': 0,
        'red': 0
}
class ConfigEntrySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'key': 'key',
        'kind': 'sj#configEntry',
        'value': 'value'
}
class ConfigListEntriesSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'entries': [CONFIG_ENTRY]
}
class ConfigListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': CONFIG_LIST_ENTRIES,
        'kind': 'sj#configList'
}
class DeviceManagementInfoSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'friendlyName': 'friendlyName',
        'id': 'id',
        'kind': 'sj#devicemanagementinfo',
        'lastAccessedTimeMs': 42,
        'smartPhone': True,
        'type': 'type'
}
class DistilledContextWrapperSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'distilledContextToken': 'distilledContextToken'
}
class EphemeralTopItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items' = [STORE_TRACKS]
}
class EphemeralTopSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': EPHEMERAL_TOP_ITEMS,
        'kind': 'sj#trackList',
        'nextPageToken': 'nextPageToken'
}
class ExploreTabEntityGroupSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'continuationToken': 'continuationToken',
        'entities': [EXPLORE_TAB_ENTITY],
        'group_type': 'group_type',
        'kind': 'sj#exEntityGroup',
        'start_position': 0,
        'title': 'title'
}
class ExploreTabEntitySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'album': ALBUM,
        'genre': GENRE,
        'kind': 'sj#exEntity',
        'playlist': PLAYLIST,
        'track': STORE_TRACK
}
class ExploreTabSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'groups': [EXPLORE_TAB_ENTITY_GROUP],
        'kind': 'sj#exTab',
        'tab_type': 'tab_type'
}
class ExploreTabsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#exGetTabsResponse',
        'tabs': [EXPLORE_TAB]
}
class GenreListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'genres': [GENRE],
        'kind': 'sj#exGetMusicGenresResponse'
}
class GenreRefSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'id': 'id',
        'kind': 'sj#genreRef',
        'title': 'title'
}
class GenreSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'children': ['child'],
        'id': 'id',
        'images': [ART_REF],
        'kind': 'sj#musicGenre',
        'name': 'name',
        'parentId': 'parentId'
}
class ImageColorStylesSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'accent': {
                'blue': 0,
                'green': 0,
                'red': 0
        },
        'primary': {
                'blue': 0,
                'green': 0,
                'red': 0
        },
        'scrim': {
                'blue': 0,
                'green': 0,
                'red': 0
        }
}
class ImageRefSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'aspectRatio': 'aspectRatio',
        'autogen': False,
        'colorStyles': {
                'accent': {
                        'blue': 0,
                        'green': 0,
                        'red': 0
                },
                'primary': {
                        'blue': 0,
                        'green': 0,
                        'red': 0
                },
                'scrim': {
                        'blue': 0,
                        'green': 0,
                        'red': 0
                }
        },
        'kind': 'sj#imageRef',
        'url': 'url'
}
class IsPlaylistSharedSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'is_shared': True
}
class ListenNowAlbumIDSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'artist': 'artist',
        'metajamCompactKey': 'metajamCompactKey',
        'title': 'title'
}
class ListenNowAlbumSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'artist_metajam_id': 'artist_metajam_id',
        'artist_name': 'artist_name',
        'artist_profile_image': ART_REF,
        'description': 'description',
        'description_attribution': ATTRIBUTION,
        'explicitType': 'explicitType',
        'id': LISTEN_NOW_ALBUM_ID,
        'title': 'title'
}
class ListenNowDismissedItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#listenNowDismissedItemList',
        'minLastModifiedIgnored': True
}
class ListenNowItemListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'kind': 'sj#listenNowItemList',
        'listennow_items': [LISTEN_NOW_ITEM]
}
class ListenNowItemSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'album': LISTEN_NOW_ALBUM,
        'compositeArtRefs': [IMAGE_REF],
        'images': [IMAGE_REF],
        'kind': 'sj#listennowitem',
        'radio_station': LISTEN_NOW_RADIO_STATION,
        'suggestion_reason': 'suggestion_reason',
        'suggestion_text': 'suggestion_text',
        'type': 'type'
}
class ListenNowRadioStationIDSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'seeds': [RADIO_SEED]
}
class ListenNowRadioStationSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'highlight_color': 'highlight_color',
        'id': LISTEN_NOW_RADIO_STATION_ID,
        'profile_image': ART_REF,
        'title': 'title'
}
class ListenNowSituationListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'distilledContextWrapper': DISTILLED_CONTEXT_WRAPPER,
        'primaryHeader': 'primaryHeader',
        'situations': [SITUATION],
        'subHeader': 'subHeader'
}
class PlaylistEntryItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [PLAYLIST_ENTRY]
}
class PlaylistEntryListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': PLAYLIST_ENTRY_ITEMS,
        'kind': 'sj#playlistEntryList',
        'nextPageToken': 'nextPageToken'
}
class PlaylistEntrySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'absolutePosition': 'absolutePosition',
        'clientId': 'clientId',
        'creationTimestamp': 'creationTimestamp',
        'deleted': False,
        'id': 'id',
        'kind': 'sj#playlistEntry',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'playlistId': 'playlistId',
        'track': STORE_TRACK,
        'trackId': 'trackId'
}
class PlaylistListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [PLAYLIST]
}
class PlaylistListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': PLAYLIST_LIST_ITEMS,
        'kind': 'sj#playlistList',
        'nextPageToken': 'nextPageToken'
}
class PlaylistSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'accessControlled': False,
        'albumArtRef': [ART_REF],
        'clientId': 'clientId',
        'contentType': 'contentType',
        'creationTimestamp': 'creationTimestamp',
        'deleted': False,
        'description': 'description',
        'explicitType': 'explicitType',
        'id': 'id',
        'kind': 'sj#playlist',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'name': 'name',
        'ownerName': 'ownerName',
        'ownerProfilePhotoUrl': 'ownerProfilePhotoUrl',
        'recentTimestamp': 'recentTimestamp',
        'shareState': 'shareState',
        'shareToken': 'shareToken',
        'type': 'USER_GENERATED'
}
class PodcastBrowseHierarchySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'groups': [PODCAST_GENRE]
}
class PodcastBrowseSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'series': [PODCAST_SERIES]
}
class PodcastEpisodeListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [PODCAST_EPISODE]
}
class PodcastEpisodeListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': PODCAST_EPISODE_LIST_ITEMS,
        'kind': 'sj#podcastEpisodeList',
        'nextPageToken': 'nextPageToken'
}
class PodcastEpisodeSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'art': [IMAGE_REF],
        'author': 'author',
        'deleted': False,
        'description': 'description',
        'durationMillis': 'durationMillis',
        'episodeId': 'episodeId',
        'explicitType': 'explicitType',
        'fileSize': 'fileSize',
        'playbackPositionMillis': 'playbackPositionMillis',
        'publicationTimestampMillis': 'publicationTimestampMillis',
        'seriesId': 'seriesId',
        'seriesTitle': 'seriesTitle',
        'title': 'title'
}
class PodcastGenreSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'displayName': 'displayName',
        'id': 'id',
        'subgroups': []
}
class PodcastSeriesListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [PODCAST_SERIES]
}
class PodcastSeriesListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': PODCAST_SERIES_LIST_ITEMS,
        'kind': 'sj#podcastSeriesList',
        'nextPageToken': 'nextPageToken'
}
class PodcastSeriesSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'art': [IMAGE_REF],
        'author': 'author',
        'continuationToken': 'continuationToken',
        'copyright': 'copyright',
        'description': 'description',
        'episodes': [PODCAST_EPISODE],
        'explicitType': 'explicitType',
        'link': 'link',
        'seriesId': 'seriesId',
        'title': 'title',
        'totalNumEpisodes': 42,
        'userPreferences': PODCAST_SERIES_USER_PREFERENCES
}
class PodcastSeriesUserPreferencesSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'autoDownload': False,
        'notifyOnNewEpisode': False,
        'subscribed': True
}
class RadioFeedItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'currentTimestampMillis': 'currentTimestampMillis',
        'radioConstraints': RADIO_CONSTRAINTS
        'stations': [RADIO_STATION],
}
class RadioFeedSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': RADIO_FEED_ITEMS,
        'kind': 'sj#radioFeed'
}
class RadioListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [RADIO_STATION]
}
class RadioListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': RADIO_LIST_ITEMS,
        'kind': 'sj#radioList',
        'nextPageToken': 'nextPageToken'
}
class RadioSeedMetadataSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'artist': ARTIST,
        'genre': GENRE,
        'kind': 'sj#radioSeedMetadata',
        'track': STORE_TRACK
}
class RadioSeedSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'albumId': 'albumId',
        'artistId': 'artistId',
        'curatedStationId': 'curatedStationId',
        'genreId': 'genreId',
        'kind': 'sj#radioSeed',
        'metadataSeed': RADIO_SEED_METADATA,
        'seedType': 'seedType',
        'trackId': 'trackId',
        'trackLockerId': 'trackLockerId'
}
class RadioStationSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'byline': 'byline',
        'clientId': 'clientId',
        'compositeArtRefs': [IMAGE_REF],
        'contentTypes': ['contentType'],
        'deleted': False,
        'description': 'description',
        'enforcementResult': False,
        'id': 'id',
        'imageUrl': 'imageUrl',
        'imageUrls': [IMAGE_REF],
        'inLibrary': True,
        'kind': 'sj#radioStation',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'name': 'name',
        'recentTimestamp': 'recentTimestamp',
        'seed': RADIO_SEED,
        'sessionToken': 'sessionToken',
        'skipEventHistory': [],
        'stationSeeds': [RADIO_SEED],
        'tracks': [STORE_TRACK]
}
class SearchResponseSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'clusterDetail': [SEARCH_RESULT_CLUSTER],
        'kind': 'sj#searchresponse'
}
class SearchResultSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'album': ALBUM,
        'artist': ARTIST,
        'playlist': {k: v for k, v in PLAYLIST.items() if k not in ['creationTimestamp', 'id', 'lastModifiedTimestamp']},
        'score': 42,
        'series': PODCAST_SERIES,
        'situation': SITUATION,
        'station': RADIO_STATION,
        'track': STORE_TRACK,
        'type': 'type',
        'youtube_video': SEARCH_RESULT_VIDEO
}
class SearchResultVideoSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

SEARCH_RESULT_VIDEO = {
        'id': 'id',
        'kind': 'sj#video',
        'thumbnails': [VIDEO_THUMBNAIL],
        'title': 'title'
}
class SearchSuggestedQuerySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'suggestionCategory': 'suggestionCategory',
        'suggestion_string': 'suggestion_string',
        'type': 'type'
}
class SearchSuggestionSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'suggested_queries': [SEARCH_SUGGESTED_QUERY]
}
class SharedPlaylistEntryItemSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'playlistEntry': SHARED_PLAYLIST_ENTRY,
        'responseCode': 'responseCode',
        'shareToken': 'shareToken'
}
class SharedPlaylistEntryListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'entries': [SHARED_PLAYLIST_ENTRY_ITEM],
        'kind': 'sj#listSharedPlaylistEntriesResponse'
}
class SharedPlaylistEntrySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'absolutePosition': 'absolutePosition',
        'creationTimestamp': 'creationTimestamp',
        'deleted': False,
        'id': 'id',
        'kind': 'sj#playlistEntry',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'source': 'source',
        'track': STORE_TRACK,
        'trackId': 'trackId'
}
class SituationSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'description': 'description',
        'id': 'id',
        'imageUrl': 'imageUrl',
        'situations': [],
        'stations': [RADIO_STATION],
        'title': 'title',
        'wideImageUrl': 'wideImageUrl'
}
class StationCategorySchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'display_name': 'display_name',
        'id': 'id',
        'kind': 'sj#stationCategory',
        'subcategories': []
}
class StoreTrackSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'album': 'album',
        'albumArtRef': [IMAGE_REF],
        'albumArtist': 'albumArtist',
        'albumAvailableForPurchase': True,
        'albumId': 'albumId',
        'artist': 'artist',
        'artistArtRef': [IMAGE_REF],
        'artistId': ['artistId'],
        'composer': 'composer',
        'discNumber': 1,
        'durationMillis': 'durationMillis',
        'estimatedSize': 'estimatedSize',
        'explicitType': 'explicitType',
        'genre': 'genre',
        'kind': 'sj#track',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'lastRatingChangeTimestamp': 'lastRatingChangeTimestamp',
        'nid': 'nid',
        'playCount': 42,
        'primaryVideo': VIDEO,
        'rating': '5',
        'storeId': 'storeId',
        'title': 'title',
        'trackAvailableForPurchase': True,
        'trackAvailableForSubscription': True,
        'trackNumber': 1,
        'trackType': 'trackType',
        'year': 2000
}
class TopChartHeaderSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'header_image': IMAGE_REF,
        'kind': 'sj#topChartHeader'
}
class TopChartSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'albums': [ALBUM],
        'kind': 'sj#topChart',
        'tracks': [STORE_TRACK]
}
class TrackBatchItemSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'client_id': 'client_id',
        'id': 'id',
        'response_code': 'response_code'
}
class TrackBatchSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'mutate_response': [TRACK_BATCH_ITEMS]
}
class TrackListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [STORE_TRACK, UPLOADED_TRACK]
}
class TrackListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': TRACK_LIST_ITEMS,
        'kind': 'sj#trackList',
        'nextPageToken': 'nextPageToken'
}
class TrackSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Combination of StoreTrackSchema and UploadedTrackSchema.

class UploadedTrackSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'album': 'album',
        'albumArtRef': [IMAGE_REF],
        'albumArtist': 'albumArtist',
        'albumId': 'albumId',
        'artist': 'artist',
        'artistArtRef': [IMAGE_REF],
        'artistId': ['artistId'],
        'beatsPerMinute': 142,
        'clientId': 'clientId',
        'comment': 'comment',
        'composer': 'composer',
        'creationTimestamp': 'creationTimestamp',
        'deleted': False,
        'discNumber': 1,
        'durationMillis': 'durationMillis',
        'estimatedSize': 'estimatedSize',
        'explicitType': 'explicitType',
        'genre': 'genre',
        'id': 'id',
        'kind': 'sj#track',
        'lastModifiedTimestamp': 'lastModifiedTimestamp',
        'lastRatingChangeTimestamp': 'lastRatingChangeTimestamp',
        'nid': 'nid',
        'playCount': 42,
        'primaryVideo': VIDEO,
        'rating': '5',
        'recentTimestamp': 'recentTimestamp',
        'storeId': 'storeId',
        'title': 'title',
        'totalDiscCount': 1,
        'totalTrackCount': 1,
        'trackNumber': 1,
        'trackType': 'trackType',
        'year': 2000
}
class UserClientIDListItemsSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'items': [DEVICE_MANAGEMENT_INFO]
}
class UserClientIDListSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'data': USER_CLIENT_ID_LIST_ITEMS,
        'kind': 'sj#userClientIdList'
}
class VideoSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'id': 'id',
        'kind': 'sj#video',
        'thumbnails': [
                {
                        'height': 100,
                        'url': 'url',
                        'width': 100
                }
        ]
}
class VideoThumbnailSchema(extra=None, only=None, exclude=(), prefix='', strict=None, many=False, context=None, load_only=(), dump_only=(), partial=False)[source]

Validates:

{
        'height': 100,
        'url': 'url',
        'width': 100
}