songtradr_api_client_ruby 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -5
  3. data/README.md +5 -5
  4. data/docs/FileSmallDTO.md +7 -7
  5. data/docs/MusicalFeaturesDTO.md +23 -23
  6. data/docs/RecordingApi.md +2 -0
  7. data/docs/RecordingGenrePredictionDTO.md +3 -3
  8. data/docs/RecordingPartyDTO.md +3 -3
  9. data/docs/UserApi.md +8 -0
  10. data/lib/songtradr_api_client_ruby/api/allowed_values_api.rb +2 -2
  11. data/lib/songtradr_api_client_ruby/api/playlist_api.rb +2 -2
  12. data/lib/songtradr_api_client_ruby/api/recording_api.rb +6 -3
  13. data/lib/songtradr_api_client_ruby/api/user_api.rb +29 -5
  14. data/lib/songtradr_api_client_ruby/api_client.rb +2 -2
  15. data/lib/songtradr_api_client_ruby/api_error.rb +2 -2
  16. data/lib/songtradr_api_client_ruby/configuration.rb +2 -2
  17. data/lib/songtradr_api_client_ruby/models/age_range.rb +2 -2
  18. data/lib/songtradr_api_client_ruby/models/beard.rb +2 -2
  19. data/lib/songtradr_api_client_ruby/models/bounding_box.rb +2 -2
  20. data/lib/songtradr_api_client_ruby/models/category_medium_dto.rb +2 -2
  21. data/lib/songtradr_api_client_ruby/models/category_minimal_dto.rb +2 -2
  22. data/lib/songtradr_api_client_ruby/models/config_access_dto.rb +2 -2
  23. data/lib/songtradr_api_client_ruby/models/config_identifier_dto.rb +2 -2
  24. data/lib/songtradr_api_client_ruby/models/contributor_type_dto.rb +2 -2
  25. data/lib/songtradr_api_client_ruby/models/curate_playlist_dto.rb +2 -2
  26. data/lib/songtradr_api_client_ruby/models/curate_playlist_response_dto.rb +2 -2
  27. data/lib/songtradr_api_client_ruby/models/dominant_color.rb +2 -2
  28. data/lib/songtradr_api_client_ruby/models/emotion.rb +2 -2
  29. data/lib/songtradr_api_client_ruby/models/error_response.rb +2 -2
  30. data/lib/songtradr_api_client_ruby/models/eye_direction.rb +2 -2
  31. data/lib/songtradr_api_client_ruby/models/eye_open.rb +2 -2
  32. data/lib/songtradr_api_client_ruby/models/eyeglasses.rb +2 -2
  33. data/lib/songtradr_api_client_ruby/models/face_detail.rb +2 -2
  34. data/lib/songtradr_api_client_ruby/models/face_detection.rb +2 -2
  35. data/lib/songtradr_api_client_ruby/models/face_occluded.rb +2 -2
  36. data/lib/songtradr_api_client_ruby/models/field_summary_dto.rb +2 -2
  37. data/lib/songtradr_api_client_ruby/models/file_dto.rb +2 -2
  38. data/lib/songtradr_api_client_ruby/models/file_list_dto.rb +2 -2
  39. data/lib/songtradr_api_client_ruby/models/file_small_dto.rb +36 -36
  40. data/lib/songtradr_api_client_ruby/models/file_upload_dto.rb +2 -2
  41. data/lib/songtradr_api_client_ruby/models/file_w_ith_url_dto.rb +2 -2
  42. data/lib/songtradr_api_client_ruby/models/files_summary_dto.rb +2 -2
  43. data/lib/songtradr_api_client_ruby/models/forgot_password_dto.rb +2 -2
  44. data/lib/songtradr_api_client_ruby/models/gender.rb +2 -2
  45. data/lib/songtradr_api_client_ruby/models/genre_dto.rb +2 -2
  46. data/lib/songtradr_api_client_ruby/models/genre_minimal_dto.rb +2 -2
  47. data/lib/songtradr_api_client_ruby/models/genres_summary_dto.rb +2 -2
  48. data/lib/songtradr_api_client_ruby/models/image_quality.rb +2 -2
  49. data/lib/songtradr_api_client_ruby/models/image_recognition_response.rb +2 -2
  50. data/lib/songtradr_api_client_ruby/models/init_put_recording_audio_dto.rb +2 -2
  51. data/lib/songtradr_api_client_ruby/models/instance.rb +2 -2
  52. data/lib/songtradr_api_client_ruby/models/jwt_token_dto.rb +2 -2
  53. data/lib/songtradr_api_client_ruby/models/label.rb +2 -2
  54. data/lib/songtradr_api_client_ruby/models/label_alias.rb +2 -2
  55. data/lib/songtradr_api_client_ruby/models/label_category.rb +2 -2
  56. data/lib/songtradr_api_client_ruby/models/label_detection.rb +2 -2
  57. data/lib/songtradr_api_client_ruby/models/landmark.rb +2 -2
  58. data/lib/songtradr_api_client_ruby/models/login_dto.rb +2 -2
  59. data/lib/songtradr_api_client_ruby/models/mouth_open.rb +2 -2
  60. data/lib/songtradr_api_client_ruby/models/musical_features_dto.rb +248 -248
  61. data/lib/songtradr_api_client_ruby/models/mustache.rb +2 -2
  62. data/lib/songtradr_api_client_ruby/models/parent.rb +2 -2
  63. data/lib/songtradr_api_client_ruby/models/party_small_dto.rb +2 -2
  64. data/lib/songtradr_api_client_ruby/models/pose.rb +2 -2
  65. data/lib/songtradr_api_client_ruby/models/recording_for_similarity_search_dto.rb +2 -2
  66. data/lib/songtradr_api_client_ruby/models/recording_genre_prediction_dto.rb +22 -22
  67. data/lib/songtradr_api_client_ruby/models/recording_list_dto.rb +2 -2
  68. data/lib/songtradr_api_client_ruby/models/recording_medium_dto.rb +2 -2
  69. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_musical_features_dto.rb +2 -2
  70. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_taggrams_dto.rb +2 -2
  71. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_tagstrengths_dto.rb +2 -2
  72. data/lib/songtradr_api_client_ruby/models/recording_party_dto.rb +17 -17
  73. data/lib/songtradr_api_client_ruby/models/recording_small_dto.rb +2 -2
  74. data/lib/songtradr_api_client_ruby/models/recording_tag_small_dto.rb +2 -2
  75. data/lib/songtradr_api_client_ruby/models/save_user_dto.rb +2 -2
  76. data/lib/songtradr_api_client_ruby/models/search_filter_values_dto.rb +2 -2
  77. data/lib/songtradr_api_client_ruby/models/search_recording_granular_dto.rb +2 -2
  78. data/lib/songtradr_api_client_ruby/models/sign_up_dto.rb +2 -2
  79. data/lib/songtradr_api_client_ruby/models/smile.rb +2 -2
  80. data/lib/songtradr_api_client_ruby/models/sunglasses.rb +2 -2
  81. data/lib/songtradr_api_client_ruby/models/tag_dto.rb +2 -2
  82. data/lib/songtradr_api_client_ruby/models/tag_small_dto.rb +2 -2
  83. data/lib/songtradr_api_client_ruby/models/taggram_dto.rb +2 -2
  84. data/lib/songtradr_api_client_ruby/models/tags_summary_dto.rb +2 -2
  85. data/lib/songtradr_api_client_ruby/models/tagstrength_dto.rb +2 -2
  86. data/lib/songtradr_api_client_ruby/models/title_dto.rb +2 -2
  87. data/lib/songtradr_api_client_ruby/models/token_request.rb +2 -2
  88. data/lib/songtradr_api_client_ruby/models/track_dto.rb +2 -2
  89. data/lib/songtradr_api_client_ruby/models/update_password_dto.rb +2 -2
  90. data/lib/songtradr_api_client_ruby/models/user_dto.rb +2 -2
  91. data/lib/songtradr_api_client_ruby/models/video_recognition_response.rb +2 -2
  92. data/lib/songtradr_api_client_ruby/version.rb +3 -3
  93. data/lib/songtradr_api_client_ruby.rb +2 -2
  94. data/openapi-generator-config.yaml +1 -1
  95. data/songtradr_api_client_ruby.gemspec +2 -2
  96. data/spec/api/allowed_values_api_spec.rb +2 -2
  97. data/spec/api/playlist_api_spec.rb +2 -2
  98. data/spec/api/recording_api_spec.rb +3 -2
  99. data/spec/api/user_api_spec.rb +6 -2
  100. data/spec/api_client_spec.rb +2 -2
  101. data/spec/configuration_spec.rb +2 -2
  102. data/spec/models/age_range_spec.rb +2 -2
  103. data/spec/models/beard_spec.rb +2 -2
  104. data/spec/models/bounding_box_spec.rb +2 -2
  105. data/spec/models/category_medium_dto_spec.rb +2 -2
  106. data/spec/models/category_minimal_dto_spec.rb +2 -2
  107. data/spec/models/config_access_dto_spec.rb +2 -2
  108. data/spec/models/config_identifier_dto_spec.rb +2 -2
  109. data/spec/models/contributor_type_dto_spec.rb +2 -2
  110. data/spec/models/curate_playlist_dto_spec.rb +2 -2
  111. data/spec/models/curate_playlist_response_dto_spec.rb +2 -2
  112. data/spec/models/dominant_color_spec.rb +2 -2
  113. data/spec/models/emotion_spec.rb +2 -2
  114. data/spec/models/error_response_spec.rb +2 -2
  115. data/spec/models/eye_direction_spec.rb +2 -2
  116. data/spec/models/eye_open_spec.rb +2 -2
  117. data/spec/models/eyeglasses_spec.rb +2 -2
  118. data/spec/models/face_detail_spec.rb +2 -2
  119. data/spec/models/face_detection_spec.rb +2 -2
  120. data/spec/models/face_occluded_spec.rb +2 -2
  121. data/spec/models/field_summary_dto_spec.rb +2 -2
  122. data/spec/models/file_dto_spec.rb +2 -2
  123. data/spec/models/file_list_dto_spec.rb +2 -2
  124. data/spec/models/file_small_dto_spec.rb +18 -18
  125. data/spec/models/file_upload_dto_spec.rb +2 -2
  126. data/spec/models/file_w_ith_url_dto_spec.rb +2 -2
  127. data/spec/models/files_summary_dto_spec.rb +2 -2
  128. data/spec/models/forgot_password_dto_spec.rb +2 -2
  129. data/spec/models/gender_spec.rb +2 -2
  130. data/spec/models/genre_dto_spec.rb +2 -2
  131. data/spec/models/genre_minimal_dto_spec.rb +2 -2
  132. data/spec/models/genres_summary_dto_spec.rb +2 -2
  133. data/spec/models/image_quality_spec.rb +2 -2
  134. data/spec/models/image_recognition_response_spec.rb +2 -2
  135. data/spec/models/init_put_recording_audio_dto_spec.rb +2 -2
  136. data/spec/models/instance_spec.rb +2 -2
  137. data/spec/models/jwt_token_dto_spec.rb +2 -2
  138. data/spec/models/label_alias_spec.rb +2 -2
  139. data/spec/models/label_category_spec.rb +2 -2
  140. data/spec/models/label_detection_spec.rb +2 -2
  141. data/spec/models/label_spec.rb +2 -2
  142. data/spec/models/landmark_spec.rb +2 -2
  143. data/spec/models/login_dto_spec.rb +2 -2
  144. data/spec/models/mouth_open_spec.rb +2 -2
  145. data/spec/models/musical_features_dto_spec.rb +81 -81
  146. data/spec/models/mustache_spec.rb +2 -2
  147. data/spec/models/parent_spec.rb +2 -2
  148. data/spec/models/party_small_dto_spec.rb +2 -2
  149. data/spec/models/pose_spec.rb +2 -2
  150. data/spec/models/recording_for_similarity_search_dto_spec.rb +2 -2
  151. data/spec/models/recording_genre_prediction_dto_spec.rb +5 -5
  152. data/spec/models/recording_list_dto_spec.rb +2 -2
  153. data/spec/models/recording_medium_dto_spec.rb +2 -2
  154. data/spec/models/recording_minimal_with_musical_features_dto_spec.rb +2 -2
  155. data/spec/models/recording_minimal_with_taggrams_dto_spec.rb +2 -2
  156. data/spec/models/recording_minimal_with_tagstrengths_dto_spec.rb +2 -2
  157. data/spec/models/recording_party_dto_spec.rb +4 -4
  158. data/spec/models/recording_small_dto_spec.rb +2 -2
  159. data/spec/models/recording_tag_small_dto_spec.rb +2 -2
  160. data/spec/models/save_user_dto_spec.rb +2 -2
  161. data/spec/models/search_filter_values_dto_spec.rb +2 -2
  162. data/spec/models/search_recording_granular_dto_spec.rb +2 -2
  163. data/spec/models/sign_up_dto_spec.rb +2 -2
  164. data/spec/models/smile_spec.rb +2 -2
  165. data/spec/models/sunglasses_spec.rb +2 -2
  166. data/spec/models/tag_dto_spec.rb +2 -2
  167. data/spec/models/tag_small_dto_spec.rb +2 -2
  168. data/spec/models/taggram_dto_spec.rb +2 -2
  169. data/spec/models/tags_summary_dto_spec.rb +2 -2
  170. data/spec/models/tagstrength_dto_spec.rb +2 -2
  171. data/spec/models/title_dto_spec.rb +2 -2
  172. data/spec/models/token_request_spec.rb +2 -2
  173. data/spec/models/track_dto_spec.rb +2 -2
  174. data/spec/models/update_password_dto_spec.rb +2 -2
  175. data/spec/models/user_dto_spec.rb +2 -2
  176. data/spec/models/video_recognition_response_spec.rb +2 -2
  177. data/spec/spec_helper.rb +2 -2
  178. metadata +67 -67
@@ -3,10 +3,10 @@
3
3
 
4
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
5
 
6
- The version of the OpenAPI document: 1.15.0
6
+ The version of the OpenAPI document: 1.16.0
7
7
  Contact: info@songtradr.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 7.1.0-SNAPSHOT
9
+ OpenAPI Generator version: 7.2.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -22,6 +22,36 @@ module SongtradrApiClientRuby
22
22
  # Search for an arousal
23
23
  attr_accessor :arousal
24
24
 
25
+ # Search for tempo
26
+ attr_accessor :tempo
27
+
28
+ # Search for texture
29
+ attr_accessor :texture
30
+
31
+ # Search for timbre
32
+ attr_accessor :timbre
33
+
34
+ # Search for tonality
35
+ attr_accessor :tonality
36
+
37
+ # Search for a valence
38
+ attr_accessor :valence
39
+
40
+ # Search for a vocal gender or instrumental songs
41
+ attr_accessor :vocals
42
+
43
+ # Search for origin decade
44
+ attr_accessor :origin_decade
45
+
46
+ # Search for curatebility
47
+ attr_accessor :curateability
48
+
49
+ # Search for use case
50
+ attr_accessor :use_case
51
+
52
+ # Search for social media suitability
53
+ attr_accessor :channel_suitability
54
+
25
55
  attr_accessor :language_of_performance
26
56
 
27
57
  # Search for a dominant instrument
@@ -57,39 +87,12 @@ module SongtradrApiClientRuby
57
87
  # Search for a tonal scale
58
88
  attr_accessor :scale
59
89
 
90
+ # Search for a harmonic key
91
+ attr_accessor :key
92
+
60
93
  # Search for type of sound generation
61
94
  attr_accessor :sound_generation
62
95
 
63
- # Search for tempo
64
- attr_accessor :tempo
65
-
66
- # Search for texture
67
- attr_accessor :texture
68
-
69
- # Search for timbre
70
- attr_accessor :timbre
71
-
72
- # Search for tonality
73
- attr_accessor :tonality
74
-
75
- # Search for a valence
76
- attr_accessor :valence
77
-
78
- # Search for a vocal gender or instrumental songs
79
- attr_accessor :vocals
80
-
81
- # Search for origin decade
82
- attr_accessor :origin_decade
83
-
84
- # Search for curatebility
85
- attr_accessor :curateability
86
-
87
- # Search for use case
88
- attr_accessor :use_case
89
-
90
- # Search for social media suitability
91
- attr_accessor :channel_suitability
92
-
93
96
  attr_accessor :primary_mood_cluster_affinity
94
97
 
95
98
  # Search for a language of the lyrics
@@ -213,9 +216,6 @@ module SongtradrApiClientRuby
213
216
 
214
217
  attr_accessor :channel_suitability_affinity
215
218
 
216
- # Search for a harmonic key
217
- attr_accessor :key
218
-
219
219
  class EnumAttributeValidator
220
220
  attr_reader :datatype
221
221
  attr_reader :allowable_values
@@ -243,6 +243,16 @@ module SongtradrApiClientRuby
243
243
  {
244
244
  :'space' => :'space',
245
245
  :'arousal' => :'arousal',
246
+ :'tempo' => :'tempo',
247
+ :'texture' => :'texture',
248
+ :'timbre' => :'timbre',
249
+ :'tonality' => :'tonality',
250
+ :'valence' => :'valence',
251
+ :'vocals' => :'vocals',
252
+ :'origin_decade' => :'originDecade',
253
+ :'curateability' => :'curateability',
254
+ :'use_case' => :'useCase',
255
+ :'channel_suitability' => :'channelSuitability',
246
256
  :'language_of_performance' => :'languageOfPerformance',
247
257
  :'dominant_instrument' => :'dominantInstrument',
248
258
  :'energy' => :'energy',
@@ -255,17 +265,8 @@ module SongtradrApiClientRuby
255
265
  :'rhythm' => :'rhythm',
256
266
  :'roughness' => :'roughness',
257
267
  :'scale' => :'scale',
268
+ :'key' => :'key',
258
269
  :'sound_generation' => :'soundGeneration',
259
- :'tempo' => :'tempo',
260
- :'texture' => :'texture',
261
- :'timbre' => :'timbre',
262
- :'tonality' => :'tonality',
263
- :'valence' => :'valence',
264
- :'vocals' => :'vocals',
265
- :'origin_decade' => :'originDecade',
266
- :'curateability' => :'curateability',
267
- :'use_case' => :'useCase',
268
- :'channel_suitability' => :'channelSuitability',
269
270
  :'primary_mood_cluster_affinity' => :'primaryMoodClusterAffinity',
270
271
  :'secondary_mood_cluster' => :'secondaryMoodCluster',
271
272
  :'secondary_mood_cluster_affinity' => :'secondaryMoodClusterAffinity',
@@ -324,8 +325,7 @@ module SongtradrApiClientRuby
324
325
  :'groovyness_affinity' => :'groovynessAffinity',
325
326
  :'space_affinity' => :'spaceAffinity',
326
327
  :'key_affinity' => :'keyAffinity',
327
- :'channel_suitability_affinity' => :'channelSuitabilityAffinity',
328
- :'key' => :'key'
328
+ :'channel_suitability_affinity' => :'channelSuitabilityAffinity'
329
329
  }
330
330
  end
331
331
 
@@ -339,6 +339,16 @@ module SongtradrApiClientRuby
339
339
  {
340
340
  :'space' => :'String',
341
341
  :'arousal' => :'String',
342
+ :'tempo' => :'String',
343
+ :'texture' => :'String',
344
+ :'timbre' => :'String',
345
+ :'tonality' => :'String',
346
+ :'valence' => :'String',
347
+ :'vocals' => :'String',
348
+ :'origin_decade' => :'String',
349
+ :'curateability' => :'String',
350
+ :'use_case' => :'String',
351
+ :'channel_suitability' => :'String',
342
352
  :'language_of_performance' => :'String',
343
353
  :'dominant_instrument' => :'String',
344
354
  :'energy' => :'String',
@@ -351,17 +361,8 @@ module SongtradrApiClientRuby
351
361
  :'rhythm' => :'String',
352
362
  :'roughness' => :'String',
353
363
  :'scale' => :'String',
364
+ :'key' => :'String',
354
365
  :'sound_generation' => :'String',
355
- :'tempo' => :'String',
356
- :'texture' => :'String',
357
- :'timbre' => :'String',
358
- :'tonality' => :'String',
359
- :'valence' => :'String',
360
- :'vocals' => :'String',
361
- :'origin_decade' => :'String',
362
- :'curateability' => :'String',
363
- :'use_case' => :'String',
364
- :'channel_suitability' => :'String',
365
366
  :'primary_mood_cluster_affinity' => :'Float',
366
367
  :'secondary_mood_cluster' => :'String',
367
368
  :'secondary_mood_cluster_affinity' => :'Float',
@@ -420,8 +421,7 @@ module SongtradrApiClientRuby
420
421
  :'groovyness_affinity' => :'Float',
421
422
  :'space_affinity' => :'Float',
422
423
  :'key_affinity' => :'Float',
423
- :'channel_suitability_affinity' => :'Float',
424
- :'key' => :'String'
424
+ :'channel_suitability_affinity' => :'Float'
425
425
  }
426
426
  end
427
427
 
@@ -454,6 +454,46 @@ module SongtradrApiClientRuby
454
454
  self.arousal = attributes[:'arousal']
455
455
  end
456
456
 
457
+ if attributes.key?(:'tempo')
458
+ self.tempo = attributes[:'tempo']
459
+ end
460
+
461
+ if attributes.key?(:'texture')
462
+ self.texture = attributes[:'texture']
463
+ end
464
+
465
+ if attributes.key?(:'timbre')
466
+ self.timbre = attributes[:'timbre']
467
+ end
468
+
469
+ if attributes.key?(:'tonality')
470
+ self.tonality = attributes[:'tonality']
471
+ end
472
+
473
+ if attributes.key?(:'valence')
474
+ self.valence = attributes[:'valence']
475
+ end
476
+
477
+ if attributes.key?(:'vocals')
478
+ self.vocals = attributes[:'vocals']
479
+ end
480
+
481
+ if attributes.key?(:'origin_decade')
482
+ self.origin_decade = attributes[:'origin_decade']
483
+ end
484
+
485
+ if attributes.key?(:'curateability')
486
+ self.curateability = attributes[:'curateability']
487
+ end
488
+
489
+ if attributes.key?(:'use_case')
490
+ self.use_case = attributes[:'use_case']
491
+ end
492
+
493
+ if attributes.key?(:'channel_suitability')
494
+ self.channel_suitability = attributes[:'channel_suitability']
495
+ end
496
+
457
497
  if attributes.key?(:'language_of_performance')
458
498
  self.language_of_performance = attributes[:'language_of_performance']
459
499
  end
@@ -502,48 +542,12 @@ module SongtradrApiClientRuby
502
542
  self.scale = attributes[:'scale']
503
543
  end
504
544
 
505
- if attributes.key?(:'sound_generation')
506
- self.sound_generation = attributes[:'sound_generation']
507
- end
508
-
509
- if attributes.key?(:'tempo')
510
- self.tempo = attributes[:'tempo']
511
- end
512
-
513
- if attributes.key?(:'texture')
514
- self.texture = attributes[:'texture']
515
- end
516
-
517
- if attributes.key?(:'timbre')
518
- self.timbre = attributes[:'timbre']
519
- end
520
-
521
- if attributes.key?(:'tonality')
522
- self.tonality = attributes[:'tonality']
523
- end
524
-
525
- if attributes.key?(:'valence')
526
- self.valence = attributes[:'valence']
527
- end
528
-
529
- if attributes.key?(:'vocals')
530
- self.vocals = attributes[:'vocals']
531
- end
532
-
533
- if attributes.key?(:'origin_decade')
534
- self.origin_decade = attributes[:'origin_decade']
535
- end
536
-
537
- if attributes.key?(:'curateability')
538
- self.curateability = attributes[:'curateability']
539
- end
540
-
541
- if attributes.key?(:'use_case')
542
- self.use_case = attributes[:'use_case']
545
+ if attributes.key?(:'key')
546
+ self.key = attributes[:'key']
543
547
  end
544
548
 
545
- if attributes.key?(:'channel_suitability')
546
- self.channel_suitability = attributes[:'channel_suitability']
549
+ if attributes.key?(:'sound_generation')
550
+ self.sound_generation = attributes[:'sound_generation']
547
551
  end
548
552
 
549
553
  if attributes.key?(:'primary_mood_cluster_affinity')
@@ -781,10 +785,6 @@ module SongtradrApiClientRuby
781
785
  if attributes.key?(:'channel_suitability_affinity')
782
786
  self.channel_suitability_affinity = attributes[:'channel_suitability_affinity']
783
787
  end
784
-
785
- if attributes.key?(:'key')
786
- self.key = attributes[:'key']
787
- end
788
788
  end
789
789
 
790
790
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -803,6 +803,26 @@ module SongtradrApiClientRuby
803
803
  return false unless space_validator.valid?(@space)
804
804
  arousal_validator = EnumAttributeValidator.new('String', ["very calm", "calm", "moderate arousal", "energetic", "very energetic", "varying arousal"])
805
805
  return false unless arousal_validator.valid?(@arousal)
806
+ tempo_validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
807
+ return false unless tempo_validator.valid?(@tempo)
808
+ texture_validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
809
+ return false unless texture_validator.valid?(@texture)
810
+ timbre_validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
811
+ return false unless timbre_validator.valid?(@timbre)
812
+ tonality_validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
813
+ return false unless tonality_validator.valid?(@tonality)
814
+ valence_validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
815
+ return false unless valence_validator.valid?(@valence)
816
+ vocals_validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
817
+ return false unless vocals_validator.valid?(@vocals)
818
+ origin_decade_validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
819
+ return false unless origin_decade_validator.valid?(@origin_decade)
820
+ curateability_validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
821
+ return false unless curateability_validator.valid?(@curateability)
822
+ use_case_validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax", "karaoke"])
823
+ return false unless use_case_validator.valid?(@use_case)
824
+ channel_suitability_validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
825
+ return false unless channel_suitability_validator.valid?(@channel_suitability)
806
826
  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"])
807
827
  return false unless language_of_performance_validator.valid?(@language_of_performance)
808
828
  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"])
@@ -827,28 +847,10 @@ module SongtradrApiClientRuby
827
847
  return false unless roughness_validator.valid?(@roughness)
828
848
  scale_validator = EnumAttributeValidator.new('String', ["major key", "minor key", "neutral key"])
829
849
  return false unless scale_validator.valid?(@scale)
850
+ key_validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
851
+ return false unless key_validator.valid?(@key)
830
852
  sound_generation_validator = EnumAttributeValidator.new('String', ["acoustic", "electric", "electronic", "mixed sound generation"])
831
853
  return false unless sound_generation_validator.valid?(@sound_generation)
832
- tempo_validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
833
- return false unless tempo_validator.valid?(@tempo)
834
- texture_validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
835
- return false unless texture_validator.valid?(@texture)
836
- timbre_validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
837
- return false unless timbre_validator.valid?(@timbre)
838
- tonality_validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
839
- return false unless tonality_validator.valid?(@tonality)
840
- valence_validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
841
- return false unless valence_validator.valid?(@valence)
842
- vocals_validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
843
- return false unless vocals_validator.valid?(@vocals)
844
- origin_decade_validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
845
- return false unless origin_decade_validator.valid?(@origin_decade)
846
- curateability_validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
847
- return false unless curateability_validator.valid?(@curateability)
848
- use_case_validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax"])
849
- return false unless use_case_validator.valid?(@use_case)
850
- channel_suitability_validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
851
- return false unless channel_suitability_validator.valid?(@channel_suitability)
852
854
  secondary_mood_cluster_validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
853
855
  return false unless secondary_mood_cluster_validator.valid?(@secondary_mood_cluster)
854
856
  tertiary_mood_cluster_validator = EnumAttributeValidator.new('String', ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"])
@@ -881,8 +883,6 @@ module SongtradrApiClientRuby
881
883
  return false unless industry_suitability_validator.valid?(@industry_suitability)
882
884
  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"])
883
885
  return false unless audience_region_validator.valid?(@audience_region)
884
- key_validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
885
- return false unless key_validator.valid?(@key)
886
886
  true
887
887
  end
888
888
 
@@ -906,6 +906,106 @@ module SongtradrApiClientRuby
906
906
  @arousal = arousal
907
907
  end
908
908
 
909
+ # Custom attribute writer method checking allowed values (enum).
910
+ # @param [Object] tempo Object to be assigned
911
+ def tempo=(tempo)
912
+ validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
913
+ unless validator.valid?(tempo)
914
+ fail ArgumentError, "invalid value for \"tempo\", must be one of #{validator.allowable_values}."
915
+ end
916
+ @tempo = tempo
917
+ end
918
+
919
+ # Custom attribute writer method checking allowed values (enum).
920
+ # @param [Object] texture Object to be assigned
921
+ def texture=(texture)
922
+ validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
923
+ unless validator.valid?(texture)
924
+ fail ArgumentError, "invalid value for \"texture\", must be one of #{validator.allowable_values}."
925
+ end
926
+ @texture = texture
927
+ end
928
+
929
+ # Custom attribute writer method checking allowed values (enum).
930
+ # @param [Object] timbre Object to be assigned
931
+ def timbre=(timbre)
932
+ validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
933
+ unless validator.valid?(timbre)
934
+ fail ArgumentError, "invalid value for \"timbre\", must be one of #{validator.allowable_values}."
935
+ end
936
+ @timbre = timbre
937
+ end
938
+
939
+ # Custom attribute writer method checking allowed values (enum).
940
+ # @param [Object] tonality Object to be assigned
941
+ def tonality=(tonality)
942
+ validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
943
+ unless validator.valid?(tonality)
944
+ fail ArgumentError, "invalid value for \"tonality\", must be one of #{validator.allowable_values}."
945
+ end
946
+ @tonality = tonality
947
+ end
948
+
949
+ # Custom attribute writer method checking allowed values (enum).
950
+ # @param [Object] valence Object to be assigned
951
+ def valence=(valence)
952
+ validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
953
+ unless validator.valid?(valence)
954
+ fail ArgumentError, "invalid value for \"valence\", must be one of #{validator.allowable_values}."
955
+ end
956
+ @valence = valence
957
+ end
958
+
959
+ # Custom attribute writer method checking allowed values (enum).
960
+ # @param [Object] vocals Object to be assigned
961
+ def vocals=(vocals)
962
+ validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
963
+ unless validator.valid?(vocals)
964
+ fail ArgumentError, "invalid value for \"vocals\", must be one of #{validator.allowable_values}."
965
+ end
966
+ @vocals = vocals
967
+ end
968
+
969
+ # Custom attribute writer method checking allowed values (enum).
970
+ # @param [Object] origin_decade Object to be assigned
971
+ def origin_decade=(origin_decade)
972
+ validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
973
+ unless validator.valid?(origin_decade)
974
+ fail ArgumentError, "invalid value for \"origin_decade\", must be one of #{validator.allowable_values}."
975
+ end
976
+ @origin_decade = origin_decade
977
+ end
978
+
979
+ # Custom attribute writer method checking allowed values (enum).
980
+ # @param [Object] curateability Object to be assigned
981
+ def curateability=(curateability)
982
+ validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
983
+ unless validator.valid?(curateability)
984
+ fail ArgumentError, "invalid value for \"curateability\", must be one of #{validator.allowable_values}."
985
+ end
986
+ @curateability = curateability
987
+ end
988
+
989
+ # Custom attribute writer method checking allowed values (enum).
990
+ # @param [Object] use_case Object to be assigned
991
+ def use_case=(use_case)
992
+ validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax", "karaoke"])
993
+ unless validator.valid?(use_case)
994
+ fail ArgumentError, "invalid value for \"use_case\", must be one of #{validator.allowable_values}."
995
+ end
996
+ @use_case = use_case
997
+ end
998
+
999
+ # Custom attribute writer method checking allowed values (enum).
1000
+ # @param [Object] channel_suitability Object to be assigned
1001
+ def channel_suitability=(channel_suitability)
1002
+ validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
1003
+ unless validator.valid?(channel_suitability)
1004
+ fail ArgumentError, "invalid value for \"channel_suitability\", must be one of #{validator.allowable_values}."
1005
+ end
1006
+ @channel_suitability = channel_suitability
1007
+ end
1008
+
909
1009
  # Custom attribute writer method checking allowed values (enum).
910
1010
  # @param [Object] language_of_performance Object to be assigned
911
1011
  def language_of_performance=(language_of_performance)
@@ -1026,6 +1126,16 @@ module SongtradrApiClientRuby
1026
1126
  @scale = scale
1027
1127
  end
1028
1128
 
1129
+ # Custom attribute writer method checking allowed values (enum).
1130
+ # @param [Object] key Object to be assigned
1131
+ def key=(key)
1132
+ validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
1133
+ unless validator.valid?(key)
1134
+ fail ArgumentError, "invalid value for \"key\", must be one of #{validator.allowable_values}."
1135
+ end
1136
+ @key = key
1137
+ end
1138
+
1029
1139
  # Custom attribute writer method checking allowed values (enum).
1030
1140
  # @param [Object] sound_generation Object to be assigned
1031
1141
  def sound_generation=(sound_generation)
@@ -1036,106 +1146,6 @@ module SongtradrApiClientRuby
1036
1146
  @sound_generation = sound_generation
1037
1147
  end
1038
1148
 
1039
- # Custom attribute writer method checking allowed values (enum).
1040
- # @param [Object] tempo Object to be assigned
1041
- def tempo=(tempo)
1042
- validator = EnumAttributeValidator.new('String', ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"])
1043
- unless validator.valid?(tempo)
1044
- fail ArgumentError, "invalid value for \"tempo\", must be one of #{validator.allowable_values}."
1045
- end
1046
- @tempo = tempo
1047
- end
1048
-
1049
- # Custom attribute writer method checking allowed values (enum).
1050
- # @param [Object] texture Object to be assigned
1051
- def texture=(texture)
1052
- validator = EnumAttributeValidator.new('String', ["very thin", "thin", "moderate texture", "full", "very full"])
1053
- unless validator.valid?(texture)
1054
- fail ArgumentError, "invalid value for \"texture\", must be one of #{validator.allowable_values}."
1055
- end
1056
- @texture = texture
1057
- end
1058
-
1059
- # Custom attribute writer method checking allowed values (enum).
1060
- # @param [Object] timbre Object to be assigned
1061
- def timbre=(timbre)
1062
- validator = EnumAttributeValidator.new('String', ["very warm", "warm", "moderate timbre", "bright", "very bright"])
1063
- unless validator.valid?(timbre)
1064
- fail ArgumentError, "invalid value for \"timbre\", must be one of #{validator.allowable_values}."
1065
- end
1066
- @timbre = timbre
1067
- end
1068
-
1069
- # Custom attribute writer method checking allowed values (enum).
1070
- # @param [Object] tonality Object to be assigned
1071
- def tonality=(tonality)
1072
- validator = EnumAttributeValidator.new('String', ["monotonous", "moderate melodiousness", "melodious", "atonal"])
1073
- unless validator.valid?(tonality)
1074
- fail ArgumentError, "invalid value for \"tonality\", must be one of #{validator.allowable_values}."
1075
- end
1076
- @tonality = tonality
1077
- end
1078
-
1079
- # Custom attribute writer method checking allowed values (enum).
1080
- # @param [Object] valence Object to be assigned
1081
- def valence=(valence)
1082
- validator = EnumAttributeValidator.new('String', ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"])
1083
- unless validator.valid?(valence)
1084
- fail ArgumentError, "invalid value for \"valence\", must be one of #{validator.allowable_values}."
1085
- end
1086
- @valence = valence
1087
- end
1088
-
1089
- # Custom attribute writer method checking allowed values (enum).
1090
- # @param [Object] vocals Object to be assigned
1091
- def vocals=(vocals)
1092
- validator = EnumAttributeValidator.new('String', ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"])
1093
- unless validator.valid?(vocals)
1094
- fail ArgumentError, "invalid value for \"vocals\", must be one of #{validator.allowable_values}."
1095
- end
1096
- @vocals = vocals
1097
- end
1098
-
1099
- # Custom attribute writer method checking allowed values (enum).
1100
- # @param [Object] origin_decade Object to be assigned
1101
- def origin_decade=(origin_decade)
1102
- validator = EnumAttributeValidator.new('String', ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"])
1103
- unless validator.valid?(origin_decade)
1104
- fail ArgumentError, "invalid value for \"origin_decade\", must be one of #{validator.allowable_values}."
1105
- end
1106
- @origin_decade = origin_decade
1107
- end
1108
-
1109
- # Custom attribute writer method checking allowed values (enum).
1110
- # @param [Object] curateability Object to be assigned
1111
- def curateability=(curateability)
1112
- validator = EnumAttributeValidator.new('String', ["curateable", "uncurateable"])
1113
- unless validator.valid?(curateability)
1114
- fail ArgumentError, "invalid value for \"curateability\", must be one of #{validator.allowable_values}."
1115
- end
1116
- @curateability = curateability
1117
- end
1118
-
1119
- # Custom attribute writer method checking allowed values (enum).
1120
- # @param [Object] use_case Object to be assigned
1121
- def use_case=(use_case)
1122
- validator = EnumAttributeValidator.new('String', ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax"])
1123
- unless validator.valid?(use_case)
1124
- fail ArgumentError, "invalid value for \"use_case\", must be one of #{validator.allowable_values}."
1125
- end
1126
- @use_case = use_case
1127
- end
1128
-
1129
- # Custom attribute writer method checking allowed values (enum).
1130
- # @param [Object] channel_suitability Object to be assigned
1131
- def channel_suitability=(channel_suitability)
1132
- validator = EnumAttributeValidator.new('String', ["Spotify", "TikTok", "Unfitting", "YouTube"])
1133
- unless validator.valid?(channel_suitability)
1134
- fail ArgumentError, "invalid value for \"channel_suitability\", must be one of #{validator.allowable_values}."
1135
- end
1136
- @channel_suitability = channel_suitability
1137
- end
1138
-
1139
1149
  # Custom attribute writer method checking allowed values (enum).
1140
1150
  # @param [Object] secondary_mood_cluster Object to be assigned
1141
1151
  def secondary_mood_cluster=(secondary_mood_cluster)
@@ -1296,16 +1306,6 @@ module SongtradrApiClientRuby
1296
1306
  @audience_region = audience_region
1297
1307
  end
1298
1308
 
1299
- # Custom attribute writer method checking allowed values (enum).
1300
- # @param [Object] key Object to be assigned
1301
- def key=(key)
1302
- validator = EnumAttributeValidator.new('String', ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"])
1303
- unless validator.valid?(key)
1304
- fail ArgumentError, "invalid value for \"key\", must be one of #{validator.allowable_values}."
1305
- end
1306
- @key = key
1307
- end
1308
-
1309
1309
  # Checks equality by comparing each attribute.
1310
1310
  # @param [Object] Object to be compared
1311
1311
  def ==(o)
@@ -1313,6 +1313,16 @@ module SongtradrApiClientRuby
1313
1313
  self.class == o.class &&
1314
1314
  space == o.space &&
1315
1315
  arousal == o.arousal &&
1316
+ tempo == o.tempo &&
1317
+ texture == o.texture &&
1318
+ timbre == o.timbre &&
1319
+ tonality == o.tonality &&
1320
+ valence == o.valence &&
1321
+ vocals == o.vocals &&
1322
+ origin_decade == o.origin_decade &&
1323
+ curateability == o.curateability &&
1324
+ use_case == o.use_case &&
1325
+ channel_suitability == o.channel_suitability &&
1316
1326
  language_of_performance == o.language_of_performance &&
1317
1327
  dominant_instrument == o.dominant_instrument &&
1318
1328
  energy == o.energy &&
@@ -1325,17 +1335,8 @@ module SongtradrApiClientRuby
1325
1335
  rhythm == o.rhythm &&
1326
1336
  roughness == o.roughness &&
1327
1337
  scale == o.scale &&
1338
+ key == o.key &&
1328
1339
  sound_generation == o.sound_generation &&
1329
- tempo == o.tempo &&
1330
- texture == o.texture &&
1331
- timbre == o.timbre &&
1332
- tonality == o.tonality &&
1333
- valence == o.valence &&
1334
- vocals == o.vocals &&
1335
- origin_decade == o.origin_decade &&
1336
- curateability == o.curateability &&
1337
- use_case == o.use_case &&
1338
- channel_suitability == o.channel_suitability &&
1339
1340
  primary_mood_cluster_affinity == o.primary_mood_cluster_affinity &&
1340
1341
  secondary_mood_cluster == o.secondary_mood_cluster &&
1341
1342
  secondary_mood_cluster_affinity == o.secondary_mood_cluster_affinity &&
@@ -1394,8 +1395,7 @@ module SongtradrApiClientRuby
1394
1395
  groovyness_affinity == o.groovyness_affinity &&
1395
1396
  space_affinity == o.space_affinity &&
1396
1397
  key_affinity == o.key_affinity &&
1397
- channel_suitability_affinity == o.channel_suitability_affinity &&
1398
- key == o.key
1398
+ channel_suitability_affinity == o.channel_suitability_affinity
1399
1399
  end
1400
1400
 
1401
1401
  # @see the `==` method
@@ -1407,7 +1407,7 @@ module SongtradrApiClientRuby
1407
1407
  # Calculates hash code according to all attributes.
1408
1408
  # @return [Integer] Hash code
1409
1409
  def hash
1410
- [space, arousal, language_of_performance, dominant_instrument, energy, engagement, groovyness, harmony, pleasantness, primary_mood_cluster, primary_sound_character, rhythm, roughness, scale, sound_generation, tempo, texture, timbre, tonality, valence, vocals, origin_decade, curateability, use_case, channel_suitability, primary_mood_cluster_affinity, secondary_mood_cluster, secondary_mood_cluster_affinity, tertiary_mood_cluster, tertiary_mood_cluster_affinity, vocals_affinity, dominant_instrument_affinity, secondary_instrument, secondary_instrument_affinity, tertiary_instrument, tertiary_instrument_affinity, sound_generation_affinity, rhythm_affinity, primary_sound_character_affinity, tonality_affinity, bpm, production_rating, production_rating_affinity, performance_rating, performance_rating_affinity, song_rating, song_rating_affinity, audience_age, audience_age_affinity, secondary_audience_age, secondary_audience_age_affinity, tertiary_audience_age, tertiary_audience_age_affinity, audience_gender, audience_gender_affinity, audience_region_affinity, secondary_audience_region, secondary_audience_region_affinity, tertiary_audience_region, tertiary_audience_region_affinity, origin_region, origin_region_affinity, origin_decade_affinity, language_of_performance_affinity, curateability_affinity, use_case_affinity, industry_suitability, industry_suitability_affinity, audience_region, valence_affinity, arousal_affinity, pleasantness_affinity, engagement_affinity, energy_affinity, tempo_affinity, scale_affinity, timbre_affinity, roughness_affinity, harmony_affinity, texture_affinity, groovyness_affinity, space_affinity, key_affinity, channel_suitability_affinity, key].hash
1410
+ [space, arousal, tempo, texture, timbre, tonality, valence, vocals, origin_decade, curateability, use_case, channel_suitability, language_of_performance, dominant_instrument, energy, engagement, groovyness, harmony, pleasantness, primary_mood_cluster, primary_sound_character, rhythm, roughness, scale, key, sound_generation, primary_mood_cluster_affinity, secondary_mood_cluster, secondary_mood_cluster_affinity, tertiary_mood_cluster, tertiary_mood_cluster_affinity, vocals_affinity, dominant_instrument_affinity, secondary_instrument, secondary_instrument_affinity, tertiary_instrument, tertiary_instrument_affinity, sound_generation_affinity, rhythm_affinity, primary_sound_character_affinity, tonality_affinity, bpm, production_rating, production_rating_affinity, performance_rating, performance_rating_affinity, song_rating, song_rating_affinity, audience_age, audience_age_affinity, secondary_audience_age, secondary_audience_age_affinity, tertiary_audience_age, tertiary_audience_age_affinity, audience_gender, audience_gender_affinity, audience_region_affinity, secondary_audience_region, secondary_audience_region_affinity, tertiary_audience_region, tertiary_audience_region_affinity, origin_region, origin_region_affinity, origin_decade_affinity, language_of_performance_affinity, curateability_affinity, use_case_affinity, industry_suitability, industry_suitability_affinity, audience_region, valence_affinity, arousal_affinity, pleasantness_affinity, engagement_affinity, energy_affinity, tempo_affinity, scale_affinity, timbre_affinity, roughness_affinity, harmony_affinity, texture_affinity, groovyness_affinity, space_affinity, key_affinity, channel_suitability_affinity].hash
1411
1411
  end
1412
1412
 
1413
1413
  # Builds the object from hash