wimp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +5 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +154 -0
  7. data/Rakefile +6 -0
  8. data/lib/gen/README.md +6 -0
  9. data/lib/gen/client_api_login_service.rb +270 -0
  10. data/lib/gen/client_api_service.rb +3016 -0
  11. data/lib/gen/services_constants.rb +13 -0
  12. data/lib/gen/services_types.rb +1035 -0
  13. data/lib/wimp.rb +66 -0
  14. data/lib/wimp/base.rb +30 -0
  15. data/lib/wimp/error.rb +4 -0
  16. data/lib/wimp/playlist.rb +93 -0
  17. data/lib/wimp/simple_artist.rb +10 -0
  18. data/lib/wimp/track.rb +91 -0
  19. data/lib/wimp/version.rb +3 -0
  20. data/resources/skipped-methods.md +44 -0
  21. data/resources/thrift/services.thrift +396 -0
  22. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_add_my_track_id.yml +263 -0
  23. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_add_tracks_to_playlist.yml +445 -0
  24. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_remove_tracks.yml +452 -0
  25. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_create_a_playlist.yml +98 -0
  26. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_find_by_uuid.yml +49 -0
  27. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_not_crash_on_invalid_pos.yml +372 -0
  28. data/spec/fixtures/vcr_cassettes/WiMP_Track/.yml +169 -0
  29. data/spec/fixtures/vcr_cassettes/WiMP_Track/should_be_searchable.yml +169 -0
  30. data/spec/fixtures/vcr_cassettes/WiMP_Track/should_paginate.yml +61 -0
  31. data/spec/fixtures/vcr_cassettes/login/should_raise_error_using_invalid_credentials.yml +47 -0
  32. data/spec/fixtures/vcr_cassettes/login/should_return_sesson_id_on_successfull_login.yml +53 -0
  33. data/spec/login_spec.rb +21 -0
  34. data/spec/playlist_spec.rb +37 -0
  35. data/spec/spec_helper.rb +19 -0
  36. data/spec/track_spec.rb +26 -0
  37. data/wimp.gemspec +30 -0
  38. metadata +207 -0
@@ -0,0 +1,13 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.1)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'services_types'
9
+
10
+ module WiMP
11
+ module Gen
12
+ end
13
+ end
@@ -0,0 +1,1035 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.1)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+
9
+ module WiMP
10
+ module Gen
11
+ module AlbumOrderBy
12
+ POPULARITY = 1
13
+ POPULARITY_THIS_WEEK = 2
14
+ ALBUM_NAME = 3
15
+ ARTIST_NAME = 4
16
+ RELEASE_DATE = 5
17
+ VALUE_MAP = {1 => "POPULARITY", 2 => "POPULARITY_THIS_WEEK", 3 => "ALBUM_NAME", 4 => "ARTIST_NAME", 5 => "RELEASE_DATE"}
18
+ VALID_VALUES = Set.new([POPULARITY, POPULARITY_THIS_WEEK, ALBUM_NAME, ARTIST_NAME, RELEASE_DATE]).freeze
19
+ end
20
+
21
+ module PlaylistType
22
+ PRIVATE = 1
23
+ EDITORIAL = 2
24
+ ARTIST = 3
25
+ USER = 4
26
+ RADIO = 5
27
+ VALUE_MAP = {1 => "PRIVATE", 2 => "EDITORIAL", 3 => "ARTIST", 4 => "USER", 5 => "RADIO"}
28
+ VALID_VALUES = Set.new([PRIVATE, EDITORIAL, ARTIST, USER, RADIO]).freeze
29
+ end
30
+
31
+ module PrivacyLevel
32
+ ALL = 1
33
+ PUBLIC = 2
34
+ FRIENDS = 3
35
+ VALUE_MAP = {1 => "ALL", 2 => "PUBLIC", 3 => "FRIENDS"}
36
+ VALID_VALUES = Set.new([ALL, PUBLIC, FRIENDS]).freeze
37
+ end
38
+
39
+ module FavoriteOrderBy
40
+ NAME = 1
41
+ ARTIST_NAME = 2
42
+ DATE_ADDED = 3
43
+ INDEX = 4
44
+ VALUE_MAP = {1 => "NAME", 2 => "ARTIST_NAME", 3 => "DATE_ADDED", 4 => "INDEX"}
45
+ VALID_VALUES = Set.new([NAME, ARTIST_NAME, DATE_ADDED, INDEX]).freeze
46
+ end
47
+
48
+ module AlbumFilter
49
+ ALL = 1
50
+ ALLBUTSINGLES = 2
51
+ ONLYEPS = 3
52
+ ONLYSINGLES = 4
53
+ ONLYALBUMS = 5
54
+ ALLBUTALBUMS = 6
55
+ ONLYOWNALBUMS = 7
56
+ ALLBUTOWN = 8
57
+ ONLYOWNSINGLESANDEPS = 9
58
+ VALUE_MAP = {1 => "ALL", 2 => "ALLBUTSINGLES", 3 => "ONLYEPS", 4 => "ONLYSINGLES", 5 => "ONLYALBUMS", 6 => "ALLBUTALBUMS", 7 => "ONLYOWNALBUMS", 8 => "ALLBUTOWN", 9 => "ONLYOWNSINGLESANDEPS"}
59
+ VALID_VALUES = Set.new([ALL, ALLBUTSINGLES, ONLYEPS, ONLYSINGLES, ONLYALBUMS, ALLBUTALBUMS, ONLYOWNALBUMS, ALLBUTOWN, ONLYOWNSINGLESANDEPS]).freeze
60
+ end
61
+
62
+ class Profile
63
+ include ::Thrift::Struct, ::Thrift::Struct_Union
64
+ PROFILEID = 1
65
+ USERID = 2
66
+ PHONENUMBER = 3
67
+ REGISTRATIONDATE = 4
68
+ SESSIONID = 5
69
+ MOBILEOPERATOR = 6
70
+ SUBSCRIPTIONSTATUS = 7
71
+ CHANNELID = 8
72
+ CLIENTAUTHORIZEDFOROFFLINECONTENT = 9
73
+ VALIDFORSTREAMING = 10
74
+ SUBSCRIPTIONENDDATE = 11
75
+ PLAYLISTSHARINGLEVEL = 12
76
+ ARTISTSHARINGLEVEL = 13
77
+ TRACKSHARINGLEVEL = 14
78
+ ALBUMSHARINGLEVEL = 15
79
+ USERNAME = 16
80
+ ALLOWOFFLINEUNTIL = 17
81
+ REGISTRATIONTYPE = 18
82
+ FACEBOOKUID = 19
83
+ SUBSCRIPTIONTYPE = 20
84
+ HASPREMIUMACCESS = 21
85
+ ENABLEFACEBOOKSCROBBLING = 22
86
+ HIGHESTAUDIOENCODING = 23
87
+ LASTUPDATEDFAVARTIST = 24
88
+ LASTUPDATEDFAVTRACK = 25
89
+ LASTUPDATEDFAVALBUM = 26
90
+ LASTUPDATEDFAVPLAYLIST = 27
91
+ LASTUPDATEDLIBRARYPLAYLISTS = 28
92
+ PARTNERID = 29
93
+
94
+ FIELDS = {
95
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'},
96
+ USERID => {:type => ::Thrift::Types::I32, :name => 'userId'},
97
+ PHONENUMBER => {:type => ::Thrift::Types::STRING, :name => 'phoneNumber', :optional => true},
98
+ REGISTRATIONDATE => {:type => ::Thrift::Types::I64, :name => 'registrationDate'},
99
+ SESSIONID => {:type => ::Thrift::Types::STRING, :name => 'sessionId'},
100
+ MOBILEOPERATOR => {:type => ::Thrift::Types::STRING, :name => 'mobileOperator', :optional => true},
101
+ SUBSCRIPTIONSTATUS => {:type => ::Thrift::Types::STRING, :name => 'subscriptionStatus'},
102
+ CHANNELID => {:type => ::Thrift::Types::I32, :name => 'channelId'},
103
+ CLIENTAUTHORIZEDFOROFFLINECONTENT => {:type => ::Thrift::Types::BOOL, :name => 'clientAuthorizedForOfflineContent'},
104
+ VALIDFORSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'validForStreaming'},
105
+ SUBSCRIPTIONENDDATE => {:type => ::Thrift::Types::I64, :name => 'subscriptionEndDate'},
106
+ PLAYLISTSHARINGLEVEL => {:type => ::Thrift::Types::I32, :name => 'playListSharingLevel'},
107
+ ARTISTSHARINGLEVEL => {:type => ::Thrift::Types::I32, :name => 'artistSharingLevel'},
108
+ TRACKSHARINGLEVEL => {:type => ::Thrift::Types::I32, :name => 'trackSharingLevel'},
109
+ ALBUMSHARINGLEVEL => {:type => ::Thrift::Types::I32, :name => 'albumSharingLevel'},
110
+ USERNAME => {:type => ::Thrift::Types::STRING, :name => 'username'},
111
+ ALLOWOFFLINEUNTIL => {:type => ::Thrift::Types::I64, :name => 'allowOfflineUntil'},
112
+ REGISTRATIONTYPE => {:type => ::Thrift::Types::I32, :name => 'registrationType'},
113
+ FACEBOOKUID => {:type => ::Thrift::Types::I64, :name => 'facebookUid'},
114
+ SUBSCRIPTIONTYPE => {:type => ::Thrift::Types::STRING, :name => 'subscriptionType'},
115
+ HASPREMIUMACCESS => {:type => ::Thrift::Types::BOOL, :name => 'hasPremiumAccess'},
116
+ ENABLEFACEBOOKSCROBBLING => {:type => ::Thrift::Types::BOOL, :name => 'enableFacebookScrobbling'},
117
+ HIGHESTAUDIOENCODING => {:type => ::Thrift::Types::I32, :name => 'highestAudioEncoding'},
118
+ LASTUPDATEDFAVARTIST => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedFavArtist'},
119
+ LASTUPDATEDFAVTRACK => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedFavTrack'},
120
+ LASTUPDATEDFAVALBUM => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedFavAlbum'},
121
+ LASTUPDATEDFAVPLAYLIST => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedFavPlaylist'},
122
+ LASTUPDATEDLIBRARYPLAYLISTS => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedLibraryPlaylists'},
123
+ PARTNERID => {:type => ::Thrift::Types::I32, :name => 'partnerId'}
124
+ }
125
+
126
+ def struct_fields; FIELDS; end
127
+
128
+ def validate
129
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
130
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userId is unset!') unless @userId
131
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field registrationDate is unset!') unless @registrationDate
132
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sessionId is unset!') unless @sessionId
133
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field subscriptionStatus is unset!') unless @subscriptionStatus
134
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field channelId is unset!') unless @channelId
135
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field clientAuthorizedForOfflineContent is unset!') if @clientAuthorizedForOfflineContent.nil?
136
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field validForStreaming is unset!') if @validForStreaming.nil?
137
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field subscriptionEndDate is unset!') unless @subscriptionEndDate
138
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field playListSharingLevel is unset!') unless @playListSharingLevel
139
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistSharingLevel is unset!') unless @artistSharingLevel
140
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field trackSharingLevel is unset!') unless @trackSharingLevel
141
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumSharingLevel is unset!') unless @albumSharingLevel
142
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field username is unset!') unless @username
143
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field allowOfflineUntil is unset!') unless @allowOfflineUntil
144
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field registrationType is unset!') unless @registrationType
145
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field facebookUid is unset!') unless @facebookUid
146
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field subscriptionType is unset!') unless @subscriptionType
147
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field hasPremiumAccess is unset!') if @hasPremiumAccess.nil?
148
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field enableFacebookScrobbling is unset!') if @enableFacebookScrobbling.nil?
149
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field highestAudioEncoding is unset!') unless @highestAudioEncoding
150
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedFavArtist is unset!') unless @lastUpdatedFavArtist
151
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedFavTrack is unset!') unless @lastUpdatedFavTrack
152
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedFavAlbum is unset!') unless @lastUpdatedFavAlbum
153
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedFavPlaylist is unset!') unless @lastUpdatedFavPlaylist
154
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedLibraryPlaylists is unset!') unless @lastUpdatedLibraryPlaylists
155
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field partnerId is unset!') unless @partnerId
156
+ end
157
+
158
+ ::Thrift::Struct.generate_accessors self
159
+ end
160
+
161
+ class Artist
162
+ include ::Thrift::Struct, ::Thrift::Struct_Union
163
+ ARTISTNAME = 1
164
+ ARTISTBIO = 2
165
+ ARTISTID = 3
166
+ INFO = 4
167
+ LINK = 5
168
+
169
+ FIELDS = {
170
+ ARTISTNAME => {:type => ::Thrift::Types::STRING, :name => 'artistName'},
171
+ ARTISTBIO => {:type => ::Thrift::Types::STRING, :name => 'artistBio'},
172
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
173
+ INFO => {:type => ::Thrift::Types::STRING, :name => 'info', :optional => true},
174
+ LINK => {:type => ::Thrift::Types::STRING, :name => 'link', :optional => true}
175
+ }
176
+
177
+ def struct_fields; FIELDS; end
178
+
179
+ def validate
180
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistName is unset!') unless @artistName
181
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistBio is unset!') unless @artistBio
182
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
183
+ end
184
+
185
+ ::Thrift::Struct.generate_accessors self
186
+ end
187
+
188
+ class RecordLabel
189
+ include ::Thrift::Struct, ::Thrift::Struct_Union
190
+ RECORDLABELNAME = 1
191
+ RECORDLABELID = 2
192
+ RECORDPROVIDER = 3
193
+ RECORDPROVIDERID = 4
194
+ RECORDSUBLABEL = 5
195
+ RECORDSUBLABELID = 6
196
+
197
+ FIELDS = {
198
+ RECORDLABELNAME => {:type => ::Thrift::Types::STRING, :name => 'recordLabelName'},
199
+ RECORDLABELID => {:type => ::Thrift::Types::I32, :name => 'recordLabelId'},
200
+ RECORDPROVIDER => {:type => ::Thrift::Types::STRING, :name => 'recordProvider'},
201
+ RECORDPROVIDERID => {:type => ::Thrift::Types::I32, :name => 'recordProviderId'},
202
+ RECORDSUBLABEL => {:type => ::Thrift::Types::STRING, :name => 'recordSubLabel'},
203
+ RECORDSUBLABELID => {:type => ::Thrift::Types::I32, :name => 'recordSubLabelId'}
204
+ }
205
+
206
+ def struct_fields; FIELDS; end
207
+
208
+ def validate
209
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordLabelName is unset!') unless @recordLabelName
210
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordLabelId is unset!') unless @recordLabelId
211
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordProvider is unset!') unless @recordProvider
212
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordProviderId is unset!') unless @recordProviderId
213
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordSubLabel is unset!') unless @recordSubLabel
214
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordSubLabelId is unset!') unless @recordSubLabelId
215
+ end
216
+
217
+ ::Thrift::Struct.generate_accessors self
218
+ end
219
+
220
+ class Track
221
+ include ::Thrift::Struct, ::Thrift::Struct_Union
222
+ TITLE = 1
223
+ ARTIST = 2
224
+ ARTISTID = 3
225
+ ALBUMID = 4
226
+ ALBUM = 5
227
+ COPYRIGHT = 6
228
+ DURATION = 7
229
+ SMALLALBUMCOVER = 8
230
+ MEDIUMALBUMCOVER = 9
231
+ LARGEALBUMCOVER = 10
232
+ ID = 11
233
+ CONTENTACCESSSTRING = 12
234
+ VOLUMENUMBER = 13
235
+ TRACKNUMBER = 14
236
+ VERSION = 15
237
+ SALESSTARTDATE = 16
238
+ SALESREADY = 17
239
+ STREAMREADY = 18
240
+ PRICE = 19
241
+ CURRENCYCODE = 20
242
+ ALBUMONLY = 21
243
+ ALBUMBROKEN = 22
244
+ PRICECODE = 23
245
+ ALBUMCALCULATEDTYPE = 24
246
+ ALLOWSTREAMING = 25
247
+ ALBUMNROFVOLUMES = 26
248
+ POPULARITY = 27
249
+ POPULARITYTHISWEEK = 28
250
+ SEARCHSCORE = 29
251
+ RECORDLABEL = 30
252
+ SALESPRICERULEID = 31
253
+ STREAMSTARTDATE = 32
254
+ PREVIEWURL = 33
255
+ CUSTOMIZABLEALBUMCOVER = 34
256
+ PREMIUMONLYSTREAMING = 35
257
+ POPULARITYLEVEL = 36
258
+ REVISEDCOPYRIGHT = 37
259
+
260
+ FIELDS = {
261
+ TITLE => {:type => ::Thrift::Types::STRING, :name => 'title'},
262
+ ARTIST => {:type => ::Thrift::Types::STRING, :name => 'artist'},
263
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
264
+ ALBUMID => {:type => ::Thrift::Types::I32, :name => 'albumId'},
265
+ ALBUM => {:type => ::Thrift::Types::STRING, :name => 'album'},
266
+ COPYRIGHT => {:type => ::Thrift::Types::STRING, :name => 'copyright', :optional => true},
267
+ DURATION => {:type => ::Thrift::Types::I32, :name => 'duration'},
268
+ SMALLALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'smallAlbumCover', :optional => true},
269
+ MEDIUMALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'mediumAlbumCover', :optional => true},
270
+ LARGEALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'largeAlbumCover', :optional => true},
271
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
272
+ CONTENTACCESSSTRING => {:type => ::Thrift::Types::STRING, :name => 'contentAccessString', :optional => true},
273
+ VOLUMENUMBER => {:type => ::Thrift::Types::I32, :name => 'volumeNumber'},
274
+ TRACKNUMBER => {:type => ::Thrift::Types::I32, :name => 'trackNumber', :optional => true},
275
+ VERSION => {:type => ::Thrift::Types::STRING, :name => 'version', :optional => true},
276
+ SALESSTARTDATE => {:type => ::Thrift::Types::I64, :name => 'salesStartDate'},
277
+ SALESREADY => {:type => ::Thrift::Types::BOOL, :name => 'salesReady'},
278
+ STREAMREADY => {:type => ::Thrift::Types::BOOL, :name => 'streamReady'},
279
+ PRICE => {:type => ::Thrift::Types::DOUBLE, :name => 'price'},
280
+ CURRENCYCODE => {:type => ::Thrift::Types::STRING, :name => 'currencyCode', :optional => true},
281
+ ALBUMONLY => {:type => ::Thrift::Types::BOOL, :name => 'albumOnly'},
282
+ ALBUMBROKEN => {:type => ::Thrift::Types::BOOL, :name => 'albumBroken'},
283
+ PRICECODE => {:type => ::Thrift::Types::STRING, :name => 'priceCode', :optional => true},
284
+ ALBUMCALCULATEDTYPE => {:type => ::Thrift::Types::STRING, :name => 'albumCalculatedType'},
285
+ ALLOWSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'allowStreaming'},
286
+ ALBUMNROFVOLUMES => {:type => ::Thrift::Types::I32, :name => 'albumNrOfVolumes'},
287
+ POPULARITY => {:type => ::Thrift::Types::I32, :name => 'popularity'},
288
+ POPULARITYTHISWEEK => {:type => ::Thrift::Types::I32, :name => 'popularityThisWeek'},
289
+ SEARCHSCORE => {:type => ::Thrift::Types::DOUBLE, :name => 'searchScore'},
290
+ RECORDLABEL => {:type => ::Thrift::Types::STRUCT, :name => 'recordLabel', :class => ::WiMP::Gen::RecordLabel},
291
+ SALESPRICERULEID => {:type => ::Thrift::Types::I32, :name => 'salesPriceRuleId'},
292
+ STREAMSTARTDATE => {:type => ::Thrift::Types::I64, :name => 'streamStartDate'},
293
+ PREVIEWURL => {:type => ::Thrift::Types::STRING, :name => 'previewURL'},
294
+ CUSTOMIZABLEALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'customizableAlbumCover', :optional => true},
295
+ PREMIUMONLYSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'premiumOnlyStreaming'},
296
+ POPULARITYLEVEL => {:type => ::Thrift::Types::I32, :name => 'popularityLevel'},
297
+ REVISEDCOPYRIGHT => {:type => ::Thrift::Types::STRING, :name => 'revisedCopyright'}
298
+ }
299
+
300
+ def struct_fields; FIELDS; end
301
+
302
+ def validate
303
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field title is unset!') unless @title
304
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artist is unset!') unless @artist
305
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
306
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumId is unset!') unless @albumId
307
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field album is unset!') unless @album
308
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field duration is unset!') unless @duration
309
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
310
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field volumeNumber is unset!') unless @volumeNumber
311
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesStartDate is unset!') unless @salesStartDate
312
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesReady is unset!') if @salesReady.nil?
313
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field streamReady is unset!') if @streamReady.nil?
314
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field price is unset!') unless @price
315
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumOnly is unset!') if @albumOnly.nil?
316
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumBroken is unset!') if @albumBroken.nil?
317
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumCalculatedType is unset!') unless @albumCalculatedType
318
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field allowStreaming is unset!') if @allowStreaming.nil?
319
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumNrOfVolumes is unset!') unless @albumNrOfVolumes
320
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field popularity is unset!') unless @popularity
321
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field popularityThisWeek is unset!') unless @popularityThisWeek
322
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field searchScore is unset!') unless @searchScore
323
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordLabel is unset!') unless @recordLabel
324
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesPriceRuleId is unset!') unless @salesPriceRuleId
325
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field streamStartDate is unset!') unless @streamStartDate
326
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field previewURL is unset!') unless @previewURL
327
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumOnlyStreaming is unset!') if @premiumOnlyStreaming.nil?
328
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field popularityLevel is unset!') unless @popularityLevel
329
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field revisedCopyright is unset!') unless @revisedCopyright
330
+ end
331
+
332
+ ::Thrift::Struct.generate_accessors self
333
+ end
334
+
335
+ class Album
336
+ include ::Thrift::Struct, ::Thrift::Struct_Union
337
+ ID = 1
338
+ ALLOWSTREAMING = 2
339
+ ARTIST = 3
340
+ ARTISTID = 4
341
+ CALCULATEDTYPE = 5
342
+ COPYRIGHT = 6
343
+ DURATION = 7
344
+ GENRE = 8
345
+ LARGEALBUMCOVER = 9
346
+ NUMBEROFTRACKS = 10
347
+ NUMBEROFVOLUMES = 11
348
+ PARTIALDATA = 12
349
+ PARTIALNROFTRACKS = 13
350
+ RECORDLABEL = 14
351
+ SALESSTARTDATE = 15
352
+ STREAMREADY = 16
353
+ TITLE = 17
354
+ VERSION = 18
355
+ CURRENCYCODE = 19
356
+ DESC = 20
357
+ DETAILS = 21
358
+ MEDIUMALBUMCOVER = 22
359
+ SMALLALBUMCOVER = 23
360
+ POPULARITY = 24
361
+ POPULARITYTHISWEEK = 25
362
+ PRICE = 26
363
+ PRICECODE = 27
364
+ RELEASEDATE = 28
365
+ RELEASEYEAR = 29
366
+ SALESPRICERULEID = 30
367
+ SALESREADY = 31
368
+ SEARCHSCORE = 32
369
+ TRACKBUNDLETYPE = 33
370
+ TRACKONLY = 34
371
+ STREAMSTARTDATE = 35
372
+ CUSTOMIZABLEALBUMCOVER = 36
373
+ BOOKLETURL = 37
374
+ PREMIUMONLYSTREAMING = 38
375
+ REVISEDCOPYRIGHT = 39
376
+
377
+ FIELDS = {
378
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
379
+ ALLOWSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'allowStreaming'},
380
+ ARTIST => {:type => ::Thrift::Types::STRING, :name => 'artist'},
381
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
382
+ CALCULATEDTYPE => {:type => ::Thrift::Types::STRING, :name => 'calculatedType'},
383
+ COPYRIGHT => {:type => ::Thrift::Types::STRING, :name => 'copyright'},
384
+ DURATION => {:type => ::Thrift::Types::I32, :name => 'duration'},
385
+ GENRE => {:type => ::Thrift::Types::STRING, :name => 'genre'},
386
+ LARGEALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'largeAlbumCover', :optional => true},
387
+ NUMBEROFTRACKS => {:type => ::Thrift::Types::I32, :name => 'numberOfTracks'},
388
+ NUMBEROFVOLUMES => {:type => ::Thrift::Types::I32, :name => 'numberOfVolumes'},
389
+ PARTIALDATA => {:type => ::Thrift::Types::BOOL, :name => 'partialData'},
390
+ PARTIALNROFTRACKS => {:type => ::Thrift::Types::I32, :name => 'partialNrOfTracks'},
391
+ RECORDLABEL => {:type => ::Thrift::Types::STRUCT, :name => 'recordLabel', :class => ::WiMP::Gen::RecordLabel},
392
+ SALESSTARTDATE => {:type => ::Thrift::Types::I64, :name => 'salesStartDate'},
393
+ STREAMREADY => {:type => ::Thrift::Types::BOOL, :name => 'streamReady'},
394
+ TITLE => {:type => ::Thrift::Types::STRING, :name => 'title'},
395
+ VERSION => {:type => ::Thrift::Types::STRING, :name => 'version', :optional => true},
396
+ CURRENCYCODE => {:type => ::Thrift::Types::STRING, :name => 'currencyCode', :optional => true},
397
+ DESC => {:type => ::Thrift::Types::STRING, :name => 'desc', :optional => true},
398
+ DETAILS => {:type => ::Thrift::Types::STRING, :name => 'details', :optional => true},
399
+ MEDIUMALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'mediumAlbumCover', :optional => true},
400
+ SMALLALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'smallAlbumCover', :optional => true},
401
+ POPULARITY => {:type => ::Thrift::Types::I32, :name => 'popularity'},
402
+ POPULARITYTHISWEEK => {:type => ::Thrift::Types::I32, :name => 'popularityThisWeek'},
403
+ PRICE => {:type => ::Thrift::Types::DOUBLE, :name => 'price'},
404
+ PRICECODE => {:type => ::Thrift::Types::STRING, :name => 'priceCode'},
405
+ RELEASEDATE => {:type => ::Thrift::Types::I64, :name => 'releaseDate'},
406
+ RELEASEYEAR => {:type => ::Thrift::Types::STRING, :name => 'releaseYear'},
407
+ SALESPRICERULEID => {:type => ::Thrift::Types::I32, :name => 'salesPriceRuleId'},
408
+ SALESREADY => {:type => ::Thrift::Types::BOOL, :name => 'salesReady'},
409
+ SEARCHSCORE => {:type => ::Thrift::Types::DOUBLE, :name => 'searchScore'},
410
+ TRACKBUNDLETYPE => {:type => ::Thrift::Types::STRING, :name => 'trackBundleType'},
411
+ TRACKONLY => {:type => ::Thrift::Types::BOOL, :name => 'trackOnly'},
412
+ STREAMSTARTDATE => {:type => ::Thrift::Types::I64, :name => 'streamStartDate'},
413
+ CUSTOMIZABLEALBUMCOVER => {:type => ::Thrift::Types::STRING, :name => 'customizableAlbumCover', :optional => true},
414
+ BOOKLETURL => {:type => ::Thrift::Types::STRING, :name => 'bookletURL', :optional => true},
415
+ PREMIUMONLYSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'premiumOnlyStreaming'},
416
+ REVISEDCOPYRIGHT => {:type => ::Thrift::Types::STRING, :name => 'revisedCopyright'}
417
+ }
418
+
419
+ def struct_fields; FIELDS; end
420
+
421
+ def validate
422
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
423
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field allowStreaming is unset!') if @allowStreaming.nil?
424
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artist is unset!') unless @artist
425
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
426
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field calculatedType is unset!') unless @calculatedType
427
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field copyright is unset!') unless @copyright
428
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field duration is unset!') unless @duration
429
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field genre is unset!') unless @genre
430
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field numberOfTracks is unset!') unless @numberOfTracks
431
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field numberOfVolumes is unset!') unless @numberOfVolumes
432
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field partialData is unset!') if @partialData.nil?
433
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field partialNrOfTracks is unset!') unless @partialNrOfTracks
434
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field recordLabel is unset!') unless @recordLabel
435
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesStartDate is unset!') unless @salesStartDate
436
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field streamReady is unset!') if @streamReady.nil?
437
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field title is unset!') unless @title
438
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field popularity is unset!') unless @popularity
439
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field popularityThisWeek is unset!') unless @popularityThisWeek
440
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field price is unset!') unless @price
441
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field priceCode is unset!') unless @priceCode
442
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field releaseDate is unset!') unless @releaseDate
443
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field releaseYear is unset!') unless @releaseYear
444
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesPriceRuleId is unset!') unless @salesPriceRuleId
445
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field salesReady is unset!') if @salesReady.nil?
446
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field searchScore is unset!') unless @searchScore
447
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field trackBundleType is unset!') unless @trackBundleType
448
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field trackOnly is unset!') if @trackOnly.nil?
449
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field streamStartDate is unset!') unless @streamStartDate
450
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumOnlyStreaming is unset!') if @premiumOnlyStreaming.nil?
451
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field revisedCopyright is unset!') unless @revisedCopyright
452
+ end
453
+
454
+ ::Thrift::Struct.generate_accessors self
455
+ end
456
+
457
+ class Playlist
458
+ include ::Thrift::Struct, ::Thrift::Struct_Union
459
+ COUNT = 1
460
+ CREATEDBYARTISTID = 2
461
+ DURATION = 3
462
+ IMGPATH = 4
463
+ LASTUPDATED = 5
464
+ PLAYLISTNAME = 6
465
+ PROFILEID = 7
466
+ REGISTEREDDATE = 8
467
+ TRACKS = 9
468
+ UUID = 10
469
+ TYPE = 11
470
+ DESC = 12
471
+ ID = 13
472
+ CREATEDBYNICKNAME = 14
473
+
474
+ FIELDS = {
475
+ COUNT => {:type => ::Thrift::Types::I32, :name => 'count'},
476
+ CREATEDBYARTISTID => {:type => ::Thrift::Types::I32, :name => 'createdByArtistId'},
477
+ DURATION => {:type => ::Thrift::Types::I32, :name => 'duration'},
478
+ IMGPATH => {:type => ::Thrift::Types::STRING, :name => 'imgPath', :optional => true},
479
+ LASTUPDATED => {:type => ::Thrift::Types::I64, :name => 'lastUpdated'},
480
+ PLAYLISTNAME => {:type => ::Thrift::Types::STRING, :name => 'playlistName'},
481
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'},
482
+ REGISTEREDDATE => {:type => ::Thrift::Types::I64, :name => 'registeredDate'},
483
+ TRACKS => {:type => ::Thrift::Types::LIST, :name => 'tracks', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Track}, :optional => true},
484
+ UUID => {:type => ::Thrift::Types::STRING, :name => 'uuid'},
485
+ TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :optional => true},
486
+ DESC => {:type => ::Thrift::Types::STRING, :name => 'desc', :optional => true},
487
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
488
+ CREATEDBYNICKNAME => {:type => ::Thrift::Types::STRING, :name => 'createdByNickName', :optional => true}
489
+ }
490
+
491
+ def struct_fields; FIELDS; end
492
+
493
+ def validate
494
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field count is unset!') unless @count
495
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field createdByArtistId is unset!') unless @createdByArtistId
496
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field duration is unset!') unless @duration
497
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdated is unset!') unless @lastUpdated
498
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field playlistName is unset!') unless @playlistName
499
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
500
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field registeredDate is unset!') unless @registeredDate
501
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field uuid is unset!') unless @uuid
502
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
503
+ end
504
+
505
+ ::Thrift::Struct.generate_accessors self
506
+ end
507
+
508
+ class SearchResult
509
+ include ::Thrift::Struct, ::Thrift::Struct_Union
510
+ ARTISTS = 1
511
+ TRACKS = 2
512
+ ALBUMS = 3
513
+ PLAYLIST = 4
514
+
515
+ FIELDS = {
516
+ ARTISTS => {:type => ::Thrift::Types::LIST, :name => 'artists', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Artist}, :optional => true},
517
+ TRACKS => {:type => ::Thrift::Types::LIST, :name => 'tracks', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Track}, :optional => true},
518
+ ALBUMS => {:type => ::Thrift::Types::LIST, :name => 'albums', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Album}, :optional => true},
519
+ PLAYLIST => {:type => ::Thrift::Types::LIST, :name => 'playlist', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Playlist}, :optional => true}
520
+ }
521
+
522
+ def struct_fields; FIELDS; end
523
+
524
+ def validate
525
+ end
526
+
527
+ ::Thrift::Struct.generate_accessors self
528
+ end
529
+
530
+ class AlbumReview
531
+ include ::Thrift::Struct, ::Thrift::Struct_Union
532
+ REVIEW = 1
533
+ SUMMARY = 2
534
+ SOURCENAME = 3
535
+
536
+ FIELDS = {
537
+ REVIEW => {:type => ::Thrift::Types::STRING, :name => 'review'},
538
+ SUMMARY => {:type => ::Thrift::Types::STRING, :name => 'summary'},
539
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
540
+ }
541
+
542
+ def struct_fields; FIELDS; end
543
+
544
+ def validate
545
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field review is unset!') unless @review
546
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field summary is unset!') unless @summary
547
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
548
+ end
549
+
550
+ ::Thrift::Struct.generate_accessors self
551
+ end
552
+
553
+ class SimilarAlbum
554
+ include ::Thrift::Struct, ::Thrift::Struct_Union
555
+ ALBUMID = 1
556
+ TITLE = 2
557
+ ARTISTNAME = 3
558
+ ARTISTID = 4
559
+
560
+ FIELDS = {
561
+ ALBUMID => {:type => ::Thrift::Types::I32, :name => 'albumId'},
562
+ TITLE => {:type => ::Thrift::Types::STRING, :name => 'title'},
563
+ ARTISTNAME => {:type => ::Thrift::Types::STRING, :name => 'artistName'},
564
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'}
565
+ }
566
+
567
+ def struct_fields; FIELDS; end
568
+
569
+ def validate
570
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumId is unset!') unless @albumId
571
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field title is unset!') unless @title
572
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistName is unset!') unless @artistName
573
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
574
+ end
575
+
576
+ ::Thrift::Struct.generate_accessors self
577
+ end
578
+
579
+ class SimilarAlbumList
580
+ include ::Thrift::Struct, ::Thrift::Struct_Union
581
+ SIMILARALBUMS = 1
582
+ SOURCENAME = 2
583
+
584
+ FIELDS = {
585
+ SIMILARALBUMS => {:type => ::Thrift::Types::LIST, :name => 'similarAlbums', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::SimilarAlbum}},
586
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
587
+ }
588
+
589
+ def struct_fields; FIELDS; end
590
+
591
+ def validate
592
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field similarAlbums is unset!') unless @similarAlbums
593
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
594
+ end
595
+
596
+ ::Thrift::Struct.generate_accessors self
597
+ end
598
+
599
+ class AlbumMetadata
600
+ include ::Thrift::Struct, ::Thrift::Struct_Union
601
+ ALBUMID = 1
602
+ TITLE = 2
603
+ ARTISTID = 3
604
+ ALBUMREVIEW = 4
605
+ SIMILARALBUMLIST = 5
606
+
607
+ FIELDS = {
608
+ ALBUMID => {:type => ::Thrift::Types::I32, :name => 'albumId'},
609
+ TITLE => {:type => ::Thrift::Types::STRING, :name => 'title'},
610
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
611
+ ALBUMREVIEW => {:type => ::Thrift::Types::STRUCT, :name => 'albumReview', :class => ::WiMP::Gen::AlbumReview},
612
+ SIMILARALBUMLIST => {:type => ::Thrift::Types::STRUCT, :name => 'similarAlbumList', :class => ::WiMP::Gen::SimilarAlbumList}
613
+ }
614
+
615
+ def struct_fields; FIELDS; end
616
+
617
+ def validate
618
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumId is unset!') unless @albumId
619
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field title is unset!') unless @title
620
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
621
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albumReview is unset!') unless @albumReview
622
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field similarAlbumList is unset!') unless @similarAlbumList
623
+ end
624
+
625
+ ::Thrift::Struct.generate_accessors self
626
+ end
627
+
628
+ class SimilarArtist
629
+ include ::Thrift::Struct, ::Thrift::Struct_Union
630
+ ARTISTID = 1
631
+ ARTISTNAME = 2
632
+
633
+ FIELDS = {
634
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
635
+ ARTISTNAME => {:type => ::Thrift::Types::STRING, :name => 'artistName'}
636
+ }
637
+
638
+ def struct_fields; FIELDS; end
639
+
640
+ def validate
641
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
642
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistName is unset!') unless @artistName
643
+ end
644
+
645
+ ::Thrift::Struct.generate_accessors self
646
+ end
647
+
648
+ class SimilarArtistList
649
+ include ::Thrift::Struct, ::Thrift::Struct_Union
650
+ SIMILARARTISTLIST = 1
651
+ SOURCENAME = 2
652
+
653
+ FIELDS = {
654
+ SIMILARARTISTLIST => {:type => ::Thrift::Types::LIST, :name => 'similarArtistList', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::SimilarArtist}},
655
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
656
+ }
657
+
658
+ def struct_fields; FIELDS; end
659
+
660
+ def validate
661
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field similarArtistList is unset!') unless @similarArtistList
662
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
663
+ end
664
+
665
+ ::Thrift::Struct.generate_accessors self
666
+ end
667
+
668
+ class RelatedArtist
669
+ include ::Thrift::Struct, ::Thrift::Struct_Union
670
+ ARTISTID = 1
671
+ ARTISTNAME = 2
672
+ RELATIONTYPE = 3
673
+
674
+ FIELDS = {
675
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
676
+ ARTISTNAME => {:type => ::Thrift::Types::STRING, :name => 'artistName'},
677
+ RELATIONTYPE => {:type => ::Thrift::Types::I32, :name => 'relationType'}
678
+ }
679
+
680
+ def struct_fields; FIELDS; end
681
+
682
+ def validate
683
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
684
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistName is unset!') unless @artistName
685
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field relationType is unset!') unless @relationType
686
+ end
687
+
688
+ ::Thrift::Struct.generate_accessors self
689
+ end
690
+
691
+ class RelatedArtistList
692
+ include ::Thrift::Struct, ::Thrift::Struct_Union
693
+ RELATEDARTISTLIST = 1
694
+ SOURCENAME = 2
695
+
696
+ FIELDS = {
697
+ RELATEDARTISTLIST => {:type => ::Thrift::Types::LIST, :name => 'relatedArtistList', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::RelatedArtist}},
698
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
699
+ }
700
+
701
+ def struct_fields; FIELDS; end
702
+
703
+ def validate
704
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field relatedArtistList is unset!') unless @relatedArtistList
705
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
706
+ end
707
+
708
+ ::Thrift::Struct.generate_accessors self
709
+ end
710
+
711
+ class ArtistLink
712
+ include ::Thrift::Struct, ::Thrift::Struct_Union
713
+ URL = 1
714
+
715
+ FIELDS = {
716
+ URL => {:type => ::Thrift::Types::STRING, :name => 'url'}
717
+ }
718
+
719
+ def struct_fields; FIELDS; end
720
+
721
+ def validate
722
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field url is unset!') unless @url
723
+ end
724
+
725
+ ::Thrift::Struct.generate_accessors self
726
+ end
727
+
728
+ class ArtistLinkList
729
+ include ::Thrift::Struct, ::Thrift::Struct_Union
730
+ ARTISTLINKS = 1
731
+ SOURCENAME = 2
732
+
733
+ FIELDS = {
734
+ ARTISTLINKS => {:type => ::Thrift::Types::LIST, :name => 'artistLinks', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::ArtistLink}},
735
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
736
+ }
737
+
738
+ def struct_fields; FIELDS; end
739
+
740
+ def validate
741
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistLinks is unset!') unless @artistLinks
742
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
743
+ end
744
+
745
+ ::Thrift::Struct.generate_accessors self
746
+ end
747
+
748
+ class ArtistBiography
749
+ include ::Thrift::Struct, ::Thrift::Struct_Union
750
+ BIOGRAPHYSUMMARY = 1
751
+ BIOGRAPHY = 2
752
+ SOURCENAME = 3
753
+
754
+ FIELDS = {
755
+ BIOGRAPHYSUMMARY => {:type => ::Thrift::Types::STRING, :name => 'biographySummary'},
756
+ BIOGRAPHY => {:type => ::Thrift::Types::STRING, :name => 'biography'},
757
+ SOURCENAME => {:type => ::Thrift::Types::STRING, :name => 'sourceName'}
758
+ }
759
+
760
+ def struct_fields; FIELDS; end
761
+
762
+ def validate
763
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field biographySummary is unset!') unless @biographySummary
764
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field biography is unset!') unless @biography
765
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sourceName is unset!') unless @sourceName
766
+ end
767
+
768
+ ::Thrift::Struct.generate_accessors self
769
+ end
770
+
771
+ class ArtistMetaData
772
+ include ::Thrift::Struct, ::Thrift::Struct_Union
773
+ ARTISTID = 1
774
+ ARTISTNAME = 2
775
+ ARTISTBIOGRAPHY = 3
776
+ SIMILARARTISTS = 4
777
+ RELATEDARTISTS = 5
778
+ ARTISTLINKS = 6
779
+
780
+ FIELDS = {
781
+ ARTISTID => {:type => ::Thrift::Types::I32, :name => 'artistId'},
782
+ ARTISTNAME => {:type => ::Thrift::Types::STRING, :name => 'artistName'},
783
+ ARTISTBIOGRAPHY => {:type => ::Thrift::Types::STRUCT, :name => 'artistBiography', :class => ::WiMP::Gen::ArtistBiography},
784
+ SIMILARARTISTS => {:type => ::Thrift::Types::STRUCT, :name => 'similarArtists', :class => ::WiMP::Gen::SimilarArtistList},
785
+ RELATEDARTISTS => {:type => ::Thrift::Types::STRUCT, :name => 'relatedArtists', :class => ::WiMP::Gen::RelatedArtistList},
786
+ ARTISTLINKS => {:type => ::Thrift::Types::STRUCT, :name => 'artistLinks', :class => ::WiMP::Gen::ArtistLinkList}
787
+ }
788
+
789
+ def struct_fields; FIELDS; end
790
+
791
+ def validate
792
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistId is unset!') unless @artistId
793
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistName is unset!') unless @artistName
794
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistBiography is unset!') unless @artistBiography
795
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field similarArtists is unset!') unless @similarArtists
796
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field relatedArtists is unset!') unless @relatedArtists
797
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artistLinks is unset!') unless @artistLinks
798
+ end
799
+
800
+ ::Thrift::Struct.generate_accessors self
801
+ end
802
+
803
+ class Category
804
+ include ::Thrift::Struct, ::Thrift::Struct_Union
805
+ ID = 1
806
+ NAME = 2
807
+ LASTUPDATED = 8
808
+ CONTENTTYPE = 9
809
+ DESC = 10
810
+ HASPRODUCTDESCRIPTIONS = 11
811
+ IMAGEURL = 12
812
+
813
+ FIELDS = {
814
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
815
+ NAME => {:type => ::Thrift::Types::STRING, :name => 'name', :optional => true},
816
+ LASTUPDATED => {:type => ::Thrift::Types::I64, :name => 'lastUpdated'},
817
+ CONTENTTYPE => {:type => ::Thrift::Types::I32, :name => 'contentType'},
818
+ DESC => {:type => ::Thrift::Types::STRING, :name => 'desc', :optional => true},
819
+ HASPRODUCTDESCRIPTIONS => {:type => ::Thrift::Types::BOOL, :name => 'hasProductDescriptions'},
820
+ IMAGEURL => {:type => ::Thrift::Types::STRING, :name => 'imageURL', :optional => true}
821
+ }
822
+
823
+ def struct_fields; FIELDS; end
824
+
825
+ def validate
826
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
827
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdated is unset!') unless @lastUpdated
828
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field contentType is unset!') unless @contentType
829
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field hasProductDescriptions is unset!') if @hasProductDescriptions.nil?
830
+ end
831
+
832
+ ::Thrift::Struct.generate_accessors self
833
+ end
834
+
835
+ class CategoryTree
836
+ include ::Thrift::Struct, ::Thrift::Struct_Union
837
+ CATEGORY = 1
838
+ CHILDREN = 2
839
+
840
+ FIELDS = {
841
+ CATEGORY => {:type => ::Thrift::Types::STRUCT, :name => 'category', :class => ::WiMP::Gen::Category, :optional => true},
842
+ CHILDREN => {:type => ::Thrift::Types::MAP, :name => 'children', :key => {:type => ::Thrift::Types::I32}, :value => {:type => ::Thrift::Types::LIST, :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Category}}, :optional => true}
843
+ }
844
+
845
+ def struct_fields; FIELDS; end
846
+
847
+ def validate
848
+ end
849
+
850
+ ::Thrift::Struct.generate_accessors self
851
+ end
852
+
853
+ class FavoriteAlbum
854
+ include ::Thrift::Struct, ::Thrift::Struct_Union
855
+ DATEADDED = 1
856
+ ALBUM = 2
857
+ PROFILEID = 3
858
+
859
+ FIELDS = {
860
+ DATEADDED => {:type => ::Thrift::Types::I32, :name => 'dateAdded', :optional => true},
861
+ ALBUM => {:type => ::Thrift::Types::STRUCT, :name => 'album', :class => ::WiMP::Gen::Album},
862
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'}
863
+ }
864
+
865
+ def struct_fields; FIELDS; end
866
+
867
+ def validate
868
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field album is unset!') unless @album
869
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
870
+ end
871
+
872
+ ::Thrift::Struct.generate_accessors self
873
+ end
874
+
875
+ class FavoriteArtist
876
+ include ::Thrift::Struct, ::Thrift::Struct_Union
877
+ DATEADDED = 1
878
+ ARTIST = 2
879
+ ALBUMS = 3
880
+ PROFILEID = 4
881
+
882
+ FIELDS = {
883
+ DATEADDED => {:type => ::Thrift::Types::I64, :name => 'dateAdded'},
884
+ ARTIST => {:type => ::Thrift::Types::STRUCT, :name => 'artist', :class => ::WiMP::Gen::Artist},
885
+ ALBUMS => {:type => ::Thrift::Types::LIST, :name => 'albums', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WiMP::Gen::Album}},
886
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'}
887
+ }
888
+
889
+ def struct_fields; FIELDS; end
890
+
891
+ def validate
892
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field dateAdded is unset!') unless @dateAdded
893
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artist is unset!') unless @artist
894
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field albums is unset!') unless @albums
895
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
896
+ end
897
+
898
+ ::Thrift::Struct.generate_accessors self
899
+ end
900
+
901
+ class FavoritePlaylist
902
+ include ::Thrift::Struct, ::Thrift::Struct_Union
903
+ DATEADDED = 1
904
+ PLAYLIST = 2
905
+ PROFILEID = 3
906
+
907
+ FIELDS = {
908
+ DATEADDED => {:type => ::Thrift::Types::I64, :name => 'dateAdded'},
909
+ PLAYLIST => {:type => ::Thrift::Types::STRUCT, :name => 'playlist', :class => ::WiMP::Gen::Playlist},
910
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'}
911
+ }
912
+
913
+ def struct_fields; FIELDS; end
914
+
915
+ def validate
916
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field dateAdded is unset!') unless @dateAdded
917
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field playlist is unset!') unless @playlist
918
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
919
+ end
920
+
921
+ ::Thrift::Struct.generate_accessors self
922
+ end
923
+
924
+ class FavoriteTrack
925
+ include ::Thrift::Struct, ::Thrift::Struct_Union
926
+ DATEADDED = 1
927
+ TRACK = 2
928
+ PROFILEID = 3
929
+
930
+ FIELDS = {
931
+ DATEADDED => {:type => ::Thrift::Types::I64, :name => 'dateAdded'},
932
+ TRACK => {:type => ::Thrift::Types::STRUCT, :name => 'track', :class => ::WiMP::Gen::Track},
933
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'}
934
+ }
935
+
936
+ def struct_fields; FIELDS; end
937
+
938
+ def validate
939
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field dateAdded is unset!') unless @dateAdded
940
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field track is unset!') unless @track
941
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
942
+ end
943
+
944
+ ::Thrift::Struct.generate_accessors self
945
+ end
946
+
947
+ class WallPost
948
+ include ::Thrift::Struct, ::Thrift::Struct_Union
949
+ ID = 1
950
+ PROFILEID = 2
951
+ POSTDATE = 3
952
+ ACTION = 4
953
+ ARTIFACTID = 5
954
+ ARTIFACTTITLE = 6
955
+ ARTIFACTPARENTTITLE = 7
956
+
957
+ FIELDS = {
958
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
959
+ PROFILEID => {:type => ::Thrift::Types::I32, :name => 'profileId'},
960
+ POSTDATE => {:type => ::Thrift::Types::I64, :name => 'postDate'},
961
+ ACTION => {:type => ::Thrift::Types::I32, :name => 'action'},
962
+ ARTIFACTID => {:type => ::Thrift::Types::STRING, :name => 'artifactId'},
963
+ ARTIFACTTITLE => {:type => ::Thrift::Types::STRING, :name => 'artifactTitle'},
964
+ ARTIFACTPARENTTITLE => {:type => ::Thrift::Types::STRING, :name => 'artifactParentTitle', :optional => true}
965
+ }
966
+
967
+ def struct_fields; FIELDS; end
968
+
969
+ def validate
970
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
971
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profileId is unset!') unless @profileId
972
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field postDate is unset!') unless @postDate
973
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field action is unset!') unless @action
974
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artifactId is unset!') unless @artifactId
975
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field artifactTitle is unset!') unless @artifactTitle
976
+ end
977
+
978
+ ::Thrift::Struct.generate_accessors self
979
+ end
980
+
981
+ class Friend
982
+ include ::Thrift::Struct, ::Thrift::Struct_Union
983
+ ID = 1
984
+ LASTUPDATEDFAVOURITES = 2
985
+ FACEBOOKUID = 3
986
+ MADEFRIENDDATE = 4
987
+ LASTVISITEDFRIENDDATE = 5
988
+ BLOCKED = 6
989
+ FRIENDTYPE = 7
990
+ NICK = 8
991
+ FRIENDPROFILEID = 9
992
+ NROFSHAREDALBUMS = 10
993
+ NROFSHAREDTRACKS = 11
994
+ NROFSHAREDPLAYLISTS = 12
995
+ NROFSHAREDARTISTS = 13
996
+
997
+ FIELDS = {
998
+ ID => {:type => ::Thrift::Types::I32, :name => 'id'},
999
+ LASTUPDATEDFAVOURITES => {:type => ::Thrift::Types::I64, :name => 'lastUpdatedFavourites'},
1000
+ FACEBOOKUID => {:type => ::Thrift::Types::I64, :name => 'facebookUid'},
1001
+ MADEFRIENDDATE => {:type => ::Thrift::Types::I64, :name => 'madeFriendDate'},
1002
+ LASTVISITEDFRIENDDATE => {:type => ::Thrift::Types::I64, :name => 'lastVisitedFriendDate'},
1003
+ BLOCKED => {:type => ::Thrift::Types::BOOL, :name => 'blocked'},
1004
+ FRIENDTYPE => {:type => ::Thrift::Types::STRING, :name => 'friendType'},
1005
+ NICK => {:type => ::Thrift::Types::STRING, :name => 'nick'},
1006
+ FRIENDPROFILEID => {:type => ::Thrift::Types::I32, :name => 'friendProfileId'},
1007
+ NROFSHAREDALBUMS => {:type => ::Thrift::Types::I32, :name => 'nrOfSharedAlbums'},
1008
+ NROFSHAREDTRACKS => {:type => ::Thrift::Types::I32, :name => 'nrOfSharedTracks'},
1009
+ NROFSHAREDPLAYLISTS => {:type => ::Thrift::Types::I32, :name => 'nrOfSharedPlayLists'},
1010
+ NROFSHAREDARTISTS => {:type => ::Thrift::Types::I32, :name => 'nrOfSharedArtists'}
1011
+ }
1012
+
1013
+ def struct_fields; FIELDS; end
1014
+
1015
+ def validate
1016
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field id is unset!') unless @id
1017
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastUpdatedFavourites is unset!') unless @lastUpdatedFavourites
1018
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field facebookUid is unset!') unless @facebookUid
1019
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field madeFriendDate is unset!') unless @madeFriendDate
1020
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastVisitedFriendDate is unset!') unless @lastVisitedFriendDate
1021
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field blocked is unset!') if @blocked.nil?
1022
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field friendType is unset!') unless @friendType
1023
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nick is unset!') unless @nick
1024
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field friendProfileId is unset!') unless @friendProfileId
1025
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nrOfSharedAlbums is unset!') unless @nrOfSharedAlbums
1026
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nrOfSharedTracks is unset!') unless @nrOfSharedTracks
1027
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nrOfSharedPlayLists is unset!') unless @nrOfSharedPlayLists
1028
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nrOfSharedArtists is unset!') unless @nrOfSharedArtists
1029
+ end
1030
+
1031
+ ::Thrift::Struct.generate_accessors self
1032
+ end
1033
+
1034
+ end
1035
+ end