songtradr_api_client_ruby 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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