spotted 0.1.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 (677) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +25 -0
  4. data/README.md +236 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/spotted/client.rb +169 -0
  7. data/lib/spotted/errors.rb +228 -0
  8. data/lib/spotted/file_part.rb +58 -0
  9. data/lib/spotted/internal/cursor_url_page.rb +86 -0
  10. data/lib/spotted/internal/oauth2.rb +87 -0
  11. data/lib/spotted/internal/transport/base_client.rb +567 -0
  12. data/lib/spotted/internal/transport/pooled_net_requester.rb +204 -0
  13. data/lib/spotted/internal/type/array_of.rb +168 -0
  14. data/lib/spotted/internal/type/base_model.rb +529 -0
  15. data/lib/spotted/internal/type/base_page.rb +55 -0
  16. data/lib/spotted/internal/type/boolean.rb +77 -0
  17. data/lib/spotted/internal/type/converter.rb +327 -0
  18. data/lib/spotted/internal/type/enum.rb +131 -0
  19. data/lib/spotted/internal/type/file_input.rb +111 -0
  20. data/lib/spotted/internal/type/hash_of.rb +188 -0
  21. data/lib/spotted/internal/type/request_parameters.rb +42 -0
  22. data/lib/spotted/internal/type/union.rb +237 -0
  23. data/lib/spotted/internal/type/unknown.rb +81 -0
  24. data/lib/spotted/internal/util.rb +915 -0
  25. data/lib/spotted/internal.rb +20 -0
  26. data/lib/spotted/models/album_list_params.rb +43 -0
  27. data/lib/spotted/models/album_list_response.rb +297 -0
  28. data/lib/spotted/models/album_list_tracks_params.rb +50 -0
  29. data/lib/spotted/models/album_restriction_object.rb +39 -0
  30. data/lib/spotted/models/album_retrieve_params.rb +33 -0
  31. data/lib/spotted/models/album_retrieve_response.rb +287 -0
  32. data/lib/spotted/models/artist_list_albums_params.rb +61 -0
  33. data/lib/spotted/models/artist_list_albums_response.rb +195 -0
  34. data/lib/spotted/models/artist_list_params.rb +27 -0
  35. data/lib/spotted/models/artist_list_related_artists_params.rb +14 -0
  36. data/lib/spotted/models/artist_list_related_artists_response.rb +16 -0
  37. data/lib/spotted/models/artist_list_response.rb +16 -0
  38. data/lib/spotted/models/artist_list_top_tracks_params.rb +33 -0
  39. data/lib/spotted/models/artist_list_top_tracks_response.rb +16 -0
  40. data/lib/spotted/models/artist_object.rb +108 -0
  41. data/lib/spotted/models/artist_retrieve_params.rb +14 -0
  42. data/lib/spotted/models/audio_analysis_retrieve_params.rb +14 -0
  43. data/lib/spotted/models/audio_analysis_retrieve_response.rb +628 -0
  44. data/lib/spotted/models/audio_feature_list_params.rb +27 -0
  45. data/lib/spotted/models/audio_feature_list_response.rb +214 -0
  46. data/lib/spotted/models/audio_feature_retrieve_params.rb +14 -0
  47. data/lib/spotted/models/audio_feature_retrieve_response.rb +203 -0
  48. data/lib/spotted/models/audiobook_list_chapters_params.rb +50 -0
  49. data/lib/spotted/models/audiobook_list_params.rb +43 -0
  50. data/lib/spotted/models/audiobook_list_response.rb +266 -0
  51. data/lib/spotted/models/audiobook_retrieve_params.rb +33 -0
  52. data/lib/spotted/models/audiobook_retrieve_response.rb +255 -0
  53. data/lib/spotted/models/author_object.rb +19 -0
  54. data/lib/spotted/models/browse/category_get_playlists_params.rb +36 -0
  55. data/lib/spotted/models/browse/category_get_playlists_response.rb +29 -0
  56. data/lib/spotted/models/browse/category_list_params.rb +51 -0
  57. data/lib/spotted/models/browse/category_list_response.rb +121 -0
  58. data/lib/spotted/models/browse/category_retrieve_params.rb +34 -0
  59. data/lib/spotted/models/browse/category_retrieve_response.rb +47 -0
  60. data/lib/spotted/models/browse_get_featured_playlists_params.rb +49 -0
  61. data/lib/spotted/models/browse_get_featured_playlists_response.rb +27 -0
  62. data/lib/spotted/models/browse_get_new_releases_params.rb +34 -0
  63. data/lib/spotted/models/browse_get_new_releases_response.rb +245 -0
  64. data/lib/spotted/models/chapter_list_params.rb +43 -0
  65. data/lib/spotted/models/chapter_list_response.rb +408 -0
  66. data/lib/spotted/models/chapter_restriction_object.rb +29 -0
  67. data/lib/spotted/models/chapter_retrieve_params.rb +33 -0
  68. data/lib/spotted/models/chapter_retrieve_response.rb +398 -0
  69. data/lib/spotted/models/copyright_object.rb +28 -0
  70. data/lib/spotted/models/episode_list_params.rb +43 -0
  71. data/lib/spotted/models/episode_list_response.rb +16 -0
  72. data/lib/spotted/models/episode_object.rb +382 -0
  73. data/lib/spotted/models/episode_restriction_object.rb +28 -0
  74. data/lib/spotted/models/episode_retrieve_params.rb +33 -0
  75. data/lib/spotted/models/external_id_object.rb +35 -0
  76. data/lib/spotted/models/external_url_object.rb +20 -0
  77. data/lib/spotted/models/followers_object.rb +28 -0
  78. data/lib/spotted/models/image_object.rb +35 -0
  79. data/lib/spotted/models/linked_track_object.rb +53 -0
  80. data/lib/spotted/models/market_list_params.rb +14 -0
  81. data/lib/spotted/models/market_list_response.rb +16 -0
  82. data/lib/spotted/models/me/album_check_params.rb +29 -0
  83. data/lib/spotted/models/me/album_check_response.rb +10 -0
  84. data/lib/spotted/models/me/album_list_params.rb +52 -0
  85. data/lib/spotted/models/me/album_list_response.rb +318 -0
  86. data/lib/spotted/models/me/album_remove_params.rb +31 -0
  87. data/lib/spotted/models/me/album_save_params.rb +31 -0
  88. data/lib/spotted/models/me/audiobook_check_params.rb +29 -0
  89. data/lib/spotted/models/me/audiobook_check_response.rb +10 -0
  90. data/lib/spotted/models/me/audiobook_list_params.rb +36 -0
  91. data/lib/spotted/models/me/audiobook_list_response.rb +287 -0
  92. data/lib/spotted/models/me/audiobook_remove_params.rb +29 -0
  93. data/lib/spotted/models/me/audiobook_save_params.rb +29 -0
  94. data/lib/spotted/models/me/context_object.rb +46 -0
  95. data/lib/spotted/models/me/device_object.rb +82 -0
  96. data/lib/spotted/models/me/episode_check_params.rb +29 -0
  97. data/lib/spotted/models/me/episode_check_response.rb +10 -0
  98. data/lib/spotted/models/me/episode_list_params.rb +52 -0
  99. data/lib/spotted/models/me/episode_list_response.rb +32 -0
  100. data/lib/spotted/models/me/episode_remove_params.rb +31 -0
  101. data/lib/spotted/models/me/episode_save_params.rb +31 -0
  102. data/lib/spotted/models/me/following_check_params.rb +49 -0
  103. data/lib/spotted/models/me/following_check_response.rb +10 -0
  104. data/lib/spotted/models/me/following_follow_params.rb +50 -0
  105. data/lib/spotted/models/me/following_list_params.rb +53 -0
  106. data/lib/spotted/models/me/following_list_response.rb +94 -0
  107. data/lib/spotted/models/me/following_unfollow_params.rb +50 -0
  108. data/lib/spotted/models/me/player/queue_add_params.rb +38 -0
  109. data/lib/spotted/models/me/player/queue_get_params.rb +18 -0
  110. data/lib/spotted/models/me/player/queue_get_response.rb +59 -0
  111. data/lib/spotted/models/me/player_get_currently_playing_params.rb +48 -0
  112. data/lib/spotted/models/me/player_get_currently_playing_response.rb +175 -0
  113. data/lib/spotted/models/me/player_get_devices_params.rb +16 -0
  114. data/lib/spotted/models/me/player_get_devices_response.rb +18 -0
  115. data/lib/spotted/models/me/player_get_state_params.rb +48 -0
  116. data/lib/spotted/models/me/player_get_state_response.rb +200 -0
  117. data/lib/spotted/models/me/player_list_recently_played_params.rb +45 -0
  118. data/lib/spotted/models/me/player_list_recently_played_response.rb +35 -0
  119. data/lib/spotted/models/me/player_pause_playback_params.rb +28 -0
  120. data/lib/spotted/models/me/player_seek_to_position_params.rb +38 -0
  121. data/lib/spotted/models/me/player_set_repeat_mode_params.rb +38 -0
  122. data/lib/spotted/models/me/player_set_volume_params.rb +36 -0
  123. data/lib/spotted/models/me/player_skip_next_params.rb +28 -0
  124. data/lib/spotted/models/me/player_skip_previous_params.rb +28 -0
  125. data/lib/spotted/models/me/player_start_playback_params.rb +68 -0
  126. data/lib/spotted/models/me/player_toggle_shuffle_params.rb +37 -0
  127. data/lib/spotted/models/me/player_transfer_params.rb +40 -0
  128. data/lib/spotted/models/me/playlist_list_params.rb +36 -0
  129. data/lib/spotted/models/me/show_check_params.rb +29 -0
  130. data/lib/spotted/models/me/show_check_response.rb +10 -0
  131. data/lib/spotted/models/me/show_list_params.rb +36 -0
  132. data/lib/spotted/models/me/show_list_response.rb +197 -0
  133. data/lib/spotted/models/me/show_remove_params.rb +47 -0
  134. data/lib/spotted/models/me/show_save_params.rb +31 -0
  135. data/lib/spotted/models/me/top_list_top_artists_params.rb +47 -0
  136. data/lib/spotted/models/me/top_list_top_tracks_params.rb +47 -0
  137. data/lib/spotted/models/me/track_check_params.rb +29 -0
  138. data/lib/spotted/models/me/track_check_response.rb +10 -0
  139. data/lib/spotted/models/me/track_list_params.rb +52 -0
  140. data/lib/spotted/models/me/track_list_response.rb +34 -0
  141. data/lib/spotted/models/me/track_remove_params.rb +31 -0
  142. data/lib/spotted/models/me/track_save_params.rb +74 -0
  143. data/lib/spotted/models/me_retrieve_params.rb +14 -0
  144. data/lib/spotted/models/me_retrieve_response.rb +157 -0
  145. data/lib/spotted/models/narrator_object.rb +19 -0
  146. data/lib/spotted/models/paging_playlist_object.rb +66 -0
  147. data/lib/spotted/models/playlist_retrieve_params.rb +63 -0
  148. data/lib/spotted/models/playlist_retrieve_response.rb +217 -0
  149. data/lib/spotted/models/playlist_track_object.rb +64 -0
  150. data/lib/spotted/models/playlist_tracks_ref_object.rb +28 -0
  151. data/lib/spotted/models/playlist_update_params.rb +56 -0
  152. data/lib/spotted/models/playlist_user_object.rb +65 -0
  153. data/lib/spotted/models/playlists/follower_check_params.rb +29 -0
  154. data/lib/spotted/models/playlists/follower_check_response.rb +10 -0
  155. data/lib/spotted/models/playlists/follower_follow_params.rb +30 -0
  156. data/lib/spotted/models/playlists/follower_unfollow_params.rb +16 -0
  157. data/lib/spotted/models/playlists/image_list_params.rb +16 -0
  158. data/lib/spotted/models/playlists/image_list_response.rb +10 -0
  159. data/lib/spotted/models/playlists/image_update_params.rb +24 -0
  160. data/lib/spotted/models/playlists/track_add_params.rb +45 -0
  161. data/lib/spotted/models/playlists/track_add_response.rb +18 -0
  162. data/lib/spotted/models/playlists/track_list_params.rb +82 -0
  163. data/lib/spotted/models/playlists/track_remove_params.rb +52 -0
  164. data/lib/spotted/models/playlists/track_remove_response.rb +18 -0
  165. data/lib/spotted/models/playlists/track_update_params.rb +67 -0
  166. data/lib/spotted/models/playlists/track_update_response.rb +18 -0
  167. data/lib/spotted/models/recommendation_get_params.rb +549 -0
  168. data/lib/spotted/models/recommendation_get_response.rb +86 -0
  169. data/lib/spotted/models/recommendation_list_available_genre_seeds_params.rb +14 -0
  170. data/lib/spotted/models/recommendation_list_available_genre_seeds_response.rb +16 -0
  171. data/lib/spotted/models/resume_point_object.rb +27 -0
  172. data/lib/spotted/models/search_retrieve_params.rb +120 -0
  173. data/lib/spotted/models/search_retrieve_response.rb +930 -0
  174. data/lib/spotted/models/show_list_episodes_params.rb +50 -0
  175. data/lib/spotted/models/show_list_params.rb +43 -0
  176. data/lib/spotted/models/show_list_response.rb +176 -0
  177. data/lib/spotted/models/show_retrieve_params.rb +33 -0
  178. data/lib/spotted/models/show_retrieve_response.rb +238 -0
  179. data/lib/spotted/models/simplified_artist_object.rb +73 -0
  180. data/lib/spotted/models/simplified_chapter_object.rb +209 -0
  181. data/lib/spotted/models/simplified_episode_object.rb +211 -0
  182. data/lib/spotted/models/simplified_playlist_object.rb +147 -0
  183. data/lib/spotted/models/simplified_track_object.rb +161 -0
  184. data/lib/spotted/models/time_interval_object.rb +32 -0
  185. data/lib/spotted/models/track_list_params.rb +43 -0
  186. data/lib/spotted/models/track_list_response.rb +16 -0
  187. data/lib/spotted/models/track_object.rb +375 -0
  188. data/lib/spotted/models/track_restriction_object.rb +28 -0
  189. data/lib/spotted/models/track_retrieve_params.rb +33 -0
  190. data/lib/spotted/models/user_retrieve_profile_params.rb +14 -0
  191. data/lib/spotted/models/user_retrieve_profile_response.rb +90 -0
  192. data/lib/spotted/models/users/playlist_create_params.rb +65 -0
  193. data/lib/spotted/models/users/playlist_create_response.rb +219 -0
  194. data/lib/spotted/models/users/playlist_list_params.rb +36 -0
  195. data/lib/spotted/models.rb +168 -0
  196. data/lib/spotted/request_options.rb +77 -0
  197. data/lib/spotted/resources/albums.rb +102 -0
  198. data/lib/spotted/resources/artists.rb +150 -0
  199. data/lib/spotted/resources/audio_analysis.rb +41 -0
  200. data/lib/spotted/resources/audio_features.rb +67 -0
  201. data/lib/spotted/resources/audiobooks.rb +105 -0
  202. data/lib/spotted/resources/browse/categories.rb +105 -0
  203. data/lib/spotted/resources/browse.rb +78 -0
  204. data/lib/spotted/resources/chapters.rb +72 -0
  205. data/lib/spotted/resources/episodes.rb +69 -0
  206. data/lib/spotted/resources/markets.rb +32 -0
  207. data/lib/spotted/resources/me/albums.rb +127 -0
  208. data/lib/spotted/resources/me/audiobooks.rb +121 -0
  209. data/lib/spotted/resources/me/episodes.rb +138 -0
  210. data/lib/spotted/resources/me/following.rb +133 -0
  211. data/lib/spotted/resources/me/player/queue.rb +65 -0
  212. data/lib/spotted/resources/me/player.rb +382 -0
  213. data/lib/spotted/resources/me/playlists.rb +44 -0
  214. data/lib/spotted/resources/me/shows.rb +127 -0
  215. data/lib/spotted/resources/me/top.rb +76 -0
  216. data/lib/spotted/resources/me/tracks.rb +121 -0
  217. data/lib/spotted/resources/me.rb +69 -0
  218. data/lib/spotted/resources/playlists/followers.rb +93 -0
  219. data/lib/spotted/resources/playlists/images.rb +67 -0
  220. data/lib/spotted/resources/playlists/tracks.rb +157 -0
  221. data/lib/spotted/resources/playlists.rb +91 -0
  222. data/lib/spotted/resources/recommendations.rb +160 -0
  223. data/lib/spotted/resources/search.rb +51 -0
  224. data/lib/spotted/resources/shows.rb +102 -0
  225. data/lib/spotted/resources/tracks.rb +69 -0
  226. data/lib/spotted/resources/users/playlists.rb +82 -0
  227. data/lib/spotted/resources/users.rb +41 -0
  228. data/lib/spotted/version.rb +5 -0
  229. data/lib/spotted.rb +257 -0
  230. data/manifest.yaml +15 -0
  231. data/rbi/spotted/client.rbi +104 -0
  232. data/rbi/spotted/errors.rbi +205 -0
  233. data/rbi/spotted/file_part.rbi +37 -0
  234. data/rbi/spotted/internal/cursor_url_page.rbi +22 -0
  235. data/rbi/spotted/internal/oauth2.rbi +34 -0
  236. data/rbi/spotted/internal/transport/base_client.rbi +292 -0
  237. data/rbi/spotted/internal/transport/pooled_net_requester.rbi +79 -0
  238. data/rbi/spotted/internal/type/array_of.rbi +104 -0
  239. data/rbi/spotted/internal/type/base_model.rbi +302 -0
  240. data/rbi/spotted/internal/type/base_page.rbi +42 -0
  241. data/rbi/spotted/internal/type/boolean.rbi +58 -0
  242. data/rbi/spotted/internal/type/converter.rbi +216 -0
  243. data/rbi/spotted/internal/type/enum.rbi +82 -0
  244. data/rbi/spotted/internal/type/file_input.rbi +59 -0
  245. data/rbi/spotted/internal/type/hash_of.rbi +104 -0
  246. data/rbi/spotted/internal/type/request_parameters.rbi +29 -0
  247. data/rbi/spotted/internal/type/union.rbi +128 -0
  248. data/rbi/spotted/internal/type/unknown.rbi +58 -0
  249. data/rbi/spotted/internal/util.rbi +484 -0
  250. data/rbi/spotted/internal.rbi +16 -0
  251. data/rbi/spotted/models/album_list_params.rbi +74 -0
  252. data/rbi/spotted/models/album_list_response.rbi +479 -0
  253. data/rbi/spotted/models/album_list_tracks_params.rbi +86 -0
  254. data/rbi/spotted/models/album_restriction_object.rbi +82 -0
  255. data/rbi/spotted/models/album_retrieve_params.rbi +59 -0
  256. data/rbi/spotted/models/album_retrieve_response.rbi +439 -0
  257. data/rbi/spotted/models/artist_list_albums_params.rbi +103 -0
  258. data/rbi/spotted/models/artist_list_albums_response.rbi +338 -0
  259. data/rbi/spotted/models/artist_list_params.rbi +44 -0
  260. data/rbi/spotted/models/artist_list_related_artists_params.rbi +30 -0
  261. data/rbi/spotted/models/artist_list_related_artists_response.rbi +30 -0
  262. data/rbi/spotted/models/artist_list_response.rbi +27 -0
  263. data/rbi/spotted/models/artist_list_top_tracks_params.rbi +59 -0
  264. data/rbi/spotted/models/artist_list_top_tracks_response.rbi +30 -0
  265. data/rbi/spotted/models/artist_object.rbi +166 -0
  266. data/rbi/spotted/models/artist_retrieve_params.rbi +27 -0
  267. data/rbi/spotted/models/audio_analysis_retrieve_params.rbi +30 -0
  268. data/rbi/spotted/models/audio_analysis_retrieve_response.rbi +1080 -0
  269. data/rbi/spotted/models/audio_feature_list_params.rbi +44 -0
  270. data/rbi/spotted/models/audio_feature_list_response.rbi +382 -0
  271. data/rbi/spotted/models/audio_feature_retrieve_params.rbi +27 -0
  272. data/rbi/spotted/models/audio_feature_retrieve_response.rbi +338 -0
  273. data/rbi/spotted/models/audiobook_list_chapters_params.rbi +89 -0
  274. data/rbi/spotted/models/audiobook_list_params.rbi +74 -0
  275. data/rbi/spotted/models/audiobook_list_response.rbi +377 -0
  276. data/rbi/spotted/models/audiobook_retrieve_params.rbi +59 -0
  277. data/rbi/spotted/models/audiobook_retrieve_response.rbi +332 -0
  278. data/rbi/spotted/models/author_object.rbi +30 -0
  279. data/rbi/spotted/models/browse/category_get_playlists_params.rbi +64 -0
  280. data/rbi/spotted/models/browse/category_get_playlists_response.rbi +51 -0
  281. data/rbi/spotted/models/browse/category_list_params.rbi +89 -0
  282. data/rbi/spotted/models/browse/category_list_response.rbi +204 -0
  283. data/rbi/spotted/models/browse/category_retrieve_params.rbi +62 -0
  284. data/rbi/spotted/models/browse/category_retrieve_response.rbi +68 -0
  285. data/rbi/spotted/models/browse_get_featured_playlists_params.rbi +87 -0
  286. data/rbi/spotted/models/browse_get_featured_playlists_response.rbi +49 -0
  287. data/rbi/spotted/models/browse_get_new_releases_params.rbi +59 -0
  288. data/rbi/spotted/models/browse_get_new_releases_response.rbi +423 -0
  289. data/rbi/spotted/models/chapter_list_params.rbi +74 -0
  290. data/rbi/spotted/models/chapter_list_response.rbi +588 -0
  291. data/rbi/spotted/models/chapter_restriction_object.rbi +50 -0
  292. data/rbi/spotted/models/chapter_retrieve_params.rbi +59 -0
  293. data/rbi/spotted/models/chapter_retrieve_response.rbi +551 -0
  294. data/rbi/spotted/models/copyright_object.rbi +41 -0
  295. data/rbi/spotted/models/episode_list_params.rbi +74 -0
  296. data/rbi/spotted/models/episode_list_response.rbi +30 -0
  297. data/rbi/spotted/models/episode_object.rbi +485 -0
  298. data/rbi/spotted/models/episode_restriction_object.rbi +48 -0
  299. data/rbi/spotted/models/episode_retrieve_params.rbi +59 -0
  300. data/rbi/spotted/models/external_id_object.rbi +50 -0
  301. data/rbi/spotted/models/external_url_object.rbi +32 -0
  302. data/rbi/spotted/models/followers_object.rbi +42 -0
  303. data/rbi/spotted/models/image_object.rbi +47 -0
  304. data/rbi/spotted/models/linked_track_object.rbi +88 -0
  305. data/rbi/spotted/models/market_list_params.rbi +27 -0
  306. data/rbi/spotted/models/market_list_response.rbi +26 -0
  307. data/rbi/spotted/models/me/album_check_params.rbi +46 -0
  308. data/rbi/spotted/models/me/album_check_response.rbi +13 -0
  309. data/rbi/spotted/models/me/album_list_params.rbi +88 -0
  310. data/rbi/spotted/models/me/album_list_response.rbi +529 -0
  311. data/rbi/spotted/models/me/album_remove_params.rbi +56 -0
  312. data/rbi/spotted/models/me/album_save_params.rbi +56 -0
  313. data/rbi/spotted/models/me/audiobook_check_params.rbi +46 -0
  314. data/rbi/spotted/models/me/audiobook_check_response.rbi +13 -0
  315. data/rbi/spotted/models/me/audiobook_list_params.rbi +61 -0
  316. data/rbi/spotted/models/me/audiobook_list_response.rbi +414 -0
  317. data/rbi/spotted/models/me/audiobook_remove_params.rbi +49 -0
  318. data/rbi/spotted/models/me/audiobook_save_params.rbi +46 -0
  319. data/rbi/spotted/models/me/context_object.rbi +77 -0
  320. data/rbi/spotted/models/me/device_object.rbi +123 -0
  321. data/rbi/spotted/models/me/episode_check_params.rbi +46 -0
  322. data/rbi/spotted/models/me/episode_check_response.rbi +13 -0
  323. data/rbi/spotted/models/me/episode_list_params.rbi +88 -0
  324. data/rbi/spotted/models/me/episode_list_response.rbi +55 -0
  325. data/rbi/spotted/models/me/episode_remove_params.rbi +56 -0
  326. data/rbi/spotted/models/me/episode_save_params.rbi +53 -0
  327. data/rbi/spotted/models/me/following_check_params.rbi +86 -0
  328. data/rbi/spotted/models/me/following_check_response.rbi +13 -0
  329. data/rbi/spotted/models/me/following_follow_params.rbi +91 -0
  330. data/rbi/spotted/models/me/following_list_params.rbi +89 -0
  331. data/rbi/spotted/models/me/following_list_response.rbi +187 -0
  332. data/rbi/spotted/models/me/following_unfollow_params.rbi +97 -0
  333. data/rbi/spotted/models/me/player/queue_add_params.rbi +63 -0
  334. data/rbi/spotted/models/me/player/queue_get_params.rbi +34 -0
  335. data/rbi/spotted/models/me/player/queue_get_response.rbi +143 -0
  336. data/rbi/spotted/models/me/player_get_currently_playing_params.rbi +88 -0
  337. data/rbi/spotted/models/me/player_get_currently_playing_response.rbi +304 -0
  338. data/rbi/spotted/models/me/player_get_devices_params.rbi +32 -0
  339. data/rbi/spotted/models/me/player_get_devices_response.rbi +34 -0
  340. data/rbi/spotted/models/me/player_get_state_params.rbi +85 -0
  341. data/rbi/spotted/models/me/player_get_state_response.rbi +335 -0
  342. data/rbi/spotted/models/me/player_list_recently_played_params.rbi +77 -0
  343. data/rbi/spotted/models/me/player_list_recently_played_response.rbi +67 -0
  344. data/rbi/spotted/models/me/player_pause_playback_params.rbi +50 -0
  345. data/rbi/spotted/models/me/player_seek_to_position_params.rbi +65 -0
  346. data/rbi/spotted/models/me/player_set_repeat_mode_params.rbi +65 -0
  347. data/rbi/spotted/models/me/player_set_volume_params.rbi +61 -0
  348. data/rbi/spotted/models/me/player_skip_next_params.rbi +47 -0
  349. data/rbi/spotted/models/me/player_skip_previous_params.rbi +50 -0
  350. data/rbi/spotted/models/me/player_start_playback_params.rbi +113 -0
  351. data/rbi/spotted/models/me/player_toggle_shuffle_params.rbi +63 -0
  352. data/rbi/spotted/models/me/player_transfer_params.rbi +66 -0
  353. data/rbi/spotted/models/me/playlist_list_params.rbi +61 -0
  354. data/rbi/spotted/models/me/show_check_params.rbi +46 -0
  355. data/rbi/spotted/models/me/show_check_response.rbi +13 -0
  356. data/rbi/spotted/models/me/show_list_params.rbi +61 -0
  357. data/rbi/spotted/models/me/show_list_response.rbi +277 -0
  358. data/rbi/spotted/models/me/show_remove_params.rbi +83 -0
  359. data/rbi/spotted/models/me/show_save_params.rbi +56 -0
  360. data/rbi/spotted/models/me/top_list_top_artists_params.rbi +81 -0
  361. data/rbi/spotted/models/me/top_list_top_tracks_params.rbi +81 -0
  362. data/rbi/spotted/models/me/track_check_params.rbi +46 -0
  363. data/rbi/spotted/models/me/track_check_response.rbi +13 -0
  364. data/rbi/spotted/models/me/track_list_params.rbi +88 -0
  365. data/rbi/spotted/models/me/track_list_response.rbi +58 -0
  366. data/rbi/spotted/models/me/track_remove_params.rbi +56 -0
  367. data/rbi/spotted/models/me/track_save_params.rbi +130 -0
  368. data/rbi/spotted/models/me_retrieve_params.rbi +27 -0
  369. data/rbi/spotted/models/me_retrieve_response.rbi +257 -0
  370. data/rbi/spotted/models/narrator_object.rbi +30 -0
  371. data/rbi/spotted/models/paging_playlist_object.rbi +83 -0
  372. data/rbi/spotted/models/playlist_retrieve_params.rbi +112 -0
  373. data/rbi/spotted/models/playlist_retrieve_response.rbi +327 -0
  374. data/rbi/spotted/models/playlist_track_object.rbi +101 -0
  375. data/rbi/spotted/models/playlist_tracks_ref_object.rbi +41 -0
  376. data/rbi/spotted/models/playlist_update_params.rbi +93 -0
  377. data/rbi/spotted/models/playlist_user_object.rbi +109 -0
  378. data/rbi/spotted/models/playlists/follower_check_params.rbi +52 -0
  379. data/rbi/spotted/models/playlists/follower_check_response.rbi +13 -0
  380. data/rbi/spotted/models/playlists/follower_follow_params.rbi +54 -0
  381. data/rbi/spotted/models/playlists/follower_unfollow_params.rbi +32 -0
  382. data/rbi/spotted/models/playlists/image_list_params.rbi +32 -0
  383. data/rbi/spotted/models/playlists/image_list_response.rbi +13 -0
  384. data/rbi/spotted/models/playlists/image_update_params.rbi +45 -0
  385. data/rbi/spotted/models/playlists/track_add_params.rbi +82 -0
  386. data/rbi/spotted/models/playlists/track_add_response.rbi +31 -0
  387. data/rbi/spotted/models/playlists/track_list_params.rbi +141 -0
  388. data/rbi/spotted/models/playlists/track_remove_params.rbi +100 -0
  389. data/rbi/spotted/models/playlists/track_remove_response.rbi +31 -0
  390. data/rbi/spotted/models/playlists/track_update_params.rbi +111 -0
  391. data/rbi/spotted/models/playlists/track_update_response.rbi +31 -0
  392. data/rbi/spotted/models/recommendation_get_params.rbi +864 -0
  393. data/rbi/spotted/models/recommendation_get_response.rbi +152 -0
  394. data/rbi/spotted/models/recommendation_list_available_genre_seeds_params.rbi +30 -0
  395. data/rbi/spotted/models/recommendation_list_available_genre_seeds_response.rbi +26 -0
  396. data/rbi/spotted/models/resume_point_object.rbi +47 -0
  397. data/rbi/spotted/models/search_retrieve_params.rbi +218 -0
  398. data/rbi/spotted/models/search_retrieve_response.rbi +1381 -0
  399. data/rbi/spotted/models/show_list_episodes_params.rbi +86 -0
  400. data/rbi/spotted/models/show_list_params.rbi +74 -0
  401. data/rbi/spotted/models/show_list_response.rbi +238 -0
  402. data/rbi/spotted/models/show_retrieve_params.rbi +59 -0
  403. data/rbi/spotted/models/show_retrieve_response.rbi +305 -0
  404. data/rbi/spotted/models/simplified_artist_object.rbi +121 -0
  405. data/rbi/spotted/models/simplified_chapter_object.rbi +287 -0
  406. data/rbi/spotted/models/simplified_episode_object.rbi +289 -0
  407. data/rbi/spotted/models/simplified_playlist_object.rbi +230 -0
  408. data/rbi/spotted/models/simplified_track_object.rbi +239 -0
  409. data/rbi/spotted/models/time_interval_object.rbi +54 -0
  410. data/rbi/spotted/models/track_list_params.rbi +74 -0
  411. data/rbi/spotted/models/track_list_response.rbi +27 -0
  412. data/rbi/spotted/models/track_object.rbi +556 -0
  413. data/rbi/spotted/models/track_restriction_object.rbi +48 -0
  414. data/rbi/spotted/models/track_retrieve_params.rbi +59 -0
  415. data/rbi/spotted/models/user_retrieve_profile_params.rbi +27 -0
  416. data/rbi/spotted/models/user_retrieve_profile_response.rbi +159 -0
  417. data/rbi/spotted/models/users/playlist_create_params.rbi +107 -0
  418. data/rbi/spotted/models/users/playlist_create_response.rbi +336 -0
  419. data/rbi/spotted/models/users/playlist_list_params.rbi +64 -0
  420. data/rbi/spotted/models.rbi +132 -0
  421. data/rbi/spotted/request_options.rbi +57 -0
  422. data/rbi/spotted/resources/albums.rbi +100 -0
  423. data/rbi/spotted/resources/artists.rbi +129 -0
  424. data/rbi/spotted/resources/audio_analysis.rbi +29 -0
  425. data/rbi/spotted/resources/audio_features.rbi +44 -0
  426. data/rbi/spotted/resources/audiobooks.rbi +105 -0
  427. data/rbi/spotted/resources/browse/categories.rbi +91 -0
  428. data/rbi/spotted/resources/browse.rbi +63 -0
  429. data/rbi/spotted/resources/chapters.rbi +69 -0
  430. data/rbi/spotted/resources/episodes.rbi +66 -0
  431. data/rbi/spotted/resources/markets.rbi +21 -0
  432. data/rbi/spotted/resources/me/albums.rbi +101 -0
  433. data/rbi/spotted/resources/me/audiobooks.rbi +86 -0
  434. data/rbi/spotted/resources/me/episodes.rbi +112 -0
  435. data/rbi/spotted/resources/me/following.rbi +99 -0
  436. data/rbi/spotted/resources/me/player/queue.rbi +45 -0
  437. data/rbi/spotted/resources/me/player.rbi +315 -0
  438. data/rbi/spotted/resources/me/playlists.rbi +34 -0
  439. data/rbi/spotted/resources/me/shows.rbi +101 -0
  440. data/rbi/spotted/resources/me/top.rbi +62 -0
  441. data/rbi/spotted/resources/me/tracks.rbi +112 -0
  442. data/rbi/spotted/resources/me.rbi +49 -0
  443. data/rbi/spotted/resources/playlists/followers.rbi +70 -0
  444. data/rbi/spotted/resources/playlists/images.rbi +47 -0
  445. data/rbi/spotted/resources/playlists/tracks.rbi +177 -0
  446. data/rbi/spotted/resources/playlists.rbi +102 -0
  447. data/rbi/spotted/resources/recommendations.rbi +336 -0
  448. data/rbi/spotted/resources/search.rbi +71 -0
  449. data/rbi/spotted/resources/shows.rbi +100 -0
  450. data/rbi/spotted/resources/tracks.rbi +66 -0
  451. data/rbi/spotted/resources/users/playlists.rbi +78 -0
  452. data/rbi/spotted/resources/users.rbi +29 -0
  453. data/rbi/spotted/version.rbi +5 -0
  454. data/sig/spotted/client.rbs +62 -0
  455. data/sig/spotted/errors.rbs +117 -0
  456. data/sig/spotted/file_part.rbs +21 -0
  457. data/sig/spotted/internal/cursor_url_page.rbs +13 -0
  458. data/sig/spotted/internal/oauth2.rbs +19 -0
  459. data/sig/spotted/internal/transport/base_client.rbs +131 -0
  460. data/sig/spotted/internal/transport/pooled_net_requester.rbs +45 -0
  461. data/sig/spotted/internal/type/array_of.rbs +48 -0
  462. data/sig/spotted/internal/type/base_model.rbs +102 -0
  463. data/sig/spotted/internal/type/base_page.rbs +24 -0
  464. data/sig/spotted/internal/type/boolean.rbs +26 -0
  465. data/sig/spotted/internal/type/converter.rbs +79 -0
  466. data/sig/spotted/internal/type/enum.rbs +32 -0
  467. data/sig/spotted/internal/type/file_input.rbs +25 -0
  468. data/sig/spotted/internal/type/hash_of.rbs +48 -0
  469. data/sig/spotted/internal/type/request_parameters.rbs +17 -0
  470. data/sig/spotted/internal/type/union.rbs +52 -0
  471. data/sig/spotted/internal/type/unknown.rbs +26 -0
  472. data/sig/spotted/internal/util.rbs +185 -0
  473. data/sig/spotted/internal.rbs +9 -0
  474. data/sig/spotted/models/album_list_params.rbs +30 -0
  475. data/sig/spotted/models/album_list_response.rbs +237 -0
  476. data/sig/spotted/models/album_list_tracks_params.rbs +38 -0
  477. data/sig/spotted/models/album_restriction_object.rbs +34 -0
  478. data/sig/spotted/models/album_retrieve_params.rbs +25 -0
  479. data/sig/spotted/models/album_retrieve_response.rbs +222 -0
  480. data/sig/spotted/models/artist_list_albums_params.rbs +49 -0
  481. data/sig/spotted/models/artist_list_albums_response.rbs +141 -0
  482. data/sig/spotted/models/artist_list_params.rbs +20 -0
  483. data/sig/spotted/models/artist_list_related_artists_params.rbs +15 -0
  484. data/sig/spotted/models/artist_list_related_artists_response.rbs +14 -0
  485. data/sig/spotted/models/artist_list_response.rbs +13 -0
  486. data/sig/spotted/models/artist_list_top_tracks_params.rbs +25 -0
  487. data/sig/spotted/models/artist_list_top_tracks_response.rbs +14 -0
  488. data/sig/spotted/models/artist_object.rbs +101 -0
  489. data/sig/spotted/models/artist_retrieve_params.rbs +15 -0
  490. data/sig/spotted/models/audio_analysis_retrieve_params.rbs +15 -0
  491. data/sig/spotted/models/audio_analysis_retrieve_response.rbs +518 -0
  492. data/sig/spotted/models/audio_feature_list_params.rbs +20 -0
  493. data/sig/spotted/models/audio_feature_list_response.rbs +170 -0
  494. data/sig/spotted/models/audio_feature_retrieve_params.rbs +15 -0
  495. data/sig/spotted/models/audio_feature_retrieve_response.rbs +153 -0
  496. data/sig/spotted/models/audiobook_list_chapters_params.rbs +38 -0
  497. data/sig/spotted/models/audiobook_list_params.rbs +30 -0
  498. data/sig/spotted/models/audiobook_list_response.rbs +189 -0
  499. data/sig/spotted/models/audiobook_retrieve_params.rbs +25 -0
  500. data/sig/spotted/models/audiobook_retrieve_response.rbs +174 -0
  501. data/sig/spotted/models/author_object.rbs +15 -0
  502. data/sig/spotted/models/browse/category_get_playlists_params.rbs +34 -0
  503. data/sig/spotted/models/browse/category_get_playlists_response.rbs +30 -0
  504. data/sig/spotted/models/browse/category_list_params.rbs +40 -0
  505. data/sig/spotted/models/browse/category_list_response.rbs +101 -0
  506. data/sig/spotted/models/browse/category_retrieve_params.rbs +27 -0
  507. data/sig/spotted/models/browse/category_retrieve_response.rbs +37 -0
  508. data/sig/spotted/models/browse_get_featured_playlists_params.rbs +38 -0
  509. data/sig/spotted/models/browse_get_featured_playlists_response.rbs +28 -0
  510. data/sig/spotted/models/browse_get_new_releases_params.rbs +32 -0
  511. data/sig/spotted/models/browse_get_new_releases_response.rbs +185 -0
  512. data/sig/spotted/models/chapter_list_params.rbs +30 -0
  513. data/sig/spotted/models/chapter_list_response.rbs +286 -0
  514. data/sig/spotted/models/chapter_restriction_object.rbs +15 -0
  515. data/sig/spotted/models/chapter_retrieve_params.rbs +25 -0
  516. data/sig/spotted/models/chapter_retrieve_response.rbs +271 -0
  517. data/sig/spotted/models/copyright_object.rbs +19 -0
  518. data/sig/spotted/models/episode_list_params.rbs +30 -0
  519. data/sig/spotted/models/episode_list_response.rbs +13 -0
  520. data/sig/spotted/models/episode_object.rbs +259 -0
  521. data/sig/spotted/models/episode_restriction_object.rbs +15 -0
  522. data/sig/spotted/models/episode_retrieve_params.rbs +25 -0
  523. data/sig/spotted/models/external_id_object.rbs +23 -0
  524. data/sig/spotted/models/external_url_object.rbs +15 -0
  525. data/sig/spotted/models/followers_object.rbs +17 -0
  526. data/sig/spotted/models/image_object.rbs +17 -0
  527. data/sig/spotted/models/linked_track_object.rbs +52 -0
  528. data/sig/spotted/models/market_list_params.rbs +14 -0
  529. data/sig/spotted/models/market_list_response.rbs +15 -0
  530. data/sig/spotted/models/me/album_check_params.rbs +25 -0
  531. data/sig/spotted/models/me/album_check_response.rbs +9 -0
  532. data/sig/spotted/models/me/album_list_params.rbs +40 -0
  533. data/sig/spotted/models/me/album_list_response.rbs +249 -0
  534. data/sig/spotted/models/me/album_remove_params.rbs +28 -0
  535. data/sig/spotted/models/me/album_save_params.rbs +28 -0
  536. data/sig/spotted/models/me/audiobook_check_params.rbs +25 -0
  537. data/sig/spotted/models/me/audiobook_check_response.rbs +9 -0
  538. data/sig/spotted/models/me/audiobook_list_params.rbs +34 -0
  539. data/sig/spotted/models/me/audiobook_list_response.rbs +204 -0
  540. data/sig/spotted/models/me/audiobook_remove_params.rbs +25 -0
  541. data/sig/spotted/models/me/audiobook_save_params.rbs +25 -0
  542. data/sig/spotted/models/me/context_object.rbs +47 -0
  543. data/sig/spotted/models/me/device_object.rbs +69 -0
  544. data/sig/spotted/models/me/episode_check_params.rbs +25 -0
  545. data/sig/spotted/models/me/episode_check_response.rbs +9 -0
  546. data/sig/spotted/models/me/episode_list_params.rbs +40 -0
  547. data/sig/spotted/models/me/episode_list_response.rbs +25 -0
  548. data/sig/spotted/models/me/episode_remove_params.rbs +28 -0
  549. data/sig/spotted/models/me/episode_save_params.rbs +26 -0
  550. data/sig/spotted/models/me/following_check_params.rbs +41 -0
  551. data/sig/spotted/models/me/following_check_response.rbs +9 -0
  552. data/sig/spotted/models/me/following_follow_params.rbs +44 -0
  553. data/sig/spotted/models/me/following_list_params.rbs +52 -0
  554. data/sig/spotted/models/me/following_list_response.rbs +94 -0
  555. data/sig/spotted/models/me/following_unfollow_params.rbs +46 -0
  556. data/sig/spotted/models/me/player/queue_add_params.rbs +34 -0
  557. data/sig/spotted/models/me/player/queue_get_params.rbs +19 -0
  558. data/sig/spotted/models/me/player/queue_get_response.rbs +53 -0
  559. data/sig/spotted/models/me/player_get_currently_playing_params.rbs +34 -0
  560. data/sig/spotted/models/me/player_get_currently_playing_response.rbs +160 -0
  561. data/sig/spotted/models/me/player_get_devices_params.rbs +17 -0
  562. data/sig/spotted/models/me/player_get_devices_response.rbs +16 -0
  563. data/sig/spotted/models/me/player_get_state_params.rbs +34 -0
  564. data/sig/spotted/models/me/player_get_state_response.rbs +181 -0
  565. data/sig/spotted/models/me/player_list_recently_played_params.rbs +40 -0
  566. data/sig/spotted/models/me/player_list_recently_played_response.rbs +38 -0
  567. data/sig/spotted/models/me/player_pause_playback_params.rbs +27 -0
  568. data/sig/spotted/models/me/player_seek_to_position_params.rbs +32 -0
  569. data/sig/spotted/models/me/player_set_repeat_mode_params.rbs +32 -0
  570. data/sig/spotted/models/me/player_set_volume_params.rbs +32 -0
  571. data/sig/spotted/models/me/player_skip_next_params.rbs +27 -0
  572. data/sig/spotted/models/me/player_skip_previous_params.rbs +27 -0
  573. data/sig/spotted/models/me/player_start_playback_params.rbs +58 -0
  574. data/sig/spotted/models/me/player_toggle_shuffle_params.rbs +32 -0
  575. data/sig/spotted/models/me/player_transfer_params.rbs +32 -0
  576. data/sig/spotted/models/me/playlist_list_params.rbs +34 -0
  577. data/sig/spotted/models/me/show_check_params.rbs +25 -0
  578. data/sig/spotted/models/me/show_check_response.rbs +9 -0
  579. data/sig/spotted/models/me/show_list_params.rbs +34 -0
  580. data/sig/spotted/models/me/show_list_response.rbs +137 -0
  581. data/sig/spotted/models/me/show_remove_params.rbs +34 -0
  582. data/sig/spotted/models/me/show_save_params.rbs +28 -0
  583. data/sig/spotted/models/me/top_list_top_artists_params.rbs +40 -0
  584. data/sig/spotted/models/me/top_list_top_tracks_params.rbs +40 -0
  585. data/sig/spotted/models/me/track_check_params.rbs +25 -0
  586. data/sig/spotted/models/me/track_check_response.rbs +9 -0
  587. data/sig/spotted/models/me/track_list_params.rbs +40 -0
  588. data/sig/spotted/models/me/track_list_response.rbs +21 -0
  589. data/sig/spotted/models/me/track_remove_params.rbs +28 -0
  590. data/sig/spotted/models/me/track_save_params.rbs +49 -0
  591. data/sig/spotted/models/me_retrieve_params.rbs +14 -0
  592. data/sig/spotted/models/me_retrieve_response.rbs +121 -0
  593. data/sig/spotted/models/narrator_object.rbs +15 -0
  594. data/sig/spotted/models/paging_playlist_object.rbs +50 -0
  595. data/sig/spotted/models/playlist_retrieve_params.rbs +38 -0
  596. data/sig/spotted/models/playlist_retrieve_response.rbs +178 -0
  597. data/sig/spotted/models/playlist_track_object.rbs +55 -0
  598. data/sig/spotted/models/playlist_tracks_ref_object.rbs +19 -0
  599. data/sig/spotted/models/playlist_update_params.rbs +44 -0
  600. data/sig/spotted/models/playlist_user_object.rbs +64 -0
  601. data/sig/spotted/models/playlists/follower_check_params.rbs +27 -0
  602. data/sig/spotted/models/playlists/follower_check_response.rbs +9 -0
  603. data/sig/spotted/models/playlists/follower_follow_params.rbs +27 -0
  604. data/sig/spotted/models/playlists/follower_unfollow_params.rbs +17 -0
  605. data/sig/spotted/models/playlists/image_list_params.rbs +17 -0
  606. data/sig/spotted/models/playlists/image_list_response.rbs +9 -0
  607. data/sig/spotted/models/playlists/image_update_params.rbs +25 -0
  608. data/sig/spotted/models/playlists/track_add_params.rbs +34 -0
  609. data/sig/spotted/models/playlists/track_add_response.rbs +17 -0
  610. data/sig/spotted/models/playlists/track_list_params.rbs +58 -0
  611. data/sig/spotted/models/playlists/track_remove_params.rbs +47 -0
  612. data/sig/spotted/models/playlists/track_remove_response.rbs +17 -0
  613. data/sig/spotted/models/playlists/track_update_params.rbs +58 -0
  614. data/sig/spotted/models/playlists/track_update_response.rbs +17 -0
  615. data/sig/spotted/models/recommendation_get_params.rbs +350 -0
  616. data/sig/spotted/models/recommendation_get_response.rbs +79 -0
  617. data/sig/spotted/models/recommendation_list_available_genre_seeds_params.rbs +15 -0
  618. data/sig/spotted/models/recommendation_list_available_genre_seeds_response.rbs +14 -0
  619. data/sig/spotted/models/resume_point_object.rbs +23 -0
  620. data/sig/spotted/models/search_retrieve_params.rbs +88 -0
  621. data/sig/spotted/models/search_retrieve_response.rbs +706 -0
  622. data/sig/spotted/models/show_list_episodes_params.rbs +38 -0
  623. data/sig/spotted/models/show_list_params.rbs +30 -0
  624. data/sig/spotted/models/show_list_response.rbs +125 -0
  625. data/sig/spotted/models/show_retrieve_params.rbs +25 -0
  626. data/sig/spotted/models/show_retrieve_response.rbs +162 -0
  627. data/sig/spotted/models/simplified_artist_object.rbs +71 -0
  628. data/sig/spotted/models/simplified_chapter_object.rbs +147 -0
  629. data/sig/spotted/models/simplified_episode_object.rbs +147 -0
  630. data/sig/spotted/models/simplified_playlist_object.rbs +126 -0
  631. data/sig/spotted/models/simplified_track_object.rbs +140 -0
  632. data/sig/spotted/models/time_interval_object.rbs +28 -0
  633. data/sig/spotted/models/track_list_params.rbs +30 -0
  634. data/sig/spotted/models/track_list_response.rbs +13 -0
  635. data/sig/spotted/models/track_object.rbs +295 -0
  636. data/sig/spotted/models/track_restriction_object.rbs +15 -0
  637. data/sig/spotted/models/track_retrieve_params.rbs +25 -0
  638. data/sig/spotted/models/user_retrieve_profile_params.rbs +15 -0
  639. data/sig/spotted/models/user_retrieve_profile_response.rbs +85 -0
  640. data/sig/spotted/models/users/playlist_create_params.rbs +44 -0
  641. data/sig/spotted/models/users/playlist_create_response.rbs +180 -0
  642. data/sig/spotted/models/users/playlist_list_params.rbs +34 -0
  643. data/sig/spotted/models.rbs +127 -0
  644. data/sig/spotted/request_options.rbs +34 -0
  645. data/sig/spotted/resources/albums.rbs +27 -0
  646. data/sig/spotted/resources/artists.rbs +37 -0
  647. data/sig/spotted/resources/audio_analysis.rbs +12 -0
  648. data/sig/spotted/resources/audio_features.rbs +17 -0
  649. data/sig/spotted/resources/audiobooks.rbs +27 -0
  650. data/sig/spotted/resources/browse/categories.rbs +29 -0
  651. data/sig/spotted/resources/browse.rbs +22 -0
  652. data/sig/spotted/resources/chapters.rbs +19 -0
  653. data/sig/spotted/resources/episodes.rbs +19 -0
  654. data/sig/spotted/resources/markets.rbs +11 -0
  655. data/sig/spotted/resources/me/albums.rbs +31 -0
  656. data/sig/spotted/resources/me/audiobooks.rbs +27 -0
  657. data/sig/spotted/resources/me/episodes.rbs +31 -0
  658. data/sig/spotted/resources/me/following.rbs +34 -0
  659. data/sig/spotted/resources/me/player/queue.rbs +21 -0
  660. data/sig/spotted/resources/me/player.rbs +88 -0
  661. data/sig/spotted/resources/me/playlists.rbs +15 -0
  662. data/sig/spotted/resources/me/shows.rbs +31 -0
  663. data/sig/spotted/resources/me/top.rbs +23 -0
  664. data/sig/spotted/resources/me/tracks.rbs +32 -0
  665. data/sig/spotted/resources/me.rbs +29 -0
  666. data/sig/spotted/resources/playlists/followers.rbs +26 -0
  667. data/sig/spotted/resources/playlists/images.rbs +20 -0
  668. data/sig/spotted/resources/playlists/tracks.rbs +43 -0
  669. data/sig/spotted/resources/playlists.rbs +30 -0
  670. data/sig/spotted/resources/recommendations.rbs +62 -0
  671. data/sig/spotted/resources/search.rbs +17 -0
  672. data/sig/spotted/resources/shows.rbs +27 -0
  673. data/sig/spotted/resources/tracks.rbs +19 -0
  674. data/sig/spotted/resources/users/playlists.rbs +25 -0
  675. data/sig/spotted/resources/users.rbs +14 -0
  676. data/sig/spotted/version.rbs +3 -0
  677. metadata +734 -0
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class PagingPlaylistObject < Spotted::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Spotted::PagingPlaylistObject, Spotted::Internal::AnyHash)
9
+ end
10
+
11
+ # A link to the Web API endpoint returning the full result of the request
12
+ sig { returns(String) }
13
+ attr_accessor :href
14
+
15
+ sig { returns(T::Array[Spotted::SimplifiedPlaylistObject]) }
16
+ attr_accessor :items
17
+
18
+ # The maximum number of items in the response (as set in the query or by default).
19
+ sig { returns(Integer) }
20
+ attr_accessor :limit
21
+
22
+ # URL to the next page of items. ( `null` if none)
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :next_
25
+
26
+ # The offset of the items returned (as set in the query or by default)
27
+ sig { returns(Integer) }
28
+ attr_accessor :offset
29
+
30
+ # URL to the previous page of items. ( `null` if none)
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :previous
33
+
34
+ # The total number of items available to return.
35
+ sig { returns(Integer) }
36
+ attr_accessor :total
37
+
38
+ sig do
39
+ params(
40
+ href: String,
41
+ items: T::Array[Spotted::SimplifiedPlaylistObject::OrHash],
42
+ limit: Integer,
43
+ next_: T.nilable(String),
44
+ offset: Integer,
45
+ previous: T.nilable(String),
46
+ total: Integer
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # A link to the Web API endpoint returning the full result of the request
51
+ href:,
52
+ items:,
53
+ # The maximum number of items in the response (as set in the query or by default).
54
+ limit:,
55
+ # URL to the next page of items. ( `null` if none)
56
+ next_:,
57
+ # The offset of the items returned (as set in the query or by default)
58
+ offset:,
59
+ # URL to the previous page of items. ( `null` if none)
60
+ previous:,
61
+ # The total number of items available to return.
62
+ total:
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ href: String,
70
+ items: T::Array[Spotted::SimplifiedPlaylistObject],
71
+ limit: Integer,
72
+ next_: T.nilable(String),
73
+ offset: Integer,
74
+ previous: T.nilable(String),
75
+ total: Integer
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class PlaylistRetrieveParams < Spotted::Internal::Type::BaseModel
6
+ extend Spotted::Internal::Type::RequestParameters::Converter
7
+ include Spotted::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Spotted::PlaylistRetrieveParams, Spotted::Internal::AnyHash)
12
+ end
13
+
14
+ # A comma-separated list of item types that your client supports besides the
15
+ # default `track` type. Valid types are: `track` and `episode`.<br/> _**Note**:
16
+ # This parameter was introduced to allow existing clients to maintain their
17
+ # current behaviour and might be deprecated in the future._<br/> In addition to
18
+ # providing this parameter, make sure that your client properly handles cases of
19
+ # new types in the future by checking against the `type` field of each object.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :additional_types
22
+
23
+ sig { params(additional_types: String).void }
24
+ attr_writer :additional_types
25
+
26
+ # Filters for the query: a comma-separated list of the fields to return. If
27
+ # omitted, all fields are returned. For example, to get just the playlist''s
28
+ # description and URI: `fields=description,uri`. A dot separator can be used to
29
+ # specify non-reoccurring fields, while parentheses can be used to specify
30
+ # reoccurring fields within objects. For example, to get just the added date and
31
+ # user ID of the adder: `fields=tracks.items(added_at,added_by.id)`. Use multiple
32
+ # parentheses to drill down into nested objects, for example:
33
+ # `fields=tracks.items(track(name,href,album(name,href)))`. Fields can be excluded
34
+ # by prefixing them with an exclamation mark, for example:
35
+ # `fields=tracks.items(track(name,href,album(!name,href)))`
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :fields
38
+
39
+ sig { params(fields: String).void }
40
+ attr_writer :fields
41
+
42
+ # An
43
+ # [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
44
+ # If a country code is specified, only content that is available in that market
45
+ # will be returned.<br/> If a valid user access token is specified in the request
46
+ # header, the country associated with the user account will take priority over
47
+ # this parameter.<br/> _**Note**: If neither market or user country are provided,
48
+ # the content is considered unavailable for the client._<br/> Users can view the
49
+ # country that is associated with their account in the
50
+ # [account settings](https://www.spotify.com/account/overview/).
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :market
53
+
54
+ sig { params(market: String).void }
55
+ attr_writer :market
56
+
57
+ sig do
58
+ params(
59
+ additional_types: String,
60
+ fields: String,
61
+ market: String,
62
+ request_options: Spotted::RequestOptions::OrHash
63
+ ).returns(T.attached_class)
64
+ end
65
+ def self.new(
66
+ # A comma-separated list of item types that your client supports besides the
67
+ # default `track` type. Valid types are: `track` and `episode`.<br/> _**Note**:
68
+ # This parameter was introduced to allow existing clients to maintain their
69
+ # current behaviour and might be deprecated in the future._<br/> In addition to
70
+ # providing this parameter, make sure that your client properly handles cases of
71
+ # new types in the future by checking against the `type` field of each object.
72
+ additional_types: nil,
73
+ # Filters for the query: a comma-separated list of the fields to return. If
74
+ # omitted, all fields are returned. For example, to get just the playlist''s
75
+ # description and URI: `fields=description,uri`. A dot separator can be used to
76
+ # specify non-reoccurring fields, while parentheses can be used to specify
77
+ # reoccurring fields within objects. For example, to get just the added date and
78
+ # user ID of the adder: `fields=tracks.items(added_at,added_by.id)`. Use multiple
79
+ # parentheses to drill down into nested objects, for example:
80
+ # `fields=tracks.items(track(name,href,album(name,href)))`. Fields can be excluded
81
+ # by prefixing them with an exclamation mark, for example:
82
+ # `fields=tracks.items(track(name,href,album(!name,href)))`
83
+ fields: nil,
84
+ # An
85
+ # [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
86
+ # If a country code is specified, only content that is available in that market
87
+ # will be returned.<br/> If a valid user access token is specified in the request
88
+ # header, the country associated with the user account will take priority over
89
+ # this parameter.<br/> _**Note**: If neither market or user country are provided,
90
+ # the content is considered unavailable for the client._<br/> Users can view the
91
+ # country that is associated with their account in the
92
+ # [account settings](https://www.spotify.com/account/overview/).
93
+ market: nil,
94
+ request_options: {}
95
+ )
96
+ end
97
+
98
+ sig do
99
+ override.returns(
100
+ {
101
+ additional_types: String,
102
+ fields: String,
103
+ market: String,
104
+ request_options: Spotted::RequestOptions
105
+ }
106
+ )
107
+ end
108
+ def to_hash
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,327 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class PlaylistRetrieveResponse < Spotted::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Spotted::Models::PlaylistRetrieveResponse,
10
+ Spotted::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the
15
+ # playlist.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :id
18
+
19
+ sig { params(id: String).void }
20
+ attr_writer :id
21
+
22
+ # `true` if the owner allows other users to modify the playlist.
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :collaborative
25
+
26
+ sig { params(collaborative: T::Boolean).void }
27
+ attr_writer :collaborative
28
+
29
+ # The playlist description. _Only returned for modified, verified playlists,
30
+ # otherwise_ `null`.
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :description
33
+
34
+ # Known external URLs for this playlist.
35
+ sig { returns(T.nilable(Spotted::ExternalURLObject)) }
36
+ attr_reader :external_urls
37
+
38
+ sig { params(external_urls: Spotted::ExternalURLObject::OrHash).void }
39
+ attr_writer :external_urls
40
+
41
+ # Information about the followers of the playlist.
42
+ sig { returns(T.nilable(Spotted::FollowersObject)) }
43
+ attr_reader :followers
44
+
45
+ sig { params(followers: Spotted::FollowersObject::OrHash).void }
46
+ attr_writer :followers
47
+
48
+ # A link to the Web API endpoint providing full details of the playlist.
49
+ sig { returns(T.nilable(String)) }
50
+ attr_reader :href
51
+
52
+ sig { params(href: String).void }
53
+ attr_writer :href
54
+
55
+ # Images for the playlist. The array may be empty or contain up to three images.
56
+ # The images are returned by size in descending order. See
57
+ # [Working with Playlists](/documentation/web-api/concepts/playlists). _**Note**:
58
+ # If returned, the source URL for the image (`url`) is temporary and will expire
59
+ # in less than a day._
60
+ sig { returns(T.nilable(T::Array[Spotted::ImageObject])) }
61
+ attr_reader :images
62
+
63
+ sig { params(images: T::Array[Spotted::ImageObject::OrHash]).void }
64
+ attr_writer :images
65
+
66
+ # The name of the playlist.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_reader :name
69
+
70
+ sig { params(name: String).void }
71
+ attr_writer :name
72
+
73
+ # The user who owns the playlist
74
+ sig do
75
+ returns(T.nilable(Spotted::Models::PlaylistRetrieveResponse::Owner))
76
+ end
77
+ attr_reader :owner
78
+
79
+ sig do
80
+ params(
81
+ owner: Spotted::Models::PlaylistRetrieveResponse::Owner::OrHash
82
+ ).void
83
+ end
84
+ attr_writer :owner
85
+
86
+ # The playlist's public/private status (if it is added to the user's profile):
87
+ # `true` the playlist is public, `false` the playlist is private, `null` the
88
+ # playlist status is not relevant. For more about public/private status, see
89
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
90
+ sig { returns(T.nilable(T::Boolean)) }
91
+ attr_reader :public
92
+
93
+ sig { params(public: T::Boolean).void }
94
+ attr_writer :public
95
+
96
+ # The version identifier for the current playlist. Can be supplied in other
97
+ # requests to target a specific playlist version
98
+ sig { returns(T.nilable(String)) }
99
+ attr_reader :snapshot_id
100
+
101
+ sig { params(snapshot_id: String).void }
102
+ attr_writer :snapshot_id
103
+
104
+ # The tracks of the playlist.
105
+ sig do
106
+ returns(T.nilable(Spotted::Models::PlaylistRetrieveResponse::Tracks))
107
+ end
108
+ attr_reader :tracks
109
+
110
+ sig do
111
+ params(
112
+ tracks: Spotted::Models::PlaylistRetrieveResponse::Tracks::OrHash
113
+ ).void
114
+ end
115
+ attr_writer :tracks
116
+
117
+ # The object type: "playlist"
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :type
120
+
121
+ sig { params(type: String).void }
122
+ attr_writer :type
123
+
124
+ # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
125
+ # playlist.
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :uri
128
+
129
+ sig { params(uri: String).void }
130
+ attr_writer :uri
131
+
132
+ sig do
133
+ params(
134
+ id: String,
135
+ collaborative: T::Boolean,
136
+ description: T.nilable(String),
137
+ external_urls: Spotted::ExternalURLObject::OrHash,
138
+ followers: Spotted::FollowersObject::OrHash,
139
+ href: String,
140
+ images: T::Array[Spotted::ImageObject::OrHash],
141
+ name: String,
142
+ owner: Spotted::Models::PlaylistRetrieveResponse::Owner::OrHash,
143
+ public: T::Boolean,
144
+ snapshot_id: String,
145
+ tracks: Spotted::Models::PlaylistRetrieveResponse::Tracks::OrHash,
146
+ type: String,
147
+ uri: String
148
+ ).returns(T.attached_class)
149
+ end
150
+ def self.new(
151
+ # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the
152
+ # playlist.
153
+ id: nil,
154
+ # `true` if the owner allows other users to modify the playlist.
155
+ collaborative: nil,
156
+ # The playlist description. _Only returned for modified, verified playlists,
157
+ # otherwise_ `null`.
158
+ description: nil,
159
+ # Known external URLs for this playlist.
160
+ external_urls: nil,
161
+ # Information about the followers of the playlist.
162
+ followers: nil,
163
+ # A link to the Web API endpoint providing full details of the playlist.
164
+ href: nil,
165
+ # Images for the playlist. The array may be empty or contain up to three images.
166
+ # The images are returned by size in descending order. See
167
+ # [Working with Playlists](/documentation/web-api/concepts/playlists). _**Note**:
168
+ # If returned, the source URL for the image (`url`) is temporary and will expire
169
+ # in less than a day._
170
+ images: nil,
171
+ # The name of the playlist.
172
+ name: nil,
173
+ # The user who owns the playlist
174
+ owner: nil,
175
+ # The playlist's public/private status (if it is added to the user's profile):
176
+ # `true` the playlist is public, `false` the playlist is private, `null` the
177
+ # playlist status is not relevant. For more about public/private status, see
178
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
179
+ public: nil,
180
+ # The version identifier for the current playlist. Can be supplied in other
181
+ # requests to target a specific playlist version
182
+ snapshot_id: nil,
183
+ # The tracks of the playlist.
184
+ tracks: nil,
185
+ # The object type: "playlist"
186
+ type: nil,
187
+ # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
188
+ # playlist.
189
+ uri: nil
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns(
195
+ {
196
+ id: String,
197
+ collaborative: T::Boolean,
198
+ description: T.nilable(String),
199
+ external_urls: Spotted::ExternalURLObject,
200
+ followers: Spotted::FollowersObject,
201
+ href: String,
202
+ images: T::Array[Spotted::ImageObject],
203
+ name: String,
204
+ owner: Spotted::Models::PlaylistRetrieveResponse::Owner,
205
+ public: T::Boolean,
206
+ snapshot_id: String,
207
+ tracks: Spotted::Models::PlaylistRetrieveResponse::Tracks,
208
+ type: String,
209
+ uri: String
210
+ }
211
+ )
212
+ end
213
+ def to_hash
214
+ end
215
+
216
+ class Owner < Spotted::Models::PlaylistUserObject
217
+ OrHash =
218
+ T.type_alias do
219
+ T.any(
220
+ Spotted::Models::PlaylistRetrieveResponse::Owner,
221
+ Spotted::Internal::AnyHash
222
+ )
223
+ end
224
+
225
+ # The name displayed on the user's profile. `null` if not available.
226
+ sig { returns(T.nilable(String)) }
227
+ attr_accessor :display_name
228
+
229
+ # The user who owns the playlist
230
+ sig do
231
+ params(display_name: T.nilable(String)).returns(T.attached_class)
232
+ end
233
+ def self.new(
234
+ # The name displayed on the user's profile. `null` if not available.
235
+ display_name: nil
236
+ )
237
+ end
238
+
239
+ sig { override.returns({ display_name: T.nilable(String) }) }
240
+ def to_hash
241
+ end
242
+ end
243
+
244
+ class Tracks < Spotted::Internal::Type::BaseModel
245
+ OrHash =
246
+ T.type_alias do
247
+ T.any(
248
+ Spotted::Models::PlaylistRetrieveResponse::Tracks,
249
+ Spotted::Internal::AnyHash
250
+ )
251
+ end
252
+
253
+ # A link to the Web API endpoint returning the full result of the request
254
+ sig { returns(String) }
255
+ attr_accessor :href
256
+
257
+ sig { returns(T::Array[Spotted::PlaylistTrackObject]) }
258
+ attr_accessor :items
259
+
260
+ # The maximum number of items in the response (as set in the query or by default).
261
+ sig { returns(Integer) }
262
+ attr_accessor :limit
263
+
264
+ # URL to the next page of items. ( `null` if none)
265
+ sig { returns(T.nilable(String)) }
266
+ attr_accessor :next_
267
+
268
+ # The offset of the items returned (as set in the query or by default)
269
+ sig { returns(Integer) }
270
+ attr_accessor :offset
271
+
272
+ # URL to the previous page of items. ( `null` if none)
273
+ sig { returns(T.nilable(String)) }
274
+ attr_accessor :previous
275
+
276
+ # The total number of items available to return.
277
+ sig { returns(Integer) }
278
+ attr_accessor :total
279
+
280
+ # The tracks of the playlist.
281
+ sig do
282
+ params(
283
+ href: String,
284
+ items: T::Array[Spotted::PlaylistTrackObject::OrHash],
285
+ limit: Integer,
286
+ next_: T.nilable(String),
287
+ offset: Integer,
288
+ previous: T.nilable(String),
289
+ total: Integer
290
+ ).returns(T.attached_class)
291
+ end
292
+ def self.new(
293
+ # A link to the Web API endpoint returning the full result of the request
294
+ href:,
295
+ items:,
296
+ # The maximum number of items in the response (as set in the query or by default).
297
+ limit:,
298
+ # URL to the next page of items. ( `null` if none)
299
+ next_:,
300
+ # The offset of the items returned (as set in the query or by default)
301
+ offset:,
302
+ # URL to the previous page of items. ( `null` if none)
303
+ previous:,
304
+ # The total number of items available to return.
305
+ total:
306
+ )
307
+ end
308
+
309
+ sig do
310
+ override.returns(
311
+ {
312
+ href: String,
313
+ items: T::Array[Spotted::PlaylistTrackObject],
314
+ limit: Integer,
315
+ next_: T.nilable(String),
316
+ offset: Integer,
317
+ previous: T.nilable(String),
318
+ total: Integer
319
+ }
320
+ )
321
+ end
322
+ def to_hash
323
+ end
324
+ end
325
+ end
326
+ end
327
+ end
@@ -0,0 +1,101 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class PlaylistTrackObject < Spotted::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Spotted::PlaylistTrackObject, Spotted::Internal::AnyHash)
9
+ end
10
+
11
+ # The date and time the track or episode was added. _**Note**: some very old
12
+ # playlists may return `null` in this field._
13
+ sig { returns(T.nilable(Time)) }
14
+ attr_reader :added_at
15
+
16
+ sig { params(added_at: Time).void }
17
+ attr_writer :added_at
18
+
19
+ # The Spotify user who added the track or episode. _**Note**: some very old
20
+ # playlists may return `null` in this field._
21
+ sig { returns(T.nilable(Spotted::PlaylistUserObject)) }
22
+ attr_reader :added_by
23
+
24
+ sig { params(added_by: Spotted::PlaylistUserObject::OrHash).void }
25
+ attr_writer :added_by
26
+
27
+ # Whether this track or episode is a
28
+ # [local file](/documentation/web-api/concepts/playlists/#local-files) or not.
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :is_local
31
+
32
+ sig { params(is_local: T::Boolean).void }
33
+ attr_writer :is_local
34
+
35
+ # Information about the track or episode.
36
+ sig { returns(T.nilable(Spotted::PlaylistTrackObject::Track::Variants)) }
37
+ attr_reader :track
38
+
39
+ sig do
40
+ params(
41
+ track:
42
+ T.any(Spotted::TrackObject::OrHash, Spotted::EpisodeObject::OrHash)
43
+ ).void
44
+ end
45
+ attr_writer :track
46
+
47
+ sig do
48
+ params(
49
+ added_at: Time,
50
+ added_by: Spotted::PlaylistUserObject::OrHash,
51
+ is_local: T::Boolean,
52
+ track:
53
+ T.any(Spotted::TrackObject::OrHash, Spotted::EpisodeObject::OrHash)
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ # The date and time the track or episode was added. _**Note**: some very old
58
+ # playlists may return `null` in this field._
59
+ added_at: nil,
60
+ # The Spotify user who added the track or episode. _**Note**: some very old
61
+ # playlists may return `null` in this field._
62
+ added_by: nil,
63
+ # Whether this track or episode is a
64
+ # [local file](/documentation/web-api/concepts/playlists/#local-files) or not.
65
+ is_local: nil,
66
+ # Information about the track or episode.
67
+ track: nil
68
+ )
69
+ end
70
+
71
+ sig do
72
+ override.returns(
73
+ {
74
+ added_at: Time,
75
+ added_by: Spotted::PlaylistUserObject,
76
+ is_local: T::Boolean,
77
+ track: Spotted::PlaylistTrackObject::Track::Variants
78
+ }
79
+ )
80
+ end
81
+ def to_hash
82
+ end
83
+
84
+ # Information about the track or episode.
85
+ module Track
86
+ extend Spotted::Internal::Type::Union
87
+
88
+ Variants =
89
+ T.type_alias { T.any(Spotted::TrackObject, Spotted::EpisodeObject) }
90
+
91
+ sig do
92
+ override.returns(
93
+ T::Array[Spotted::PlaylistTrackObject::Track::Variants]
94
+ )
95
+ end
96
+ def self.variants
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,41 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class PlaylistTracksRefObject < Spotted::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Spotted::PlaylistTracksRefObject, Spotted::Internal::AnyHash)
9
+ end
10
+
11
+ # A link to the Web API endpoint where full details of the playlist's tracks can
12
+ # be retrieved.
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :href
15
+
16
+ sig { params(href: String).void }
17
+ attr_writer :href
18
+
19
+ # Number of tracks in the playlist.
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_reader :total
22
+
23
+ sig { params(total: Integer).void }
24
+ attr_writer :total
25
+
26
+ sig { params(href: String, total: Integer).returns(T.attached_class) }
27
+ def self.new(
28
+ # A link to the Web API endpoint where full details of the playlist's tracks can
29
+ # be retrieved.
30
+ href: nil,
31
+ # Number of tracks in the playlist.
32
+ total: nil
33
+ )
34
+ end
35
+
36
+ sig { override.returns({ href: String, total: Integer }) }
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end