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,49 +1,92 @@
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 details
17
- class Assignment
18
- # State of the assignment
19
- attr_accessor :state
18
+ class Assignment < ApiModelBase
19
+ # Unique identifier of the assignment
20
+ attr_accessor :id
21
+
22
+ attr_accessor :type
23
+
24
+ attr_accessor :capabilities
20
25
 
21
26
  # Title of the assignment
22
27
  attr_accessor :title
23
28
 
24
- # The unique identifier of the class where this assignment was posted
25
- attr_accessor :classroom
26
-
27
- # Description and content of the assignment
29
+ # Student instructions and content of the assignment (plain text)
28
30
  attr_accessor :description
29
31
 
32
+ # HTML version of student instructions with rich text formatting. Supports the following HTML tags: p, br, strong, b, em, i, u, a, ul, ol, li, h1, h2, h3, img. Images are served as absolute http(s) URLs.
33
+ attr_accessor :description_html
34
+
35
+ # Teacher-only instructions for this assignment. These instructions are only visible to teachers and are not returned when students view the assignment. If `teacherInstructionsHtml` is provided, this field will contain the plain text version for compatibility.
36
+ attr_accessor :teacher_instructions
37
+
38
+ # HTML version of teacher-only instructions with rich text formatting. Supports the following HTML tags: p, br, strong, b, em, i, u, a, ul, ol, li, h1, h2, h3, img. Images are served as absolute http(s) URLs.
39
+ attr_accessor :teacher_instructions_html
40
+
41
+ # The URL of the cover to display
42
+ attr_accessor :cover
43
+
44
+ # The id of the cover to display
45
+ attr_accessor :cover_file
46
+
47
+ # Reference material handed to the students with the assignment: scores, videos, links and Drive files. A score attached here is the one each student receives their own copy of.
30
48
  attr_accessor :attachments
31
49
 
32
- attr_accessor :submissions
50
+ # For all assignments created after 02/2023, all the underlying resources must be dedicated and stored in the assignment. This boolean indicates that this assignment only supports dedicated attachments.
51
+ attr_accessor :use_dedicated_attachments
52
+
53
+ # If set, the grading will be enabled for the assignement
54
+ attr_accessor :max_points
55
+
56
+ # For worksheets, how grading will work for the assignment: - If set to `auto`, the grades will be automatically released when the student submits the submissions - If set to `manual`, the grades will only be set as `draftGrade` and will be released when the teacher returns the submissions
57
+ attr_accessor :release_grades
58
+
59
+ # Mixing worksheets exercises for each student
60
+ attr_accessor :shuffle_exercises
61
+
62
+ # The id of the associated toolset
63
+ attr_accessor :toolset
64
+
65
+ # The number of playback authorized on the scores of the assignment.
66
+ attr_accessor :nb_playback_authorized
67
+
68
+ # Restrict the ability to get an audio feedback every time a student adds or selects a note.
69
+ attr_accessor :restrict_play_note
33
70
 
34
- # The User unique identifier of the creator of this assignment
35
- attr_accessor :creator
71
+ # Restrict the audio source to provided audio tracks on a score. Students won't be able to use the editor playback.
72
+ attr_accessor :restrict_to_audio_tracks
36
73
 
37
- # The creation date of this assignment
38
- attr_accessor :creation_date
74
+ attr_accessor :submission_students_mode
39
75
 
40
- # The publication (scheduled) date of the assignment. If this one is specified, the assignment will only be listed to the teachers of the class.
41
- attr_accessor :scheduled_date
76
+ # For performance assignments: recording type that will be either 'audio' or 'video'. * `audio`: Only audio will be required during the recording. * `video`: Camera will be required during the recording. Only set when type is 'performance'.
77
+ attr_accessor :recording_type
42
78
 
43
- # The due date of this assignment, late submissions will be marked as paste due.
44
- attr_accessor :due_date
79
+ # For performance assignments: Enable students to use the metronome while they are recording, helping them stay in time. Only set when type is 'performance'.
80
+ attr_accessor :allow_metronome
45
81
 
46
- attr_accessor :google_classroom
82
+ # For performance assignments: Enable students to listen to the accompaniment without their instrument part while they are playing. Only set when type is 'performance'.
83
+ attr_accessor :allow_backing_track
84
+
85
+ # For performance assignments: whether students can adjust the playback speed of the score during recording. * `true`: Students can change the tempo/speed during practice and recording * `false`: Tempo is fixed to the original score tempo Only set when type is 'performance'.
86
+ attr_accessor :allow_speed_change
87
+
88
+ # For performance assignments: \"Free Record\" mode. When `true`, no score is attached to the assignment. Students freely record a varied repertoire or an ensemble performance without being constrained by a single score's structure or duration, and all score-dependent options (playback, metronome, backtracking, speed control) are hidden. Only set when type is 'performance'.
89
+ attr_accessor :free_record
47
90
 
48
91
  class EnumAttributeValidator
49
92
  attr_reader :datatype
@@ -70,118 +113,322 @@ module FlatApi
70
113
  # Attribute mapping from ruby-style variable name to JSON key.
71
114
  def self.attribute_map
72
115
  {
73
- :'state' => :'state',
116
+ :'id' => :'id',
117
+ :'type' => :'type',
118
+ :'capabilities' => :'capabilities',
74
119
  :'title' => :'title',
75
- :'classroom' => :'classroom',
76
120
  :'description' => :'description',
121
+ :'description_html' => :'descriptionHtml',
122
+ :'teacher_instructions' => :'teacherInstructions',
123
+ :'teacher_instructions_html' => :'teacherInstructionsHtml',
124
+ :'cover' => :'cover',
125
+ :'cover_file' => :'coverFile',
77
126
  :'attachments' => :'attachments',
78
- :'submissions' => :'submissions',
79
- :'creator' => :'creator',
80
- :'creation_date' => :'creationDate',
81
- :'scheduled_date' => :'scheduledDate',
82
- :'due_date' => :'dueDate',
83
- :'google_classroom' => :'googleClassroom'
127
+ :'use_dedicated_attachments' => :'useDedicatedAttachments',
128
+ :'max_points' => :'maxPoints',
129
+ :'release_grades' => :'releaseGrades',
130
+ :'shuffle_exercises' => :'shuffleExercises',
131
+ :'toolset' => :'toolset',
132
+ :'nb_playback_authorized' => :'nbPlaybackAuthorized',
133
+ :'restrict_play_note' => :'restrictPlayNote',
134
+ :'restrict_to_audio_tracks' => :'restrictToAudioTracks',
135
+ :'submission_students_mode' => :'submissionStudentsMode',
136
+ :'recording_type' => :'recordingType',
137
+ :'allow_metronome' => :'allowMetronome',
138
+ :'allow_backing_track' => :'allowBackingTrack',
139
+ :'allow_speed_change' => :'allowSpeedChange',
140
+ :'free_record' => :'freeRecord'
84
141
  }
85
142
  end
86
143
 
144
+ # Returns attribute mapping this model knows about
145
+ def self.acceptable_attribute_map
146
+ attribute_map
147
+ end
148
+
149
+ # Returns all the JSON keys this model knows about
150
+ def self.acceptable_attributes
151
+ acceptable_attribute_map.values
152
+ end
153
+
87
154
  # Attribute type mapping.
88
- def self.swagger_types
155
+ def self.openapi_types
89
156
  {
90
- :'state' => :'String',
157
+ :'id' => :'String',
158
+ :'type' => :'AssignmentType',
159
+ :'capabilities' => :'AssignmentCapabilities',
91
160
  :'title' => :'String',
92
- :'classroom' => :'String',
93
161
  :'description' => :'String',
162
+ :'description_html' => :'String',
163
+ :'teacher_instructions' => :'String',
164
+ :'teacher_instructions_html' => :'String',
165
+ :'cover' => :'String',
166
+ :'cover_file' => :'String',
94
167
  :'attachments' => :'Array<MediaAttachment>',
95
- :'submissions' => :'Array<AssignmentSubmission>',
96
- :'creator' => :'String',
97
- :'creation_date' => :'DateTime',
98
- :'scheduled_date' => :'DateTime',
99
- :'due_date' => :'DateTime',
100
- :'google_classroom' => :'GoogleClassroomCoursework'
168
+ :'use_dedicated_attachments' => :'Boolean',
169
+ :'max_points' => :'Float',
170
+ :'release_grades' => :'String',
171
+ :'shuffle_exercises' => :'Boolean',
172
+ :'toolset' => :'String',
173
+ :'nb_playback_authorized' => :'Float',
174
+ :'restrict_play_note' => :'Boolean',
175
+ :'restrict_to_audio_tracks' => :'Boolean',
176
+ :'submission_students_mode' => :'AssignmentSubmissionStudentsMode',
177
+ :'recording_type' => :'String',
178
+ :'allow_metronome' => :'Boolean',
179
+ :'allow_backing_track' => :'Boolean',
180
+ :'allow_speed_change' => :'Boolean',
181
+ :'free_record' => :'Boolean'
101
182
  }
102
183
  end
103
184
 
185
+ # List of attributes with nullable: true
186
+ def self.openapi_nullable
187
+ Set.new([
188
+ ])
189
+ end
190
+
104
191
  # Initializes the object
105
192
  # @param [Hash] attributes Model attributes in the form of hash
106
193
  def initialize(attributes = {})
107
- return unless attributes.is_a?(Hash)
194
+ if (!attributes.is_a?(Hash))
195
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::Assignment` initialize method"
196
+ end
108
197
 
109
- # convert string to symbol for hash key
110
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
198
+ # check to see if the attribute exists and convert string to symbol for hash key
199
+ acceptable_attribute_map = self.class.acceptable_attribute_map
200
+ attributes = attributes.each_with_object({}) { |(k, v), h|
201
+ if (!acceptable_attribute_map.key?(k.to_sym))
202
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::Assignment`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
203
+ end
204
+ h[k.to_sym] = v
205
+ }
111
206
 
112
- if attributes.has_key?(:'state')
113
- self.state = attributes[:'state']
207
+ if attributes.key?(:'id')
208
+ self.id = attributes[:'id']
209
+ else
210
+ self.id = nil
114
211
  end
115
212
 
116
- if attributes.has_key?(:'title')
117
- self.title = attributes[:'title']
213
+ if attributes.key?(:'type')
214
+ self.type = attributes[:'type']
215
+ else
216
+ self.type = nil
118
217
  end
119
218
 
120
- if attributes.has_key?(:'classroom')
121
- self.classroom = attributes[:'classroom']
219
+ if attributes.key?(:'capabilities')
220
+ self.capabilities = attributes[:'capabilities']
221
+ else
222
+ self.capabilities = nil
122
223
  end
123
224
 
124
- if attributes.has_key?(:'description')
225
+ if attributes.key?(:'title')
226
+ self.title = attributes[:'title']
227
+ else
228
+ self.title = nil
229
+ end
230
+
231
+ if attributes.key?(:'description')
125
232
  self.description = attributes[:'description']
126
233
  end
127
234
 
128
- if attributes.has_key?(:'attachments')
235
+ if attributes.key?(:'description_html')
236
+ self.description_html = attributes[:'description_html']
237
+ end
238
+
239
+ if attributes.key?(:'teacher_instructions')
240
+ self.teacher_instructions = attributes[:'teacher_instructions']
241
+ end
242
+
243
+ if attributes.key?(:'teacher_instructions_html')
244
+ self.teacher_instructions_html = attributes[:'teacher_instructions_html']
245
+ end
246
+
247
+ if attributes.key?(:'cover')
248
+ self.cover = attributes[:'cover']
249
+ end
250
+
251
+ if attributes.key?(:'cover_file')
252
+ self.cover_file = attributes[:'cover_file']
253
+ end
254
+
255
+ if attributes.key?(:'attachments')
129
256
  if (value = attributes[:'attachments']).is_a?(Array)
130
257
  self.attachments = value
131
258
  end
259
+ else
260
+ self.attachments = nil
132
261
  end
133
262
 
134
- if attributes.has_key?(:'submissions')
135
- if (value = attributes[:'submissions']).is_a?(Array)
136
- self.submissions = value
137
- end
263
+ if attributes.key?(:'use_dedicated_attachments')
264
+ self.use_dedicated_attachments = attributes[:'use_dedicated_attachments']
265
+ end
266
+
267
+ if attributes.key?(:'max_points')
268
+ self.max_points = attributes[:'max_points']
269
+ end
270
+
271
+ if attributes.key?(:'release_grades')
272
+ self.release_grades = attributes[:'release_grades']
273
+ end
274
+
275
+ if attributes.key?(:'shuffle_exercises')
276
+ self.shuffle_exercises = attributes[:'shuffle_exercises']
277
+ end
278
+
279
+ if attributes.key?(:'toolset')
280
+ self.toolset = attributes[:'toolset']
281
+ end
282
+
283
+ if attributes.key?(:'nb_playback_authorized')
284
+ self.nb_playback_authorized = attributes[:'nb_playback_authorized']
285
+ end
286
+
287
+ if attributes.key?(:'restrict_play_note')
288
+ self.restrict_play_note = attributes[:'restrict_play_note']
289
+ end
290
+
291
+ if attributes.key?(:'restrict_to_audio_tracks')
292
+ self.restrict_to_audio_tracks = attributes[:'restrict_to_audio_tracks']
138
293
  end
139
294
 
140
- if attributes.has_key?(:'creator')
141
- self.creator = attributes[:'creator']
295
+ if attributes.key?(:'submission_students_mode')
296
+ self.submission_students_mode = attributes[:'submission_students_mode']
142
297
  end
143
298
 
144
- if attributes.has_key?(:'creationDate')
145
- self.creation_date = attributes[:'creationDate']
299
+ if attributes.key?(:'recording_type')
300
+ self.recording_type = attributes[:'recording_type']
146
301
  end
147
302
 
148
- if attributes.has_key?(:'scheduledDate')
149
- self.scheduled_date = attributes[:'scheduledDate']
303
+ if attributes.key?(:'allow_metronome')
304
+ self.allow_metronome = attributes[:'allow_metronome']
150
305
  end
151
306
 
152
- if attributes.has_key?(:'dueDate')
153
- self.due_date = attributes[:'dueDate']
307
+ if attributes.key?(:'allow_backing_track')
308
+ self.allow_backing_track = attributes[:'allow_backing_track']
154
309
  end
155
310
 
156
- if attributes.has_key?(:'googleClassroom')
157
- self.google_classroom = attributes[:'googleClassroom']
311
+ if attributes.key?(:'allow_speed_change')
312
+ self.allow_speed_change = attributes[:'allow_speed_change']
158
313
  end
159
314
 
315
+ if attributes.key?(:'free_record')
316
+ self.free_record = attributes[:'free_record']
317
+ end
160
318
  end
161
319
 
162
320
  # Show invalid properties with the reasons. Usually used together with valid?
163
321
  # @return Array for valid properties with the reasons
164
322
  def list_invalid_properties
323
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
165
324
  invalid_properties = Array.new
166
- return invalid_properties
325
+ if @id.nil?
326
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
327
+ end
328
+
329
+ if @type.nil?
330
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
331
+ end
332
+
333
+ if @capabilities.nil?
334
+ invalid_properties.push('invalid value for "capabilities", capabilities cannot be nil.')
335
+ end
336
+
337
+ if @title.nil?
338
+ invalid_properties.push('invalid value for "title", title cannot be nil.')
339
+ end
340
+
341
+ if @attachments.nil?
342
+ invalid_properties.push('invalid value for "attachments", attachments cannot be nil.')
343
+ end
344
+
345
+ invalid_properties
167
346
  end
168
347
 
169
348
  # Check to see if the all the properties in the model are valid
170
349
  # @return true if the model is valid
171
350
  def valid?
172
- state_validator = EnumAttributeValidator.new('String', ["draft", "active", "archived"])
173
- return false unless state_validator.valid?(@state)
174
- return true
351
+ warn '[DEPRECATED] the `valid?` method is obsolete'
352
+ return false if @id.nil?
353
+ return false if @type.nil?
354
+ return false if @capabilities.nil?
355
+ return false if @title.nil?
356
+ return false if @attachments.nil?
357
+ release_grades_validator = EnumAttributeValidator.new('String', ["auto", "manual"])
358
+ return false unless release_grades_validator.valid?(@release_grades)
359
+ recording_type_validator = EnumAttributeValidator.new('String', ["audio", "video"])
360
+ return false unless recording_type_validator.valid?(@recording_type)
361
+ true
362
+ end
363
+
364
+ # Custom attribute writer method with validation
365
+ # @param [Object] id Value to be assigned
366
+ def id=(id)
367
+ if id.nil?
368
+ fail ArgumentError, 'id cannot be nil'
369
+ end
370
+
371
+ @id = id
372
+ end
373
+
374
+ # Custom attribute writer method with validation
375
+ # @param [Object] type Value to be assigned
376
+ def type=(type)
377
+ if type.nil?
378
+ fail ArgumentError, 'type cannot be nil'
379
+ end
380
+
381
+ @type = type
382
+ end
383
+
384
+ # Custom attribute writer method with validation
385
+ # @param [Object] capabilities Value to be assigned
386
+ def capabilities=(capabilities)
387
+ if capabilities.nil?
388
+ fail ArgumentError, 'capabilities cannot be nil'
389
+ end
390
+
391
+ @capabilities = capabilities
392
+ end
393
+
394
+ # Custom attribute writer method with validation
395
+ # @param [Object] title Value to be assigned
396
+ def title=(title)
397
+ if title.nil?
398
+ fail ArgumentError, 'title cannot be nil'
399
+ end
400
+
401
+ @title = title
402
+ end
403
+
404
+ # Custom attribute writer method with validation
405
+ # @param [Object] attachments Value to be assigned
406
+ def attachments=(attachments)
407
+ if attachments.nil?
408
+ fail ArgumentError, 'attachments cannot be nil'
409
+ end
410
+
411
+ @attachments = attachments
412
+ end
413
+
414
+ # Custom attribute writer method checking allowed values (enum).
415
+ # @param [Object] release_grades Object to be assigned
416
+ def release_grades=(release_grades)
417
+ validator = EnumAttributeValidator.new('String', ["auto", "manual"])
418
+ unless validator.valid?(release_grades)
419
+ fail ArgumentError, "invalid value for \"release_grades\", must be one of #{validator.allowable_values}."
420
+ end
421
+ @release_grades = release_grades
175
422
  end
176
423
 
177
424
  # Custom attribute writer method checking allowed values (enum).
178
- # @param [Object] state Object to be assigned
179
- def state=(state)
180
- validator = EnumAttributeValidator.new('String', ["draft", "active", "archived"])
181
- unless validator.valid?(state)
182
- fail ArgumentError, "invalid value for 'state', must be one of #{validator.allowable_values}."
425
+ # @param [Object] recording_type Object to be assigned
426
+ def recording_type=(recording_type)
427
+ validator = EnumAttributeValidator.new('String', ["audio", "video"])
428
+ unless validator.valid?(recording_type)
429
+ fail ArgumentError, "invalid value for \"recording_type\", must be one of #{validator.allowable_values}."
183
430
  end
184
- @state = state
431
+ @recording_type = recording_type
185
432
  end
186
433
 
187
434
  # Checks equality by comparing each attribute.
@@ -189,17 +436,31 @@ module FlatApi
189
436
  def ==(o)
190
437
  return true if self.equal?(o)
191
438
  self.class == o.class &&
192
- state == o.state &&
439
+ id == o.id &&
440
+ type == o.type &&
441
+ capabilities == o.capabilities &&
193
442
  title == o.title &&
194
- classroom == o.classroom &&
195
443
  description == o.description &&
444
+ description_html == o.description_html &&
445
+ teacher_instructions == o.teacher_instructions &&
446
+ teacher_instructions_html == o.teacher_instructions_html &&
447
+ cover == o.cover &&
448
+ cover_file == o.cover_file &&
196
449
  attachments == o.attachments &&
197
- submissions == o.submissions &&
198
- creator == o.creator &&
199
- creation_date == o.creation_date &&
200
- scheduled_date == o.scheduled_date &&
201
- due_date == o.due_date &&
202
- google_classroom == o.google_classroom
450
+ use_dedicated_attachments == o.use_dedicated_attachments &&
451
+ max_points == o.max_points &&
452
+ release_grades == o.release_grades &&
453
+ shuffle_exercises == o.shuffle_exercises &&
454
+ toolset == o.toolset &&
455
+ nb_playback_authorized == o.nb_playback_authorized &&
456
+ restrict_play_note == o.restrict_play_note &&
457
+ restrict_to_audio_tracks == o.restrict_to_audio_tracks &&
458
+ submission_students_mode == o.submission_students_mode &&
459
+ recording_type == o.recording_type &&
460
+ allow_metronome == o.allow_metronome &&
461
+ allow_backing_track == o.allow_backing_track &&
462
+ allow_speed_change == o.allow_speed_change &&
463
+ free_record == o.free_record
203
464
  end
204
465
 
205
466
  # @see the `==` method
@@ -209,83 +470,32 @@ module FlatApi
209
470
  end
210
471
 
211
472
  # Calculates hash code according to all attributes.
212
- # @return [Fixnum] Hash code
473
+ # @return [Integer] Hash code
213
474
  def hash
214
- [state, title, classroom, description, attachments, submissions, creator, creation_date, scheduled_date, due_date, google_classroom].hash
475
+ [id, type, capabilities, title, description, description_html, teacher_instructions, teacher_instructions_html, cover, cover_file, attachments, use_dedicated_attachments, max_points, release_grades, shuffle_exercises, toolset, nb_playback_authorized, restrict_play_note, restrict_to_audio_tracks, submission_students_mode, recording_type, allow_metronome, allow_backing_track, allow_speed_change, free_record].hash
215
476
  end
216
477
 
217
478
  # Builds the object from hash
218
479
  # @param [Hash] attributes Model attributes in the form of hash
219
480
  # @return [Object] Returns the model itself
220
- def build_from_hash(attributes)
481
+ def self.build_from_hash(attributes)
221
482
  return nil unless attributes.is_a?(Hash)
222
- self.class.swagger_types.each_pair do |key, type|
223
- if type =~ /\AArray<(.*)>/i
224
- # check to ensure the input is an array given that the the attribute
483
+ attributes = attributes.transform_keys(&:to_sym)
484
+ transformed_hash = {}
485
+ openapi_types.each_pair do |key, type|
486
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
487
+ transformed_hash["#{key}"] = nil
488
+ elsif type =~ /\AArray<(.*)>/i
489
+ # check to ensure the input is an array given that the attribute
225
490
  # is documented as an array but the input is not
226
- if attributes[self.class.attribute_map[key]].is_a?(Array)
227
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
228
- end
229
- elsif !attributes[self.class.attribute_map[key]].nil?
230
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
231
- end # or else data not found in attributes(hash), not an issue as the data can be optional
232
- end
233
-
234
- self
235
- end
236
-
237
- # Deserializes the data based on type
238
- # @param string type Data type
239
- # @param string value Value to be deserialized
240
- # @return [Object] Deserialized data
241
- def _deserialize(type, value)
242
- case type.to_sym
243
- when :DateTime
244
- DateTime.parse(value)
245
- when :Date
246
- Date.parse(value)
247
- when :String
248
- value.to_s
249
- when :Integer
250
- value.to_i
251
- when :Float
252
- value.to_f
253
- when :BOOLEAN
254
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
255
- true
256
- else
257
- false
258
- end
259
- when :Object
260
- # generic object (usually a Hash), return directly
261
- value
262
- when /\AArray<(?<inner_type>.+)>\z/
263
- inner_type = Regexp.last_match[:inner_type]
264
- value.map { |v| _deserialize(inner_type, v) }
265
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
266
- k_type = Regexp.last_match[:k_type]
267
- v_type = Regexp.last_match[:v_type]
268
- {}.tap do |hash|
269
- value.each do |k, v|
270
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
491
+ if attributes[attribute_map[key]].is_a?(Array)
492
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
271
493
  end
494
+ elsif !attributes[attribute_map[key]].nil?
495
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
272
496
  end
273
- else # model
274
- temp_model = FlatApi.const_get(type).new
275
- temp_model.build_from_hash(value)
276
497
  end
277
- end
278
-
279
- # Returns the string representation of the object
280
- # @return [String] String presentation of the object
281
- def to_s
282
- to_hash.to_s
283
- end
284
-
285
- # to_body is an alias to to_hash (backward compatibility)
286
- # @return [Hash] Returns the object in the form of hash
287
- def to_body
288
- to_hash
498
+ new(transformed_hash)
289
499
  end
290
500
 
291
501
  # Returns the object in the form of hash
@@ -294,30 +504,16 @@ module FlatApi
294
504
  hash = {}
295
505
  self.class.attribute_map.each_pair do |attr, param|
296
506
  value = self.send(attr)
297
- next if value.nil?
507
+ if value.nil?
508
+ is_nullable = self.class.openapi_nullable.include?(attr)
509
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
510
+ end
511
+
298
512
  hash[param] = _to_hash(value)
299
513
  end
300
514
  hash
301
515
  end
302
516
 
303
- # Outputs non-array value in the form of hash
304
- # For object, use to_hash. Otherwise, just return the value
305
- # @param [Object] value Any valid value
306
- # @return [Hash] Returns the value in the form of hash
307
- def _to_hash(value)
308
- if value.is_a?(Array)
309
- value.compact.map{ |v| _to_hash(v) }
310
- elsif value.is_a?(Hash)
311
- {}.tap do |hash|
312
- value.each { |k, v| hash[k] = _to_hash(v) }
313
- end
314
- elsif value.respond_to? :to_hash
315
- value.to_hash
316
- else
317
- value
318
- end
319
- end
320
-
321
517
  end
322
518
 
323
519
  end