flat_api 0.1.2 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (409) hide show
  1. checksums.yaml +5 -5
  2. data/lib/flat_api/api/account_api.rb +31 -21
  3. data/lib/flat_api/api/class_api.rb +1405 -405
  4. data/lib/flat_api/api/collection_api.rb +684 -0
  5. data/lib/flat_api/api/edu_resources_api.rb +851 -0
  6. data/lib/flat_api/api/group_api.rb +81 -55
  7. data/lib/flat_api/api/organization_api.rb +524 -180
  8. data/lib/flat_api/api/score_api.rb +1034 -570
  9. data/lib/flat_api/api/task_api.rb +85 -0
  10. data/lib/flat_api/api/user_api.rb +114 -76
  11. data/lib/flat_api/api_client.rb +112 -107
  12. data/lib/flat_api/api_error.rb +24 -4
  13. data/lib/flat_api/configuration.rb +105 -16
  14. data/lib/flat_api/models/api_access_token.rb +268 -0
  15. data/lib/flat_api/models/app_scopes.rb +59 -0
  16. data/lib/flat_api/models/assignment.rb +192 -101
  17. data/lib/flat_api/models/assignment_capabilities.rb +283 -0
  18. data/lib/flat_api/models/assignment_capabilities_can_publish_in_class_error.rb +240 -0
  19. data/lib/flat_api/models/assignment_copy.rb +80 -169
  20. data/lib/flat_api/models/assignment_copy_response.rb +430 -0
  21. data/lib/flat_api/models/assignment_copy_to_class.rb +243 -0
  22. data/lib/flat_api/models/assignment_copy_to_resource_library.rb +233 -0
  23. data/lib/flat_api/models/assignment_submission.rb +249 -66
  24. data/lib/flat_api/models/assignment_submission_comment.rb +276 -0
  25. data/lib/flat_api/models/assignment_submission_comment_creation.rb +223 -0
  26. data/lib/flat_api/models/assignment_submission_comments.rb +225 -0
  27. data/lib/flat_api/models/assignment_submission_history.rb +384 -0
  28. data/lib/flat_api/models/assignment_submission_history_attachment.rb +235 -0
  29. data/lib/flat_api/models/assignment_submission_history_state.rb +43 -0
  30. data/lib/flat_api/models/assignment_submission_lti.rb +222 -0
  31. data/lib/flat_api/models/assignment_submission_playback_inner.rb +240 -0
  32. data/lib/flat_api/models/assignment_submission_state.rb +42 -0
  33. data/lib/flat_api/models/assignment_submission_update.rb +150 -50
  34. data/lib/flat_api/models/assignment_type.rb +44 -0
  35. data/lib/flat_api/models/assignment_update.rb +407 -0
  36. data/lib/flat_api/models/class_assignment.rb +613 -0
  37. data/lib/flat_api/models/class_assignment_all_of_canvas.rb +226 -0
  38. data/lib/flat_api/models/class_assignment_all_of_lti.rb +216 -0
  39. data/lib/flat_api/models/class_assignment_all_of_mfc.rb +226 -0
  40. data/lib/flat_api/models/class_assignment_update.rb +509 -0
  41. data/lib/flat_api/models/class_assignment_update_all_of_google_classroom.rb +217 -0
  42. data/lib/flat_api/models/class_assignment_update_all_of_microsoft_graph.rb +219 -0
  43. data/lib/flat_api/models/class_attachment_creation.rb +110 -41
  44. data/lib/flat_api/models/class_creation.rb +144 -43
  45. data/lib/flat_api/models/class_details.rb +175 -60
  46. data/lib/flat_api/models/class_details_canvas.rb +61 -34
  47. data/lib/flat_api/models/class_details_clever.rb +76 -48
  48. data/lib/flat_api/models/class_details_google_classroom.rb +66 -59
  49. data/lib/flat_api/models/class_details_google_drive.rb +63 -36
  50. data/lib/flat_api/models/class_details_issues.rb +218 -0
  51. data/lib/flat_api/models/class_details_issues_sync_inner.rb +270 -0
  52. data/lib/flat_api/models/class_details_lti.rb +65 -38
  53. data/lib/flat_api/models/class_details_mfc.rb +226 -0
  54. data/lib/flat_api/models/class_details_microsoft_graph.rb +215 -0
  55. data/lib/flat_api/models/class_grade_level.rb +43 -0
  56. data/lib/flat_api/models/class_roles.rb +18 -9
  57. data/lib/flat_api/models/class_state.rb +18 -9
  58. data/lib/flat_api/models/class_update.rb +144 -42
  59. data/lib/flat_api/models/collection.rb +373 -0
  60. data/lib/flat_api/models/collection_app.rb +236 -0
  61. data/lib/flat_api/models/collection_capabilities.rb +291 -0
  62. data/lib/flat_api/models/collection_creation.rb +288 -0
  63. data/lib/flat_api/models/collection_modification.rb +275 -0
  64. data/lib/flat_api/models/collection_privacy.rb +39 -0
  65. data/lib/flat_api/models/collection_type.rb +44 -0
  66. data/lib/flat_api/models/edu_library.rb +292 -0
  67. data/lib/flat_api/models/edu_resource.rb +366 -0
  68. data/lib/flat_api/models/edu_resource_capabilities.rb +236 -0
  69. data/lib/flat_api/models/edu_resource_copy.rb +223 -0
  70. data/lib/flat_api/models/edu_resource_creation.rb +301 -0
  71. data/lib/flat_api/models/edu_resource_folder.rb +216 -0
  72. data/lib/flat_api/models/edu_resource_lti_link.rb +223 -0
  73. data/lib/flat_api/models/edu_resource_move.rb +223 -0
  74. data/lib/flat_api/models/edu_resource_privacy.rb +41 -0
  75. data/lib/flat_api/models/edu_resource_resource.rb +105 -0
  76. data/lib/flat_api/models/edu_resource_type.rb +40 -0
  77. data/lib/flat_api/models/edu_resource_update.rb +277 -0
  78. data/lib/flat_api/models/edu_resource_use_in_class.rb +233 -0
  79. data/lib/flat_api/models/flat_error_response.rb +79 -38
  80. data/lib/flat_api/models/flat_locales.rb +30 -10
  81. data/lib/flat_api/models/google_classroom_coursework.rb +76 -38
  82. data/lib/flat_api/models/google_classroom_submission.rb +84 -36
  83. data/lib/flat_api/models/group.rb +72 -44
  84. data/lib/flat_api/models/group_details.rb +92 -43
  85. data/lib/flat_api/models/group_type.rb +18 -9
  86. data/lib/flat_api/models/license_mode.rb +18 -9
  87. data/lib/flat_api/models/license_sources.rb +21 -9
  88. data/lib/flat_api/models/lms_name.rb +19 -9
  89. data/lib/flat_api/models/lti_credentials.rb +95 -46
  90. data/lib/flat_api/models/lti_credentials_creation.rb +91 -38
  91. data/lib/flat_api/models/media_attachment.rb +167 -70
  92. data/lib/flat_api/models/media_score_sharing_mode.rb +19 -9
  93. data/lib/flat_api/models/microsoft_graph_assignment.rb +248 -0
  94. data/lib/flat_api/models/microsoft_graph_submission.rb +240 -0
  95. data/lib/flat_api/models/organization_invitation.rb +139 -44
  96. data/lib/flat_api/models/organization_invitation_creation.rb +99 -35
  97. data/lib/flat_api/models/organization_roles.rb +18 -9
  98. data/lib/flat_api/models/organization_user_access_token_creation.rb +225 -0
  99. data/lib/flat_api/models/resource_collaborator.rb +403 -0
  100. data/lib/flat_api/models/{score_collaborator_creation.rb → resource_collaborator_creation.rb} +85 -48
  101. data/lib/flat_api/models/resource_rights.rb +318 -0
  102. data/lib/flat_api/models/score_comment.rb +93 -56
  103. data/lib/flat_api/models/score_comment_context.rb +103 -59
  104. data/lib/flat_api/models/score_comment_creation.rb +70 -41
  105. data/lib/flat_api/models/score_comment_moderation.rb +260 -0
  106. data/lib/flat_api/models/score_comment_update.rb +82 -49
  107. data/lib/flat_api/models/score_comments_counts.rb +67 -40
  108. data/lib/flat_api/models/score_creation.rb +81 -215
  109. data/lib/flat_api/models/score_creation_builder_data.rb +298 -0
  110. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data.rb +230 -0
  111. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_layout_data.rb +322 -0
  112. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data.rb +274 -0
  113. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data_instruments.rb +269 -0
  114. data/lib/flat_api/models/score_creation_common.rb +268 -0
  115. data/lib/flat_api/models/score_creation_file_import.rb +324 -0
  116. data/lib/flat_api/models/score_creation_google_drive_import.rb +291 -0
  117. data/lib/flat_api/models/score_creation_type.rb +19 -9
  118. data/lib/flat_api/models/score_details.rb +274 -83
  119. data/lib/flat_api/models/score_fork.rb +94 -32
  120. data/lib/flat_api/models/score_license.rb +19 -9
  121. data/lib/flat_api/models/score_likes_counts.rb +83 -35
  122. data/lib/flat_api/models/score_modification.rb +175 -52
  123. data/lib/flat_api/models/score_plays_counts.rb +236 -0
  124. data/lib/flat_api/models/score_privacy.rb +18 -9
  125. data/lib/flat_api/models/score_revision.rb +80 -43
  126. data/lib/flat_api/models/score_revision_creation.rb +105 -40
  127. data/lib/flat_api/models/score_revision_statistics.rb +83 -36
  128. data/lib/flat_api/models/score_source.rb +61 -35
  129. data/lib/flat_api/models/score_summary.rb +124 -40
  130. data/lib/flat_api/models/score_track.rb +172 -51
  131. data/lib/flat_api/models/score_track_creation.rb +101 -39
  132. data/lib/flat_api/models/score_track_point.rb +70 -38
  133. data/lib/flat_api/models/score_track_purpose.rb +40 -0
  134. data/lib/flat_api/models/score_track_state.rb +18 -9
  135. data/lib/flat_api/models/score_track_type.rb +18 -9
  136. data/lib/flat_api/models/score_track_update.rb +88 -37
  137. data/lib/flat_api/models/score_views_counts.rb +62 -35
  138. data/lib/flat_api/models/task.rb +364 -0
  139. data/lib/flat_api/models/task_export_options.rb +218 -0
  140. data/lib/flat_api/models/task_progress.rb +226 -0
  141. data/lib/flat_api/models/task_result.rb +226 -0
  142. data/lib/flat_api/models/tutteo_product.rb +42 -0
  143. data/lib/flat_api/models/user_admin_update.rb +219 -41
  144. data/lib/flat_api/models/user_azure_details.rb +235 -0
  145. data/lib/flat_api/models/user_basics.rb +187 -55
  146. data/lib/flat_api/models/user_community_profile_links.rb +272 -0
  147. data/lib/flat_api/models/user_creation.rb +215 -49
  148. data/lib/flat_api/models/user_details.rb +258 -93
  149. data/lib/flat_api/models/user_details_admin.rb +220 -68
  150. data/lib/flat_api/models/user_details_admin_all_of_license.rb +278 -0
  151. data/lib/flat_api/models/user_public.rb +242 -79
  152. data/lib/flat_api/models/user_public_summary.rb +201 -61
  153. data/lib/flat_api/models/user_signin_link.rb +225 -0
  154. data/lib/flat_api/models/user_signin_link_creation.rb +217 -0
  155. data/lib/flat_api/version.rb +5 -5
  156. data/lib/flat_api.rb +87 -15
  157. data/spec/api/account_api_spec.rb +11 -10
  158. data/spec/api/class_api_spec.rb +212 -68
  159. data/spec/api/collection_api_spec.rb +158 -0
  160. data/spec/api/edu_resources_api_spec.rb +181 -0
  161. data/spec/api/group_api_spec.rb +14 -15
  162. data/spec/api/organization_api_spec.rb +78 -39
  163. data/spec/api/score_api_spec.rb +139 -110
  164. data/spec/api/task_api_spec.rb +47 -0
  165. data/spec/api/user_api_spec.rb +28 -26
  166. data/spec/models/api_access_token_spec.rb +66 -0
  167. data/spec/models/app_scopes_spec.rb +30 -0
  168. data/spec/models/assignment_capabilities_can_publish_in_class_error_spec.rb +42 -0
  169. data/spec/models/assignment_capabilities_spec.rb +60 -0
  170. data/spec/models/assignment_copy_response_spec.rb +124 -0
  171. data/spec/models/assignment_copy_spec.rb +13 -23
  172. data/spec/models/assignment_copy_to_class_spec.rb +48 -0
  173. data/spec/models/assignment_copy_to_resource_library_spec.rb +42 -0
  174. data/spec/models/assignment_spec.rb +51 -39
  175. data/spec/models/assignment_submission_comment_creation_spec.rb +36 -0
  176. data/spec/models/assignment_submission_comment_spec.rb +72 -0
  177. data/spec/models/assignment_submission_comments_spec.rb +42 -0
  178. data/spec/models/assignment_submission_history_attachment_spec.rb +48 -0
  179. data/spec/models/assignment_submission_history_spec.rb +112 -0
  180. data/spec/models/assignment_submission_history_state_spec.rb +30 -0
  181. data/spec/models/assignment_submission_lti_spec.rb +36 -0
  182. data/spec/models/assignment_submission_playback_inner_spec.rb +42 -0
  183. data/spec/models/assignment_submission_spec.rb +68 -32
  184. data/spec/models/assignment_submission_state_spec.rb +30 -0
  185. data/spec/models/assignment_submission_update_spec.rb +29 -23
  186. data/spec/models/assignment_type_spec.rb +30 -0
  187. data/spec/models/assignment_update_spec.rb +100 -0
  188. data/spec/models/class_assignment_all_of_canvas_spec.rb +42 -0
  189. data/spec/models/class_assignment_all_of_lti_spec.rb +36 -0
  190. data/spec/models/class_assignment_all_of_mfc_spec.rb +42 -0
  191. data/spec/models/class_assignment_spec.rb +216 -0
  192. data/spec/models/class_assignment_update_all_of_google_classroom_spec.rb +36 -0
  193. data/spec/models/class_assignment_update_all_of_microsoft_graph_spec.rb +36 -0
  194. data/spec/models/class_assignment_update_spec.rb +150 -0
  195. data/spec/models/class_attachment_creation_spec.rb +41 -23
  196. data/spec/models/class_creation_spec.rb +34 -18
  197. data/spec/models/class_details_canvas_spec.rb +12 -18
  198. data/spec/models/class_details_clever_spec.rb +21 -27
  199. data/spec/models/class_details_google_classroom_spec.rb +12 -30
  200. data/spec/models/class_details_google_drive_spec.rb +12 -18
  201. data/spec/models/class_details_issues_spec.rb +36 -0
  202. data/spec/models/class_details_issues_sync_inner_spec.rb +52 -0
  203. data/spec/models/class_details_lti_spec.rb +13 -19
  204. data/spec/models/class_details_mfc_spec.rb +42 -0
  205. data/spec/models/class_details_microsoft_graph_spec.rb +36 -0
  206. data/spec/models/class_details_spec.rb +68 -34
  207. data/spec/models/class_grade_level_spec.rb +30 -0
  208. data/spec/models/class_roles_spec.rb +10 -16
  209. data/spec/models/class_state_spec.rb +10 -16
  210. data/spec/models/class_update_spec.rb +34 -18
  211. data/spec/models/collection_app_spec.rb +48 -0
  212. data/spec/models/collection_capabilities_spec.rb +60 -0
  213. data/spec/models/collection_creation_spec.rb +42 -0
  214. data/spec/models/collection_modification_spec.rb +42 -0
  215. data/spec/models/collection_privacy_spec.rb +30 -0
  216. data/spec/models/collection_spec.rb +114 -0
  217. data/spec/models/collection_type_spec.rb +30 -0
  218. data/spec/models/edu_library_spec.rb +62 -0
  219. data/spec/models/edu_resource_capabilities_spec.rb +48 -0
  220. data/spec/models/edu_resource_copy_spec.rb +36 -0
  221. data/spec/models/edu_resource_creation_spec.rb +48 -0
  222. data/spec/models/edu_resource_folder_spec.rb +36 -0
  223. data/spec/models/edu_resource_lti_link_spec.rb +36 -0
  224. data/spec/models/edu_resource_move_spec.rb +36 -0
  225. data/spec/models/edu_resource_privacy_spec.rb +30 -0
  226. data/spec/models/edu_resource_resource_spec.rb +32 -0
  227. data/spec/models/edu_resource_spec.rb +96 -0
  228. data/spec/models/edu_resource_type_spec.rb +30 -0
  229. data/spec/models/edu_resource_update_spec.rb +42 -0
  230. data/spec/models/edu_resource_use_in_class_spec.rb +42 -0
  231. data/spec/models/flat_error_response_spec.rb +14 -20
  232. data/spec/models/flat_locales_spec.rb +10 -16
  233. data/spec/models/google_classroom_coursework_spec.rb +19 -19
  234. data/spec/models/google_classroom_submission_spec.rb +13 -19
  235. data/spec/models/group_details_spec.rb +17 -23
  236. data/spec/models/group_spec.rb +21 -27
  237. data/spec/models/group_type_spec.rb +10 -16
  238. data/spec/models/license_mode_spec.rb +10 -16
  239. data/spec/models/license_sources_spec.rb +10 -16
  240. data/spec/models/lms_name_spec.rb +10 -16
  241. data/spec/models/lti_credentials_creation_spec.rb +12 -18
  242. data/spec/models/lti_credentials_spec.rb +19 -25
  243. data/spec/models/media_attachment_spec.rb +67 -37
  244. data/spec/models/media_score_sharing_mode_spec.rb +10 -16
  245. data/spec/models/microsoft_graph_assignment_spec.rb +54 -0
  246. data/spec/models/microsoft_graph_submission_spec.rb +42 -0
  247. data/spec/models/organization_invitation_creation_spec.rb +16 -18
  248. data/spec/models/organization_invitation_spec.rb +29 -23
  249. data/spec/models/organization_roles_spec.rb +10 -16
  250. data/spec/models/organization_user_access_token_creation_spec.rb +36 -0
  251. data/spec/models/resource_collaborator_creation_spec.rb +72 -0
  252. data/spec/models/resource_collaborator_spec.rb +112 -0
  253. data/spec/models/resource_rights_spec.rb +64 -0
  254. data/spec/models/score_comment_context_spec.rb +23 -23
  255. data/spec/models/score_comment_creation_spec.rb +16 -22
  256. data/spec/models/score_comment_moderation_spec.rb +46 -0
  257. data/spec/models/score_comment_spec.rb +35 -35
  258. data/spec/models/score_comment_update_spec.rb +14 -20
  259. data/spec/models/score_comments_counts_spec.rb +14 -20
  260. data/spec/models/score_creation_builder_data_all_of_builder_data_layout_data_spec.rb +82 -0
  261. data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_instruments_spec.rb +60 -0
  262. data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_spec.rb +66 -0
  263. data/spec/models/score_creation_builder_data_all_of_builder_data_spec.rb +42 -0
  264. data/spec/models/score_creation_builder_data_spec.rb +60 -0
  265. data/spec/models/score_creation_common_spec.rb +54 -0
  266. data/spec/models/score_creation_file_import_spec.rb +76 -0
  267. data/spec/models/score_creation_google_drive_import_spec.rb +60 -0
  268. data/spec/models/score_creation_spec.rb +12 -52
  269. data/spec/models/score_creation_type_spec.rb +10 -16
  270. data/spec/models/score_details_spec.rb +75 -45
  271. data/spec/models/score_fork_spec.rb +27 -15
  272. data/spec/models/score_license_spec.rb +10 -16
  273. data/spec/models/score_likes_counts_spec.rb +13 -19
  274. data/spec/models/score_modification_spec.rb +51 -21
  275. data/spec/models/score_plays_counts_spec.rb +48 -0
  276. data/spec/models/score_privacy_spec.rb +10 -16
  277. data/spec/models/score_revision_creation_spec.rb +18 -20
  278. data/spec/models/score_revision_spec.rb +23 -23
  279. data/spec/models/score_revision_statistics_spec.rb +24 -18
  280. data/spec/models/score_source_spec.rb +11 -17
  281. data/spec/models/score_summary_spec.rb +16 -22
  282. data/spec/models/score_track_creation_spec.rb +21 -21
  283. data/spec/models/score_track_point_spec.rb +17 -23
  284. data/spec/models/score_track_purpose_spec.rb +30 -0
  285. data/spec/models/score_track_spec.rb +28 -28
  286. data/spec/models/score_track_state_spec.rb +10 -16
  287. data/spec/models/score_track_type_spec.rb +10 -16
  288. data/spec/models/score_track_update_spec.rb +14 -20
  289. data/spec/models/score_views_counts_spec.rb +13 -19
  290. data/spec/models/task_export_options_spec.rb +36 -0
  291. data/spec/models/task_progress_spec.rb +42 -0
  292. data/spec/models/task_result_spec.rb +42 -0
  293. data/spec/models/task_spec.rb +100 -0
  294. data/spec/models/tutteo_product_spec.rb +30 -0
  295. data/spec/models/user_admin_update_spec.rb +36 -18
  296. data/spec/models/user_azure_details_spec.rb +48 -0
  297. data/spec/models/user_basics_spec.rb +47 -25
  298. data/spec/models/user_community_profile_links_spec.rb +66 -0
  299. data/spec/models/user_creation_spec.rb +36 -20
  300. data/spec/models/user_details_admin_all_of_license_spec.rb +60 -0
  301. data/spec/models/user_details_admin_spec.rb +60 -32
  302. data/spec/models/user_details_spec.rb +93 -45
  303. data/spec/models/user_public_spec.rb +71 -37
  304. data/spec/models/user_public_summary_spec.rb +51 -29
  305. data/spec/models/user_signin_link_creation_spec.rb +36 -0
  306. data/spec/models/user_signin_link_spec.rb +42 -0
  307. data/spec/spec_helper.rb +4 -4
  308. metadata +299 -312
  309. data/CHANGELOG.md +0 -13
  310. data/Gemfile +0 -7
  311. data/README.md +0 -249
  312. data/Rakefile +0 -8
  313. data/docs/AccountApi.md +0 -55
  314. data/docs/Assignment.md +0 -18
  315. data/docs/AssignmentCopy.md +0 -8
  316. data/docs/AssignmentCreation.md +0 -12
  317. data/docs/AssignmentSubmission.md +0 -19
  318. data/docs/AssignmentSubmissionUpdate.md +0 -11
  319. data/docs/ClassApi.md +0 -1051
  320. data/docs/ClassAttachmentCreation.md +0 -10
  321. data/docs/ClassCreation.md +0 -9
  322. data/docs/ClassDetails.md +0 -25
  323. data/docs/ClassDetailsCanvas.md +0 -9
  324. data/docs/ClassDetailsClever.md +0 -14
  325. data/docs/ClassDetailsGoogleClassroom.md +0 -11
  326. data/docs/ClassDetailsGoogleDrive.md +0 -9
  327. data/docs/ClassDetailsLti.md +0 -10
  328. data/docs/ClassRoles.md +0 -7
  329. data/docs/ClassState.md +0 -7
  330. data/docs/ClassUpdate.md +0 -9
  331. data/docs/FlatErrorResponse.md +0 -11
  332. data/docs/FlatLocales.md +0 -7
  333. data/docs/GoogleClassroomCoursework.md +0 -10
  334. data/docs/GoogleClassroomSubmission.md +0 -10
  335. data/docs/Group.md +0 -14
  336. data/docs/GroupApi.md +0 -167
  337. data/docs/GroupDetails.md +0 -14
  338. data/docs/GroupType.md +0 -7
  339. data/docs/LicenseMode.md +0 -7
  340. data/docs/LicenseSources.md +0 -7
  341. data/docs/LmsName.md +0 -7
  342. data/docs/LtiCredentials.md +0 -16
  343. data/docs/LtiCredentialsCreation.md +0 -9
  344. data/docs/MediaAttachment.md +0 -23
  345. data/docs/MediaScoreSharingMode.md +0 -7
  346. data/docs/OrganizationApi.md +0 -538
  347. data/docs/OrganizationInvitation.md +0 -14
  348. data/docs/OrganizationInvitationCreation.md +0 -9
  349. data/docs/OrganizationRoles.md +0 -7
  350. data/docs/ScoreApi.md +0 -1605
  351. data/docs/ScoreCollaborator.md +0 -15
  352. data/docs/ScoreCollaboratorCreation.md +0 -13
  353. data/docs/ScoreComment.md +0 -22
  354. data/docs/ScoreCommentContext.md +0 -14
  355. data/docs/ScoreCommentCreation.md +0 -13
  356. data/docs/ScoreCommentUpdate.md +0 -11
  357. data/docs/ScoreCommentsCounts.md +0 -11
  358. data/docs/ScoreCreation.md +0 -13
  359. data/docs/ScoreCreationType.md +0 -7
  360. data/docs/ScoreData.md +0 -7
  361. data/docs/ScoreDataEncoding.md +0 -7
  362. data/docs/ScoreDetails.md +0 -36
  363. data/docs/ScoreFork.md +0 -7
  364. data/docs/ScoreLicense.md +0 -7
  365. data/docs/ScoreLikesCounts.md +0 -10
  366. data/docs/ScoreModification.md +0 -13
  367. data/docs/ScorePrivacy.md +0 -7
  368. data/docs/ScoreRevision.md +0 -14
  369. data/docs/ScoreRevisionCreation.md +0 -11
  370. data/docs/ScoreRevisionStatistics.md +0 -9
  371. data/docs/ScoreRights.md +0 -10
  372. data/docs/ScoreSource.md +0 -8
  373. data/docs/ScoreSummary.md +0 -13
  374. data/docs/ScoreTrack.md +0 -19
  375. data/docs/ScoreTrackCreation.md +0 -12
  376. data/docs/ScoreTrackPoint.md +0 -10
  377. data/docs/ScoreTrackState.md +0 -7
  378. data/docs/ScoreTrackType.md +0 -7
  379. data/docs/ScoreTrackUpdate.md +0 -11
  380. data/docs/ScoreViewsCounts.md +0 -10
  381. data/docs/UserAdminUpdate.md +0 -9
  382. data/docs/UserApi.md +0 -173
  383. data/docs/UserBasics.md +0 -13
  384. data/docs/UserCreation.md +0 -11
  385. data/docs/UserDetails.md +0 -28
  386. data/docs/UserDetailsAdmin.md +0 -20
  387. data/docs/UserDetailsAdminLicense.md +0 -12
  388. data/docs/UserInstruments.md +0 -7
  389. data/docs/UserPublic.md +0 -25
  390. data/docs/UserPublicSummary.md +0 -17
  391. data/flat_api.gemspec +0 -48
  392. data/git_push.sh +0 -55
  393. data/lib/flat_api/models/assignment_creation.rb +0 -230
  394. data/lib/flat_api/models/score_collaborator.rb +0 -263
  395. data/lib/flat_api/models/score_data.rb +0 -179
  396. data/lib/flat_api/models/score_data_encoding.rb +0 -30
  397. data/lib/flat_api/models/score_rights.rb +0 -215
  398. data/lib/flat_api/models/user_details_admin_license.rb +0 -227
  399. data/lib/flat_api/models/user_instruments.rb +0 -179
  400. data/spec/api_client_spec.rb +0 -226
  401. data/spec/configuration_spec.rb +0 -42
  402. data/spec/models/assignment_creation_spec.rb +0 -66
  403. data/spec/models/score_collaborator_creation_spec.rb +0 -72
  404. data/spec/models/score_collaborator_spec.rb +0 -84
  405. data/spec/models/score_data_encoding_spec.rb +0 -36
  406. data/spec/models/score_data_spec.rb +0 -36
  407. data/spec/models/score_rights_spec.rb +0 -48
  408. data/spec/models/user_details_admin_license_spec.rb +0 -66
  409. data/spec/models/user_instruments_spec.rb +0 -36
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Flat API
3
3
 
4
- #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML or MIDI files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and interoduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
4
+ #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
5
5
 
6
- OpenAPI spec version: 2.5.2
6
+ The version of the OpenAPI document: 2.20.0
7
7
  Contact: developers@flat.io
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.4.0-SNAPSHOT
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.3.0
10
10
 
11
11
  =end
12
12
 
@@ -14,8 +14,9 @@ require 'date'
14
14
  require 'json'
15
15
  require 'logger'
16
16
  require 'tempfile'
17
+ require 'time'
17
18
  require 'typhoeus'
18
- require 'uri'
19
+
19
20
 
20
21
  module FlatApi
21
22
  class ApiClient
@@ -31,9 +32,9 @@ module FlatApi
31
32
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
32
33
  def initialize(config = Configuration.default)
33
34
  @config = config
34
- @user_agent = "Swagger-Codegen/#{VERSION}/ruby"
35
+ @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
35
36
  @default_headers = {
36
- 'Content-Type' => "application/json",
37
+ 'Content-Type' => 'application/json',
37
38
  'User-Agent' => @user_agent
38
39
  }
39
40
  end
@@ -44,10 +45,11 @@ module FlatApi
44
45
 
45
46
  # Call an API with given options.
46
47
  #
47
- # @return [Array<(Object, Fixnum, Hash)>] an array of 3 elements:
48
- # the data deserialized from response body (could be nil), response status code and response headers.
48
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
49
+ # the data deserialized from response body (may be a Tempfile or nil), response status code and response headers.
49
50
  def call_api(http_method, path, opts = {})
50
51
  request = build_request(http_method, path, opts)
52
+ tempfile = download_file(request) if opts[:return_type] == 'File'
51
53
  response = request.run
52
54
 
53
55
  if @config.debugging
@@ -69,7 +71,9 @@ module FlatApi
69
71
  end
70
72
  end
71
73
 
72
- if opts[:return_type]
74
+ if opts[:return_type] == 'File'
75
+ data = tempfile
76
+ elsif opts[:return_type]
73
77
  data = deserialize(response, opts[:return_type])
74
78
  else
75
79
  data = nil
@@ -87,12 +91,13 @@ module FlatApi
87
91
  # @option opts [Object] :body HTTP body (JSON/XML)
88
92
  # @return [Typhoeus::Request] A Typhoeus Request
89
93
  def build_request(http_method, path, opts = {})
90
- url = build_request_url(path)
94
+ url = build_request_url(path, opts)
91
95
  http_method = http_method.to_sym.downcase
92
96
 
93
97
  header_params = @default_headers.merge(opts[:header_params] || {})
94
98
  query_params = opts[:query_params] || {}
95
99
  form_params = opts[:form_params] || {}
100
+ follow_location = opts[:follow_location] || true
96
101
 
97
102
  update_params_for_auth! header_params, query_params, opts[:auth_names]
98
103
 
@@ -109,7 +114,8 @@ module FlatApi
109
114
  :ssl_verifyhost => _verify_ssl_host,
110
115
  :sslcert => @config.cert_file,
111
116
  :sslkey => @config.key_file,
112
- :verbose => @config.debugging
117
+ :verbose => @config.debugging,
118
+ :followlocation => follow_location
113
119
  }
114
120
 
115
121
  # set custom cert, if provided
@@ -123,9 +129,78 @@ module FlatApi
123
129
  end
124
130
  end
125
131
 
126
- request = Typhoeus::Request.new(url, req_opts)
127
- download_file(request) if opts[:return_type] == 'File'
128
- request
132
+ Typhoeus::Request.new(url, req_opts)
133
+ end
134
+
135
+ # Builds the HTTP request body
136
+ #
137
+ # @param [Hash] header_params Header parameters
138
+ # @param [Hash] form_params Query parameters
139
+ # @param [Object] body HTTP body (JSON/XML)
140
+ # @return [String] HTTP body data in the form of string
141
+ def build_request_body(header_params, form_params, body)
142
+ # http form
143
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
144
+ header_params['Content-Type'] == 'multipart/form-data'
145
+ data = {}
146
+ form_params.each do |key, value|
147
+ case value
148
+ when ::File, ::Array, nil
149
+ # let typhoeus handle File, Array and nil parameters
150
+ data[key] = value
151
+ else
152
+ data[key] = value.to_s
153
+ end
154
+ end
155
+ elsif body
156
+ data = body.is_a?(String) ? body : body.to_json
157
+ else
158
+ data = nil
159
+ end
160
+ data
161
+ end
162
+
163
+ # Save response body into a file in (the defined) temporary folder, using the filename
164
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
165
+ # The response body is written to the file in chunks in order to handle files which
166
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
167
+ # process can use.
168
+ #
169
+ # @see Configuration#temp_folder_path
170
+ #
171
+ # @return [Tempfile] the tempfile generated
172
+ def download_file(request)
173
+ tempfile = nil
174
+ encoding = nil
175
+ request.on_headers do |response|
176
+ content_disposition = response.headers['Content-Disposition']
177
+ if content_disposition && content_disposition =~ /filename=/i
178
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
179
+ prefix = sanitize_filename(filename)
180
+ else
181
+ prefix = 'download-'
182
+ end
183
+ prefix = prefix + '-' unless prefix.end_with?('-')
184
+ encoding = response.body.encoding
185
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
186
+ end
187
+ request.on_body do |chunk|
188
+ chunk.force_encoding(encoding)
189
+ tempfile.write(chunk)
190
+ end
191
+ # run the request to ensure the tempfile is created successfully before returning it
192
+ request.run
193
+ if tempfile
194
+ tempfile.close
195
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
196
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
197
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
198
+ "explicitly with `tempfile.delete`"
199
+ else
200
+ fail ApiError.new("Failed to create the tempfile based on the HTTP response from the server: #{request.inspect}")
201
+ end
202
+
203
+ tempfile
129
204
  end
130
205
 
131
206
  # Check if the given MIME is a JSON MIME.
@@ -137,24 +212,19 @@ module FlatApi
137
212
  # @param [String] mime MIME
138
213
  # @return [Boolean] True if the MIME is application/json
139
214
  def json_mime?(mime)
140
- (mime == "*/*") || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
215
+ (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
141
216
  end
142
217
 
143
218
  # Deserialize the response to the given return type.
144
219
  #
145
220
  # @param [Response] response HTTP response
146
- # @param [String] return_type some examples: "User", "Array[User]", "Hash[String,Integer]"
221
+ # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
147
222
  def deserialize(response, return_type)
148
223
  body = response.body
149
-
150
- # handle file downloading - return the File instance processed in request callbacks
151
- # note that response body is empty when the file is written in chunks in request on_body callback
152
- return @tempfile if return_type == 'File'
153
-
154
224
  return nil if body.nil? || body.empty?
155
225
 
156
226
  # return response body directly for String return type
157
- return body if return_type == 'String'
227
+ return body.to_s if return_type == 'String'
158
228
 
159
229
  # ensuring a default content type
160
230
  content_type = response.headers['Content-Type'] || 'application/json'
@@ -164,7 +234,7 @@ module FlatApi
164
234
  begin
165
235
  data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
166
236
  rescue JSON::ParserError => e
167
- if %w(String Date DateTime).include?(return_type)
237
+ if %w(String Date Time).include?(return_type)
168
238
  data = body
169
239
  else
170
240
  raise e
@@ -187,11 +257,11 @@ module FlatApi
187
257
  data.to_i
188
258
  when 'Float'
189
259
  data.to_f
190
- when 'BOOLEAN'
260
+ when 'Boolean'
191
261
  data == true
192
- when 'DateTime'
262
+ when 'Time'
193
263
  # parse date time (expecting ISO 8601 format)
194
- DateTime.parse data
264
+ Time.parse data
195
265
  when 'Date'
196
266
  # parse date time (expecting ISO 8601 format)
197
267
  Date.parse data
@@ -201,54 +271,17 @@ module FlatApi
201
271
  when /\AArray<(.+)>\z/
202
272
  # e.g. Array<Pet>
203
273
  sub_type = $1
204
- data.map {|item| convert_to_type(item, sub_type) }
274
+ data.map { |item| convert_to_type(item, sub_type) }
205
275
  when /\AHash\<String, (.+)\>\z/
206
276
  # e.g. Hash<String, Integer>
207
277
  sub_type = $1
208
278
  {}.tap do |hash|
209
- data.each {|k, v| hash[k] = convert_to_type(v, sub_type) }
279
+ data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
210
280
  end
211
281
  else
212
- # models, e.g. Pet
213
- FlatApi.const_get(return_type).new.tap do |model|
214
- model.build_from_hash data
215
- end
216
- end
217
- end
218
-
219
- # Save response body into a file in (the defined) temporary folder, using the filename
220
- # from the "Content-Disposition" header if provided, otherwise a random filename.
221
- # The response body is written to the file in chunks in order to handle files which
222
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
223
- # process can use.
224
- #
225
- # @see Configuration#temp_folder_path
226
- def download_file(request)
227
- tempfile = nil
228
- encoding = nil
229
- request.on_headers do |response|
230
- content_disposition = response.headers['Content-Disposition']
231
- if content_disposition and content_disposition =~ /filename=/i
232
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
233
- prefix = sanitize_filename(filename)
234
- else
235
- prefix = 'download-'
236
- end
237
- prefix = prefix + '-' unless prefix.end_with?('-')
238
- encoding = response.body.encoding
239
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
240
- @tempfile = tempfile
241
- end
242
- request.on_body do |chunk|
243
- chunk.force_encoding(encoding)
244
- tempfile.write(chunk)
245
- end
246
- request.on_complete do |response|
247
- tempfile.close
248
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
249
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
250
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
251
- "explicitly with `tempfile.delete`"
282
+ # models (e.g. Pet) or oneOf
283
+ klass = FlatApi.const_get(return_type)
284
+ klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
252
285
  end
253
286
  end
254
287
 
@@ -261,41 +294,13 @@ module FlatApi
261
294
  filename.gsub(/.*[\/\\]/, '')
262
295
  end
263
296
 
264
- def build_request_url(path)
297
+ def build_request_url(path, opts = {})
265
298
  # Add leading and trailing slashes to path
266
299
  path = "/#{path}".gsub(/\/+/, '/')
267
- URI.encode(@config.base_url + path)
268
- end
269
-
270
- # Builds the HTTP request body
271
- #
272
- # @param [Hash] header_params Header parameters
273
- # @param [Hash] form_params Query parameters
274
- # @param [Object] body HTTP body (JSON/XML)
275
- # @return [String] HTTP body data in the form of string
276
- def build_request_body(header_params, form_params, body)
277
- # http form
278
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
279
- header_params['Content-Type'] == 'multipart/form-data'
280
- data = {}
281
- form_params.each do |key, value|
282
- case value
283
- when ::File, ::Array, nil
284
- # let typhoeus handle File, Array and nil parameters
285
- data[key] = value
286
- else
287
- data[key] = value.to_s
288
- end
289
- end
290
- elsif body
291
- data = body.is_a?(String) ? body : body.to_json
292
- else
293
- data = nil
294
- end
295
- data
300
+ @config.base_url(opts[:operation]) + path
296
301
  end
297
302
 
298
- # Update hearder and query params based on authentication settings.
303
+ # Update header and query params based on authentication settings.
299
304
  #
300
305
  # @param [Hash] header_params Header parameters
301
306
  # @param [Hash] query_params Query parameters
@@ -307,14 +312,14 @@ module FlatApi
307
312
  case auth_setting[:in]
308
313
  when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
309
314
  when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
310
- else fail ArgumentError, 'Authentication token must be in `query` of `header`'
315
+ else fail ArgumentError, 'Authentication token must be in `query` or `header`'
311
316
  end
312
317
  end
313
318
  end
314
319
 
315
320
  # Sets user agent in HTTP header
316
321
  #
317
- # @param [String] user_agent User agent (e.g. swagger-codegen/ruby/1.0.0)
322
+ # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
318
323
  def user_agent=(user_agent)
319
324
  @user_agent = user_agent
320
325
  @default_headers['User-Agent'] = @user_agent
@@ -327,18 +332,18 @@ module FlatApi
327
332
  return nil if accepts.nil? || accepts.empty?
328
333
  # use JSON when present, otherwise use all of the provided
329
334
  json_accept = accepts.find { |s| json_mime?(s) }
330
- return json_accept || accepts.join(',')
335
+ json_accept || accepts.join(',')
331
336
  end
332
337
 
333
338
  # Return Content-Type header based on an array of content types provided.
334
339
  # @param [Array] content_types array for Content-Type
335
340
  # @return [String] the Content-Type header (e.g. application/json)
336
341
  def select_header_content_type(content_types)
337
- # use application/json by default
338
- return 'application/json' if content_types.nil? || content_types.empty?
342
+ # return nil by default
343
+ return if content_types.nil? || content_types.empty?
339
344
  # use JSON when present, otherwise use the first one
340
345
  json_content_type = content_types.find { |s| json_mime?(s) }
341
- return json_content_type || content_types.first
346
+ json_content_type || content_types.first
342
347
  end
343
348
 
344
349
  # Convert object (array, hash, object, etc) to JSON string.
@@ -348,7 +353,7 @@ module FlatApi
348
353
  return model if model.nil? || model.is_a?(String)
349
354
  local_body = nil
350
355
  if model.is_a?(Array)
351
- local_body = model.map{|m| object_to_hash(m) }
356
+ local_body = model.map { |m| object_to_hash(m) }
352
357
  else
353
358
  local_body = object_to_hash(model)
354
359
  end
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Flat API
3
3
 
4
- #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML or MIDI files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and interoduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
4
+ #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
5
5
 
6
- OpenAPI spec version: 2.5.2
6
+ The version of the OpenAPI document: 2.20.0
7
7
  Contact: developers@flat.io
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.4.0-SNAPSHOT
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.3.0
10
10
 
11
11
  =end
12
12
 
@@ -32,7 +32,27 @@ module FlatApi
32
32
  end
33
33
  else
34
34
  super arg
35
+ @message = arg
35
36
  end
36
37
  end
38
+
39
+ # Override to_s to display a friendly error message
40
+ def to_s
41
+ message
42
+ end
43
+
44
+ def message
45
+ if @message.nil?
46
+ msg = "Error message: the server returns an error"
47
+ else
48
+ msg = @message
49
+ end
50
+
51
+ msg += "\nHTTP status code: #{code}" if code
52
+ msg += "\nResponse headers: #{response_headers}" if response_headers
53
+ msg += "\nResponse body: #{response_body}" if response_body
54
+
55
+ msg
56
+ end
37
57
  end
38
58
  end
@@ -1,17 +1,15 @@
1
1
  =begin
2
2
  #Flat API
3
3
 
4
- #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML or MIDI files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and interoduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
4
+ #The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
5
5
 
6
- OpenAPI spec version: 2.5.2
6
+ The version of the OpenAPI document: 2.20.0
7
7
  Contact: developers@flat.io
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.4.0-SNAPSHOT
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.3.0
10
10
 
11
11
  =end
12
12
 
13
- require 'uri'
14
-
15
13
  module FlatApi
16
14
  class Configuration
17
15
  # Defines url scheme
@@ -23,6 +21,18 @@ module FlatApi
23
21
  # Defines url base path
24
22
  attr_accessor :base_path
25
23
 
24
+ # Define server configuration index
25
+ attr_accessor :server_index
26
+
27
+ # Define server operation configuration index
28
+ attr_accessor :server_operation_index
29
+
30
+ # Default server variables
31
+ attr_accessor :server_variables
32
+
33
+ # Default server operation variables
34
+ attr_accessor :server_operation_variables
35
+
26
36
  # Defines API keys used with API Key authentications.
27
37
  #
28
38
  # @return [Hash] key: parameter name, value: parameter value (API key)
@@ -52,6 +62,16 @@ module FlatApi
52
62
  # Defines the access token (Bearer) used with OAuth2.
53
63
  attr_accessor :access_token
54
64
 
65
+ # Defines a Proc used to fetch or refresh access tokens (Bearer) used with OAuth2.
66
+ # Overrides the access_token if set
67
+ # @return [Proc]
68
+ attr_accessor :access_token_getter
69
+
70
+ # Set this to return data as binary instead of downloading a temp file. When enabled (set to true)
71
+ # HTTP responses with return type `File` will be returned as a stream of binary data.
72
+ # Default to false.
73
+ attr_accessor :return_binary_data
74
+
55
75
  # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
56
76
  # details will be logged with `logger.debug` (see the `logger` attribute).
57
77
  # Default to false.
@@ -123,6 +143,7 @@ module FlatApi
123
143
  # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
124
144
  attr_accessor :params_encoding
125
145
 
146
+
126
147
  attr_accessor :inject_format
127
148
 
128
149
  attr_accessor :force_ending_format
@@ -131,15 +152,19 @@ module FlatApi
131
152
  @scheme = 'https'
132
153
  @host = 'api.flat.io'
133
154
  @base_path = '/v2'
155
+ @server_index = nil
156
+ @server_operation_index = {}
157
+ @server_variables = {}
158
+ @server_operation_variables = {}
134
159
  @api_key = {}
135
160
  @api_key_prefix = {}
136
- @timeout = 0
137
161
  @client_side_validation = true
138
162
  @verify_ssl = true
139
163
  @verify_ssl_host = true
140
- @params_encoding = nil
141
164
  @cert_file = nil
142
165
  @key_file = nil
166
+ @timeout = 0
167
+ @params_encoding = nil
143
168
  @debugging = false
144
169
  @inject_format = false
145
170
  @force_ending_format = false
@@ -170,24 +195,37 @@ module FlatApi
170
195
  def base_path=(base_path)
171
196
  # Add leading and trailing slashes to base_path
172
197
  @base_path = "/#{base_path}".gsub(/\/+/, '/')
173
- @base_path = "" if @base_path == "/"
198
+ @base_path = '' if @base_path == '/'
174
199
  end
175
200
 
176
- def base_url
177
- url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
178
- URI.encode(url)
201
+ # Returns base URL for specified operation based on server settings
202
+ def base_url(operation = nil)
203
+ if operation_server_settings.key?(operation) then
204
+ index = server_operation_index.fetch(operation, server_index)
205
+ server_url(index.nil? ? 0 : index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
206
+ else
207
+ server_index.nil? ? "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') : server_url(server_index, server_variables, nil)
208
+ end
179
209
  end
180
210
 
181
211
  # Gets API key (with prefix if set).
182
212
  # @param [String] param_name the parameter name of API key auth
183
- def api_key_with_prefix(param_name)
213
+ def api_key_with_prefix(param_name, param_alias = nil)
214
+ key = @api_key[param_name]
215
+ key = @api_key.fetch(param_alias, key) unless param_alias.nil?
184
216
  if @api_key_prefix[param_name]
185
- "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
217
+ "#{@api_key_prefix[param_name]} #{key}"
186
218
  else
187
- @api_key[param_name]
219
+ key
188
220
  end
189
221
  end
190
222
 
223
+ # Gets access_token using access_token_getter or uses the static access_token
224
+ def access_token_with_refresh
225
+ return access_token if access_token_getter.nil?
226
+ access_token_getter.call
227
+ end
228
+
191
229
  # Gets Basic Auth token string
192
230
  def basic_auth_token
193
231
  'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
@@ -201,9 +239,60 @@ module FlatApi
201
239
  type: 'oauth2',
202
240
  in: 'header',
203
241
  key: 'Authorization',
204
- value: "Bearer #{access_token}"
242
+ value: "Bearer #{access_token_with_refresh}"
205
243
  },
206
244
  }
207
245
  end
246
+
247
+ # Returns an array of Server setting
248
+ def server_settings
249
+ [
250
+ {
251
+ url: "https://api.flat.io/v2",
252
+ description: "No description provided",
253
+ }
254
+ ]
255
+ end
256
+
257
+ def operation_server_settings
258
+ {
259
+ }
260
+ end
261
+
262
+ # Returns URL based on server settings
263
+ #
264
+ # @param index array index of the server settings
265
+ # @param variables hash of variable and the corresponding value
266
+ def server_url(index, variables = {}, servers = nil)
267
+ servers = server_settings if servers == nil
268
+
269
+ # check array index out of bound
270
+ if (index.nil? || index < 0 || index >= servers.size)
271
+ fail ArgumentError, "Invalid index #{index} when selecting the server. Must not be nil and must be less than #{servers.size}"
272
+ end
273
+
274
+ server = servers[index]
275
+ url = server[:url]
276
+
277
+ return url unless server.key? :variables
278
+
279
+ # go through variable and assign a value
280
+ server[:variables].each do |name, variable|
281
+ if variables.key?(name)
282
+ if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
283
+ url.gsub! "{" + name.to_s + "}", variables[name]
284
+ else
285
+ fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
286
+ end
287
+ else
288
+ # use default value
289
+ url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
290
+ end
291
+ end
292
+
293
+ url
294
+ end
295
+
296
+
208
297
  end
209
298
  end