songtradr_api_client_ruby 1.12.21

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 (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