spotted 0.24.0 → 0.26.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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/spotted/internal/type/base_model.rb +1 -0
  5. data/lib/spotted/models/album_bulk_retrieve_response.rb +26 -2
  6. data/lib/spotted/models/album_restriction_object.rb +13 -1
  7. data/lib/spotted/models/album_retrieve_response.rb +26 -2
  8. data/lib/spotted/models/artist_list_albums_response.rb +13 -1
  9. data/lib/spotted/models/artist_object.rb +13 -1
  10. data/lib/spotted/models/audio_analysis_retrieve_response.rb +39 -3
  11. data/lib/spotted/models/audio_feature_bulk_retrieve_response.rb +13 -1
  12. data/lib/spotted/models/audio_feature_retrieve_response.rb +13 -1
  13. data/lib/spotted/models/audiobook_base.rb +13 -1
  14. data/lib/spotted/models/audiobook_bulk_retrieve_response.rb +13 -1
  15. data/lib/spotted/models/audiobook_retrieve_response.rb +13 -1
  16. data/lib/spotted/models/author_object.rb +13 -1
  17. data/lib/spotted/models/browse/category_get_playlists_response.rb +13 -1
  18. data/lib/spotted/models/browse/category_list_response.rb +26 -2
  19. data/lib/spotted/models/browse/category_retrieve_response.rb +13 -1
  20. data/lib/spotted/models/browse_get_featured_playlists_response.rb +13 -1
  21. data/lib/spotted/models/browse_get_new_releases_response.rb +26 -2
  22. data/lib/spotted/models/chapter_bulk_retrieve_response.rb +13 -1
  23. data/lib/spotted/models/chapter_restriction_object.rb +13 -1
  24. data/lib/spotted/models/chapter_retrieve_response.rb +13 -1
  25. data/lib/spotted/models/copyright_object.rb +13 -1
  26. data/lib/spotted/models/episode_object.rb +13 -1
  27. data/lib/spotted/models/episode_restriction_object.rb +13 -1
  28. data/lib/spotted/models/external_id_object.rb +13 -1
  29. data/lib/spotted/models/external_url_object.rb +13 -1
  30. data/lib/spotted/models/followers_object.rb +13 -1
  31. data/lib/spotted/models/image_object.rb +13 -1
  32. data/lib/spotted/models/linked_track_object.rb +13 -1
  33. data/lib/spotted/models/me/album_list_response.rb +39 -3
  34. data/lib/spotted/models/me/album_remove_params.rb +13 -1
  35. data/lib/spotted/models/me/album_save_params.rb +13 -1
  36. data/lib/spotted/models/me/audiobook_list_response.rb +26 -2
  37. data/lib/spotted/models/me/context_object.rb +13 -1
  38. data/lib/spotted/models/me/device_object.rb +13 -1
  39. data/lib/spotted/models/me/episode_list_response.rb +13 -1
  40. data/lib/spotted/models/me/episode_remove_params.rb +13 -1
  41. data/lib/spotted/models/me/episode_save_params.rb +13 -1
  42. data/lib/spotted/models/me/following_bulk_retrieve_response.rb +30 -2
  43. data/lib/spotted/models/me/following_follow_params.rb +13 -1
  44. data/lib/spotted/models/me/following_unfollow_params.rb +13 -1
  45. data/lib/spotted/models/me/player/queue_get_response.rb +16 -1
  46. data/lib/spotted/models/me/player_get_currently_playing_response.rb +30 -2
  47. data/lib/spotted/models/me/player_get_state_response.rb +29 -2
  48. data/lib/spotted/models/me/player_list_recently_played_response.rb +16 -1
  49. data/lib/spotted/models/me/player_start_playback_params.rb +13 -1
  50. data/lib/spotted/models/me/player_transfer_params.rb +13 -1
  51. data/lib/spotted/models/me/show_list_response.rb +13 -1
  52. data/lib/spotted/models/me/show_remove_params.rb +13 -1
  53. data/lib/spotted/models/me/show_save_params.rb +13 -1
  54. data/lib/spotted/models/me/track_list_response.rb +13 -1
  55. data/lib/spotted/models/me/track_remove_params.rb +13 -1
  56. data/lib/spotted/models/me/track_save_params.rb +13 -1
  57. data/lib/spotted/models/me_retrieve_response.rb +26 -2
  58. data/lib/spotted/models/narrator_object.rb +13 -1
  59. data/lib/spotted/models/paging_playlist_object.rb +13 -1
  60. data/lib/spotted/models/playlist_retrieve_response.rb +18 -5
  61. data/lib/spotted/models/playlist_track_object.rb +13 -1
  62. data/lib/spotted/models/playlist_tracks_ref_object.rb +13 -1
  63. data/lib/spotted/models/playlist_update_params.rb +13 -1
  64. data/lib/spotted/models/playlist_user_object.rb +13 -1
  65. data/lib/spotted/models/playlists/follower_follow_params.rb +13 -1
  66. data/lib/spotted/models/playlists/track_add_params.rb +13 -1
  67. data/lib/spotted/models/playlists/track_remove_params.rb +13 -1
  68. data/lib/spotted/models/playlists/track_update_params.rb +13 -1
  69. data/lib/spotted/models/recommendation_get_response.rb +26 -2
  70. data/lib/spotted/models/resume_point_object.rb +13 -1
  71. data/lib/spotted/models/search_query_response.rb +91 -7
  72. data/lib/spotted/models/show_base.rb +13 -1
  73. data/lib/spotted/models/show_retrieve_response.rb +13 -1
  74. data/lib/spotted/models/simplified_artist_object.rb +13 -1
  75. data/lib/spotted/models/simplified_chapter_object.rb +13 -1
  76. data/lib/spotted/models/simplified_episode_object.rb +13 -1
  77. data/lib/spotted/models/simplified_playlist_object.rb +5 -4
  78. data/lib/spotted/models/simplified_track_object.rb +13 -1
  79. data/lib/spotted/models/time_interval_object.rb +16 -1
  80. data/lib/spotted/models/track_object.rb +26 -2
  81. data/lib/spotted/models/track_restriction_object.rb +13 -1
  82. data/lib/spotted/models/user_retrieve_profile_response.rb +13 -1
  83. data/lib/spotted/models/users/playlist_create_params.rb +13 -1
  84. data/lib/spotted/models/users/playlist_create_response.rb +18 -5
  85. data/lib/spotted/resources/me/albums.rb +6 -2
  86. data/lib/spotted/resources/me/episodes.rb +6 -2
  87. data/lib/spotted/resources/me/following.rb +6 -2
  88. data/lib/spotted/resources/me/player.rb +6 -2
  89. data/lib/spotted/resources/me/shows.rb +6 -2
  90. data/lib/spotted/resources/me/tracks.rb +6 -2
  91. data/lib/spotted/resources/playlists/followers.rb +3 -1
  92. data/lib/spotted/resources/playlists/tracks.rb +9 -3
  93. data/lib/spotted/resources/playlists.rb +3 -1
  94. data/lib/spotted/resources/users/playlists.rb +3 -1
  95. data/lib/spotted/version.rb +1 -1
  96. data/rbi/spotted/models/album_bulk_retrieve_response.rbi +41 -3
  97. data/rbi/spotted/models/album_restriction_object.rbi +22 -1
  98. data/rbi/spotted/models/album_retrieve_response.rbi +41 -3
  99. data/rbi/spotted/models/artist_list_albums_response.rbi +19 -0
  100. data/rbi/spotted/models/artist_object.rbi +19 -0
  101. data/rbi/spotted/models/audio_analysis_retrieve_response.rbi +57 -0
  102. data/rbi/spotted/models/audio_feature_bulk_retrieve_response.rbi +19 -0
  103. data/rbi/spotted/models/audio_feature_retrieve_response.rbi +19 -0
  104. data/rbi/spotted/models/audiobook_base.rbi +20 -1
  105. data/rbi/spotted/models/audiobook_bulk_retrieve_response.rbi +22 -3
  106. data/rbi/spotted/models/audiobook_retrieve_response.rbi +22 -3
  107. data/rbi/spotted/models/author_object.rbi +22 -3
  108. data/rbi/spotted/models/browse/category_get_playlists_response.rbi +25 -3
  109. data/rbi/spotted/models/browse/category_list_response.rbi +44 -6
  110. data/rbi/spotted/models/browse/category_retrieve_response.rbi +22 -3
  111. data/rbi/spotted/models/browse_get_featured_playlists_response.rbi +25 -3
  112. data/rbi/spotted/models/browse_get_new_releases_response.rbi +41 -3
  113. data/rbi/spotted/models/chapter_bulk_retrieve_response.rbi +19 -0
  114. data/rbi/spotted/models/chapter_restriction_object.rbi +21 -2
  115. data/rbi/spotted/models/chapter_retrieve_response.rbi +19 -0
  116. data/rbi/spotted/models/copyright_object.rbi +25 -2
  117. data/rbi/spotted/models/episode_object.rbi +19 -0
  118. data/rbi/spotted/models/episode_restriction_object.rbi +21 -2
  119. data/rbi/spotted/models/external_id_object.rbi +28 -2
  120. data/rbi/spotted/models/external_url_object.rbi +21 -2
  121. data/rbi/spotted/models/followers_object.rbi +27 -4
  122. data/rbi/spotted/models/image_object.rbi +26 -3
  123. data/rbi/spotted/models/linked_track_object.rbi +19 -0
  124. data/rbi/spotted/models/me/album_list_response.rbi +63 -6
  125. data/rbi/spotted/models/me/album_remove_params.rbi +23 -1
  126. data/rbi/spotted/models/me/album_save_params.rbi +23 -1
  127. data/rbi/spotted/models/me/audiobook_list_response.rbi +44 -6
  128. data/rbi/spotted/models/me/context_object.rbi +19 -0
  129. data/rbi/spotted/models/me/device_object.rbi +19 -0
  130. data/rbi/spotted/models/me/episode_list_response.rbi +27 -3
  131. data/rbi/spotted/models/me/episode_remove_params.rbi +23 -1
  132. data/rbi/spotted/models/me/episode_save_params.rbi +23 -1
  133. data/rbi/spotted/models/me/following_bulk_retrieve_response.rbi +47 -3
  134. data/rbi/spotted/models/me/following_follow_params.rbi +23 -1
  135. data/rbi/spotted/models/me/following_unfollow_params.rbi +23 -1
  136. data/rbi/spotted/models/me/player/queue_get_response.rbi +19 -0
  137. data/rbi/spotted/models/me/player_get_currently_playing_response.rbi +38 -0
  138. data/rbi/spotted/models/me/player_get_state_response.rbi +38 -0
  139. data/rbi/spotted/models/me/player_list_recently_played_response.rbi +19 -0
  140. data/rbi/spotted/models/me/player_start_playback_params.rbi +19 -0
  141. data/rbi/spotted/models/me/player_transfer_params.rbi +19 -0
  142. data/rbi/spotted/models/me/show_list_response.rbi +27 -4
  143. data/rbi/spotted/models/me/show_remove_params.rbi +23 -1
  144. data/rbi/spotted/models/me/show_save_params.rbi +23 -1
  145. data/rbi/spotted/models/me/track_list_response.rbi +29 -4
  146. data/rbi/spotted/models/me/track_remove_params.rbi +23 -1
  147. data/rbi/spotted/models/me/track_save_params.rbi +19 -0
  148. data/rbi/spotted/models/me_retrieve_response.rbi +47 -5
  149. data/rbi/spotted/models/narrator_object.rbi +22 -3
  150. data/rbi/spotted/models/paging_playlist_object.rbi +22 -3
  151. data/rbi/spotted/models/playlist_retrieve_response.rbi +30 -9
  152. data/rbi/spotted/models/playlist_track_object.rbi +19 -0
  153. data/rbi/spotted/models/playlist_tracks_ref_object.rbi +27 -2
  154. data/rbi/spotted/models/playlist_update_params.rbi +19 -0
  155. data/rbi/spotted/models/playlist_user_object.rbi +19 -0
  156. data/rbi/spotted/models/playlists/follower_follow_params.rbi +23 -1
  157. data/rbi/spotted/models/playlists/track_add_params.rbi +19 -0
  158. data/rbi/spotted/models/playlists/track_remove_params.rbi +19 -0
  159. data/rbi/spotted/models/playlists/track_update_params.rbi +19 -0
  160. data/rbi/spotted/models/recommendation_get_response.rbi +41 -3
  161. data/rbi/spotted/models/resume_point_object.rbi +27 -4
  162. data/rbi/spotted/models/search_query_response.rbi +151 -18
  163. data/rbi/spotted/models/show_base.rbi +20 -1
  164. data/rbi/spotted/models/show_retrieve_response.rbi +22 -3
  165. data/rbi/spotted/models/simplified_artist_object.rbi +19 -0
  166. data/rbi/spotted/models/simplified_chapter_object.rbi +19 -0
  167. data/rbi/spotted/models/simplified_episode_object.rbi +19 -0
  168. data/rbi/spotted/models/simplified_playlist_object.rbi +8 -6
  169. data/rbi/spotted/models/simplified_track_object.rbi +19 -0
  170. data/rbi/spotted/models/time_interval_object.rbi +31 -4
  171. data/rbi/spotted/models/track_object.rbi +38 -0
  172. data/rbi/spotted/models/track_restriction_object.rbi +21 -2
  173. data/rbi/spotted/models/user_retrieve_profile_response.rbi +19 -0
  174. data/rbi/spotted/models/users/playlist_create_params.rbi +19 -0
  175. data/rbi/spotted/models/users/playlist_create_response.rbi +30 -9
  176. data/rbi/spotted/resources/me/albums.rbi +14 -0
  177. data/rbi/spotted/resources/me/episodes.rbi +14 -0
  178. data/rbi/spotted/resources/me/following.rbi +14 -0
  179. data/rbi/spotted/resources/me/player.rbi +14 -0
  180. data/rbi/spotted/resources/me/shows.rbi +14 -0
  181. data/rbi/spotted/resources/me/tracks.rbi +14 -0
  182. data/rbi/spotted/resources/playlists/followers.rbi +7 -0
  183. data/rbi/spotted/resources/playlists/tracks.rbi +21 -0
  184. data/rbi/spotted/resources/playlists.rbi +7 -0
  185. data/rbi/spotted/resources/users/playlists.rbi +7 -0
  186. data/sig/spotted/models/album_bulk_retrieve_response.rbs +17 -3
  187. data/sig/spotted/models/album_restriction_object.rbs +10 -1
  188. data/sig/spotted/models/album_retrieve_response.rbs +17 -3
  189. data/sig/spotted/models/artist_list_albums_response.rbs +7 -0
  190. data/sig/spotted/models/artist_object.rbs +7 -0
  191. data/sig/spotted/models/audio_analysis_retrieve_response.rbs +21 -0
  192. data/sig/spotted/models/audio_feature_bulk_retrieve_response.rbs +7 -0
  193. data/sig/spotted/models/audio_feature_retrieve_response.rbs +7 -0
  194. data/sig/spotted/models/audiobook_base.rbs +9 -2
  195. data/sig/spotted/models/audiobook_bulk_retrieve_response.rbs +10 -3
  196. data/sig/spotted/models/audiobook_retrieve_response.rbs +10 -3
  197. data/sig/spotted/models/author_object.rbs +7 -3
  198. data/sig/spotted/models/browse/category_get_playlists_response.rbs +13 -3
  199. data/sig/spotted/models/browse/category_list_response.rbs +20 -6
  200. data/sig/spotted/models/browse/category_retrieve_response.rbs +10 -3
  201. data/sig/spotted/models/browse_get_featured_playlists_response.rbs +13 -3
  202. data/sig/spotted/models/browse_get_new_releases_response.rbs +17 -3
  203. data/sig/spotted/models/chapter_bulk_retrieve_response.rbs +7 -0
  204. data/sig/spotted/models/chapter_restriction_object.rbs +7 -3
  205. data/sig/spotted/models/chapter_retrieve_response.rbs +7 -0
  206. data/sig/spotted/models/copyright_object.rbs +7 -3
  207. data/sig/spotted/models/episode_object.rbs +7 -0
  208. data/sig/spotted/models/episode_restriction_object.rbs +7 -3
  209. data/sig/spotted/models/external_id_object.rbs +19 -4
  210. data/sig/spotted/models/external_url_object.rbs +7 -3
  211. data/sig/spotted/models/followers_object.rbs +11 -3
  212. data/sig/spotted/models/image_object.rbs +18 -3
  213. data/sig/spotted/models/linked_track_object.rbs +7 -0
  214. data/sig/spotted/models/me/album_list_response.rbs +30 -6
  215. data/sig/spotted/models/me/album_remove_params.rbs +8 -1
  216. data/sig/spotted/models/me/album_save_params.rbs +8 -1
  217. data/sig/spotted/models/me/audiobook_list_response.rbs +20 -6
  218. data/sig/spotted/models/me/context_object.rbs +7 -0
  219. data/sig/spotted/models/me/device_object.rbs +7 -0
  220. data/sig/spotted/models/me/episode_list_response.rbs +12 -3
  221. data/sig/spotted/models/me/episode_remove_params.rbs +8 -1
  222. data/sig/spotted/models/me/episode_save_params.rbs +8 -1
  223. data/sig/spotted/models/me/following_bulk_retrieve_response.rbs +18 -3
  224. data/sig/spotted/models/me/following_follow_params.rbs +8 -1
  225. data/sig/spotted/models/me/following_unfollow_params.rbs +8 -1
  226. data/sig/spotted/models/me/player/queue_get_response.rbs +7 -0
  227. data/sig/spotted/models/me/player_get_currently_playing_response.rbs +14 -0
  228. data/sig/spotted/models/me/player_get_state_response.rbs +14 -0
  229. data/sig/spotted/models/me/player_list_recently_played_response.rbs +7 -0
  230. data/sig/spotted/models/me/player_start_playback_params.rbs +7 -0
  231. data/sig/spotted/models/me/player_transfer_params.rbs +7 -1
  232. data/sig/spotted/models/me/show_list_response.rbs +16 -3
  233. data/sig/spotted/models/me/show_remove_params.rbs +8 -1
  234. data/sig/spotted/models/me/show_save_params.rbs +8 -1
  235. data/sig/spotted/models/me/track_list_response.rbs +16 -3
  236. data/sig/spotted/models/me/track_remove_params.rbs +8 -1
  237. data/sig/spotted/models/me/track_save_params.rbs +7 -0
  238. data/sig/spotted/models/me_retrieve_response.rbs +23 -3
  239. data/sig/spotted/models/narrator_object.rbs +7 -3
  240. data/sig/spotted/models/paging_playlist_object.rbs +10 -3
  241. data/sig/spotted/models/playlist_retrieve_response.rbs +10 -3
  242. data/sig/spotted/models/playlist_track_object.rbs +7 -0
  243. data/sig/spotted/models/playlist_tracks_ref_object.rbs +8 -3
  244. data/sig/spotted/models/playlist_update_params.rbs +13 -1
  245. data/sig/spotted/models/playlist_user_object.rbs +7 -0
  246. data/sig/spotted/models/playlists/follower_follow_params.rbs +8 -1
  247. data/sig/spotted/models/playlists/track_add_params.rbs +7 -1
  248. data/sig/spotted/models/playlists/track_remove_params.rbs +7 -0
  249. data/sig/spotted/models/playlists/track_update_params.rbs +7 -0
  250. data/sig/spotted/models/recommendation_get_response.rbs +17 -3
  251. data/sig/spotted/models/resume_point_object.rbs +11 -2
  252. data/sig/spotted/models/search_query_response.rbs +67 -18
  253. data/sig/spotted/models/show_base.rbs +9 -2
  254. data/sig/spotted/models/show_retrieve_response.rbs +10 -3
  255. data/sig/spotted/models/simplified_artist_object.rbs +7 -0
  256. data/sig/spotted/models/simplified_chapter_object.rbs +7 -0
  257. data/sig/spotted/models/simplified_episode_object.rbs +7 -0
  258. data/sig/spotted/models/simplified_track_object.rbs +7 -0
  259. data/sig/spotted/models/time_interval_object.rbs +12 -2
  260. data/sig/spotted/models/track_object.rbs +14 -0
  261. data/sig/spotted/models/track_restriction_object.rbs +7 -3
  262. data/sig/spotted/models/user_retrieve_profile_response.rbs +7 -0
  263. data/sig/spotted/models/users/playlist_create_params.rbs +13 -1
  264. data/sig/spotted/models/users/playlist_create_response.rbs +10 -3
  265. data/sig/spotted/resources/me/albums.rbs +2 -0
  266. data/sig/spotted/resources/me/episodes.rbs +2 -0
  267. data/sig/spotted/resources/me/following.rbs +2 -0
  268. data/sig/spotted/resources/me/player.rbs +2 -0
  269. data/sig/spotted/resources/me/shows.rbs +2 -0
  270. data/sig/spotted/resources/me/tracks.rbs +2 -0
  271. data/sig/spotted/resources/playlists/followers.rbs +1 -0
  272. data/sig/spotted/resources/playlists/tracks.rbs +3 -0
  273. data/sig/spotted/resources/playlists.rbs +1 -0
  274. data/sig/spotted/resources/users/playlists.rbs +1 -0
  275. metadata +2 -2
@@ -23,9 +23,21 @@ module Spotted
23
23
  sig { returns(T::Array[String]) }
24
24
  attr_accessor :ids
25
25
 
26
+ # The playlist's public/private status (if it should be added to the user's
27
+ # profile or not): `true` the playlist will be public, `false` the playlist will
28
+ # be private, `null` the playlist status is not relevant. For more about
29
+ # public/private status, see
30
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :published
33
+
34
+ sig { params(published: T::Boolean).void }
35
+ attr_writer :published
36
+
26
37
  sig do
27
38
  params(
28
39
  ids: T::Array[String],
40
+ published: T::Boolean,
29
41
  request_options: Spotted::RequestOptions::OrHash
30
42
  ).returns(T.attached_class)
31
43
  end
@@ -36,13 +48,23 @@ module Spotted
36
48
  # IDs can be sent in one request. _**Note**: if the `ids` parameter is present in
37
49
  # the query string, any IDs listed here in the body will be ignored._
38
50
  ids:,
51
+ # The playlist's public/private status (if it should be added to the user's
52
+ # profile or not): `true` the playlist will be public, `false` the playlist will
53
+ # be private, `null` the playlist status is not relevant. For more about
54
+ # public/private status, see
55
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
56
+ published: nil,
39
57
  request_options: {}
40
58
  )
41
59
  end
42
60
 
43
61
  sig do
44
62
  override.returns(
45
- { ids: T::Array[String], request_options: Spotted::RequestOptions }
63
+ {
64
+ ids: T::Array[String],
65
+ published: T::Boolean,
66
+ request_options: Spotted::RequestOptions
67
+ }
46
68
  )
47
69
  end
48
70
  def to_hash
@@ -26,9 +26,21 @@ module Spotted
26
26
  sig { params(ids: T::Array[String]).void }
27
27
  attr_writer :ids
28
28
 
29
+ # The playlist's public/private status (if it should be added to the user's
30
+ # profile or not): `true` the playlist will be public, `false` the playlist will
31
+ # be private, `null` the playlist status is not relevant. For more about
32
+ # public/private status, see
33
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :published
36
+
37
+ sig { params(published: T::Boolean).void }
38
+ attr_writer :published
39
+
29
40
  sig do
30
41
  params(
31
42
  ids: T::Array[String],
43
+ published: T::Boolean,
32
44
  request_options: Spotted::RequestOptions::OrHash
33
45
  ).returns(T.attached_class)
34
46
  end
@@ -39,13 +51,23 @@ module Spotted
39
51
  # IDs can be sent in one request. _**Note**: if the `ids` parameter is present in
40
52
  # the query string, any IDs listed here in the body will be ignored._
41
53
  ids: nil,
54
+ # The playlist's public/private status (if it should be added to the user's
55
+ # profile or not): `true` the playlist will be public, `false` the playlist will
56
+ # be private, `null` the playlist status is not relevant. For more about
57
+ # public/private status, see
58
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
59
+ published: nil,
42
60
  request_options: {}
43
61
  )
44
62
  end
45
63
 
46
64
  sig do
47
65
  override.returns(
48
- { ids: T::Array[String], request_options: Spotted::RequestOptions }
66
+ {
67
+ ids: T::Array[String],
68
+ published: T::Boolean,
69
+ request_options: Spotted::RequestOptions
70
+ }
49
71
  )
50
72
  end
51
73
  def to_hash
@@ -34,6 +34,17 @@ module Spotted
34
34
  end
35
35
  attr_writer :currently_playing
36
36
 
37
+ # The playlist's public/private status (if it should be added to the user's
38
+ # profile or not): `true` the playlist will be public, `false` the playlist will
39
+ # be private, `null` the playlist status is not relevant. For more about
40
+ # public/private status, see
41
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
42
+ sig { returns(T.nilable(T::Boolean)) }
43
+ attr_reader :published
44
+
45
+ sig { params(published: T::Boolean).void }
46
+ attr_writer :published
47
+
37
48
  # The tracks or episodes in the queue. Can be empty.
38
49
  sig do
39
50
  returns(
@@ -66,6 +77,7 @@ module Spotted
66
77
  Spotted::TrackObject::OrHash,
67
78
  Spotted::EpisodeObject::OrHash
68
79
  ),
80
+ published: T::Boolean,
69
81
  queue:
70
82
  T::Array[
71
83
  T.any(
@@ -78,6 +90,12 @@ module Spotted
78
90
  def self.new(
79
91
  # The currently playing track or episode. Can be `null`.
80
92
  currently_playing: nil,
93
+ # The playlist's public/private status (if it should be added to the user's
94
+ # profile or not): `true` the playlist will be public, `false` the playlist will
95
+ # be private, `null` the playlist status is not relevant. For more about
96
+ # public/private status, see
97
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
98
+ published: nil,
81
99
  # The tracks or episodes in the queue. Can be empty.
82
100
  queue: nil
83
101
  )
@@ -88,6 +106,7 @@ module Spotted
88
106
  {
89
107
  currently_playing:
90
108
  Spotted::Models::Me::Player::QueueGetResponse::CurrentlyPlaying::Variants,
109
+ published: T::Boolean,
91
110
  queue:
92
111
  T::Array[
93
112
  Spotted::Models::Me::Player::QueueGetResponse::Queue::Variants
@@ -81,6 +81,17 @@ module Spotted
81
81
  sig { params(progress_ms: Integer).void }
82
82
  attr_writer :progress_ms
83
83
 
84
+ # The playlist's public/private status (if it should be added to the user's
85
+ # profile or not): `true` the playlist will be public, `false` the playlist will
86
+ # be private, `null` the playlist status is not relevant. For more about
87
+ # public/private status, see
88
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
89
+ sig { returns(T.nilable(T::Boolean)) }
90
+ attr_reader :published
91
+
92
+ sig { params(published: T::Boolean).void }
93
+ attr_writer :published
94
+
84
95
  # Unix Millisecond Timestamp when data was fetched
85
96
  sig { returns(T.nilable(Integer)) }
86
97
  attr_reader :timestamp
@@ -101,6 +112,7 @@ module Spotted
101
112
  Spotted::EpisodeObject::OrHash
102
113
  ),
103
114
  progress_ms: Integer,
115
+ published: T::Boolean,
104
116
  timestamp: Integer
105
117
  ).returns(T.attached_class)
106
118
  end
@@ -119,6 +131,12 @@ module Spotted
119
131
  item: nil,
120
132
  # Progress into the currently playing track or episode. Can be `null`.
121
133
  progress_ms: nil,
134
+ # The playlist's public/private status (if it should be added to the user's
135
+ # profile or not): `true` the playlist will be public, `false` the playlist will
136
+ # be private, `null` the playlist status is not relevant. For more about
137
+ # public/private status, see
138
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
139
+ published: nil,
122
140
  # Unix Millisecond Timestamp when data was fetched
123
141
  timestamp: nil
124
142
  )
@@ -135,6 +153,7 @@ module Spotted
135
153
  item:
136
154
  Spotted::Models::Me::PlayerGetCurrentlyPlayingResponse::Item::Variants,
137
155
  progress_ms: Integer,
156
+ published: T::Boolean,
138
157
  timestamp: Integer
139
158
  }
140
159
  )
@@ -165,6 +184,17 @@ module Spotted
165
184
  sig { params(pausing: T::Boolean).void }
166
185
  attr_writer :pausing
167
186
 
187
+ # The playlist's public/private status (if it should be added to the user's
188
+ # profile or not): `true` the playlist will be public, `false` the playlist will
189
+ # be private, `null` the playlist status is not relevant. For more about
190
+ # public/private status, see
191
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
192
+ sig { returns(T.nilable(T::Boolean)) }
193
+ attr_reader :published
194
+
195
+ sig { params(published: T::Boolean).void }
196
+ attr_writer :published
197
+
168
198
  # Resuming. Optional field.
169
199
  sig { returns(T.nilable(T::Boolean)) }
170
200
  attr_reader :resuming
@@ -227,6 +257,7 @@ module Spotted
227
257
  params(
228
258
  interrupting_playback: T::Boolean,
229
259
  pausing: T::Boolean,
260
+ published: T::Boolean,
230
261
  resuming: T::Boolean,
231
262
  seeking: T::Boolean,
232
263
  skipping_next: T::Boolean,
@@ -242,6 +273,12 @@ module Spotted
242
273
  interrupting_playback: nil,
243
274
  # Pausing. Optional field.
244
275
  pausing: nil,
276
+ # The playlist's public/private status (if it should be added to the user's
277
+ # profile or not): `true` the playlist will be public, `false` the playlist will
278
+ # be private, `null` the playlist status is not relevant. For more about
279
+ # public/private status, see
280
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
281
+ published: nil,
245
282
  # Resuming. Optional field.
246
283
  resuming: nil,
247
284
  # Seeking playback location. Optional field.
@@ -266,6 +303,7 @@ module Spotted
266
303
  {
267
304
  interrupting_playback: T::Boolean,
268
305
  pausing: T::Boolean,
306
+ published: T::Boolean,
269
307
  resuming: T::Boolean,
270
308
  seeking: T::Boolean,
271
309
  skipping_next: T::Boolean,
@@ -86,6 +86,17 @@ module Spotted
86
86
  sig { params(progress_ms: Integer).void }
87
87
  attr_writer :progress_ms
88
88
 
89
+ # The playlist's public/private status (if it should be added to the user's
90
+ # profile or not): `true` the playlist will be public, `false` the playlist will
91
+ # be private, `null` the playlist status is not relevant. For more about
92
+ # public/private status, see
93
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
94
+ sig { returns(T.nilable(T::Boolean)) }
95
+ attr_reader :published
96
+
97
+ sig { params(published: T::Boolean).void }
98
+ attr_writer :published
99
+
89
100
  # off, track, context
90
101
  sig { returns(T.nilable(String)) }
91
102
  attr_reader :repeat_state
@@ -122,6 +133,7 @@ module Spotted
122
133
  Spotted::EpisodeObject::OrHash
123
134
  ),
124
135
  progress_ms: Integer,
136
+ published: T::Boolean,
125
137
  repeat_state: String,
126
138
  shuffle_state: T::Boolean,
127
139
  timestamp: Integer
@@ -144,6 +156,12 @@ module Spotted
144
156
  item: nil,
145
157
  # Progress into the currently playing track or episode. Can be `null`.
146
158
  progress_ms: nil,
159
+ # The playlist's public/private status (if it should be added to the user's
160
+ # profile or not): `true` the playlist will be public, `false` the playlist will
161
+ # be private, `null` the playlist status is not relevant. For more about
162
+ # public/private status, see
163
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
164
+ published: nil,
147
165
  # off, track, context
148
166
  repeat_state: nil,
149
167
  # If shuffle is on or off.
@@ -164,6 +182,7 @@ module Spotted
164
182
  is_playing: T::Boolean,
165
183
  item: Spotted::Models::Me::PlayerGetStateResponse::Item::Variants,
166
184
  progress_ms: Integer,
185
+ published: T::Boolean,
167
186
  repeat_state: String,
168
187
  shuffle_state: T::Boolean,
169
188
  timestamp: Integer
@@ -196,6 +215,17 @@ module Spotted
196
215
  sig { params(pausing: T::Boolean).void }
197
216
  attr_writer :pausing
198
217
 
218
+ # The playlist's public/private status (if it should be added to the user's
219
+ # profile or not): `true` the playlist will be public, `false` the playlist will
220
+ # be private, `null` the playlist status is not relevant. For more about
221
+ # public/private status, see
222
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
223
+ sig { returns(T.nilable(T::Boolean)) }
224
+ attr_reader :published
225
+
226
+ sig { params(published: T::Boolean).void }
227
+ attr_writer :published
228
+
199
229
  # Resuming. Optional field.
200
230
  sig { returns(T.nilable(T::Boolean)) }
201
231
  attr_reader :resuming
@@ -258,6 +288,7 @@ module Spotted
258
288
  params(
259
289
  interrupting_playback: T::Boolean,
260
290
  pausing: T::Boolean,
291
+ published: T::Boolean,
261
292
  resuming: T::Boolean,
262
293
  seeking: T::Boolean,
263
294
  skipping_next: T::Boolean,
@@ -273,6 +304,12 @@ module Spotted
273
304
  interrupting_playback: nil,
274
305
  # Pausing. Optional field.
275
306
  pausing: nil,
307
+ # The playlist's public/private status (if it should be added to the user's
308
+ # profile or not): `true` the playlist will be public, `false` the playlist will
309
+ # be private, `null` the playlist status is not relevant. For more about
310
+ # public/private status, see
311
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
312
+ published: nil,
276
313
  # Resuming. Optional field.
277
314
  resuming: nil,
278
315
  # Seeking playback location. Optional field.
@@ -297,6 +334,7 @@ module Spotted
297
334
  {
298
335
  interrupting_playback: T::Boolean,
299
336
  pausing: T::Boolean,
337
+ published: T::Boolean,
300
338
  resuming: T::Boolean,
301
339
  seeking: T::Boolean,
302
340
  skipping_next: T::Boolean,
@@ -26,6 +26,17 @@ module Spotted
26
26
  sig { params(played_at: Time).void }
27
27
  attr_writer :played_at
28
28
 
29
+ # The playlist's public/private status (if it should be added to the user's
30
+ # profile or not): `true` the playlist will be public, `false` the playlist will
31
+ # be private, `null` the playlist status is not relevant. For more about
32
+ # public/private status, see
33
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :published
36
+
37
+ sig { params(published: T::Boolean).void }
38
+ attr_writer :published
39
+
29
40
  # The track the user listened to.
30
41
  sig { returns(T.nilable(Spotted::TrackObject)) }
31
42
  attr_reader :track
@@ -37,6 +48,7 @@ module Spotted
37
48
  params(
38
49
  context: Spotted::Me::ContextObject::OrHash,
39
50
  played_at: Time,
51
+ published: T::Boolean,
40
52
  track: Spotted::TrackObject::OrHash
41
53
  ).returns(T.attached_class)
42
54
  end
@@ -45,6 +57,12 @@ module Spotted
45
57
  context: nil,
46
58
  # The date and time the track was played.
47
59
  played_at: nil,
60
+ # The playlist's public/private status (if it should be added to the user's
61
+ # profile or not): `true` the playlist will be public, `false` the playlist will
62
+ # be private, `null` the playlist status is not relevant. For more about
63
+ # public/private status, see
64
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
65
+ published: nil,
48
66
  # The track the user listened to.
49
67
  track: nil
50
68
  )
@@ -55,6 +73,7 @@ module Spotted
55
73
  {
56
74
  context: Spotted::Me::ContextObject,
57
75
  played_at: Time,
76
+ published: T::Boolean,
58
77
  track: Spotted::TrackObject
59
78
  }
60
79
  )
@@ -51,6 +51,17 @@ module Spotted
51
51
  sig { params(position_ms: Integer).void }
52
52
  attr_writer :position_ms
53
53
 
54
+ # The playlist's public/private status (if it should be added to the user's
55
+ # profile or not): `true` the playlist will be public, `false` the playlist will
56
+ # be private, `null` the playlist status is not relevant. For more about
57
+ # public/private status, see
58
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
59
+ sig { returns(T.nilable(T::Boolean)) }
60
+ attr_reader :published
61
+
62
+ sig { params(published: T::Boolean).void }
63
+ attr_writer :published
64
+
54
65
  # Optional. A JSON array of the Spotify track URIs to play. For example:
55
66
  # `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}`
56
67
  sig { returns(T.nilable(T::Array[String])) }
@@ -65,6 +76,7 @@ module Spotted
65
76
  context_uri: String,
66
77
  offset: T::Hash[Symbol, T.anything],
67
78
  position_ms: Integer,
79
+ published: T::Boolean,
68
80
  uris: T::Array[String],
69
81
  request_options: Spotted::RequestOptions::OrHash
70
82
  ).returns(T.attached_class)
@@ -86,6 +98,12 @@ module Spotted
86
98
  # Passing in a position that is greater than the length of the track will cause
87
99
  # the player to start playing the next song.
88
100
  position_ms: nil,
101
+ # The playlist's public/private status (if it should be added to the user's
102
+ # profile or not): `true` the playlist will be public, `false` the playlist will
103
+ # be private, `null` the playlist status is not relevant. For more about
104
+ # public/private status, see
105
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
106
+ published: nil,
89
107
  # Optional. A JSON array of the Spotify track URIs to play. For example:
90
108
  # `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}`
91
109
  uris: nil,
@@ -100,6 +118,7 @@ module Spotted
100
118
  context_uri: String,
101
119
  offset: T::Hash[Symbol, T.anything],
102
120
  position_ms: Integer,
121
+ published: T::Boolean,
103
122
  uris: T::Array[String],
104
123
  request_options: Spotted::RequestOptions
105
124
  }
@@ -28,10 +28,22 @@ module Spotted
28
28
  sig { params(play: T::Boolean).void }
29
29
  attr_writer :play
30
30
 
31
+ # The playlist's public/private status (if it should be added to the user's
32
+ # profile or not): `true` the playlist will be public, `false` the playlist will
33
+ # be private, `null` the playlist status is not relevant. For more about
34
+ # public/private status, see
35
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
36
+ sig { returns(T.nilable(T::Boolean)) }
37
+ attr_reader :published
38
+
39
+ sig { params(published: T::Boolean).void }
40
+ attr_writer :published
41
+
31
42
  sig do
32
43
  params(
33
44
  device_ids: T::Array[String],
34
45
  play: T::Boolean,
46
+ published: T::Boolean,
35
47
  request_options: Spotted::RequestOptions::OrHash
36
48
  ).returns(T.attached_class)
37
49
  end
@@ -45,6 +57,12 @@ module Spotted
45
57
  # **true**: ensure playback happens on new device.<br/>**false** or not provided:
46
58
  # keep the current playback state.
47
59
  play: nil,
60
+ # The playlist's public/private status (if it should be added to the user's
61
+ # profile or not): `true` the playlist will be public, `false` the playlist will
62
+ # be private, `null` the playlist status is not relevant. For more about
63
+ # public/private status, see
64
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
65
+ published: nil,
48
66
  request_options: {}
49
67
  )
50
68
  end
@@ -54,6 +72,7 @@ module Spotted
54
72
  {
55
73
  device_ids: T::Array[String],
56
74
  play: T::Boolean,
75
+ published: T::Boolean,
57
76
  request_options: Spotted::RequestOptions
58
77
  }
59
78
  )
@@ -23,6 +23,17 @@ module Spotted
23
23
  sig { params(added_at: Time).void }
24
24
  attr_writer :added_at
25
25
 
26
+ # The playlist's public/private status (if it should be added to the user's
27
+ # profile or not): `true` the playlist will be public, `false` the playlist will
28
+ # be private, `null` the playlist status is not relevant. For more about
29
+ # public/private status, see
30
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :published
33
+
34
+ sig { params(published: T::Boolean).void }
35
+ attr_writer :published
36
+
26
37
  # Information about the show.
27
38
  sig { returns(T.nilable(Spotted::ShowBase)) }
28
39
  attr_reader :show
@@ -31,9 +42,11 @@ module Spotted
31
42
  attr_writer :show
32
43
 
33
44
  sig do
34
- params(added_at: Time, show: Spotted::ShowBase::OrHash).returns(
35
- T.attached_class
36
- )
45
+ params(
46
+ added_at: Time,
47
+ published: T::Boolean,
48
+ show: Spotted::ShowBase::OrHash
49
+ ).returns(T.attached_class)
37
50
  end
38
51
  def self.new(
39
52
  # The date and time the show was saved. Timestamps are returned in ISO 8601 format
@@ -42,12 +55,22 @@ module Spotted
42
55
  # additional field indicates the precision; see for example, release_date in an
43
56
  # album object.
44
57
  added_at: nil,
58
+ # The playlist's public/private status (if it should be added to the user's
59
+ # profile or not): `true` the playlist will be public, `false` the playlist will
60
+ # be private, `null` the playlist status is not relevant. For more about
61
+ # public/private status, see
62
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
63
+ published: nil,
45
64
  # Information about the show.
46
65
  show: nil
47
66
  )
48
67
  end
49
68
 
50
- sig { override.returns({ added_at: Time, show: Spotted::ShowBase }) }
69
+ sig do
70
+ override.returns(
71
+ { added_at: Time, published: T::Boolean, show: Spotted::ShowBase }
72
+ )
73
+ end
51
74
  def to_hash
52
75
  end
53
76
  end
@@ -23,9 +23,21 @@ module Spotted
23
23
  sig { params(ids: T::Array[String]).void }
24
24
  attr_writer :ids
25
25
 
26
+ # The playlist's public/private status (if it should be added to the user's
27
+ # profile or not): `true` the playlist will be public, `false` the playlist will
28
+ # be private, `null` the playlist status is not relevant. For more about
29
+ # public/private status, see
30
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :published
33
+
34
+ sig { params(published: T::Boolean).void }
35
+ attr_writer :published
36
+
26
37
  sig do
27
38
  params(
28
39
  ids: T::Array[String],
40
+ published: T::Boolean,
29
41
  request_options: Spotted::RequestOptions::OrHash
30
42
  ).returns(T.attached_class)
31
43
  end
@@ -36,13 +48,23 @@ module Spotted
36
48
  # parameter is present in the query string, any IDs listed here in the body will
37
49
  # be ignored._
38
50
  ids: nil,
51
+ # The playlist's public/private status (if it should be added to the user's
52
+ # profile or not): `true` the playlist will be public, `false` the playlist will
53
+ # be private, `null` the playlist status is not relevant. For more about
54
+ # public/private status, see
55
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
56
+ published: nil,
39
57
  request_options: {}
40
58
  )
41
59
  end
42
60
 
43
61
  sig do
44
62
  override.returns(
45
- { ids: T::Array[String], request_options: Spotted::RequestOptions }
63
+ {
64
+ ids: T::Array[String],
65
+ published: T::Boolean,
66
+ request_options: Spotted::RequestOptions
67
+ }
46
68
  )
47
69
  end
48
70
  def to_hash
@@ -23,9 +23,21 @@ module Spotted
23
23
  sig { params(ids: T::Array[String]).void }
24
24
  attr_writer :ids
25
25
 
26
+ # The playlist's public/private status (if it should be added to the user's
27
+ # profile or not): `true` the playlist will be public, `false` the playlist will
28
+ # be private, `null` the playlist status is not relevant. For more about
29
+ # public/private status, see
30
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :published
33
+
34
+ sig { params(published: T::Boolean).void }
35
+ attr_writer :published
36
+
26
37
  sig do
27
38
  params(
28
39
  ids: T::Array[String],
40
+ published: T::Boolean,
29
41
  request_options: Spotted::RequestOptions::OrHash
30
42
  ).returns(T.attached_class)
31
43
  end
@@ -36,13 +48,23 @@ module Spotted
36
48
  # parameter is present in the query string, any IDs listed here in the body will
37
49
  # be ignored._
38
50
  ids: nil,
51
+ # The playlist's public/private status (if it should be added to the user's
52
+ # profile or not): `true` the playlist will be public, `false` the playlist will
53
+ # be private, `null` the playlist status is not relevant. For more about
54
+ # public/private status, see
55
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
56
+ published: nil,
39
57
  request_options: {}
40
58
  )
41
59
  end
42
60
 
43
61
  sig do
44
62
  override.returns(
45
- { ids: T::Array[String], request_options: Spotted::RequestOptions }
63
+ {
64
+ ids: T::Array[String],
65
+ published: T::Boolean,
66
+ request_options: Spotted::RequestOptions
67
+ }
46
68
  )
47
69
  end
48
70
  def to_hash
@@ -23,6 +23,17 @@ module Spotted
23
23
  sig { params(added_at: Time).void }
24
24
  attr_writer :added_at
25
25
 
26
+ # The playlist's public/private status (if it should be added to the user's
27
+ # profile or not): `true` the playlist will be public, `false` the playlist will
28
+ # be private, `null` the playlist status is not relevant. For more about
29
+ # public/private status, see
30
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :published
33
+
34
+ sig { params(published: T::Boolean).void }
35
+ attr_writer :published
36
+
26
37
  # Information about the track.
27
38
  sig { returns(T.nilable(Spotted::TrackObject)) }
28
39
  attr_reader :track
@@ -31,9 +42,11 @@ module Spotted
31
42
  attr_writer :track
32
43
 
33
44
  sig do
34
- params(added_at: Time, track: Spotted::TrackObject::OrHash).returns(
35
- T.attached_class
36
- )
45
+ params(
46
+ added_at: Time,
47
+ published: T::Boolean,
48
+ track: Spotted::TrackObject::OrHash
49
+ ).returns(T.attached_class)
37
50
  end
38
51
  def self.new(
39
52
  # The date and time the track was saved. Timestamps are returned in ISO 8601
@@ -42,13 +55,25 @@ module Spotted
42
55
  # album release), an additional field indicates the precision; see for example,
43
56
  # release_date in an album object.
44
57
  added_at: nil,
58
+ # The playlist's public/private status (if it should be added to the user's
59
+ # profile or not): `true` the playlist will be public, `false` the playlist will
60
+ # be private, `null` the playlist status is not relevant. For more about
61
+ # public/private status, see
62
+ # [Working with Playlists](/documentation/web-api/concepts/playlists)
63
+ published: nil,
45
64
  # Information about the track.
46
65
  track: nil
47
66
  )
48
67
  end
49
68
 
50
69
  sig do
51
- override.returns({ added_at: Time, track: Spotted::TrackObject })
70
+ override.returns(
71
+ {
72
+ added_at: Time,
73
+ published: T::Boolean,
74
+ track: Spotted::TrackObject
75
+ }
76
+ )
52
77
  end
53
78
  def to_hash
54
79
  end