wimp 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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