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