# Generated by the protocol buffer compiler.  DO NOT EDIT!

from google.protobuf import descriptor
from google.protobuf import message
from google.protobuf import reflection
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)


import uits_pb2

DESCRIPTOR = descriptor.FileDescriptor(
  name='locker.proto',
  package='',
  serialized_pb='\n\x0clocker.proto\x1a\nuits.proto\"\xf8\x01\n\x08\x41udioRef\x12\x1e\n\x05store\x18\x01 \x02(\x0e\x32\x0f.AudioRef.Store\x12\x0b\n\x03ref\x18\x02 \x02(\x0c\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x10\n\x08\x62it_rate\x18\x05 \x01(\x05\x12\x13\n\x0bsample_rate\x18\x06 \x01(\x05\x12\x14\n\x0c\x64ownloadable\x18\x07 \x01(\x08\x12\x17\n\x0f\x64uration_millis\x18\x08 \x01(\x03\x12\x19\n\x11rematch_timestamp\x18\t \x01(\x03\x12\x1e\n\x16invalid_due_to_wipeout\x18\n \x01(\x08\"!\n\x05Store\x12\r\n\tBLOBSTORE\x10\x01\x12\t\n\x05SM_V2\x10\x02\"\xd1\x01\n\x08ImageRef\x12\x1e\n\x05store\x18\x01 \x01(\x0e\x32\x0f.ImageRef.Store\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x06 \x01(\t\x12\x1e\n\x16invalid_due_to_wipeout\x18\x07 \x01(\x08\x12 \n\x06origin\x18\x08 \x01(\x0e\x32\x10.ImageRef.Origin\"\x14\n\x05Store\x12\x0b\n\x07SHOEBOX\x10\x03\"!\n\x06Origin\x12\x0c\n\x08PERSONAL\x10\x01\x12\t\n\x05STORE\x10\x02\"1\n\x12UploadedUitsId3Tag\x12\r\n\x05owner\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x8c\x10\n\x05Track\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x1a\n\x12\x63reation_timestamp\x18\x03 \x01(\x03\x12\x1f\n\x17last_modified_timestamp\x18\x04 \x01(\x03\x12\x16\n\x07\x64\x65leted\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\r\n\x05title\x18\x06 \x01(\t\x12\x0e\n\x06\x61rtist\x18\x07 \x01(\t\x12\x13\n\x0b\x61rtist_hash\x18. \x01(\x03\x12\x10\n\x08\x63omposer\x18\x08 \x01(\t\x12\r\n\x05\x61lbum\x18\t \x01(\t\x12\x14\n\x0c\x61lbum_artist\x18\n \x01(\t\x12\x17\n\x0f\x63\x61nonical_album\x18\x38 \x01(\t\x12\x18\n\x10\x63\x61nonical_artist\x18\x39 \x01(\t\x12\x1d\n\x15\x63\x61nonical_genre_album\x18: \x01(\t\x12\x0c\n\x04year\x18\x0b \x01(\x05\x12\x0f\n\x07\x63omment\x18\x0c \x01(\t\x12\x14\n\x0ctrack_number\x18\r \x01(\x05\x12\r\n\x05genre\x18\x0e \x01(\t\x12\x17\n\x0f\x64uration_millis\x18\x0f \x01(\x03\x12\x18\n\x10\x62\x65\x61ts_per_minute\x18\x10 \x01(\x05\x12\x19\n\x11original_bit_rate\x18, \x01(\x05\x12\x1c\n\taudio_ref\x18\x11 \x03(\x0b\x32\t.AudioRef\x12 \n\ralbum_art_ref\x18\x12 \x03(\x0b\x32\t.ImageRef\x12\x36\n\x13\x61vailability_status\x18\x13 \x01(\x0e\x32\x19.Track.AvailabilityStatus\x12\x12\n\nplay_count\x18\x14 \x01(\x05\x12(\n\x0c\x63ontent_type\x18\x19 \x01(\x0e\x32\x12.Track.ContentType\x12\x19\n\x11total_track_count\x18\x1a \x01(\x05\x12\x13\n\x0b\x64isc_number\x18\x1b \x01(\x05\x12\x18\n\x10total_disc_count\x18\x1c \x01(\x05\x12!\n\x08\x63hannels\x18\x1d \x01(\x0e\x32\x0f.Track.Channels\x12$\n\ntrack_type\x18\x1e \x01(\x0e\x32\x10.Track.TrackType\x12\x1e\n\x16use_single_server_copy\x18; \x01(\x08\x12\x1d\n\x06rating\x18\x1f \x01(\x0e\x32\r.Track.Rating\x12\x16\n\x0e\x65stimated_size\x18  \x01(\x03\x12\x10\n\x08store_id\x18! \x01(\t\x12\x12\n\nmetajam_id\x18\" \x01(\t\x12 \n\x15metajam_id_confidence\x18+ \x01(\x01:\x01\x30\x12\x0c\n\x04uits\x18# \x01(\t\x12$\n\ruits_metadata\x18( \x01(\x0b\x32\r.UitsMetadata\x12\x13\n\x0b\x63ompilation\x18$ \x01(\x08\x12\x19\n\x11\x63lient_date_added\x18% \x01(\x03\x12\x18\n\x10recent_timestamp\x18& \x01(\x03\x12\x1d\n\x0e\x64o_not_rematch\x18\' \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x13\x66rom_album_purchase\x18) \x01(\x08\x12\x18\n\x10\x61lbum_metajam_id\x18* \x01(\t\x12\x16\n\x0etransaction_id\x18- \x01(\t\x12\x13\n\x0b\x64\x65\x62ug_track\x18/ \x01(\x08\x12\x18\n\x10normalized_title\x18\x30 \x01(\t\x12\x19\n\x11normalized_artist\x18\x31 \x01(\t\x12\x18\n\x10normalized_album\x18\x32 \x01(\t\x12\x1f\n\x17normalized_album_artist\x18\x33 \x01(\t\x12\"\n\x1anormalized_canonical_album\x18\x36 \x01(\t\x12#\n\x1bnormalized_canonical_artist\x18\x37 \x01(\t\x12\x13\n\x0buploader_id\x18\x34 \x01(\t\x12\x17\n\x0f\x63lient_album_id\x18\x35 \x01(\t\x12\x18\n\x10label_owner_code\x18< \x01(\t\x12\x31\n\x15original_content_type\x18= \x01(\x0e\x32\x12.Track.ContentType\x12*\n\ruploaded_uits\x18G \x03(\x0b\x32\x13.UploadedUitsId3Tag\"\x86\x01\n\x12\x41vailabilityStatus\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07MATCHED\x10\x02\x12\x14\n\x10UPLOAD_REQUESTED\x10\x03\x12\r\n\tAVAILABLE\x10\x04\x12\x12\n\x0e\x46ORCE_REUPLOAD\x10\x05\x12\x1d\n\x19UPLOAD_PERMANENTLY_FAILED\x10\x06\"W\n\x0b\x43ontentType\x12\x07\n\x03MP3\x10\x01\x12\x07\n\x03M4A\x10\x02\x12\x07\n\x03\x41\x41\x43\x10\x03\x12\x08\n\x04\x46LAC\x10\x04\x12\x07\n\x03OGG\x10\x05\x12\x07\n\x03WMA\x10\x06\x12\x07\n\x03M4P\x10\x07\x12\x08\n\x04\x41LAC\x10\x08\" \n\x08\x43hannels\x12\x08\n\x04MONO\x10\x01\x12\n\n\x06STEREO\x10\x02\"\x8b\x01\n\tTrackType\x12\x11\n\rMATCHED_TRACK\x10\x01\x12\x13\n\x0fUNMATCHED_TRACK\x10\x02\x12\x0f\n\x0bLOCAL_TRACK\x10\x03\x12\x13\n\x0fPURCHASED_TRACK\x10\x04\x12\x1f\n\x1bMETADATA_ONLY_MATCHED_TRACK\x10\x05\x12\x0f\n\x0bPROMO_TRACK\x10\x06\"e\n\x06Rating\x12\r\n\tNOT_RATED\x10\x01\x12\x0c\n\x08ONE_STAR\x10\x02\x12\r\n\tTWO_STARS\x10\x03\x12\x0f\n\x0bTHREE_STARS\x10\x04\x12\x0e\n\nFOUR_STARS\x10\x05\x12\x0e\n\nFIVE_STARS\x10\x06\"\x1f\n\x06Tracks\x12\x15\n\x05track\x18\x01 \x03(\x0b\x32\x06.Track\"\xb4\x02\n\x08Playlist\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x1a\n\x12\x63reation_timestamp\x18\x03 \x01(\x03\x12\x1f\n\x17last_modified_timestamp\x18\x04 \x01(\x03\x12\x16\n\x07\x64\x65leted\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x0c\n\x04name\x18\x06 \x01(\t\x12-\n\rplaylist_type\x18\x07 \x01(\x0e\x32\x16.Playlist.PlaylistType\x12#\n\x10playlist_art_ref\x18\x08 \x01(\x0b\x32\t.ImageRef\x12\x18\n\x10recent_timestamp\x18\t \x01(\x03\"8\n\x0cPlaylistType\x12\x12\n\x0eUSER_GENERATED\x10\x01\x12\t\n\x05MAGIC\x10\x02\x12\t\n\x05PROMO\x10\x03\"\xae\x03\n\rPlaylistEntry\x12\x13\n\x0bplaylist_id\x18\x01 \x01(\t\x12\x19\n\x11\x61\x62solute_position\x18\x02 \x01(\x03\x12\x1c\n\x14place_after_entry_id\x18\x03 \x01(\t\x12\x10\n\x08track_id\x18\x04 \x01(\t\x12\n\n\x02id\x18\x05 \x01(\t\x12\x11\n\tclient_id\x18\x06 \x01(\t\x12\x1a\n\x12\x63reation_timestamp\x18\x07 \x01(\x03\x12\x1f\n\x17last_modified_timestamp\x18\x08 \x01(\x03\x12\x16\n\x07\x64\x65leted\x18\t \x01(\x08:\x05\x66\x61lse\x12H\n\x19relative_position_id_type\x18\n \x01(\x0e\x32%.PlaylistEntry.RelativePositionIdType\x12\x15\n\x05track\x18\x0f \x01(\x0b\x32\x06.Track\x12\x1d\n\x15place_before_entry_id\x18\x10 \x01(\t\x12\x17\n\x0fstring_position\x18\x11 \x01(\t\"0\n\x16RelativePositionIdType\x12\n\n\x06SERVER\x10\x01\x12\n\n\x06\x43LIENT\x10\x02\"\xd0\x03\n\x16TrackSearchRestriction\x12\x39\n\tattribute\x18\x01 \x02(\x0e\x32&.TrackSearchRestriction.TrackAttribute\x12\r\n\x05value\x18\x02 \x02(\t\x12?\n\x0f\x63omparison_type\x18\x03 \x02(\x0e\x32&.TrackSearchRestriction.ComparisonType\"\xa6\x01\n\x0eTrackAttribute\x12\t\n\x05TITLE\x10\x01\x12\n\n\x06\x41RTIST\x10\x02\x12\t\n\x05\x41LBUM\x10\x03\x12\x10\n\x0c\x41LBUM_ARTIST\x10\x04\x12\t\n\x05GENRE\x10\x05\x12\x17\n\x13\x41VAILABILITY_STATUS\x10\x06\x12\x0e\n\nTRACK_TYPE\x10\x07\x12\x08\n\x04YEAR\x10\x08\x12\x0c\n\x08STORE_ID\x10\t\x12\x14\n\x10\x41LBUM_METAJAM_ID\x10\n\"\x81\x01\n\x0e\x43omparisonType\x12\t\n\x05\x45QUAL\x10\x00\x12\r\n\tNOT_EQUAL\x10\x01\x12\x10\n\x0cGREATER_THAN\x10\x02\x12\x11\n\rGREATER_EQUAL\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x0e\n\nLESS_EQUAL\x10\x05\x12\x11\n\rPARTIAL_MATCH\x10\x06\"\xda\x01\n\x19TrackSearchRestrictionSet\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.TrackSearchRestrictionSet.RestrictionSetType\x12,\n\x0brestriction\x18\x02 \x03(\x0b\x32\x17.TrackSearchRestriction\x12+\n\x07sub_set\x18\x03 \x03(\x0b\x32\x1a.TrackSearchRestrictionSet\"%\n\x12RestrictionSetType\x12\x07\n\x03\x41ND\x10\x00\x12\x06\n\x02OR\x10\x01\"\x80\x02\n\x0eTrackSortOrder\x12\x31\n\tattribute\x18\x01 \x01(\x0e\x32\x1e.TrackSortOrder.TrackAttribute\x12\x18\n\ndescending\x18\x02 \x01(\x08:\x04true\"\xa0\x01\n\x0eTrackAttribute\x12\x16\n\x12LAST_MODIFIED_TIME\x10\x01\x12\n\n\x06\x41RTIST\x10\x02\x12\t\n\x05\x41LBUM\x10\x03\x12\t\n\x05TITLE\x10\x04\x12\x10\n\x0cTRACK_NUMBER\x10\x06\x12\x0e\n\nPLAY_COUNT\x10\t\x12\x13\n\x0f\x44URATION_MILLIS\x10\n\x12\n\n\x06RATING\x10\x0b\x12\x11\n\rCREATION_TIME\x10\x0c\"\xfe\x02\n\x10GetTracksRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x13\n\x0bupdated_min\x18\x02 \x01(\x03\x12\x17\n\x0finclude_deleted\x18\x03 \x01(\x08\x12\x13\n\x0bmax_results\x18\x04 \x01(\x05\x12\x1a\n\x12\x63ontinuation_token\x18\x05 \x01(\t\x12\x33\n\x12search_restriction\x18\x06 \x03(\x0b\x32\x17.TrackSearchRestriction\x12#\n\nsort_order\x18\x07 \x03(\x0b\x32\x0f.TrackSortOrder\x12\x33\n\x0frestriction_set\x18\x08 \x01(\x0b\x32\x1a.TrackSearchRestrictionSet\x12;\n\x10track_projection\x18\t \x01(\x0e\x32!.GetTracksRequest.TrackProjection\".\n\x0fTrackProjection\x12\x08\n\x04\x46ULL\x10\x01\x12\x11\n\rFRONTEND_VIEW\x10\x02\"\xd3\x01\n\x11GetTracksResponse\x12\x36\n\rresponse_code\x18\x01 \x02(\x0e\x32\x1f.GetTracksResponse.ResponseCode\x12\x15\n\x05track\x18\x02 \x03(\x0b\x32\x06.Track\x12\x1f\n\x17\x65stimated_total_results\x18\x03 \x01(\x03\x12\x1a\n\x12\x63ontinuation_token\x18\x04 \x01(\t\"2\n\x0cResponseCode\x12\x06\n\x02OK\x10\x01\x12\x10\n\x0cNOT_MODIFIED\x10\x02\x12\x08\n\x04GONE\x10\x03\"\xfc\x01\n\x19GetPlaylistEntriesRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x13\n\x0bupdated_min\x18\x02 \x01(\x03\x12\x17\n\x0finclude_deleted\x18\x03 \x01(\x08\x12\x13\n\x0bmax_results\x18\x04 \x01(\x05\x12\x1a\n\x12\x63ontinuation_token\x18\x05 \x01(\t\x12\x1a\n\x12playlist_id_filter\x18\x06 \x01(\t\x12)\n\x1ainclude_all_track_metadata\x18\x07 \x01(\x08:\x05\x66\x61lse\x12(\n\x1aonly_show_available_tracks\x18\x08 \x01(\x08:\x04true\"\xf6\x01\n\x1aGetPlaylistEntriesResponse\x12?\n\rresponse_code\x18\x01 \x02(\x0e\x32(.GetPlaylistEntriesResponse.ResponseCode\x12&\n\x0eplaylist_entry\x18\x02 \x03(\x0b\x32\x0e.PlaylistEntry\x12\x1f\n\x17\x65stimated_total_results\x18\x03 \x01(\x03\x12\x1a\n\x12\x63ontinuation_token\x18\x04 \x01(\t\"2\n\x0cResponseCode\x12\x06\n\x02OK\x10\x01\x12\x10\n\x0cNOT_MODIFIED\x10\x02\x12\x08\n\x04GONE\x10\x03\"\xc8\x01\n\x11PlaylistSortOrder\x12\x37\n\tattribute\x18\x01 \x01(\x0e\x32$.PlaylistSortOrder.PlaylistAttribute\x12\x19\n\ndescending\x18\x02 \x01(\x08:\x05\x66\x61lse\"_\n\x11PlaylistAttribute\x12\x16\n\x12LAST_MODIFIED_TIME\x10\x01\x12\t\n\x05TITLE\x10\x02\x12\x11\n\rCREATION_TIME\x10\x03\x12\x14\n\x10RECENT_TIMESTAMP\x10\x04\"\xad\x01\n\x13GetPlaylistsRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x13\n\x0bupdated_min\x18\x02 \x01(\x03\x12\x17\n\x0finclude_deleted\x18\x03 \x01(\x08\x12\x13\n\x0bmax_results\x18\x04 \x01(\x05\x12\x1a\n\x12\x63ontinuation_token\x18\x05 \x01(\t\x12&\n\nsort_order\x18\x06 \x01(\x0b\x32\x12.PlaylistSortOrder\"\xdf\x01\n\x14GetPlaylistsResponse\x12\x39\n\rresponse_code\x18\x01 \x02(\x0e\x32\".GetPlaylistsResponse.ResponseCode\x12\x1b\n\x08playlist\x18\x02 \x03(\x0b\x32\t.Playlist\x12\x1f\n\x17\x65stimated_total_results\x18\x03 \x01(\x03\x12\x1a\n\x12\x63ontinuation_token\x18\x04 \x01(\t\"2\n\x0cResponseCode\x12\x06\n\x02OK\x10\x01\x12\x10\n\x0cNOT_MODIFIED\x10\x02\x12\x08\n\x04GONE\x10\x03\"3\n\x12LookupTrackRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\";\n\x1aLookupPlaylistEntryRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\"6\n\x15LookupPlaylistRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\"\xbe\x02\n\x12\x42\x61tchLookupRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\"\n\x05track\x18\x02 \x03(\x0b\x32\x13.LookupTrackRequest\x12(\n\x08playlist\x18\x03 \x03(\x0b\x32\x16.LookupPlaylistRequest\x12\x37\n\rmetadata_type\x18\x04 \x01(\x0e\x32 .BatchLookupRequest.MetadataType\x12\x33\n\x0eplaylist_entry\x18\x05 \x03(\x0b\x32\x1b.LookupPlaylistEntryRequest\x12\x1e\n\x0finclude_deleted\x18\x06 \x01(\x08:\x05\x66\x61lse\";\n\x0cMetadataType\x12\t\n\x05TRACK\x10\x01\x12\x0c\n\x08PLAYLIST\x10\x02\x12\x12\n\x0ePLAYLIST_ENTRY\x10\x03\"q\n\x13\x42\x61tchLookupResponse\x12\x15\n\x05track\x18\x01 \x03(\x0b\x32\x06.Track\x12\x1b\n\x08playlist\x18\x02 \x03(\x0b\x32\t.Playlist\x12&\n\x0eplaylist_entry\x18\x03 \x03(\x0b\x32\x0e.PlaylistEntry\"\xba\x01\n\x12MutateTrackRequest\x12\x1c\n\x0c\x63reate_track\x18\x01 \x01(\x0b\x32\x06.Track\x12\x1c\n\x0cupdate_track\x18\x02 \x01(\x0b\x32\x06.Track\x12\x14\n\x0c\x64\x65lete_track\x18\x03 \x01(\t\x12\x16\n\x0epartial_update\x18\x04 \x01(\x08\x12\"\n\x14update_last_modified\x18\x05 \x01(\x08:\x04true\x12\x16\n\x0eundelete_track\x18\x06 \x01(\t\"\xb6\x03\n\x0eMutateResponse\x12\x39\n\rresponse_code\x18\x01 \x01(\x0e\x32\".MutateResponse.MutateResponseCode\x12\n\n\x02id\x18\x02 \x01(\t\x12\x10\n\x08\x63hild_id\x18\x03 \x03(\t\x12\x11\n\tclient_id\x18\x04 \x01(\t\x12?\n\x13\x61vailability_status\x18\x05 \x01(\x0e\x32\".MutateResponse.AvailabilityStatus\x12\x15\n\rerror_message\x18\x06 \x01(\t\"W\n\x12MutateResponseCode\x12\x06\n\x02OK\x10\x01\x12\x0c\n\x08\x43ONFLICT\x10\x02\x12\x13\n\x0fINVALID_REQUEST\x10\x03\x12\x16\n\x12METADATA_TOO_LARGE\x10\x04\"\x86\x01\n\x12\x41vailabilityStatus\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07MATCHED\x10\x02\x12\x14\n\x10UPLOAD_REQUESTED\x10\x03\x12\r\n\tAVAILABLE\x10\x04\x12\x12\n\x0e\x46ORCE_REUPLOAD\x10\x05\x12\x1d\n\x19UPLOAD_PERMANENTLY_FAILED\x10\x06\"\xcd\x01\n\x18\x42\x61tchMutateTracksRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12+\n\x0etrack_mutation\x18\x02 \x03(\x0b\x32\x13.MutateTrackRequest\x12\x1f\n\x11send_notification\x18\x03 \x01(\x08:\x04true\x12\'\n\x19\x64\x65tect_timestamp_conflict\x18\x04 \x01(\x08:\x04true\x12)\n\x1bnotify_fine_grained_updates\x18\x05 \x01(\x08:\x04true\"\xcd\x01\n\x19\x42\x61tchMutateTracksResponse\x12O\n\rresponse_code\x18\x01 \x03(\x0e\x32\x38.BatchMutateTracksResponse.BatchMutateTracksResponseCode\x12(\n\x0fmutate_response\x18\x02 \x03(\x0b\x32\x0f.MutateResponse\"5\n\x1d\x42\x61tchMutateTracksResponseCode\x12\x06\n\x02OK\x10\x01\x12\x0c\n\x08\x43ONFLICT\x10\x02\"\xf7\x01\n\x15MutatePlaylistRequest\x12\"\n\x0f\x63reate_playlist\x18\x01 \x01(\x0b\x32\t.Playlist\x12\"\n\x0fupdate_playlist\x18\x02 \x01(\x0b\x32\t.Playlist\x12\x17\n\x0f\x64\x65lete_playlist\x18\x03 \x01(\t\x12\x16\n\x0epartial_update\x18\x04 \x01(\x08\x12&\n\x0eplaylist_entry\x18\x05 \x03(\x0b\x32\x0e.PlaylistEntry\x12\"\n\x14update_last_modified\x18\x06 \x01(\x08:\x04true\x12\x19\n\x11undelete_playlist\x18\x07 \x01(\t\"\xd7\x01\n\x1b\x42\x61tchMutatePlaylistsRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x31\n\x11playlist_mutation\x18\x02 \x03(\x0b\x32\x16.MutatePlaylistRequest\x12\x1f\n\x11send_notification\x18\x03 \x01(\x08:\x04true\x12\'\n\x19\x64\x65tect_timestamp_conflict\x18\x04 \x01(\x08:\x04true\x12*\n\x1bnotify_fine_grained_updates\x18\x05 \x01(\x08:\x05\x66\x61lse\"\xd9\x01\n\x1c\x42\x61tchMutatePlaylistsResponse\x12U\n\rresponse_code\x18\x01 \x03(\x0e\x32>.BatchMutatePlaylistsResponse.BatchMutatePlaylistsResponseCode\x12(\n\x0fmutate_response\x18\x02 \x03(\x0b\x32\x0f.MutateResponse\"8\n BatchMutatePlaylistsResponseCode\x12\x06\n\x02OK\x10\x01\x12\x0c\n\x08\x43ONFLICT\x10\x02\"\xee\x01\n\x1aMutatePlaylistEntryRequest\x12-\n\x15\x63reate_playlist_entry\x18\x01 \x01(\x0b\x32\x0e.PlaylistEntry\x12-\n\x15update_playlist_entry\x18\x02 \x01(\x0b\x32\x0e.PlaylistEntry\x12-\n\x15\x64\x65lete_playlist_entry\x18\x03 \x01(\x0b\x32\x0e.PlaylistEntry\x12\"\n\x14update_last_modified\x18\x04 \x01(\x08:\x04true\x12\x1f\n\x17undelete_playlist_entry\x18\x05 \x01(\t\"\xe8\x01\n!BatchMutatePlaylistEntriesRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12<\n\x17playlist_entry_mutation\x18\x02 \x03(\x0b\x32\x1b.MutatePlaylistEntryRequest\x12\x1f\n\x11send_notification\x18\x03 \x01(\x08:\x04true\x12\'\n\x19\x64\x65tect_timestamp_conflict\x18\x04 \x01(\x08:\x04true\x12*\n\x1bnotify_fine_grained_updates\x18\x05 \x01(\x08:\x05\x66\x61lse\"\xf1\x01\n\"BatchMutatePlaylistEntriesResponse\x12\x61\n\rresponse_code\x18\x01 \x03(\x0e\x32J.BatchMutatePlaylistEntriesResponse.BatchMutatePlaylistEntriesResponseCode\x12(\n\x0fmutate_response\x18\x02 \x03(\x0b\x32\x0f.MutateResponse\">\n&BatchMutatePlaylistEntriesResponseCode\x12\x06\n\x02OK\x10\x01\x12\x0c\n\x08\x43ONFLICT\x10\x02\"\x90\x01\n\x11MagicPlaylistSeed\x12.\n\tseed_type\x18\x01 \x02(\x0e\x32\x1b.MagicPlaylistSeed.SeedType\x12\x0c\n\x04seed\x18\x02 \x02(\t\"=\n\x08SeedType\x12\t\n\x05TRACK\x10\x00\x12\n\n\x06\x41RTIST\x10\x01\x12\t\n\x05\x41LBUM\x10\x02\x12\x0f\n\x0bOPAQUE_SEED\x10\x03\"\xd1\x01\n\x14MagicPlaylistRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x15\n\rplaylist_name\x18\x02 \x01(\t\x12\x13\n\x0bplaylist_id\x18\x03 \x01(\t\x12 \n\x04seed\x18\x04 \x03(\x0b\x32\x12.MagicPlaylistSeed\x12\x1b\n\x13num_recommendations\x18\x05 \x01(\x05\x12)\n\x1ainclude_all_track_metadata\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x12\n\nmodel_name\x18\x07 \x01(\t\"\\\n\x15MagicPlaylistResponse\x12\x1b\n\x08playlist\x18\x01 \x01(\x0b\x32\t.Playlist\x12&\n\x0eplaylist_entry\x18\x02 \x03(\x0b\x32\x0e.PlaylistEntry\"\xf8\x01\n\x12\x46lushLockerRequest\x12\x0f\n\x07gaia_id\x18\x01 \x01(\x03\x12\x13\n\x0bgaia_cookie\x18\x02 \x01(\t\x12#\n\x15remove_audio_binaries\x18\x03 \x01(\x08:\x04true\x12#\n\x15remove_image_binaries\x18\x04 \x01(\x08:\x04true\x12\x1f\n\x11send_notification\x18\x05 \x01(\x08:\x04true\x12&\n\x17reset_subscription_type\x18\x06 \x01(\x08:\x05\x66\x61lse\x12)\n\x1bnotify_fine_grained_updates\x18\x08 \x01(\x08:\x04true\"\x8a\x01\n\x13\x46lushLockerResponse\x12\x16\n\x0etracks_removed\x18\x01 \x01(\x05\x12\x17\n\x0f\x65ntries_removed\x18\x02 \x01(\x05\x12\x19\n\x11playlists_removed\x18\x03 \x01(\x05\x12\'\n\x1fsuccess_reset_subscription_type\x18\x04 \x01(\x08\"6\n\x12LockerNotification\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"\xd6\x01\n\x05\x41lbum\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x61lbum_artist\x18\x02 \x01(\t\x12\x1c\n\talbum_art\x18\x03 \x01(\x0b\x32\t.ImageRef\x12\x13\n\x0btrack_count\x18\x04 \x01(\x05\x12\x18\n\x10last_time_played\x18\x05 \x01(\x03\x12\x16\n\x0eis_compilation\x18\x06 \x01(\x08\x12\x18\n\x10\x61lbum_metajam_id\x18\x07 \x01(\t\x12\x1a\n\x12\x63reation_timestamp\x18\x08 \x01(\x03\x12\x0e\n\x06\x61rtist\x18\t \x01(\t\"\xa3\x01\n\x0e\x41lbumSortOrder\x12\x31\n\tattribute\x18\x01 \x01(\x0e\x32\x1e.AlbumSortOrder.AlbumAttribute\x12\x19\n\ndescending\x18\x02 \x01(\x08:\x05\x66\x61lse\"C\n\x0e\x41lbumAttribute\x12\x14\n\x10LAST_PLAYED_TIME\x10\x01\x12\x08\n\x04NAME\x10\x02\x12\x11\n\rCREATION_TIME\x10\x03\"]\n\x10GetAlbumsRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12#\n\nsort_order\x18\x02 \x01(\x0b\x32\x0f.AlbumSortOrder\x12\x13\n\x0bmax_results\x18\x03 \x01(\x05\"*\n\x11GetAlbumsResponse\x12\x15\n\x05\x61lbum\x18\x01 \x03(\x0b\x32\x06.Album\"H\n\x06\x41rtist\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x11total_track_count\x18\x02 \x01(\x05\x12\x15\n\x05\x61lbum\x18\x03 \x03(\x0b\x32\x06.Album\",\n\x0f\x41rtistSortOrder\x12\x19\n\ndescending\x18\x02 \x01(\x08:\x05\x66\x61lse\"_\n\x11GetArtistsRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12$\n\nsort_order\x18\x02 \x01(\x0b\x32\x10.ArtistSortOrder\x12\x13\n\x0bmax_results\x18\x03 \x01(\x05\"-\n\x12GetArtistsResponse\x12\x17\n\x06\x61rtist\x18\x01 \x03(\x0b\x32\x07.Artist\"L\n\nMusicGenre\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x11total_track_count\x18\x02 \x01(\x05\x12\x15\n\x05\x61lbum\x18\x03 \x03(\x0b\x32\x06.Album\"+\n\x0eGenreSortOrder\x12\x19\n\ndescending\x18\x02 \x01(\x08:\x05\x66\x61lse\"]\n\x10GetGenresRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12#\n\nsort_order\x18\x02 \x01(\x0b\x32\x0f.GenreSortOrder\x12\x13\n\x0bmax_results\x18\x03 \x01(\x05\"/\n\x11GetGenresResponse\x12\x1a\n\x05genre\x18\x01 \x03(\x0b\x32\x0b.MusicGenre\"\xe6\x02\n GetDynamicPlaylistEntriesRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12[\n\x15playlist_entries_type\x18\x04 \x02(\x0e\x32<.GetDynamicPlaylistEntriesRequest.DynamicPlaylistEntriesType\x12\x13\n\x0bmax_results\x18\x02 \x01(\x05\x12\x1a\n\x12\x63ontinuation_token\x18\x03 \x01(\t\x12)\n\x1ainclude_all_track_metadata\x18\x05 \x01(\x08:\x05\x66\x61lse\"x\n\x1a\x44ynamicPlaylistEntriesType\x12\r\n\tPURCHASED\x10\x01\x12\r\n\tTHUMBS_UP\x10\x02\x12\x12\n\x0eRECENTLY_ADDED\x10\x03\x12\x0c\n\x08PROMOTED\x10\x04\x12\x1a\n\x16PROMOTED_AND_PURCHASED\x10\x05\"\xda\x03\n!GetDynamicPlaylistEntriesResponse\x12\x46\n\rresponse_code\x18\x01 \x02(\x0e\x32/.GetDynamicPlaylistEntriesResponse.ResponseCode\x12&\n\x0eplaylist_entry\x18\x02 \x03(\x0b\x32\x0e.PlaylistEntry\x12\x1f\n\x17\x65stimated_total_results\x18\x03 \x01(\x03\x12\x1a\n\x12\x63ontinuation_token\x18\x04 \x01(\t\x12\\\n\x15playlist_entries_type\x18\x05 \x01(\x0e\x32=.GetDynamicPlaylistEntriesResponse.DynamicPlaylistEntriesType\"\x85\x01\n\x1a\x44ynamicPlaylistEntriesType\x12\r\n\tPURCHASED\x10\x01\x12\r\n\tTHUMBS_UP\x10\x02\x12\x12\n\x0eRECENTLY_ADDED\x10\x03\x12\x0c\n\x08PROMOTED\x10\x04\x12\x0b\n\x07UNKNOWN\x10\x05\x12\x1a\n\x16PROMOTED_AND_PURCHASED\x10\x06\"\"\n\x0cResponseCode\x12\x06\n\x02OK\x10\x01\x12\n\n\x06NOT_OK\x10\x02\"4\n!GetAggregationsByTrackTypeRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\"\xea\x01\n\x12TrackTypeAggregate\x12\x37\n\x10track_type_value\x18\x01 \x01(\x0e\x32\x1d.TrackTypeAggregate.TrackType\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x8b\x01\n\tTrackType\x12\x11\n\rMATCHED_TRACK\x10\x01\x12\x13\n\x0fUNMATCHED_TRACK\x10\x02\x12\x0f\n\x0bLOCAL_TRACK\x10\x03\x12\x13\n\x0fPURCHASED_TRACK\x10\x04\x12\x1f\n\x1bMETADATA_ONLY_MATCHED_TRACK\x10\x05\x12\x0f\n\x0bPROMO_TRACK\x10\x06\"W\n\"GetAggregationsByTrackTypeResponse\x12\x31\n\x14track_type_aggregate\x18\x01 \x03(\x0b\x32\x13.TrackTypeAggregate\"=\n*GetAggregationsByAvailabilityStatusRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\"\x83\x02\n\x1b\x41vailabilityStatusAggregate\x12L\n\x13\x61vailability_status\x18\x01 \x01(\x0e\x32/.AvailabilityStatusAggregate.AvailabilityStatus\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x86\x01\n\x12\x41vailabilityStatus\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07MATCHED\x10\x02\x12\x14\n\x10UPLOAD_REQUESTED\x10\x03\x12\r\n\tAVAILABLE\x10\x04\x12\x12\n\x0e\x46ORCE_REUPLOAD\x10\x05\x12\x1d\n\x19UPLOAD_PERMANENTLY_FAILED\x10\x06\"r\n+GetAggregationsByAvailabilityStatusResponse\x12\x43\n\x1d\x61vailability_status_aggregate\x18\x01 \x03(\x0b\x32\x1c.AvailabilityStatusAggregate\"7\n\x15\x41\x64\x64PromoTracksRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\r\n\x05genre\x18\x02 \x03(\t\"/\n\x16\x41\x64\x64PromoTracksResponse\x12\x15\n\x05track\x18\x01 \x03(\x0b\x32\x06.Track\"J\n\x1eGetPlaylistAggregationsRequest\x12\x0f\n\x07gaia_id\x18\x01 \x02(\x03\x12\x17\n\x0bmax_results\x18\x02 \x01(\x05:\x02\x31\x34\"\x83\x01\n\x11PlaylistAggregate\x12\x13\n\x0bplaylist_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1c\n\talbum_art\x18\x03 \x01(\x0b\x32\t.ImageRef\x12\x13\n\x0btrack_count\x18\x04 \x01(\x03\x12\x18\n\x10last_time_played\x18\x05 \x01(\x03\"Q\n\x1fGetPlaylistAggregationsResponse\x12.\n\x12playlist_aggregate\x18\x01 \x03(\x0b\x32\x12.PlaylistAggregate\"?\n\x1bRemoteControlCommandRequest\x12\x0f\n\x07gaia_id\x18\x01 \x01(\x03\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\"\xb3\x01\n\x1cRemoteControlCommandResponse\x12\x41\n\rresponse_code\x18\x01 \x01(\x0e\x32*.RemoteControlCommandResponse.ResponseCode\"P\n\x0cResponseCode\x12\x06\n\x02OK\x10\x01\x12\x10\n\x0cNO_PUBLISHER\x10\x02\x12\x13\n\x0fINVALID_REQUEST\x10\x03\x12\x11\n\rPUBLISH_ERROR\x10\x04')



_AUDIOREF_STORE = descriptor.EnumDescriptor(
  name='Store',
  full_name='AudioRef.Store',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='BLOBSTORE', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='SM_V2', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=244,
  serialized_end=277,
)

_IMAGEREF_STORE = descriptor.EnumDescriptor(
  name='Store',
  full_name='ImageRef.Store',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='SHOEBOX', index=0, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=434,
  serialized_end=454,
)

_IMAGEREF_ORIGIN = descriptor.EnumDescriptor(
  name='Origin',
  full_name='ImageRef.Origin',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PERSONAL', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='STORE', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=456,
  serialized_end=489,
)

_TRACK_AVAILABILITYSTATUS = descriptor.EnumDescriptor(
  name='AvailabilityStatus',
  full_name='Track.AvailabilityStatus',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PENDING', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='MATCHED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_REQUESTED', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='AVAILABLE', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FORCE_REUPLOAD', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_PERMANENTLY_FAILED', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2101,
  serialized_end=2235,
)

_TRACK_CONTENTTYPE = descriptor.EnumDescriptor(
  name='ContentType',
  full_name='Track.ContentType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='MP3', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='M4A', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='AAC', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FLAC', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='OGG', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='WMA', index=5, number=6,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='M4P', index=6, number=7,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALAC', index=7, number=8,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2237,
  serialized_end=2324,
)

_TRACK_CHANNELS = descriptor.EnumDescriptor(
  name='Channels',
  full_name='Track.Channels',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='MONO', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='STEREO', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2326,
  serialized_end=2358,
)

_TRACK_TRACKTYPE = descriptor.EnumDescriptor(
  name='TrackType',
  full_name='Track.TrackType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='MATCHED_TRACK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UNMATCHED_TRACK', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='LOCAL_TRACK', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PURCHASED_TRACK', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='METADATA_ONLY_MATCHED_TRACK', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMO_TRACK', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2361,
  serialized_end=2500,
)

_TRACK_RATING = descriptor.EnumDescriptor(
  name='Rating',
  full_name='Track.Rating',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='NOT_RATED', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ONE_STAR', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='TWO_STARS', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='THREE_STARS', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FOUR_STARS', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FIVE_STARS', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2502,
  serialized_end=2603,
)

_PLAYLIST_PLAYLISTTYPE = descriptor.EnumDescriptor(
  name='PlaylistType',
  full_name='Playlist.PlaylistType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='USER_GENERATED', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='MAGIC', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMO', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2891,
  serialized_end=2947,
)

_PLAYLISTENTRY_RELATIVEPOSITIONIDTYPE = descriptor.EnumDescriptor(
  name='RelativePositionIdType',
  full_name='PlaylistEntry.RelativePositionIdType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='SERVER', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CLIENT', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3332,
  serialized_end=3380,
)

_TRACKSEARCHRESTRICTION_TRACKATTRIBUTE = descriptor.EnumDescriptor(
  name='TrackAttribute',
  full_name='TrackSearchRestriction.TrackAttribute',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='TITLE', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ARTIST', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALBUM', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALBUM_ARTIST', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GENRE', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='AVAILABILITY_STATUS', index=5, number=6,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='TRACK_TYPE', index=6, number=7,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='YEAR', index=7, number=8,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='STORE_ID', index=8, number=9,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALBUM_METAJAM_ID', index=9, number=10,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3549,
  serialized_end=3715,
)

_TRACKSEARCHRESTRICTION_COMPARISONTYPE = descriptor.EnumDescriptor(
  name='ComparisonType',
  full_name='TrackSearchRestriction.ComparisonType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='EQUAL', index=0, number=0,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NOT_EQUAL', index=1, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GREATER_THAN', index=2, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GREATER_EQUAL', index=3, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='LESS_THAN', index=4, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='LESS_EQUAL', index=5, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PARTIAL_MATCH', index=6, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3718,
  serialized_end=3847,
)

_TRACKSEARCHRESTRICTIONSET_RESTRICTIONSETTYPE = descriptor.EnumDescriptor(
  name='RestrictionSetType',
  full_name='TrackSearchRestrictionSet.RestrictionSetType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='AND', index=0, number=0,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='OR', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4031,
  serialized_end=4068,
)

_TRACKSORTORDER_TRACKATTRIBUTE = descriptor.EnumDescriptor(
  name='TrackAttribute',
  full_name='TrackSortOrder.TrackAttribute',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='LAST_MODIFIED_TIME', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ARTIST', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALBUM', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='TITLE', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='TRACK_NUMBER', index=4, number=6,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PLAY_COUNT', index=5, number=9,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='DURATION_MILLIS', index=6, number=10,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='RATING', index=7, number=11,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CREATION_TIME', index=8, number=12,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4167,
  serialized_end=4327,
)

_GETTRACKSREQUEST_TRACKPROJECTION = descriptor.EnumDescriptor(
  name='TrackProjection',
  full_name='GetTracksRequest.TrackProjection',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='FULL', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FRONTEND_VIEW', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4666,
  serialized_end=4712,
)

_GETTRACKSRESPONSE_RESPONSECODE = descriptor.EnumDescriptor(
  name='ResponseCode',
  full_name='GetTracksResponse.ResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NOT_MODIFIED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GONE', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4876,
  serialized_end=4926,
)

_GETPLAYLISTENTRIESRESPONSE_RESPONSECODE = descriptor.EnumDescriptor(
  name='ResponseCode',
  full_name='GetPlaylistEntriesResponse.ResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NOT_MODIFIED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GONE', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4876,
  serialized_end=4926,
)

_PLAYLISTSORTORDER_PLAYLISTATTRIBUTE = descriptor.EnumDescriptor(
  name='PlaylistAttribute',
  full_name='PlaylistSortOrder.PlaylistAttribute',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='LAST_MODIFIED_TIME', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='TITLE', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CREATION_TIME', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='RECENT_TIMESTAMP', index=3, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5538,
  serialized_end=5633,
)

_GETPLAYLISTSRESPONSE_RESPONSECODE = descriptor.EnumDescriptor(
  name='ResponseCode',
  full_name='GetPlaylistsResponse.ResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NOT_MODIFIED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='GONE', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4876,
  serialized_end=4926,
)

_BATCHLOOKUPREQUEST_METADATATYPE = descriptor.EnumDescriptor(
  name='MetadataType',
  full_name='BatchLookupRequest.MetadataType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='TRACK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PLAYLIST', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PLAYLIST_ENTRY', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6467,
  serialized_end=6526,
)

_MUTATERESPONSE_MUTATERESPONSECODE = descriptor.EnumDescriptor(
  name='MutateResponseCode',
  full_name='MutateResponse.MutateResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CONFLICT', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='INVALID_REQUEST', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='METADATA_TOO_LARGE', index=3, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=7047,
  serialized_end=7134,
)

_MUTATERESPONSE_AVAILABILITYSTATUS = descriptor.EnumDescriptor(
  name='AvailabilityStatus',
  full_name='MutateResponse.AvailabilityStatus',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PENDING', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='MATCHED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_REQUESTED', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='AVAILABLE', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FORCE_REUPLOAD', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_PERMANENTLY_FAILED', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2101,
  serialized_end=2235,
)

_BATCHMUTATETRACKSRESPONSE_BATCHMUTATETRACKSRESPONSECODE = descriptor.EnumDescriptor(
  name='BatchMutateTracksResponseCode',
  full_name='BatchMutateTracksResponse.BatchMutateTracksResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CONFLICT', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=7634,
  serialized_end=7687,
)

_BATCHMUTATEPLAYLISTSRESPONSE_BATCHMUTATEPLAYLISTSRESPONSECODE = descriptor.EnumDescriptor(
  name='BatchMutatePlaylistsResponseCode',
  full_name='BatchMutatePlaylistsResponse.BatchMutatePlaylistsResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CONFLICT', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=8319,
  serialized_end=8375,
)

_BATCHMUTATEPLAYLISTENTRIESRESPONSE_BATCHMUTATEPLAYLISTENTRIESRESPONSECODE = descriptor.EnumDescriptor(
  name='BatchMutatePlaylistEntriesResponseCode',
  full_name='BatchMutatePlaylistEntriesResponse.BatchMutatePlaylistEntriesResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CONFLICT', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9033,
  serialized_end=9095,
)

_MAGICPLAYLISTSEED_SEEDTYPE = descriptor.EnumDescriptor(
  name='SeedType',
  full_name='MagicPlaylistSeed.SeedType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='TRACK', index=0, number=0,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ARTIST', index=1, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='ALBUM', index=2, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='OPAQUE_SEED', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9181,
  serialized_end=9242,
)

_ALBUMSORTORDER_ALBUMATTRIBUTE = descriptor.EnumDescriptor(
  name='AlbumAttribute',
  full_name='AlbumSortOrder.AlbumAttribute',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='LAST_PLAYED_TIME', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NAME', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='CREATION_TIME', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=10312,
  serialized_end=10379,
)

_GETDYNAMICPLAYLISTENTRIESREQUEST_DYNAMICPLAYLISTENTRIESTYPE = descriptor.EnumDescriptor(
  name='DynamicPlaylistEntriesType',
  full_name='GetDynamicPlaylistEntriesRequest.DynamicPlaylistEntriesType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PURCHASED', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='THUMBS_UP', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='RECENTLY_ADDED', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMOTED', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMOTED_AND_PURCHASED', index=4, number=5,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=11290,
  serialized_end=11410,
)

_GETDYNAMICPLAYLISTENTRIESRESPONSE_DYNAMICPLAYLISTENTRIESTYPE = descriptor.EnumDescriptor(
  name='DynamicPlaylistEntriesType',
  full_name='GetDynamicPlaylistEntriesResponse.DynamicPlaylistEntriesType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PURCHASED', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='THUMBS_UP', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='RECENTLY_ADDED', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMOTED', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMOTED_AND_PURCHASED', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=11718,
  serialized_end=11851,
)

_GETDYNAMICPLAYLISTENTRIESRESPONSE_RESPONSECODE = descriptor.EnumDescriptor(
  name='ResponseCode',
  full_name='GetDynamicPlaylistEntriesResponse.ResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NOT_OK', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=11853,
  serialized_end=11887,
)

_TRACKTYPEAGGREGATE_TRACKTYPE = descriptor.EnumDescriptor(
  name='TrackType',
  full_name='TrackTypeAggregate.TrackType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='MATCHED_TRACK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UNMATCHED_TRACK', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='LOCAL_TRACK', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PURCHASED_TRACK', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='METADATA_ONLY_MATCHED_TRACK', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PROMO_TRACK', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2361,
  serialized_end=2500,
)

_AVAILABILITYSTATUSAGGREGATE_AVAILABILITYSTATUS = descriptor.EnumDescriptor(
  name='AvailabilityStatus',
  full_name='AvailabilityStatusAggregate.AvailabilityStatus',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='PENDING', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='MATCHED', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_REQUESTED', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='AVAILABLE', index=3, number=4,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='FORCE_REUPLOAD', index=4, number=5,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='UPLOAD_PERMANENTLY_FAILED', index=5, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2101,
  serialized_end=2235,
)

_REMOTECONTROLCOMMANDRESPONSE_RESPONSECODE = descriptor.EnumDescriptor(
  name='ResponseCode',
  full_name='RemoteControlCommandResponse.ResponseCode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    descriptor.EnumValueDescriptor(
      name='OK', index=0, number=1,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='NO_PUBLISHER', index=1, number=2,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='INVALID_REQUEST', index=2, number=3,
      options=None,
      type=None),
    descriptor.EnumValueDescriptor(
      name='PUBLISH_ERROR', index=3, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=13274,
  serialized_end=13354,
)


_AUDIOREF = descriptor.Descriptor(
  name='AudioRef',
  full_name='AudioRef',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='store', full_name='AudioRef.store', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='ref', full_name='AudioRef.ref', index=1,
      number=2, type=12, cpp_type=9, label=2,
      has_default_value=False, default_value="",
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='url', full_name='AudioRef.url', index=2,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='bit_rate', full_name='AudioRef.bit_rate', index=3,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sample_rate', full_name='AudioRef.sample_rate', index=4,
      number=6, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='downloadable', full_name='AudioRef.downloadable', index=5,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='duration_millis', full_name='AudioRef.duration_millis', index=6,
      number=8, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='rematch_timestamp', full_name='AudioRef.rematch_timestamp', index=7,
      number=9, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='invalid_due_to_wipeout', full_name='AudioRef.invalid_due_to_wipeout', index=8,
      number=10, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _AUDIOREF_STORE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=29,
  serialized_end=277,
)


_IMAGEREF = descriptor.Descriptor(
  name='ImageRef',
  full_name='ImageRef',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='store', full_name='ImageRef.store', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=3,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='width', full_name='ImageRef.width', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='height', full_name='ImageRef.height', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='url', full_name='ImageRef.url', index=3,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='invalid_due_to_wipeout', full_name='ImageRef.invalid_due_to_wipeout', index=4,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='origin', full_name='ImageRef.origin', index=5,
      number=8, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _IMAGEREF_STORE,
    _IMAGEREF_ORIGIN,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=280,
  serialized_end=489,
)


_UPLOADEDUITSID3TAG = descriptor.Descriptor(
  name='UploadedUitsId3Tag',
  full_name='UploadedUitsId3Tag',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='owner', full_name='UploadedUitsId3Tag.owner', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='data', full_name='UploadedUitsId3Tag.data', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value="",
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=491,
  serialized_end=540,
)


_TRACK = descriptor.Descriptor(
  name='Track',
  full_name='Track',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='id', full_name='Track.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='Track.client_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='creation_timestamp', full_name='Track.creation_timestamp', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='last_modified_timestamp', full_name='Track.last_modified_timestamp', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='deleted', full_name='Track.deleted', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='title', full_name='Track.title', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='artist', full_name='Track.artist', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='artist_hash', full_name='Track.artist_hash', index=7,
      number=46, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='composer', full_name='Track.composer', index=8,
      number=8, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album', full_name='Track.album', index=9,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_artist', full_name='Track.album_artist', index=10,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='canonical_album', full_name='Track.canonical_album', index=11,
      number=56, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='canonical_artist', full_name='Track.canonical_artist', index=12,
      number=57, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='canonical_genre_album', full_name='Track.canonical_genre_album', index=13,
      number=58, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='year', full_name='Track.year', index=14,
      number=11, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='comment', full_name='Track.comment', index=15,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_number', full_name='Track.track_number', index=16,
      number=13, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='genre', full_name='Track.genre', index=17,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='duration_millis', full_name='Track.duration_millis', index=18,
      number=15, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='beats_per_minute', full_name='Track.beats_per_minute', index=19,
      number=16, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='original_bit_rate', full_name='Track.original_bit_rate', index=20,
      number=44, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='audio_ref', full_name='Track.audio_ref', index=21,
      number=17, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_art_ref', full_name='Track.album_art_ref', index=22,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='availability_status', full_name='Track.availability_status', index=23,
      number=19, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='play_count', full_name='Track.play_count', index=24,
      number=20, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='content_type', full_name='Track.content_type', index=25,
      number=25, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='total_track_count', full_name='Track.total_track_count', index=26,
      number=26, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='disc_number', full_name='Track.disc_number', index=27,
      number=27, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='total_disc_count', full_name='Track.total_disc_count', index=28,
      number=28, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='channels', full_name='Track.channels', index=29,
      number=29, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_type', full_name='Track.track_type', index=30,
      number=30, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='use_single_server_copy', full_name='Track.use_single_server_copy', index=31,
      number=59, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='rating', full_name='Track.rating', index=32,
      number=31, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='estimated_size', full_name='Track.estimated_size', index=33,
      number=32, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='store_id', full_name='Track.store_id', index=34,
      number=33, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='metajam_id', full_name='Track.metajam_id', index=35,
      number=34, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='metajam_id_confidence', full_name='Track.metajam_id_confidence', index=36,
      number=43, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='uits', full_name='Track.uits', index=37,
      number=35, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='uits_metadata', full_name='Track.uits_metadata', index=38,
      number=40, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='compilation', full_name='Track.compilation', index=39,
      number=36, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_date_added', full_name='Track.client_date_added', index=40,
      number=37, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='recent_timestamp', full_name='Track.recent_timestamp', index=41,
      number=38, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='do_not_rematch', full_name='Track.do_not_rematch', index=42,
      number=39, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='from_album_purchase', full_name='Track.from_album_purchase', index=43,
      number=41, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_metajam_id', full_name='Track.album_metajam_id', index=44,
      number=42, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='transaction_id', full_name='Track.transaction_id', index=45,
      number=45, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='debug_track', full_name='Track.debug_track', index=46,
      number=47, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_title', full_name='Track.normalized_title', index=47,
      number=48, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_artist', full_name='Track.normalized_artist', index=48,
      number=49, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_album', full_name='Track.normalized_album', index=49,
      number=50, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_album_artist', full_name='Track.normalized_album_artist', index=50,
      number=51, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_canonical_album', full_name='Track.normalized_canonical_album', index=51,
      number=54, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='normalized_canonical_artist', full_name='Track.normalized_canonical_artist', index=52,
      number=55, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='uploader_id', full_name='Track.uploader_id', index=53,
      number=52, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_album_id', full_name='Track.client_album_id', index=54,
      number=53, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='label_owner_code', full_name='Track.label_owner_code', index=55,
      number=60, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='original_content_type', full_name='Track.original_content_type', index=56,
      number=61, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='uploaded_uits', full_name='Track.uploaded_uits', index=57,
      number=71, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TRACK_AVAILABILITYSTATUS,
    _TRACK_CONTENTTYPE,
    _TRACK_CHANNELS,
    _TRACK_TRACKTYPE,
    _TRACK_RATING,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=543,
  serialized_end=2603,
)


_TRACKS = descriptor.Descriptor(
  name='Tracks',
  full_name='Tracks',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='track', full_name='Tracks.track', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=2605,
  serialized_end=2636,
)


_PLAYLIST = descriptor.Descriptor(
  name='Playlist',
  full_name='Playlist',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='id', full_name='Playlist.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='Playlist.client_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='creation_timestamp', full_name='Playlist.creation_timestamp', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='last_modified_timestamp', full_name='Playlist.last_modified_timestamp', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='deleted', full_name='Playlist.deleted', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='name', full_name='Playlist.name', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_type', full_name='Playlist.playlist_type', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_art_ref', full_name='Playlist.playlist_art_ref', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='recent_timestamp', full_name='Playlist.recent_timestamp', index=8,
      number=9, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _PLAYLIST_PLAYLISTTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=2639,
  serialized_end=2947,
)


_PLAYLISTENTRY = descriptor.Descriptor(
  name='PlaylistEntry',
  full_name='PlaylistEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='playlist_id', full_name='PlaylistEntry.playlist_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='absolute_position', full_name='PlaylistEntry.absolute_position', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='place_after_entry_id', full_name='PlaylistEntry.place_after_entry_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_id', full_name='PlaylistEntry.track_id', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='id', full_name='PlaylistEntry.id', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='PlaylistEntry.client_id', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='creation_timestamp', full_name='PlaylistEntry.creation_timestamp', index=6,
      number=7, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='last_modified_timestamp', full_name='PlaylistEntry.last_modified_timestamp', index=7,
      number=8, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='deleted', full_name='PlaylistEntry.deleted', index=8,
      number=9, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='relative_position_id_type', full_name='PlaylistEntry.relative_position_id_type', index=9,
      number=10, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track', full_name='PlaylistEntry.track', index=10,
      number=15, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='place_before_entry_id', full_name='PlaylistEntry.place_before_entry_id', index=11,
      number=16, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='string_position', full_name='PlaylistEntry.string_position', index=12,
      number=17, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _PLAYLISTENTRY_RELATIVEPOSITIONIDTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=2950,
  serialized_end=3380,
)


_TRACKSEARCHRESTRICTION = descriptor.Descriptor(
  name='TrackSearchRestriction',
  full_name='TrackSearchRestriction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='attribute', full_name='TrackSearchRestriction.attribute', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='value', full_name='TrackSearchRestriction.value', index=1,
      number=2, type=9, cpp_type=9, label=2,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='comparison_type', full_name='TrackSearchRestriction.comparison_type', index=2,
      number=3, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TRACKSEARCHRESTRICTION_TRACKATTRIBUTE,
    _TRACKSEARCHRESTRICTION_COMPARISONTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=3383,
  serialized_end=3847,
)


_TRACKSEARCHRESTRICTIONSET = descriptor.Descriptor(
  name='TrackSearchRestrictionSet',
  full_name='TrackSearchRestrictionSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='type', full_name='TrackSearchRestrictionSet.type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='restriction', full_name='TrackSearchRestrictionSet.restriction', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sub_set', full_name='TrackSearchRestrictionSet.sub_set', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TRACKSEARCHRESTRICTIONSET_RESTRICTIONSETTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=3850,
  serialized_end=4068,
)


_TRACKSORTORDER = descriptor.Descriptor(
  name='TrackSortOrder',
  full_name='TrackSortOrder',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='attribute', full_name='TrackSortOrder.attribute', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='descending', full_name='TrackSortOrder.descending', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TRACKSORTORDER_TRACKATTRIBUTE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=4071,
  serialized_end=4327,
)


_GETTRACKSREQUEST = descriptor.Descriptor(
  name='GetTracksRequest',
  full_name='GetTracksRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetTracksRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='updated_min', full_name='GetTracksRequest.updated_min', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_deleted', full_name='GetTracksRequest.include_deleted', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetTracksRequest.max_results', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetTracksRequest.continuation_token', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='search_restriction', full_name='GetTracksRequest.search_restriction', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sort_order', full_name='GetTracksRequest.sort_order', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='restriction_set', full_name='GetTracksRequest.restriction_set', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_projection', full_name='GetTracksRequest.track_projection', index=8,
      number=9, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETTRACKSREQUEST_TRACKPROJECTION,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=4330,
  serialized_end=4712,
)


_GETTRACKSRESPONSE = descriptor.Descriptor(
  name='GetTracksResponse',
  full_name='GetTracksResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='GetTracksResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track', full_name='GetTracksResponse.track', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='estimated_total_results', full_name='GetTracksResponse.estimated_total_results', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetTracksResponse.continuation_token', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETTRACKSRESPONSE_RESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=4715,
  serialized_end=4926,
)


_GETPLAYLISTENTRIESREQUEST = descriptor.Descriptor(
  name='GetPlaylistEntriesRequest',
  full_name='GetPlaylistEntriesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetPlaylistEntriesRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='updated_min', full_name='GetPlaylistEntriesRequest.updated_min', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_deleted', full_name='GetPlaylistEntriesRequest.include_deleted', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetPlaylistEntriesRequest.max_results', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetPlaylistEntriesRequest.continuation_token', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_id_filter', full_name='GetPlaylistEntriesRequest.playlist_id_filter', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_all_track_metadata', full_name='GetPlaylistEntriesRequest.include_all_track_metadata', index=6,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='only_show_available_tracks', full_name='GetPlaylistEntriesRequest.only_show_available_tracks', index=7,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=4929,
  serialized_end=5181,
)


_GETPLAYLISTENTRIESRESPONSE = descriptor.Descriptor(
  name='GetPlaylistEntriesResponse',
  full_name='GetPlaylistEntriesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='GetPlaylistEntriesResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='GetPlaylistEntriesResponse.playlist_entry', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='estimated_total_results', full_name='GetPlaylistEntriesResponse.estimated_total_results', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetPlaylistEntriesResponse.continuation_token', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETPLAYLISTENTRIESRESPONSE_RESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=5184,
  serialized_end=5430,
)


_PLAYLISTSORTORDER = descriptor.Descriptor(
  name='PlaylistSortOrder',
  full_name='PlaylistSortOrder',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='attribute', full_name='PlaylistSortOrder.attribute', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='descending', full_name='PlaylistSortOrder.descending', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _PLAYLISTSORTORDER_PLAYLISTATTRIBUTE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=5433,
  serialized_end=5633,
)


_GETPLAYLISTSREQUEST = descriptor.Descriptor(
  name='GetPlaylistsRequest',
  full_name='GetPlaylistsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetPlaylistsRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='updated_min', full_name='GetPlaylistsRequest.updated_min', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_deleted', full_name='GetPlaylistsRequest.include_deleted', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetPlaylistsRequest.max_results', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetPlaylistsRequest.continuation_token', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sort_order', full_name='GetPlaylistsRequest.sort_order', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=5636,
  serialized_end=5809,
)


_GETPLAYLISTSRESPONSE = descriptor.Descriptor(
  name='GetPlaylistsResponse',
  full_name='GetPlaylistsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='GetPlaylistsResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist', full_name='GetPlaylistsResponse.playlist', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='estimated_total_results', full_name='GetPlaylistsResponse.estimated_total_results', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetPlaylistsResponse.continuation_token', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETPLAYLISTSRESPONSE_RESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=5812,
  serialized_end=6035,
)


_LOOKUPTRACKREQUEST = descriptor.Descriptor(
  name='LookupTrackRequest',
  full_name='LookupTrackRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='id', full_name='LookupTrackRequest.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='LookupTrackRequest.client_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6037,
  serialized_end=6088,
)


_LOOKUPPLAYLISTENTRYREQUEST = descriptor.Descriptor(
  name='LookupPlaylistEntryRequest',
  full_name='LookupPlaylistEntryRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='id', full_name='LookupPlaylistEntryRequest.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='LookupPlaylistEntryRequest.client_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6090,
  serialized_end=6149,
)


_LOOKUPPLAYLISTREQUEST = descriptor.Descriptor(
  name='LookupPlaylistRequest',
  full_name='LookupPlaylistRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='id', full_name='LookupPlaylistRequest.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='LookupPlaylistRequest.client_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6151,
  serialized_end=6205,
)


_BATCHLOOKUPREQUEST = descriptor.Descriptor(
  name='BatchLookupRequest',
  full_name='BatchLookupRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='BatchLookupRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track', full_name='BatchLookupRequest.track', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist', full_name='BatchLookupRequest.playlist', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='metadata_type', full_name='BatchLookupRequest.metadata_type', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='BatchLookupRequest.playlist_entry', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_deleted', full_name='BatchLookupRequest.include_deleted', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BATCHLOOKUPREQUEST_METADATATYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6208,
  serialized_end=6526,
)


_BATCHLOOKUPRESPONSE = descriptor.Descriptor(
  name='BatchLookupResponse',
  full_name='BatchLookupResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='track', full_name='BatchLookupResponse.track', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist', full_name='BatchLookupResponse.playlist', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='BatchLookupResponse.playlist_entry', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6528,
  serialized_end=6641,
)


_MUTATETRACKREQUEST = descriptor.Descriptor(
  name='MutateTrackRequest',
  full_name='MutateTrackRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='create_track', full_name='MutateTrackRequest.create_track', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_track', full_name='MutateTrackRequest.update_track', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='delete_track', full_name='MutateTrackRequest.delete_track', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='partial_update', full_name='MutateTrackRequest.partial_update', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_last_modified', full_name='MutateTrackRequest.update_last_modified', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='undelete_track', full_name='MutateTrackRequest.undelete_track', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6644,
  serialized_end=6830,
)


_MUTATERESPONSE = descriptor.Descriptor(
  name='MutateResponse',
  full_name='MutateResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='MutateResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='id', full_name='MutateResponse.id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='child_id', full_name='MutateResponse.child_id', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='client_id', full_name='MutateResponse.client_id', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='availability_status', full_name='MutateResponse.availability_status', index=4,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='error_message', full_name='MutateResponse.error_message', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _MUTATERESPONSE_MUTATERESPONSECODE,
    _MUTATERESPONSE_AVAILABILITYSTATUS,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=6833,
  serialized_end=7271,
)


_BATCHMUTATETRACKSREQUEST = descriptor.Descriptor(
  name='BatchMutateTracksRequest',
  full_name='BatchMutateTracksRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='BatchMutateTracksRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_mutation', full_name='BatchMutateTracksRequest.track_mutation', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='send_notification', full_name='BatchMutateTracksRequest.send_notification', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='detect_timestamp_conflict', full_name='BatchMutateTracksRequest.detect_timestamp_conflict', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='notify_fine_grained_updates', full_name='BatchMutateTracksRequest.notify_fine_grained_updates', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=7274,
  serialized_end=7479,
)


_BATCHMUTATETRACKSRESPONSE = descriptor.Descriptor(
  name='BatchMutateTracksResponse',
  full_name='BatchMutateTracksResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='BatchMutateTracksResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='mutate_response', full_name='BatchMutateTracksResponse.mutate_response', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BATCHMUTATETRACKSRESPONSE_BATCHMUTATETRACKSRESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=7482,
  serialized_end=7687,
)


_MUTATEPLAYLISTREQUEST = descriptor.Descriptor(
  name='MutatePlaylistRequest',
  full_name='MutatePlaylistRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='create_playlist', full_name='MutatePlaylistRequest.create_playlist', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_playlist', full_name='MutatePlaylistRequest.update_playlist', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='delete_playlist', full_name='MutatePlaylistRequest.delete_playlist', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='partial_update', full_name='MutatePlaylistRequest.partial_update', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='MutatePlaylistRequest.playlist_entry', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_last_modified', full_name='MutatePlaylistRequest.update_last_modified', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='undelete_playlist', full_name='MutatePlaylistRequest.undelete_playlist', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=7690,
  serialized_end=7937,
)


_BATCHMUTATEPLAYLISTSREQUEST = descriptor.Descriptor(
  name='BatchMutatePlaylistsRequest',
  full_name='BatchMutatePlaylistsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='BatchMutatePlaylistsRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_mutation', full_name='BatchMutatePlaylistsRequest.playlist_mutation', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='send_notification', full_name='BatchMutatePlaylistsRequest.send_notification', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='detect_timestamp_conflict', full_name='BatchMutatePlaylistsRequest.detect_timestamp_conflict', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='notify_fine_grained_updates', full_name='BatchMutatePlaylistsRequest.notify_fine_grained_updates', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=7940,
  serialized_end=8155,
)


_BATCHMUTATEPLAYLISTSRESPONSE = descriptor.Descriptor(
  name='BatchMutatePlaylistsResponse',
  full_name='BatchMutatePlaylistsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='BatchMutatePlaylistsResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='mutate_response', full_name='BatchMutatePlaylistsResponse.mutate_response', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BATCHMUTATEPLAYLISTSRESPONSE_BATCHMUTATEPLAYLISTSRESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=8158,
  serialized_end=8375,
)


_MUTATEPLAYLISTENTRYREQUEST = descriptor.Descriptor(
  name='MutatePlaylistEntryRequest',
  full_name='MutatePlaylistEntryRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='create_playlist_entry', full_name='MutatePlaylistEntryRequest.create_playlist_entry', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_playlist_entry', full_name='MutatePlaylistEntryRequest.update_playlist_entry', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='delete_playlist_entry', full_name='MutatePlaylistEntryRequest.delete_playlist_entry', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='update_last_modified', full_name='MutatePlaylistEntryRequest.update_last_modified', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='undelete_playlist_entry', full_name='MutatePlaylistEntryRequest.undelete_playlist_entry', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=8378,
  serialized_end=8616,
)


_BATCHMUTATEPLAYLISTENTRIESREQUEST = descriptor.Descriptor(
  name='BatchMutatePlaylistEntriesRequest',
  full_name='BatchMutatePlaylistEntriesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='BatchMutatePlaylistEntriesRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry_mutation', full_name='BatchMutatePlaylistEntriesRequest.playlist_entry_mutation', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='send_notification', full_name='BatchMutatePlaylistEntriesRequest.send_notification', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='detect_timestamp_conflict', full_name='BatchMutatePlaylistEntriesRequest.detect_timestamp_conflict', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='notify_fine_grained_updates', full_name='BatchMutatePlaylistEntriesRequest.notify_fine_grained_updates', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=8619,
  serialized_end=8851,
)


_BATCHMUTATEPLAYLISTENTRIESRESPONSE = descriptor.Descriptor(
  name='BatchMutatePlaylistEntriesResponse',
  full_name='BatchMutatePlaylistEntriesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='BatchMutatePlaylistEntriesResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='mutate_response', full_name='BatchMutatePlaylistEntriesResponse.mutate_response', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BATCHMUTATEPLAYLISTENTRIESRESPONSE_BATCHMUTATEPLAYLISTENTRIESRESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=8854,
  serialized_end=9095,
)


_MAGICPLAYLISTSEED = descriptor.Descriptor(
  name='MagicPlaylistSeed',
  full_name='MagicPlaylistSeed',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='seed_type', full_name='MagicPlaylistSeed.seed_type', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='seed', full_name='MagicPlaylistSeed.seed', index=1,
      number=2, type=9, cpp_type=9, label=2,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _MAGICPLAYLISTSEED_SEEDTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9098,
  serialized_end=9242,
)


_MAGICPLAYLISTREQUEST = descriptor.Descriptor(
  name='MagicPlaylistRequest',
  full_name='MagicPlaylistRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='MagicPlaylistRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_name', full_name='MagicPlaylistRequest.playlist_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_id', full_name='MagicPlaylistRequest.playlist_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='seed', full_name='MagicPlaylistRequest.seed', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='num_recommendations', full_name='MagicPlaylistRequest.num_recommendations', index=4,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_all_track_metadata', full_name='MagicPlaylistRequest.include_all_track_metadata', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='model_name', full_name='MagicPlaylistRequest.model_name', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9245,
  serialized_end=9454,
)


_MAGICPLAYLISTRESPONSE = descriptor.Descriptor(
  name='MagicPlaylistResponse',
  full_name='MagicPlaylistResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='playlist', full_name='MagicPlaylistResponse.playlist', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='MagicPlaylistResponse.playlist_entry', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9456,
  serialized_end=9548,
)


_FLUSHLOCKERREQUEST = descriptor.Descriptor(
  name='FlushLockerRequest',
  full_name='FlushLockerRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='FlushLockerRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='gaia_cookie', full_name='FlushLockerRequest.gaia_cookie', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='remove_audio_binaries', full_name='FlushLockerRequest.remove_audio_binaries', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='remove_image_binaries', full_name='FlushLockerRequest.remove_image_binaries', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='send_notification', full_name='FlushLockerRequest.send_notification', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='reset_subscription_type', full_name='FlushLockerRequest.reset_subscription_type', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='notify_fine_grained_updates', full_name='FlushLockerRequest.notify_fine_grained_updates', index=6,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9551,
  serialized_end=9799,
)


_FLUSHLOCKERRESPONSE = descriptor.Descriptor(
  name='FlushLockerResponse',
  full_name='FlushLockerResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='tracks_removed', full_name='FlushLockerResponse.tracks_removed', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='entries_removed', full_name='FlushLockerResponse.entries_removed', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlists_removed', full_name='FlushLockerResponse.playlists_removed', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='success_reset_subscription_type', full_name='FlushLockerResponse.success_reset_subscription_type', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9802,
  serialized_end=9940,
)


_LOCKERNOTIFICATION = descriptor.Descriptor(
  name='LockerNotification',
  full_name='LockerNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='LockerNotification.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='payload', full_name='LockerNotification.payload', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value="",
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9942,
  serialized_end=9996,
)


_ALBUM = descriptor.Descriptor(
  name='Album',
  full_name='Album',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='name', full_name='Album.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_artist', full_name='Album.album_artist', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_art', full_name='Album.album_art', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_count', full_name='Album.track_count', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='last_time_played', full_name='Album.last_time_played', index=4,
      number=5, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='is_compilation', full_name='Album.is_compilation', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_metajam_id', full_name='Album.album_metajam_id', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='creation_timestamp', full_name='Album.creation_timestamp', index=7,
      number=8, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='artist', full_name='Album.artist', index=8,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=9999,
  serialized_end=10213,
)


_ALBUMSORTORDER = descriptor.Descriptor(
  name='AlbumSortOrder',
  full_name='AlbumSortOrder',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='attribute', full_name='AlbumSortOrder.attribute', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='descending', full_name='AlbumSortOrder.descending', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _ALBUMSORTORDER_ALBUMATTRIBUTE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10216,
  serialized_end=10379,
)


_GETALBUMSREQUEST = descriptor.Descriptor(
  name='GetAlbumsRequest',
  full_name='GetAlbumsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetAlbumsRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sort_order', full_name='GetAlbumsRequest.sort_order', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetAlbumsRequest.max_results', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10381,
  serialized_end=10474,
)


_GETALBUMSRESPONSE = descriptor.Descriptor(
  name='GetAlbumsResponse',
  full_name='GetAlbumsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='album', full_name='GetAlbumsResponse.album', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10476,
  serialized_end=10518,
)


_ARTIST = descriptor.Descriptor(
  name='Artist',
  full_name='Artist',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='name', full_name='Artist.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='total_track_count', full_name='Artist.total_track_count', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album', full_name='Artist.album', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10520,
  serialized_end=10592,
)


_ARTISTSORTORDER = descriptor.Descriptor(
  name='ArtistSortOrder',
  full_name='ArtistSortOrder',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='descending', full_name='ArtistSortOrder.descending', index=0,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10594,
  serialized_end=10638,
)


_GETARTISTSREQUEST = descriptor.Descriptor(
  name='GetArtistsRequest',
  full_name='GetArtistsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetArtistsRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sort_order', full_name='GetArtistsRequest.sort_order', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetArtistsRequest.max_results', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10640,
  serialized_end=10735,
)


_GETARTISTSRESPONSE = descriptor.Descriptor(
  name='GetArtistsResponse',
  full_name='GetArtistsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='artist', full_name='GetArtistsResponse.artist', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10737,
  serialized_end=10782,
)


_MUSICGENRE = descriptor.Descriptor(
  name='MusicGenre',
  full_name='MusicGenre',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='name', full_name='MusicGenre.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='total_track_count', full_name='MusicGenre.total_track_count', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album', full_name='MusicGenre.album', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10784,
  serialized_end=10860,
)


_GENRESORTORDER = descriptor.Descriptor(
  name='GenreSortOrder',
  full_name='GenreSortOrder',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='descending', full_name='GenreSortOrder.descending', index=0,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10862,
  serialized_end=10905,
)


_GETGENRESREQUEST = descriptor.Descriptor(
  name='GetGenresRequest',
  full_name='GetGenresRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetGenresRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='sort_order', full_name='GetGenresRequest.sort_order', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetGenresRequest.max_results', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=10907,
  serialized_end=11000,
)


_GETGENRESRESPONSE = descriptor.Descriptor(
  name='GetGenresResponse',
  full_name='GetGenresResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='genre', full_name='GetGenresResponse.genre', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=11002,
  serialized_end=11049,
)


_GETDYNAMICPLAYLISTENTRIESREQUEST = descriptor.Descriptor(
  name='GetDynamicPlaylistEntriesRequest',
  full_name='GetDynamicPlaylistEntriesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetDynamicPlaylistEntriesRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entries_type', full_name='GetDynamicPlaylistEntriesRequest.playlist_entries_type', index=1,
      number=4, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetDynamicPlaylistEntriesRequest.max_results', index=2,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetDynamicPlaylistEntriesRequest.continuation_token', index=3,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='include_all_track_metadata', full_name='GetDynamicPlaylistEntriesRequest.include_all_track_metadata', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETDYNAMICPLAYLISTENTRIESREQUEST_DYNAMICPLAYLISTENTRIESTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=11052,
  serialized_end=11410,
)


_GETDYNAMICPLAYLISTENTRIESRESPONSE = descriptor.Descriptor(
  name='GetDynamicPlaylistEntriesResponse',
  full_name='GetDynamicPlaylistEntriesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='GetDynamicPlaylistEntriesResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entry', full_name='GetDynamicPlaylistEntriesResponse.playlist_entry', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='estimated_total_results', full_name='GetDynamicPlaylistEntriesResponse.estimated_total_results', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='continuation_token', full_name='GetDynamicPlaylistEntriesResponse.continuation_token', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='playlist_entries_type', full_name='GetDynamicPlaylistEntriesResponse.playlist_entries_type', index=4,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GETDYNAMICPLAYLISTENTRIESRESPONSE_DYNAMICPLAYLISTENTRIESTYPE,
    _GETDYNAMICPLAYLISTENTRIESRESPONSE_RESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=11413,
  serialized_end=11887,
)


_GETAGGREGATIONSBYTRACKTYPEREQUEST = descriptor.Descriptor(
  name='GetAggregationsByTrackTypeRequest',
  full_name='GetAggregationsByTrackTypeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetAggregationsByTrackTypeRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=11889,
  serialized_end=11941,
)


_TRACKTYPEAGGREGATE = descriptor.Descriptor(
  name='TrackTypeAggregate',
  full_name='TrackTypeAggregate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='track_type_value', full_name='TrackTypeAggregate.track_type_value', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='count', full_name='TrackTypeAggregate.count', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TRACKTYPEAGGREGATE_TRACKTYPE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=11944,
  serialized_end=12178,
)


_GETAGGREGATIONSBYTRACKTYPERESPONSE = descriptor.Descriptor(
  name='GetAggregationsByTrackTypeResponse',
  full_name='GetAggregationsByTrackTypeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='track_type_aggregate', full_name='GetAggregationsByTrackTypeResponse.track_type_aggregate', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12180,
  serialized_end=12267,
)


_GETAGGREGATIONSBYAVAILABILITYSTATUSREQUEST = descriptor.Descriptor(
  name='GetAggregationsByAvailabilityStatusRequest',
  full_name='GetAggregationsByAvailabilityStatusRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetAggregationsByAvailabilityStatusRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12269,
  serialized_end=12330,
)


_AVAILABILITYSTATUSAGGREGATE = descriptor.Descriptor(
  name='AvailabilityStatusAggregate',
  full_name='AvailabilityStatusAggregate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='availability_status', full_name='AvailabilityStatusAggregate.availability_status', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='count', full_name='AvailabilityStatusAggregate.count', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _AVAILABILITYSTATUSAGGREGATE_AVAILABILITYSTATUS,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12333,
  serialized_end=12592,
)


_GETAGGREGATIONSBYAVAILABILITYSTATUSRESPONSE = descriptor.Descriptor(
  name='GetAggregationsByAvailabilityStatusResponse',
  full_name='GetAggregationsByAvailabilityStatusResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='availability_status_aggregate', full_name='GetAggregationsByAvailabilityStatusResponse.availability_status_aggregate', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12594,
  serialized_end=12708,
)


_ADDPROMOTRACKSREQUEST = descriptor.Descriptor(
  name='AddPromoTracksRequest',
  full_name='AddPromoTracksRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='AddPromoTracksRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='genre', full_name='AddPromoTracksRequest.genre', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12710,
  serialized_end=12765,
)


_ADDPROMOTRACKSRESPONSE = descriptor.Descriptor(
  name='AddPromoTracksResponse',
  full_name='AddPromoTracksResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='track', full_name='AddPromoTracksResponse.track', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12767,
  serialized_end=12814,
)


_GETPLAYLISTAGGREGATIONSREQUEST = descriptor.Descriptor(
  name='GetPlaylistAggregationsRequest',
  full_name='GetPlaylistAggregationsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='GetPlaylistAggregationsRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='max_results', full_name='GetPlaylistAggregationsRequest.max_results', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=14,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12816,
  serialized_end=12890,
)


_PLAYLISTAGGREGATE = descriptor.Descriptor(
  name='PlaylistAggregate',
  full_name='PlaylistAggregate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='playlist_id', full_name='PlaylistAggregate.playlist_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='name', full_name='PlaylistAggregate.name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='album_art', full_name='PlaylistAggregate.album_art', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='track_count', full_name='PlaylistAggregate.track_count', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='last_time_played', full_name='PlaylistAggregate.last_time_played', index=4,
      number=5, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=12893,
  serialized_end=13024,
)


_GETPLAYLISTAGGREGATIONSRESPONSE = descriptor.Descriptor(
  name='GetPlaylistAggregationsResponse',
  full_name='GetPlaylistAggregationsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='playlist_aggregate', full_name='GetPlaylistAggregationsResponse.playlist_aggregate', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=13026,
  serialized_end=13107,
)


_REMOTECONTROLCOMMANDREQUEST = descriptor.Descriptor(
  name='RemoteControlCommandRequest',
  full_name='RemoteControlCommandRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='gaia_id', full_name='RemoteControlCommandRequest.gaia_id', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    descriptor.FieldDescriptor(
      name='command', full_name='RemoteControlCommandRequest.command', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=unicode("", "utf-8"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=13109,
  serialized_end=13172,
)


_REMOTECONTROLCOMMANDRESPONSE = descriptor.Descriptor(
  name='RemoteControlCommandResponse',
  full_name='RemoteControlCommandResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    descriptor.FieldDescriptor(
      name='response_code', full_name='RemoteControlCommandResponse.response_code', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _REMOTECONTROLCOMMANDRESPONSE_RESPONSECODE,
  ],
  options=None,
  is_extendable=False,
  extension_ranges=[],
  serialized_start=13175,
  serialized_end=13354,
)

_AUDIOREF.fields_by_name['store'].enum_type = _AUDIOREF_STORE
_AUDIOREF_STORE.containing_type = _AUDIOREF;
_IMAGEREF.fields_by_name['store'].enum_type = _IMAGEREF_STORE
_IMAGEREF.fields_by_name['origin'].enum_type = _IMAGEREF_ORIGIN
_IMAGEREF_STORE.containing_type = _IMAGEREF;
_IMAGEREF_ORIGIN.containing_type = _IMAGEREF;
_TRACK.fields_by_name['audio_ref'].message_type = _AUDIOREF
_TRACK.fields_by_name['album_art_ref'].message_type = _IMAGEREF
_TRACK.fields_by_name['availability_status'].enum_type = _TRACK_AVAILABILITYSTATUS
_TRACK.fields_by_name['content_type'].enum_type = _TRACK_CONTENTTYPE
_TRACK.fields_by_name['channels'].enum_type = _TRACK_CHANNELS
_TRACK.fields_by_name['track_type'].enum_type = _TRACK_TRACKTYPE
_TRACK.fields_by_name['rating'].enum_type = _TRACK_RATING
_TRACK.fields_by_name['uits_metadata'].message_type = uits_pb2._UITSMETADATA
_TRACK.fields_by_name['original_content_type'].enum_type = _TRACK_CONTENTTYPE
_TRACK.fields_by_name['uploaded_uits'].message_type = _UPLOADEDUITSID3TAG
_TRACK_AVAILABILITYSTATUS.containing_type = _TRACK;
_TRACK_CONTENTTYPE.containing_type = _TRACK;
_TRACK_CHANNELS.containing_type = _TRACK;
_TRACK_TRACKTYPE.containing_type = _TRACK;
_TRACK_RATING.containing_type = _TRACK;
_TRACKS.fields_by_name['track'].message_type = _TRACK
_PLAYLIST.fields_by_name['playlist_type'].enum_type = _PLAYLIST_PLAYLISTTYPE
_PLAYLIST.fields_by_name['playlist_art_ref'].message_type = _IMAGEREF
_PLAYLIST_PLAYLISTTYPE.containing_type = _PLAYLIST;
_PLAYLISTENTRY.fields_by_name['relative_position_id_type'].enum_type = _PLAYLISTENTRY_RELATIVEPOSITIONIDTYPE
_PLAYLISTENTRY.fields_by_name['track'].message_type = _TRACK
_PLAYLISTENTRY_RELATIVEPOSITIONIDTYPE.containing_type = _PLAYLISTENTRY;
_TRACKSEARCHRESTRICTION.fields_by_name['attribute'].enum_type = _TRACKSEARCHRESTRICTION_TRACKATTRIBUTE
_TRACKSEARCHRESTRICTION.fields_by_name['comparison_type'].enum_type = _TRACKSEARCHRESTRICTION_COMPARISONTYPE
_TRACKSEARCHRESTRICTION_TRACKATTRIBUTE.containing_type = _TRACKSEARCHRESTRICTION;
_TRACKSEARCHRESTRICTION_COMPARISONTYPE.containing_type = _TRACKSEARCHRESTRICTION;
_TRACKSEARCHRESTRICTIONSET.fields_by_name['type'].enum_type = _TRACKSEARCHRESTRICTIONSET_RESTRICTIONSETTYPE
_TRACKSEARCHRESTRICTIONSET.fields_by_name['restriction'].message_type = _TRACKSEARCHRESTRICTION
_TRACKSEARCHRESTRICTIONSET.fields_by_name['sub_set'].message_type = _TRACKSEARCHRESTRICTIONSET
_TRACKSEARCHRESTRICTIONSET_RESTRICTIONSETTYPE.containing_type = _TRACKSEARCHRESTRICTIONSET;
_TRACKSORTORDER.fields_by_name['attribute'].enum_type = _TRACKSORTORDER_TRACKATTRIBUTE
_TRACKSORTORDER_TRACKATTRIBUTE.containing_type = _TRACKSORTORDER;
_GETTRACKSREQUEST.fields_by_name['search_restriction'].message_type = _TRACKSEARCHRESTRICTION
_GETTRACKSREQUEST.fields_by_name['sort_order'].message_type = _TRACKSORTORDER
_GETTRACKSREQUEST.fields_by_name['restriction_set'].message_type = _TRACKSEARCHRESTRICTIONSET
_GETTRACKSREQUEST.fields_by_name['track_projection'].enum_type = _GETTRACKSREQUEST_TRACKPROJECTION
_GETTRACKSREQUEST_TRACKPROJECTION.containing_type = _GETTRACKSREQUEST;
_GETTRACKSRESPONSE.fields_by_name['response_code'].enum_type = _GETTRACKSRESPONSE_RESPONSECODE
_GETTRACKSRESPONSE.fields_by_name['track'].message_type = _TRACK
_GETTRACKSRESPONSE_RESPONSECODE.containing_type = _GETTRACKSRESPONSE;
_GETPLAYLISTENTRIESRESPONSE.fields_by_name['response_code'].enum_type = _GETPLAYLISTENTRIESRESPONSE_RESPONSECODE
_GETPLAYLISTENTRIESRESPONSE.fields_by_name['playlist_entry'].message_type = _PLAYLISTENTRY
_GETPLAYLISTENTRIESRESPONSE_RESPONSECODE.containing_type = _GETPLAYLISTENTRIESRESPONSE;
_PLAYLISTSORTORDER.fields_by_name['attribute'].enum_type = _PLAYLISTSORTORDER_PLAYLISTATTRIBUTE
_PLAYLISTSORTORDER_PLAYLISTATTRIBUTE.containing_type = _PLAYLISTSORTORDER;
_GETPLAYLISTSREQUEST.fields_by_name['sort_order'].message_type = _PLAYLISTSORTORDER
_GETPLAYLISTSRESPONSE.fields_by_name['response_code'].enum_type = _GETPLAYLISTSRESPONSE_RESPONSECODE
_GETPLAYLISTSRESPONSE.fields_by_name['playlist'].message_type = _PLAYLIST
_GETPLAYLISTSRESPONSE_RESPONSECODE.containing_type = _GETPLAYLISTSRESPONSE;
_BATCHLOOKUPREQUEST.fields_by_name['track'].message_type = _LOOKUPTRACKREQUEST
_BATCHLOOKUPREQUEST.fields_by_name['playlist'].message_type = _LOOKUPPLAYLISTREQUEST
_BATCHLOOKUPREQUEST.fields_by_name['metadata_type'].enum_type = _BATCHLOOKUPREQUEST_METADATATYPE
_BATCHLOOKUPREQUEST.fields_by_name['playlist_entry'].message_type = _LOOKUPPLAYLISTENTRYREQUEST
_BATCHLOOKUPREQUEST_METADATATYPE.containing_type = _BATCHLOOKUPREQUEST;
_BATCHLOOKUPRESPONSE.fields_by_name['track'].message_type = _TRACK
_BATCHLOOKUPRESPONSE.fields_by_name['playlist'].message_type = _PLAYLIST
_BATCHLOOKUPRESPONSE.fields_by_name['playlist_entry'].message_type = _PLAYLISTENTRY
_MUTATETRACKREQUEST.fields_by_name['create_track'].message_type = _TRACK
_MUTATETRACKREQUEST.fields_by_name['update_track'].message_type = _TRACK
_MUTATERESPONSE.fields_by_name['response_code'].enum_type = _MUTATERESPONSE_MUTATERESPONSECODE
_MUTATERESPONSE.fields_by_name['availability_status'].enum_type = _MUTATERESPONSE_AVAILABILITYSTATUS
_MUTATERESPONSE_MUTATERESPONSECODE.containing_type = _MUTATERESPONSE;
_MUTATERESPONSE_AVAILABILITYSTATUS.containing_type = _MUTATERESPONSE;
_BATCHMUTATETRACKSREQUEST.fields_by_name['track_mutation'].message_type = _MUTATETRACKREQUEST
_BATCHMUTATETRACKSRESPONSE.fields_by_name['response_code'].enum_type = _BATCHMUTATETRACKSRESPONSE_BATCHMUTATETRACKSRESPONSECODE
_BATCHMUTATETRACKSRESPONSE.fields_by_name['mutate_response'].message_type = _MUTATERESPONSE
_BATCHMUTATETRACKSRESPONSE_BATCHMUTATETRACKSRESPONSECODE.containing_type = _BATCHMUTATETRACKSRESPONSE;
_MUTATEPLAYLISTREQUEST.fields_by_name['create_playlist'].message_type = _PLAYLIST
_MUTATEPLAYLISTREQUEST.fields_by_name['update_playlist'].message_type = _PLAYLIST
_MUTATEPLAYLISTREQUEST.fields_by_name['playlist_entry'].message_type = _PLAYLISTENTRY
_BATCHMUTATEPLAYLISTSREQUEST.fields_by_name['playlist_mutation'].message_type = _MUTATEPLAYLISTREQUEST
_BATCHMUTATEPLAYLISTSRESPONSE.fields_by_name['response_code'].enum_type = _BATCHMUTATEPLAYLISTSRESPONSE_BATCHMUTATEPLAYLISTSRESPONSECODE
_BATCHMUTATEPLAYLISTSRESPONSE.fields_by_name['mutate_response'].message_type = _MUTATERESPONSE
_BATCHMUTATEPLAYLISTSRESPONSE_BATCHMUTATEPLAYLISTSRESPONSECODE.containing_type = _BATCHMUTATEPLAYLISTSRESPONSE;
_MUTATEPLAYLISTENTRYREQUEST.fields_by_name['create_playlist_entry'].message_type = _PLAYLISTENTRY
_MUTATEPLAYLISTENTRYREQUEST.fields_by_name['update_playlist_entry'].message_type = _PLAYLISTENTRY
_MUTATEPLAYLISTENTRYREQUEST.fields_by_name['delete_playlist_entry'].message_type = _PLAYLISTENTRY
_BATCHMUTATEPLAYLISTENTRIESREQUEST.fields_by_name['playlist_entry_mutation'].message_type = _MUTATEPLAYLISTENTRYREQUEST
_BATCHMUTATEPLAYLISTENTRIESRESPONSE.fields_by_name['response_code'].enum_type = _BATCHMUTATEPLAYLISTENTRIESRESPONSE_BATCHMUTATEPLAYLISTENTRIESRESPONSECODE
_BATCHMUTATEPLAYLISTENTRIESRESPONSE.fields_by_name['mutate_response'].message_type = _MUTATERESPONSE
_BATCHMUTATEPLAYLISTENTRIESRESPONSE_BATCHMUTATEPLAYLISTENTRIESRESPONSECODE.containing_type = _BATCHMUTATEPLAYLISTENTRIESRESPONSE;
_MAGICPLAYLISTSEED.fields_by_name['seed_type'].enum_type = _MAGICPLAYLISTSEED_SEEDTYPE
_MAGICPLAYLISTSEED_SEEDTYPE.containing_type = _MAGICPLAYLISTSEED;
_MAGICPLAYLISTREQUEST.fields_by_name['seed'].message_type = _MAGICPLAYLISTSEED
_MAGICPLAYLISTRESPONSE.fields_by_name['playlist'].message_type = _PLAYLIST
_MAGICPLAYLISTRESPONSE.fields_by_name['playlist_entry'].message_type = _PLAYLISTENTRY
_ALBUM.fields_by_name['album_art'].message_type = _IMAGEREF
_ALBUMSORTORDER.fields_by_name['attribute'].enum_type = _ALBUMSORTORDER_ALBUMATTRIBUTE
_ALBUMSORTORDER_ALBUMATTRIBUTE.containing_type = _ALBUMSORTORDER;
_GETALBUMSREQUEST.fields_by_name['sort_order'].message_type = _ALBUMSORTORDER
_GETALBUMSRESPONSE.fields_by_name['album'].message_type = _ALBUM
_ARTIST.fields_by_name['album'].message_type = _ALBUM
_GETARTISTSREQUEST.fields_by_name['sort_order'].message_type = _ARTISTSORTORDER
_GETARTISTSRESPONSE.fields_by_name['artist'].message_type = _ARTIST
_MUSICGENRE.fields_by_name['album'].message_type = _ALBUM
_GETGENRESREQUEST.fields_by_name['sort_order'].message_type = _GENRESORTORDER
_GETGENRESRESPONSE.fields_by_name['genre'].message_type = _MUSICGENRE
_GETDYNAMICPLAYLISTENTRIESREQUEST.fields_by_name['playlist_entries_type'].enum_type = _GETDYNAMICPLAYLISTENTRIESREQUEST_DYNAMICPLAYLISTENTRIESTYPE
_GETDYNAMICPLAYLISTENTRIESREQUEST_DYNAMICPLAYLISTENTRIESTYPE.containing_type = _GETDYNAMICPLAYLISTENTRIESREQUEST;
_GETDYNAMICPLAYLISTENTRIESRESPONSE.fields_by_name['response_code'].enum_type = _GETDYNAMICPLAYLISTENTRIESRESPONSE_RESPONSECODE
_GETDYNAMICPLAYLISTENTRIESRESPONSE.fields_by_name['playlist_entry'].message_type = _PLAYLISTENTRY
_GETDYNAMICPLAYLISTENTRIESRESPONSE.fields_by_name['playlist_entries_type'].enum_type = _GETDYNAMICPLAYLISTENTRIESRESPONSE_DYNAMICPLAYLISTENTRIESTYPE
_GETDYNAMICPLAYLISTENTRIESRESPONSE_DYNAMICPLAYLISTENTRIESTYPE.containing_type = _GETDYNAMICPLAYLISTENTRIESRESPONSE;
_GETDYNAMICPLAYLISTENTRIESRESPONSE_RESPONSECODE.containing_type = _GETDYNAMICPLAYLISTENTRIESRESPONSE;
_TRACKTYPEAGGREGATE.fields_by_name['track_type_value'].enum_type = _TRACKTYPEAGGREGATE_TRACKTYPE
_TRACKTYPEAGGREGATE_TRACKTYPE.containing_type = _TRACKTYPEAGGREGATE;
_GETAGGREGATIONSBYTRACKTYPERESPONSE.fields_by_name['track_type_aggregate'].message_type = _TRACKTYPEAGGREGATE
_AVAILABILITYSTATUSAGGREGATE.fields_by_name['availability_status'].enum_type = _AVAILABILITYSTATUSAGGREGATE_AVAILABILITYSTATUS
_AVAILABILITYSTATUSAGGREGATE_AVAILABILITYSTATUS.containing_type = _AVAILABILITYSTATUSAGGREGATE;
_GETAGGREGATIONSBYAVAILABILITYSTATUSRESPONSE.fields_by_name['availability_status_aggregate'].message_type = _AVAILABILITYSTATUSAGGREGATE
_ADDPROMOTRACKSRESPONSE.fields_by_name['track'].message_type = _TRACK
_PLAYLISTAGGREGATE.fields_by_name['album_art'].message_type = _IMAGEREF
_GETPLAYLISTAGGREGATIONSRESPONSE.fields_by_name['playlist_aggregate'].message_type = _PLAYLISTAGGREGATE
_REMOTECONTROLCOMMANDRESPONSE.fields_by_name['response_code'].enum_type = _REMOTECONTROLCOMMANDRESPONSE_RESPONSECODE
_REMOTECONTROLCOMMANDRESPONSE_RESPONSECODE.containing_type = _REMOTECONTROLCOMMANDRESPONSE;
DESCRIPTOR.message_types_by_name['AudioRef'] = _AUDIOREF
DESCRIPTOR.message_types_by_name['ImageRef'] = _IMAGEREF
DESCRIPTOR.message_types_by_name['UploadedUitsId3Tag'] = _UPLOADEDUITSID3TAG
DESCRIPTOR.message_types_by_name['Track'] = _TRACK
DESCRIPTOR.message_types_by_name['Tracks'] = _TRACKS
DESCRIPTOR.message_types_by_name['Playlist'] = _PLAYLIST
DESCRIPTOR.message_types_by_name['PlaylistEntry'] = _PLAYLISTENTRY
DESCRIPTOR.message_types_by_name['TrackSearchRestriction'] = _TRACKSEARCHRESTRICTION
DESCRIPTOR.message_types_by_name['TrackSearchRestrictionSet'] = _TRACKSEARCHRESTRICTIONSET
DESCRIPTOR.message_types_by_name['TrackSortOrder'] = _TRACKSORTORDER
DESCRIPTOR.message_types_by_name['GetTracksRequest'] = _GETTRACKSREQUEST
DESCRIPTOR.message_types_by_name['GetTracksResponse'] = _GETTRACKSRESPONSE
DESCRIPTOR.message_types_by_name['GetPlaylistEntriesRequest'] = _GETPLAYLISTENTRIESREQUEST
DESCRIPTOR.message_types_by_name['GetPlaylistEntriesResponse'] = _GETPLAYLISTENTRIESRESPONSE
DESCRIPTOR.message_types_by_name['PlaylistSortOrder'] = _PLAYLISTSORTORDER
DESCRIPTOR.message_types_by_name['GetPlaylistsRequest'] = _GETPLAYLISTSREQUEST
DESCRIPTOR.message_types_by_name['GetPlaylistsResponse'] = _GETPLAYLISTSRESPONSE
DESCRIPTOR.message_types_by_name['LookupTrackRequest'] = _LOOKUPTRACKREQUEST
DESCRIPTOR.message_types_by_name['LookupPlaylistEntryRequest'] = _LOOKUPPLAYLISTENTRYREQUEST
DESCRIPTOR.message_types_by_name['LookupPlaylistRequest'] = _LOOKUPPLAYLISTREQUEST
DESCRIPTOR.message_types_by_name['BatchLookupRequest'] = _BATCHLOOKUPREQUEST
DESCRIPTOR.message_types_by_name['BatchLookupResponse'] = _BATCHLOOKUPRESPONSE
DESCRIPTOR.message_types_by_name['MutateTrackRequest'] = _MUTATETRACKREQUEST
DESCRIPTOR.message_types_by_name['MutateResponse'] = _MUTATERESPONSE
DESCRIPTOR.message_types_by_name['BatchMutateTracksRequest'] = _BATCHMUTATETRACKSREQUEST
DESCRIPTOR.message_types_by_name['BatchMutateTracksResponse'] = _BATCHMUTATETRACKSRESPONSE
DESCRIPTOR.message_types_by_name['MutatePlaylistRequest'] = _MUTATEPLAYLISTREQUEST
DESCRIPTOR.message_types_by_name['BatchMutatePlaylistsRequest'] = _BATCHMUTATEPLAYLISTSREQUEST
DESCRIPTOR.message_types_by_name['BatchMutatePlaylistsResponse'] = _BATCHMUTATEPLAYLISTSRESPONSE
DESCRIPTOR.message_types_by_name['MutatePlaylistEntryRequest'] = _MUTATEPLAYLISTENTRYREQUEST
DESCRIPTOR.message_types_by_name['BatchMutatePlaylistEntriesRequest'] = _BATCHMUTATEPLAYLISTENTRIESREQUEST
DESCRIPTOR.message_types_by_name['BatchMutatePlaylistEntriesResponse'] = _BATCHMUTATEPLAYLISTENTRIESRESPONSE
DESCRIPTOR.message_types_by_name['MagicPlaylistSeed'] = _MAGICPLAYLISTSEED
DESCRIPTOR.message_types_by_name['MagicPlaylistRequest'] = _MAGICPLAYLISTREQUEST
DESCRIPTOR.message_types_by_name['MagicPlaylistResponse'] = _MAGICPLAYLISTRESPONSE
DESCRIPTOR.message_types_by_name['FlushLockerRequest'] = _FLUSHLOCKERREQUEST
DESCRIPTOR.message_types_by_name['FlushLockerResponse'] = _FLUSHLOCKERRESPONSE
DESCRIPTOR.message_types_by_name['LockerNotification'] = _LOCKERNOTIFICATION
DESCRIPTOR.message_types_by_name['Album'] = _ALBUM
DESCRIPTOR.message_types_by_name['AlbumSortOrder'] = _ALBUMSORTORDER
DESCRIPTOR.message_types_by_name['GetAlbumsRequest'] = _GETALBUMSREQUEST
DESCRIPTOR.message_types_by_name['GetAlbumsResponse'] = _GETALBUMSRESPONSE
DESCRIPTOR.message_types_by_name['Artist'] = _ARTIST
DESCRIPTOR.message_types_by_name['ArtistSortOrder'] = _ARTISTSORTORDER
DESCRIPTOR.message_types_by_name['GetArtistsRequest'] = _GETARTISTSREQUEST
DESCRIPTOR.message_types_by_name['GetArtistsResponse'] = _GETARTISTSRESPONSE
DESCRIPTOR.message_types_by_name['MusicGenre'] = _MUSICGENRE
DESCRIPTOR.message_types_by_name['GenreSortOrder'] = _GENRESORTORDER
DESCRIPTOR.message_types_by_name['GetGenresRequest'] = _GETGENRESREQUEST
DESCRIPTOR.message_types_by_name['GetGenresResponse'] = _GETGENRESRESPONSE
DESCRIPTOR.message_types_by_name['GetDynamicPlaylistEntriesRequest'] = _GETDYNAMICPLAYLISTENTRIESREQUEST
DESCRIPTOR.message_types_by_name['GetDynamicPlaylistEntriesResponse'] = _GETDYNAMICPLAYLISTENTRIESRESPONSE
DESCRIPTOR.message_types_by_name['GetAggregationsByTrackTypeRequest'] = _GETAGGREGATIONSBYTRACKTYPEREQUEST
DESCRIPTOR.message_types_by_name['TrackTypeAggregate'] = _TRACKTYPEAGGREGATE
DESCRIPTOR.message_types_by_name['GetAggregationsByTrackTypeResponse'] = _GETAGGREGATIONSBYTRACKTYPERESPONSE
DESCRIPTOR.message_types_by_name['GetAggregationsByAvailabilityStatusRequest'] = _GETAGGREGATIONSBYAVAILABILITYSTATUSREQUEST
DESCRIPTOR.message_types_by_name['AvailabilityStatusAggregate'] = _AVAILABILITYSTATUSAGGREGATE
DESCRIPTOR.message_types_by_name['GetAggregationsByAvailabilityStatusResponse'] = _GETAGGREGATIONSBYAVAILABILITYSTATUSRESPONSE
DESCRIPTOR.message_types_by_name['AddPromoTracksRequest'] = _ADDPROMOTRACKSREQUEST
DESCRIPTOR.message_types_by_name['AddPromoTracksResponse'] = _ADDPROMOTRACKSRESPONSE
DESCRIPTOR.message_types_by_name['GetPlaylistAggregationsRequest'] = _GETPLAYLISTAGGREGATIONSREQUEST
DESCRIPTOR.message_types_by_name['PlaylistAggregate'] = _PLAYLISTAGGREGATE
DESCRIPTOR.message_types_by_name['GetPlaylistAggregationsResponse'] = _GETPLAYLISTAGGREGATIONSRESPONSE
DESCRIPTOR.message_types_by_name['RemoteControlCommandRequest'] = _REMOTECONTROLCOMMANDREQUEST
DESCRIPTOR.message_types_by_name['RemoteControlCommandResponse'] = _REMOTECONTROLCOMMANDRESPONSE

class AudioRef(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _AUDIOREF
  
  # @@protoc_insertion_point(class_scope:AudioRef)

class ImageRef(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _IMAGEREF
  
  # @@protoc_insertion_point(class_scope:ImageRef)

class UploadedUitsId3Tag(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _UPLOADEDUITSID3TAG
  
  # @@protoc_insertion_point(class_scope:UploadedUitsId3Tag)

class Track(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACK
  
  # @@protoc_insertion_point(class_scope:Track)

class Tracks(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACKS
  
  # @@protoc_insertion_point(class_scope:Tracks)

class Playlist(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _PLAYLIST
  
  # @@protoc_insertion_point(class_scope:Playlist)

class PlaylistEntry(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _PLAYLISTENTRY
  
  # @@protoc_insertion_point(class_scope:PlaylistEntry)

class TrackSearchRestriction(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACKSEARCHRESTRICTION
  
  # @@protoc_insertion_point(class_scope:TrackSearchRestriction)

class TrackSearchRestrictionSet(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACKSEARCHRESTRICTIONSET
  
  # @@protoc_insertion_point(class_scope:TrackSearchRestrictionSet)

class TrackSortOrder(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACKSORTORDER
  
  # @@protoc_insertion_point(class_scope:TrackSortOrder)

class GetTracksRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETTRACKSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetTracksRequest)

class GetTracksResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETTRACKSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetTracksResponse)

class GetPlaylistEntriesRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTENTRIESREQUEST
  
  # @@protoc_insertion_point(class_scope:GetPlaylistEntriesRequest)

class GetPlaylistEntriesResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTENTRIESRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetPlaylistEntriesResponse)

class PlaylistSortOrder(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _PLAYLISTSORTORDER
  
  # @@protoc_insertion_point(class_scope:PlaylistSortOrder)

class GetPlaylistsRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetPlaylistsRequest)

class GetPlaylistsResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetPlaylistsResponse)

class LookupTrackRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _LOOKUPTRACKREQUEST
  
  # @@protoc_insertion_point(class_scope:LookupTrackRequest)

class LookupPlaylistEntryRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _LOOKUPPLAYLISTENTRYREQUEST
  
  # @@protoc_insertion_point(class_scope:LookupPlaylistEntryRequest)

class LookupPlaylistRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _LOOKUPPLAYLISTREQUEST
  
  # @@protoc_insertion_point(class_scope:LookupPlaylistRequest)

class BatchLookupRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHLOOKUPREQUEST
  
  # @@protoc_insertion_point(class_scope:BatchLookupRequest)

class BatchLookupResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHLOOKUPRESPONSE
  
  # @@protoc_insertion_point(class_scope:BatchLookupResponse)

class MutateTrackRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MUTATETRACKREQUEST
  
  # @@protoc_insertion_point(class_scope:MutateTrackRequest)

class MutateResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MUTATERESPONSE
  
  # @@protoc_insertion_point(class_scope:MutateResponse)

class BatchMutateTracksRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATETRACKSREQUEST
  
  # @@protoc_insertion_point(class_scope:BatchMutateTracksRequest)

class BatchMutateTracksResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATETRACKSRESPONSE
  
  # @@protoc_insertion_point(class_scope:BatchMutateTracksResponse)

class MutatePlaylistRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MUTATEPLAYLISTREQUEST
  
  # @@protoc_insertion_point(class_scope:MutatePlaylistRequest)

class BatchMutatePlaylistsRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATEPLAYLISTSREQUEST
  
  # @@protoc_insertion_point(class_scope:BatchMutatePlaylistsRequest)

class BatchMutatePlaylistsResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATEPLAYLISTSRESPONSE
  
  # @@protoc_insertion_point(class_scope:BatchMutatePlaylistsResponse)

class MutatePlaylistEntryRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MUTATEPLAYLISTENTRYREQUEST
  
  # @@protoc_insertion_point(class_scope:MutatePlaylistEntryRequest)

class BatchMutatePlaylistEntriesRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATEPLAYLISTENTRIESREQUEST
  
  # @@protoc_insertion_point(class_scope:BatchMutatePlaylistEntriesRequest)

class BatchMutatePlaylistEntriesResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _BATCHMUTATEPLAYLISTENTRIESRESPONSE
  
  # @@protoc_insertion_point(class_scope:BatchMutatePlaylistEntriesResponse)

class MagicPlaylistSeed(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MAGICPLAYLISTSEED
  
  # @@protoc_insertion_point(class_scope:MagicPlaylistSeed)

class MagicPlaylistRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MAGICPLAYLISTREQUEST
  
  # @@protoc_insertion_point(class_scope:MagicPlaylistRequest)

class MagicPlaylistResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MAGICPLAYLISTRESPONSE
  
  # @@protoc_insertion_point(class_scope:MagicPlaylistResponse)

class FlushLockerRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _FLUSHLOCKERREQUEST
  
  # @@protoc_insertion_point(class_scope:FlushLockerRequest)

class FlushLockerResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _FLUSHLOCKERRESPONSE
  
  # @@protoc_insertion_point(class_scope:FlushLockerResponse)

class LockerNotification(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _LOCKERNOTIFICATION
  
  # @@protoc_insertion_point(class_scope:LockerNotification)

class Album(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ALBUM
  
  # @@protoc_insertion_point(class_scope:Album)

class AlbumSortOrder(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ALBUMSORTORDER
  
  # @@protoc_insertion_point(class_scope:AlbumSortOrder)

class GetAlbumsRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETALBUMSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetAlbumsRequest)

class GetAlbumsResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETALBUMSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetAlbumsResponse)

class Artist(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ARTIST
  
  # @@protoc_insertion_point(class_scope:Artist)

class ArtistSortOrder(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ARTISTSORTORDER
  
  # @@protoc_insertion_point(class_scope:ArtistSortOrder)

class GetArtistsRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETARTISTSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetArtistsRequest)

class GetArtistsResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETARTISTSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetArtistsResponse)

class MusicGenre(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _MUSICGENRE
  
  # @@protoc_insertion_point(class_scope:MusicGenre)

class GenreSortOrder(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GENRESORTORDER
  
  # @@protoc_insertion_point(class_scope:GenreSortOrder)

class GetGenresRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETGENRESREQUEST
  
  # @@protoc_insertion_point(class_scope:GetGenresRequest)

class GetGenresResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETGENRESRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetGenresResponse)

class GetDynamicPlaylistEntriesRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETDYNAMICPLAYLISTENTRIESREQUEST
  
  # @@protoc_insertion_point(class_scope:GetDynamicPlaylistEntriesRequest)

class GetDynamicPlaylistEntriesResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETDYNAMICPLAYLISTENTRIESRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetDynamicPlaylistEntriesResponse)

class GetAggregationsByTrackTypeRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETAGGREGATIONSBYTRACKTYPEREQUEST
  
  # @@protoc_insertion_point(class_scope:GetAggregationsByTrackTypeRequest)

class TrackTypeAggregate(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _TRACKTYPEAGGREGATE
  
  # @@protoc_insertion_point(class_scope:TrackTypeAggregate)

class GetAggregationsByTrackTypeResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETAGGREGATIONSBYTRACKTYPERESPONSE
  
  # @@protoc_insertion_point(class_scope:GetAggregationsByTrackTypeResponse)

class GetAggregationsByAvailabilityStatusRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETAGGREGATIONSBYAVAILABILITYSTATUSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetAggregationsByAvailabilityStatusRequest)

class AvailabilityStatusAggregate(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _AVAILABILITYSTATUSAGGREGATE
  
  # @@protoc_insertion_point(class_scope:AvailabilityStatusAggregate)

class GetAggregationsByAvailabilityStatusResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETAGGREGATIONSBYAVAILABILITYSTATUSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetAggregationsByAvailabilityStatusResponse)

class AddPromoTracksRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ADDPROMOTRACKSREQUEST
  
  # @@protoc_insertion_point(class_scope:AddPromoTracksRequest)

class AddPromoTracksResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _ADDPROMOTRACKSRESPONSE
  
  # @@protoc_insertion_point(class_scope:AddPromoTracksResponse)

class GetPlaylistAggregationsRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTAGGREGATIONSREQUEST
  
  # @@protoc_insertion_point(class_scope:GetPlaylistAggregationsRequest)

class PlaylistAggregate(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _PLAYLISTAGGREGATE
  
  # @@protoc_insertion_point(class_scope:PlaylistAggregate)

class GetPlaylistAggregationsResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _GETPLAYLISTAGGREGATIONSRESPONSE
  
  # @@protoc_insertion_point(class_scope:GetPlaylistAggregationsResponse)

class RemoteControlCommandRequest(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _REMOTECONTROLCOMMANDREQUEST
  
  # @@protoc_insertion_point(class_scope:RemoteControlCommandRequest)

class RemoteControlCommandResponse(message.Message):
  __metaclass__ = reflection.GeneratedProtocolMessageType
  DESCRIPTOR = _REMOTECONTROLCOMMANDRESPONSE
  
  # @@protoc_insertion_point(class_scope:RemoteControlCommandResponse)

# @@protoc_insertion_point(module_scope)
