songtradr_api_client_ruby 1.13.7 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -5
  3. data/README.md +5 -37
  4. data/docs/FileSmallDTO.md +2 -2
  5. data/docs/MusicalFeaturesDTO.md +25 -25
  6. data/docs/PlaylistApi.md +0 -214
  7. data/docs/RecordingApi.md +2 -204
  8. data/docs/RecordingGenrePredictionDTO.md +3 -3
  9. data/docs/RecordingMediumDTO.md +2 -2
  10. data/docs/RecordingPartyDTO.md +3 -3
  11. data/docs/UserApi.md +8 -456
  12. data/lib/songtradr_api_client_ruby/api/allowed_values_api.rb +2 -2
  13. data/lib/songtradr_api_client_ruby/api/playlist_api.rb +2 -202
  14. data/lib/songtradr_api_client_ruby/api/recording_api.rb +6 -191
  15. data/lib/songtradr_api_client_ruby/api/user_api.rb +161 -749
  16. data/lib/songtradr_api_client_ruby/api_client.rb +38 -36
  17. data/lib/songtradr_api_client_ruby/api_error.rb +2 -2
  18. data/lib/songtradr_api_client_ruby/configuration.rb +2 -2
  19. data/lib/songtradr_api_client_ruby/models/age_range.rb +3 -3
  20. data/lib/songtradr_api_client_ruby/models/beard.rb +3 -3
  21. data/lib/songtradr_api_client_ruby/models/bounding_box.rb +3 -3
  22. data/lib/songtradr_api_client_ruby/models/category_medium_dto.rb +3 -3
  23. data/lib/songtradr_api_client_ruby/models/category_minimal_dto.rb +3 -3
  24. data/lib/songtradr_api_client_ruby/models/config_access_dto.rb +3 -3
  25. data/lib/songtradr_api_client_ruby/models/config_identifier_dto.rb +3 -3
  26. data/lib/songtradr_api_client_ruby/models/contributor_type_dto.rb +3 -3
  27. data/lib/songtradr_api_client_ruby/models/curate_playlist_dto.rb +3 -3
  28. data/lib/songtradr_api_client_ruby/models/curate_playlist_response_dto.rb +3 -3
  29. data/lib/songtradr_api_client_ruby/models/dominant_color.rb +3 -3
  30. data/lib/songtradr_api_client_ruby/models/emotion.rb +3 -3
  31. data/lib/songtradr_api_client_ruby/models/error_response.rb +3 -3
  32. data/lib/songtradr_api_client_ruby/models/eye_direction.rb +3 -3
  33. data/lib/songtradr_api_client_ruby/models/eye_open.rb +3 -3
  34. data/lib/songtradr_api_client_ruby/models/eyeglasses.rb +3 -3
  35. data/lib/songtradr_api_client_ruby/models/face_detail.rb +3 -3
  36. data/lib/songtradr_api_client_ruby/models/face_detection.rb +3 -3
  37. data/lib/songtradr_api_client_ruby/models/face_occluded.rb +3 -3
  38. data/lib/songtradr_api_client_ruby/models/field_summary_dto.rb +3 -3
  39. data/lib/songtradr_api_client_ruby/models/file_dto.rb +3 -3
  40. data/lib/songtradr_api_client_ruby/models/file_list_dto.rb +3 -3
  41. data/lib/songtradr_api_client_ruby/models/file_small_dto.rb +15 -15
  42. data/lib/songtradr_api_client_ruby/models/file_upload_dto.rb +3 -3
  43. data/lib/songtradr_api_client_ruby/models/file_w_ith_url_dto.rb +3 -3
  44. data/lib/songtradr_api_client_ruby/models/files_summary_dto.rb +3 -3
  45. data/lib/songtradr_api_client_ruby/models/forgot_password_dto.rb +3 -3
  46. data/lib/songtradr_api_client_ruby/models/gender.rb +3 -3
  47. data/lib/songtradr_api_client_ruby/models/genre_dto.rb +3 -3
  48. data/lib/songtradr_api_client_ruby/models/genre_minimal_dto.rb +3 -3
  49. data/lib/songtradr_api_client_ruby/models/genres_summary_dto.rb +3 -3
  50. data/lib/songtradr_api_client_ruby/models/image_quality.rb +3 -3
  51. data/lib/songtradr_api_client_ruby/models/image_recognition_response.rb +3 -3
  52. data/lib/songtradr_api_client_ruby/models/init_put_recording_audio_dto.rb +3 -3
  53. data/lib/songtradr_api_client_ruby/models/instance.rb +3 -3
  54. data/lib/songtradr_api_client_ruby/models/jwt_token_dto.rb +3 -3
  55. data/lib/songtradr_api_client_ruby/models/label.rb +3 -3
  56. data/lib/songtradr_api_client_ruby/models/label_alias.rb +3 -3
  57. data/lib/songtradr_api_client_ruby/models/label_category.rb +3 -3
  58. data/lib/songtradr_api_client_ruby/models/label_detection.rb +3 -3
  59. data/lib/songtradr_api_client_ruby/models/landmark.rb +3 -3
  60. data/lib/songtradr_api_client_ruby/models/login_dto.rb +3 -3
  61. data/lib/songtradr_api_client_ruby/models/mouth_open.rb +3 -3
  62. data/lib/songtradr_api_client_ruby/models/musical_features_dto.rb +270 -270
  63. data/lib/songtradr_api_client_ruby/models/mustache.rb +3 -3
  64. data/lib/songtradr_api_client_ruby/models/parent.rb +3 -3
  65. data/lib/songtradr_api_client_ruby/models/party_small_dto.rb +3 -3
  66. data/lib/songtradr_api_client_ruby/models/pose.rb +3 -3
  67. data/lib/songtradr_api_client_ruby/models/recording_for_similarity_search_dto.rb +3 -3
  68. data/lib/songtradr_api_client_ruby/models/recording_genre_prediction_dto.rb +23 -23
  69. data/lib/songtradr_api_client_ruby/models/recording_list_dto.rb +3 -3
  70. data/lib/songtradr_api_client_ruby/models/recording_medium_dto.rb +13 -13
  71. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_musical_features_dto.rb +3 -3
  72. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_taggrams_dto.rb +3 -3
  73. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_tagstrengths_dto.rb +3 -3
  74. data/lib/songtradr_api_client_ruby/models/recording_party_dto.rb +18 -18
  75. data/lib/songtradr_api_client_ruby/models/recording_small_dto.rb +3 -3
  76. data/lib/songtradr_api_client_ruby/models/recording_tag_small_dto.rb +3 -3
  77. data/lib/songtradr_api_client_ruby/models/save_user_dto.rb +3 -3
  78. data/lib/songtradr_api_client_ruby/models/search_filter_values_dto.rb +3 -3
  79. data/lib/songtradr_api_client_ruby/models/search_recording_granular_dto.rb +3 -3
  80. data/lib/songtradr_api_client_ruby/models/sign_up_dto.rb +3 -3
  81. data/lib/songtradr_api_client_ruby/models/smile.rb +3 -3
  82. data/lib/songtradr_api_client_ruby/models/sunglasses.rb +3 -3
  83. data/lib/songtradr_api_client_ruby/models/tag_dto.rb +3 -3
  84. data/lib/songtradr_api_client_ruby/models/tag_small_dto.rb +3 -3
  85. data/lib/songtradr_api_client_ruby/models/taggram_dto.rb +3 -3
  86. data/lib/songtradr_api_client_ruby/models/tags_summary_dto.rb +3 -3
  87. data/lib/songtradr_api_client_ruby/models/tagstrength_dto.rb +3 -3
  88. data/lib/songtradr_api_client_ruby/models/title_dto.rb +3 -3
  89. data/lib/songtradr_api_client_ruby/models/token_request.rb +3 -3
  90. data/lib/songtradr_api_client_ruby/models/track_dto.rb +3 -3
  91. data/lib/songtradr_api_client_ruby/models/update_password_dto.rb +3 -3
  92. data/lib/songtradr_api_client_ruby/models/user_dto.rb +3 -3
  93. data/lib/songtradr_api_client_ruby/models/video_recognition_response.rb +3 -3
  94. data/lib/songtradr_api_client_ruby/version.rb +3 -3
  95. data/lib/songtradr_api_client_ruby.rb +2 -23
  96. data/openapi-generator-config.yaml +1 -1
  97. data/songtradr_api_client_ruby.gemspec +3 -2
  98. data/spec/api/allowed_values_api_spec.rb +2 -2
  99. data/spec/api/playlist_api_spec.rb +2 -39
  100. data/spec/api/recording_api_spec.rb +3 -35
  101. data/spec/api/user_api_spec.rb +6 -111
  102. data/spec/api_client_spec.rb +2 -2
  103. data/spec/configuration_spec.rb +2 -2
  104. data/spec/models/age_range_spec.rb +2 -2
  105. data/spec/models/beard_spec.rb +2 -2
  106. data/spec/models/bounding_box_spec.rb +2 -2
  107. data/spec/models/category_medium_dto_spec.rb +2 -2
  108. data/spec/models/category_minimal_dto_spec.rb +2 -2
  109. data/spec/models/config_access_dto_spec.rb +2 -2
  110. data/spec/models/config_identifier_dto_spec.rb +2 -2
  111. data/spec/models/contributor_type_dto_spec.rb +2 -2
  112. data/spec/models/curate_playlist_dto_spec.rb +2 -2
  113. data/spec/models/curate_playlist_response_dto_spec.rb +2 -2
  114. data/spec/models/dominant_color_spec.rb +2 -2
  115. data/spec/models/emotion_spec.rb +2 -2
  116. data/spec/models/error_response_spec.rb +2 -2
  117. data/spec/models/eye_direction_spec.rb +2 -2
  118. data/spec/models/eye_open_spec.rb +2 -2
  119. data/spec/models/eyeglasses_spec.rb +2 -2
  120. data/spec/models/face_detail_spec.rb +2 -2
  121. data/spec/models/face_detection_spec.rb +2 -2
  122. data/spec/models/face_occluded_spec.rb +2 -2
  123. data/spec/models/field_summary_dto_spec.rb +2 -2
  124. data/spec/models/file_dto_spec.rb +2 -2
  125. data/spec/models/file_list_dto_spec.rb +2 -2
  126. data/spec/models/file_small_dto_spec.rb +5 -5
  127. data/spec/models/file_upload_dto_spec.rb +2 -2
  128. data/spec/models/file_w_ith_url_dto_spec.rb +2 -2
  129. data/spec/models/files_summary_dto_spec.rb +2 -2
  130. data/spec/models/forgot_password_dto_spec.rb +2 -2
  131. data/spec/models/gender_spec.rb +2 -2
  132. data/spec/models/genre_dto_spec.rb +2 -2
  133. data/spec/models/genre_minimal_dto_spec.rb +2 -2
  134. data/spec/models/genres_summary_dto_spec.rb +2 -2
  135. data/spec/models/image_quality_spec.rb +2 -2
  136. data/spec/models/image_recognition_response_spec.rb +2 -2
  137. data/spec/models/init_put_recording_audio_dto_spec.rb +2 -2
  138. data/spec/models/instance_spec.rb +2 -2
  139. data/spec/models/jwt_token_dto_spec.rb +2 -2
  140. data/spec/models/label_alias_spec.rb +2 -2
  141. data/spec/models/label_category_spec.rb +2 -2
  142. data/spec/models/label_detection_spec.rb +2 -2
  143. data/spec/models/label_spec.rb +2 -2
  144. data/spec/models/landmark_spec.rb +2 -2
  145. data/spec/models/login_dto_spec.rb +2 -2
  146. data/spec/models/mouth_open_spec.rb +2 -2
  147. data/spec/models/musical_features_dto_spec.rb +81 -81
  148. data/spec/models/mustache_spec.rb +2 -2
  149. data/spec/models/parent_spec.rb +2 -2
  150. data/spec/models/party_small_dto_spec.rb +2 -2
  151. data/spec/models/pose_spec.rb +2 -2
  152. data/spec/models/recording_for_similarity_search_dto_spec.rb +2 -2
  153. data/spec/models/recording_genre_prediction_dto_spec.rb +5 -5
  154. data/spec/models/recording_list_dto_spec.rb +2 -2
  155. data/spec/models/recording_medium_dto_spec.rb +4 -4
  156. data/spec/models/recording_minimal_with_musical_features_dto_spec.rb +2 -2
  157. data/spec/models/recording_minimal_with_taggrams_dto_spec.rb +2 -2
  158. data/spec/models/recording_minimal_with_tagstrengths_dto_spec.rb +2 -2
  159. data/spec/models/recording_party_dto_spec.rb +4 -4
  160. data/spec/models/recording_small_dto_spec.rb +2 -2
  161. data/spec/models/recording_tag_small_dto_spec.rb +2 -2
  162. data/spec/models/save_user_dto_spec.rb +2 -2
  163. data/spec/models/search_filter_values_dto_spec.rb +2 -2
  164. data/spec/models/search_recording_granular_dto_spec.rb +2 -2
  165. data/spec/models/sign_up_dto_spec.rb +2 -2
  166. data/spec/models/smile_spec.rb +2 -2
  167. data/spec/models/sunglasses_spec.rb +2 -2
  168. data/spec/models/tag_dto_spec.rb +2 -2
  169. data/spec/models/tag_small_dto_spec.rb +2 -2
  170. data/spec/models/taggram_dto_spec.rb +2 -2
  171. data/spec/models/tags_summary_dto_spec.rb +2 -2
  172. data/spec/models/tagstrength_dto_spec.rb +2 -2
  173. data/spec/models/title_dto_spec.rb +2 -2
  174. data/spec/models/token_request_spec.rb +2 -2
  175. data/spec/models/track_dto_spec.rb +2 -2
  176. data/spec/models/update_password_dto_spec.rb +2 -2
  177. data/spec/models/user_dto_spec.rb +2 -2
  178. data/spec/models/video_recognition_response_spec.rb +2 -2
  179. data/spec/spec_helper.rb +2 -2
  180. metadata +65 -149
  181. data/docs/ContextValue.md +0 -18
  182. data/docs/FileMinimalWithUrlDTO.md +0 -22
  183. data/docs/PLineDTO.md +0 -20
  184. data/docs/PartyApi.md +0 -75
  185. data/docs/PartyLargeDTO.md +0 -32
  186. data/docs/PlaylistLargeDTO.md +0 -38
  187. data/docs/ProductMediumDTO.md +0 -34
  188. data/docs/ProductPartyDTO.md +0 -20
  189. data/docs/RecordingLargeDTO.md +0 -40
  190. data/docs/RecordingPlaylistDTO.md +0 -24
  191. data/docs/SaveFileRecordingDTO.md +0 -240
  192. data/docs/SavePlaylistDTO.md +0 -34
  193. data/docs/SaveRecordingGenreDTO.md +0 -22
  194. data/docs/SaveRecordingPartyDTO.md +0 -20
  195. data/docs/SaveRecordingPlaylistDTO.md +0 -22
  196. data/docs/SaveRecordingTagDTO.md +0 -20
  197. data/docs/SaveReferrerDTO.md +0 -20
  198. data/docs/SaveTaggramsDTO.md +0 -82
  199. data/docs/SearchRecordingGranularAbstractionDTO.md +0 -20
  200. data/docs/TrackToMediumProductDTO.md +0 -22
  201. data/docs/UsageDTO.md +0 -18
  202. data/lib/songtradr_api_client_ruby/api/party_api.rb +0 -84
  203. data/lib/songtradr_api_client_ruby/models/context_value.rb +0 -216
  204. data/lib/songtradr_api_client_ruby/models/file_minimal_with_url_dto.rb +0 -254
  205. data/lib/songtradr_api_client_ruby/models/p_line_dto.rb +0 -231
  206. data/lib/songtradr_api_client_ruby/models/party_large_dto.rb +0 -285
  207. data/lib/songtradr_api_client_ruby/models/playlist_large_dto.rb +0 -350
  208. data/lib/songtradr_api_client_ruby/models/product_medium_dto.rb +0 -323
  209. data/lib/songtradr_api_client_ruby/models/product_party_dto.rb +0 -233
  210. data/lib/songtradr_api_client_ruby/models/recording_large_dto.rb +0 -383
  211. data/lib/songtradr_api_client_ruby/models/recording_playlist_dto.rb +0 -242
  212. data/lib/songtradr_api_client_ruby/models/save_file_recording_dto.rb +0 -1864
  213. data/lib/songtradr_api_client_ruby/models/save_playlist_dto.rb +0 -353
  214. data/lib/songtradr_api_client_ruby/models/save_recording_genre_dto.rb +0 -240
  215. data/lib/songtradr_api_client_ruby/models/save_recording_party_dto.rb +0 -272
  216. data/lib/songtradr_api_client_ruby/models/save_recording_playlist_dto.rb +0 -247
  217. data/lib/songtradr_api_client_ruby/models/save_recording_tag_dto.rb +0 -231
  218. data/lib/songtradr_api_client_ruby/models/save_referrer_dto.rb +0 -224
  219. data/lib/songtradr_api_client_ruby/models/save_taggrams_dto.rb +0 -569
  220. data/lib/songtradr_api_client_ruby/models/search_recording_granular_abstraction_dto.rb +0 -267
  221. data/lib/songtradr_api_client_ruby/models/track_to_medium_product_dto.rb +0 -247
  222. data/lib/songtradr_api_client_ruby/models/usage_dto.rb +0 -215
  223. data/spec/api/party_api_spec.rb +0 -46
  224. data/spec/models/context_value_spec.rb +0 -36
  225. data/spec/models/file_minimal_with_url_dto_spec.rb +0 -48
  226. data/spec/models/p_line_dto_spec.rb +0 -42
  227. data/spec/models/party_large_dto_spec.rb +0 -78
  228. data/spec/models/playlist_large_dto_spec.rb +0 -100
  229. data/spec/models/product_medium_dto_spec.rb +0 -84
  230. data/spec/models/product_party_dto_spec.rb +0 -42
  231. data/spec/models/recording_large_dto_spec.rb +0 -102
  232. data/spec/models/recording_playlist_dto_spec.rb +0 -54
  233. data/spec/models/save_file_recording_dto_spec.rb +0 -894
  234. data/spec/models/save_playlist_dto_spec.rb +0 -88
  235. data/spec/models/save_recording_genre_dto_spec.rb +0 -48
  236. data/spec/models/save_recording_party_dto_spec.rb +0 -46
  237. data/spec/models/save_recording_playlist_dto_spec.rb +0 -48
  238. data/spec/models/save_recording_tag_dto_spec.rb +0 -42
  239. data/spec/models/save_referrer_dto_spec.rb +0 -42
  240. data/spec/models/save_taggrams_dto_spec.rb +0 -228
  241. data/spec/models/search_recording_granular_abstraction_dto_spec.rb +0 -46
  242. data/spec/models/track_to_medium_product_dto_spec.rb +0 -48
  243. data/spec/models/usage_dto_spec.rb +0 -36
@@ -1,1864 +0,0 @@
1
- =begin
2
- #Songtradr API
3
-
4
- #This is the Songtradr API. Use it to retrieve deep music metadata and trigger processes like auto-tagging. You can also use the API to manage your account and musicube cloud data. **Authentication** 1. Reach out to support@songtradr.com to receive a free account or use your login data if you are already signed up. 2. To authenticate, you need to login via the POST /api/v1/user/login endpoint. 3. The endpoint responds with a jwtToken which you can use in all following API requests as a bearer token. **Rate Limiting** The current limit is 120 Requests per minute. Reach out to us via support@songtradr.com if you need to request more. **Getting Started with auto-tagging** 1. If you want to get your own files auto-tagged, use the POST /api/v1/user/file/{name}/initUpload endpoint. It responds with a presigned S3 link where you can upload your file. 2. You can check the processing status of your file via the GET /api/v1/user/file/{name}/filesStatus endpoint. 3. As soon as processing is done, you can request the generated data via the GET /api/v1/user/files endpoint. **Getting Started with search** You can either search the released music via the /public/recording endpoints or your own private uploaded music via the /user/file/ endpoints. 1. If you want to search the world's released music, a good starting point is the GET /api/v1/public/recording/search endpoint. Please find the extensive list of parameters that serve as semantic search filters. 2. If you want to search your own previously uploaded music, a good starting point is the GET GET /api/v1/user/files endpoint. It has the same extensive list of parameters that serve as semantic search filters.
5
-
6
- The version of the OpenAPI document: 1.13.7
7
- Contact: info@songtradr.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 7.1.0-SNAPSHOT
10
-
11
- =end
12
-
13
- require 'date'
14
- require 'time'
15
-
16
- module SongtradrApiClientRuby
17
- # Data crafted by AI or users.
18
- class SaveFileRecordingDTO
19
- attr_accessor :isrc
20
-
21
- attr_accessor :name
22
-
23
- attr_accessor :folder
24
-
25
- attr_accessor :primary_mood_cluster_affinity
26
-
27
- # Search for a language of the lyrics
28
- attr_accessor :primary_mood_cluster
29
-
30
- attr_accessor :secondary_mood_cluster_affinity
31
-
32
- # Search for a language of the lyrics
33
- attr_accessor :secondary_mood_cluster
34
-
35
- attr_accessor :tertiary_mood_cluster_affinity
36
-
37
- # Search for a language of the lyrics
38
- attr_accessor :tertiary_mood_cluster
39
-
40
- attr_accessor :valence_affinity
41
-
42
- attr_accessor :arousal_affinity
43
-
44
- attr_accessor :pleasantness_affinity
45
-
46
- attr_accessor :engagement_affinity
47
-
48
- # Search for a valence
49
- attr_accessor :valence
50
-
51
- # Search for an arousal
52
- attr_accessor :arousal
53
-
54
- # Search for pleasantness
55
- attr_accessor :pleasantness
56
-
57
- # Search for an engagement
58
- attr_accessor :engagement
59
-
60
- # Search for a vocal gender or instrumental songs
61
- attr_accessor :vocals
62
-
63
- attr_accessor :vocals_affinity
64
-
65
- # Search for a dominant instrument
66
- attr_accessor :dominant_instrument
67
-
68
- attr_accessor :dominant_instrument_affinity
69
-
70
- attr_accessor :secondary_instrument_affinity
71
-
72
- # Search for a dominant instrument
73
- attr_accessor :secondary_instrument
74
-
75
- attr_accessor :tertiary_instrument_affinity
76
-
77
- # Search for a dominant instrument
78
- attr_accessor :tertiary_instrument
79
-
80
- # Search for energy
81
- attr_accessor :energy
82
-
83
- attr_accessor :energy_affinity
84
-
85
- # Search for type of sound generation
86
- attr_accessor :sound_generation
87
-
88
- attr_accessor :sound_generation_affinity
89
-
90
- # Search for tempo
91
- attr_accessor :tempo
92
-
93
- attr_accessor :tempo_affinity
94
-
95
- # Search for a tonal scale
96
- attr_accessor :scale
97
-
98
- attr_accessor :scale_affinity
99
-
100
- # Search for rhythm
101
- attr_accessor :rhythm
102
-
103
- attr_accessor :rhythm_affinity
104
-
105
- # Search for a sound character
106
- attr_accessor :primary_sound_character
107
-
108
- attr_accessor :primary_sound_character_affinity
109
-
110
- attr_accessor :timbre_affinity
111
-
112
- attr_accessor :roughness_affinity
113
-
114
- attr_accessor :tonality_affinity
115
-
116
- attr_accessor :harmony_affinity
117
-
118
- attr_accessor :texture_affinity
119
-
120
- attr_accessor :groovyness_affinity
121
-
122
- attr_accessor :space_affinity
123
-
124
- # Search for timbre
125
- attr_accessor :timbre
126
-
127
- # Search for roughness
128
- attr_accessor :roughness
129
-
130
- # Search for tonality
131
- attr_accessor :tonality
132
-
133
- # Search for a degree of harmoniousness
134
- attr_accessor :harmony
135
-
136
- # Search for texture
137
- attr_accessor :texture
138
-
139
- # Search for groovyness
140
- attr_accessor :groovyness
141
-
142
- # Search for space
143
- attr_accessor :space
144
-
145
- attr_accessor :bpm
146
-
147
- # Search for a harmonic key
148
- attr_accessor :key
149
-
150
- attr_accessor :key_affinity
151
-
152
- attr_accessor :production_rating
153
-
154
- attr_accessor :production_rating_affinity
155
-
156
- attr_accessor :performance_rating
157
-
158
- attr_accessor :performance_rating_affinity
159
-
160
- attr_accessor :song_rating
161
-
162
- attr_accessor :song_rating_affinity
163
-
164
- attr_accessor :audience_gender
165
-
166
- attr_accessor :audience_gender_affinity
167
-
168
- attr_accessor :audience_region
169
-
170
- attr_accessor :audience_region_affinity
171
-
172
- attr_accessor :secondary_audience_region_affinity
173
-
174
- attr_accessor :secondary_audience_region
175
-
176
- attr_accessor :tertiary_audience_region_affinity
177
-
178
- attr_accessor :tertiary_audience_region
179
-
180
- attr_accessor :audience_age
181
-
182
- attr_accessor :audience_age_affinity
183
-
184
- attr_accessor :secondary_audience_age
185
-
186
- attr_accessor :secondary_audience_age_affinity
187
-
188
- attr_accessor :tertiary_audience_age
189
-
190
- attr_accessor :tertiary_audience_age_affinity
191
-
192
- # Search for origin decade
193
- attr_accessor :origin_decade
194
-
195
- attr_accessor :origin_decade_affinity
196
-
197
- attr_accessor :language_of_performance
198
-
199
- attr_accessor :language_of_performance_affinity
200
-
201
- attr_accessor :origin_region
202
-
203
- attr_accessor :origin_region_affinity
204
-
205
- attr_accessor :taggrams
206
-
207
- attr_accessor :embeddings
208
-
209
- attr_accessor :level1_genre
210
-
211
- attr_accessor :level1_genre_affinity
212
-
213
- attr_accessor :secondary_level1_genre
214
-
215
- attr_accessor :secondary_level1_genre_affinity
216
-
217
- attr_accessor :tertiary_level1_genre
218
-
219
- attr_accessor :tertiary_level1_genre_affinity
220
-
221
- attr_accessor :level2_genre
222
-
223
- attr_accessor :level2_genre_affinity
224
-
225
- attr_accessor :secondary_level2_genre
226
-
227
- attr_accessor :secondary_level2_genre_affinity
228
-
229
- attr_accessor :tertiary_level2_genre
230
-
231
- attr_accessor :tertiary_level2_genre_affinity
232
-
233
- # Search for curatebility
234
- attr_accessor :curateability
235
-
236
- attr_accessor :curateability_affinity
237
-
238
- # Search for use case
239
- attr_accessor :use_case
240
-
241
- attr_accessor :use_case_affinity
242
-
243
- # Search for social media suitability
244
- attr_accessor :social_media
245
-
246
- attr_accessor :social_media_affinity
247
-
248
- # Search for Industry suitability
249
- attr_accessor :industry_suitability
250
-
251
- attr_accessor :industry_suitability_affinity
252
-
253
- attr_accessor :created_by_version
254
-
255
- attr_accessor :tags
256
-
257
- attr_accessor :genres
258
-
259
- attr_accessor :parties
260
-
261
- attr_accessor :iswc
262
-
263
- attr_accessor :proprietary_id_gema
264
-
265
- attr_accessor :title
266
-
267
- attr_accessor :version_title
268
-
269
- attr_accessor :context_kind
270
-
271
- attr_accessor :context_value
272
-
273
- class EnumAttributeValidator
274
- attr_reader :datatype
275
- attr_reader :allowable_values
276
-
277
- def initialize(datatype, allowable_values)
278
- @allowable_values = allowable_values.map do |value|
279
- case datatype.to_s
280
- when /Integer/i
281
- value.to_i
282
- when /Float/i
283
- value.to_f
284
- else
285
- value
286
- end
287
- end
288
- end
289
-
290
- def valid?(value)
291
- !value || allowable_values.include?(value)
292
- end
293
- end
294
-
295
- # Attribute mapping from ruby-style variable name to JSON key.
296
- def self.attribute_map
297
- {
298
- :'isrc' => :'isrc',
299
- :'name' => :'name',
300
- :'folder' => :'folder',
301
- :'primary_mood_cluster_affinity' => :'primaryMoodClusterAffinity',
302
- :'primary_mood_cluster' => :'primaryMoodCluster',
303
- :'secondary_mood_cluster_affinity' => :'secondaryMoodClusterAffinity',
304
- :'secondary_mood_cluster' => :'secondaryMoodCluster',
305
- :'tertiary_mood_cluster_affinity' => :'tertiaryMoodClusterAffinity',
306
- :'tertiary_mood_cluster' => :'tertiaryMoodCluster',
307
- :'valence_affinity' => :'valenceAffinity',
308
- :'arousal_affinity' => :'arousalAffinity',
309
- :'pleasantness_affinity' => :'pleasantnessAffinity',
310
- :'engagement_affinity' => :'engagementAffinity',
311
- :'valence' => :'valence',
312
- :'arousal' => :'arousal',
313
- :'pleasantness' => :'pleasantness',
314
- :'engagement' => :'engagement',
315
- :'vocals' => :'vocals',
316
- :'vocals_affinity' => :'vocalsAffinity',
317
- :'dominant_instrument' => :'dominantInstrument',
318
- :'dominant_instrument_affinity' => :'dominantInstrumentAffinity',
319
- :'secondary_instrument_affinity' => :'secondaryInstrumentAffinity',
320
- :'secondary_instrument' => :'secondaryInstrument',
321
- :'tertiary_instrument_affinity' => :'tertiaryInstrumentAffinity',
322
- :'tertiary_instrument' => :'tertiaryInstrument',
323
- :'energy' => :'energy',
324
- :'energy_affinity' => :'energyAffinity',
325
- :'sound_generation' => :'soundGeneration',
326
- :'sound_generation_affinity' => :'soundGenerationAffinity',
327
- :'tempo' => :'tempo',
328
- :'tempo_affinity' => :'tempoAffinity',
329
- :'scale' => :'scale',
330
- :'scale_affinity' => :'scaleAffinity',
331
- :'rhythm' => :'rhythm',
332
- :'rhythm_affinity' => :'rhythmAffinity',
333
- :'primary_sound_character' => :'primarySoundCharacter',
334
- :'primary_sound_character_affinity' => :'primarySoundCharacterAffinity',
335
- :'timbre_affinity' => :'timbreAffinity',
336
- :'roughness_affinity' => :'roughnessAffinity',
337
- :'tonality_affinity' => :'tonalityAffinity',
338
- :'harmony_affinity' => :'harmonyAffinity',
339
- :'texture_affinity' => :'textureAffinity',
340
- :'groovyness_affinity' => :'groovynessAffinity',
341
- :'space_affinity' => :'spaceAffinity',
342
- :'timbre' => :'timbre',
343
- :'roughness' => :'roughness',
344
- :'tonality' => :'tonality',
345
- :'harmony' => :'harmony',
346
- :'texture' => :'texture',
347
- :'groovyness' => :'groovyness',
348
- :'space' => :'space',
349
- :'bpm' => :'bpm',
350
- :'key' => :'key',
351
- :'key_affinity' => :'keyAffinity',
352
- :'production_rating' => :'productionRating',
353
- :'production_rating_affinity' => :'productionRatingAffinity',
354
- :'performance_rating' => :'performanceRating',
355
- :'performance_rating_affinity' => :'performanceRatingAffinity',
356
- :'song_rating' => :'songRating',
357
- :'song_rating_affinity' => :'songRatingAffinity',
358
- :'audience_gender' => :'audienceGender',
359
- :'audience_gender_affinity' => :'audienceGenderAffinity',
360
- :'audience_region' => :'audienceRegion',
361
- :'audience_region_affinity' => :'audienceRegionAffinity',
362
- :'secondary_audience_region_affinity' => :'secondaryAudienceRegionAffinity',
363
- :'secondary_audience_region' => :'secondaryAudienceRegion',
364
- :'tertiary_audience_region_affinity' => :'tertiaryAudienceRegionAffinity',
365
- :'tertiary_audience_region' => :'tertiaryAudienceRegion',
366
- :'audience_age' => :'audienceAge',
367
- :'audience_age_affinity' => :'audienceAgeAffinity',
368
- :'secondary_audience_age' => :'secondaryAudienceAge',
369
- :'secondary_audience_age_affinity' => :'secondaryAudienceAgeAffinity',
370
- :'tertiary_audience_age' => :'tertiaryAudienceAge',
371
- :'tertiary_audience_age_affinity' => :'tertiaryAudienceAgeAffinity',
372
- :'origin_decade' => :'originDecade',
373
- :'origin_decade_affinity' => :'originDecadeAffinity',
374
- :'language_of_performance' => :'languageOfPerformance',
375
- :'language_of_performance_affinity' => :'languageOfPerformanceAffinity',
376
- :'origin_region' => :'originRegion',
377
- :'origin_region_affinity' => :'originRegionAffinity',
378
- :'taggrams' => :'taggrams',
379
- :'embeddings' => :'embeddings',
380
- :'level1_genre' => :'level1Genre',
381
- :'level1_genre_affinity' => :'level1GenreAffinity',
382
- :'secondary_level1_genre' => :'secondaryLevel1Genre',
383
- :'secondary_level1_genre_affinity' => :'secondaryLevel1GenreAffinity',
384
- :'tertiary_level1_genre' => :'tertiaryLevel1Genre',
385
- :'tertiary_level1_genre_affinity' => :'tertiaryLevel1GenreAffinity',
386
- :'level2_genre' => :'level2Genre',
387
- :'level2_genre_affinity' => :'level2GenreAffinity',
388
- :'secondary_level2_genre' => :'secondaryLevel2Genre',
389
- :'secondary_level2_genre_affinity' => :'secondaryLevel2GenreAffinity',
390
- :'tertiary_level2_genre' => :'tertiaryLevel2Genre',
391
- :'tertiary_level2_genre_affinity' => :'tertiaryLevel2GenreAffinity',
392
- :'curateability' => :'curateability',
393
- :'curateability_affinity' => :'curateabilityAffinity',
394
- :'use_case' => :'useCase',
395
- :'use_case_affinity' => :'useCaseAffinity',
396
- :'social_media' => :'socialMedia',
397
- :'social_media_affinity' => :'socialMediaAffinity',
398
- :'industry_suitability' => :'industrySuitability',
399
- :'industry_suitability_affinity' => :'industrySuitabilityAffinity',
400
- :'created_by_version' => :'createdByVersion',
401
- :'tags' => :'tags',
402
- :'genres' => :'genres',
403
- :'parties' => :'parties',
404
- :'iswc' => :'iswc',
405
- :'proprietary_id_gema' => :'proprietaryIdGema',
406
- :'title' => :'title',
407
- :'version_title' => :'versionTitle',
408
- :'context_kind' => :'contextKind',
409
- :'context_value' => :'contextValue'
410
- }
411
- end
412
-
413
- # Returns all the JSON keys this model knows about
414
- def self.acceptable_attributes
415
- attribute_map.values
416
- end
417
-
418
- # Attribute type mapping.
419
- def self.openapi_types
420
- {
421
- :'isrc' => :'String',
422
- :'name' => :'String',
423
- :'folder' => :'String',
424
- :'primary_mood_cluster_affinity' => :'Float',
425
- :'primary_mood_cluster' => :'String',
426
- :'secondary_mood_cluster_affinity' => :'Float',
427
- :'secondary_mood_cluster' => :'String',
428
- :'tertiary_mood_cluster_affinity' => :'Float',
429
- :'tertiary_mood_cluster' => :'String',
430
- :'valence_affinity' => :'Float',
431
- :'arousal_affinity' => :'Float',
432
- :'pleasantness_affinity' => :'Float',
433
- :'engagement_affinity' => :'Float',
434
- :'valence' => :'String',
435
- :'arousal' => :'String',
436
- :'pleasantness' => :'String',
437
- :'engagement' => :'String',
438
- :'vocals' => :'String',
439
- :'vocals_affinity' => :'Float',
440
- :'dominant_instrument' => :'String',
441
- :'dominant_instrument_affinity' => :'Float',
442
- :'secondary_instrument_affinity' => :'Float',
443
- :'secondary_instrument' => :'String',
444
- :'tertiary_instrument_affinity' => :'Float',
445
- :'tertiary_instrument' => :'String',
446
- :'energy' => :'String',
447
- :'energy_affinity' => :'Float',
448
- :'sound_generation' => :'String',
449
- :'sound_generation_affinity' => :'Float',
450
- :'tempo' => :'String',
451
- :'tempo_affinity' => :'Float',
452
- :'scale' => :'String',
453
- :'scale_affinity' => :'Float',
454
- :'rhythm' => :'String',
455
- :'rhythm_affinity' => :'Float',
456
- :'primary_sound_character' => :'String',
457
- :'primary_sound_character_affinity' => :'Float',
458
- :'timbre_affinity' => :'Float',
459
- :'roughness_affinity' => :'Float',
460
- :'tonality_affinity' => :'Float',
461
- :'harmony_affinity' => :'Float',
462
- :'texture_affinity' => :'Float',
463
- :'groovyness_affinity' => :'Float',
464
- :'space_affinity' => :'Float',
465
- :'timbre' => :'String',
466
- :'roughness' => :'String',
467
- :'tonality' => :'String',
468
- :'harmony' => :'String',
469
- :'texture' => :'String',
470
- :'groovyness' => :'String',
471
- :'space' => :'String',
472
- :'bpm' => :'Float',
473
- :'key' => :'String',
474
- :'key_affinity' => :'Float',
475
- :'production_rating' => :'String',
476
- :'production_rating_affinity' => :'Float',
477
- :'performance_rating' => :'String',
478
- :'performance_rating_affinity' => :'Float',
479
- :'song_rating' => :'String',
480
- :'song_rating_affinity' => :'Float',
481
- :'audience_gender' => :'String',
482
- :'audience_gender_affinity' => :'Float',
483
- :'audience_region' => :'String',
484
- :'audience_region_affinity' => :'Float',
485
- :'secondary_audience_region_affinity' => :'Float',
486
- :'secondary_audience_region' => :'String',
487
- :'tertiary_audience_region_affinity' => :'Float',
488
- :'tertiary_audience_region' => :'String',
489
- :'audience_age' => :'String',
490
- :'audience_age_affinity' => :'Float',
491
- :'secondary_audience_age' => :'String',
492
- :'secondary_audience_age_affinity' => :'Float',
493
- :'tertiary_audience_age' => :'String',
494
- :'tertiary_audience_age_affinity' => :'Float',
495
- :'origin_decade' => :'String',
496
- :'origin_decade_affinity' => :'Float',
497
- :'language_of_performance' => :'String',
498
- :'language_of_performance_affinity' => :'Float',
499
- :'origin_region' => :'String',
500
- :'origin_region_affinity' => :'Float',
501
- :'taggrams' => :'SaveTaggramsDTO',
502
- :'embeddings' => :'Array<Float>',
503
- :'level1_genre' => :'String',
504
- :'level1_genre_affinity' => :'Float',
505
- :'secondary_level1_genre' => :'String',
506
- :'secondary_level1_genre_affinity' => :'Float',
507
- :'tertiary_level1_genre' => :'String',
508
- :'tertiary_level1_genre_affinity' => :'Float',
509
- :'level2_genre' => :'String',
510
- :'level2_genre_affinity' => :'Float',
511
- :'secondary_level2_genre' => :'String',
512
- :'secondary_level2_genre_affinity' => :'Float',
513
- :'tertiary_level2_genre' => :'String',
514
- :'tertiary_level2_genre_affinity' => :'Float',
515
- :'curateability' => :'String',
516
- :'curateability_affinity' => :'Float',
517
- :'use_case' => :'String',
518
- :'use_case_affinity' => :'Float',
519
- :'social_media' => :'String',
520
- :'social_media_affinity' => :'Float',
521
- :'industry_suitability' => :'String',
522
- :'industry_suitability_affinity' => :'Float',
523
- :'created_by_version' => :'String',
524
- :'tags' => :'Array<SaveRecordingTagDTO>',
525
- :'genres' => :'Array<SaveRecordingGenreDTO>',
526
- :'parties' => :'Array<SaveRecordingPartyDTO>',
527
- :'iswc' => :'String',
528
- :'proprietary_id_gema' => :'String',
529
- :'title' => :'String',
530
- :'version_title' => :'String',
531
- :'context_kind' => :'String',
532
- :'context_value' => :'ContextValue'
533
- }
534
- end
535
-
536
- # List of attributes with nullable: true
537
- def self.openapi_nullable
538
- Set.new([
539
- ])
540
- end
541
-
542
- # Initializes the object
543
- # @param [Hash] attributes Model attributes in the form of hash
544
- def initialize(attributes = {})
545
- if (!attributes.is_a?(Hash))
546
- fail ArgumentError, "The input argument (attributes) must be a hash in `SongtradrApiClientRuby::SaveFileRecordingDTO` initialize method"
547
- end
548
-
549
- # check to see if the attribute exists and convert string to symbol for hash key
550
- attributes = attributes.each_with_object({}) { |(k, v), h|
551
- if (!self.class.attribute_map.key?(k.to_sym))
552
- fail ArgumentError, "`#{k}` is not a valid attribute in `SongtradrApiClientRuby::SaveFileRecordingDTO`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
553
- end
554
- h[k.to_sym] = v
555
- }
556
-
557
- if attributes.key?(:'isrc')
558
- self.isrc = attributes[:'isrc']
559
- else
560
- self.isrc = nil
561
- end
562
-
563
- if attributes.key?(:'name')
564
- self.name = attributes[:'name']
565
- end
566
-
567
- if attributes.key?(:'folder')
568
- self.folder = attributes[:'folder']
569
- end
570
-
571
- if attributes.key?(:'primary_mood_cluster_affinity')
572
- self.primary_mood_cluster_affinity = attributes[:'primary_mood_cluster_affinity']
573
- end
574
-
575
- if attributes.key?(:'primary_mood_cluster')
576
- self.primary_mood_cluster = attributes[:'primary_mood_cluster']
577
- end
578
-
579
- if attributes.key?(:'secondary_mood_cluster_affinity')
580
- self.secondary_mood_cluster_affinity = attributes[:'secondary_mood_cluster_affinity']
581
- end
582
-
583
- if attributes.key?(:'secondary_mood_cluster')
584
- self.secondary_mood_cluster = attributes[:'secondary_mood_cluster']
585
- end
586
-
587
- if attributes.key?(:'tertiary_mood_cluster_affinity')
588
- self.tertiary_mood_cluster_affinity = attributes[:'tertiary_mood_cluster_affinity']
589
- end
590
-
591
- if attributes.key?(:'tertiary_mood_cluster')
592
- self.tertiary_mood_cluster = attributes[:'tertiary_mood_cluster']
593
- end
594
-
595
- if attributes.key?(:'valence_affinity')
596
- self.valence_affinity = attributes[:'valence_affinity']
597
- end
598
-
599
- if attributes.key?(:'arousal_affinity')
600
- self.arousal_affinity = attributes[:'arousal_affinity']
601
- end
602
-
603
- if attributes.key?(:'pleasantness_affinity')
604
- self.pleasantness_affinity = attributes[:'pleasantness_affinity']
605
- end
606
-
607
- if attributes.key?(:'engagement_affinity')
608
- self.engagement_affinity = attributes[:'engagement_affinity']
609
- end
610
-
611
- if attributes.key?(:'valence')
612
- self.valence = attributes[:'valence']
613
- end
614
-
615
- if attributes.key?(:'arousal')
616
- self.arousal = attributes[:'arousal']
617
- end
618
-
619
- if attributes.key?(:'pleasantness')
620
- self.pleasantness = attributes[:'pleasantness']
621
- end
622
-
623
- if attributes.key?(:'engagement')
624
- self.engagement = attributes[:'engagement']
625
- end
626
-
627
- if attributes.key?(:'vocals')
628
- self.vocals = attributes[:'vocals']
629
- end
630
-
631
- if attributes.key?(:'vocals_affinity')
632
- self.vocals_affinity = attributes[:'vocals_affinity']
633
- end
634
-
635
- if attributes.key?(:'dominant_instrument')
636
- self.dominant_instrument = attributes[:'dominant_instrument']
637
- end
638
-
639
- if attributes.key?(:'dominant_instrument_affinity')
640
- self.dominant_instrument_affinity = attributes[:'dominant_instrument_affinity']
641
- end
642
-
643
- if attributes.key?(:'secondary_instrument_affinity')
644
- self.secondary_instrument_affinity = attributes[:'secondary_instrument_affinity']
645
- end
646
-
647
- if attributes.key?(:'secondary_instrument')
648
- self.secondary_instrument = attributes[:'secondary_instrument']
649
- end
650
-
651
- if attributes.key?(:'tertiary_instrument_affinity')
652
- self.tertiary_instrument_affinity = attributes[:'tertiary_instrument_affinity']
653
- end
654
-
655
- if attributes.key?(:'tertiary_instrument')
656
- self.tertiary_instrument = attributes[:'tertiary_instrument']
657
- end
658
-
659
- if attributes.key?(:'energy')
660
- self.energy = attributes[:'energy']
661
- end
662
-
663
- if attributes.key?(:'energy_affinity')
664
- self.energy_affinity = attributes[:'energy_affinity']
665
- end
666
-
667
- if attributes.key?(:'sound_generation')
668
- self.sound_generation = attributes[:'sound_generation']
669
- end
670
-
671
- if attributes.key?(:'sound_generation_affinity')
672
- self.sound_generation_affinity = attributes[:'sound_generation_affinity']
673
- end
674
-
675
- if attributes.key?(:'tempo')
676
- self.tempo = attributes[:'tempo']
677
- end
678
-
679
- if attributes.key?(:'tempo_affinity')
680
- self.tempo_affinity = attributes[:'tempo_affinity']
681
- end
682
-
683
- if attributes.key?(:'scale')
684
- self.scale = attributes[:'scale']
685
- end
686
-
687
- if attributes.key?(:'scale_affinity')
688
- self.scale_affinity = attributes[:'scale_affinity']
689
- end
690
-
691
- if attributes.key?(:'rhythm')
692
- self.rhythm = attributes[:'rhythm']
693
- end
694
-
695
- if attributes.key?(:'rhythm_affinity')
696
- self.rhythm_affinity = attributes[:'rhythm_affinity']
697
- end
698
-
699
- if attributes.key?(:'primary_sound_character')
700
- self.primary_sound_character = attributes[:'primary_sound_character']
701
- end
702
-
703
- if attributes.key?(:'primary_sound_character_affinity')
704
- self.primary_sound_character_affinity = attributes[:'primary_sound_character_affinity']
705
- end
706
-
707
- if attributes.key?(:'timbre_affinity')
708
- self.timbre_affinity = attributes[:'timbre_affinity']
709
- end
710
-
711
- if attributes.key?(:'roughness_affinity')
712
- self.roughness_affinity = attributes[:'roughness_affinity']
713
- end
714
-
715
- if attributes.key?(:'tonality_affinity')
716
- self.tonality_affinity = attributes[:'tonality_affinity']
717
- end
718
-
719
- if attributes.key?(:'harmony_affinity')
720
- self.harmony_affinity = attributes[:'harmony_affinity']
721
- end
722
-
723
- if attributes.key?(:'texture_affinity')
724
- self.texture_affinity = attributes[:'texture_affinity']
725
- end
726
-
727
- if attributes.key?(:'groovyness_affinity')
728
- self.groovyness_affinity = attributes[:'groovyness_affinity']
729
- end
730
-
731
- if attributes.key?(:'space_affinity')
732
- self.space_affinity = attributes[:'space_affinity']
733
- end
734
-
735
- if attributes.key?(:'timbre')
736
- self.timbre = attributes[:'timbre']
737
- end
738
-
739
- if attributes.key?(:'roughness')
740
- self.roughness = attributes[:'roughness']
741
- end
742
-
743
- if attributes.key?(:'tonality')
744
- self.tonality = attributes[:'tonality']
745
- end
746
-
747
- if attributes.key?(:'harmony')
748
- self.harmony = attributes[:'harmony']
749
- end
750
-
751
- if attributes.key?(:'texture')
752
- self.texture = attributes[:'texture']
753
- end
754
-
755
- if attributes.key?(:'groovyness')
756
- self.groovyness = attributes[:'groovyness']
757
- end
758
-
759
- if attributes.key?(:'space')
760
- self.space = attributes[:'space']
761
- end
762
-
763
- if attributes.key?(:'bpm')
764
- self.bpm = attributes[:'bpm']
765
- end
766
-
767
- if attributes.key?(:'key')
768
- self.key = attributes[:'key']
769
- end
770
-
771
- if attributes.key?(:'key_affinity')
772
- self.key_affinity = attributes[:'key_affinity']
773
- end
774
-
775
- if attributes.key?(:'production_rating')
776
- self.production_rating = attributes[:'production_rating']
777
- end
778
-
779
- if attributes.key?(:'production_rating_affinity')
780
- self.production_rating_affinity = attributes[:'production_rating_affinity']
781
- end
782
-
783
- if attributes.key?(:'performance_rating')
784
- self.performance_rating = attributes[:'performance_rating']
785
- end
786
-
787
- if attributes.key?(:'performance_rating_affinity')
788
- self.performance_rating_affinity = attributes[:'performance_rating_affinity']
789
- end
790
-
791
- if attributes.key?(:'song_rating')
792
- self.song_rating = attributes[:'song_rating']
793
- end
794
-
795
- if attributes.key?(:'song_rating_affinity')
796
- self.song_rating_affinity = attributes[:'song_rating_affinity']
797
- end
798
-
799
- if attributes.key?(:'audience_gender')
800
- self.audience_gender = attributes[:'audience_gender']
801
- end
802
-
803
- if attributes.key?(:'audience_gender_affinity')
804
- self.audience_gender_affinity = attributes[:'audience_gender_affinity']
805
- end
806
-
807
- if attributes.key?(:'audience_region')
808
- self.audience_region = attributes[:'audience_region']
809
- end
810
-
811
- if attributes.key?(:'audience_region_affinity')
812
- self.audience_region_affinity = attributes[:'audience_region_affinity']
813
- end
814
-
815
- if attributes.key?(:'secondary_audience_region_affinity')
816
- self.secondary_audience_region_affinity = attributes[:'secondary_audience_region_affinity']
817
- end
818
-
819
- if attributes.key?(:'secondary_audience_region')
820
- self.secondary_audience_region = attributes[:'secondary_audience_region']
821
- end
822
-
823
- if attributes.key?(:'tertiary_audience_region_affinity')
824
- self.tertiary_audience_region_affinity = attributes[:'tertiary_audience_region_affinity']
825
- end
826
-
827
- if attributes.key?(:'tertiary_audience_region')
828
- self.tertiary_audience_region = attributes[:'tertiary_audience_region']
829
- end
830
-
831
- if attributes.key?(:'audience_age')
832
- self.audience_age = attributes[:'audience_age']
833
- end
834
-
835
- if attributes.key?(:'audience_age_affinity')
836
- self.audience_age_affinity = attributes[:'audience_age_affinity']
837
- end
838
-
839
- if attributes.key?(:'secondary_audience_age')
840
- self.secondary_audience_age = attributes[:'secondary_audience_age']
841
- end
842
-
843
- if attributes.key?(:'secondary_audience_age_affinity')
844
- self.secondary_audience_age_affinity = attributes[:'secondary_audience_age_affinity']
845
- end
846
-
847
- if attributes.key?(:'tertiary_audience_age')
848
- self.tertiary_audience_age = attributes[:'tertiary_audience_age']
849
- end
850
-
851
- if attributes.key?(:'tertiary_audience_age_affinity')
852
- self.tertiary_audience_age_affinity = attributes[:'tertiary_audience_age_affinity']
853
- end
854
-
855
- if attributes.key?(:'origin_decade')
856
- self.origin_decade = attributes[:'origin_decade']
857
- end
858
-
859
- if attributes.key?(:'origin_decade_affinity')
860
- self.origin_decade_affinity = attributes[:'origin_decade_affinity']
861
- end
862
-
863
- if attributes.key?(:'language_of_performance')
864
- self.language_of_performance = attributes[:'language_of_performance']
865
- end
866
-
867
- if attributes.key?(:'language_of_performance_affinity')
868
- self.language_of_performance_affinity = attributes[:'language_of_performance_affinity']
869
- end
870
-
871
- if attributes.key?(:'origin_region')
872
- self.origin_region = attributes[:'origin_region']
873
- end
874
-
875
- if attributes.key?(:'origin_region_affinity')
876
- self.origin_region_affinity = attributes[:'origin_region_affinity']
877
- end
878
-
879
- if attributes.key?(:'taggrams')
880
- self.taggrams = attributes[:'taggrams']
881
- end
882
-
883
- if attributes.key?(:'embeddings')
884
- if (value = attributes[:'embeddings']).is_a?(Array)
885
- self.embeddings = value
886
- end
887
- end
888
-
889
- if attributes.key?(:'level1_genre')
890
- self.level1_genre = attributes[:'level1_genre']
891
- end
892
-
893
- if attributes.key?(:'level1_genre_affinity')
894
- self.level1_genre_affinity = attributes[:'level1_genre_affinity']
895
- end
896
-
897
- if attributes.key?(:'secondary_level1_genre')
898
- self.secondary_level1_genre = attributes[:'secondary_level1_genre']
899
- end
900
-
901
- if attributes.key?(:'secondary_level1_genre_affinity')
902
- self.secondary_level1_genre_affinity = attributes[:'secondary_level1_genre_affinity']
903
- end
904
-
905
- if attributes.key?(:'tertiary_level1_genre')
906
- self.tertiary_level1_genre = attributes[:'tertiary_level1_genre']
907
- end
908
-
909
- if attributes.key?(:'tertiary_level1_genre_affinity')
910
- self.tertiary_level1_genre_affinity = attributes[:'tertiary_level1_genre_affinity']
911
- end
912
-
913
- if attributes.key?(:'level2_genre')
914
- self.level2_genre = attributes[:'level2_genre']
915
- end
916
-
917
- if attributes.key?(:'level2_genre_affinity')
918
- self.level2_genre_affinity = attributes[:'level2_genre_affinity']
919
- end
920
-
921
- if attributes.key?(:'secondary_level2_genre')
922
- self.secondary_level2_genre = attributes[:'secondary_level2_genre']
923
- end
924
-
925
- if attributes.key?(:'secondary_level2_genre_affinity')
926
- self.secondary_level2_genre_affinity = attributes[:'secondary_level2_genre_affinity']
927
- end
928
-
929
- if attributes.key?(:'tertiary_level2_genre')
930
- self.tertiary_level2_genre = attributes[:'tertiary_level2_genre']
931
- end
932
-
933
- if attributes.key?(:'tertiary_level2_genre_affinity')
934
- self.tertiary_level2_genre_affinity = attributes[:'tertiary_level2_genre_affinity']
935
- end
936
-
937
- if attributes.key?(:'curateability')
938
- self.curateability = attributes[:'curateability']
939
- end
940
-
941
- if attributes.key?(:'curateability_affinity')
942
- self.curateability_affinity = attributes[:'curateability_affinity']
943
- end
944
-
945
- if attributes.key?(:'use_case')
946
- self.use_case = attributes[:'use_case']
947
- end
948
-
949
- if attributes.key?(:'use_case_affinity')
950
- self.use_case_affinity = attributes[:'use_case_affinity']
951
- end
952
-
953
- if attributes.key?(:'social_media')
954
- self.social_media = attributes[:'social_media']
955
- end
956
-
957
- if attributes.key?(:'social_media_affinity')
958
- self.social_media_affinity = attributes[:'social_media_affinity']
959
- end
960
-
961
- if attributes.key?(:'industry_suitability')
962
- self.industry_suitability = attributes[:'industry_suitability']
963
- end
964
-
965
- if attributes.key?(:'industry_suitability_affinity')
966
- self.industry_suitability_affinity = attributes[:'industry_suitability_affinity']
967
- end
968
-
969
- if attributes.key?(:'created_by_version')
970
- self.created_by_version = attributes[:'created_by_version']
971
- else
972
- self.created_by_version = nil
973
- end
974
-
975
- if attributes.key?(:'tags')
976
- if (value = attributes[:'tags']).is_a?(Array)
977
- self.tags = value
978
- end
979
- end
980
-
981
- if attributes.key?(:'genres')
982
- if (value = attributes[:'genres']).is_a?(Array)
983
- self.genres = value
984
- end
985
- end
986
-
987
- if attributes.key?(:'parties')
988
- if (value = attributes[:'parties']).is_a?(Array)
989
- self.parties = value
990
- end
991
- end
992
-
993
- if attributes.key?(:'iswc')
994
- self.iswc = attributes[:'iswc']
995
- end
996
-
997
- if attributes.key?(:'proprietary_id_gema')
998
- self.proprietary_id_gema = attributes[:'proprietary_id_gema']
999
- end
1000
-
1001
- if attributes.key?(:'title')
1002
- self.title = attributes[:'title']
1003
- end
1004
-
1005
- if attributes.key?(:'version_title')
1006
- self.version_title = attributes[:'version_title']
1007
- end
1008
-
1009
- if attributes.key?(:'context_kind')
1010
- self.context_kind = attributes[:'context_kind']
1011
- end
1012
-
1013
- if attributes.key?(:'context_value')
1014
- self.context_value = attributes[:'context_value']
1015
- end
1016
- end
1017
-
1018
- # Show invalid properties with the reasons. Usually used together with valid?
1019
- # @return Array for valid properties with the reasons
1020
- def list_invalid_properties
1021
- warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
1022
- invalid_properties = Array.new
1023
- if @isrc.nil?
1024
- invalid_properties.push('invalid value for "isrc", isrc cannot be nil.')
1025
- end
1026
-
1027
- if @created_by_version.nil?
1028
- invalid_properties.push('invalid value for "created_by_version", created_by_version cannot be nil.')
1029
- end
1030
-
1031
- invalid_properties
1032
- end
1033
-
1034
- # Check to see if the all the properties in the model are valid
1035
- # @return true if the model is valid
1036
- def valid?
1037
- warn '[DEPRECATED] the `valid?` method is obsolete'
1038
- return false if @isrc.nil?
1039
- primary_mood_cluster_validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1040
- return false unless primary_mood_cluster_validator.valid?(@primary_mood_cluster)
1041
- secondary_mood_cluster_validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1042
- return false unless secondary_mood_cluster_validator.valid?(@secondary_mood_cluster)
1043
- tertiary_mood_cluster_validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1044
- return false unless tertiary_mood_cluster_validator.valid?(@tertiary_mood_cluster)
1045
- valence_validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
1046
- return false unless valence_validator.valid?(@valence)
1047
- arousal_validator = EnumAttributeValidator.new('String', ["very calm", "calm", "moderate arousal", "energetic", "very energetic", "varying arousal"])
1048
- return false unless arousal_validator.valid?(@arousal)
1049
- pleasantness_validator = EnumAttributeValidator.new('String', ["very unpleasant", "unpleasant", "neutral pleasantness", "pleasant", "very pleasant", "varying pleasantness"])
1050
- return false unless pleasantness_validator.valid?(@pleasantness)
1051
- engagement_validator = EnumAttributeValidator.new('String', ["very unengaging", "unengaging", "neutral engagement", "engaging", "very engaging", "varying engagement"])
1052
- return false unless engagement_validator.valid?(@engagement)
1053
- vocals_validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
1054
- return false unless vocals_validator.valid?(@vocals)
1055
- dominant_instrument_validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1056
- return false unless dominant_instrument_validator.valid?(@dominant_instrument)
1057
- secondary_instrument_validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1058
- return false unless secondary_instrument_validator.valid?(@secondary_instrument)
1059
- tertiary_instrument_validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1060
- return false unless tertiary_instrument_validator.valid?(@tertiary_instrument)
1061
- energy_validator = EnumAttributeValidator.new('String', ["very quiet", "quiet", "moderate", "loud", "very loud", "dynamic"])
1062
- return false unless energy_validator.valid?(@energy)
1063
- sound_generation_validator = EnumAttributeValidator.new('String', ["acoustic", "electric", "electronic", "mixed sound generation"])
1064
- return false unless sound_generation_validator.valid?(@sound_generation)
1065
- tempo_validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
1066
- return false unless tempo_validator.valid?(@tempo)
1067
- scale_validator = EnumAttributeValidator.new('String', ["major key", "minor key", "neutral key"])
1068
- return false unless scale_validator.valid?(@scale)
1069
- rhythm_validator = EnumAttributeValidator.new('String', ["common time", "triple meter", "complex time signature", "binary rhythm", "ternary rhythm"])
1070
- return false unless rhythm_validator.valid?(@rhythm)
1071
- primary_sound_character_validator = EnumAttributeValidator.new('String', ["brassy", "bright", "clear", "deep", "distorted", "flat", "full", "groovy", "melodious", "natural", "resonant", "shrill", "steady", "thin", "warm"])
1072
- return false unless primary_sound_character_validator.valid?(@primary_sound_character)
1073
- timbre_validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
1074
- return false unless timbre_validator.valid?(@timbre)
1075
- roughness_validator = EnumAttributeValidator.new('String', ["very clear", "clear", "moderate roughness", "distorted", "very distorted"])
1076
- return false unless roughness_validator.valid?(@roughness)
1077
- tonality_validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
1078
- return false unless tonality_validator.valid?(@tonality)
1079
- harmony_validator = EnumAttributeValidator.new('String', ["very dissonant", "dissonant", "moderate harmonies", "harmonious", "very harmonious"])
1080
- return false unless harmony_validator.valid?(@harmony)
1081
- texture_validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
1082
- return false unless texture_validator.valid?(@texture)
1083
- groovyness_validator = EnumAttributeValidator.new('String', ["very steady", "steady", "moderate rhythm feel", "groovy", "very groovy"])
1084
- return false unless groovyness_validator.valid?(@groovyness)
1085
- space_validator = EnumAttributeValidator.new('String', ["very compact", "compact", "moderate space", "wide", "very wide"])
1086
- return false unless space_validator.valid?(@space)
1087
- key_validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
1088
- return false unless key_validator.valid?(@key)
1089
- production_rating_validator = EnumAttributeValidator.new('String', ["low production quality", "medium production quality", "high production quality"])
1090
- return false unless production_rating_validator.valid?(@production_rating)
1091
- performance_rating_validator = EnumAttributeValidator.new('String', ["low performance quality", "medium performance quality", "high performance quality"])
1092
- return false unless performance_rating_validator.valid?(@performance_rating)
1093
- song_rating_validator = EnumAttributeValidator.new('String', ["low song quality", "medium song quality", "high song quality"])
1094
- return false unless song_rating_validator.valid?(@song_rating)
1095
- audience_gender_validator = EnumAttributeValidator.new('String', ["male", "female"])
1096
- return false unless audience_gender_validator.valid?(@audience_gender)
1097
- audience_region_validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1098
- return false unless audience_region_validator.valid?(@audience_region)
1099
- secondary_audience_region_validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1100
- return false unless secondary_audience_region_validator.valid?(@secondary_audience_region)
1101
- tertiary_audience_region_validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1102
- return false unless tertiary_audience_region_validator.valid?(@tertiary_audience_region)
1103
- audience_age_validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1104
- return false unless audience_age_validator.valid?(@audience_age)
1105
- secondary_audience_age_validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1106
- return false unless secondary_audience_age_validator.valid?(@secondary_audience_age)
1107
- tertiary_audience_age_validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1108
- return false unless tertiary_audience_age_validator.valid?(@tertiary_audience_age)
1109
- origin_decade_validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
1110
- return false unless origin_decade_validator.valid?(@origin_decade)
1111
- language_of_performance_validator = EnumAttributeValidator.new('String', ["en", "de", "no", "fr", "es", "pt", "fi", "ru", "it", "la", "el", "ar", "nl", "ja", "pl", "sv", "zu", "da", "cs", "hu", "af", "hi", "tr", "zh", "ms", "pa", "id", "ko", "vi"])
1112
- return false unless language_of_performance_validator.valid?(@language_of_performance)
1113
- origin_region_validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1114
- return false unless origin_region_validator.valid?(@origin_region)
1115
- level1_genre_validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1116
- return false unless level1_genre_validator.valid?(@level1_genre)
1117
- secondary_level1_genre_validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1118
- return false unless secondary_level1_genre_validator.valid?(@secondary_level1_genre)
1119
- tertiary_level1_genre_validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1120
- return false unless tertiary_level1_genre_validator.valid?(@tertiary_level1_genre)
1121
- level2_genre_validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1122
- return false unless level2_genre_validator.valid?(@level2_genre)
1123
- secondary_level2_genre_validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1124
- return false unless secondary_level2_genre_validator.valid?(@secondary_level2_genre)
1125
- tertiary_level2_genre_validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1126
- return false unless tertiary_level2_genre_validator.valid?(@tertiary_level2_genre)
1127
- curateability_validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
1128
- return false unless curateability_validator.valid?(@curateability)
1129
- use_case_validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax"])
1130
- return false unless use_case_validator.valid?(@use_case)
1131
- social_media_validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
1132
- return false unless social_media_validator.valid?(@social_media)
1133
- industry_suitability_validator = EnumAttributeValidator.new('String', ["Automobiles and Parts", "Consumer Products and Services", "Financial Services", "Food, Beverage and Tobacco", "Health Care", "Insurance", "Media", "Politics, Government and Organizations", "Real Estate", "Retail", "Technology", "Telecommunications", "Travel and Leisure"])
1134
- return false unless industry_suitability_validator.valid?(@industry_suitability)
1135
- return false if @created_by_version.nil?
1136
- true
1137
- end
1138
-
1139
- # Custom attribute writer method checking allowed values (enum).
1140
- # @param [Object] primary_mood_cluster Object to be assigned
1141
- def primary_mood_cluster=(primary_mood_cluster)
1142
- validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1143
- unless validator.valid?(primary_mood_cluster)
1144
- fail ArgumentError, "invalid value for \"primary_mood_cluster\", must be one of #{validator.allowable_values}."
1145
- end
1146
- @primary_mood_cluster = primary_mood_cluster
1147
- end
1148
-
1149
- # Custom attribute writer method checking allowed values (enum).
1150
- # @param [Object] secondary_mood_cluster Object to be assigned
1151
- def secondary_mood_cluster=(secondary_mood_cluster)
1152
- validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1153
- unless validator.valid?(secondary_mood_cluster)
1154
- fail ArgumentError, "invalid value for \"secondary_mood_cluster\", must be one of #{validator.allowable_values}."
1155
- end
1156
- @secondary_mood_cluster = secondary_mood_cluster
1157
- end
1158
-
1159
- # Custom attribute writer method checking allowed values (enum).
1160
- # @param [Object] tertiary_mood_cluster Object to be assigned
1161
- def tertiary_mood_cluster=(tertiary_mood_cluster)
1162
- validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
1163
- unless validator.valid?(tertiary_mood_cluster)
1164
- fail ArgumentError, "invalid value for \"tertiary_mood_cluster\", must be one of #{validator.allowable_values}."
1165
- end
1166
- @tertiary_mood_cluster = tertiary_mood_cluster
1167
- end
1168
-
1169
- # Custom attribute writer method checking allowed values (enum).
1170
- # @param [Object] valence Object to be assigned
1171
- def valence=(valence)
1172
- validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
1173
- unless validator.valid?(valence)
1174
- fail ArgumentError, "invalid value for \"valence\", must be one of #{validator.allowable_values}."
1175
- end
1176
- @valence = valence
1177
- end
1178
-
1179
- # Custom attribute writer method checking allowed values (enum).
1180
- # @param [Object] arousal Object to be assigned
1181
- def arousal=(arousal)
1182
- validator = EnumAttributeValidator.new('String', ["very calm", "calm", "moderate arousal", "energetic", "very energetic", "varying arousal"])
1183
- unless validator.valid?(arousal)
1184
- fail ArgumentError, "invalid value for \"arousal\", must be one of #{validator.allowable_values}."
1185
- end
1186
- @arousal = arousal
1187
- end
1188
-
1189
- # Custom attribute writer method checking allowed values (enum).
1190
- # @param [Object] pleasantness Object to be assigned
1191
- def pleasantness=(pleasantness)
1192
- validator = EnumAttributeValidator.new('String', ["very unpleasant", "unpleasant", "neutral pleasantness", "pleasant", "very pleasant", "varying pleasantness"])
1193
- unless validator.valid?(pleasantness)
1194
- fail ArgumentError, "invalid value for \"pleasantness\", must be one of #{validator.allowable_values}."
1195
- end
1196
- @pleasantness = pleasantness
1197
- end
1198
-
1199
- # Custom attribute writer method checking allowed values (enum).
1200
- # @param [Object] engagement Object to be assigned
1201
- def engagement=(engagement)
1202
- validator = EnumAttributeValidator.new('String', ["very unengaging", "unengaging", "neutral engagement", "engaging", "very engaging", "varying engagement"])
1203
- unless validator.valid?(engagement)
1204
- fail ArgumentError, "invalid value for \"engagement\", must be one of #{validator.allowable_values}."
1205
- end
1206
- @engagement = engagement
1207
- end
1208
-
1209
- # Custom attribute writer method checking allowed values (enum).
1210
- # @param [Object] vocals Object to be assigned
1211
- def vocals=(vocals)
1212
- validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
1213
- unless validator.valid?(vocals)
1214
- fail ArgumentError, "invalid value for \"vocals\", must be one of #{validator.allowable_values}."
1215
- end
1216
- @vocals = vocals
1217
- end
1218
-
1219
- # Custom attribute writer method checking allowed values (enum).
1220
- # @param [Object] dominant_instrument Object to be assigned
1221
- def dominant_instrument=(dominant_instrument)
1222
- validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1223
- unless validator.valid?(dominant_instrument)
1224
- fail ArgumentError, "invalid value for \"dominant_instrument\", must be one of #{validator.allowable_values}."
1225
- end
1226
- @dominant_instrument = dominant_instrument
1227
- end
1228
-
1229
- # Custom attribute writer method checking allowed values (enum).
1230
- # @param [Object] secondary_instrument Object to be assigned
1231
- def secondary_instrument=(secondary_instrument)
1232
- validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1233
- unless validator.valid?(secondary_instrument)
1234
- fail ArgumentError, "invalid value for \"secondary_instrument\", must be one of #{validator.allowable_values}."
1235
- end
1236
- @secondary_instrument = secondary_instrument
1237
- end
1238
-
1239
- # Custom attribute writer method checking allowed values (enum).
1240
- # @param [Object] tertiary_instrument Object to be assigned
1241
- def tertiary_instrument=(tertiary_instrument)
1242
- validator = EnumAttributeValidator.new('String', ["electric guitar", "piano", "electronics", "guitar", "strings", "synthesizer", "wind", "saxophone", "flute", "trumpet", "drum kit", "keys", "accordion", "violin", "harpsichord", "choir", "cello", "electric bass", "organ", "brass", "percussion", "vocals", "double bass", "harp"])
1243
- unless validator.valid?(tertiary_instrument)
1244
- fail ArgumentError, "invalid value for \"tertiary_instrument\", must be one of #{validator.allowable_values}."
1245
- end
1246
- @tertiary_instrument = tertiary_instrument
1247
- end
1248
-
1249
- # Custom attribute writer method checking allowed values (enum).
1250
- # @param [Object] energy Object to be assigned
1251
- def energy=(energy)
1252
- validator = EnumAttributeValidator.new('String', ["very quiet", "quiet", "moderate", "loud", "very loud", "dynamic"])
1253
- unless validator.valid?(energy)
1254
- fail ArgumentError, "invalid value for \"energy\", must be one of #{validator.allowable_values}."
1255
- end
1256
- @energy = energy
1257
- end
1258
-
1259
- # Custom attribute writer method checking allowed values (enum).
1260
- # @param [Object] sound_generation Object to be assigned
1261
- def sound_generation=(sound_generation)
1262
- validator = EnumAttributeValidator.new('String', ["acoustic", "electric", "electronic", "mixed sound generation"])
1263
- unless validator.valid?(sound_generation)
1264
- fail ArgumentError, "invalid value for \"sound_generation\", must be one of #{validator.allowable_values}."
1265
- end
1266
- @sound_generation = sound_generation
1267
- end
1268
-
1269
- # Custom attribute writer method checking allowed values (enum).
1270
- # @param [Object] tempo Object to be assigned
1271
- def tempo=(tempo)
1272
- validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
1273
- unless validator.valid?(tempo)
1274
- fail ArgumentError, "invalid value for \"tempo\", must be one of #{validator.allowable_values}."
1275
- end
1276
- @tempo = tempo
1277
- end
1278
-
1279
- # Custom attribute writer method checking allowed values (enum).
1280
- # @param [Object] scale Object to be assigned
1281
- def scale=(scale)
1282
- validator = EnumAttributeValidator.new('String', ["major key", "minor key", "neutral key"])
1283
- unless validator.valid?(scale)
1284
- fail ArgumentError, "invalid value for \"scale\", must be one of #{validator.allowable_values}."
1285
- end
1286
- @scale = scale
1287
- end
1288
-
1289
- # Custom attribute writer method checking allowed values (enum).
1290
- # @param [Object] rhythm Object to be assigned
1291
- def rhythm=(rhythm)
1292
- validator = EnumAttributeValidator.new('String', ["common time", "triple meter", "complex time signature", "binary rhythm", "ternary rhythm"])
1293
- unless validator.valid?(rhythm)
1294
- fail ArgumentError, "invalid value for \"rhythm\", must be one of #{validator.allowable_values}."
1295
- end
1296
- @rhythm = rhythm
1297
- end
1298
-
1299
- # Custom attribute writer method checking allowed values (enum).
1300
- # @param [Object] primary_sound_character Object to be assigned
1301
- def primary_sound_character=(primary_sound_character)
1302
- validator = EnumAttributeValidator.new('String', ["brassy", "bright", "clear", "deep", "distorted", "flat", "full", "groovy", "melodious", "natural", "resonant", "shrill", "steady", "thin", "warm"])
1303
- unless validator.valid?(primary_sound_character)
1304
- fail ArgumentError, "invalid value for \"primary_sound_character\", must be one of #{validator.allowable_values}."
1305
- end
1306
- @primary_sound_character = primary_sound_character
1307
- end
1308
-
1309
- # Custom attribute writer method checking allowed values (enum).
1310
- # @param [Object] timbre Object to be assigned
1311
- def timbre=(timbre)
1312
- validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
1313
- unless validator.valid?(timbre)
1314
- fail ArgumentError, "invalid value for \"timbre\", must be one of #{validator.allowable_values}."
1315
- end
1316
- @timbre = timbre
1317
- end
1318
-
1319
- # Custom attribute writer method checking allowed values (enum).
1320
- # @param [Object] roughness Object to be assigned
1321
- def roughness=(roughness)
1322
- validator = EnumAttributeValidator.new('String', ["very clear", "clear", "moderate roughness", "distorted", "very distorted"])
1323
- unless validator.valid?(roughness)
1324
- fail ArgumentError, "invalid value for \"roughness\", must be one of #{validator.allowable_values}."
1325
- end
1326
- @roughness = roughness
1327
- end
1328
-
1329
- # Custom attribute writer method checking allowed values (enum).
1330
- # @param [Object] tonality Object to be assigned
1331
- def tonality=(tonality)
1332
- validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
1333
- unless validator.valid?(tonality)
1334
- fail ArgumentError, "invalid value for \"tonality\", must be one of #{validator.allowable_values}."
1335
- end
1336
- @tonality = tonality
1337
- end
1338
-
1339
- # Custom attribute writer method checking allowed values (enum).
1340
- # @param [Object] harmony Object to be assigned
1341
- def harmony=(harmony)
1342
- validator = EnumAttributeValidator.new('String', ["very dissonant", "dissonant", "moderate harmonies", "harmonious", "very harmonious"])
1343
- unless validator.valid?(harmony)
1344
- fail ArgumentError, "invalid value for \"harmony\", must be one of #{validator.allowable_values}."
1345
- end
1346
- @harmony = harmony
1347
- end
1348
-
1349
- # Custom attribute writer method checking allowed values (enum).
1350
- # @param [Object] texture Object to be assigned
1351
- def texture=(texture)
1352
- validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
1353
- unless validator.valid?(texture)
1354
- fail ArgumentError, "invalid value for \"texture\", must be one of #{validator.allowable_values}."
1355
- end
1356
- @texture = texture
1357
- end
1358
-
1359
- # Custom attribute writer method checking allowed values (enum).
1360
- # @param [Object] groovyness Object to be assigned
1361
- def groovyness=(groovyness)
1362
- validator = EnumAttributeValidator.new('String', ["very steady", "steady", "moderate rhythm feel", "groovy", "very groovy"])
1363
- unless validator.valid?(groovyness)
1364
- fail ArgumentError, "invalid value for \"groovyness\", must be one of #{validator.allowable_values}."
1365
- end
1366
- @groovyness = groovyness
1367
- end
1368
-
1369
- # Custom attribute writer method checking allowed values (enum).
1370
- # @param [Object] space Object to be assigned
1371
- def space=(space)
1372
- validator = EnumAttributeValidator.new('String', ["very compact", "compact", "moderate space", "wide", "very wide"])
1373
- unless validator.valid?(space)
1374
- fail ArgumentError, "invalid value for \"space\", must be one of #{validator.allowable_values}."
1375
- end
1376
- @space = space
1377
- end
1378
-
1379
- # Custom attribute writer method checking allowed values (enum).
1380
- # @param [Object] key Object to be assigned
1381
- def key=(key)
1382
- validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
1383
- unless validator.valid?(key)
1384
- fail ArgumentError, "invalid value for \"key\", must be one of #{validator.allowable_values}."
1385
- end
1386
- @key = key
1387
- end
1388
-
1389
- # Custom attribute writer method checking allowed values (enum).
1390
- # @param [Object] production_rating Object to be assigned
1391
- def production_rating=(production_rating)
1392
- validator = EnumAttributeValidator.new('String', ["low production quality", "medium production quality", "high production quality"])
1393
- unless validator.valid?(production_rating)
1394
- fail ArgumentError, "invalid value for \"production_rating\", must be one of #{validator.allowable_values}."
1395
- end
1396
- @production_rating = production_rating
1397
- end
1398
-
1399
- # Custom attribute writer method checking allowed values (enum).
1400
- # @param [Object] performance_rating Object to be assigned
1401
- def performance_rating=(performance_rating)
1402
- validator = EnumAttributeValidator.new('String', ["low performance quality", "medium performance quality", "high performance quality"])
1403
- unless validator.valid?(performance_rating)
1404
- fail ArgumentError, "invalid value for \"performance_rating\", must be one of #{validator.allowable_values}."
1405
- end
1406
- @performance_rating = performance_rating
1407
- end
1408
-
1409
- # Custom attribute writer method checking allowed values (enum).
1410
- # @param [Object] song_rating Object to be assigned
1411
- def song_rating=(song_rating)
1412
- validator = EnumAttributeValidator.new('String', ["low song quality", "medium song quality", "high song quality"])
1413
- unless validator.valid?(song_rating)
1414
- fail ArgumentError, "invalid value for \"song_rating\", must be one of #{validator.allowable_values}."
1415
- end
1416
- @song_rating = song_rating
1417
- end
1418
-
1419
- # Custom attribute writer method checking allowed values (enum).
1420
- # @param [Object] audience_gender Object to be assigned
1421
- def audience_gender=(audience_gender)
1422
- validator = EnumAttributeValidator.new('String', ["male", "female"])
1423
- unless validator.valid?(audience_gender)
1424
- fail ArgumentError, "invalid value for \"audience_gender\", must be one of #{validator.allowable_values}."
1425
- end
1426
- @audience_gender = audience_gender
1427
- end
1428
-
1429
- # Custom attribute writer method checking allowed values (enum).
1430
- # @param [Object] audience_region Object to be assigned
1431
- def audience_region=(audience_region)
1432
- validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1433
- unless validator.valid?(audience_region)
1434
- fail ArgumentError, "invalid value for \"audience_region\", must be one of #{validator.allowable_values}."
1435
- end
1436
- @audience_region = audience_region
1437
- end
1438
-
1439
- # Custom attribute writer method checking allowed values (enum).
1440
- # @param [Object] secondary_audience_region Object to be assigned
1441
- def secondary_audience_region=(secondary_audience_region)
1442
- validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1443
- unless validator.valid?(secondary_audience_region)
1444
- fail ArgumentError, "invalid value for \"secondary_audience_region\", must be one of #{validator.allowable_values}."
1445
- end
1446
- @secondary_audience_region = secondary_audience_region
1447
- end
1448
-
1449
- # Custom attribute writer method checking allowed values (enum).
1450
- # @param [Object] tertiary_audience_region Object to be assigned
1451
- def tertiary_audience_region=(tertiary_audience_region)
1452
- validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1453
- unless validator.valid?(tertiary_audience_region)
1454
- fail ArgumentError, "invalid value for \"tertiary_audience_region\", must be one of #{validator.allowable_values}."
1455
- end
1456
- @tertiary_audience_region = tertiary_audience_region
1457
- end
1458
-
1459
- # Custom attribute writer method checking allowed values (enum).
1460
- # @param [Object] audience_age Object to be assigned
1461
- def audience_age=(audience_age)
1462
- validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1463
- unless validator.valid?(audience_age)
1464
- fail ArgumentError, "invalid value for \"audience_age\", must be one of #{validator.allowable_values}."
1465
- end
1466
- @audience_age = audience_age
1467
- end
1468
-
1469
- # Custom attribute writer method checking allowed values (enum).
1470
- # @param [Object] secondary_audience_age Object to be assigned
1471
- def secondary_audience_age=(secondary_audience_age)
1472
- validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1473
- unless validator.valid?(secondary_audience_age)
1474
- fail ArgumentError, "invalid value for \"secondary_audience_age\", must be one of #{validator.allowable_values}."
1475
- end
1476
- @secondary_audience_age = secondary_audience_age
1477
- end
1478
-
1479
- # Custom attribute writer method checking allowed values (enum).
1480
- # @param [Object] tertiary_audience_age Object to be assigned
1481
- def tertiary_audience_age=(tertiary_audience_age)
1482
- validator = EnumAttributeValidator.new('String', ["Generation Z", "Younger Generation Y", "Older Generation Y", "Generation X", "Younger Generation B", "Older Generation B"])
1483
- unless validator.valid?(tertiary_audience_age)
1484
- fail ArgumentError, "invalid value for \"tertiary_audience_age\", must be one of #{validator.allowable_values}."
1485
- end
1486
- @tertiary_audience_age = tertiary_audience_age
1487
- end
1488
-
1489
- # Custom attribute writer method checking allowed values (enum).
1490
- # @param [Object] origin_decade Object to be assigned
1491
- def origin_decade=(origin_decade)
1492
- validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
1493
- unless validator.valid?(origin_decade)
1494
- fail ArgumentError, "invalid value for \"origin_decade\", must be one of #{validator.allowable_values}."
1495
- end
1496
- @origin_decade = origin_decade
1497
- end
1498
-
1499
- # Custom attribute writer method checking allowed values (enum).
1500
- # @param [Object] language_of_performance Object to be assigned
1501
- def language_of_performance=(language_of_performance)
1502
- validator = EnumAttributeValidator.new('String', ["en", "de", "no", "fr", "es", "pt", "fi", "ru", "it", "la", "el", "ar", "nl", "ja", "pl", "sv", "zu", "da", "cs", "hu", "af", "hi", "tr", "zh", "ms", "pa", "id", "ko", "vi"])
1503
- unless validator.valid?(language_of_performance)
1504
- fail ArgumentError, "invalid value for \"language_of_performance\", must be one of #{validator.allowable_values}."
1505
- end
1506
- @language_of_performance = language_of_performance
1507
- end
1508
-
1509
- # Custom attribute writer method checking allowed values (enum).
1510
- # @param [Object] origin_region Object to be assigned
1511
- def origin_region=(origin_region)
1512
- validator = EnumAttributeValidator.new('String', ["Australia and New Zealand", "Central America and the Carribean", "Central and Southern Asia", "Eastern Asia", "Eastern Europe", "Northern Africa and Western Asia", "Northern America", "Oceania", "South America", "South-Eastern Asia", "Southern Europe", "Sub-Saharan Africa", "Western and Northern Europe"])
1513
- unless validator.valid?(origin_region)
1514
- fail ArgumentError, "invalid value for \"origin_region\", must be one of #{validator.allowable_values}."
1515
- end
1516
- @origin_region = origin_region
1517
- end
1518
-
1519
- # Custom attribute writer method checking allowed values (enum).
1520
- # @param [Object] level1_genre Object to be assigned
1521
- def level1_genre=(level1_genre)
1522
- validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1523
- unless validator.valid?(level1_genre)
1524
- fail ArgumentError, "invalid value for \"level1_genre\", must be one of #{validator.allowable_values}."
1525
- end
1526
- @level1_genre = level1_genre
1527
- end
1528
-
1529
- # Custom attribute writer method checking allowed values (enum).
1530
- # @param [Object] secondary_level1_genre Object to be assigned
1531
- def secondary_level1_genre=(secondary_level1_genre)
1532
- validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1533
- unless validator.valid?(secondary_level1_genre)
1534
- fail ArgumentError, "invalid value for \"secondary_level1_genre\", must be one of #{validator.allowable_values}."
1535
- end
1536
- @secondary_level1_genre = secondary_level1_genre
1537
- end
1538
-
1539
- # Custom attribute writer method checking allowed values (enum).
1540
- # @param [Object] tertiary_level1_genre Object to be assigned
1541
- def tertiary_level1_genre=(tertiary_level1_genre)
1542
- validator = EnumAttributeValidator.new('String', ["Pop", "Rock", "Metal", "Jazz", "World", "Country", "Functional Music", "Classical", "Alternative", "R&B", "Blues", "Hip Hop", "Reggae", "Electronic", "Spoken Word", "Folk", "Latin"])
1543
- unless validator.valid?(tertiary_level1_genre)
1544
- fail ArgumentError, "invalid value for \"tertiary_level1_genre\", must be one of #{validator.allowable_values}."
1545
- end
1546
- @tertiary_level1_genre = tertiary_level1_genre
1547
- end
1548
-
1549
- # Custom attribute writer method checking allowed values (enum).
1550
- # @param [Object] level2_genre Object to be assigned
1551
- def level2_genre=(level2_genre)
1552
- validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1553
- unless validator.valid?(level2_genre)
1554
- fail ArgumentError, "invalid value for \"level2_genre\", must be one of #{validator.allowable_values}."
1555
- end
1556
- @level2_genre = level2_genre
1557
- end
1558
-
1559
- # Custom attribute writer method checking allowed values (enum).
1560
- # @param [Object] secondary_level2_genre Object to be assigned
1561
- def secondary_level2_genre=(secondary_level2_genre)
1562
- validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1563
- unless validator.valid?(secondary_level2_genre)
1564
- fail ArgumentError, "invalid value for \"secondary_level2_genre\", must be one of #{validator.allowable_values}."
1565
- end
1566
- @secondary_level2_genre = secondary_level2_genre
1567
- end
1568
-
1569
- # Custom attribute writer method checking allowed values (enum).
1570
- # @param [Object] tertiary_level2_genre Object to be assigned
1571
- def tertiary_level2_genre=(tertiary_level2_genre)
1572
- validator = EnumAttributeValidator.new('String', ["Electro Pop", "Indie Pop", "Indie Rock", "Electroclash", "Adult Contemporary", "Easy Listening", "Comedy Music", "New Age", "Chanson", "Singer/Songwriter", "Schlager", "Volksmusik", "Rock'n'Roll", "Rockabilly", "Psychobilly", "Surf", "Doo Wop", "Mainstream Rock", "Mersey Beat", "Glamrock", "Latin Rock", "Melodic Rock", "Progressive Rock", "Psychedelic Rock", "Hard Rock", "Krautrock", "Power Metal", "Nu Metal", "Grind Core", "Gothic Metal", "Death Metal", "Melodic Death Metal", "Thrash Metal", "Folk Metal", "Heavy Metal", "Doom Metal", "Black Metal", "Glam Metal", "Sleaze Metal", "Metalcore", "Progressive Metal", "Screamo", "Symphonic Metal", "Swing", "Ragtime", "Dixieland", "Boogie Woogie", "Bebop", "Cool Jazz", "Free Jazz", "Fusion", "Smooth Jazz", "Acid Jazz", "Bossa Nova", "Latin Jazz", "Nu-Jazz", "Tango", "Samba", "Salsa", "Axé", "Sertanejo", "Forró", "Choro", "Fado", "Flamenco", "Blasmusik", "American Folk", "Irish Folk", "Folk Rock", "Folk Pop", "Medieval Folk", "Americana", "Bluegrass", "Red Dirt", "Outlaw Country", "Country Pop", "Country Rock", "Nashville", "Honkytonk", "Production Music", "Soundtrack", "Musical", "Medieval", "Renaissance", "Baroque", "Classical Period", "Romanticism", "Neue Musik", "Minimal Music", "Neoklassik", "Contemporary Classical", "Postmoderne Musik", "Punk", "Noise Rock", "Garage", "Grunge", "Industrial", "New Wave", "Post Punk", "Gothic Rock", "Stoner Rock", "Pop Punk", "Post Hardcore", "Post Rock", "Post Metal", "Post-Grunge", "Britpop", "Ska Punk", "Math Rock", "Dreampop", "Shoegaze", "Contemporary R&B", "Rhythm And Blues", "Disco", "Chicago Soul", "Detroit Soul", "Urban", "Nu R&B", "Old School Soul", "Neo Soul", "Early Funk", "Funk", "Contemporary Funk", "Funk Rock", "Folk Blues", "Classics Blues", "Contemporary Blues", "Blues Rock", "Trap Music", "Electro-hop", "Hardcore Rap", "Old School Hip Hop", "British Hip Hop", "Alternative Hip Hop", "Pop Rap", "Miami Bass & Bounce", "Dirty South Rap", "Turntablism", "West Coast Gangsta Rap", "East Coast Gangsta Rap", "Roots-Reggae", "Dub", "Raggamuffin", "Ska", "Dancehall", "House Music", "Drum and Bass", "Techno", "Chiptune", "Hard Dance", "Experimental Electronic", "Chicago House", "Ambient House", "Deep House", "Tech House", "Acid House", "Dutch House", "Progressive House", "Funky House", "Nu Disco", "Euro Disco", "Minimal Techno", "Hardcore Techno", "IDM", "Trance", "Psytrance", "Progressive Trance", "Grime", "Big Beat", "Dub Step", "Liquid Funk", "Hard Step", "Old School Jungle", "Trip Hop", "Gospel", "Dancepop", "Indietronica", "Nu Rave", "Emo-Rock", "Soft-Rock", "Post-Punk Revival", "Nu Prog", "Indie Folk", "Audiobook", "Audioplay", "Relaxation", "Acapella", "Latin Hip Hop", "Reggaeton", "Synthwave", "Lofi Hip Hop"])
1573
- unless validator.valid?(tertiary_level2_genre)
1574
- fail ArgumentError, "invalid value for \"tertiary_level2_genre\", must be one of #{validator.allowable_values}."
1575
- end
1576
- @tertiary_level2_genre = tertiary_level2_genre
1577
- end
1578
-
1579
- # Custom attribute writer method checking allowed values (enum).
1580
- # @param [Object] curateability Object to be assigned
1581
- def curateability=(curateability)
1582
- validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
1583
- unless validator.valid?(curateability)
1584
- fail ArgumentError, "invalid value for \"curateability\", must be one of #{validator.allowable_values}."
1585
- end
1586
- @curateability = curateability
1587
- end
1588
-
1589
- # Custom attribute writer method checking allowed values (enum).
1590
- # @param [Object] use_case Object to be assigned
1591
- def use_case=(use_case)
1592
- validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax"])
1593
- unless validator.valid?(use_case)
1594
- fail ArgumentError, "invalid value for \"use_case\", must be one of #{validator.allowable_values}."
1595
- end
1596
- @use_case = use_case
1597
- end
1598
-
1599
- # Custom attribute writer method checking allowed values (enum).
1600
- # @param [Object] social_media Object to be assigned
1601
- def social_media=(social_media)
1602
- validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
1603
- unless validator.valid?(social_media)
1604
- fail ArgumentError, "invalid value for \"social_media\", must be one of #{validator.allowable_values}."
1605
- end
1606
- @social_media = social_media
1607
- end
1608
-
1609
- # Custom attribute writer method checking allowed values (enum).
1610
- # @param [Object] industry_suitability Object to be assigned
1611
- def industry_suitability=(industry_suitability)
1612
- validator = EnumAttributeValidator.new('String', ["Automobiles and Parts", "Consumer Products and Services", "Financial Services", "Food, Beverage and Tobacco", "Health Care", "Insurance", "Media", "Politics, Government and Organizations", "Real Estate", "Retail", "Technology", "Telecommunications", "Travel and Leisure"])
1613
- unless validator.valid?(industry_suitability)
1614
- fail ArgumentError, "invalid value for \"industry_suitability\", must be one of #{validator.allowable_values}."
1615
- end
1616
- @industry_suitability = industry_suitability
1617
- end
1618
-
1619
- # Checks equality by comparing each attribute.
1620
- # @param [Object] Object to be compared
1621
- def ==(o)
1622
- return true if self.equal?(o)
1623
- self.class == o.class &&
1624
- isrc == o.isrc &&
1625
- name == o.name &&
1626
- folder == o.folder &&
1627
- primary_mood_cluster_affinity == o.primary_mood_cluster_affinity &&
1628
- primary_mood_cluster == o.primary_mood_cluster &&
1629
- secondary_mood_cluster_affinity == o.secondary_mood_cluster_affinity &&
1630
- secondary_mood_cluster == o.secondary_mood_cluster &&
1631
- tertiary_mood_cluster_affinity == o.tertiary_mood_cluster_affinity &&
1632
- tertiary_mood_cluster == o.tertiary_mood_cluster &&
1633
- valence_affinity == o.valence_affinity &&
1634
- arousal_affinity == o.arousal_affinity &&
1635
- pleasantness_affinity == o.pleasantness_affinity &&
1636
- engagement_affinity == o.engagement_affinity &&
1637
- valence == o.valence &&
1638
- arousal == o.arousal &&
1639
- pleasantness == o.pleasantness &&
1640
- engagement == o.engagement &&
1641
- vocals == o.vocals &&
1642
- vocals_affinity == o.vocals_affinity &&
1643
- dominant_instrument == o.dominant_instrument &&
1644
- dominant_instrument_affinity == o.dominant_instrument_affinity &&
1645
- secondary_instrument_affinity == o.secondary_instrument_affinity &&
1646
- secondary_instrument == o.secondary_instrument &&
1647
- tertiary_instrument_affinity == o.tertiary_instrument_affinity &&
1648
- tertiary_instrument == o.tertiary_instrument &&
1649
- energy == o.energy &&
1650
- energy_affinity == o.energy_affinity &&
1651
- sound_generation == o.sound_generation &&
1652
- sound_generation_affinity == o.sound_generation_affinity &&
1653
- tempo == o.tempo &&
1654
- tempo_affinity == o.tempo_affinity &&
1655
- scale == o.scale &&
1656
- scale_affinity == o.scale_affinity &&
1657
- rhythm == o.rhythm &&
1658
- rhythm_affinity == o.rhythm_affinity &&
1659
- primary_sound_character == o.primary_sound_character &&
1660
- primary_sound_character_affinity == o.primary_sound_character_affinity &&
1661
- timbre_affinity == o.timbre_affinity &&
1662
- roughness_affinity == o.roughness_affinity &&
1663
- tonality_affinity == o.tonality_affinity &&
1664
- harmony_affinity == o.harmony_affinity &&
1665
- texture_affinity == o.texture_affinity &&
1666
- groovyness_affinity == o.groovyness_affinity &&
1667
- space_affinity == o.space_affinity &&
1668
- timbre == o.timbre &&
1669
- roughness == o.roughness &&
1670
- tonality == o.tonality &&
1671
- harmony == o.harmony &&
1672
- texture == o.texture &&
1673
- groovyness == o.groovyness &&
1674
- space == o.space &&
1675
- bpm == o.bpm &&
1676
- key == o.key &&
1677
- key_affinity == o.key_affinity &&
1678
- production_rating == o.production_rating &&
1679
- production_rating_affinity == o.production_rating_affinity &&
1680
- performance_rating == o.performance_rating &&
1681
- performance_rating_affinity == o.performance_rating_affinity &&
1682
- song_rating == o.song_rating &&
1683
- song_rating_affinity == o.song_rating_affinity &&
1684
- audience_gender == o.audience_gender &&
1685
- audience_gender_affinity == o.audience_gender_affinity &&
1686
- audience_region == o.audience_region &&
1687
- audience_region_affinity == o.audience_region_affinity &&
1688
- secondary_audience_region_affinity == o.secondary_audience_region_affinity &&
1689
- secondary_audience_region == o.secondary_audience_region &&
1690
- tertiary_audience_region_affinity == o.tertiary_audience_region_affinity &&
1691
- tertiary_audience_region == o.tertiary_audience_region &&
1692
- audience_age == o.audience_age &&
1693
- audience_age_affinity == o.audience_age_affinity &&
1694
- secondary_audience_age == o.secondary_audience_age &&
1695
- secondary_audience_age_affinity == o.secondary_audience_age_affinity &&
1696
- tertiary_audience_age == o.tertiary_audience_age &&
1697
- tertiary_audience_age_affinity == o.tertiary_audience_age_affinity &&
1698
- origin_decade == o.origin_decade &&
1699
- origin_decade_affinity == o.origin_decade_affinity &&
1700
- language_of_performance == o.language_of_performance &&
1701
- language_of_performance_affinity == o.language_of_performance_affinity &&
1702
- origin_region == o.origin_region &&
1703
- origin_region_affinity == o.origin_region_affinity &&
1704
- taggrams == o.taggrams &&
1705
- embeddings == o.embeddings &&
1706
- level1_genre == o.level1_genre &&
1707
- level1_genre_affinity == o.level1_genre_affinity &&
1708
- secondary_level1_genre == o.secondary_level1_genre &&
1709
- secondary_level1_genre_affinity == o.secondary_level1_genre_affinity &&
1710
- tertiary_level1_genre == o.tertiary_level1_genre &&
1711
- tertiary_level1_genre_affinity == o.tertiary_level1_genre_affinity &&
1712
- level2_genre == o.level2_genre &&
1713
- level2_genre_affinity == o.level2_genre_affinity &&
1714
- secondary_level2_genre == o.secondary_level2_genre &&
1715
- secondary_level2_genre_affinity == o.secondary_level2_genre_affinity &&
1716
- tertiary_level2_genre == o.tertiary_level2_genre &&
1717
- tertiary_level2_genre_affinity == o.tertiary_level2_genre_affinity &&
1718
- curateability == o.curateability &&
1719
- curateability_affinity == o.curateability_affinity &&
1720
- use_case == o.use_case &&
1721
- use_case_affinity == o.use_case_affinity &&
1722
- social_media == o.social_media &&
1723
- social_media_affinity == o.social_media_affinity &&
1724
- industry_suitability == o.industry_suitability &&
1725
- industry_suitability_affinity == o.industry_suitability_affinity &&
1726
- created_by_version == o.created_by_version &&
1727
- tags == o.tags &&
1728
- genres == o.genres &&
1729
- parties == o.parties &&
1730
- iswc == o.iswc &&
1731
- proprietary_id_gema == o.proprietary_id_gema &&
1732
- title == o.title &&
1733
- version_title == o.version_title &&
1734
- context_kind == o.context_kind &&
1735
- context_value == o.context_value
1736
- end
1737
-
1738
- # @see the `==` method
1739
- # @param [Object] Object to be compared
1740
- def eql?(o)
1741
- self == o
1742
- end
1743
-
1744
- # Calculates hash code according to all attributes.
1745
- # @return [Integer] Hash code
1746
- def hash
1747
- [isrc, name, folder, primary_mood_cluster_affinity, primary_mood_cluster, secondary_mood_cluster_affinity, secondary_mood_cluster, tertiary_mood_cluster_affinity, tertiary_mood_cluster, valence_affinity, arousal_affinity, pleasantness_affinity, engagement_affinity, valence, arousal, pleasantness, engagement, vocals, vocals_affinity, dominant_instrument, dominant_instrument_affinity, secondary_instrument_affinity, secondary_instrument, tertiary_instrument_affinity, tertiary_instrument, energy, energy_affinity, sound_generation, sound_generation_affinity, tempo, tempo_affinity, scale, scale_affinity, rhythm, rhythm_affinity, primary_sound_character, primary_sound_character_affinity, timbre_affinity, roughness_affinity, tonality_affinity, harmony_affinity, texture_affinity, groovyness_affinity, space_affinity, timbre, roughness, tonality, harmony, texture, groovyness, space, bpm, key, key_affinity, production_rating, production_rating_affinity, performance_rating, performance_rating_affinity, song_rating, song_rating_affinity, audience_gender, audience_gender_affinity, audience_region, audience_region_affinity, secondary_audience_region_affinity, secondary_audience_region, tertiary_audience_region_affinity, tertiary_audience_region, audience_age, audience_age_affinity, secondary_audience_age, secondary_audience_age_affinity, tertiary_audience_age, tertiary_audience_age_affinity, origin_decade, origin_decade_affinity, language_of_performance, language_of_performance_affinity, origin_region, origin_region_affinity, taggrams, embeddings, level1_genre, level1_genre_affinity, secondary_level1_genre, secondary_level1_genre_affinity, tertiary_level1_genre, tertiary_level1_genre_affinity, level2_genre, level2_genre_affinity, secondary_level2_genre, secondary_level2_genre_affinity, tertiary_level2_genre, tertiary_level2_genre_affinity, curateability, curateability_affinity, use_case, use_case_affinity, social_media, social_media_affinity, industry_suitability, industry_suitability_affinity, created_by_version, tags, genres, parties, iswc, proprietary_id_gema, title, version_title, context_kind, context_value].hash
1748
- end
1749
-
1750
- # Builds the object from hash
1751
- # @param [Hash] attributes Model attributes in the form of hash
1752
- # @return [Object] Returns the model itself
1753
- def self.build_from_hash(attributes)
1754
- return nil unless attributes.is_a?(Hash)
1755
- attributes = attributes.transform_keys(&:to_sym)
1756
- transformed_hash = {}
1757
- openapi_types.each_pair do |key, type|
1758
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
1759
- transformed_hash["#{key}"] = nil
1760
- elsif type =~ /\AArray<(.*)>/i
1761
- # check to ensure the input is an array given that the attribute
1762
- # is documented as an array but the input is not
1763
- if attributes[attribute_map[key]].is_a?(Array)
1764
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
1765
- end
1766
- elsif !attributes[attribute_map[key]].nil?
1767
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
1768
- end
1769
- end
1770
- new(transformed_hash)
1771
- end
1772
-
1773
- # Deserializes the data based on type
1774
- # @param string type Data type
1775
- # @param string value Value to be deserialized
1776
- # @return [Object] Deserialized data
1777
- def self._deserialize(type, value)
1778
- case type.to_sym
1779
- when :Time
1780
- Time.parse(value)
1781
- when :Date
1782
- Date.parse(value)
1783
- when :String
1784
- value.to_s
1785
- when :Integer
1786
- value.to_i
1787
- when :Float
1788
- value.to_f
1789
- when :Boolean
1790
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1791
- true
1792
- else
1793
- false
1794
- end
1795
- when :Object
1796
- # generic object (usually a Hash), return directly
1797
- value
1798
- when /\AArray<(?<inner_type>.+)>\z/
1799
- inner_type = Regexp.last_match[:inner_type]
1800
- value.map { |v| _deserialize(inner_type, v) }
1801
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
1802
- k_type = Regexp.last_match[:k_type]
1803
- v_type = Regexp.last_match[:v_type]
1804
- {}.tap do |hash|
1805
- value.each do |k, v|
1806
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1807
- end
1808
- end
1809
- else # model
1810
- # models (e.g. Pet) or oneOf
1811
- klass = SongtradrApiClientRuby.const_get(type)
1812
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
1813
- end
1814
- end
1815
-
1816
- # Returns the string representation of the object
1817
- # @return [String] String presentation of the object
1818
- def to_s
1819
- to_hash.to_s
1820
- end
1821
-
1822
- # to_body is an alias to to_hash (backward compatibility)
1823
- # @return [Hash] Returns the object in the form of hash
1824
- def to_body
1825
- to_hash
1826
- end
1827
-
1828
- # Returns the object in the form of hash
1829
- # @return [Hash] Returns the object in the form of hash
1830
- def to_hash
1831
- hash = {}
1832
- self.class.attribute_map.each_pair do |attr, param|
1833
- value = self.send(attr)
1834
- if value.nil?
1835
- is_nullable = self.class.openapi_nullable.include?(attr)
1836
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1837
- end
1838
-
1839
- hash[param] = _to_hash(value)
1840
- end
1841
- hash
1842
- end
1843
-
1844
- # Outputs non-array value in the form of hash
1845
- # For object, use to_hash. Otherwise, just return the value
1846
- # @param [Object] value Any valid value
1847
- # @return [Hash] Returns the value in the form of hash
1848
- def _to_hash(value)
1849
- if value.is_a?(Array)
1850
- value.compact.map { |v| _to_hash(v) }
1851
- elsif value.is_a?(Hash)
1852
- {}.tap do |hash|
1853
- value.each { |k, v| hash[k] = _to_hash(v) }
1854
- end
1855
- elsif value.respond_to? :to_hash
1856
- value.to_hash
1857
- else
1858
- value
1859
- end
1860
- end
1861
-
1862
- end
1863
-
1864
- end