songtradr_api_client_ruby 1.12.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +76 -0
  4. data/README.md +223 -0
  5. data/Rakefile +10 -0
  6. data/docs/AllowedValuesApi.md +200 -0
  7. data/docs/CategoryMediumDTO.md +22 -0
  8. data/docs/CategoryMinimalDTO.md +18 -0
  9. data/docs/ConfigAccessDTO.md +20 -0
  10. data/docs/ConfigIdentifierDTO.md +20 -0
  11. data/docs/ContributorTypeDTO.md +18 -0
  12. data/docs/ErrorResponse.md +26 -0
  13. data/docs/FieldSummaryDTO.md +22 -0
  14. data/docs/FileDTO.md +50 -0
  15. data/docs/FileListDTO.md +24 -0
  16. data/docs/FileMinimalWithUrlDTO.md +22 -0
  17. data/docs/FileSmallDTO.md +46 -0
  18. data/docs/FileUploadDTO.md +22 -0
  19. data/docs/FileWIthUrlDTO.md +20 -0
  20. data/docs/FilesSummaryDTO.md +30 -0
  21. data/docs/ForgotPasswordDTO.md +20 -0
  22. data/docs/GenreDTO.md +20 -0
  23. data/docs/GenreMinimalDTO.md +18 -0
  24. data/docs/GenresSummaryDTO.md +22 -0
  25. data/docs/InitPutRecordingAudioDTO.md +22 -0
  26. data/docs/JwtTokenDTO.md +22 -0
  27. data/docs/LoginDTO.md +24 -0
  28. data/docs/MusicalFeaturesDTO.md +186 -0
  29. data/docs/PLineDTO.md +20 -0
  30. data/docs/PartyApi.md +75 -0
  31. data/docs/PartyLargeDTO.md +32 -0
  32. data/docs/PartySmallDTO.md +20 -0
  33. data/docs/PlaylistApi.md +221 -0
  34. data/docs/PlaylistLargeDTO.md +38 -0
  35. data/docs/ProductMediumDTO.md +34 -0
  36. data/docs/ProductPartyDTO.md +20 -0
  37. data/docs/RecordingApi.md +789 -0
  38. data/docs/RecordingForSimilaritySearchDTO.md +20 -0
  39. data/docs/RecordingGenrePredictionDTO.md +22 -0
  40. data/docs/RecordingLargeDTO.md +40 -0
  41. data/docs/RecordingListDTO.md +24 -0
  42. data/docs/RecordingMediumDTO.md +36 -0
  43. data/docs/RecordingMinimalWithMusicalFeaturesDTO.md +20 -0
  44. data/docs/RecordingMinimalWithTaggramsDTO.md +22 -0
  45. data/docs/RecordingMinimalWithTagstrengthsDTO.md +20 -0
  46. data/docs/RecordingPartyDTO.md +20 -0
  47. data/docs/RecordingPlaylistDTO.md +24 -0
  48. data/docs/RecordingSmallDTO.md +24 -0
  49. data/docs/RecordingTagSmallDTO.md +18 -0
  50. data/docs/SaveFileRecordingDTO.md +236 -0
  51. data/docs/SavePlaylistDTO.md +34 -0
  52. data/docs/SaveRecordingGenreDTO.md +22 -0
  53. data/docs/SaveRecordingPartyDTO.md +20 -0
  54. data/docs/SaveRecordingPlaylistDTO.md +22 -0
  55. data/docs/SaveRecordingTagDTO.md +20 -0
  56. data/docs/SaveReferrerDTO.md +20 -0
  57. data/docs/SaveTaggramsDTO.md +82 -0
  58. data/docs/SaveUserDTO.md +28 -0
  59. data/docs/SearchFilterValuesDTO.md +98 -0
  60. data/docs/SearchRecordingGranularAbstractionDTO.md +20 -0
  61. data/docs/SearchRecordingGranularDTO.md +20 -0
  62. data/docs/SignUpDTO.md +24 -0
  63. data/docs/TagDTO.md +22 -0
  64. data/docs/TagSmallDTO.md +20 -0
  65. data/docs/TaggramDTO.md +26 -0
  66. data/docs/TagsSummaryDTO.md +22 -0
  67. data/docs/TagstrengthDTO.md +26 -0
  68. data/docs/TitleDTO.md +18 -0
  69. data/docs/TokenRequest.md +18 -0
  70. data/docs/TrackToMediumProductDTO.md +22 -0
  71. data/docs/UpdatePasswordDTO.md +20 -0
  72. data/docs/UsageDTO.md +18 -0
  73. data/docs/UserApi.md +1936 -0
  74. data/docs/UserDTO.md +56 -0
  75. data/getspec.rb +10 -0
  76. data/git_push.sh +57 -0
  77. data/lib/songtradr_api_client_ruby/api/allowed_values_api.rb +213 -0
  78. data/lib/songtradr_api_client_ruby/api/party_api.rb +84 -0
  79. data/lib/songtradr_api_client_ruby/api/playlist_api.rb +222 -0
  80. data/lib/songtradr_api_client_ruby/api/recording_api.rb +900 -0
  81. data/lib/songtradr_api_client_ruby/api/user_api.rb +2642 -0
  82. data/lib/songtradr_api_client_ruby/api_client.rb +428 -0
  83. data/lib/songtradr_api_client_ruby/api_error.rb +58 -0
  84. data/lib/songtradr_api_client_ruby/configuration.rb +380 -0
  85. data/lib/songtradr_api_client_ruby/models/category_medium_dto.rb +250 -0
  86. data/lib/songtradr_api_client_ruby/models/category_minimal_dto.rb +225 -0
  87. data/lib/songtradr_api_client_ruby/models/config_access_dto.rb +287 -0
  88. data/lib/songtradr_api_client_ruby/models/config_identifier_dto.rb +239 -0
  89. data/lib/songtradr_api_client_ruby/models/contributor_type_dto.rb +225 -0
  90. data/lib/songtradr_api_client_ruby/models/error_response.rb +276 -0
  91. data/lib/songtradr_api_client_ruby/models/field_summary_dto.rb +253 -0
  92. data/lib/songtradr_api_client_ruby/models/file_dto.rb +450 -0
  93. data/lib/songtradr_api_client_ruby/models/file_list_dto.rb +269 -0
  94. data/lib/songtradr_api_client_ruby/models/file_minimal_with_url_dto.rb +253 -0
  95. data/lib/songtradr_api_client_ruby/models/file_small_dto.rb +432 -0
  96. data/lib/songtradr_api_client_ruby/models/file_upload_dto.rb +244 -0
  97. data/lib/songtradr_api_client_ruby/models/file_w_ith_url_dto.rb +239 -0
  98. data/lib/songtradr_api_client_ruby/models/files_summary_dto.rb +287 -0
  99. data/lib/songtradr_api_client_ruby/models/forgot_password_dto.rb +267 -0
  100. data/lib/songtradr_api_client_ruby/models/genre_dto.rb +239 -0
  101. data/lib/songtradr_api_client_ruby/models/genre_minimal_dto.rb +225 -0
  102. data/lib/songtradr_api_client_ruby/models/genres_summary_dto.rb +248 -0
  103. data/lib/songtradr_api_client_ruby/models/init_put_recording_audio_dto.rb +238 -0
  104. data/lib/songtradr_api_client_ruby/models/jwt_token_dto.rb +248 -0
  105. data/lib/songtradr_api_client_ruby/models/login_dto.rb +257 -0
  106. data/lib/songtradr_api_client_ruby/models/musical_features_dto.rb +1532 -0
  107. data/lib/songtradr_api_client_ruby/models/p_line_dto.rb +234 -0
  108. data/lib/songtradr_api_client_ruby/models/party_large_dto.rb +288 -0
  109. data/lib/songtradr_api_client_ruby/models/party_small_dto.rb +239 -0
  110. data/lib/songtradr_api_client_ruby/models/playlist_large_dto.rb +353 -0
  111. data/lib/songtradr_api_client_ruby/models/product_medium_dto.rb +316 -0
  112. data/lib/songtradr_api_client_ruby/models/product_party_dto.rb +236 -0
  113. data/lib/songtradr_api_client_ruby/models/recording_for_similarity_search_dto.rb +239 -0
  114. data/lib/songtradr_api_client_ruby/models/recording_genre_prediction_dto.rb +253 -0
  115. data/lib/songtradr_api_client_ruby/models/recording_large_dto.rb +366 -0
  116. data/lib/songtradr_api_client_ruby/models/recording_list_dto.rb +269 -0
  117. data/lib/songtradr_api_client_ruby/models/recording_medium_dto.rb +340 -0
  118. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_musical_features_dto.rb +236 -0
  119. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_taggrams_dto.rb +248 -0
  120. data/lib/songtradr_api_client_ruby/models/recording_minimal_with_tagstrengths_dto.rb +236 -0
  121. data/lib/songtradr_api_client_ruby/models/recording_party_dto.rb +236 -0
  122. data/lib/songtradr_api_client_ruby/models/recording_playlist_dto.rb +247 -0
  123. data/lib/songtradr_api_client_ruby/models/recording_small_dto.rb +268 -0
  124. data/lib/songtradr_api_client_ruby/models/recording_tag_small_dto.rb +225 -0
  125. data/lib/songtradr_api_client_ruby/models/save_file_recording_dto.rb +1847 -0
  126. data/lib/songtradr_api_client_ruby/models/save_playlist_dto.rb +350 -0
  127. data/lib/songtradr_api_client_ruby/models/save_recording_genre_dto.rb +243 -0
  128. data/lib/songtradr_api_client_ruby/models/save_recording_party_dto.rb +273 -0
  129. data/lib/songtradr_api_client_ruby/models/save_recording_playlist_dto.rb +248 -0
  130. data/lib/songtradr_api_client_ruby/models/save_recording_tag_dto.rb +234 -0
  131. data/lib/songtradr_api_client_ruby/models/save_referrer_dto.rb +229 -0
  132. data/lib/songtradr_api_client_ruby/models/save_taggrams_dto.rb +574 -0
  133. data/lib/songtradr_api_client_ruby/models/save_user_dto.rb +317 -0
  134. data/lib/songtradr_api_client_ruby/models/search_filter_values_dto.rb +867 -0
  135. data/lib/songtradr_api_client_ruby/models/search_recording_granular_abstraction_dto.rb +270 -0
  136. data/lib/songtradr_api_client_ruby/models/search_recording_granular_dto.rb +235 -0
  137. data/lib/songtradr_api_client_ruby/models/sign_up_dto.rb +262 -0
  138. data/lib/songtradr_api_client_ruby/models/tag_dto.rb +250 -0
  139. data/lib/songtradr_api_client_ruby/models/tag_small_dto.rb +239 -0
  140. data/lib/songtradr_api_client_ruby/models/taggram_dto.rb +271 -0
  141. data/lib/songtradr_api_client_ruby/models/tags_summary_dto.rb +250 -0
  142. data/lib/songtradr_api_client_ruby/models/tagstrength_dto.rb +269 -0
  143. data/lib/songtradr_api_client_ruby/models/title_dto.rb +225 -0
  144. data/lib/songtradr_api_client_ruby/models/token_request.rb +224 -0
  145. data/lib/songtradr_api_client_ruby/models/track_to_medium_product_dto.rb +248 -0
  146. data/lib/songtradr_api_client_ruby/models/update_password_dto.rb +238 -0
  147. data/lib/songtradr_api_client_ruby/models/usage_dto.rb +220 -0
  148. data/lib/songtradr_api_client_ruby/models/user_dto.rb +481 -0
  149. data/lib/songtradr_api_client_ruby/version.rb +15 -0
  150. data/lib/songtradr_api_client_ruby.rb +108 -0
  151. data/openapi-generator-config.yaml +10 -0
  152. data/songtradr_api_client_ruby.gemspec +39 -0
  153. data/spec/api/allowed_values_api_spec.rb +68 -0
  154. data/spec/api/party_api_spec.rb +46 -0
  155. data/spec/api/playlist_api_spec.rb +72 -0
  156. data/spec/api/recording_api_spec.rb +192 -0
  157. data/spec/api/user_api_spec.rb +507 -0
  158. data/spec/api_client_spec.rb +223 -0
  159. data/spec/configuration_spec.rb +82 -0
  160. data/spec/models/category_medium_dto_spec.rb +46 -0
  161. data/spec/models/category_minimal_dto_spec.rb +34 -0
  162. data/spec/models/config_access_dto_spec.rb +48 -0
  163. data/spec/models/config_identifier_dto_spec.rb +40 -0
  164. data/spec/models/contributor_type_dto_spec.rb +34 -0
  165. data/spec/models/error_response_spec.rb +58 -0
  166. data/spec/models/field_summary_dto_spec.rb +46 -0
  167. data/spec/models/file_dto_spec.rb +142 -0
  168. data/spec/models/file_list_dto_spec.rb +52 -0
  169. data/spec/models/file_minimal_with_url_dto_spec.rb +46 -0
  170. data/spec/models/file_small_dto_spec.rb +130 -0
  171. data/spec/models/file_upload_dto_spec.rb +46 -0
  172. data/spec/models/file_w_ith_url_dto_spec.rb +40 -0
  173. data/spec/models/files_summary_dto_spec.rb +70 -0
  174. data/spec/models/forgot_password_dto_spec.rb +44 -0
  175. data/spec/models/genre_dto_spec.rb +40 -0
  176. data/spec/models/genre_minimal_dto_spec.rb +34 -0
  177. data/spec/models/genres_summary_dto_spec.rb +46 -0
  178. data/spec/models/init_put_recording_audio_dto_spec.rb +46 -0
  179. data/spec/models/jwt_token_dto_spec.rb +46 -0
  180. data/spec/models/login_dto_spec.rb +52 -0
  181. data/spec/models/musical_features_dto_spec.rb +706 -0
  182. data/spec/models/p_line_dto_spec.rb +40 -0
  183. data/spec/models/party_large_dto_spec.rb +76 -0
  184. data/spec/models/party_small_dto_spec.rb +40 -0
  185. data/spec/models/playlist_large_dto_spec.rb +98 -0
  186. data/spec/models/product_medium_dto_spec.rb +82 -0
  187. data/spec/models/product_party_dto_spec.rb +40 -0
  188. data/spec/models/recording_for_similarity_search_dto_spec.rb +40 -0
  189. data/spec/models/recording_genre_prediction_dto_spec.rb +46 -0
  190. data/spec/models/recording_large_dto_spec.rb +100 -0
  191. data/spec/models/recording_list_dto_spec.rb +52 -0
  192. data/spec/models/recording_medium_dto_spec.rb +88 -0
  193. data/spec/models/recording_minimal_with_musical_features_dto_spec.rb +40 -0
  194. data/spec/models/recording_minimal_with_taggrams_dto_spec.rb +46 -0
  195. data/spec/models/recording_minimal_with_tagstrengths_dto_spec.rb +40 -0
  196. data/spec/models/recording_party_dto_spec.rb +40 -0
  197. data/spec/models/recording_playlist_dto_spec.rb +52 -0
  198. data/spec/models/recording_small_dto_spec.rb +52 -0
  199. data/spec/models/recording_tag_small_dto_spec.rb +34 -0
  200. data/spec/models/save_file_recording_dto_spec.rb +880 -0
  201. data/spec/models/save_playlist_dto_spec.rb +86 -0
  202. data/spec/models/save_recording_genre_dto_spec.rb +46 -0
  203. data/spec/models/save_recording_party_dto_spec.rb +44 -0
  204. data/spec/models/save_recording_playlist_dto_spec.rb +46 -0
  205. data/spec/models/save_recording_tag_dto_spec.rb +40 -0
  206. data/spec/models/save_referrer_dto_spec.rb +40 -0
  207. data/spec/models/save_taggrams_dto_spec.rb +226 -0
  208. data/spec/models/save_user_dto_spec.rb +72 -0
  209. data/spec/models/search_filter_values_dto_spec.rb +274 -0
  210. data/spec/models/search_recording_granular_abstraction_dto_spec.rb +44 -0
  211. data/spec/models/search_recording_granular_dto_spec.rb +40 -0
  212. data/spec/models/sign_up_dto_spec.rb +52 -0
  213. data/spec/models/tag_dto_spec.rb +46 -0
  214. data/spec/models/tag_small_dto_spec.rb +40 -0
  215. data/spec/models/taggram_dto_spec.rb +58 -0
  216. data/spec/models/tags_summary_dto_spec.rb +46 -0
  217. data/spec/models/tagstrength_dto_spec.rb +58 -0
  218. data/spec/models/title_dto_spec.rb +34 -0
  219. data/spec/models/token_request_spec.rb +34 -0
  220. data/spec/models/track_to_medium_product_dto_spec.rb +46 -0
  221. data/spec/models/update_password_dto_spec.rb +40 -0
  222. data/spec/models/usage_dto_spec.rb +34 -0
  223. data/spec/models/user_dto_spec.rb +148 -0
  224. data/spec/spec_helper.rb +111 -0
  225. metadata +412 -0
@@ -0,0 +1,900 @@
1
+ =begin
2
+ #Songtradr API
3
+
4
+ #This is the Songtradr API. Use it to retrieve deep music metadata and trigger processes like auto-tagging. You can also use the API to manage your account and musicube cloud data. **Authentication** 1. Reach out to support@songtradr.com to receive a free account or use your login data if you are already signed up. 2. To authenticate, you need to login via the POST /api/v1/user/login endpoint. 3. The endpoint responds with a jwtToken which you can use in all following API requests as a bearer token. **Rate Limiting** The current limit is 120 Requests per minute. Reach out to us via support@songtradr.com if you need to request more. **Getting Started with auto-tagging** 1. If you want to get your own files auto-tagged, use the POST /api/v1/user/file/{name}/initUpload endpoint. It responds with a presigned S3 link where you can upload your file. 2. You can check the processing status of your file via the GET /api/v1/user/file/{name}/filesStatus endpoint. 3. As soon as processing is done, you can request the generated data via the GET /api/v1/user/files endpoint. **Getting Started with search** You can either search the released music via the /public/recording endpoints or your own private uploaded music via the /user/file/ endpoints. 1. If you want to search the world's released music, a good starting point is the GET /api/v1/public/recording/search endpoint. Please find the extensive list of parameters that serve as semantic search filters. 2. If you want to search your own previously uploaded music, a good starting point is the GET GET /api/v1/user/files endpoint. It has the same extensive list of parameters that serve as semantic search filters.
5
+
6
+ The version of the OpenAPI document: 1.12.21
7
+ Contact: info@songtradr.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.0.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module SongtradrApiClientRuby
16
+ class RecordingApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # AI generated moods, musical features and more for recordings.
23
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
24
+ # @param [Hash] opts the optional parameters
25
+ # @return [Array<RecordingMinimalWithMusicalFeaturesDTO>]
26
+ def recordings_by_ids_with_musical_features(ids, opts = {})
27
+ data, _status_code, _headers = recordings_by_ids_with_musical_features_with_http_info(ids, opts)
28
+ data
29
+ end
30
+
31
+ # AI generated moods, musical features and more for recordings.
32
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
33
+ # @param [Hash] opts the optional parameters
34
+ # @return [Array<(Array<RecordingMinimalWithMusicalFeaturesDTO>, Integer, Hash)>] Array<RecordingMinimalWithMusicalFeaturesDTO> data, response status code and response headers
35
+ def recordings_by_ids_with_musical_features_with_http_info(ids, opts = {})
36
+ if @api_client.config.debugging
37
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_by_ids_with_musical_features ...'
38
+ end
39
+ # verify the required parameter 'ids' is set
40
+ if @api_client.config.client_side_validation && ids.nil?
41
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_by_ids_with_musical_features"
42
+ end
43
+ # resource path
44
+ local_var_path = '/api/v1/public/recording/{ids}/musicalFeatures'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
45
+
46
+ # query parameters
47
+ query_params = opts[:query_params] || {}
48
+
49
+ # header parameters
50
+ header_params = opts[:header_params] || {}
51
+ # HTTP header 'Accept' (if needed)
52
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
53
+
54
+ # form parameters
55
+ form_params = opts[:form_params] || {}
56
+
57
+ # http body (model)
58
+ post_body = opts[:debug_body]
59
+
60
+ # return_type
61
+ return_type = opts[:debug_return_type] || 'Array<RecordingMinimalWithMusicalFeaturesDTO>'
62
+
63
+ # auth_names
64
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
65
+
66
+ new_options = opts.merge(
67
+ :operation => :"RecordingApi.recordings_by_ids_with_musical_features",
68
+ :header_params => header_params,
69
+ :query_params => query_params,
70
+ :form_params => form_params,
71
+ :body => post_body,
72
+ :auth_names => auth_names,
73
+ :return_type => return_type
74
+ )
75
+
76
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
77
+ if @api_client.config.debugging
78
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_by_ids_with_musical_features\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
79
+ end
80
+ return data, status_code, headers
81
+ end
82
+
83
+ # Similar recordings for a list of recordings.
84
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
85
+ # @param [Hash] opts the optional parameters
86
+ # @return [Array<RecordingForSimilaritySearchDTO>]
87
+ def recordings_by_ids_with_similarities(ids, opts = {})
88
+ data, _status_code, _headers = recordings_by_ids_with_similarities_with_http_info(ids, opts)
89
+ data
90
+ end
91
+
92
+ # Similar recordings for a list of recordings.
93
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
94
+ # @param [Hash] opts the optional parameters
95
+ # @return [Array<(Array<RecordingForSimilaritySearchDTO>, Integer, Hash)>] Array<RecordingForSimilaritySearchDTO> data, response status code and response headers
96
+ def recordings_by_ids_with_similarities_with_http_info(ids, opts = {})
97
+ if @api_client.config.debugging
98
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_by_ids_with_similarities ...'
99
+ end
100
+ # verify the required parameter 'ids' is set
101
+ if @api_client.config.client_side_validation && ids.nil?
102
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_by_ids_with_similarities"
103
+ end
104
+ # resource path
105
+ local_var_path = '/api/v1/public/recording/{ids}/similarities'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
106
+
107
+ # query parameters
108
+ query_params = opts[:query_params] || {}
109
+
110
+ # header parameters
111
+ header_params = opts[:header_params] || {}
112
+ # HTTP header 'Accept' (if needed)
113
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
114
+
115
+ # form parameters
116
+ form_params = opts[:form_params] || {}
117
+
118
+ # http body (model)
119
+ post_body = opts[:debug_body]
120
+
121
+ # return_type
122
+ return_type = opts[:debug_return_type] || 'Array<RecordingForSimilaritySearchDTO>'
123
+
124
+ # auth_names
125
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
126
+
127
+ new_options = opts.merge(
128
+ :operation => :"RecordingApi.recordings_by_ids_with_similarities",
129
+ :header_params => header_params,
130
+ :query_params => query_params,
131
+ :form_params => form_params,
132
+ :body => post_body,
133
+ :auth_names => auth_names,
134
+ :return_type => return_type
135
+ )
136
+
137
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
138
+ if @api_client.config.debugging
139
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_by_ids_with_similarities\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
140
+ end
141
+ return data, status_code, headers
142
+ end
143
+
144
+ # Timeseries of AI generated moods, musical features and more for a list of recordings.
145
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
146
+ # @param [Hash] opts the optional parameters
147
+ # @option opts [String] :category_name Show only taggrams for one category.
148
+ # @option opts [String] :tag_name Show only taggrams for one tag.
149
+ # @option opts [String] :genre_name Show only taggrams for one genre.
150
+ # @option opts [Float] :from_timestamp Show only taggrams data starting from from this timestamp in seconds.
151
+ # @option opts [Boolean] :fill_with_zero If set to true, empty timeseries are filled with timeseries of 0.0 values.
152
+ # @return [Array<RecordingMinimalWithTaggramsDTO>]
153
+ def recordings_by_ids_with_taggrams(ids, opts = {})
154
+ data, _status_code, _headers = recordings_by_ids_with_taggrams_with_http_info(ids, opts)
155
+ data
156
+ end
157
+
158
+ # Timeseries of AI generated moods, musical features and more for a list of recordings.
159
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
160
+ # @param [Hash] opts the optional parameters
161
+ # @option opts [String] :category_name Show only taggrams for one category.
162
+ # @option opts [String] :tag_name Show only taggrams for one tag.
163
+ # @option opts [String] :genre_name Show only taggrams for one genre.
164
+ # @option opts [Float] :from_timestamp Show only taggrams data starting from from this timestamp in seconds.
165
+ # @option opts [Boolean] :fill_with_zero If set to true, empty timeseries are filled with timeseries of 0.0 values.
166
+ # @return [Array<(Array<RecordingMinimalWithTaggramsDTO>, Integer, Hash)>] Array<RecordingMinimalWithTaggramsDTO> data, response status code and response headers
167
+ def recordings_by_ids_with_taggrams_with_http_info(ids, opts = {})
168
+ if @api_client.config.debugging
169
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_by_ids_with_taggrams ...'
170
+ end
171
+ # verify the required parameter 'ids' is set
172
+ if @api_client.config.client_side_validation && ids.nil?
173
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_by_ids_with_taggrams"
174
+ end
175
+ allowable_values = ["instrument", "vocals", "energy", "soundGeneration", "rhythm", "songRating", "performanceRating", "productionRating", "moodCluster", "tonality", "arousal", "valence", "pleasantness", "engagement", "timbre", "roughness", "harmony", "texture", "groovyness", "space", "audienceAge", "audienceRegion", "audienceGender", "originRegion", "originDecade", "languageOfPerformance", "level1Genre", "level2Genre"]
176
+ if @api_client.config.client_side_validation && opts[:'category_name'] && !allowable_values.include?(opts[:'category_name'])
177
+ fail ArgumentError, "invalid value for \"category_name\", must be one of #{allowable_values}"
178
+ end
179
+ # resource path
180
+ local_var_path = '/api/v1/public/recording/{ids}/taggrams'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
181
+
182
+ # query parameters
183
+ query_params = opts[:query_params] || {}
184
+ query_params[:'categoryName'] = opts[:'category_name'] if !opts[:'category_name'].nil?
185
+ query_params[:'tagName'] = opts[:'tag_name'] if !opts[:'tag_name'].nil?
186
+ query_params[:'genreName'] = opts[:'genre_name'] if !opts[:'genre_name'].nil?
187
+ query_params[:'fromTimestamp'] = opts[:'from_timestamp'] if !opts[:'from_timestamp'].nil?
188
+ query_params[:'fillWithZero'] = opts[:'fill_with_zero'] if !opts[:'fill_with_zero'].nil?
189
+
190
+ # header parameters
191
+ header_params = opts[:header_params] || {}
192
+ # HTTP header 'Accept' (if needed)
193
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
194
+
195
+ # form parameters
196
+ form_params = opts[:form_params] || {}
197
+
198
+ # http body (model)
199
+ post_body = opts[:debug_body]
200
+
201
+ # return_type
202
+ return_type = opts[:debug_return_type] || 'Array<RecordingMinimalWithTaggramsDTO>'
203
+
204
+ # auth_names
205
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
206
+
207
+ new_options = opts.merge(
208
+ :operation => :"RecordingApi.recordings_by_ids_with_taggrams",
209
+ :header_params => header_params,
210
+ :query_params => query_params,
211
+ :form_params => form_params,
212
+ :body => post_body,
213
+ :auth_names => auth_names,
214
+ :return_type => return_type
215
+ )
216
+
217
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
218
+ if @api_client.config.debugging
219
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_by_ids_with_taggrams\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
220
+ end
221
+ return data, status_code, headers
222
+ end
223
+
224
+ # Strengths as numerical representations for AI generated moods, musical features and more for recordings.
225
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
226
+ # @param [Hash] opts the optional parameters
227
+ # @option opts [String] :category_name Show only taggrams for one category.
228
+ # @option opts [String] :tag_name Show only taggrams for one tag.
229
+ # @option opts [String] :genre_name Show only taggrams for one genre.
230
+ # @return [Array<RecordingMinimalWithTagstrengthsDTO>]
231
+ def recordings_by_ids_with_tagstrengths(ids, opts = {})
232
+ data, _status_code, _headers = recordings_by_ids_with_tagstrengths_with_http_info(ids, opts)
233
+ data
234
+ end
235
+
236
+ # Strengths as numerical representations for AI generated moods, musical features and more for recordings.
237
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
238
+ # @param [Hash] opts the optional parameters
239
+ # @option opts [String] :category_name Show only taggrams for one category.
240
+ # @option opts [String] :tag_name Show only taggrams for one tag.
241
+ # @option opts [String] :genre_name Show only taggrams for one genre.
242
+ # @return [Array<(Array<RecordingMinimalWithTagstrengthsDTO>, Integer, Hash)>] Array<RecordingMinimalWithTagstrengthsDTO> data, response status code and response headers
243
+ def recordings_by_ids_with_tagstrengths_with_http_info(ids, opts = {})
244
+ if @api_client.config.debugging
245
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_by_ids_with_tagstrengths ...'
246
+ end
247
+ # verify the required parameter 'ids' is set
248
+ if @api_client.config.client_side_validation && ids.nil?
249
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_by_ids_with_tagstrengths"
250
+ end
251
+ allowable_values = ["instrument", "vocals", "energy", "soundGeneration", "rhythm", "songRating", "performanceRating", "productionRating", "moodCluster", "tonality", "arousal", "valence", "pleasantness", "engagement", "timbre", "roughness", "harmony", "texture", "groovyness", "space", "audienceAge", "audienceRegion", "audienceGender", "originRegion", "originDecade", "languageOfPerformance", "level1Genre", "level2Genre"]
252
+ if @api_client.config.client_side_validation && opts[:'category_name'] && !allowable_values.include?(opts[:'category_name'])
253
+ fail ArgumentError, "invalid value for \"category_name\", must be one of #{allowable_values}"
254
+ end
255
+ # resource path
256
+ local_var_path = '/api/v1/public/recording/{ids}/tagstrengths'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
257
+
258
+ # query parameters
259
+ query_params = opts[:query_params] || {}
260
+ query_params[:'categoryName'] = opts[:'category_name'] if !opts[:'category_name'].nil?
261
+ query_params[:'tagName'] = opts[:'tag_name'] if !opts[:'tag_name'].nil?
262
+ query_params[:'genreName'] = opts[:'genre_name'] if !opts[:'genre_name'].nil?
263
+
264
+ # header parameters
265
+ header_params = opts[:header_params] || {}
266
+ # HTTP header 'Accept' (if needed)
267
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
268
+
269
+ # form parameters
270
+ form_params = opts[:form_params] || {}
271
+
272
+ # http body (model)
273
+ post_body = opts[:debug_body]
274
+
275
+ # return_type
276
+ return_type = opts[:debug_return_type] || 'Array<RecordingMinimalWithTagstrengthsDTO>'
277
+
278
+ # auth_names
279
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
280
+
281
+ new_options = opts.merge(
282
+ :operation => :"RecordingApi.recordings_by_ids_with_tagstrengths",
283
+ :header_params => header_params,
284
+ :query_params => query_params,
285
+ :form_params => form_params,
286
+ :body => post_body,
287
+ :auth_names => auth_names,
288
+ :return_type => return_type
289
+ )
290
+
291
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
292
+ if @api_client.config.debugging
293
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_by_ids_with_tagstrengths\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
294
+ end
295
+ return data, status_code, headers
296
+ end
297
+
298
+ # Recordings by IDs with a large response.
299
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
300
+ # @param [Hash] opts the optional parameters
301
+ # @return [Array<RecordingLargeDTO>]
302
+ def recordings_large_by_ids(ids, opts = {})
303
+ data, _status_code, _headers = recordings_large_by_ids_with_http_info(ids, opts)
304
+ data
305
+ end
306
+
307
+ # Recordings by IDs with a large response.
308
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
309
+ # @param [Hash] opts the optional parameters
310
+ # @return [Array<(Array<RecordingLargeDTO>, Integer, Hash)>] Array<RecordingLargeDTO> data, response status code and response headers
311
+ def recordings_large_by_ids_with_http_info(ids, opts = {})
312
+ if @api_client.config.debugging
313
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_large_by_ids ...'
314
+ end
315
+ # verify the required parameter 'ids' is set
316
+ if @api_client.config.client_side_validation && ids.nil?
317
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_large_by_ids"
318
+ end
319
+ # resource path
320
+ local_var_path = '/api/v1/public/recording/l/{ids}'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
321
+
322
+ # query parameters
323
+ query_params = opts[:query_params] || {}
324
+
325
+ # header parameters
326
+ header_params = opts[:header_params] || {}
327
+ # HTTP header 'Accept' (if needed)
328
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
329
+
330
+ # form parameters
331
+ form_params = opts[:form_params] || {}
332
+
333
+ # http body (model)
334
+ post_body = opts[:debug_body]
335
+
336
+ # return_type
337
+ return_type = opts[:debug_return_type] || 'Array<RecordingLargeDTO>'
338
+
339
+ # auth_names
340
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
341
+
342
+ new_options = opts.merge(
343
+ :operation => :"RecordingApi.recordings_large_by_ids",
344
+ :header_params => header_params,
345
+ :query_params => query_params,
346
+ :form_params => form_params,
347
+ :body => post_body,
348
+ :auth_names => auth_names,
349
+ :return_type => return_type
350
+ )
351
+
352
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
353
+ if @api_client.config.debugging
354
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_large_by_ids\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
355
+ end
356
+ return data, status_code, headers
357
+ end
358
+
359
+ # Recordings by IDs with a medium sized response.
360
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
361
+ # @param [Hash] opts the optional parameters
362
+ # @option opts [Integer] :page Zero-based page index (0..N) (default to 0)
363
+ # @option opts [Integer] :size The size of the page to be returned (default to 20)
364
+ # @option opts [Array<String>] :sort Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
365
+ # @return [Array<RecordingMediumDTO>]
366
+ def recordings_medium_by_ids(ids, opts = {})
367
+ data, _status_code, _headers = recordings_medium_by_ids_with_http_info(ids, opts)
368
+ data
369
+ end
370
+
371
+ # Recordings by IDs with a medium sized response.
372
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
373
+ # @param [Hash] opts the optional parameters
374
+ # @option opts [Integer] :page Zero-based page index (0..N) (default to 0)
375
+ # @option opts [Integer] :size The size of the page to be returned (default to 20)
376
+ # @option opts [Array<String>] :sort Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
377
+ # @return [Array<(Array<RecordingMediumDTO>, Integer, Hash)>] Array<RecordingMediumDTO> data, response status code and response headers
378
+ def recordings_medium_by_ids_with_http_info(ids, opts = {})
379
+ if @api_client.config.debugging
380
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_medium_by_ids ...'
381
+ end
382
+ # verify the required parameter 'ids' is set
383
+ if @api_client.config.client_side_validation && ids.nil?
384
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_medium_by_ids"
385
+ end
386
+ # resource path
387
+ local_var_path = '/api/v1/public/recording/m/{ids}'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
388
+
389
+ # query parameters
390
+ query_params = opts[:query_params] || {}
391
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
392
+ query_params[:'size'] = opts[:'size'] if !opts[:'size'].nil?
393
+ query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :multi) if !opts[:'sort'].nil?
394
+
395
+ # header parameters
396
+ header_params = opts[:header_params] || {}
397
+ # HTTP header 'Accept' (if needed)
398
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
399
+
400
+ # form parameters
401
+ form_params = opts[:form_params] || {}
402
+
403
+ # http body (model)
404
+ post_body = opts[:debug_body]
405
+
406
+ # return_type
407
+ return_type = opts[:debug_return_type] || 'Array<RecordingMediumDTO>'
408
+
409
+ # auth_names
410
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
411
+
412
+ new_options = opts.merge(
413
+ :operation => :"RecordingApi.recordings_medium_by_ids",
414
+ :header_params => header_params,
415
+ :query_params => query_params,
416
+ :form_params => form_params,
417
+ :body => post_body,
418
+ :auth_names => auth_names,
419
+ :return_type => return_type
420
+ )
421
+
422
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
423
+ if @api_client.config.debugging
424
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_medium_by_ids\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
425
+ end
426
+ return data, status_code, headers
427
+ end
428
+
429
+ # Recordings by IDs with a small response.
430
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
431
+ # @param [Hash] opts the optional parameters
432
+ # @return [Array<RecordingSmallDTO>]
433
+ def recordings_small_by_ids(ids, opts = {})
434
+ data, _status_code, _headers = recordings_small_by_ids_with_http_info(ids, opts)
435
+ data
436
+ end
437
+
438
+ # Recordings by IDs with a small response.
439
+ # @param ids [String] Comma seperated list of IDs. Can be ISRCs or proprietary IDs
440
+ # @param [Hash] opts the optional parameters
441
+ # @return [Array<(Array<RecordingSmallDTO>, Integer, Hash)>] Array<RecordingSmallDTO> data, response status code and response headers
442
+ def recordings_small_by_ids_with_http_info(ids, opts = {})
443
+ if @api_client.config.debugging
444
+ @api_client.config.logger.debug 'Calling API: RecordingApi.recordings_small_by_ids ...'
445
+ end
446
+ # verify the required parameter 'ids' is set
447
+ if @api_client.config.client_side_validation && ids.nil?
448
+ fail ArgumentError, "Missing the required parameter 'ids' when calling RecordingApi.recordings_small_by_ids"
449
+ end
450
+ # resource path
451
+ local_var_path = '/api/v1/public/recording/s/{ids}'.sub('{' + 'ids' + '}', CGI.escape(ids.to_s))
452
+
453
+ # query parameters
454
+ query_params = opts[:query_params] || {}
455
+
456
+ # header parameters
457
+ header_params = opts[:header_params] || {}
458
+ # HTTP header 'Accept' (if needed)
459
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
460
+
461
+ # form parameters
462
+ form_params = opts[:form_params] || {}
463
+
464
+ # http body (model)
465
+ post_body = opts[:debug_body]
466
+
467
+ # return_type
468
+ return_type = opts[:debug_return_type] || 'Array<RecordingSmallDTO>'
469
+
470
+ # auth_names
471
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
472
+
473
+ new_options = opts.merge(
474
+ :operation => :"RecordingApi.recordings_small_by_ids",
475
+ :header_params => header_params,
476
+ :query_params => query_params,
477
+ :form_params => form_params,
478
+ :body => post_body,
479
+ :auth_names => auth_names,
480
+ :return_type => return_type
481
+ )
482
+
483
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
484
+ if @api_client.config.debugging
485
+ @api_client.config.logger.debug "API called: RecordingApi#recordings_small_by_ids\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
486
+ end
487
+ return data, status_code, headers
488
+ end
489
+
490
+ # Recordings by contributors, moods, musical features and more.
491
+ # @param [Hash] opts the optional parameters
492
+ # @option opts [String] :similar_to_recording Search for songs similar to a recording.
493
+ # @option opts [String] :contributor Search for a name that was involved as any contributor.
494
+ # @option opts [String] :main_artist Search for a main artist.
495
+ # @option opts [String] :composer Search for a composer.
496
+ # @option opts [String] :title Search for a title.
497
+ # @option opts [String] :language Search for a language of the lyrics.
498
+ # @option opts [String] :genre Search for a genre.
499
+ # @option opts [String] :primary_mood_cluster Search for a mood.
500
+ # @option opts [String] :valence Search for valence.
501
+ # @option opts [String] :arousal Search for arousal.
502
+ # @option opts [String] :pleasantness Search for pleasantness.
503
+ # @option opts [String] :engagement Search for an engagement.
504
+ # @option opts [String] :vocals Search for a vocals gender or instrumental songs.
505
+ # @option opts [String] :dominant_instrument Search for a dominant instrument.
506
+ # @option opts [String] :energy Search for energy.
507
+ # @option opts [String] :sound_generation Search for type of sound generation.
508
+ # @option opts [String] :tempo Search for tempo.
509
+ # @option opts [String] :scale Search for tonal scale.
510
+ # @option opts [String] :key Search for harmonic key.
511
+ # @option opts [String] :rhythm Search for rhythm.
512
+ # @option opts [String] :primary_sound_character Search for a sound character.
513
+ # @option opts [String] :timbre Search for timbre.
514
+ # @option opts [String] :roughness Search for roughness.
515
+ # @option opts [String] :tonality Search for tonality.
516
+ # @option opts [String] :harmony Search for a degree of harmoniousness.
517
+ # @option opts [String] :texture Search for texture.
518
+ # @option opts [String] :groovyness Search for groovyness.
519
+ # @option opts [String] :space Search for space.
520
+ # @option opts [String] :origin_decade Search for origin decade.
521
+ # @option opts [String] :curateability Search for curateability.
522
+ # @option opts [String] :use_case Search for use case.
523
+ # @option opts [String] :channel_suitability Search for channel suitability.
524
+ # @option opts [String] :songtradr_track_id Search for Songtradr track id.
525
+ # @option opts [String] :shuffled Sort the results randomly. (default to 'false')
526
+ # @option opts [String] :sort Sort the results. (default to 'popularityDesc')
527
+ # @option opts [Integer] :page Zero-based page index (0..N) (default to 0)
528
+ # @option opts [Integer] :size The size of the page to be returned (default to 20)
529
+ # @return [RecordingListDTO]
530
+ def search_recordings(opts = {})
531
+ data, _status_code, _headers = search_recordings_with_http_info(opts)
532
+ data
533
+ end
534
+
535
+ # Recordings by contributors, moods, musical features and more.
536
+ # @param [Hash] opts the optional parameters
537
+ # @option opts [String] :similar_to_recording Search for songs similar to a recording.
538
+ # @option opts [String] :contributor Search for a name that was involved as any contributor.
539
+ # @option opts [String] :main_artist Search for a main artist.
540
+ # @option opts [String] :composer Search for a composer.
541
+ # @option opts [String] :title Search for a title.
542
+ # @option opts [String] :language Search for a language of the lyrics.
543
+ # @option opts [String] :genre Search for a genre.
544
+ # @option opts [String] :primary_mood_cluster Search for a mood.
545
+ # @option opts [String] :valence Search for valence.
546
+ # @option opts [String] :arousal Search for arousal.
547
+ # @option opts [String] :pleasantness Search for pleasantness.
548
+ # @option opts [String] :engagement Search for an engagement.
549
+ # @option opts [String] :vocals Search for a vocals gender or instrumental songs.
550
+ # @option opts [String] :dominant_instrument Search for a dominant instrument.
551
+ # @option opts [String] :energy Search for energy.
552
+ # @option opts [String] :sound_generation Search for type of sound generation.
553
+ # @option opts [String] :tempo Search for tempo.
554
+ # @option opts [String] :scale Search for tonal scale.
555
+ # @option opts [String] :key Search for harmonic key.
556
+ # @option opts [String] :rhythm Search for rhythm.
557
+ # @option opts [String] :primary_sound_character Search for a sound character.
558
+ # @option opts [String] :timbre Search for timbre.
559
+ # @option opts [String] :roughness Search for roughness.
560
+ # @option opts [String] :tonality Search for tonality.
561
+ # @option opts [String] :harmony Search for a degree of harmoniousness.
562
+ # @option opts [String] :texture Search for texture.
563
+ # @option opts [String] :groovyness Search for groovyness.
564
+ # @option opts [String] :space Search for space.
565
+ # @option opts [String] :origin_decade Search for origin decade.
566
+ # @option opts [String] :curateability Search for curateability.
567
+ # @option opts [String] :use_case Search for use case.
568
+ # @option opts [String] :channel_suitability Search for channel suitability.
569
+ # @option opts [String] :songtradr_track_id Search for Songtradr track id.
570
+ # @option opts [String] :shuffled Sort the results randomly. (default to 'false')
571
+ # @option opts [String] :sort Sort the results. (default to 'popularityDesc')
572
+ # @option opts [Integer] :page Zero-based page index (0..N) (default to 0)
573
+ # @option opts [Integer] :size The size of the page to be returned (default to 20)
574
+ # @return [Array<(RecordingListDTO, Integer, Hash)>] RecordingListDTO data, response status code and response headers
575
+ def search_recordings_with_http_info(opts = {})
576
+ if @api_client.config.debugging
577
+ @api_client.config.logger.debug 'Calling API: RecordingApi.search_recordings ...'
578
+ end
579
+ allowable_values = ["en", "es", "fr", "de", "jp", "cn", "IT", "RU"]
580
+ if @api_client.config.client_side_validation && opts[:'language'] && !allowable_values.include?(opts[:'language'])
581
+ fail ArgumentError, "invalid value for \"language\", must be one of #{allowable_values}"
582
+ end
583
+ allowable_values = ["aggressive", "amusing", "anxious", "calm", "devotional", "dreamy", "energetic", "enigmatic", "epic", "erotic", "positive", "sad", "scary", "wild"]
584
+ if @api_client.config.client_side_validation && opts[:'primary_mood_cluster'] && !allowable_values.include?(opts[:'primary_mood_cluster'])
585
+ fail ArgumentError, "invalid value for \"primary_mood_cluster\", must be one of #{allowable_values}"
586
+ end
587
+ allowable_values = ["very sad", "sad", "moderate valence", "positive", "very positive", "varying valence"]
588
+ if @api_client.config.client_side_validation && opts[:'valence'] && !allowable_values.include?(opts[:'valence'])
589
+ fail ArgumentError, "invalid value for \"valence\", must be one of #{allowable_values}"
590
+ end
591
+ allowable_values = ["very calm", "calm", "moderate arousal", "energetic", "very energetic", "varying arousal"]
592
+ if @api_client.config.client_side_validation && opts[:'arousal'] && !allowable_values.include?(opts[:'arousal'])
593
+ fail ArgumentError, "invalid value for \"arousal\", must be one of #{allowable_values}"
594
+ end
595
+ allowable_values = ["very unpleasant", "unpleasant", "neutral pleasantness", "pleasant", "very pleasant", "varying pleasantness"]
596
+ if @api_client.config.client_side_validation && opts[:'pleasantness'] && !allowable_values.include?(opts[:'pleasantness'])
597
+ fail ArgumentError, "invalid value for \"pleasantness\", must be one of #{allowable_values}"
598
+ end
599
+ allowable_values = ["very unengaging", "unengaging", "neutral engagement", "engaging", "very engaging", "varying engagement"]
600
+ if @api_client.config.client_side_validation && opts[:'engagement'] && !allowable_values.include?(opts[:'engagement'])
601
+ fail ArgumentError, "invalid value for \"engagement\", must be one of #{allowable_values}"
602
+ end
603
+ allowable_values = ["instrumental", "female vocals", "male vocals", "mixed vocals", "diverse gender vocals"]
604
+ if @api_client.config.client_side_validation && opts[:'vocals'] && !allowable_values.include?(opts[:'vocals'])
605
+ fail ArgumentError, "invalid value for \"vocals\", must be one of #{allowable_values}"
606
+ end
607
+ allowable_values = ["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"]
608
+ if @api_client.config.client_side_validation && opts[:'dominant_instrument'] && !allowable_values.include?(opts[:'dominant_instrument'])
609
+ fail ArgumentError, "invalid value for \"dominant_instrument\", must be one of #{allowable_values}"
610
+ end
611
+ allowable_values = ["very quiet", "quiet", "moderate", "loud", "very loud", "dynamic"]
612
+ if @api_client.config.client_side_validation && opts[:'energy'] && !allowable_values.include?(opts[:'energy'])
613
+ fail ArgumentError, "invalid value for \"energy\", must be one of #{allowable_values}"
614
+ end
615
+ allowable_values = ["acoustic", "electric", "electronic", "mixed sound generation"]
616
+ if @api_client.config.client_side_validation && opts[:'sound_generation'] && !allowable_values.include?(opts[:'sound_generation'])
617
+ fail ArgumentError, "invalid value for \"sound_generation\", must be one of #{allowable_values}"
618
+ end
619
+ allowable_values = ["very slow", "slow", "mid-tempo", "fast", "very fast", "varying tempo"]
620
+ if @api_client.config.client_side_validation && opts[:'tempo'] && !allowable_values.include?(opts[:'tempo'])
621
+ fail ArgumentError, "invalid value for \"tempo\", must be one of #{allowable_values}"
622
+ end
623
+ allowable_values = ["major key", "minor key", "neutral key"]
624
+ if @api_client.config.client_side_validation && opts[:'scale'] && !allowable_values.include?(opts[:'scale'])
625
+ fail ArgumentError, "invalid value for \"scale\", must be one of #{allowable_values}"
626
+ end
627
+ allowable_values = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", "unclear"]
628
+ if @api_client.config.client_side_validation && opts[:'key'] && !allowable_values.include?(opts[:'key'])
629
+ fail ArgumentError, "invalid value for \"key\", must be one of #{allowable_values}"
630
+ end
631
+ allowable_values = ["common time", "triple meter", "complex time signature", "binary rhythm", "ternary rhythm"]
632
+ if @api_client.config.client_side_validation && opts[:'rhythm'] && !allowable_values.include?(opts[:'rhythm'])
633
+ fail ArgumentError, "invalid value for \"rhythm\", must be one of #{allowable_values}"
634
+ end
635
+ allowable_values = ["brassy", "bright", "clear", "deep", "distorted", "flat", "full", "groovy", "melodious", "natural", "resonant", "shrill", "steady", "thin", "warm"]
636
+ if @api_client.config.client_side_validation && opts[:'primary_sound_character'] && !allowable_values.include?(opts[:'primary_sound_character'])
637
+ fail ArgumentError, "invalid value for \"primary_sound_character\", must be one of #{allowable_values}"
638
+ end
639
+ allowable_values = ["very warm", "warm", "moderate timbre", "bright", "very bright"]
640
+ if @api_client.config.client_side_validation && opts[:'timbre'] && !allowable_values.include?(opts[:'timbre'])
641
+ fail ArgumentError, "invalid value for \"timbre\", must be one of #{allowable_values}"
642
+ end
643
+ allowable_values = ["very clear", "clear", "moderate roughness", "distorted", "very distorted"]
644
+ if @api_client.config.client_side_validation && opts[:'roughness'] && !allowable_values.include?(opts[:'roughness'])
645
+ fail ArgumentError, "invalid value for \"roughness\", must be one of #{allowable_values}"
646
+ end
647
+ allowable_values = ["monotonous", "moderate melodiousness", "melodious", "atonal"]
648
+ if @api_client.config.client_side_validation && opts[:'tonality'] && !allowable_values.include?(opts[:'tonality'])
649
+ fail ArgumentError, "invalid value for \"tonality\", must be one of #{allowable_values}"
650
+ end
651
+ allowable_values = ["very dissonant", "dissonant", "moderate harmonies", "harmonious", "very harmonious"]
652
+ if @api_client.config.client_side_validation && opts[:'harmony'] && !allowable_values.include?(opts[:'harmony'])
653
+ fail ArgumentError, "invalid value for \"harmony\", must be one of #{allowable_values}"
654
+ end
655
+ allowable_values = ["very thin", "thin", "moderate texture", "full", "very full"]
656
+ if @api_client.config.client_side_validation && opts[:'texture'] && !allowable_values.include?(opts[:'texture'])
657
+ fail ArgumentError, "invalid value for \"texture\", must be one of #{allowable_values}"
658
+ end
659
+ allowable_values = ["very steady", "steady", "moderate rhythm feel", "groovy", "very groovy"]
660
+ if @api_client.config.client_side_validation && opts[:'groovyness'] && !allowable_values.include?(opts[:'groovyness'])
661
+ fail ArgumentError, "invalid value for \"groovyness\", must be one of #{allowable_values}"
662
+ end
663
+ allowable_values = ["very compact", "compact", "moderate space", "wide", "very wide"]
664
+ if @api_client.config.client_side_validation && opts[:'space'] && !allowable_values.include?(opts[:'space'])
665
+ fail ArgumentError, "invalid value for \"space\", must be one of #{allowable_values}"
666
+ end
667
+ allowable_values = ["pre-1950s", "1950s", "1960s", "1970s", "1980s", "1990s", "2000s", "2010s", "2020s"]
668
+ if @api_client.config.client_side_validation && opts[:'origin_decade'] && !allowable_values.include?(opts[:'origin_decade'])
669
+ fail ArgumentError, "invalid value for \"origin_decade\", must be one of #{allowable_values}"
670
+ end
671
+ allowable_values = ["curateable", "uncurateable"]
672
+ if @api_client.config.client_side_validation && opts[:'curateability'] && !allowable_values.include?(opts[:'curateability'])
673
+ fail ArgumentError, "invalid value for \"curateability\", must be one of #{allowable_values}"
674
+ end
675
+ allowable_values = ["background", "sport", "focus", "christmas", "film", "summer", "adverts", "party", "relax"]
676
+ if @api_client.config.client_side_validation && opts[:'use_case'] && !allowable_values.include?(opts[:'use_case'])
677
+ fail ArgumentError, "invalid value for \"use_case\", must be one of #{allowable_values}"
678
+ end
679
+ allowable_values = ["Spotify", "TikTok", "Unfitting", "YouTube"]
680
+ if @api_client.config.client_side_validation && opts[:'channel_suitability'] && !allowable_values.include?(opts[:'channel_suitability'])
681
+ fail ArgumentError, "invalid value for \"channel_suitability\", must be one of #{allowable_values}"
682
+ end
683
+ allowable_values = ["true", "false"]
684
+ if @api_client.config.client_side_validation && opts[:'shuffled'] && !allowable_values.include?(opts[:'shuffled'])
685
+ fail ArgumentError, "invalid value for \"shuffled\", must be one of #{allowable_values}"
686
+ end
687
+ allowable_values = ["popularityDesc", "popularityAsc", "releaseDateDesc", "releaseDateAsc"]
688
+ if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
689
+ fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
690
+ end
691
+ # resource path
692
+ local_var_path = '/api/v1/public/recording/search'
693
+
694
+ # query parameters
695
+ query_params = opts[:query_params] || {}
696
+ query_params[:'similarToRecording'] = opts[:'similar_to_recording'] if !opts[:'similar_to_recording'].nil?
697
+ query_params[:'contributor'] = opts[:'contributor'] if !opts[:'contributor'].nil?
698
+ query_params[:'mainArtist'] = opts[:'main_artist'] if !opts[:'main_artist'].nil?
699
+ query_params[:'composer'] = opts[:'composer'] if !opts[:'composer'].nil?
700
+ query_params[:'title'] = opts[:'title'] if !opts[:'title'].nil?
701
+ query_params[:'language'] = opts[:'language'] if !opts[:'language'].nil?
702
+ query_params[:'genre'] = opts[:'genre'] if !opts[:'genre'].nil?
703
+ query_params[:'primaryMoodCluster'] = opts[:'primary_mood_cluster'] if !opts[:'primary_mood_cluster'].nil?
704
+ query_params[:'valence'] = opts[:'valence'] if !opts[:'valence'].nil?
705
+ query_params[:'arousal'] = opts[:'arousal'] if !opts[:'arousal'].nil?
706
+ query_params[:'pleasantness'] = opts[:'pleasantness'] if !opts[:'pleasantness'].nil?
707
+ query_params[:'engagement'] = opts[:'engagement'] if !opts[:'engagement'].nil?
708
+ query_params[:'vocals'] = opts[:'vocals'] if !opts[:'vocals'].nil?
709
+ query_params[:'dominantInstrument'] = opts[:'dominant_instrument'] if !opts[:'dominant_instrument'].nil?
710
+ query_params[:'energy'] = opts[:'energy'] if !opts[:'energy'].nil?
711
+ query_params[:'soundGeneration'] = opts[:'sound_generation'] if !opts[:'sound_generation'].nil?
712
+ query_params[:'tempo'] = opts[:'tempo'] if !opts[:'tempo'].nil?
713
+ query_params[:'scale'] = opts[:'scale'] if !opts[:'scale'].nil?
714
+ query_params[:'key'] = opts[:'key'] if !opts[:'key'].nil?
715
+ query_params[:'rhythm'] = opts[:'rhythm'] if !opts[:'rhythm'].nil?
716
+ query_params[:'primarySoundCharacter'] = opts[:'primary_sound_character'] if !opts[:'primary_sound_character'].nil?
717
+ query_params[:'timbre'] = opts[:'timbre'] if !opts[:'timbre'].nil?
718
+ query_params[:'roughness'] = opts[:'roughness'] if !opts[:'roughness'].nil?
719
+ query_params[:'tonality'] = opts[:'tonality'] if !opts[:'tonality'].nil?
720
+ query_params[:'harmony'] = opts[:'harmony'] if !opts[:'harmony'].nil?
721
+ query_params[:'texture'] = opts[:'texture'] if !opts[:'texture'].nil?
722
+ query_params[:'groovyness'] = opts[:'groovyness'] if !opts[:'groovyness'].nil?
723
+ query_params[:'space'] = opts[:'space'] if !opts[:'space'].nil?
724
+ query_params[:'originDecade'] = opts[:'origin_decade'] if !opts[:'origin_decade'].nil?
725
+ query_params[:'curateability'] = opts[:'curateability'] if !opts[:'curateability'].nil?
726
+ query_params[:'useCase'] = opts[:'use_case'] if !opts[:'use_case'].nil?
727
+ query_params[:'channelSuitability'] = opts[:'channel_suitability'] if !opts[:'channel_suitability'].nil?
728
+ query_params[:'songtradrTrackId'] = opts[:'songtradr_track_id'] if !opts[:'songtradr_track_id'].nil?
729
+ query_params[:'shuffled'] = opts[:'shuffled'] if !opts[:'shuffled'].nil?
730
+ query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
731
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
732
+ query_params[:'size'] = opts[:'size'] if !opts[:'size'].nil?
733
+
734
+ # header parameters
735
+ header_params = opts[:header_params] || {}
736
+ # HTTP header 'Accept' (if needed)
737
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
738
+
739
+ # form parameters
740
+ form_params = opts[:form_params] || {}
741
+
742
+ # http body (model)
743
+ post_body = opts[:debug_body]
744
+
745
+ # return_type
746
+ return_type = opts[:debug_return_type] || 'RecordingListDTO'
747
+
748
+ # auth_names
749
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
750
+
751
+ new_options = opts.merge(
752
+ :operation => :"RecordingApi.search_recordings",
753
+ :header_params => header_params,
754
+ :query_params => query_params,
755
+ :form_params => form_params,
756
+ :body => post_body,
757
+ :auth_names => auth_names,
758
+ :return_type => return_type
759
+ )
760
+
761
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
762
+ if @api_client.config.debugging
763
+ @api_client.config.logger.debug "API called: RecordingApi#search_recordings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
764
+ end
765
+ return data, status_code, headers
766
+ end
767
+
768
+ # Recordings by granular search options.
769
+ # @param search_recording_granular_dto [Array<SearchRecordingGranularDTO>]
770
+ # @param [Hash] opts the optional parameters
771
+ # @return [RecordingListDTO]
772
+ def search_recordings_granular(search_recording_granular_dto, opts = {})
773
+ data, _status_code, _headers = search_recordings_granular_with_http_info(search_recording_granular_dto, opts)
774
+ data
775
+ end
776
+
777
+ # Recordings by granular search options.
778
+ # @param search_recording_granular_dto [Array<SearchRecordingGranularDTO>]
779
+ # @param [Hash] opts the optional parameters
780
+ # @return [Array<(RecordingListDTO, Integer, Hash)>] RecordingListDTO data, response status code and response headers
781
+ def search_recordings_granular_with_http_info(search_recording_granular_dto, opts = {})
782
+ if @api_client.config.debugging
783
+ @api_client.config.logger.debug 'Calling API: RecordingApi.search_recordings_granular ...'
784
+ end
785
+ # verify the required parameter 'search_recording_granular_dto' is set
786
+ if @api_client.config.client_side_validation && search_recording_granular_dto.nil?
787
+ fail ArgumentError, "Missing the required parameter 'search_recording_granular_dto' when calling RecordingApi.search_recordings_granular"
788
+ end
789
+ # resource path
790
+ local_var_path = '/api/v1/public/recording/searchGranular'
791
+
792
+ # query parameters
793
+ query_params = opts[:query_params] || {}
794
+
795
+ # header parameters
796
+ header_params = opts[:header_params] || {}
797
+ # HTTP header 'Accept' (if needed)
798
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
799
+ # HTTP header 'Content-Type'
800
+ content_type = @api_client.select_header_content_type(['application/json'])
801
+ if !content_type.nil?
802
+ header_params['Content-Type'] = content_type
803
+ end
804
+
805
+ # form parameters
806
+ form_params = opts[:form_params] || {}
807
+
808
+ # http body (model)
809
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(search_recording_granular_dto)
810
+
811
+ # return_type
812
+ return_type = opts[:debug_return_type] || 'RecordingListDTO'
813
+
814
+ # auth_names
815
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
816
+
817
+ new_options = opts.merge(
818
+ :operation => :"RecordingApi.search_recordings_granular",
819
+ :header_params => header_params,
820
+ :query_params => query_params,
821
+ :form_params => form_params,
822
+ :body => post_body,
823
+ :auth_names => auth_names,
824
+ :return_type => return_type
825
+ )
826
+
827
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
828
+ if @api_client.config.debugging
829
+ @api_client.config.logger.debug "API called: RecordingApi#search_recordings_granular\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
830
+ end
831
+ return data, status_code, headers
832
+ end
833
+
834
+ # Recordings by abstracted wordings and granular search options.
835
+ # @param search_recording_granular_abstraction_dto [Array<SearchRecordingGranularAbstractionDTO>]
836
+ # @param [Hash] opts the optional parameters
837
+ # @return [RecordingListDTO]
838
+ def search_recordings_granular_abstraction(search_recording_granular_abstraction_dto, opts = {})
839
+ data, _status_code, _headers = search_recordings_granular_abstraction_with_http_info(search_recording_granular_abstraction_dto, opts)
840
+ data
841
+ end
842
+
843
+ # Recordings by abstracted wordings and granular search options.
844
+ # @param search_recording_granular_abstraction_dto [Array<SearchRecordingGranularAbstractionDTO>]
845
+ # @param [Hash] opts the optional parameters
846
+ # @return [Array<(RecordingListDTO, Integer, Hash)>] RecordingListDTO data, response status code and response headers
847
+ def search_recordings_granular_abstraction_with_http_info(search_recording_granular_abstraction_dto, opts = {})
848
+ if @api_client.config.debugging
849
+ @api_client.config.logger.debug 'Calling API: RecordingApi.search_recordings_granular_abstraction ...'
850
+ end
851
+ # verify the required parameter 'search_recording_granular_abstraction_dto' is set
852
+ if @api_client.config.client_side_validation && search_recording_granular_abstraction_dto.nil?
853
+ fail ArgumentError, "Missing the required parameter 'search_recording_granular_abstraction_dto' when calling RecordingApi.search_recordings_granular_abstraction"
854
+ end
855
+ # resource path
856
+ local_var_path = '/api/v1/public/recording/searchGranularAbstraction'
857
+
858
+ # query parameters
859
+ query_params = opts[:query_params] || {}
860
+
861
+ # header parameters
862
+ header_params = opts[:header_params] || {}
863
+ # HTTP header 'Accept' (if needed)
864
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
865
+ # HTTP header 'Content-Type'
866
+ content_type = @api_client.select_header_content_type(['application/json'])
867
+ if !content_type.nil?
868
+ header_params['Content-Type'] = content_type
869
+ end
870
+
871
+ # form parameters
872
+ form_params = opts[:form_params] || {}
873
+
874
+ # http body (model)
875
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(search_recording_granular_abstraction_dto)
876
+
877
+ # return_type
878
+ return_type = opts[:debug_return_type] || 'RecordingListDTO'
879
+
880
+ # auth_names
881
+ auth_names = opts[:debug_auth_names] || ['bearer-jwt']
882
+
883
+ new_options = opts.merge(
884
+ :operation => :"RecordingApi.search_recordings_granular_abstraction",
885
+ :header_params => header_params,
886
+ :query_params => query_params,
887
+ :form_params => form_params,
888
+ :body => post_body,
889
+ :auth_names => auth_names,
890
+ :return_type => return_type
891
+ )
892
+
893
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
894
+ if @api_client.config.debugging
895
+ @api_client.config.logger.debug "API called: RecordingApi#search_recordings_granular_abstraction\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
896
+ end
897
+ return data, status_code, headers
898
+ end
899
+ end
900
+ end