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
  # Public User details
17
- class UserPublic
18
+ class UserPublic < 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
@@ -61,21 +73,58 @@ module FlatApi
61
73
  # Number of public scores the user have
62
74
  attr_accessor :owned_public_scores_count
63
75
 
76
+ # Total number of public scores the user participates in (owned + joined)
77
+ attr_accessor :all_public_scores_count
78
+
79
+ # Number of likes on the user published scores
80
+ attr_accessor :likes_count
81
+
82
+ # Number of plays on the user published scores
83
+ attr_accessor :plays_count
84
+
85
+ # Cover picture (backgroud) for the profile
86
+ attr_accessor :cover_picture
87
+
64
88
  # Theme (background) for the profile
65
89
  attr_accessor :profile_theme
66
90
 
67
- attr_accessor :instruments
91
+ attr_accessor :links
92
+
93
+ class EnumAttributeValidator
94
+ attr_reader :datatype
95
+ attr_reader :allowable_values
96
+
97
+ def initialize(datatype, allowable_values)
98
+ @allowable_values = allowable_values.map do |value|
99
+ case datatype.to_s
100
+ when /Integer/i
101
+ value.to_i
102
+ when /Float/i
103
+ value.to_f
104
+ else
105
+ value
106
+ end
107
+ end
108
+ end
68
109
 
110
+ def valid?(value)
111
+ !value || allowable_values.include?(value)
112
+ end
113
+ end
69
114
 
70
115
  # Attribute mapping from ruby-style variable name to JSON key.
71
116
  def self.attribute_map
72
117
  {
73
118
  :'id' => :'id',
119
+ :'type' => :'type',
120
+ :'product' => :'product',
74
121
  :'username' => :'username',
75
- :'name' => :'name',
76
122
  :'printable_name' => :'printableName',
123
+ :'firstname' => :'firstname',
124
+ :'lastname' => :'lastname',
125
+ :'name' => :'name',
77
126
  :'picture' => :'picture',
78
- :'is_power_user' => :'isPowerUser',
127
+ :'badges' => :'badges',
79
128
  :'organization' => :'organization',
80
129
  :'organization_role' => :'organizationRole',
81
130
  :'class_role' => :'classRole',
@@ -86,128 +135,294 @@ module FlatApi
86
135
  :'followers_count' => :'followersCount',
87
136
  :'following_count' => :'followingCount',
88
137
  :'owned_public_scores_count' => :'ownedPublicScoresCount',
138
+ :'all_public_scores_count' => :'allPublicScoresCount',
139
+ :'likes_count' => :'likesCount',
140
+ :'plays_count' => :'playsCount',
141
+ :'cover_picture' => :'coverPicture',
89
142
  :'profile_theme' => :'profileTheme',
90
- :'instruments' => :'instruments'
143
+ :'links' => :'links'
91
144
  }
92
145
  end
93
146
 
147
+ # Returns attribute mapping this model knows about
148
+ def self.acceptable_attribute_map
149
+ attribute_map
150
+ end
151
+
152
+ # Returns all the JSON keys this model knows about
153
+ def self.acceptable_attributes
154
+ acceptable_attribute_map.values
155
+ end
156
+
94
157
  # Attribute type mapping.
95
- def self.swagger_types
158
+ def self.openapi_types
96
159
  {
97
160
  :'id' => :'String',
161
+ :'type' => :'String',
162
+ :'product' => :'TutteoProduct',
98
163
  :'username' => :'String',
99
- :'name' => :'String',
100
164
  :'printable_name' => :'String',
165
+ :'firstname' => :'String',
166
+ :'lastname' => :'String',
167
+ :'name' => :'String',
101
168
  :'picture' => :'String',
102
- :'is_power_user' => :'BOOLEAN',
169
+ :'badges' => :'Array<String>',
103
170
  :'organization' => :'String',
104
171
  :'organization_role' => :'OrganizationRoles',
105
172
  :'class_role' => :'ClassRoles',
106
173
  :'html_url' => :'String',
107
174
  :'bio' => :'String',
108
- :'registration_date' => :'DateTime',
175
+ :'registration_date' => :'Time',
109
176
  :'liked_scores_count' => :'Integer',
110
177
  :'followers_count' => :'Integer',
111
178
  :'following_count' => :'Integer',
112
179
  :'owned_public_scores_count' => :'Integer',
180
+ :'all_public_scores_count' => :'Integer',
181
+ :'likes_count' => :'Integer',
182
+ :'plays_count' => :'Integer',
183
+ :'cover_picture' => :'String',
113
184
  :'profile_theme' => :'String',
114
- :'instruments' => :'UserInstruments'
185
+ :'links' => :'UserCommunityProfileLinks'
115
186
  }
116
187
  end
117
188
 
189
+ # List of attributes with nullable: true
190
+ def self.openapi_nullable
191
+ Set.new([
192
+ :'cover_picture',
193
+ ])
194
+ end
195
+
196
+ # List of class defined in allOf (OpenAPI v3)
197
+ def self.openapi_all_of
198
+ [
199
+ :'UserPublicSummary'
200
+ ]
201
+ end
202
+
118
203
  # Initializes the object
119
204
  # @param [Hash] attributes Model attributes in the form of hash
120
205
  def initialize(attributes = {})
121
- return unless attributes.is_a?(Hash)
206
+ if (!attributes.is_a?(Hash))
207
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::UserPublic` initialize method"
208
+ end
122
209
 
123
- # convert string to symbol for hash key
124
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
210
+ # check to see if the attribute exists and convert string to symbol for hash key
211
+ acceptable_attribute_map = self.class.acceptable_attribute_map
212
+ attributes = attributes.each_with_object({}) { |(k, v), h|
213
+ if (!acceptable_attribute_map.key?(k.to_sym))
214
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::UserPublic`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
215
+ end
216
+ h[k.to_sym] = v
217
+ }
125
218
 
126
- if attributes.has_key?(:'id')
219
+ if attributes.key?(:'id')
127
220
  self.id = attributes[:'id']
221
+ else
222
+ self.id = nil
223
+ end
224
+
225
+ if attributes.key?(:'type')
226
+ self.type = attributes[:'type']
227
+ else
228
+ self.type = nil
229
+ end
230
+
231
+ if attributes.key?(:'product')
232
+ self.product = attributes[:'product']
233
+ else
234
+ self.product = 'flat'
128
235
  end
129
236
 
130
- if attributes.has_key?(:'username')
237
+ if attributes.key?(:'username')
131
238
  self.username = attributes[:'username']
239
+ else
240
+ self.username = nil
132
241
  end
133
242
 
134
- if attributes.has_key?(:'name')
135
- self.name = attributes[:'name']
243
+ if attributes.key?(:'printable_name')
244
+ self.printable_name = attributes[:'printable_name']
245
+ end
246
+
247
+ if attributes.key?(:'firstname')
248
+ self.firstname = attributes[:'firstname']
136
249
  end
137
250
 
138
- if attributes.has_key?(:'printableName')
139
- self.printable_name = attributes[:'printableName']
251
+ if attributes.key?(:'lastname')
252
+ self.lastname = attributes[:'lastname']
253
+ end
254
+
255
+ if attributes.key?(:'name')
256
+ self.name = attributes[:'name']
140
257
  end
141
258
 
142
- if attributes.has_key?(:'picture')
259
+ if attributes.key?(:'picture')
143
260
  self.picture = attributes[:'picture']
261
+ else
262
+ self.picture = nil
144
263
  end
145
264
 
146
- if attributes.has_key?(:'isPowerUser')
147
- self.is_power_user = attributes[:'isPowerUser']
265
+ if attributes.key?(:'badges')
266
+ if (value = attributes[:'badges']).is_a?(Array)
267
+ self.badges = value
268
+ end
148
269
  end
149
270
 
150
- if attributes.has_key?(:'organization')
271
+ if attributes.key?(:'organization')
151
272
  self.organization = attributes[:'organization']
152
273
  end
153
274
 
154
- if attributes.has_key?(:'organizationRole')
155
- self.organization_role = attributes[:'organizationRole']
275
+ if attributes.key?(:'organization_role')
276
+ self.organization_role = attributes[:'organization_role']
156
277
  end
157
278
 
158
- if attributes.has_key?(:'classRole')
159
- self.class_role = attributes[:'classRole']
279
+ if attributes.key?(:'class_role')
280
+ self.class_role = attributes[:'class_role']
160
281
  end
161
282
 
162
- if attributes.has_key?(:'htmlUrl')
163
- self.html_url = attributes[:'htmlUrl']
283
+ if attributes.key?(:'html_url')
284
+ self.html_url = attributes[:'html_url']
164
285
  end
165
286
 
166
- if attributes.has_key?(:'bio')
287
+ if attributes.key?(:'bio')
167
288
  self.bio = attributes[:'bio']
168
289
  end
169
290
 
170
- if attributes.has_key?(:'registrationDate')
171
- self.registration_date = attributes[:'registrationDate']
291
+ if attributes.key?(:'registration_date')
292
+ self.registration_date = attributes[:'registration_date']
293
+ end
294
+
295
+ if attributes.key?(:'liked_scores_count')
296
+ self.liked_scores_count = attributes[:'liked_scores_count']
297
+ end
298
+
299
+ if attributes.key?(:'followers_count')
300
+ self.followers_count = attributes[:'followers_count']
172
301
  end
173
302
 
174
- if attributes.has_key?(:'likedScoresCount')
175
- self.liked_scores_count = attributes[:'likedScoresCount']
303
+ if attributes.key?(:'following_count')
304
+ self.following_count = attributes[:'following_count']
176
305
  end
177
306
 
178
- if attributes.has_key?(:'followersCount')
179
- self.followers_count = attributes[:'followersCount']
307
+ if attributes.key?(:'owned_public_scores_count')
308
+ self.owned_public_scores_count = attributes[:'owned_public_scores_count']
180
309
  end
181
310
 
182
- if attributes.has_key?(:'followingCount')
183
- self.following_count = attributes[:'followingCount']
311
+ if attributes.key?(:'all_public_scores_count')
312
+ self.all_public_scores_count = attributes[:'all_public_scores_count']
184
313
  end
185
314
 
186
- if attributes.has_key?(:'ownedPublicScoresCount')
187
- self.owned_public_scores_count = attributes[:'ownedPublicScoresCount']
315
+ if attributes.key?(:'likes_count')
316
+ self.likes_count = attributes[:'likes_count']
188
317
  end
189
318
 
190
- if attributes.has_key?(:'profileTheme')
191
- self.profile_theme = attributes[:'profileTheme']
319
+ if attributes.key?(:'plays_count')
320
+ self.plays_count = attributes[:'plays_count']
192
321
  end
193
322
 
194
- if attributes.has_key?(:'instruments')
195
- self.instruments = attributes[:'instruments']
323
+ if attributes.key?(:'cover_picture')
324
+ self.cover_picture = attributes[:'cover_picture']
196
325
  end
197
326
 
327
+ if attributes.key?(:'profile_theme')
328
+ self.profile_theme = attributes[:'profile_theme']
329
+ end
330
+
331
+ if attributes.key?(:'links')
332
+ self.links = attributes[:'links']
333
+ end
198
334
  end
199
335
 
200
336
  # Show invalid properties with the reasons. Usually used together with valid?
201
337
  # @return Array for valid properties with the reasons
202
338
  def list_invalid_properties
339
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
203
340
  invalid_properties = Array.new
204
- return invalid_properties
341
+ if @id.nil?
342
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
343
+ end
344
+
345
+ if @type.nil?
346
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
347
+ end
348
+
349
+ if @product.nil?
350
+ invalid_properties.push('invalid value for "product", product cannot be nil.')
351
+ end
352
+
353
+ if @username.nil?
354
+ invalid_properties.push('invalid value for "username", username cannot be nil.')
355
+ end
356
+
357
+ if @picture.nil?
358
+ invalid_properties.push('invalid value for "picture", picture cannot be nil.')
359
+ end
360
+
361
+ invalid_properties
205
362
  end
206
363
 
207
364
  # Check to see if the all the properties in the model are valid
208
365
  # @return true if the model is valid
209
366
  def valid?
210
- return true
367
+ warn '[DEPRECATED] the `valid?` method is obsolete'
368
+ return false if @id.nil?
369
+ return false if @type.nil?
370
+ type_validator = EnumAttributeValidator.new('String', ["user", "guest"])
371
+ return false unless type_validator.valid?(@type)
372
+ return false if @product.nil?
373
+ return false if @username.nil?
374
+ return false if @picture.nil?
375
+ true
376
+ end
377
+
378
+ # Custom attribute writer method with validation
379
+ # @param [Object] id Value to be assigned
380
+ def id=(id)
381
+ if id.nil?
382
+ fail ArgumentError, 'id cannot be nil'
383
+ end
384
+
385
+ @id = id
386
+ end
387
+
388
+ # Custom attribute writer method checking allowed values (enum).
389
+ # @param [Object] type Object to be assigned
390
+ def type=(type)
391
+ validator = EnumAttributeValidator.new('String', ["user", "guest"])
392
+ unless validator.valid?(type)
393
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
394
+ end
395
+ @type = type
396
+ end
397
+
398
+ # Custom attribute writer method with validation
399
+ # @param [Object] product Value to be assigned
400
+ def product=(product)
401
+ if product.nil?
402
+ fail ArgumentError, 'product cannot be nil'
403
+ end
404
+
405
+ @product = product
406
+ end
407
+
408
+ # Custom attribute writer method with validation
409
+ # @param [Object] username Value to be assigned
410
+ def username=(username)
411
+ if username.nil?
412
+ fail ArgumentError, 'username cannot be nil'
413
+ end
414
+
415
+ @username = username
416
+ end
417
+
418
+ # Custom attribute writer method with validation
419
+ # @param [Object] picture Value to be assigned
420
+ def picture=(picture)
421
+ if picture.nil?
422
+ fail ArgumentError, 'picture cannot be nil'
423
+ end
424
+
425
+ @picture = picture
211
426
  end
212
427
 
213
428
  # Checks equality by comparing each attribute.
@@ -216,11 +431,15 @@ module FlatApi
216
431
  return true if self.equal?(o)
217
432
  self.class == o.class &&
218
433
  id == o.id &&
434
+ type == o.type &&
435
+ product == o.product &&
219
436
  username == o.username &&
220
- name == o.name &&
221
437
  printable_name == o.printable_name &&
438
+ firstname == o.firstname &&
439
+ lastname == o.lastname &&
440
+ name == o.name &&
222
441
  picture == o.picture &&
223
- is_power_user == o.is_power_user &&
442
+ badges == o.badges &&
224
443
  organization == o.organization &&
225
444
  organization_role == o.organization_role &&
226
445
  class_role == o.class_role &&
@@ -231,8 +450,12 @@ module FlatApi
231
450
  followers_count == o.followers_count &&
232
451
  following_count == o.following_count &&
233
452
  owned_public_scores_count == o.owned_public_scores_count &&
453
+ all_public_scores_count == o.all_public_scores_count &&
454
+ likes_count == o.likes_count &&
455
+ plays_count == o.plays_count &&
456
+ cover_picture == o.cover_picture &&
234
457
  profile_theme == o.profile_theme &&
235
- instruments == o.instruments
458
+ links == o.links
236
459
  end
237
460
 
238
461
  # @see the `==` method
@@ -242,83 +465,32 @@ module FlatApi
242
465
  end
243
466
 
244
467
  # Calculates hash code according to all attributes.
245
- # @return [Fixnum] Hash code
468
+ # @return [Integer] Hash code
246
469
  def hash
247
- [id, username, name, printable_name, picture, is_power_user, organization, organization_role, class_role, html_url, bio, registration_date, liked_scores_count, followers_count, following_count, owned_public_scores_count, profile_theme, instruments].hash
470
+ [id, type, product, username, printable_name, firstname, lastname, name, picture, badges, organization, organization_role, class_role, html_url, bio, registration_date, liked_scores_count, followers_count, following_count, owned_public_scores_count, all_public_scores_count, likes_count, plays_count, cover_picture, profile_theme, links].hash
248
471
  end
249
472
 
250
473
  # Builds the object from hash
251
474
  # @param [Hash] attributes Model attributes in the form of hash
252
475
  # @return [Object] Returns the model itself
253
- def build_from_hash(attributes)
476
+ def self.build_from_hash(attributes)
254
477
  return nil unless attributes.is_a?(Hash)
255
- self.class.swagger_types.each_pair do |key, type|
256
- if type =~ /\AArray<(.*)>/i
257
- # check to ensure the input is an array given that the the attribute
478
+ attributes = attributes.transform_keys(&:to_sym)
479
+ transformed_hash = {}
480
+ openapi_types.each_pair do |key, type|
481
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
482
+ transformed_hash["#{key}"] = nil
483
+ elsif type =~ /\AArray<(.*)>/i
484
+ # check to ensure the input is an array given that the attribute
258
485
  # is documented as an array but the input is not
259
- if attributes[self.class.attribute_map[key]].is_a?(Array)
260
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
261
- end
262
- elsif !attributes[self.class.attribute_map[key]].nil?
263
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
264
- end # or else data not found in attributes(hash), not an issue as the data can be optional
265
- end
266
-
267
- self
268
- end
269
-
270
- # Deserializes the data based on type
271
- # @param string type Data type
272
- # @param string value Value to be deserialized
273
- # @return [Object] Deserialized data
274
- def _deserialize(type, value)
275
- case type.to_sym
276
- when :DateTime
277
- DateTime.parse(value)
278
- when :Date
279
- Date.parse(value)
280
- when :String
281
- value.to_s
282
- when :Integer
283
- value.to_i
284
- when :Float
285
- value.to_f
286
- when :BOOLEAN
287
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
288
- true
289
- else
290
- false
291
- end
292
- when :Object
293
- # generic object (usually a Hash), return directly
294
- value
295
- when /\AArray<(?<inner_type>.+)>\z/
296
- inner_type = Regexp.last_match[:inner_type]
297
- value.map { |v| _deserialize(inner_type, v) }
298
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
299
- k_type = Regexp.last_match[:k_type]
300
- v_type = Regexp.last_match[:v_type]
301
- {}.tap do |hash|
302
- value.each do |k, v|
303
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
486
+ if attributes[attribute_map[key]].is_a?(Array)
487
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
304
488
  end
489
+ elsif !attributes[attribute_map[key]].nil?
490
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
305
491
  end
306
- else # model
307
- temp_model = FlatApi.const_get(type).new
308
- temp_model.build_from_hash(value)
309
492
  end
310
- end
311
-
312
- # Returns the string representation of the object
313
- # @return [String] String presentation of the object
314
- def to_s
315
- to_hash.to_s
316
- end
317
-
318
- # to_body is an alias to to_hash (backward compatibility)
319
- # @return [Hash] Returns the object in the form of hash
320
- def to_body
321
- to_hash
493
+ new(transformed_hash)
322
494
  end
323
495
 
324
496
  # Returns the object in the form of hash
@@ -327,30 +499,16 @@ module FlatApi
327
499
  hash = {}
328
500
  self.class.attribute_map.each_pair do |attr, param|
329
501
  value = self.send(attr)
330
- next if value.nil?
502
+ if value.nil?
503
+ is_nullable = self.class.openapi_nullable.include?(attr)
504
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
505
+ end
506
+
331
507
  hash[param] = _to_hash(value)
332
508
  end
333
509
  hash
334
510
  end
335
511
 
336
- # Outputs non-array value in the form of hash
337
- # For object, use to_hash. Otherwise, just return the value
338
- # @param [Object] value Any valid value
339
- # @return [Hash] Returns the value in the form of hash
340
- def _to_hash(value)
341
- if value.is_a?(Array)
342
- value.compact.map{ |v| _to_hash(v) }
343
- elsif value.is_a?(Hash)
344
- {}.tap do |hash|
345
- value.each { |k, v| hash[k] = _to_hash(v) }
346
- end
347
- elsif value.respond_to? :to_hash
348
- value.to_hash
349
- else
350
- value
351
- end
352
- end
353
-
354
512
  end
355
513
 
356
514
  end