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,29 +1,41 @@
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
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module FlatApi
16
17
  # Attachment creation for an assignment or stream post. This attachment must contain a `score` or an `url`, all the details of this one will be resolved and returned as `ClassAttachment` once the assignment or stream post is created.
17
18
  class ClassAttachmentCreation
18
- # The type of the attachment posted
19
+ # The type of the attachment posted: * `rich`, `photo`, `video` are attachment types that are automatically resolved from a `link` attachment. * A `flat` attachment is a score document where the unique identifier will be specified in the `score` property. Its sharing mode will be provided in the `sharingMode` property.
19
20
  attr_accessor :type
20
21
 
21
22
  # A unique Flat score identifier. The user creating the assignment must at least have read access to the document. If the user has admin rights, new group permissions will be automatically added for the teachers and students of the class.
22
23
  attr_accessor :score
23
24
 
25
+ # An unique worksheet identifier
26
+ attr_accessor :worksheet
27
+
28
+ attr_accessor :sharing_mode
29
+
30
+ # To be used with a score attached in `sharingMode` `copy` (score used as template). If true, students won't be able to change the original notes of the template.
31
+ attr_accessor :lock_score_template
32
+
24
33
  # The URL of the attachment.
25
34
  attr_accessor :url
26
35
 
36
+ # The ID of the Google Drive File
37
+ attr_accessor :google_drive_file_id
38
+
27
39
  class EnumAttributeValidator
28
40
  attr_reader :datatype
29
41
  attr_reader :allowable_values
@@ -51,62 +63,107 @@ module FlatApi
51
63
  {
52
64
  :'type' => :'type',
53
65
  :'score' => :'score',
54
- :'url' => :'url'
66
+ :'worksheet' => :'worksheet',
67
+ :'sharing_mode' => :'sharingMode',
68
+ :'lock_score_template' => :'lockScoreTemplate',
69
+ :'url' => :'url',
70
+ :'google_drive_file_id' => :'googleDriveFileId'
55
71
  }
56
72
  end
57
73
 
74
+ # Returns all the JSON keys this model knows about
75
+ def self.acceptable_attributes
76
+ attribute_map.values
77
+ end
78
+
58
79
  # Attribute type mapping.
59
- def self.swagger_types
80
+ def self.openapi_types
60
81
  {
61
82
  :'type' => :'String',
62
83
  :'score' => :'String',
63
- :'url' => :'String'
84
+ :'worksheet' => :'String',
85
+ :'sharing_mode' => :'MediaScoreSharingMode',
86
+ :'lock_score_template' => :'Boolean',
87
+ :'url' => :'String',
88
+ :'google_drive_file_id' => :'String'
64
89
  }
65
90
  end
66
91
 
92
+ # List of attributes with nullable: true
93
+ def self.openapi_nullable
94
+ Set.new([
95
+ ])
96
+ end
97
+
67
98
  # Initializes the object
68
99
  # @param [Hash] attributes Model attributes in the form of hash
69
100
  def initialize(attributes = {})
70
- return unless attributes.is_a?(Hash)
101
+ if (!attributes.is_a?(Hash))
102
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::ClassAttachmentCreation` initialize method"
103
+ end
71
104
 
72
- # convert string to symbol for hash key
73
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
105
+ # check to see if the attribute exists and convert string to symbol for hash key
106
+ attributes = attributes.each_with_object({}) { |(k, v), h|
107
+ if (!self.class.attribute_map.key?(k.to_sym))
108
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::ClassAttachmentCreation`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
109
+ end
110
+ h[k.to_sym] = v
111
+ }
74
112
 
75
- if attributes.has_key?(:'type')
113
+ if attributes.key?(:'type')
76
114
  self.type = attributes[:'type']
77
115
  end
78
116
 
79
- if attributes.has_key?(:'score')
117
+ if attributes.key?(:'score')
80
118
  self.score = attributes[:'score']
81
119
  end
82
120
 
83
- if attributes.has_key?(:'url')
121
+ if attributes.key?(:'worksheet')
122
+ self.worksheet = attributes[:'worksheet']
123
+ end
124
+
125
+ if attributes.key?(:'sharing_mode')
126
+ self.sharing_mode = attributes[:'sharing_mode']
127
+ else
128
+ self.sharing_mode = 'read'
129
+ end
130
+
131
+ if attributes.key?(:'lock_score_template')
132
+ self.lock_score_template = attributes[:'lock_score_template']
133
+ end
134
+
135
+ if attributes.key?(:'url')
84
136
  self.url = attributes[:'url']
85
137
  end
86
138
 
139
+ if attributes.key?(:'google_drive_file_id')
140
+ self.google_drive_file_id = attributes[:'google_drive_file_id']
141
+ end
87
142
  end
88
143
 
89
144
  # Show invalid properties with the reasons. Usually used together with valid?
90
145
  # @return Array for valid properties with the reasons
91
146
  def list_invalid_properties
147
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
92
148
  invalid_properties = Array.new
93
- return invalid_properties
149
+ invalid_properties
94
150
  end
95
151
 
96
152
  # Check to see if the all the properties in the model are valid
97
153
  # @return true if the model is valid
98
154
  def valid?
99
- type_validator = EnumAttributeValidator.new('String', ["flat", "link", "exercise"])
155
+ warn '[DEPRECATED] the `valid?` method is obsolete'
156
+ type_validator = EnumAttributeValidator.new('String', ["rich", "photo", "video", "link", "flat", "googleDrive", "worksheet", "performance"])
100
157
  return false unless type_validator.valid?(@type)
101
- return true
158
+ true
102
159
  end
103
160
 
104
161
  # Custom attribute writer method checking allowed values (enum).
105
162
  # @param [Object] type Object to be assigned
106
163
  def type=(type)
107
- validator = EnumAttributeValidator.new('String', ["flat", "link", "exercise"])
164
+ validator = EnumAttributeValidator.new('String', ["rich", "photo", "video", "link", "flat", "googleDrive", "worksheet", "performance"])
108
165
  unless validator.valid?(type)
109
- fail ArgumentError, "invalid value for 'type', must be one of #{validator.allowable_values}."
166
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
110
167
  end
111
168
  @type = type
112
169
  end
@@ -118,7 +175,11 @@ module FlatApi
118
175
  self.class == o.class &&
119
176
  type == o.type &&
120
177
  score == o.score &&
121
- url == o.url
178
+ worksheet == o.worksheet &&
179
+ sharing_mode == o.sharing_mode &&
180
+ lock_score_template == o.lock_score_template &&
181
+ url == o.url &&
182
+ google_drive_file_id == o.google_drive_file_id
122
183
  end
123
184
 
124
185
  # @see the `==` method
@@ -128,39 +189,42 @@ module FlatApi
128
189
  end
129
190
 
130
191
  # Calculates hash code according to all attributes.
131
- # @return [Fixnum] Hash code
192
+ # @return [Integer] Hash code
132
193
  def hash
133
- [type, score, url].hash
194
+ [type, score, worksheet, sharing_mode, lock_score_template, url, google_drive_file_id].hash
134
195
  end
135
196
 
136
197
  # Builds the object from hash
137
198
  # @param [Hash] attributes Model attributes in the form of hash
138
199
  # @return [Object] Returns the model itself
139
- def build_from_hash(attributes)
200
+ def self.build_from_hash(attributes)
140
201
  return nil unless attributes.is_a?(Hash)
141
- self.class.swagger_types.each_pair do |key, type|
142
- if type =~ /\AArray<(.*)>/i
143
- # check to ensure the input is an array given that the the attribute
202
+ attributes = attributes.transform_keys(&:to_sym)
203
+ transformed_hash = {}
204
+ openapi_types.each_pair do |key, type|
205
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
206
+ transformed_hash["#{key}"] = nil
207
+ elsif type =~ /\AArray<(.*)>/i
208
+ # check to ensure the input is an array given that the attribute
144
209
  # is documented as an array but the input is not
145
- if attributes[self.class.attribute_map[key]].is_a?(Array)
146
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
210
+ if attributes[attribute_map[key]].is_a?(Array)
211
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
147
212
  end
148
- elsif !attributes[self.class.attribute_map[key]].nil?
149
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
150
- end # or else data not found in attributes(hash), not an issue as the data can be optional
213
+ elsif !attributes[attribute_map[key]].nil?
214
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
215
+ end
151
216
  end
152
-
153
- self
217
+ new(transformed_hash)
154
218
  end
155
219
 
156
220
  # Deserializes the data based on type
157
221
  # @param string type Data type
158
222
  # @param string value Value to be deserialized
159
223
  # @return [Object] Deserialized data
160
- def _deserialize(type, value)
224
+ def self._deserialize(type, value)
161
225
  case type.to_sym
162
- when :DateTime
163
- DateTime.parse(value)
226
+ when :Time
227
+ Time.parse(value)
164
228
  when :Date
165
229
  Date.parse(value)
166
230
  when :String
@@ -169,7 +233,7 @@ module FlatApi
169
233
  value.to_i
170
234
  when :Float
171
235
  value.to_f
172
- when :BOOLEAN
236
+ when :Boolean
173
237
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
174
238
  true
175
239
  else
@@ -190,8 +254,9 @@ module FlatApi
190
254
  end
191
255
  end
192
256
  else # model
193
- temp_model = FlatApi.const_get(type).new
194
- temp_model.build_from_hash(value)
257
+ # models (e.g. Pet) or oneOf
258
+ klass = FlatApi.const_get(type)
259
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
195
260
  end
196
261
  end
197
262
 
@@ -213,7 +278,11 @@ module FlatApi
213
278
  hash = {}
214
279
  self.class.attribute_map.each_pair do |attr, param|
215
280
  value = self.send(attr)
216
- next if value.nil?
281
+ if value.nil?
282
+ is_nullable = self.class.openapi_nullable.include?(attr)
283
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
284
+ end
285
+
217
286
  hash[param] = _to_hash(value)
218
287
  end
219
288
  hash
@@ -225,7 +294,7 @@ module FlatApi
225
294
  # @return [Hash] Returns the value in the form of hash
226
295
  def _to_hash(value)
227
296
  if value.is_a?(Array)
228
- value.compact.map{ |v| _to_hash(v) }
297
+ value.compact.map { |v| _to_hash(v) }
229
298
  elsif value.is_a?(Hash)
230
299
  {}.tap do |hash|
231
300
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -1,16 +1,17 @@
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
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module FlatApi
16
17
  # Creation of a classroom
@@ -21,78 +22,154 @@ module FlatApi
21
22
  # The section of the new class
22
23
  attr_accessor :section
23
24
 
25
+ attr_accessor :level
26
+
27
+ # Specific skills that will be focused in classroom
28
+ attr_accessor :skills_focused
29
+
30
+ # Number of students in the classroom
31
+ attr_accessor :size
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
24
54
 
25
55
  # Attribute mapping from ruby-style variable name to JSON key.
26
56
  def self.attribute_map
27
57
  {
28
58
  :'name' => :'name',
29
- :'section' => :'section'
59
+ :'section' => :'section',
60
+ :'level' => :'level',
61
+ :'skills_focused' => :'skillsFocused',
62
+ :'size' => :'size'
30
63
  }
31
64
  end
32
65
 
66
+ # Returns all the JSON keys this model knows about
67
+ def self.acceptable_attributes
68
+ attribute_map.values
69
+ end
70
+
33
71
  # Attribute type mapping.
34
- def self.swagger_types
72
+ def self.openapi_types
35
73
  {
36
74
  :'name' => :'String',
37
- :'section' => :'String'
75
+ :'section' => :'String',
76
+ :'level' => :'ClassGradeLevel',
77
+ :'skills_focused' => :'Array<String>',
78
+ :'size' => :'Float'
38
79
  }
39
80
  end
40
81
 
82
+ # List of attributes with nullable: true
83
+ def self.openapi_nullable
84
+ Set.new([
85
+ :'size'
86
+ ])
87
+ end
88
+
41
89
  # Initializes the object
42
90
  # @param [Hash] attributes Model attributes in the form of hash
43
91
  def initialize(attributes = {})
44
- return unless attributes.is_a?(Hash)
92
+ if (!attributes.is_a?(Hash))
93
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::ClassCreation` initialize method"
94
+ end
45
95
 
46
- # convert string to symbol for hash key
47
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
96
+ # check to see if the attribute exists and convert string to symbol for hash key
97
+ attributes = attributes.each_with_object({}) { |(k, v), h|
98
+ if (!self.class.attribute_map.key?(k.to_sym))
99
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::ClassCreation`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
100
+ end
101
+ h[k.to_sym] = v
102
+ }
48
103
 
49
- if attributes.has_key?(:'name')
104
+ if attributes.key?(:'name')
50
105
  self.name = attributes[:'name']
106
+ else
107
+ self.name = nil
51
108
  end
52
109
 
53
- if attributes.has_key?(:'section')
110
+ if attributes.key?(:'section')
54
111
  self.section = attributes[:'section']
55
112
  end
56
113
 
114
+ if attributes.key?(:'level')
115
+ self.level = attributes[:'level']
116
+ end
117
+
118
+ if attributes.key?(:'skills_focused')
119
+ if (value = attributes[:'skills_focused']).is_a?(Array)
120
+ self.skills_focused = value
121
+ end
122
+ end
123
+
124
+ if attributes.key?(:'size')
125
+ self.size = attributes[:'size']
126
+ end
57
127
  end
58
128
 
59
129
  # Show invalid properties with the reasons. Usually used together with valid?
60
130
  # @return Array for valid properties with the reasons
61
131
  def list_invalid_properties
132
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
62
133
  invalid_properties = Array.new
63
134
  if @name.nil?
64
- invalid_properties.push("invalid value for 'name', name cannot be nil.")
135
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
65
136
  end
66
137
 
67
138
  if @name.to_s.length > 255
68
- invalid_properties.push("invalid value for 'name', the character length must be smaller than or equal to 255.")
139
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 255.')
69
140
  end
70
141
 
71
142
  if !@section.nil? && @section.to_s.length > 255
72
- invalid_properties.push("invalid value for 'section', the character length must be smaller than or equal to 255.")
143
+ invalid_properties.push('invalid value for "section", the character length must be smaller than or equal to 255.')
144
+ end
145
+
146
+ if !@size.nil? && @size < 0
147
+ invalid_properties.push('invalid value for "size", must be greater than or equal to 0.')
73
148
  end
74
149
 
75
- return invalid_properties
150
+ invalid_properties
76
151
  end
77
152
 
78
153
  # Check to see if the all the properties in the model are valid
79
154
  # @return true if the model is valid
80
155
  def valid?
156
+ warn '[DEPRECATED] the `valid?` method is obsolete'
81
157
  return false if @name.nil?
82
158
  return false if @name.to_s.length > 255
83
159
  return false if !@section.nil? && @section.to_s.length > 255
84
- return true
160
+ return false if !@size.nil? && @size < 0
161
+ true
85
162
  end
86
163
 
87
164
  # Custom attribute writer method with validation
88
165
  # @param [Object] name Value to be assigned
89
166
  def name=(name)
90
167
  if name.nil?
91
- fail ArgumentError, "name cannot be nil"
168
+ fail ArgumentError, 'name cannot be nil'
92
169
  end
93
170
 
94
171
  if name.to_s.length > 255
95
- fail ArgumentError, "invalid value for 'name', the character length must be smaller than or equal to 255."
172
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 255.'
96
173
  end
97
174
 
98
175
  @name = name
@@ -101,21 +178,37 @@ module FlatApi
101
178
  # Custom attribute writer method with validation
102
179
  # @param [Object] section Value to be assigned
103
180
  def section=(section)
181
+ if section.nil?
182
+ fail ArgumentError, 'section cannot be nil'
183
+ end
104
184
 
105
- if !section.nil? && section.to_s.length > 255
106
- fail ArgumentError, "invalid value for 'section', the character length must be smaller than or equal to 255."
185
+ if section.to_s.length > 255
186
+ fail ArgumentError, 'invalid value for "section", the character length must be smaller than or equal to 255.'
107
187
  end
108
188
 
109
189
  @section = section
110
190
  end
111
191
 
192
+ # Custom attribute writer method with validation
193
+ # @param [Object] size Value to be assigned
194
+ def size=(size)
195
+ if !size.nil? && size < 0
196
+ fail ArgumentError, 'invalid value for "size", must be greater than or equal to 0.'
197
+ end
198
+
199
+ @size = size
200
+ end
201
+
112
202
  # Checks equality by comparing each attribute.
113
203
  # @param [Object] Object to be compared
114
204
  def ==(o)
115
205
  return true if self.equal?(o)
116
206
  self.class == o.class &&
117
207
  name == o.name &&
118
- section == o.section
208
+ section == o.section &&
209
+ level == o.level &&
210
+ skills_focused == o.skills_focused &&
211
+ size == o.size
119
212
  end
120
213
 
121
214
  # @see the `==` method
@@ -125,39 +218,42 @@ module FlatApi
125
218
  end
126
219
 
127
220
  # Calculates hash code according to all attributes.
128
- # @return [Fixnum] Hash code
221
+ # @return [Integer] Hash code
129
222
  def hash
130
- [name, section].hash
223
+ [name, section, level, skills_focused, size].hash
131
224
  end
132
225
 
133
226
  # Builds the object from hash
134
227
  # @param [Hash] attributes Model attributes in the form of hash
135
228
  # @return [Object] Returns the model itself
136
- def build_from_hash(attributes)
229
+ def self.build_from_hash(attributes)
137
230
  return nil unless attributes.is_a?(Hash)
138
- self.class.swagger_types.each_pair do |key, type|
139
- if type =~ /\AArray<(.*)>/i
140
- # check to ensure the input is an array given that the the attribute
231
+ attributes = attributes.transform_keys(&:to_sym)
232
+ transformed_hash = {}
233
+ openapi_types.each_pair do |key, type|
234
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
235
+ transformed_hash["#{key}"] = nil
236
+ elsif type =~ /\AArray<(.*)>/i
237
+ # check to ensure the input is an array given that the attribute
141
238
  # is documented as an array but the input is not
142
- if attributes[self.class.attribute_map[key]].is_a?(Array)
143
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
239
+ if attributes[attribute_map[key]].is_a?(Array)
240
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
144
241
  end
145
- elsif !attributes[self.class.attribute_map[key]].nil?
146
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
147
- end # or else data not found in attributes(hash), not an issue as the data can be optional
242
+ elsif !attributes[attribute_map[key]].nil?
243
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
244
+ end
148
245
  end
149
-
150
- self
246
+ new(transformed_hash)
151
247
  end
152
248
 
153
249
  # Deserializes the data based on type
154
250
  # @param string type Data type
155
251
  # @param string value Value to be deserialized
156
252
  # @return [Object] Deserialized data
157
- def _deserialize(type, value)
253
+ def self._deserialize(type, value)
158
254
  case type.to_sym
159
- when :DateTime
160
- DateTime.parse(value)
255
+ when :Time
256
+ Time.parse(value)
161
257
  when :Date
162
258
  Date.parse(value)
163
259
  when :String
@@ -166,7 +262,7 @@ module FlatApi
166
262
  value.to_i
167
263
  when :Float
168
264
  value.to_f
169
- when :BOOLEAN
265
+ when :Boolean
170
266
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
171
267
  true
172
268
  else
@@ -187,8 +283,9 @@ module FlatApi
187
283
  end
188
284
  end
189
285
  else # model
190
- temp_model = FlatApi.const_get(type).new
191
- temp_model.build_from_hash(value)
286
+ # models (e.g. Pet) or oneOf
287
+ klass = FlatApi.const_get(type)
288
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
192
289
  end
193
290
  end
194
291
 
@@ -210,7 +307,11 @@ module FlatApi
210
307
  hash = {}
211
308
  self.class.attribute_map.each_pair do |attr, param|
212
309
  value = self.send(attr)
213
- next if value.nil?
310
+ if value.nil?
311
+ is_nullable = self.class.openapi_nullable.include?(attr)
312
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
313
+ end
314
+
214
315
  hash[param] = _to_hash(value)
215
316
  end
216
317
  hash
@@ -222,7 +323,7 @@ module FlatApi
222
323
  # @return [Hash] Returns the value in the form of hash
223
324
  def _to_hash(value)
224
325
  if value.is_a?(Array)
225
- value.compact.map{ |v| _to_hash(v) }
326
+ value.compact.map { |v| _to_hash(v) }
226
327
  elsif value.is_a?(Hash)
227
328
  {}.tap do |hash|
228
329
  value.each { |k, v| hash[k] = _to_hash(v) }