// Extracted from: Spotify 1.2.52.442 (windows) syntax = "proto3"; package spotify.playlist_esperanto.proto; import "policy/supported_link_types_in_playlists.proto"; option objc_class_prefix = "ESP"; option java_multiple_files = true; option optimize_for = CODE_SIZE; option java_package = "spotify.playlist.esperanto.proto"; message PlaylistRange { int32 start = 1; int32 length = 2; } message PlaylistQuery { repeated BoolPredicate bool_predicates = 1; enum BoolPredicate { NO_FILTER = 0; AVAILABLE = 1; AVAILABLE_OFFLINE = 2; ARTIST_NOT_BANNED = 3; NOT_BANNED = 4; NOT_EXPLICIT = 5; NOT_EPISODE = 6; NOT_RECOMMENDATION = 7; UNPLAYED = 8; IN_PROGRESS = 9; NOT_FULLY_PLAYED = 10; } string text_filter = 2; SortBy sort_by = 3; enum SortBy { NO_SORT = 0; ALBUM_ARTIST_NAME_ASC = 1; ALBUM_ARTIST_NAME_DESC = 2; TRACK_NUMBER_ASC = 3; TRACK_NUMBER_DESC = 4; DISC_NUMBER_ASC = 5; DISC_NUMBER_DESC = 6; ALBUM_NAME_ASC = 7; ALBUM_NAME_DESC = 8; ARTIST_NAME_ASC = 9; ARTIST_NAME_DESC = 10; NAME_ASC = 11; NAME_DESC = 12; ADD_TIME_ASC = 13; ADD_TIME_DESC = 14; ADDED_BY_ASC = 15; ADDED_BY_DESC = 16; DURATION_ASC = 17; DURATION_DESC = 18; SHOW_NAME_ASC = 19; SHOW_NAME_DESC = 20; PUBLISH_DATE_ASC = 21; PUBLISH_DATE_DESC = 22; } PlaylistRange range = 4; int32 update_throttling_ms = 5; bool group = 6; PlaylistSourceRestriction source_restriction = 7; bool show_unavailable = 8; bool always_show_windowed = 9; bool load_recommendations = 10; repeated playlist.cosmos.proto.LinkType supported_placeholder_types = 11; repeated string descriptor_filter = 12; string item_id_filter = 13; repeated AttributeFilter attribute_filter = 14; message AttributeFilter { repeated string contains_one_of = 1; } bool include_all_placeholders = 15; } enum PlaylistSourceRestriction { NO_RESTRICTION = 0; RESTRICT_SOURCE_TO_50 = 1; RESTRICT_SOURCE_TO_500 = 2; }