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,1080 @@
1
+ # typed: strong
2
+
3
+ module Spotted
4
+ module Models
5
+ class AudioAnalysisRetrieveResponse < Spotted::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Spotted::Models::AudioAnalysisRetrieveResponse,
10
+ Spotted::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The time intervals of the bars throughout the track. A bar (or measure) is a
15
+ # segment of time defined as a given number of beats.
16
+ sig { returns(T.nilable(T::Array[Spotted::TimeIntervalObject])) }
17
+ attr_reader :bars
18
+
19
+ sig { params(bars: T::Array[Spotted::TimeIntervalObject::OrHash]).void }
20
+ attr_writer :bars
21
+
22
+ # The time intervals of beats throughout the track. A beat is the basic time unit
23
+ # of a piece of music; for example, each tick of a metronome. Beats are typically
24
+ # multiples of tatums.
25
+ sig { returns(T.nilable(T::Array[Spotted::TimeIntervalObject])) }
26
+ attr_reader :beats
27
+
28
+ sig { params(beats: T::Array[Spotted::TimeIntervalObject::OrHash]).void }
29
+ attr_writer :beats
30
+
31
+ sig do
32
+ returns(T.nilable(Spotted::Models::AudioAnalysisRetrieveResponse::Meta))
33
+ end
34
+ attr_reader :meta
35
+
36
+ sig do
37
+ params(
38
+ meta: Spotted::Models::AudioAnalysisRetrieveResponse::Meta::OrHash
39
+ ).void
40
+ end
41
+ attr_writer :meta
42
+
43
+ # Sections are defined by large variations in rhythm or timbre, e.g. chorus,
44
+ # verse, bridge, guitar solo, etc. Each section contains its own descriptions of
45
+ # tempo, key, mode, time_signature, and loudness.
46
+ sig do
47
+ returns(
48
+ T.nilable(
49
+ T::Array[Spotted::Models::AudioAnalysisRetrieveResponse::Section]
50
+ )
51
+ )
52
+ end
53
+ attr_reader :sections
54
+
55
+ sig do
56
+ params(
57
+ sections:
58
+ T::Array[
59
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::OrHash
60
+ ]
61
+ ).void
62
+ end
63
+ attr_writer :sections
64
+
65
+ # Each segment contains a roughly conisistent sound throughout its duration.
66
+ sig do
67
+ returns(
68
+ T.nilable(
69
+ T::Array[Spotted::Models::AudioAnalysisRetrieveResponse::Segment]
70
+ )
71
+ )
72
+ end
73
+ attr_reader :segments
74
+
75
+ sig do
76
+ params(
77
+ segments:
78
+ T::Array[
79
+ Spotted::Models::AudioAnalysisRetrieveResponse::Segment::OrHash
80
+ ]
81
+ ).void
82
+ end
83
+ attr_writer :segments
84
+
85
+ # A tatum represents the lowest regular pulse train that a listener intuitively
86
+ # infers from the timing of perceived musical events (segments).
87
+ sig { returns(T.nilable(T::Array[Spotted::TimeIntervalObject])) }
88
+ attr_reader :tatums
89
+
90
+ sig { params(tatums: T::Array[Spotted::TimeIntervalObject::OrHash]).void }
91
+ attr_writer :tatums
92
+
93
+ sig do
94
+ returns(
95
+ T.nilable(Spotted::Models::AudioAnalysisRetrieveResponse::Track)
96
+ )
97
+ end
98
+ attr_reader :track
99
+
100
+ sig do
101
+ params(
102
+ track: Spotted::Models::AudioAnalysisRetrieveResponse::Track::OrHash
103
+ ).void
104
+ end
105
+ attr_writer :track
106
+
107
+ sig do
108
+ params(
109
+ bars: T::Array[Spotted::TimeIntervalObject::OrHash],
110
+ beats: T::Array[Spotted::TimeIntervalObject::OrHash],
111
+ meta: Spotted::Models::AudioAnalysisRetrieveResponse::Meta::OrHash,
112
+ sections:
113
+ T::Array[
114
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::OrHash
115
+ ],
116
+ segments:
117
+ T::Array[
118
+ Spotted::Models::AudioAnalysisRetrieveResponse::Segment::OrHash
119
+ ],
120
+ tatums: T::Array[Spotted::TimeIntervalObject::OrHash],
121
+ track: Spotted::Models::AudioAnalysisRetrieveResponse::Track::OrHash
122
+ ).returns(T.attached_class)
123
+ end
124
+ def self.new(
125
+ # The time intervals of the bars throughout the track. A bar (or measure) is a
126
+ # segment of time defined as a given number of beats.
127
+ bars: nil,
128
+ # The time intervals of beats throughout the track. A beat is the basic time unit
129
+ # of a piece of music; for example, each tick of a metronome. Beats are typically
130
+ # multiples of tatums.
131
+ beats: nil,
132
+ meta: nil,
133
+ # Sections are defined by large variations in rhythm or timbre, e.g. chorus,
134
+ # verse, bridge, guitar solo, etc. Each section contains its own descriptions of
135
+ # tempo, key, mode, time_signature, and loudness.
136
+ sections: nil,
137
+ # Each segment contains a roughly conisistent sound throughout its duration.
138
+ segments: nil,
139
+ # A tatum represents the lowest regular pulse train that a listener intuitively
140
+ # infers from the timing of perceived musical events (segments).
141
+ tatums: nil,
142
+ track: nil
143
+ )
144
+ end
145
+
146
+ sig do
147
+ override.returns(
148
+ {
149
+ bars: T::Array[Spotted::TimeIntervalObject],
150
+ beats: T::Array[Spotted::TimeIntervalObject],
151
+ meta: Spotted::Models::AudioAnalysisRetrieveResponse::Meta,
152
+ sections:
153
+ T::Array[Spotted::Models::AudioAnalysisRetrieveResponse::Section],
154
+ segments:
155
+ T::Array[Spotted::Models::AudioAnalysisRetrieveResponse::Segment],
156
+ tatums: T::Array[Spotted::TimeIntervalObject],
157
+ track: Spotted::Models::AudioAnalysisRetrieveResponse::Track
158
+ }
159
+ )
160
+ end
161
+ def to_hash
162
+ end
163
+
164
+ class Meta < Spotted::Internal::Type::BaseModel
165
+ OrHash =
166
+ T.type_alias do
167
+ T.any(
168
+ Spotted::Models::AudioAnalysisRetrieveResponse::Meta,
169
+ Spotted::Internal::AnyHash
170
+ )
171
+ end
172
+
173
+ # The amount of time taken to analyze this track.
174
+ sig { returns(T.nilable(Float)) }
175
+ attr_reader :analysis_time
176
+
177
+ sig { params(analysis_time: Float).void }
178
+ attr_writer :analysis_time
179
+
180
+ # The version of the Analyzer used to analyze this track.
181
+ sig { returns(T.nilable(String)) }
182
+ attr_reader :analyzer_version
183
+
184
+ sig { params(analyzer_version: String).void }
185
+ attr_writer :analyzer_version
186
+
187
+ # A detailed status code for this track. If analysis data is missing, this code
188
+ # may explain why.
189
+ sig { returns(T.nilable(String)) }
190
+ attr_reader :detailed_status
191
+
192
+ sig { params(detailed_status: String).void }
193
+ attr_writer :detailed_status
194
+
195
+ # The method used to read the track's audio data.
196
+ sig { returns(T.nilable(String)) }
197
+ attr_reader :input_process
198
+
199
+ sig { params(input_process: String).void }
200
+ attr_writer :input_process
201
+
202
+ # The platform used to read the track's audio data.
203
+ sig { returns(T.nilable(String)) }
204
+ attr_reader :platform
205
+
206
+ sig { params(platform: String).void }
207
+ attr_writer :platform
208
+
209
+ # The return code of the analyzer process. 0 if successful, 1 if any errors
210
+ # occurred.
211
+ sig { returns(T.nilable(Integer)) }
212
+ attr_reader :status_code
213
+
214
+ sig { params(status_code: Integer).void }
215
+ attr_writer :status_code
216
+
217
+ # The Unix timestamp (in seconds) at which this track was analyzed.
218
+ sig { returns(T.nilable(Integer)) }
219
+ attr_reader :timestamp
220
+
221
+ sig { params(timestamp: Integer).void }
222
+ attr_writer :timestamp
223
+
224
+ sig do
225
+ params(
226
+ analysis_time: Float,
227
+ analyzer_version: String,
228
+ detailed_status: String,
229
+ input_process: String,
230
+ platform: String,
231
+ status_code: Integer,
232
+ timestamp: Integer
233
+ ).returns(T.attached_class)
234
+ end
235
+ def self.new(
236
+ # The amount of time taken to analyze this track.
237
+ analysis_time: nil,
238
+ # The version of the Analyzer used to analyze this track.
239
+ analyzer_version: nil,
240
+ # A detailed status code for this track. If analysis data is missing, this code
241
+ # may explain why.
242
+ detailed_status: nil,
243
+ # The method used to read the track's audio data.
244
+ input_process: nil,
245
+ # The platform used to read the track's audio data.
246
+ platform: nil,
247
+ # The return code of the analyzer process. 0 if successful, 1 if any errors
248
+ # occurred.
249
+ status_code: nil,
250
+ # The Unix timestamp (in seconds) at which this track was analyzed.
251
+ timestamp: nil
252
+ )
253
+ end
254
+
255
+ sig do
256
+ override.returns(
257
+ {
258
+ analysis_time: Float,
259
+ analyzer_version: String,
260
+ detailed_status: String,
261
+ input_process: String,
262
+ platform: String,
263
+ status_code: Integer,
264
+ timestamp: Integer
265
+ }
266
+ )
267
+ end
268
+ def to_hash
269
+ end
270
+ end
271
+
272
+ class Section < Spotted::Internal::Type::BaseModel
273
+ OrHash =
274
+ T.type_alias do
275
+ T.any(
276
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section,
277
+ Spotted::Internal::AnyHash
278
+ )
279
+ end
280
+
281
+ # The confidence, from 0.0 to 1.0, of the reliability of the section's
282
+ # "designation".
283
+ sig { returns(T.nilable(Float)) }
284
+ attr_reader :confidence
285
+
286
+ sig { params(confidence: Float).void }
287
+ attr_writer :confidence
288
+
289
+ # The duration (in seconds) of the section.
290
+ sig { returns(T.nilable(Float)) }
291
+ attr_reader :duration
292
+
293
+ sig { params(duration: Float).void }
294
+ attr_writer :duration
295
+
296
+ # The estimated overall key of the section. The values in this field ranging from
297
+ # 0 to 11 mapping to pitches using standard Pitch Class notation (E.g. 0 = C, 1 =
298
+ # C♯/D♭, 2 = D, and so on). If no key was detected, the value is -1.
299
+ sig { returns(T.nilable(Integer)) }
300
+ attr_reader :key
301
+
302
+ sig { params(key: Integer).void }
303
+ attr_writer :key
304
+
305
+ # The confidence, from 0.0 to 1.0, of the reliability of the key. Songs with many
306
+ # key changes may correspond to low values in this field.
307
+ sig { returns(T.nilable(Float)) }
308
+ attr_reader :key_confidence
309
+
310
+ sig { params(key_confidence: Float).void }
311
+ attr_writer :key_confidence
312
+
313
+ # The overall loudness of the section in decibels (dB). Loudness values are useful
314
+ # for comparing relative loudness of sections within tracks.
315
+ sig { returns(T.nilable(Float)) }
316
+ attr_reader :loudness
317
+
318
+ sig { params(loudness: Float).void }
319
+ attr_writer :loudness
320
+
321
+ # Indicates the modality (major or minor) of a section, the type of scale from
322
+ # which its melodic content is derived. This field will contain a 0 for "minor", a
323
+ # 1 for "major", or a -1 for no result. Note that the major key (e.g. C major)
324
+ # could more likely be confused with the minor key at 3 semitones lower (e.g. A
325
+ # minor) as both keys carry the same pitches.
326
+ sig do
327
+ returns(
328
+ T.nilable(
329
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat
330
+ )
331
+ )
332
+ end
333
+ attr_reader :mode
334
+
335
+ sig do
336
+ params(
337
+ mode:
338
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::OrFloat
339
+ ).void
340
+ end
341
+ attr_writer :mode
342
+
343
+ # The confidence, from 0.0 to 1.0, of the reliability of the `mode`.
344
+ sig { returns(T.nilable(Float)) }
345
+ attr_reader :mode_confidence
346
+
347
+ sig { params(mode_confidence: Float).void }
348
+ attr_writer :mode_confidence
349
+
350
+ # The starting point (in seconds) of the section.
351
+ sig { returns(T.nilable(Float)) }
352
+ attr_reader :start
353
+
354
+ sig { params(start: Float).void }
355
+ attr_writer :start
356
+
357
+ # The overall estimated tempo of the section in beats per minute (BPM). In musical
358
+ # terminology, tempo is the speed or pace of a given piece and derives directly
359
+ # from the average beat duration.
360
+ sig { returns(T.nilable(Float)) }
361
+ attr_reader :tempo
362
+
363
+ sig { params(tempo: Float).void }
364
+ attr_writer :tempo
365
+
366
+ # The confidence, from 0.0 to 1.0, of the reliability of the tempo. Some tracks
367
+ # contain tempo changes or sounds which don't contain tempo (like pure speech)
368
+ # which would correspond to a low value in this field.
369
+ sig { returns(T.nilable(Float)) }
370
+ attr_reader :tempo_confidence
371
+
372
+ sig { params(tempo_confidence: Float).void }
373
+ attr_writer :tempo_confidence
374
+
375
+ # An estimated time signature. The time signature (meter) is a notational
376
+ # convention to specify how many beats are in each bar (or measure). The time
377
+ # signature ranges from 3 to 7 indicating time signatures of "3/4", to "7/4".
378
+ sig { returns(T.nilable(Integer)) }
379
+ attr_reader :time_signature
380
+
381
+ sig { params(time_signature: Integer).void }
382
+ attr_writer :time_signature
383
+
384
+ # The confidence, from 0.0 to 1.0, of the reliability of the `time_signature`.
385
+ # Sections with time signature changes may correspond to low values in this field.
386
+ sig { returns(T.nilable(Float)) }
387
+ attr_reader :time_signature_confidence
388
+
389
+ sig { params(time_signature_confidence: Float).void }
390
+ attr_writer :time_signature_confidence
391
+
392
+ sig do
393
+ params(
394
+ confidence: Float,
395
+ duration: Float,
396
+ key: Integer,
397
+ key_confidence: Float,
398
+ loudness: Float,
399
+ mode:
400
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::OrFloat,
401
+ mode_confidence: Float,
402
+ start: Float,
403
+ tempo: Float,
404
+ tempo_confidence: Float,
405
+ time_signature: Integer,
406
+ time_signature_confidence: Float
407
+ ).returns(T.attached_class)
408
+ end
409
+ def self.new(
410
+ # The confidence, from 0.0 to 1.0, of the reliability of the section's
411
+ # "designation".
412
+ confidence: nil,
413
+ # The duration (in seconds) of the section.
414
+ duration: nil,
415
+ # The estimated overall key of the section. The values in this field ranging from
416
+ # 0 to 11 mapping to pitches using standard Pitch Class notation (E.g. 0 = C, 1 =
417
+ # C♯/D♭, 2 = D, and so on). If no key was detected, the value is -1.
418
+ key: nil,
419
+ # The confidence, from 0.0 to 1.0, of the reliability of the key. Songs with many
420
+ # key changes may correspond to low values in this field.
421
+ key_confidence: nil,
422
+ # The overall loudness of the section in decibels (dB). Loudness values are useful
423
+ # for comparing relative loudness of sections within tracks.
424
+ loudness: nil,
425
+ # Indicates the modality (major or minor) of a section, the type of scale from
426
+ # which its melodic content is derived. This field will contain a 0 for "minor", a
427
+ # 1 for "major", or a -1 for no result. Note that the major key (e.g. C major)
428
+ # could more likely be confused with the minor key at 3 semitones lower (e.g. A
429
+ # minor) as both keys carry the same pitches.
430
+ mode: nil,
431
+ # The confidence, from 0.0 to 1.0, of the reliability of the `mode`.
432
+ mode_confidence: nil,
433
+ # The starting point (in seconds) of the section.
434
+ start: nil,
435
+ # The overall estimated tempo of the section in beats per minute (BPM). In musical
436
+ # terminology, tempo is the speed or pace of a given piece and derives directly
437
+ # from the average beat duration.
438
+ tempo: nil,
439
+ # The confidence, from 0.0 to 1.0, of the reliability of the tempo. Some tracks
440
+ # contain tempo changes or sounds which don't contain tempo (like pure speech)
441
+ # which would correspond to a low value in this field.
442
+ tempo_confidence: nil,
443
+ # An estimated time signature. The time signature (meter) is a notational
444
+ # convention to specify how many beats are in each bar (or measure). The time
445
+ # signature ranges from 3 to 7 indicating time signatures of "3/4", to "7/4".
446
+ time_signature: nil,
447
+ # The confidence, from 0.0 to 1.0, of the reliability of the `time_signature`.
448
+ # Sections with time signature changes may correspond to low values in this field.
449
+ time_signature_confidence: nil
450
+ )
451
+ end
452
+
453
+ sig do
454
+ override.returns(
455
+ {
456
+ confidence: Float,
457
+ duration: Float,
458
+ key: Integer,
459
+ key_confidence: Float,
460
+ loudness: Float,
461
+ mode:
462
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat,
463
+ mode_confidence: Float,
464
+ start: Float,
465
+ tempo: Float,
466
+ tempo_confidence: Float,
467
+ time_signature: Integer,
468
+ time_signature_confidence: Float
469
+ }
470
+ )
471
+ end
472
+ def to_hash
473
+ end
474
+
475
+ # Indicates the modality (major or minor) of a section, the type of scale from
476
+ # which its melodic content is derived. This field will contain a 0 for "minor", a
477
+ # 1 for "major", or a -1 for no result. Note that the major key (e.g. C major)
478
+ # could more likely be confused with the minor key at 3 semitones lower (e.g. A
479
+ # minor) as both keys carry the same pitches.
480
+ module Mode
481
+ extend Spotted::Internal::Type::Enum
482
+
483
+ TaggedFloat =
484
+ T.type_alias do
485
+ T.all(
486
+ Float,
487
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode
488
+ )
489
+ end
490
+ OrFloat = T.type_alias { Float }
491
+
492
+ MINUS_1 =
493
+ T.let(
494
+ -1,
495
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat
496
+ )
497
+ MODE_0 =
498
+ T.let(
499
+ 0,
500
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat
501
+ )
502
+ MODE_1 =
503
+ T.let(
504
+ 1,
505
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat
506
+ )
507
+
508
+ sig do
509
+ override.returns(
510
+ T::Array[
511
+ Spotted::Models::AudioAnalysisRetrieveResponse::Section::Mode::TaggedFloat
512
+ ]
513
+ )
514
+ end
515
+ def self.values
516
+ end
517
+ end
518
+ end
519
+
520
+ class Segment < Spotted::Internal::Type::BaseModel
521
+ OrHash =
522
+ T.type_alias do
523
+ T.any(
524
+ Spotted::Models::AudioAnalysisRetrieveResponse::Segment,
525
+ Spotted::Internal::AnyHash
526
+ )
527
+ end
528
+
529
+ # The confidence, from 0.0 to 1.0, of the reliability of the segmentation.
530
+ # Segments of the song which are difficult to logically segment (e.g: noise) may
531
+ # correspond to low values in this field.
532
+ sig { returns(T.nilable(Float)) }
533
+ attr_reader :confidence
534
+
535
+ sig { params(confidence: Float).void }
536
+ attr_writer :confidence
537
+
538
+ # The duration (in seconds) of the segment.
539
+ sig { returns(T.nilable(Float)) }
540
+ attr_reader :duration
541
+
542
+ sig { params(duration: Float).void }
543
+ attr_writer :duration
544
+
545
+ # The offset loudness of the segment in decibels (dB). This value should be
546
+ # equivalent to the loudness_start of the following segment.
547
+ sig { returns(T.nilable(Float)) }
548
+ attr_reader :loudness_end
549
+
550
+ sig { params(loudness_end: Float).void }
551
+ attr_writer :loudness_end
552
+
553
+ # The peak loudness of the segment in decibels (dB). Combined with
554
+ # `loudness_start` and `loudness_max_time`, these components can be used to
555
+ # describe the "attack" of the segment.
556
+ sig { returns(T.nilable(Float)) }
557
+ attr_reader :loudness_max
558
+
559
+ sig { params(loudness_max: Float).void }
560
+ attr_writer :loudness_max
561
+
562
+ # The segment-relative offset of the segment peak loudness in seconds. Combined
563
+ # with `loudness_start` and `loudness_max`, these components can be used to
564
+ # desctibe the "attack" of the segment.
565
+ sig { returns(T.nilable(Float)) }
566
+ attr_reader :loudness_max_time
567
+
568
+ sig { params(loudness_max_time: Float).void }
569
+ attr_writer :loudness_max_time
570
+
571
+ # The onset loudness of the segment in decibels (dB). Combined with `loudness_max`
572
+ # and `loudness_max_time`, these components can be used to describe the "attack"
573
+ # of the segment.
574
+ sig { returns(T.nilable(Float)) }
575
+ attr_reader :loudness_start
576
+
577
+ sig { params(loudness_start: Float).void }
578
+ attr_writer :loudness_start
579
+
580
+ # Pitch content is given by a “chroma” vector, corresponding to the 12 pitch
581
+ # classes C, C#, D to B, with values ranging from 0 to 1 that describe the
582
+ # relative dominance of every pitch in the chromatic scale. For example a C Major
583
+ # chord would likely be represented by large values of C, E and G (i.e. classes 0,
584
+ # 4, and 7).
585
+ #
586
+ # Vectors are normalized to 1 by their strongest dimension, therefore noisy sounds
587
+ # are likely represented by values that are all close to 1, while pure tones are
588
+ # described by one value at 1 (the pitch) and others near 0. As can be seen below,
589
+ # the 12 vector indices are a combination of low-power spectrum values at their
590
+ # respective pitch frequencies. ![pitch vector](/assets/audio/Pitch_vector.png)
591
+ sig { returns(T.nilable(T::Array[Float])) }
592
+ attr_reader :pitches
593
+
594
+ sig { params(pitches: T::Array[Float]).void }
595
+ attr_writer :pitches
596
+
597
+ # The starting point (in seconds) of the segment.
598
+ sig { returns(T.nilable(Float)) }
599
+ attr_reader :start
600
+
601
+ sig { params(start: Float).void }
602
+ attr_writer :start
603
+
604
+ # Timbre is the quality of a musical note or sound that distinguishes different
605
+ # types of musical instruments, or voices. It is a complex notion also referred to
606
+ # as sound color, texture, or tone quality, and is derived from the shape of a
607
+ # segment’s spectro-temporal surface, independently of pitch and loudness. The
608
+ # timbre feature is a vector that includes 12 unbounded values roughly centered
609
+ # around 0. Those values are high level abstractions of the spectral surface,
610
+ # ordered by degree of importance.
611
+ #
612
+ # For completeness however, the first dimension represents the average loudness of
613
+ # the segment; second emphasizes brightness; third is more closely correlated to
614
+ # the flatness of a sound; fourth to sounds with a stronger attack; etc. See an
615
+ # image below representing the 12 basis functions (i.e. template segments).
616
+ # ![timbre basis functions](/assets/audio/Timbre_basis_functions.png)
617
+ #
618
+ # The actual timbre of the segment is best described as a linear combination of
619
+ # these 12 basis functions weighted by the coefficient values: timbre = c1 x b1 +
620
+ # c2 x b2 + ... + c12 x b12, where c1 to c12 represent the 12 coefficients and b1
621
+ # to b12 the 12 basis functions as displayed below. Timbre vectors are best used
622
+ # in comparison with each other.
623
+ sig { returns(T.nilable(T::Array[Float])) }
624
+ attr_reader :timbre
625
+
626
+ sig { params(timbre: T::Array[Float]).void }
627
+ attr_writer :timbre
628
+
629
+ sig do
630
+ params(
631
+ confidence: Float,
632
+ duration: Float,
633
+ loudness_end: Float,
634
+ loudness_max: Float,
635
+ loudness_max_time: Float,
636
+ loudness_start: Float,
637
+ pitches: T::Array[Float],
638
+ start: Float,
639
+ timbre: T::Array[Float]
640
+ ).returns(T.attached_class)
641
+ end
642
+ def self.new(
643
+ # The confidence, from 0.0 to 1.0, of the reliability of the segmentation.
644
+ # Segments of the song which are difficult to logically segment (e.g: noise) may
645
+ # correspond to low values in this field.
646
+ confidence: nil,
647
+ # The duration (in seconds) of the segment.
648
+ duration: nil,
649
+ # The offset loudness of the segment in decibels (dB). This value should be
650
+ # equivalent to the loudness_start of the following segment.
651
+ loudness_end: nil,
652
+ # The peak loudness of the segment in decibels (dB). Combined with
653
+ # `loudness_start` and `loudness_max_time`, these components can be used to
654
+ # describe the "attack" of the segment.
655
+ loudness_max: nil,
656
+ # The segment-relative offset of the segment peak loudness in seconds. Combined
657
+ # with `loudness_start` and `loudness_max`, these components can be used to
658
+ # desctibe the "attack" of the segment.
659
+ loudness_max_time: nil,
660
+ # The onset loudness of the segment in decibels (dB). Combined with `loudness_max`
661
+ # and `loudness_max_time`, these components can be used to describe the "attack"
662
+ # of the segment.
663
+ loudness_start: nil,
664
+ # Pitch content is given by a “chroma” vector, corresponding to the 12 pitch
665
+ # classes C, C#, D to B, with values ranging from 0 to 1 that describe the
666
+ # relative dominance of every pitch in the chromatic scale. For example a C Major
667
+ # chord would likely be represented by large values of C, E and G (i.e. classes 0,
668
+ # 4, and 7).
669
+ #
670
+ # Vectors are normalized to 1 by their strongest dimension, therefore noisy sounds
671
+ # are likely represented by values that are all close to 1, while pure tones are
672
+ # described by one value at 1 (the pitch) and others near 0. As can be seen below,
673
+ # the 12 vector indices are a combination of low-power spectrum values at their
674
+ # respective pitch frequencies. ![pitch vector](/assets/audio/Pitch_vector.png)
675
+ pitches: nil,
676
+ # The starting point (in seconds) of the segment.
677
+ start: nil,
678
+ # Timbre is the quality of a musical note or sound that distinguishes different
679
+ # types of musical instruments, or voices. It is a complex notion also referred to
680
+ # as sound color, texture, or tone quality, and is derived from the shape of a
681
+ # segment’s spectro-temporal surface, independently of pitch and loudness. The
682
+ # timbre feature is a vector that includes 12 unbounded values roughly centered
683
+ # around 0. Those values are high level abstractions of the spectral surface,
684
+ # ordered by degree of importance.
685
+ #
686
+ # For completeness however, the first dimension represents the average loudness of
687
+ # the segment; second emphasizes brightness; third is more closely correlated to
688
+ # the flatness of a sound; fourth to sounds with a stronger attack; etc. See an
689
+ # image below representing the 12 basis functions (i.e. template segments).
690
+ # ![timbre basis functions](/assets/audio/Timbre_basis_functions.png)
691
+ #
692
+ # The actual timbre of the segment is best described as a linear combination of
693
+ # these 12 basis functions weighted by the coefficient values: timbre = c1 x b1 +
694
+ # c2 x b2 + ... + c12 x b12, where c1 to c12 represent the 12 coefficients and b1
695
+ # to b12 the 12 basis functions as displayed below. Timbre vectors are best used
696
+ # in comparison with each other.
697
+ timbre: nil
698
+ )
699
+ end
700
+
701
+ sig do
702
+ override.returns(
703
+ {
704
+ confidence: Float,
705
+ duration: Float,
706
+ loudness_end: Float,
707
+ loudness_max: Float,
708
+ loudness_max_time: Float,
709
+ loudness_start: Float,
710
+ pitches: T::Array[Float],
711
+ start: Float,
712
+ timbre: T::Array[Float]
713
+ }
714
+ )
715
+ end
716
+ def to_hash
717
+ end
718
+ end
719
+
720
+ class Track < Spotted::Internal::Type::BaseModel
721
+ OrHash =
722
+ T.type_alias do
723
+ T.any(
724
+ Spotted::Models::AudioAnalysisRetrieveResponse::Track,
725
+ Spotted::Internal::AnyHash
726
+ )
727
+ end
728
+
729
+ # The number of channels used for analysis. If 1, all channels are summed together
730
+ # to mono before analysis.
731
+ sig { returns(T.nilable(Integer)) }
732
+ attr_reader :analysis_channels
733
+
734
+ sig { params(analysis_channels: Integer).void }
735
+ attr_writer :analysis_channels
736
+
737
+ # The sample rate used to decode and analyze this track. May differ from the
738
+ # actual sample rate of this track available on Spotify.
739
+ sig { returns(T.nilable(Integer)) }
740
+ attr_reader :analysis_sample_rate
741
+
742
+ sig { params(analysis_sample_rate: Integer).void }
743
+ attr_writer :analysis_sample_rate
744
+
745
+ # A version number for the Echo Nest Musical Fingerprint format used in the
746
+ # codestring field.
747
+ sig { returns(T.nilable(Float)) }
748
+ attr_reader :code_version
749
+
750
+ sig { params(code_version: Float).void }
751
+ attr_writer :code_version
752
+
753
+ # An
754
+ # [Echo Nest Musical Fingerprint (ENMFP)](https://academiccommons.columbia.edu/doi/10.7916/D8Q248M4)
755
+ # codestring for this track.
756
+ sig { returns(T.nilable(String)) }
757
+ attr_reader :codestring
758
+
759
+ sig { params(codestring: String).void }
760
+ attr_writer :codestring
761
+
762
+ # Length of the track in seconds.
763
+ sig { returns(T.nilable(Float)) }
764
+ attr_reader :duration
765
+
766
+ sig { params(duration: Float).void }
767
+ attr_writer :duration
768
+
769
+ # A version number for the EchoPrint format used in the echoprintstring field.
770
+ sig { returns(T.nilable(Float)) }
771
+ attr_reader :echoprint_version
772
+
773
+ sig { params(echoprint_version: Float).void }
774
+ attr_writer :echoprint_version
775
+
776
+ # An [EchoPrint](https://github.com/spotify/echoprint-codegen) codestring for this
777
+ # track.
778
+ sig { returns(T.nilable(String)) }
779
+ attr_reader :echoprintstring
780
+
781
+ sig { params(echoprintstring: String).void }
782
+ attr_writer :echoprintstring
783
+
784
+ # The time, in seconds, at which the track's fade-in period ends. If the track has
785
+ # no fade-in, this will be 0.0.
786
+ sig { returns(T.nilable(Float)) }
787
+ attr_reader :end_of_fade_in
788
+
789
+ sig { params(end_of_fade_in: Float).void }
790
+ attr_writer :end_of_fade_in
791
+
792
+ # The key the track is in. Integers map to pitches using standard
793
+ # [Pitch Class notation](https://en.wikipedia.org/wiki/Pitch_class). E.g. 0 = C, 1
794
+ # = C♯/D♭, 2 = D, and so on. If no key was detected, the value is -1.
795
+ sig { returns(T.nilable(Integer)) }
796
+ attr_reader :key
797
+
798
+ sig { params(key: Integer).void }
799
+ attr_writer :key
800
+
801
+ # The confidence, from 0.0 to 1.0, of the reliability of the `key`.
802
+ sig { returns(T.nilable(Float)) }
803
+ attr_reader :key_confidence
804
+
805
+ sig { params(key_confidence: Float).void }
806
+ attr_writer :key_confidence
807
+
808
+ # The overall loudness of a track in decibels (dB). Loudness values are averaged
809
+ # across the entire track and are useful for comparing relative loudness of
810
+ # tracks. Loudness is the quality of a sound that is the primary psychological
811
+ # correlate of physical strength (amplitude). Values typically range between -60
812
+ # and 0 db.
813
+ sig { returns(T.nilable(Float)) }
814
+ attr_reader :loudness
815
+
816
+ sig { params(loudness: Float).void }
817
+ attr_writer :loudness
818
+
819
+ # Mode indicates the modality (major or minor) of a track, the type of scale from
820
+ # which its melodic content is derived. Major is represented by 1 and minor is 0.
821
+ sig { returns(T.nilable(Integer)) }
822
+ attr_reader :mode
823
+
824
+ sig { params(mode: Integer).void }
825
+ attr_writer :mode
826
+
827
+ # The confidence, from 0.0 to 1.0, of the reliability of the `mode`.
828
+ sig { returns(T.nilable(Float)) }
829
+ attr_reader :mode_confidence
830
+
831
+ sig { params(mode_confidence: Float).void }
832
+ attr_writer :mode_confidence
833
+
834
+ # The exact number of audio samples analyzed from this track. See also
835
+ # `analysis_sample_rate`.
836
+ sig { returns(T.nilable(Integer)) }
837
+ attr_reader :num_samples
838
+
839
+ sig { params(num_samples: Integer).void }
840
+ attr_writer :num_samples
841
+
842
+ # An offset to the start of the region of the track that was analyzed. (As the
843
+ # entire track is analyzed, this should always be 0.)
844
+ sig { returns(T.nilable(Integer)) }
845
+ attr_reader :offset_seconds
846
+
847
+ sig { params(offset_seconds: Integer).void }
848
+ attr_writer :offset_seconds
849
+
850
+ # A version number for the Rhythmstring used in the rhythmstring field.
851
+ sig { returns(T.nilable(Float)) }
852
+ attr_reader :rhythm_version
853
+
854
+ sig { params(rhythm_version: Float).void }
855
+ attr_writer :rhythm_version
856
+
857
+ # A Rhythmstring for this track. The format of this string is similar to the
858
+ # Synchstring.
859
+ sig { returns(T.nilable(String)) }
860
+ attr_reader :rhythmstring
861
+
862
+ sig { params(rhythmstring: String).void }
863
+ attr_writer :rhythmstring
864
+
865
+ # This field will always contain the empty string.
866
+ sig { returns(T.nilable(String)) }
867
+ attr_reader :sample_md5
868
+
869
+ sig { params(sample_md5: String).void }
870
+ attr_writer :sample_md5
871
+
872
+ # The time, in seconds, at which the track's fade-out period starts. If the track
873
+ # has no fade-out, this should match the track's length.
874
+ sig { returns(T.nilable(Float)) }
875
+ attr_reader :start_of_fade_out
876
+
877
+ sig { params(start_of_fade_out: Float).void }
878
+ attr_writer :start_of_fade_out
879
+
880
+ # A version number for the Synchstring used in the synchstring field.
881
+ sig { returns(T.nilable(Float)) }
882
+ attr_reader :synch_version
883
+
884
+ sig { params(synch_version: Float).void }
885
+ attr_writer :synch_version
886
+
887
+ # A [Synchstring](https://github.com/echonest/synchdata) for this track.
888
+ sig { returns(T.nilable(String)) }
889
+ attr_reader :synchstring
890
+
891
+ sig { params(synchstring: String).void }
892
+ attr_writer :synchstring
893
+
894
+ # The overall estimated tempo of a track in beats per minute (BPM). In musical
895
+ # terminology, tempo is the speed or pace of a given piece and derives directly
896
+ # from the average beat duration.
897
+ sig { returns(T.nilable(Float)) }
898
+ attr_reader :tempo
899
+
900
+ sig { params(tempo: Float).void }
901
+ attr_writer :tempo
902
+
903
+ # The confidence, from 0.0 to 1.0, of the reliability of the `tempo`.
904
+ sig { returns(T.nilable(Float)) }
905
+ attr_reader :tempo_confidence
906
+
907
+ sig { params(tempo_confidence: Float).void }
908
+ attr_writer :tempo_confidence
909
+
910
+ # An estimated time signature. The time signature (meter) is a notational
911
+ # convention to specify how many beats are in each bar (or measure). The time
912
+ # signature ranges from 3 to 7 indicating time signatures of "3/4", to "7/4".
913
+ sig { returns(T.nilable(Integer)) }
914
+ attr_reader :time_signature
915
+
916
+ sig { params(time_signature: Integer).void }
917
+ attr_writer :time_signature
918
+
919
+ # The confidence, from 0.0 to 1.0, of the reliability of the `time_signature`.
920
+ sig { returns(T.nilable(Float)) }
921
+ attr_reader :time_signature_confidence
922
+
923
+ sig { params(time_signature_confidence: Float).void }
924
+ attr_writer :time_signature_confidence
925
+
926
+ # The length of the region of the track was analyzed, if a subset of the track was
927
+ # analyzed. (As the entire track is analyzed, this should always be 0.)
928
+ sig { returns(T.nilable(Integer)) }
929
+ attr_reader :window_seconds
930
+
931
+ sig { params(window_seconds: Integer).void }
932
+ attr_writer :window_seconds
933
+
934
+ sig do
935
+ params(
936
+ analysis_channels: Integer,
937
+ analysis_sample_rate: Integer,
938
+ code_version: Float,
939
+ codestring: String,
940
+ duration: Float,
941
+ echoprint_version: Float,
942
+ echoprintstring: String,
943
+ end_of_fade_in: Float,
944
+ key: Integer,
945
+ key_confidence: Float,
946
+ loudness: Float,
947
+ mode: Integer,
948
+ mode_confidence: Float,
949
+ num_samples: Integer,
950
+ offset_seconds: Integer,
951
+ rhythm_version: Float,
952
+ rhythmstring: String,
953
+ sample_md5: String,
954
+ start_of_fade_out: Float,
955
+ synch_version: Float,
956
+ synchstring: String,
957
+ tempo: Float,
958
+ tempo_confidence: Float,
959
+ time_signature: Integer,
960
+ time_signature_confidence: Float,
961
+ window_seconds: Integer
962
+ ).returns(T.attached_class)
963
+ end
964
+ def self.new(
965
+ # The number of channels used for analysis. If 1, all channels are summed together
966
+ # to mono before analysis.
967
+ analysis_channels: nil,
968
+ # The sample rate used to decode and analyze this track. May differ from the
969
+ # actual sample rate of this track available on Spotify.
970
+ analysis_sample_rate: nil,
971
+ # A version number for the Echo Nest Musical Fingerprint format used in the
972
+ # codestring field.
973
+ code_version: nil,
974
+ # An
975
+ # [Echo Nest Musical Fingerprint (ENMFP)](https://academiccommons.columbia.edu/doi/10.7916/D8Q248M4)
976
+ # codestring for this track.
977
+ codestring: nil,
978
+ # Length of the track in seconds.
979
+ duration: nil,
980
+ # A version number for the EchoPrint format used in the echoprintstring field.
981
+ echoprint_version: nil,
982
+ # An [EchoPrint](https://github.com/spotify/echoprint-codegen) codestring for this
983
+ # track.
984
+ echoprintstring: nil,
985
+ # The time, in seconds, at which the track's fade-in period ends. If the track has
986
+ # no fade-in, this will be 0.0.
987
+ end_of_fade_in: nil,
988
+ # The key the track is in. Integers map to pitches using standard
989
+ # [Pitch Class notation](https://en.wikipedia.org/wiki/Pitch_class). E.g. 0 = C, 1
990
+ # = C♯/D♭, 2 = D, and so on. If no key was detected, the value is -1.
991
+ key: nil,
992
+ # The confidence, from 0.0 to 1.0, of the reliability of the `key`.
993
+ key_confidence: nil,
994
+ # The overall loudness of a track in decibels (dB). Loudness values are averaged
995
+ # across the entire track and are useful for comparing relative loudness of
996
+ # tracks. Loudness is the quality of a sound that is the primary psychological
997
+ # correlate of physical strength (amplitude). Values typically range between -60
998
+ # and 0 db.
999
+ loudness: nil,
1000
+ # Mode indicates the modality (major or minor) of a track, the type of scale from
1001
+ # which its melodic content is derived. Major is represented by 1 and minor is 0.
1002
+ mode: nil,
1003
+ # The confidence, from 0.0 to 1.0, of the reliability of the `mode`.
1004
+ mode_confidence: nil,
1005
+ # The exact number of audio samples analyzed from this track. See also
1006
+ # `analysis_sample_rate`.
1007
+ num_samples: nil,
1008
+ # An offset to the start of the region of the track that was analyzed. (As the
1009
+ # entire track is analyzed, this should always be 0.)
1010
+ offset_seconds: nil,
1011
+ # A version number for the Rhythmstring used in the rhythmstring field.
1012
+ rhythm_version: nil,
1013
+ # A Rhythmstring for this track. The format of this string is similar to the
1014
+ # Synchstring.
1015
+ rhythmstring: nil,
1016
+ # This field will always contain the empty string.
1017
+ sample_md5: nil,
1018
+ # The time, in seconds, at which the track's fade-out period starts. If the track
1019
+ # has no fade-out, this should match the track's length.
1020
+ start_of_fade_out: nil,
1021
+ # A version number for the Synchstring used in the synchstring field.
1022
+ synch_version: nil,
1023
+ # A [Synchstring](https://github.com/echonest/synchdata) for this track.
1024
+ synchstring: nil,
1025
+ # The overall estimated tempo of a track in beats per minute (BPM). In musical
1026
+ # terminology, tempo is the speed or pace of a given piece and derives directly
1027
+ # from the average beat duration.
1028
+ tempo: nil,
1029
+ # The confidence, from 0.0 to 1.0, of the reliability of the `tempo`.
1030
+ tempo_confidence: nil,
1031
+ # An estimated time signature. The time signature (meter) is a notational
1032
+ # convention to specify how many beats are in each bar (or measure). The time
1033
+ # signature ranges from 3 to 7 indicating time signatures of "3/4", to "7/4".
1034
+ time_signature: nil,
1035
+ # The confidence, from 0.0 to 1.0, of the reliability of the `time_signature`.
1036
+ time_signature_confidence: nil,
1037
+ # The length of the region of the track was analyzed, if a subset of the track was
1038
+ # analyzed. (As the entire track is analyzed, this should always be 0.)
1039
+ window_seconds: nil
1040
+ )
1041
+ end
1042
+
1043
+ sig do
1044
+ override.returns(
1045
+ {
1046
+ analysis_channels: Integer,
1047
+ analysis_sample_rate: Integer,
1048
+ code_version: Float,
1049
+ codestring: String,
1050
+ duration: Float,
1051
+ echoprint_version: Float,
1052
+ echoprintstring: String,
1053
+ end_of_fade_in: Float,
1054
+ key: Integer,
1055
+ key_confidence: Float,
1056
+ loudness: Float,
1057
+ mode: Integer,
1058
+ mode_confidence: Float,
1059
+ num_samples: Integer,
1060
+ offset_seconds: Integer,
1061
+ rhythm_version: Float,
1062
+ rhythmstring: String,
1063
+ sample_md5: String,
1064
+ start_of_fade_out: Float,
1065
+ synch_version: Float,
1066
+ synchstring: String,
1067
+ tempo: Float,
1068
+ tempo_confidence: Float,
1069
+ time_signature: Integer,
1070
+ time_signature_confidence: Float,
1071
+ window_seconds: Integer
1072
+ }
1073
+ )
1074
+ end
1075
+ def to_hash
1076
+ end
1077
+ end
1078
+ end
1079
+ end
1080
+ end