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,37 +1,49 @@
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
  # User details (view for organization teacher / admin)
17
- class UserDetailsAdmin
18
+ class UserDetailsAdmin < ApiModelBase
18
19
  # The user unique identifier
19
20
  attr_accessor :id
20
21
 
22
+ # The type of user account
23
+ attr_accessor :type
24
+
25
+ attr_accessor :product
26
+
21
27
  # The user name (unique for the organization)
22
28
  attr_accessor :username
23
29
 
24
- # A displayable name for the user
25
- attr_accessor :name
26
-
27
- # The name that can be directly printed (name or username)
30
+ # The name that can be directly printed (name, firstname & lastname, or username)
28
31
  attr_accessor :printable_name
29
32
 
30
- # User pictue
33
+ # Firstname of the user (for education users)
34
+ attr_accessor :firstname
35
+
36
+ # Lastname of the user (for education users)
37
+ attr_accessor :lastname
38
+
39
+ # A displayable name for the user (for consumer users)
40
+ attr_accessor :name
41
+
42
+ # The URL of the picture to display
31
43
  attr_accessor :picture
32
44
 
33
- # User license status. 'True' if user is an individual Power user
34
- attr_accessor :is_power_user
45
+ # List of badges for the user profile: - `power` - `staff` - `composerOfTheMonth` - `ambassador` - `challenge`
46
+ attr_accessor :badges
35
47
 
36
48
  # Organization ID (for Edu users only)
37
49
  attr_accessor :organization
@@ -51,118 +63,304 @@ module FlatApi
51
63
 
52
64
  attr_accessor :license
53
65
 
66
+ # For Flat for Education accounts, list of Group identifiers the user is part of.
67
+ attr_accessor :groups
68
+
69
+ # Indicates if the user account is marked as a testing student account. Testing students are typically excluded from certain educational integrations and workflows. This field helps API clients distinguish between regular students and testing accounts.
70
+ attr_accessor :is_edu_testing_student
71
+
72
+ class EnumAttributeValidator
73
+ attr_reader :datatype
74
+ attr_reader :allowable_values
75
+
76
+ def initialize(datatype, allowable_values)
77
+ @allowable_values = allowable_values.map do |value|
78
+ case datatype.to_s
79
+ when /Integer/i
80
+ value.to_i
81
+ when /Float/i
82
+ value.to_f
83
+ else
84
+ value
85
+ end
86
+ end
87
+ end
88
+
89
+ def valid?(value)
90
+ !value || allowable_values.include?(value)
91
+ end
92
+ end
54
93
 
55
94
  # Attribute mapping from ruby-style variable name to JSON key.
56
95
  def self.attribute_map
57
96
  {
58
97
  :'id' => :'id',
98
+ :'type' => :'type',
99
+ :'product' => :'product',
59
100
  :'username' => :'username',
60
- :'name' => :'name',
61
101
  :'printable_name' => :'printableName',
102
+ :'firstname' => :'firstname',
103
+ :'lastname' => :'lastname',
104
+ :'name' => :'name',
62
105
  :'picture' => :'picture',
63
- :'is_power_user' => :'isPowerUser',
106
+ :'badges' => :'badges',
64
107
  :'organization' => :'organization',
65
108
  :'organization_role' => :'organizationRole',
66
109
  :'class_role' => :'classRole',
67
110
  :'html_url' => :'htmlUrl',
68
111
  :'email' => :'email',
69
112
  :'last_activity_date' => :'lastActivityDate',
70
- :'license' => :'license'
113
+ :'license' => :'license',
114
+ :'groups' => :'groups',
115
+ :'is_edu_testing_student' => :'isEduTestingStudent'
71
116
  }
72
117
  end
73
118
 
119
+ # Returns attribute mapping this model knows about
120
+ def self.acceptable_attribute_map
121
+ attribute_map
122
+ end
123
+
124
+ # Returns all the JSON keys this model knows about
125
+ def self.acceptable_attributes
126
+ acceptable_attribute_map.values
127
+ end
128
+
74
129
  # Attribute type mapping.
75
- def self.swagger_types
130
+ def self.openapi_types
76
131
  {
77
132
  :'id' => :'String',
133
+ :'type' => :'String',
134
+ :'product' => :'TutteoProduct',
78
135
  :'username' => :'String',
79
- :'name' => :'String',
80
136
  :'printable_name' => :'String',
137
+ :'firstname' => :'String',
138
+ :'lastname' => :'String',
139
+ :'name' => :'String',
81
140
  :'picture' => :'String',
82
- :'is_power_user' => :'BOOLEAN',
141
+ :'badges' => :'Array<String>',
83
142
  :'organization' => :'String',
84
143
  :'organization_role' => :'OrganizationRoles',
85
144
  :'class_role' => :'ClassRoles',
86
145
  :'html_url' => :'String',
87
146
  :'email' => :'String',
88
- :'last_activity_date' => :'DateTime',
89
- :'license' => :'UserDetailsAdminLicense'
147
+ :'last_activity_date' => :'Time',
148
+ :'license' => :'UserDetailsAdminAllOfLicense',
149
+ :'groups' => :'Array<String>',
150
+ :'is_edu_testing_student' => :'Boolean'
90
151
  }
91
152
  end
92
153
 
154
+ # List of attributes with nullable: true
155
+ def self.openapi_nullable
156
+ Set.new([
157
+ ])
158
+ end
159
+
160
+ # List of class defined in allOf (OpenAPI v3)
161
+ def self.openapi_all_of
162
+ [
163
+ :'UserPublicSummary'
164
+ ]
165
+ end
166
+
93
167
  # Initializes the object
94
168
  # @param [Hash] attributes Model attributes in the form of hash
95
169
  def initialize(attributes = {})
96
- return unless attributes.is_a?(Hash)
170
+ if (!attributes.is_a?(Hash))
171
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::UserDetailsAdmin` initialize method"
172
+ end
97
173
 
98
- # convert string to symbol for hash key
99
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
174
+ # check to see if the attribute exists and convert string to symbol for hash key
175
+ acceptable_attribute_map = self.class.acceptable_attribute_map
176
+ attributes = attributes.each_with_object({}) { |(k, v), h|
177
+ if (!acceptable_attribute_map.key?(k.to_sym))
178
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::UserDetailsAdmin`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
179
+ end
180
+ h[k.to_sym] = v
181
+ }
100
182
 
101
- if attributes.has_key?(:'id')
183
+ if attributes.key?(:'id')
102
184
  self.id = attributes[:'id']
185
+ else
186
+ self.id = nil
187
+ end
188
+
189
+ if attributes.key?(:'type')
190
+ self.type = attributes[:'type']
191
+ else
192
+ self.type = nil
193
+ end
194
+
195
+ if attributes.key?(:'product')
196
+ self.product = attributes[:'product']
197
+ else
198
+ self.product = 'flat'
103
199
  end
104
200
 
105
- if attributes.has_key?(:'username')
201
+ if attributes.key?(:'username')
106
202
  self.username = attributes[:'username']
203
+ else
204
+ self.username = nil
107
205
  end
108
206
 
109
- if attributes.has_key?(:'name')
110
- self.name = attributes[:'name']
207
+ if attributes.key?(:'printable_name')
208
+ self.printable_name = attributes[:'printable_name']
209
+ end
210
+
211
+ if attributes.key?(:'firstname')
212
+ self.firstname = attributes[:'firstname']
111
213
  end
112
214
 
113
- if attributes.has_key?(:'printableName')
114
- self.printable_name = attributes[:'printableName']
215
+ if attributes.key?(:'lastname')
216
+ self.lastname = attributes[:'lastname']
217
+ end
218
+
219
+ if attributes.key?(:'name')
220
+ self.name = attributes[:'name']
115
221
  end
116
222
 
117
- if attributes.has_key?(:'picture')
223
+ if attributes.key?(:'picture')
118
224
  self.picture = attributes[:'picture']
225
+ else
226
+ self.picture = nil
119
227
  end
120
228
 
121
- if attributes.has_key?(:'isPowerUser')
122
- self.is_power_user = attributes[:'isPowerUser']
229
+ if attributes.key?(:'badges')
230
+ if (value = attributes[:'badges']).is_a?(Array)
231
+ self.badges = value
232
+ end
123
233
  end
124
234
 
125
- if attributes.has_key?(:'organization')
235
+ if attributes.key?(:'organization')
126
236
  self.organization = attributes[:'organization']
127
237
  end
128
238
 
129
- if attributes.has_key?(:'organizationRole')
130
- self.organization_role = attributes[:'organizationRole']
239
+ if attributes.key?(:'organization_role')
240
+ self.organization_role = attributes[:'organization_role']
131
241
  end
132
242
 
133
- if attributes.has_key?(:'classRole')
134
- self.class_role = attributes[:'classRole']
243
+ if attributes.key?(:'class_role')
244
+ self.class_role = attributes[:'class_role']
135
245
  end
136
246
 
137
- if attributes.has_key?(:'htmlUrl')
138
- self.html_url = attributes[:'htmlUrl']
247
+ if attributes.key?(:'html_url')
248
+ self.html_url = attributes[:'html_url']
139
249
  end
140
250
 
141
- if attributes.has_key?(:'email')
251
+ if attributes.key?(:'email')
142
252
  self.email = attributes[:'email']
143
253
  end
144
254
 
145
- if attributes.has_key?(:'lastActivityDate')
146
- self.last_activity_date = attributes[:'lastActivityDate']
255
+ if attributes.key?(:'last_activity_date')
256
+ self.last_activity_date = attributes[:'last_activity_date']
147
257
  end
148
258
 
149
- if attributes.has_key?(:'license')
259
+ if attributes.key?(:'license')
150
260
  self.license = attributes[:'license']
151
261
  end
152
262
 
263
+ if attributes.key?(:'groups')
264
+ if (value = attributes[:'groups']).is_a?(Array)
265
+ self.groups = value
266
+ end
267
+ end
268
+
269
+ if attributes.key?(:'is_edu_testing_student')
270
+ self.is_edu_testing_student = attributes[:'is_edu_testing_student']
271
+ end
153
272
  end
154
273
 
155
274
  # Show invalid properties with the reasons. Usually used together with valid?
156
275
  # @return Array for valid properties with the reasons
157
276
  def list_invalid_properties
277
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
158
278
  invalid_properties = Array.new
159
- return invalid_properties
279
+ if @id.nil?
280
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
281
+ end
282
+
283
+ if @type.nil?
284
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
285
+ end
286
+
287
+ if @product.nil?
288
+ invalid_properties.push('invalid value for "product", product cannot be nil.')
289
+ end
290
+
291
+ if @username.nil?
292
+ invalid_properties.push('invalid value for "username", username cannot be nil.')
293
+ end
294
+
295
+ if @picture.nil?
296
+ invalid_properties.push('invalid value for "picture", picture cannot be nil.')
297
+ end
298
+
299
+ invalid_properties
160
300
  end
161
301
 
162
302
  # Check to see if the all the properties in the model are valid
163
303
  # @return true if the model is valid
164
304
  def valid?
165
- return true
305
+ warn '[DEPRECATED] the `valid?` method is obsolete'
306
+ return false if @id.nil?
307
+ return false if @type.nil?
308
+ type_validator = EnumAttributeValidator.new('String', ["user", "guest"])
309
+ return false unless type_validator.valid?(@type)
310
+ return false if @product.nil?
311
+ return false if @username.nil?
312
+ return false if @picture.nil?
313
+ true
314
+ end
315
+
316
+ # Custom attribute writer method with validation
317
+ # @param [Object] id Value to be assigned
318
+ def id=(id)
319
+ if id.nil?
320
+ fail ArgumentError, 'id cannot be nil'
321
+ end
322
+
323
+ @id = id
324
+ end
325
+
326
+ # Custom attribute writer method checking allowed values (enum).
327
+ # @param [Object] type Object to be assigned
328
+ def type=(type)
329
+ validator = EnumAttributeValidator.new('String', ["user", "guest"])
330
+ unless validator.valid?(type)
331
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
332
+ end
333
+ @type = type
334
+ end
335
+
336
+ # Custom attribute writer method with validation
337
+ # @param [Object] product Value to be assigned
338
+ def product=(product)
339
+ if product.nil?
340
+ fail ArgumentError, 'product cannot be nil'
341
+ end
342
+
343
+ @product = product
344
+ end
345
+
346
+ # Custom attribute writer method with validation
347
+ # @param [Object] username Value to be assigned
348
+ def username=(username)
349
+ if username.nil?
350
+ fail ArgumentError, 'username cannot be nil'
351
+ end
352
+
353
+ @username = username
354
+ end
355
+
356
+ # Custom attribute writer method with validation
357
+ # @param [Object] picture Value to be assigned
358
+ def picture=(picture)
359
+ if picture.nil?
360
+ fail ArgumentError, 'picture cannot be nil'
361
+ end
362
+
363
+ @picture = picture
166
364
  end
167
365
 
168
366
  # Checks equality by comparing each attribute.
@@ -171,18 +369,24 @@ module FlatApi
171
369
  return true if self.equal?(o)
172
370
  self.class == o.class &&
173
371
  id == o.id &&
372
+ type == o.type &&
373
+ product == o.product &&
174
374
  username == o.username &&
175
- name == o.name &&
176
375
  printable_name == o.printable_name &&
376
+ firstname == o.firstname &&
377
+ lastname == o.lastname &&
378
+ name == o.name &&
177
379
  picture == o.picture &&
178
- is_power_user == o.is_power_user &&
380
+ badges == o.badges &&
179
381
  organization == o.organization &&
180
382
  organization_role == o.organization_role &&
181
383
  class_role == o.class_role &&
182
384
  html_url == o.html_url &&
183
385
  email == o.email &&
184
386
  last_activity_date == o.last_activity_date &&
185
- license == o.license
387
+ license == o.license &&
388
+ groups == o.groups &&
389
+ is_edu_testing_student == o.is_edu_testing_student
186
390
  end
187
391
 
188
392
  # @see the `==` method
@@ -192,83 +396,32 @@ module FlatApi
192
396
  end
193
397
 
194
398
  # Calculates hash code according to all attributes.
195
- # @return [Fixnum] Hash code
399
+ # @return [Integer] Hash code
196
400
  def hash
197
- [id, username, name, printable_name, picture, is_power_user, organization, organization_role, class_role, html_url, email, last_activity_date, license].hash
401
+ [id, type, product, username, printable_name, firstname, lastname, name, picture, badges, organization, organization_role, class_role, html_url, email, last_activity_date, license, groups, is_edu_testing_student].hash
198
402
  end
199
403
 
200
404
  # Builds the object from hash
201
405
  # @param [Hash] attributes Model attributes in the form of hash
202
406
  # @return [Object] Returns the model itself
203
- def build_from_hash(attributes)
407
+ def self.build_from_hash(attributes)
204
408
  return nil unless attributes.is_a?(Hash)
205
- self.class.swagger_types.each_pair do |key, type|
206
- if type =~ /\AArray<(.*)>/i
207
- # check to ensure the input is an array given that the the attribute
409
+ attributes = attributes.transform_keys(&:to_sym)
410
+ transformed_hash = {}
411
+ openapi_types.each_pair do |key, type|
412
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
413
+ transformed_hash["#{key}"] = nil
414
+ elsif type =~ /\AArray<(.*)>/i
415
+ # check to ensure the input is an array given that the attribute
208
416
  # is documented as an array but the input is not
209
- if attributes[self.class.attribute_map[key]].is_a?(Array)
210
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
211
- end
212
- elsif !attributes[self.class.attribute_map[key]].nil?
213
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
214
- end # or else data not found in attributes(hash), not an issue as the data can be optional
215
- end
216
-
217
- self
218
- end
219
-
220
- # Deserializes the data based on type
221
- # @param string type Data type
222
- # @param string value Value to be deserialized
223
- # @return [Object] Deserialized data
224
- def _deserialize(type, value)
225
- case type.to_sym
226
- when :DateTime
227
- DateTime.parse(value)
228
- when :Date
229
- Date.parse(value)
230
- when :String
231
- value.to_s
232
- when :Integer
233
- value.to_i
234
- when :Float
235
- value.to_f
236
- when :BOOLEAN
237
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
238
- true
239
- else
240
- false
241
- end
242
- when :Object
243
- # generic object (usually a Hash), return directly
244
- value
245
- when /\AArray<(?<inner_type>.+)>\z/
246
- inner_type = Regexp.last_match[:inner_type]
247
- value.map { |v| _deserialize(inner_type, v) }
248
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
249
- k_type = Regexp.last_match[:k_type]
250
- v_type = Regexp.last_match[:v_type]
251
- {}.tap do |hash|
252
- value.each do |k, v|
253
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
417
+ if attributes[attribute_map[key]].is_a?(Array)
418
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
254
419
  end
420
+ elsif !attributes[attribute_map[key]].nil?
421
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
255
422
  end
256
- else # model
257
- temp_model = FlatApi.const_get(type).new
258
- temp_model.build_from_hash(value)
259
423
  end
260
- end
261
-
262
- # Returns the string representation of the object
263
- # @return [String] String presentation of the object
264
- def to_s
265
- to_hash.to_s
266
- end
267
-
268
- # to_body is an alias to to_hash (backward compatibility)
269
- # @return [Hash] Returns the object in the form of hash
270
- def to_body
271
- to_hash
424
+ new(transformed_hash)
272
425
  end
273
426
 
274
427
  # Returns the object in the form of hash
@@ -277,30 +430,16 @@ module FlatApi
277
430
  hash = {}
278
431
  self.class.attribute_map.each_pair do |attr, param|
279
432
  value = self.send(attr)
280
- next if value.nil?
433
+ if value.nil?
434
+ is_nullable = self.class.openapi_nullable.include?(attr)
435
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
436
+ end
437
+
281
438
  hash[param] = _to_hash(value)
282
439
  end
283
440
  hash
284
441
  end
285
442
 
286
- # Outputs non-array value in the form of hash
287
- # For object, use to_hash. Otherwise, just return the value
288
- # @param [Object] value Any valid value
289
- # @return [Hash] Returns the value in the form of hash
290
- def _to_hash(value)
291
- if value.is_a?(Array)
292
- value.compact.map{ |v| _to_hash(v) }
293
- elsif value.is_a?(Hash)
294
- {}.tap do |hash|
295
- value.each { |k, v| hash[k] = _to_hash(v) }
296
- end
297
- elsif value.respond_to? :to_hash
298
- value.to_hash
299
- else
300
- value
301
- end
302
- end
303
-
304
443
  end
305
444
 
306
445
  end