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,481 @@
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 'date'
14
+ require 'time'
15
+
16
+ module SongtradrApiClientRuby
17
+ # All details on a user.
18
+ class UserDTO
19
+ attr_accessor :username
20
+
21
+ attr_accessor :email_address
22
+
23
+ attr_accessor :company_name
24
+
25
+ attr_accessor :is_admin
26
+
27
+ attr_accessor :full_search_allowed
28
+
29
+ attr_accessor :voice_search_allowed
30
+
31
+ attr_accessor :recording_detail_allowed
32
+
33
+ attr_accessor :artist_detail_allowed
34
+
35
+ attr_accessor :playlist_prediction_allowed
36
+
37
+ attr_accessor :widgets_allowed
38
+
39
+ attr_accessor :signup_allowed
40
+
41
+ attr_accessor :upload_allowed
42
+
43
+ attr_accessor :fingerprint_allowed
44
+
45
+ attr_accessor :audiotagging_allowed
46
+
47
+ attr_accessor :b2b_allowed
48
+
49
+ attr_accessor :editor_allowed
50
+
51
+ attr_accessor :reduced_musical_features
52
+
53
+ attr_accessor :confirmed
54
+
55
+ attr_accessor :language
56
+
57
+ attr_accessor :admin
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'username' => :'username',
63
+ :'email_address' => :'emailAddress',
64
+ :'company_name' => :'companyName',
65
+ :'is_admin' => :'isAdmin',
66
+ :'full_search_allowed' => :'fullSearchAllowed',
67
+ :'voice_search_allowed' => :'voiceSearchAllowed',
68
+ :'recording_detail_allowed' => :'recordingDetailAllowed',
69
+ :'artist_detail_allowed' => :'artistDetailAllowed',
70
+ :'playlist_prediction_allowed' => :'playlistPredictionAllowed',
71
+ :'widgets_allowed' => :'widgetsAllowed',
72
+ :'signup_allowed' => :'signupAllowed',
73
+ :'upload_allowed' => :'uploadAllowed',
74
+ :'fingerprint_allowed' => :'fingerprintAllowed',
75
+ :'audiotagging_allowed' => :'audiotaggingAllowed',
76
+ :'b2b_allowed' => :'b2bAllowed',
77
+ :'editor_allowed' => :'editorAllowed',
78
+ :'reduced_musical_features' => :'reducedMusicalFeatures',
79
+ :'confirmed' => :'confirmed',
80
+ :'language' => :'language',
81
+ :'admin' => :'admin'
82
+ }
83
+ end
84
+
85
+ # Returns all the JSON keys this model knows about
86
+ def self.acceptable_attributes
87
+ attribute_map.values
88
+ end
89
+
90
+ # Attribute type mapping.
91
+ def self.openapi_types
92
+ {
93
+ :'username' => :'String',
94
+ :'email_address' => :'String',
95
+ :'company_name' => :'String',
96
+ :'is_admin' => :'Boolean',
97
+ :'full_search_allowed' => :'Boolean',
98
+ :'voice_search_allowed' => :'Boolean',
99
+ :'recording_detail_allowed' => :'Boolean',
100
+ :'artist_detail_allowed' => :'Boolean',
101
+ :'playlist_prediction_allowed' => :'Boolean',
102
+ :'widgets_allowed' => :'Boolean',
103
+ :'signup_allowed' => :'Boolean',
104
+ :'upload_allowed' => :'Boolean',
105
+ :'fingerprint_allowed' => :'Boolean',
106
+ :'audiotagging_allowed' => :'Boolean',
107
+ :'b2b_allowed' => :'Boolean',
108
+ :'editor_allowed' => :'Boolean',
109
+ :'reduced_musical_features' => :'Boolean',
110
+ :'confirmed' => :'Boolean',
111
+ :'language' => :'String',
112
+ :'admin' => :'Boolean'
113
+ }
114
+ end
115
+
116
+ # List of attributes with nullable: true
117
+ def self.openapi_nullable
118
+ Set.new([
119
+ ])
120
+ end
121
+
122
+ # Initializes the object
123
+ # @param [Hash] attributes Model attributes in the form of hash
124
+ def initialize(attributes = {})
125
+ if (!attributes.is_a?(Hash))
126
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SongtradrApiClientRuby::UserDTO` initialize method"
127
+ end
128
+
129
+ # check to see if the attribute exists and convert string to symbol for hash key
130
+ attributes = attributes.each_with_object({}) { |(k, v), h|
131
+ if (!self.class.attribute_map.key?(k.to_sym))
132
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SongtradrApiClientRuby::UserDTO`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
133
+ end
134
+ h[k.to_sym] = v
135
+ }
136
+
137
+ if attributes.key?(:'username')
138
+ self.username = attributes[:'username']
139
+ end
140
+
141
+ if attributes.key?(:'email_address')
142
+ self.email_address = attributes[:'email_address']
143
+ end
144
+
145
+ if attributes.key?(:'company_name')
146
+ self.company_name = attributes[:'company_name']
147
+ end
148
+
149
+ if attributes.key?(:'is_admin')
150
+ self.is_admin = attributes[:'is_admin']
151
+ end
152
+
153
+ if attributes.key?(:'full_search_allowed')
154
+ self.full_search_allowed = attributes[:'full_search_allowed']
155
+ end
156
+
157
+ if attributes.key?(:'voice_search_allowed')
158
+ self.voice_search_allowed = attributes[:'voice_search_allowed']
159
+ end
160
+
161
+ if attributes.key?(:'recording_detail_allowed')
162
+ self.recording_detail_allowed = attributes[:'recording_detail_allowed']
163
+ end
164
+
165
+ if attributes.key?(:'artist_detail_allowed')
166
+ self.artist_detail_allowed = attributes[:'artist_detail_allowed']
167
+ end
168
+
169
+ if attributes.key?(:'playlist_prediction_allowed')
170
+ self.playlist_prediction_allowed = attributes[:'playlist_prediction_allowed']
171
+ end
172
+
173
+ if attributes.key?(:'widgets_allowed')
174
+ self.widgets_allowed = attributes[:'widgets_allowed']
175
+ end
176
+
177
+ if attributes.key?(:'signup_allowed')
178
+ self.signup_allowed = attributes[:'signup_allowed']
179
+ end
180
+
181
+ if attributes.key?(:'upload_allowed')
182
+ self.upload_allowed = attributes[:'upload_allowed']
183
+ end
184
+
185
+ if attributes.key?(:'fingerprint_allowed')
186
+ self.fingerprint_allowed = attributes[:'fingerprint_allowed']
187
+ end
188
+
189
+ if attributes.key?(:'audiotagging_allowed')
190
+ self.audiotagging_allowed = attributes[:'audiotagging_allowed']
191
+ end
192
+
193
+ if attributes.key?(:'b2b_allowed')
194
+ self.b2b_allowed = attributes[:'b2b_allowed']
195
+ end
196
+
197
+ if attributes.key?(:'editor_allowed')
198
+ self.editor_allowed = attributes[:'editor_allowed']
199
+ end
200
+
201
+ if attributes.key?(:'reduced_musical_features')
202
+ self.reduced_musical_features = attributes[:'reduced_musical_features']
203
+ end
204
+
205
+ if attributes.key?(:'confirmed')
206
+ self.confirmed = attributes[:'confirmed']
207
+ end
208
+
209
+ if attributes.key?(:'language')
210
+ self.language = attributes[:'language']
211
+ end
212
+
213
+ if attributes.key?(:'admin')
214
+ self.admin = attributes[:'admin']
215
+ end
216
+ end
217
+
218
+ # Show invalid properties with the reasons. Usually used together with valid?
219
+ # @return Array for valid properties with the reasons
220
+ def list_invalid_properties
221
+ invalid_properties = Array.new
222
+ if @username.nil?
223
+ invalid_properties.push('invalid value for "username", username cannot be nil.')
224
+ end
225
+
226
+ if @email_address.nil?
227
+ invalid_properties.push('invalid value for "email_address", email_address cannot be nil.')
228
+ end
229
+
230
+ if @is_admin.nil?
231
+ invalid_properties.push('invalid value for "is_admin", is_admin cannot be nil.')
232
+ end
233
+
234
+ if @full_search_allowed.nil?
235
+ invalid_properties.push('invalid value for "full_search_allowed", full_search_allowed cannot be nil.')
236
+ end
237
+
238
+ if @voice_search_allowed.nil?
239
+ invalid_properties.push('invalid value for "voice_search_allowed", voice_search_allowed cannot be nil.')
240
+ end
241
+
242
+ if @recording_detail_allowed.nil?
243
+ invalid_properties.push('invalid value for "recording_detail_allowed", recording_detail_allowed cannot be nil.')
244
+ end
245
+
246
+ if @artist_detail_allowed.nil?
247
+ invalid_properties.push('invalid value for "artist_detail_allowed", artist_detail_allowed cannot be nil.')
248
+ end
249
+
250
+ if @playlist_prediction_allowed.nil?
251
+ invalid_properties.push('invalid value for "playlist_prediction_allowed", playlist_prediction_allowed cannot be nil.')
252
+ end
253
+
254
+ if @widgets_allowed.nil?
255
+ invalid_properties.push('invalid value for "widgets_allowed", widgets_allowed cannot be nil.')
256
+ end
257
+
258
+ if @signup_allowed.nil?
259
+ invalid_properties.push('invalid value for "signup_allowed", signup_allowed cannot be nil.')
260
+ end
261
+
262
+ if @upload_allowed.nil?
263
+ invalid_properties.push('invalid value for "upload_allowed", upload_allowed cannot be nil.')
264
+ end
265
+
266
+ if @fingerprint_allowed.nil?
267
+ invalid_properties.push('invalid value for "fingerprint_allowed", fingerprint_allowed cannot be nil.')
268
+ end
269
+
270
+ if @audiotagging_allowed.nil?
271
+ invalid_properties.push('invalid value for "audiotagging_allowed", audiotagging_allowed cannot be nil.')
272
+ end
273
+
274
+ if @b2b_allowed.nil?
275
+ invalid_properties.push('invalid value for "b2b_allowed", b2b_allowed cannot be nil.')
276
+ end
277
+
278
+ if @editor_allowed.nil?
279
+ invalid_properties.push('invalid value for "editor_allowed", editor_allowed cannot be nil.')
280
+ end
281
+
282
+ if @reduced_musical_features.nil?
283
+ invalid_properties.push('invalid value for "reduced_musical_features", reduced_musical_features cannot be nil.')
284
+ end
285
+
286
+ if @confirmed.nil?
287
+ invalid_properties.push('invalid value for "confirmed", confirmed cannot be nil.')
288
+ end
289
+
290
+ if @language.nil?
291
+ invalid_properties.push('invalid value for "language", language cannot be nil.')
292
+ end
293
+
294
+ invalid_properties
295
+ end
296
+
297
+ # Check to see if the all the properties in the model are valid
298
+ # @return true if the model is valid
299
+ def valid?
300
+ return false if @username.nil?
301
+ return false if @email_address.nil?
302
+ return false if @is_admin.nil?
303
+ return false if @full_search_allowed.nil?
304
+ return false if @voice_search_allowed.nil?
305
+ return false if @recording_detail_allowed.nil?
306
+ return false if @artist_detail_allowed.nil?
307
+ return false if @playlist_prediction_allowed.nil?
308
+ return false if @widgets_allowed.nil?
309
+ return false if @signup_allowed.nil?
310
+ return false if @upload_allowed.nil?
311
+ return false if @fingerprint_allowed.nil?
312
+ return false if @audiotagging_allowed.nil?
313
+ return false if @b2b_allowed.nil?
314
+ return false if @editor_allowed.nil?
315
+ return false if @reduced_musical_features.nil?
316
+ return false if @confirmed.nil?
317
+ return false if @language.nil?
318
+ true
319
+ end
320
+
321
+ # Checks equality by comparing each attribute.
322
+ # @param [Object] Object to be compared
323
+ def ==(o)
324
+ return true if self.equal?(o)
325
+ self.class == o.class &&
326
+ username == o.username &&
327
+ email_address == o.email_address &&
328
+ company_name == o.company_name &&
329
+ is_admin == o.is_admin &&
330
+ full_search_allowed == o.full_search_allowed &&
331
+ voice_search_allowed == o.voice_search_allowed &&
332
+ recording_detail_allowed == o.recording_detail_allowed &&
333
+ artist_detail_allowed == o.artist_detail_allowed &&
334
+ playlist_prediction_allowed == o.playlist_prediction_allowed &&
335
+ widgets_allowed == o.widgets_allowed &&
336
+ signup_allowed == o.signup_allowed &&
337
+ upload_allowed == o.upload_allowed &&
338
+ fingerprint_allowed == o.fingerprint_allowed &&
339
+ audiotagging_allowed == o.audiotagging_allowed &&
340
+ b2b_allowed == o.b2b_allowed &&
341
+ editor_allowed == o.editor_allowed &&
342
+ reduced_musical_features == o.reduced_musical_features &&
343
+ confirmed == o.confirmed &&
344
+ language == o.language &&
345
+ admin == o.admin
346
+ end
347
+
348
+ # @see the `==` method
349
+ # @param [Object] Object to be compared
350
+ def eql?(o)
351
+ self == o
352
+ end
353
+
354
+ # Calculates hash code according to all attributes.
355
+ # @return [Integer] Hash code
356
+ def hash
357
+ [username, email_address, company_name, is_admin, full_search_allowed, voice_search_allowed, recording_detail_allowed, artist_detail_allowed, playlist_prediction_allowed, widgets_allowed, signup_allowed, upload_allowed, fingerprint_allowed, audiotagging_allowed, b2b_allowed, editor_allowed, reduced_musical_features, confirmed, language, admin].hash
358
+ end
359
+
360
+ # Builds the object from hash
361
+ # @param [Hash] attributes Model attributes in the form of hash
362
+ # @return [Object] Returns the model itself
363
+ def self.build_from_hash(attributes)
364
+ new.build_from_hash(attributes)
365
+ end
366
+
367
+ # Builds the object from hash
368
+ # @param [Hash] attributes Model attributes in the form of hash
369
+ # @return [Object] Returns the model itself
370
+ def build_from_hash(attributes)
371
+ return nil unless attributes.is_a?(Hash)
372
+ attributes = attributes.transform_keys(&:to_sym)
373
+ self.class.openapi_types.each_pair do |key, type|
374
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
375
+ self.send("#{key}=", nil)
376
+ elsif type =~ /\AArray<(.*)>/i
377
+ # check to ensure the input is an array given that the attribute
378
+ # is documented as an array but the input is not
379
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
380
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
381
+ end
382
+ elsif !attributes[self.class.attribute_map[key]].nil?
383
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
384
+ end
385
+ end
386
+
387
+ self
388
+ end
389
+
390
+ # Deserializes the data based on type
391
+ # @param string type Data type
392
+ # @param string value Value to be deserialized
393
+ # @return [Object] Deserialized data
394
+ def _deserialize(type, value)
395
+ case type.to_sym
396
+ when :Time
397
+ Time.parse(value)
398
+ when :Date
399
+ Date.parse(value)
400
+ when :String
401
+ value.to_s
402
+ when :Integer
403
+ value.to_i
404
+ when :Float
405
+ value.to_f
406
+ when :Boolean
407
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
408
+ true
409
+ else
410
+ false
411
+ end
412
+ when :Object
413
+ # generic object (usually a Hash), return directly
414
+ value
415
+ when /\AArray<(?<inner_type>.+)>\z/
416
+ inner_type = Regexp.last_match[:inner_type]
417
+ value.map { |v| _deserialize(inner_type, v) }
418
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
419
+ k_type = Regexp.last_match[:k_type]
420
+ v_type = Regexp.last_match[:v_type]
421
+ {}.tap do |hash|
422
+ value.each do |k, v|
423
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
424
+ end
425
+ end
426
+ else # model
427
+ # models (e.g. Pet) or oneOf
428
+ klass = SongtradrApiClientRuby.const_get(type)
429
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
430
+ end
431
+ end
432
+
433
+ # Returns the string representation of the object
434
+ # @return [String] String presentation of the object
435
+ def to_s
436
+ to_hash.to_s
437
+ end
438
+
439
+ # to_body is an alias to to_hash (backward compatibility)
440
+ # @return [Hash] Returns the object in the form of hash
441
+ def to_body
442
+ to_hash
443
+ end
444
+
445
+ # Returns the object in the form of hash
446
+ # @return [Hash] Returns the object in the form of hash
447
+ def to_hash
448
+ hash = {}
449
+ self.class.attribute_map.each_pair do |attr, param|
450
+ value = self.send(attr)
451
+ if value.nil?
452
+ is_nullable = self.class.openapi_nullable.include?(attr)
453
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
454
+ end
455
+
456
+ hash[param] = _to_hash(value)
457
+ end
458
+ hash
459
+ end
460
+
461
+ # Outputs non-array value in the form of hash
462
+ # For object, use to_hash. Otherwise, just return the value
463
+ # @param [Object] value Any valid value
464
+ # @return [Hash] Returns the value in the form of hash
465
+ def _to_hash(value)
466
+ if value.is_a?(Array)
467
+ value.compact.map { |v| _to_hash(v) }
468
+ elsif value.is_a?(Hash)
469
+ {}.tap do |hash|
470
+ value.each { |k, v| hash[k] = _to_hash(v) }
471
+ end
472
+ elsif value.respond_to? :to_hash
473
+ value.to_hash
474
+ else
475
+ value
476
+ end
477
+ end
478
+
479
+ end
480
+
481
+ end
@@ -0,0 +1,15 @@
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
+ module SongtradrApiClientRuby
14
+ VERSION = '1.12.21'
15
+ end
@@ -0,0 +1,108 @@
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
+ # Common files
14
+ require 'songtradr_api_client_ruby/api_client'
15
+ require 'songtradr_api_client_ruby/api_error'
16
+ require 'songtradr_api_client_ruby/version'
17
+ require 'songtradr_api_client_ruby/configuration'
18
+
19
+ # Models
20
+ require 'songtradr_api_client_ruby/models/category_medium_dto'
21
+ require 'songtradr_api_client_ruby/models/category_minimal_dto'
22
+ require 'songtradr_api_client_ruby/models/config_access_dto'
23
+ require 'songtradr_api_client_ruby/models/config_identifier_dto'
24
+ require 'songtradr_api_client_ruby/models/contributor_type_dto'
25
+ require 'songtradr_api_client_ruby/models/error_response'
26
+ require 'songtradr_api_client_ruby/models/field_summary_dto'
27
+ require 'songtradr_api_client_ruby/models/file_dto'
28
+ require 'songtradr_api_client_ruby/models/file_list_dto'
29
+ require 'songtradr_api_client_ruby/models/file_minimal_with_url_dto'
30
+ require 'songtradr_api_client_ruby/models/file_small_dto'
31
+ require 'songtradr_api_client_ruby/models/file_upload_dto'
32
+ require 'songtradr_api_client_ruby/models/file_w_ith_url_dto'
33
+ require 'songtradr_api_client_ruby/models/files_summary_dto'
34
+ require 'songtradr_api_client_ruby/models/forgot_password_dto'
35
+ require 'songtradr_api_client_ruby/models/genre_dto'
36
+ require 'songtradr_api_client_ruby/models/genre_minimal_dto'
37
+ require 'songtradr_api_client_ruby/models/genres_summary_dto'
38
+ require 'songtradr_api_client_ruby/models/init_put_recording_audio_dto'
39
+ require 'songtradr_api_client_ruby/models/jwt_token_dto'
40
+ require 'songtradr_api_client_ruby/models/login_dto'
41
+ require 'songtradr_api_client_ruby/models/musical_features_dto'
42
+ require 'songtradr_api_client_ruby/models/p_line_dto'
43
+ require 'songtradr_api_client_ruby/models/party_large_dto'
44
+ require 'songtradr_api_client_ruby/models/party_small_dto'
45
+ require 'songtradr_api_client_ruby/models/playlist_large_dto'
46
+ require 'songtradr_api_client_ruby/models/product_medium_dto'
47
+ require 'songtradr_api_client_ruby/models/product_party_dto'
48
+ require 'songtradr_api_client_ruby/models/recording_for_similarity_search_dto'
49
+ require 'songtradr_api_client_ruby/models/recording_genre_prediction_dto'
50
+ require 'songtradr_api_client_ruby/models/recording_large_dto'
51
+ require 'songtradr_api_client_ruby/models/recording_list_dto'
52
+ require 'songtradr_api_client_ruby/models/recording_medium_dto'
53
+ require 'songtradr_api_client_ruby/models/recording_minimal_with_musical_features_dto'
54
+ require 'songtradr_api_client_ruby/models/recording_minimal_with_taggrams_dto'
55
+ require 'songtradr_api_client_ruby/models/recording_minimal_with_tagstrengths_dto'
56
+ require 'songtradr_api_client_ruby/models/recording_party_dto'
57
+ require 'songtradr_api_client_ruby/models/recording_playlist_dto'
58
+ require 'songtradr_api_client_ruby/models/recording_small_dto'
59
+ require 'songtradr_api_client_ruby/models/recording_tag_small_dto'
60
+ require 'songtradr_api_client_ruby/models/save_file_recording_dto'
61
+ require 'songtradr_api_client_ruby/models/save_playlist_dto'
62
+ require 'songtradr_api_client_ruby/models/save_recording_genre_dto'
63
+ require 'songtradr_api_client_ruby/models/save_recording_party_dto'
64
+ require 'songtradr_api_client_ruby/models/save_recording_playlist_dto'
65
+ require 'songtradr_api_client_ruby/models/save_recording_tag_dto'
66
+ require 'songtradr_api_client_ruby/models/save_referrer_dto'
67
+ require 'songtradr_api_client_ruby/models/save_taggrams_dto'
68
+ require 'songtradr_api_client_ruby/models/save_user_dto'
69
+ require 'songtradr_api_client_ruby/models/search_filter_values_dto'
70
+ require 'songtradr_api_client_ruby/models/search_recording_granular_abstraction_dto'
71
+ require 'songtradr_api_client_ruby/models/search_recording_granular_dto'
72
+ require 'songtradr_api_client_ruby/models/sign_up_dto'
73
+ require 'songtradr_api_client_ruby/models/tag_dto'
74
+ require 'songtradr_api_client_ruby/models/tag_small_dto'
75
+ require 'songtradr_api_client_ruby/models/taggram_dto'
76
+ require 'songtradr_api_client_ruby/models/tags_summary_dto'
77
+ require 'songtradr_api_client_ruby/models/tagstrength_dto'
78
+ require 'songtradr_api_client_ruby/models/title_dto'
79
+ require 'songtradr_api_client_ruby/models/token_request'
80
+ require 'songtradr_api_client_ruby/models/track_to_medium_product_dto'
81
+ require 'songtradr_api_client_ruby/models/update_password_dto'
82
+ require 'songtradr_api_client_ruby/models/usage_dto'
83
+ require 'songtradr_api_client_ruby/models/user_dto'
84
+
85
+ # APIs
86
+ require 'songtradr_api_client_ruby/api/allowed_values_api'
87
+ require 'songtradr_api_client_ruby/api/party_api'
88
+ require 'songtradr_api_client_ruby/api/playlist_api'
89
+ require 'songtradr_api_client_ruby/api/recording_api'
90
+ require 'songtradr_api_client_ruby/api/user_api'
91
+
92
+ module SongtradrApiClientRuby
93
+ class << self
94
+ # Customize default settings for the SDK using block.
95
+ # SongtradrApiClientRuby.configure do |config|
96
+ # config.username = "xxx"
97
+ # config.password = "xxx"
98
+ # end
99
+ # If no block given, return the default Configuration object.
100
+ def configure
101
+ if block_given?
102
+ yield(Configuration.default)
103
+ else
104
+ Configuration.default
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,10 @@
1
+ library: faraday
2
+ moduleName: SongtradrApiClientRuby
3
+ gemHomepage: https://github.com/songtradr/musicube-backend
4
+ gemAuthor: songtradr
5
+ gemAuthorEmail: daryl.findlay@songtradr.com
6
+ gemSummary: Basic client for Songtradr API, generated with openapi-generator
7
+ gemLicense: MIT
8
+ inputSpec: https://api.songtradr.com/v3/api-docs
9
+ # gemVersion: this is appended during workflow
10
+ gemVersion: 1.12.21
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ =begin
4
+ #Songtradr API
5
+
6
+ #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.
7
+
8
+ The version of the OpenAPI document: 1.12.21
9
+ Contact: info@songtradr.com
10
+ Generated by: https://openapi-generator.tech
11
+ OpenAPI Generator version: 7.0.0-SNAPSHOT
12
+
13
+ =end
14
+
15
+ $:.push File.expand_path("../lib", __FILE__)
16
+ require "songtradr_api_client_ruby/version"
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = "songtradr_api_client_ruby"
20
+ s.version = SongtradrApiClientRuby::VERSION
21
+ s.platform = Gem::Platform::RUBY
22
+ s.authors = ["songtradr"]
23
+ s.email = ["daryl.findlay@songtradr.com"]
24
+ s.homepage = "https://github.com/songtradr/musicube-backend"
25
+ s.summary = "Basic client for Songtradr API, generated with openapi-generator"
26
+ s.description = "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."
27
+ s.license = "MIT"
28
+ s.required_ruby_version = ">= 2.7"
29
+
30
+ s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
31
+ s.add_runtime_dependency 'faraday-multipart'
32
+
33
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
34
+
35
+ s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
36
+ s.test_files = `find spec/*`.split("\n")
37
+ s.executables = []
38
+ s.require_paths = ["lib"]
39
+ end