flat_api 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +60 -8
  3. data/LICENSE +201 -0
  4. data/README.md +62 -241
  5. data/lib/flat_api/api/account_api.rb +32 -22
  6. data/lib/flat_api/api/class_api.rb +1671 -453
  7. data/lib/flat_api/api/collection_api.rb +286 -185
  8. data/lib/flat_api/api/edu_resources_api.rb +863 -0
  9. data/lib/flat_api/api/group_api.rb +506 -57
  10. data/lib/flat_api/api/omr_api.rb +894 -0
  11. data/lib/flat_api/api/organization_api.rb +808 -192
  12. data/lib/flat_api/api/score_api.rb +1030 -589
  13. data/lib/flat_api/api/task_api.rb +85 -0
  14. data/lib/flat_api/api/user_api.rb +151 -82
  15. data/lib/flat_api/api_client.rb +223 -145
  16. data/lib/flat_api/api_error.rb +24 -4
  17. data/lib/flat_api/api_model_base.rb +88 -0
  18. data/lib/flat_api/client.rb +69 -0
  19. data/lib/flat_api/configuration.rb +224 -36
  20. data/lib/flat_api/errors.rb +86 -0
  21. data/lib/flat_api/models/add_group_user200_response.rb +148 -0
  22. data/lib/flat_api/models/add_group_user_request.rb +165 -0
  23. data/lib/flat_api/models/api_access_token.rb +201 -0
  24. data/lib/flat_api/models/app_scopes.rb +61 -0
  25. data/lib/flat_api/models/assignment.rb +362 -166
  26. data/lib/flat_api/models/assignment_capabilities.rb +256 -0
  27. data/lib/flat_api/models/assignment_capabilities_can_publish_in_class_error.rb +193 -0
  28. data/lib/flat_api/models/assignment_copy.rb +79 -169
  29. data/lib/flat_api/models/assignment_copy_response.rb +535 -0
  30. data/lib/flat_api/models/assignment_copy_to_class.rb +186 -0
  31. data/lib/flat_api/models/assignment_copy_to_resource_library.rb +176 -0
  32. data/lib/flat_api/models/assignment_group.rb +232 -0
  33. data/lib/flat_api/models/assignment_submission.rb +337 -131
  34. data/lib/flat_api/models/assignment_submission_comment.rb +209 -0
  35. data/lib/flat_api/models/assignment_submission_comment_creation.rb +166 -0
  36. data/lib/flat_api/models/assignment_submission_comments.rb +158 -0
  37. data/lib/flat_api/models/assignment_submission_history.rb +337 -0
  38. data/lib/flat_api/models/assignment_submission_history_attachment.rb +168 -0
  39. data/lib/flat_api/models/assignment_submission_history_state.rb +43 -0
  40. data/lib/flat_api/models/assignment_submission_lti.rb +200 -0
  41. data/lib/flat_api/models/assignment_submission_playback.rb +193 -0
  42. data/lib/flat_api/models/assignment_submission_state.rb +42 -0
  43. data/lib/flat_api/models/assignment_submission_students_mode.rb +40 -0
  44. data/lib/flat_api/models/assignment_submission_update.rb +157 -113
  45. data/lib/flat_api/models/assignment_type.rb +45 -0
  46. data/lib/flat_api/models/assignment_update.rb +538 -0
  47. data/lib/flat_api/models/class_assignment.rb +750 -0
  48. data/lib/flat_api/models/class_assignment_all_of_canvas.rb +159 -0
  49. data/lib/flat_api/models/class_assignment_all_of_lti.rb +149 -0
  50. data/lib/flat_api/models/class_assignment_all_of_mfc.rb +159 -0
  51. data/lib/flat_api/models/class_assignment_update.rb +652 -0
  52. data/lib/flat_api/models/class_assignment_update_all_of_google_classroom.rb +150 -0
  53. data/lib/flat_api/models/class_assignment_update_all_of_microsoft_graph.rb +152 -0
  54. data/lib/flat_api/models/class_attachment_creation.rb +140 -106
  55. data/lib/flat_api/models/class_creation.rb +142 -108
  56. data/lib/flat_api/models/class_details.rb +244 -125
  57. data/lib/flat_api/models/class_details_canvas.rb +59 -99
  58. data/lib/flat_api/models/class_details_clever.rb +74 -113
  59. data/lib/flat_api/models/class_details_google_classroom.rb +64 -124
  60. data/lib/flat_api/models/class_details_google_drive.rb +61 -101
  61. data/lib/flat_api/models/class_details_issues.rb +151 -0
  62. data/lib/flat_api/models/class_details_issues_sync_inner.rb +203 -0
  63. data/lib/flat_api/models/class_details_lti.rb +76 -106
  64. data/lib/flat_api/models/class_details_mfc.rb +159 -0
  65. data/lib/flat_api/models/class_details_microsoft_graph.rb +148 -0
  66. data/lib/flat_api/models/class_grade_level.rb +43 -0
  67. data/lib/flat_api/models/class_roles.rb +18 -9
  68. data/lib/flat_api/models/class_state.rb +19 -9
  69. data/lib/flat_api/models/class_update.rb +142 -107
  70. data/lib/flat_api/models/collection.rb +304 -115
  71. data/lib/flat_api/models/collection_app.rb +169 -0
  72. data/lib/flat_api/models/collection_capabilities.rb +157 -112
  73. data/lib/flat_api/models/collection_contents.rb +166 -0
  74. data/lib/flat_api/models/collection_creation.rb +120 -104
  75. data/lib/flat_api/models/collection_modification.rb +122 -100
  76. data/lib/flat_api/models/collection_privacy.rb +18 -9
  77. data/lib/flat_api/models/collection_type.rb +22 -11
  78. data/lib/flat_api/models/credit_transaction.rb +388 -0
  79. data/lib/flat_api/models/edu_library.rb +273 -0
  80. data/lib/flat_api/models/edu_resource.rb +383 -0
  81. data/lib/flat_api/models/edu_resource_assignment_creation.rb +170 -0
  82. data/lib/flat_api/models/edu_resource_capabilities.rb +179 -0
  83. data/lib/flat_api/models/edu_resource_copy.rb +166 -0
  84. data/lib/flat_api/models/edu_resource_creation.rb +311 -0
  85. data/lib/flat_api/models/edu_resource_folder.rb +171 -0
  86. data/lib/flat_api/models/edu_resource_lti_link.rb +166 -0
  87. data/lib/flat_api/models/edu_resource_move.rb +166 -0
  88. data/lib/flat_api/models/edu_resource_privacy.rb +41 -0
  89. data/lib/flat_api/models/edu_resource_resource.rb +104 -0
  90. data/lib/flat_api/models/edu_resource_type.rb +40 -0
  91. data/lib/flat_api/models/edu_resource_update.rb +292 -0
  92. data/lib/flat_api/models/edu_resource_use_in_class.rb +176 -0
  93. data/lib/flat_api/models/flat_error_response.rb +109 -105
  94. data/lib/flat_api/models/google_classroom_coursework.rb +74 -103
  95. data/lib/flat_api/models/google_classroom_submission.rb +112 -101
  96. data/lib/flat_api/models/grade.rb +51 -0
  97. data/lib/flat_api/models/group.rb +70 -122
  98. data/lib/flat_api/models/group_creation.rb +238 -0
  99. data/lib/flat_api/models/group_details.rb +253 -110
  100. data/lib/flat_api/models/group_type.rb +20 -9
  101. data/lib/flat_api/models/license_mode.rb +18 -9
  102. data/lib/flat_api/models/license_sources.rb +21 -9
  103. data/lib/flat_api/models/lms_name.rb +19 -9
  104. data/lib/flat_api/models/lti_configuration.rb +56 -0
  105. data/lib/flat_api/models/lti_configuration1p1.rb +361 -0
  106. data/lib/flat_api/models/lti_configuration1p1_all_of_tool.rb +199 -0
  107. data/lib/flat_api/models/lti_configuration1p3.rb +106 -0
  108. data/lib/flat_api/models/lti_configuration1p3_base.rb +336 -0
  109. data/lib/flat_api/models/lti_configuration1p3_base_supported_services.rb +166 -0
  110. data/lib/flat_api/models/lti_configuration1p3_base_supported_services_ags.rb +179 -0
  111. data/lib/flat_api/models/lti_configuration1p3_base_supported_services_deep_linking.rb +159 -0
  112. data/lib/flat_api/models/lti_configuration1p3_base_supported_services_nrps.rb +169 -0
  113. data/lib/flat_api/models/lti_configuration1p3_base_tool.rb +199 -0
  114. data/lib/flat_api/models/lti_configuration1p3_deployment.rb +529 -0
  115. data/lib/flat_api/models/lti_configuration1p3_dynamic.rb +530 -0
  116. data/lib/flat_api/models/lti_configuration1p3_manual.rb +489 -0
  117. data/lib/flat_api/models/lti_configuration_base.rb +306 -0
  118. data/lib/flat_api/models/lti_configuration_create.rb +60 -0
  119. data/lib/flat_api/models/lti_configuration_create1p1.rb +210 -0
  120. data/lib/flat_api/models/lti_configuration_create1p3_deployment.rb +264 -0
  121. data/lib/flat_api/models/lti_configuration_create1p3_dynamic.rb +209 -0
  122. data/lib/flat_api/models/lti_configuration_create1p3_dynamic_platform_info.rb +159 -0
  123. data/lib/flat_api/models/lti_configuration_create1p3_manual.rb +270 -0
  124. data/lib/flat_api/models/lti_configuration_update.rb +104 -0
  125. data/lib/flat_api/models/lti_configuration_update_deployment.rb +169 -0
  126. data/lib/flat_api/models/lti_configuration_update_standalone.rb +219 -0
  127. data/lib/flat_api/models/lti_credentials.rb +108 -114
  128. data/lib/flat_api/models/lti_credentials_creation.rb +99 -103
  129. data/lib/flat_api/models/media_attachment.rb +189 -137
  130. data/lib/flat_api/models/media_score_sharing_mode.rb +19 -9
  131. data/lib/flat_api/models/microsoft_graph_assignment.rb +259 -0
  132. data/lib/flat_api/models/microsoft_graph_submission.rb +193 -0
  133. data/lib/flat_api/models/omr_capabilities.rb +480 -0
  134. data/lib/flat_api/models/omr_details_step_data.rb +228 -0
  135. data/lib/flat_api/models/omr_details_submission.rb +288 -0
  136. data/lib/flat_api/models/omr_detected_instrument.rb +260 -0
  137. data/lib/flat_api/models/omr_imported_metadata.rb +181 -0
  138. data/lib/flat_api/models/omr_instrument_override.rb +311 -0
  139. data/lib/flat_api/models/omr_job.rb +394 -0
  140. data/lib/flat_api/models/omr_job_creation.rb +238 -0
  141. data/lib/flat_api/models/omr_job_file_metadata.rb +199 -0
  142. data/lib/flat_api/models/omr_job_file_upload.rb +176 -0
  143. data/lib/flat_api/models/omr_job_file_upload_result.rb +159 -0
  144. data/lib/flat_api/models/omr_job_input_file.rb +176 -0
  145. data/lib/flat_api/models/omr_job_output.rb +40 -0
  146. data/lib/flat_api/models/omr_job_progress.rb +169 -0
  147. data/lib/flat_api/models/omr_job_result.rb +161 -0
  148. data/lib/flat_api/models/omr_job_retention.rb +176 -0
  149. data/lib/flat_api/models/omr_job_status.rb +44 -0
  150. data/lib/flat_api/models/omr_locale_details.rb +193 -0
  151. data/lib/flat_api/models/omr_pending_step.rb +213 -0
  152. data/lib/flat_api/models/omr_step_name.rb +39 -0
  153. data/lib/flat_api/models/organization_invitation.rb +177 -109
  154. data/lib/flat_api/models/organization_invitation_creation.rb +97 -100
  155. data/lib/flat_api/models/organization_roles.rb +19 -10
  156. data/lib/flat_api/models/organization_user_access_token_creation.rb +168 -0
  157. data/lib/flat_api/models/rename_group_request.rb +165 -0
  158. data/lib/flat_api/models/resource_collaborator.rb +204 -116
  159. data/lib/flat_api/models/resource_collaborator_creation.rb +72 -112
  160. data/lib/flat_api/models/resource_rights.rb +168 -107
  161. data/lib/flat_api/models/score_comment.rb +200 -121
  162. data/lib/flat_api/models/score_comment_context.rb +161 -124
  163. data/lib/flat_api/models/score_comment_creation.rb +79 -107
  164. data/lib/flat_api/models/score_comment_moderation.rb +193 -0
  165. data/lib/flat_api/models/score_comment_update.rb +81 -115
  166. data/lib/flat_api/models/score_comments_counts.rb +78 -108
  167. data/lib/flat_api/models/score_creation.rb +80 -225
  168. data/lib/flat_api/models/score_creation_builder_data.rb +234 -0
  169. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data.rb +173 -0
  170. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_layout_data.rb +255 -0
  171. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data.rb +217 -0
  172. data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data_instruments.rb +222 -0
  173. data/lib/flat_api/models/score_creation_common.rb +201 -0
  174. data/lib/flat_api/models/score_creation_file_import.rb +277 -0
  175. data/lib/flat_api/models/score_creation_google_drive_import.rb +234 -0
  176. data/lib/flat_api/models/score_creation_type.rb +18 -9
  177. data/lib/flat_api/models/score_details.rb +428 -146
  178. data/lib/flat_api/models/score_details_all_of_me.rb +193 -0
  179. data/lib/flat_api/models/score_fork.rb +84 -101
  180. data/lib/flat_api/models/score_license.rb +18 -9
  181. data/lib/flat_api/models/score_likes_counts.rb +73 -103
  182. data/lib/flat_api/models/score_modification.rb +178 -115
  183. data/lib/flat_api/models/score_plays_counts.rb +179 -0
  184. data/lib/flat_api/models/score_privacy.rb +18 -9
  185. data/lib/flat_api/models/score_revision.rb +142 -111
  186. data/lib/flat_api/models/score_revision_creation.rb +113 -105
  187. data/lib/flat_api/models/score_revision_statistics.rb +81 -101
  188. data/lib/flat_api/models/score_source.rb +59 -100
  189. data/lib/flat_api/models/score_summary.rb +172 -105
  190. data/lib/flat_api/models/score_track.rb +244 -117
  191. data/lib/flat_api/models/score_track_creation.rb +99 -104
  192. data/lib/flat_api/models/score_track_creation_response.rb +165 -0
  193. data/lib/flat_api/models/score_track_point.rb +78 -103
  194. data/lib/flat_api/models/score_track_purpose.rb +40 -0
  195. data/lib/flat_api/models/score_track_state.rb +18 -9
  196. data/lib/flat_api/models/score_track_type.rb +18 -9
  197. data/lib/flat_api/models/score_track_update.rb +98 -103
  198. data/lib/flat_api/models/score_views_counts.rb +73 -103
  199. data/lib/flat_api/models/task.rb +339 -0
  200. data/lib/flat_api/models/task_export_options.rb +151 -0
  201. data/lib/flat_api/models/task_progress.rb +159 -0
  202. data/lib/flat_api/models/task_result.rb +159 -0
  203. data/lib/flat_api/models/teaching_theme.rb +47 -0
  204. data/lib/flat_api/models/tutteo_product.rb +42 -0
  205. data/lib/flat_api/models/user_admin_update.rb +206 -106
  206. data/lib/flat_api/models/user_azure_details.rb +168 -0
  207. data/lib/flat_api/models/user_basics.rb +215 -120
  208. data/lib/flat_api/models/user_community_profile_links.rb +205 -0
  209. data/lib/flat_api/models/user_creation.rb +203 -114
  210. data/lib/flat_api/models/user_details.rb +331 -161
  211. data/lib/flat_api/models/user_details_admin.rb +272 -133
  212. data/lib/flat_api/models/user_details_admin_all_of_license.rb +211 -0
  213. data/lib/flat_api/models/user_public.rb +303 -145
  214. data/lib/flat_api/models/user_public_summary.rb +243 -126
  215. data/lib/flat_api/models/user_signin_link.rb +168 -0
  216. data/lib/flat_api/models/user_signin_link_creation.rb +150 -0
  217. data/lib/flat_api/oauth.rb +128 -0
  218. data/lib/flat_api/pagination.rb +88 -0
  219. data/lib/flat_api/retry.rb +56 -0
  220. data/lib/flat_api/version.rb +5 -5
  221. data/lib/flat_api.rb +144 -16
  222. metadata +154 -434
  223. data/Gemfile +0 -7
  224. data/Rakefile +0 -8
  225. data/docs/AccountApi.md +0 -55
  226. data/docs/Assignment.md +0 -18
  227. data/docs/AssignmentCopy.md +0 -8
  228. data/docs/AssignmentCreation.md +0 -12
  229. data/docs/AssignmentSubmission.md +0 -19
  230. data/docs/AssignmentSubmissionUpdate.md +0 -11
  231. data/docs/ClassApi.md +0 -1051
  232. data/docs/ClassAttachmentCreation.md +0 -10
  233. data/docs/ClassCreation.md +0 -9
  234. data/docs/ClassDetails.md +0 -25
  235. data/docs/ClassDetailsCanvas.md +0 -9
  236. data/docs/ClassDetailsClever.md +0 -14
  237. data/docs/ClassDetailsGoogleClassroom.md +0 -11
  238. data/docs/ClassDetailsGoogleDrive.md +0 -9
  239. data/docs/ClassDetailsLti.md +0 -10
  240. data/docs/ClassRoles.md +0 -7
  241. data/docs/ClassState.md +0 -7
  242. data/docs/ClassUpdate.md +0 -9
  243. data/docs/Collection.md +0 -18
  244. data/docs/CollectionApi.md +0 -521
  245. data/docs/CollectionCapabilities.md +0 -12
  246. data/docs/CollectionCreation.md +0 -8
  247. data/docs/CollectionModification.md +0 -8
  248. data/docs/CollectionPrivacy.md +0 -7
  249. data/docs/CollectionTitle.md +0 -7
  250. data/docs/CollectionType.md +0 -7
  251. data/docs/FlatErrorResponse.md +0 -11
  252. data/docs/FlatLocales.md +0 -7
  253. data/docs/GoogleClassroomCoursework.md +0 -10
  254. data/docs/GoogleClassroomSubmission.md +0 -10
  255. data/docs/Group.md +0 -14
  256. data/docs/GroupApi.md +0 -167
  257. data/docs/GroupDetails.md +0 -14
  258. data/docs/GroupType.md +0 -7
  259. data/docs/LicenseMode.md +0 -7
  260. data/docs/LicenseSources.md +0 -7
  261. data/docs/LmsName.md +0 -7
  262. data/docs/LtiCredentials.md +0 -16
  263. data/docs/LtiCredentialsCreation.md +0 -9
  264. data/docs/MediaAttachment.md +0 -23
  265. data/docs/MediaScoreSharingMode.md +0 -7
  266. data/docs/OrganizationApi.md +0 -538
  267. data/docs/OrganizationInvitation.md +0 -14
  268. data/docs/OrganizationInvitationCreation.md +0 -9
  269. data/docs/OrganizationRoles.md +0 -7
  270. data/docs/ResourceCollaborator.md +0 -16
  271. data/docs/ResourceCollaboratorCreation.md +0 -14
  272. data/docs/ResourceRights.md +0 -10
  273. data/docs/ResourceSharingKey.md +0 -7
  274. data/docs/ScoreApi.md +0 -1658
  275. data/docs/ScoreComment.md +0 -22
  276. data/docs/ScoreCommentContext.md +0 -14
  277. data/docs/ScoreCommentCreation.md +0 -13
  278. data/docs/ScoreCommentUpdate.md +0 -11
  279. data/docs/ScoreCommentsCounts.md +0 -11
  280. data/docs/ScoreCreation.md +0 -14
  281. data/docs/ScoreCreationType.md +0 -7
  282. data/docs/ScoreData.md +0 -7
  283. data/docs/ScoreDataEncoding.md +0 -7
  284. data/docs/ScoreDetails.md +0 -36
  285. data/docs/ScoreFork.md +0 -8
  286. data/docs/ScoreLicense.md +0 -7
  287. data/docs/ScoreLikesCounts.md +0 -10
  288. data/docs/ScoreModification.md +0 -14
  289. data/docs/ScorePrivacy.md +0 -7
  290. data/docs/ScoreRevision.md +0 -14
  291. data/docs/ScoreRevisionCreation.md +0 -11
  292. data/docs/ScoreRevisionStatistics.md +0 -9
  293. data/docs/ScoreSource.md +0 -8
  294. data/docs/ScoreSummary.md +0 -13
  295. data/docs/ScoreTrack.md +0 -19
  296. data/docs/ScoreTrackCreation.md +0 -12
  297. data/docs/ScoreTrackPoint.md +0 -10
  298. data/docs/ScoreTrackState.md +0 -7
  299. data/docs/ScoreTrackType.md +0 -7
  300. data/docs/ScoreTrackUpdate.md +0 -11
  301. data/docs/ScoreViewsCounts.md +0 -10
  302. data/docs/UserAdminUpdate.md +0 -9
  303. data/docs/UserApi.md +0 -173
  304. data/docs/UserBasics.md +0 -13
  305. data/docs/UserCreation.md +0 -11
  306. data/docs/UserDetails.md +0 -28
  307. data/docs/UserDetailsAdmin.md +0 -20
  308. data/docs/UserDetailsAdminLicense.md +0 -12
  309. data/docs/UserInstruments.md +0 -7
  310. data/docs/UserPublic.md +0 -25
  311. data/docs/UserPublicSummary.md +0 -17
  312. data/flat_api.gemspec +0 -48
  313. data/lib/flat_api/models/assignment_creation.rb +0 -230
  314. data/lib/flat_api/models/collection_title.rb +0 -179
  315. data/lib/flat_api/models/flat_locales.rb +0 -36
  316. data/lib/flat_api/models/resource_sharing_key.rb +0 -179
  317. data/lib/flat_api/models/score_data.rb +0 -179
  318. data/lib/flat_api/models/score_data_encoding.rb +0 -30
  319. data/lib/flat_api/models/user_details_admin_license.rb +0 -227
  320. data/lib/flat_api/models/user_instruments.rb +0 -179
  321. data/spec/api/account_api_spec.rb +0 -46
  322. data/spec/api/class_api_spec.rb +0 -278
  323. data/spec/api/collection_api_spec.rb +0 -159
  324. data/spec/api/group_api_spec.rb +0 -72
  325. data/spec/api/organization_api_spec.rb +0 -162
  326. data/spec/api/score_api_spec.rb +0 -426
  327. data/spec/api/user_api_spec.rb +0 -73
  328. data/spec/api_client_spec.rb +0 -226
  329. data/spec/configuration_spec.rb +0 -42
  330. data/spec/models/assignment_copy_spec.rb +0 -42
  331. data/spec/models/assignment_creation_spec.rb +0 -66
  332. data/spec/models/assignment_spec.rb +0 -106
  333. data/spec/models/assignment_submission_spec.rb +0 -108
  334. data/spec/models/assignment_submission_update_spec.rb +0 -60
  335. data/spec/models/class_attachment_creation_spec.rb +0 -58
  336. data/spec/models/class_creation_spec.rb +0 -48
  337. data/spec/models/class_details_canvas_spec.rb +0 -48
  338. data/spec/models/class_details_clever_spec.rb +0 -82
  339. data/spec/models/class_details_google_classroom_spec.rb +0 -60
  340. data/spec/models/class_details_google_drive_spec.rb +0 -48
  341. data/spec/models/class_details_lti_spec.rb +0 -54
  342. data/spec/models/class_details_spec.rb +0 -144
  343. data/spec/models/class_roles_spec.rb +0 -36
  344. data/spec/models/class_state_spec.rb +0 -36
  345. data/spec/models/class_update_spec.rb +0 -48
  346. data/spec/models/collection_capabilities_spec.rb +0 -66
  347. data/spec/models/collection_creation_spec.rb +0 -42
  348. data/spec/models/collection_modification_spec.rb +0 -42
  349. data/spec/models/collection_privacy_spec.rb +0 -36
  350. data/spec/models/collection_spec.rb +0 -102
  351. data/spec/models/collection_title_spec.rb +0 -36
  352. data/spec/models/collection_type_spec.rb +0 -36
  353. data/spec/models/flat_error_response_spec.rb +0 -60
  354. data/spec/models/flat_locales_spec.rb +0 -36
  355. data/spec/models/google_classroom_coursework_spec.rb +0 -54
  356. data/spec/models/google_classroom_submission_spec.rb +0 -54
  357. data/spec/models/group_details_spec.rb +0 -78
  358. data/spec/models/group_spec.rb +0 -82
  359. data/spec/models/group_type_spec.rb +0 -36
  360. data/spec/models/license_mode_spec.rb +0 -36
  361. data/spec/models/license_sources_spec.rb +0 -36
  362. data/spec/models/lms_name_spec.rb +0 -36
  363. data/spec/models/lti_credentials_creation_spec.rb +0 -48
  364. data/spec/models/lti_credentials_spec.rb +0 -90
  365. data/spec/models/media_attachment_spec.rb +0 -136
  366. data/spec/models/media_score_sharing_mode_spec.rb +0 -36
  367. data/spec/models/organization_invitation_creation_spec.rb +0 -48
  368. data/spec/models/organization_invitation_spec.rb +0 -78
  369. data/spec/models/organization_roles_spec.rb +0 -36
  370. data/spec/models/resource_collaborator_creation_spec.rb +0 -78
  371. data/spec/models/resource_collaborator_spec.rb +0 -90
  372. data/spec/models/resource_rights_spec.rb +0 -54
  373. data/spec/models/resource_sharing_key_spec.rb +0 -36
  374. data/spec/models/score_comment_context_spec.rb +0 -78
  375. data/spec/models/score_comment_creation_spec.rb +0 -72
  376. data/spec/models/score_comment_spec.rb +0 -130
  377. data/spec/models/score_comment_update_spec.rb +0 -60
  378. data/spec/models/score_comments_counts_spec.rb +0 -60
  379. data/spec/models/score_creation_spec.rb +0 -78
  380. data/spec/models/score_creation_type_spec.rb +0 -36
  381. data/spec/models/score_data_encoding_spec.rb +0 -36
  382. data/spec/models/score_data_spec.rb +0 -36
  383. data/spec/models/score_details_spec.rb +0 -210
  384. data/spec/models/score_fork_spec.rb +0 -42
  385. data/spec/models/score_license_spec.rb +0 -36
  386. data/spec/models/score_likes_counts_spec.rb +0 -54
  387. data/spec/models/score_modification_spec.rb +0 -78
  388. data/spec/models/score_privacy_spec.rb +0 -36
  389. data/spec/models/score_revision_creation_spec.rb +0 -60
  390. data/spec/models/score_revision_spec.rb +0 -78
  391. data/spec/models/score_revision_statistics_spec.rb +0 -48
  392. data/spec/models/score_source_spec.rb +0 -42
  393. data/spec/models/score_summary_spec.rb +0 -72
  394. data/spec/models/score_track_creation_spec.rb +0 -66
  395. data/spec/models/score_track_point_spec.rb +0 -58
  396. data/spec/models/score_track_spec.rb +0 -108
  397. data/spec/models/score_track_state_spec.rb +0 -36
  398. data/spec/models/score_track_type_spec.rb +0 -36
  399. data/spec/models/score_track_update_spec.rb +0 -60
  400. data/spec/models/score_views_counts_spec.rb +0 -54
  401. data/spec/models/user_admin_update_spec.rb +0 -48
  402. data/spec/models/user_basics_spec.rb +0 -72
  403. data/spec/models/user_creation_spec.rb +0 -60
  404. data/spec/models/user_details_admin_license_spec.rb +0 -66
  405. data/spec/models/user_details_admin_spec.rb +0 -114
  406. data/spec/models/user_details_spec.rb +0 -166
  407. data/spec/models/user_instruments_spec.rb +0 -36
  408. data/spec/models/user_public_spec.rb +0 -144
  409. data/spec/models/user_public_summary_spec.rb +0 -96
  410. data/spec/spec_helper.rb +0 -111
@@ -1,23 +1,26 @@
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, MuseScore, ABC notation, and many other formats * 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.6.0
6
+ The version of the OpenAPI document: 2.26.1
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
+ Generator version: 7.24.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module FlatApi
16
17
  # Assignment Submission
17
- class AssignmentSubmission
18
+ class AssignmentSubmission < ApiModelBase
18
19
  # Unique identifier of the submission
19
20
  attr_accessor :id
20
21
 
22
+ attr_accessor :state
23
+
21
24
  # Unique identifier of the classroom where the assignment was posted
22
25
  attr_accessor :classroom
23
26
 
@@ -32,131 +35,392 @@ module FlatApi
32
35
 
33
36
  attr_accessor :attachments
34
37
 
35
- # The date when the student submitted his work
38
+ # The date when the student submitted their work
36
39
  attr_accessor :submission_date
37
40
 
38
- # An optionnal comment sent by the student when submitting his work
39
- attr_accessor :student_comment
40
-
41
41
  # The date when the teacher returned the work
42
42
  attr_accessor :return_date
43
43
 
44
- # The feedback associated with the return
45
- attr_accessor :return_feedback
46
-
47
44
  # The User unique identifier of the teacher who returned the submission
48
45
  attr_accessor :return_creator
49
46
 
47
+ # Optional grade. If unset, no grade was set.
48
+ attr_accessor :grade
49
+
50
+ # Optional grade. If unset, no grade was set. This value is only visible by the teacher, and we will be set to `grade` once the teacher returns the submission
51
+ attr_accessor :draft_grade
52
+
53
+ # Optional max points for the grade. If set, a corresponding `draftGrade` or `grade` will be set.
54
+ attr_accessor :max_points
55
+
56
+ # The ids of exercises when they need to be in a specific order
57
+ attr_accessor :exercises_ids
58
+
59
+ attr_accessor :playback
60
+
61
+ attr_accessor :comments
62
+
50
63
  attr_accessor :google_classroom
51
64
 
65
+ attr_accessor :microsoft_graph
66
+
67
+ attr_accessor :lti
68
+
69
+ class EnumAttributeValidator
70
+ attr_reader :datatype
71
+ attr_reader :allowable_values
72
+
73
+ def initialize(datatype, allowable_values)
74
+ @allowable_values = allowable_values.map do |value|
75
+ case datatype.to_s
76
+ when /Integer/i
77
+ value.to_i
78
+ when /Float/i
79
+ value.to_f
80
+ else
81
+ value
82
+ end
83
+ end
84
+ end
85
+
86
+ def valid?(value)
87
+ !value || allowable_values.include?(value)
88
+ end
89
+ end
52
90
 
53
91
  # Attribute mapping from ruby-style variable name to JSON key.
54
92
  def self.attribute_map
55
93
  {
56
94
  :'id' => :'id',
95
+ :'state' => :'state',
57
96
  :'classroom' => :'classroom',
58
97
  :'assignment' => :'assignment',
59
98
  :'creator' => :'creator',
60
99
  :'creation_date' => :'creationDate',
61
100
  :'attachments' => :'attachments',
62
101
  :'submission_date' => :'submissionDate',
63
- :'student_comment' => :'studentComment',
64
102
  :'return_date' => :'returnDate',
65
- :'return_feedback' => :'returnFeedback',
66
103
  :'return_creator' => :'returnCreator',
67
- :'google_classroom' => :'googleClassroom'
104
+ :'grade' => :'grade',
105
+ :'draft_grade' => :'draftGrade',
106
+ :'max_points' => :'maxPoints',
107
+ :'exercises_ids' => :'exercisesIds',
108
+ :'playback' => :'playback',
109
+ :'comments' => :'comments',
110
+ :'google_classroom' => :'googleClassroom',
111
+ :'microsoft_graph' => :'microsoftGraph',
112
+ :'lti' => :'lti'
68
113
  }
69
114
  end
70
115
 
116
+ # Returns attribute mapping this model knows about
117
+ def self.acceptable_attribute_map
118
+ attribute_map
119
+ end
120
+
121
+ # Returns all the JSON keys this model knows about
122
+ def self.acceptable_attributes
123
+ acceptable_attribute_map.values
124
+ end
125
+
71
126
  # Attribute type mapping.
72
- def self.swagger_types
127
+ def self.openapi_types
73
128
  {
74
129
  :'id' => :'String',
130
+ :'state' => :'AssignmentSubmissionState',
75
131
  :'classroom' => :'String',
76
132
  :'assignment' => :'String',
77
133
  :'creator' => :'String',
78
134
  :'creation_date' => :'String',
79
135
  :'attachments' => :'Array<MediaAttachment>',
80
136
  :'submission_date' => :'String',
81
- :'student_comment' => :'String',
82
137
  :'return_date' => :'String',
83
- :'return_feedback' => :'String',
84
138
  :'return_creator' => :'String',
85
- :'google_classroom' => :'GoogleClassroomSubmission'
139
+ :'grade' => :'Float',
140
+ :'draft_grade' => :'Float',
141
+ :'max_points' => :'Float',
142
+ :'exercises_ids' => :'Array<String>',
143
+ :'playback' => :'Array<AssignmentSubmissionPlayback>',
144
+ :'comments' => :'AssignmentSubmissionComments',
145
+ :'google_classroom' => :'GoogleClassroomSubmission',
146
+ :'microsoft_graph' => :'MicrosoftGraphSubmission',
147
+ :'lti' => :'AssignmentSubmissionLti'
86
148
  }
87
149
  end
88
150
 
151
+ # List of attributes with nullable: true
152
+ def self.openapi_nullable
153
+ Set.new([
154
+ :'grade',
155
+ :'draft_grade',
156
+ ])
157
+ end
158
+
89
159
  # Initializes the object
90
160
  # @param [Hash] attributes Model attributes in the form of hash
91
161
  def initialize(attributes = {})
92
- return unless attributes.is_a?(Hash)
162
+ if (!attributes.is_a?(Hash))
163
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::AssignmentSubmission` initialize method"
164
+ end
93
165
 
94
- # convert string to symbol for hash key
95
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
166
+ # check to see if the attribute exists and convert string to symbol for hash key
167
+ acceptable_attribute_map = self.class.acceptable_attribute_map
168
+ attributes = attributes.each_with_object({}) { |(k, v), h|
169
+ if (!acceptable_attribute_map.key?(k.to_sym))
170
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::AssignmentSubmission`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
171
+ end
172
+ h[k.to_sym] = v
173
+ }
96
174
 
97
- if attributes.has_key?(:'id')
175
+ if attributes.key?(:'id')
98
176
  self.id = attributes[:'id']
177
+ else
178
+ self.id = nil
179
+ end
180
+
181
+ if attributes.key?(:'state')
182
+ self.state = attributes[:'state']
183
+ else
184
+ self.state = nil
99
185
  end
100
186
 
101
- if attributes.has_key?(:'classroom')
187
+ if attributes.key?(:'classroom')
102
188
  self.classroom = attributes[:'classroom']
189
+ else
190
+ self.classroom = nil
103
191
  end
104
192
 
105
- if attributes.has_key?(:'assignment')
193
+ if attributes.key?(:'assignment')
106
194
  self.assignment = attributes[:'assignment']
195
+ else
196
+ self.assignment = nil
107
197
  end
108
198
 
109
- if attributes.has_key?(:'creator')
199
+ if attributes.key?(:'creator')
110
200
  self.creator = attributes[:'creator']
201
+ else
202
+ self.creator = nil
111
203
  end
112
204
 
113
- if attributes.has_key?(:'creationDate')
114
- self.creation_date = attributes[:'creationDate']
205
+ if attributes.key?(:'creation_date')
206
+ self.creation_date = attributes[:'creation_date']
207
+ else
208
+ self.creation_date = nil
115
209
  end
116
210
 
117
- if attributes.has_key?(:'attachments')
211
+ if attributes.key?(:'attachments')
118
212
  if (value = attributes[:'attachments']).is_a?(Array)
119
213
  self.attachments = value
120
214
  end
215
+ else
216
+ self.attachments = nil
217
+ end
218
+
219
+ if attributes.key?(:'submission_date')
220
+ self.submission_date = attributes[:'submission_date']
221
+ end
222
+
223
+ if attributes.key?(:'return_date')
224
+ self.return_date = attributes[:'return_date']
225
+ end
226
+
227
+ if attributes.key?(:'return_creator')
228
+ self.return_creator = attributes[:'return_creator']
121
229
  end
122
230
 
123
- if attributes.has_key?(:'submissionDate')
124
- self.submission_date = attributes[:'submissionDate']
231
+ if attributes.key?(:'grade')
232
+ self.grade = attributes[:'grade']
125
233
  end
126
234
 
127
- if attributes.has_key?(:'studentComment')
128
- self.student_comment = attributes[:'studentComment']
235
+ if attributes.key?(:'draft_grade')
236
+ self.draft_grade = attributes[:'draft_grade']
129
237
  end
130
238
 
131
- if attributes.has_key?(:'returnDate')
132
- self.return_date = attributes[:'returnDate']
239
+ if attributes.key?(:'max_points')
240
+ self.max_points = attributes[:'max_points']
133
241
  end
134
242
 
135
- if attributes.has_key?(:'returnFeedback')
136
- self.return_feedback = attributes[:'returnFeedback']
243
+ if attributes.key?(:'exercises_ids')
244
+ if (value = attributes[:'exercises_ids']).is_a?(Array)
245
+ self.exercises_ids = value
246
+ end
137
247
  end
138
248
 
139
- if attributes.has_key?(:'returnCreator')
140
- self.return_creator = attributes[:'returnCreator']
249
+ if attributes.key?(:'playback')
250
+ if (value = attributes[:'playback']).is_a?(Array)
251
+ self.playback = value
252
+ end
253
+ else
254
+ self.playback = nil
141
255
  end
142
256
 
143
- if attributes.has_key?(:'googleClassroom')
144
- self.google_classroom = attributes[:'googleClassroom']
257
+ if attributes.key?(:'comments')
258
+ self.comments = attributes[:'comments']
259
+ else
260
+ self.comments = nil
145
261
  end
146
262
 
263
+ if attributes.key?(:'google_classroom')
264
+ self.google_classroom = attributes[:'google_classroom']
265
+ end
266
+
267
+ if attributes.key?(:'microsoft_graph')
268
+ self.microsoft_graph = attributes[:'microsoft_graph']
269
+ end
270
+
271
+ if attributes.key?(:'lti')
272
+ self.lti = attributes[:'lti']
273
+ end
147
274
  end
148
275
 
149
276
  # Show invalid properties with the reasons. Usually used together with valid?
150
277
  # @return Array for valid properties with the reasons
151
278
  def list_invalid_properties
279
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
152
280
  invalid_properties = Array.new
153
- return invalid_properties
281
+ if @id.nil?
282
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
283
+ end
284
+
285
+ if @state.nil?
286
+ invalid_properties.push('invalid value for "state", state cannot be nil.')
287
+ end
288
+
289
+ if @classroom.nil?
290
+ invalid_properties.push('invalid value for "classroom", classroom cannot be nil.')
291
+ end
292
+
293
+ if @assignment.nil?
294
+ invalid_properties.push('invalid value for "assignment", assignment cannot be nil.')
295
+ end
296
+
297
+ if @creator.nil?
298
+ invalid_properties.push('invalid value for "creator", creator cannot be nil.')
299
+ end
300
+
301
+ if @creation_date.nil?
302
+ invalid_properties.push('invalid value for "creation_date", creation_date cannot be nil.')
303
+ end
304
+
305
+ if @attachments.nil?
306
+ invalid_properties.push('invalid value for "attachments", attachments cannot be nil.')
307
+ end
308
+
309
+ if @playback.nil?
310
+ invalid_properties.push('invalid value for "playback", playback cannot be nil.')
311
+ end
312
+
313
+ if @comments.nil?
314
+ invalid_properties.push('invalid value for "comments", comments cannot be nil.')
315
+ end
316
+
317
+ invalid_properties
154
318
  end
155
319
 
156
320
  # Check to see if the all the properties in the model are valid
157
321
  # @return true if the model is valid
158
322
  def valid?
159
- return true
323
+ warn '[DEPRECATED] the `valid?` method is obsolete'
324
+ return false if @id.nil?
325
+ return false if @state.nil?
326
+ return false if @classroom.nil?
327
+ return false if @assignment.nil?
328
+ return false if @creator.nil?
329
+ return false if @creation_date.nil?
330
+ return false if @attachments.nil?
331
+ return false if @playback.nil?
332
+ return false if @comments.nil?
333
+ true
334
+ end
335
+
336
+ # Custom attribute writer method with validation
337
+ # @param [Object] id Value to be assigned
338
+ def id=(id)
339
+ if id.nil?
340
+ fail ArgumentError, 'id cannot be nil'
341
+ end
342
+
343
+ @id = id
344
+ end
345
+
346
+ # Custom attribute writer method with validation
347
+ # @param [Object] state Value to be assigned
348
+ def state=(state)
349
+ if state.nil?
350
+ fail ArgumentError, 'state cannot be nil'
351
+ end
352
+
353
+ @state = state
354
+ end
355
+
356
+ # Custom attribute writer method with validation
357
+ # @param [Object] classroom Value to be assigned
358
+ def classroom=(classroom)
359
+ if classroom.nil?
360
+ fail ArgumentError, 'classroom cannot be nil'
361
+ end
362
+
363
+ @classroom = classroom
364
+ end
365
+
366
+ # Custom attribute writer method with validation
367
+ # @param [Object] assignment Value to be assigned
368
+ def assignment=(assignment)
369
+ if assignment.nil?
370
+ fail ArgumentError, 'assignment cannot be nil'
371
+ end
372
+
373
+ @assignment = assignment
374
+ end
375
+
376
+ # Custom attribute writer method with validation
377
+ # @param [Object] creator Value to be assigned
378
+ def creator=(creator)
379
+ if creator.nil?
380
+ fail ArgumentError, 'creator cannot be nil'
381
+ end
382
+
383
+ @creator = creator
384
+ end
385
+
386
+ # Custom attribute writer method with validation
387
+ # @param [Object] creation_date Value to be assigned
388
+ def creation_date=(creation_date)
389
+ if creation_date.nil?
390
+ fail ArgumentError, 'creation_date cannot be nil'
391
+ end
392
+
393
+ @creation_date = creation_date
394
+ end
395
+
396
+ # Custom attribute writer method with validation
397
+ # @param [Object] attachments Value to be assigned
398
+ def attachments=(attachments)
399
+ if attachments.nil?
400
+ fail ArgumentError, 'attachments cannot be nil'
401
+ end
402
+
403
+ @attachments = attachments
404
+ end
405
+
406
+ # Custom attribute writer method with validation
407
+ # @param [Object] playback Value to be assigned
408
+ def playback=(playback)
409
+ if playback.nil?
410
+ fail ArgumentError, 'playback cannot be nil'
411
+ end
412
+
413
+ @playback = playback
414
+ end
415
+
416
+ # Custom attribute writer method with validation
417
+ # @param [Object] comments Value to be assigned
418
+ def comments=(comments)
419
+ if comments.nil?
420
+ fail ArgumentError, 'comments cannot be nil'
421
+ end
422
+
423
+ @comments = comments
160
424
  end
161
425
 
162
426
  # Checks equality by comparing each attribute.
@@ -165,17 +429,24 @@ module FlatApi
165
429
  return true if self.equal?(o)
166
430
  self.class == o.class &&
167
431
  id == o.id &&
432
+ state == o.state &&
168
433
  classroom == o.classroom &&
169
434
  assignment == o.assignment &&
170
435
  creator == o.creator &&
171
436
  creation_date == o.creation_date &&
172
437
  attachments == o.attachments &&
173
438
  submission_date == o.submission_date &&
174
- student_comment == o.student_comment &&
175
439
  return_date == o.return_date &&
176
- return_feedback == o.return_feedback &&
177
440
  return_creator == o.return_creator &&
178
- google_classroom == o.google_classroom
441
+ grade == o.grade &&
442
+ draft_grade == o.draft_grade &&
443
+ max_points == o.max_points &&
444
+ exercises_ids == o.exercises_ids &&
445
+ playback == o.playback &&
446
+ comments == o.comments &&
447
+ google_classroom == o.google_classroom &&
448
+ microsoft_graph == o.microsoft_graph &&
449
+ lti == o.lti
179
450
  end
180
451
 
181
452
  # @see the `==` method
@@ -185,83 +456,32 @@ module FlatApi
185
456
  end
186
457
 
187
458
  # Calculates hash code according to all attributes.
188
- # @return [Fixnum] Hash code
459
+ # @return [Integer] Hash code
189
460
  def hash
190
- [id, classroom, assignment, creator, creation_date, attachments, submission_date, student_comment, return_date, return_feedback, return_creator, google_classroom].hash
461
+ [id, state, classroom, assignment, creator, creation_date, attachments, submission_date, return_date, return_creator, grade, draft_grade, max_points, exercises_ids, playback, comments, google_classroom, microsoft_graph, lti].hash
191
462
  end
192
463
 
193
464
  # Builds the object from hash
194
465
  # @param [Hash] attributes Model attributes in the form of hash
195
466
  # @return [Object] Returns the model itself
196
- def build_from_hash(attributes)
467
+ def self.build_from_hash(attributes)
197
468
  return nil unless attributes.is_a?(Hash)
198
- self.class.swagger_types.each_pair do |key, type|
199
- if type =~ /\AArray<(.*)>/i
200
- # check to ensure the input is an array given that the the attribute
469
+ attributes = attributes.transform_keys(&:to_sym)
470
+ transformed_hash = {}
471
+ openapi_types.each_pair do |key, type|
472
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
473
+ transformed_hash["#{key}"] = nil
474
+ elsif type =~ /\AArray<(.*)>/i
475
+ # check to ensure the input is an array given that the attribute
201
476
  # is documented as an array but the input is not
202
- if attributes[self.class.attribute_map[key]].is_a?(Array)
203
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
204
- end
205
- elsif !attributes[self.class.attribute_map[key]].nil?
206
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
207
- end # or else data not found in attributes(hash), not an issue as the data can be optional
208
- end
209
-
210
- self
211
- end
212
-
213
- # Deserializes the data based on type
214
- # @param string type Data type
215
- # @param string value Value to be deserialized
216
- # @return [Object] Deserialized data
217
- def _deserialize(type, value)
218
- case type.to_sym
219
- when :DateTime
220
- DateTime.parse(value)
221
- when :Date
222
- Date.parse(value)
223
- when :String
224
- value.to_s
225
- when :Integer
226
- value.to_i
227
- when :Float
228
- value.to_f
229
- when :BOOLEAN
230
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
231
- true
232
- else
233
- false
234
- end
235
- when :Object
236
- # generic object (usually a Hash), return directly
237
- value
238
- when /\AArray<(?<inner_type>.+)>\z/
239
- inner_type = Regexp.last_match[:inner_type]
240
- value.map { |v| _deserialize(inner_type, v) }
241
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
242
- k_type = Regexp.last_match[:k_type]
243
- v_type = Regexp.last_match[:v_type]
244
- {}.tap do |hash|
245
- value.each do |k, v|
246
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
477
+ if attributes[attribute_map[key]].is_a?(Array)
478
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
247
479
  end
480
+ elsif !attributes[attribute_map[key]].nil?
481
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
248
482
  end
249
- else # model
250
- temp_model = FlatApi.const_get(type).new
251
- temp_model.build_from_hash(value)
252
483
  end
253
- end
254
-
255
- # Returns the string representation of the object
256
- # @return [String] String presentation of the object
257
- def to_s
258
- to_hash.to_s
259
- end
260
-
261
- # to_body is an alias to to_hash (backward compatibility)
262
- # @return [Hash] Returns the object in the form of hash
263
- def to_body
264
- to_hash
484
+ new(transformed_hash)
265
485
  end
266
486
 
267
487
  # Returns the object in the form of hash
@@ -270,30 +490,16 @@ module FlatApi
270
490
  hash = {}
271
491
  self.class.attribute_map.each_pair do |attr, param|
272
492
  value = self.send(attr)
273
- next if value.nil?
493
+ if value.nil?
494
+ is_nullable = self.class.openapi_nullable.include?(attr)
495
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
496
+ end
497
+
274
498
  hash[param] = _to_hash(value)
275
499
  end
276
500
  hash
277
501
  end
278
502
 
279
- # Outputs non-array value in the form of hash
280
- # For object, use to_hash. Otherwise, just return the value
281
- # @param [Object] value Any valid value
282
- # @return [Hash] Returns the value in the form of hash
283
- def _to_hash(value)
284
- if value.is_a?(Array)
285
- value.compact.map{ |v| _to_hash(v) }
286
- elsif value.is_a?(Hash)
287
- {}.tap do |hash|
288
- value.each { |k, v| hash[k] = _to_hash(v) }
289
- end
290
- elsif value.respond_to? :to_hash
291
- value.to_hash
292
- else
293
- value
294
- end
295
- end
296
-
297
503
  end
298
504
 
299
505
  end