flat_api 0.2.0 → 1.0.0

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