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,24 +1,23 @@
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
- class ScoreSource
17
+ class ScoreSource < ApiModelBase
18
18
  # If the score is a file on Google Drive, this field property must contain its identifier. To use this method, the Drive file must be public or the Flat Drive App must have access to the file.
19
19
  attr_accessor :google_drive
20
20
 
21
-
22
21
  # Attribute mapping from ruby-style variable name to JSON key.
23
22
  def self.attribute_map
24
23
  {
@@ -26,38 +25,63 @@ module FlatApi
26
25
  }
27
26
  end
28
27
 
28
+ # Returns attribute mapping this model knows about
29
+ def self.acceptable_attribute_map
30
+ attribute_map
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ acceptable_attribute_map.values
36
+ end
37
+
29
38
  # Attribute type mapping.
30
- def self.swagger_types
39
+ def self.openapi_types
31
40
  {
32
41
  :'google_drive' => :'String'
33
42
  }
34
43
  end
35
44
 
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
36
51
  # Initializes the object
37
52
  # @param [Hash] attributes Model attributes in the form of hash
38
53
  def initialize(attributes = {})
39
- return unless attributes.is_a?(Hash)
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::ScoreSource` initialize method"
56
+ end
40
57
 
41
- # convert string to symbol for hash key
42
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ acceptable_attribute_map = self.class.acceptable_attribute_map
60
+ attributes = attributes.each_with_object({}) { |(k, v), h|
61
+ if (!acceptable_attribute_map.key?(k.to_sym))
62
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::ScoreSource`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
+ end
64
+ h[k.to_sym] = v
65
+ }
43
66
 
44
- if attributes.has_key?(:'googleDrive')
45
- self.google_drive = attributes[:'googleDrive']
67
+ if attributes.key?(:'google_drive')
68
+ self.google_drive = attributes[:'google_drive']
46
69
  end
47
-
48
70
  end
49
71
 
50
72
  # Show invalid properties with the reasons. Usually used together with valid?
51
73
  # @return Array for valid properties with the reasons
52
74
  def list_invalid_properties
75
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
53
76
  invalid_properties = Array.new
54
- return invalid_properties
77
+ invalid_properties
55
78
  end
56
79
 
57
80
  # Check to see if the all the properties in the model are valid
58
81
  # @return true if the model is valid
59
82
  def valid?
60
- return true
83
+ warn '[DEPRECATED] the `valid?` method is obsolete'
84
+ true
61
85
  end
62
86
 
63
87
  # Checks equality by comparing each attribute.
@@ -75,7 +99,7 @@ module FlatApi
75
99
  end
76
100
 
77
101
  # Calculates hash code according to all attributes.
78
- # @return [Fixnum] Hash code
102
+ # @return [Integer] Hash code
79
103
  def hash
80
104
  [google_drive].hash
81
105
  end
@@ -83,75 +107,24 @@ module FlatApi
83
107
  # Builds the object from hash
84
108
  # @param [Hash] attributes Model attributes in the form of hash
85
109
  # @return [Object] Returns the model itself
86
- def build_from_hash(attributes)
110
+ def self.build_from_hash(attributes)
87
111
  return nil unless attributes.is_a?(Hash)
88
- self.class.swagger_types.each_pair do |key, type|
89
- if type =~ /\AArray<(.*)>/i
90
- # check to ensure the input is an array given that the the attribute
112
+ attributes = attributes.transform_keys(&:to_sym)
113
+ transformed_hash = {}
114
+ openapi_types.each_pair do |key, type|
115
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
116
+ transformed_hash["#{key}"] = nil
117
+ elsif type =~ /\AArray<(.*)>/i
118
+ # check to ensure the input is an array given that the attribute
91
119
  # is documented as an array but the input is not
92
- if attributes[self.class.attribute_map[key]].is_a?(Array)
93
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
94
- end
95
- elsif !attributes[self.class.attribute_map[key]].nil?
96
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
97
- end # or else data not found in attributes(hash), not an issue as the data can be optional
98
- end
99
-
100
- self
101
- end
102
-
103
- # Deserializes the data based on type
104
- # @param string type Data type
105
- # @param string value Value to be deserialized
106
- # @return [Object] Deserialized data
107
- def _deserialize(type, value)
108
- case type.to_sym
109
- when :DateTime
110
- DateTime.parse(value)
111
- when :Date
112
- Date.parse(value)
113
- when :String
114
- value.to_s
115
- when :Integer
116
- value.to_i
117
- when :Float
118
- value.to_f
119
- when :BOOLEAN
120
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
121
- true
122
- else
123
- false
124
- end
125
- when :Object
126
- # generic object (usually a Hash), return directly
127
- value
128
- when /\AArray<(?<inner_type>.+)>\z/
129
- inner_type = Regexp.last_match[:inner_type]
130
- value.map { |v| _deserialize(inner_type, v) }
131
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
132
- k_type = Regexp.last_match[:k_type]
133
- v_type = Regexp.last_match[:v_type]
134
- {}.tap do |hash|
135
- value.each do |k, v|
136
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
120
+ if attributes[attribute_map[key]].is_a?(Array)
121
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
137
122
  end
123
+ elsif !attributes[attribute_map[key]].nil?
124
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
138
125
  end
139
- else # model
140
- temp_model = FlatApi.const_get(type).new
141
- temp_model.build_from_hash(value)
142
126
  end
143
- end
144
-
145
- # Returns the string representation of the object
146
- # @return [String] String presentation of the object
147
- def to_s
148
- to_hash.to_s
149
- end
150
-
151
- # to_body is an alias to to_hash (backward compatibility)
152
- # @return [Hash] Returns the object in the form of hash
153
- def to_body
154
- to_hash
127
+ new(transformed_hash)
155
128
  end
156
129
 
157
130
  # Returns the object in the form of hash
@@ -160,30 +133,16 @@ module FlatApi
160
133
  hash = {}
161
134
  self.class.attribute_map.each_pair do |attr, param|
162
135
  value = self.send(attr)
163
- next if value.nil?
136
+ if value.nil?
137
+ is_nullable = self.class.openapi_nullable.include?(attr)
138
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
139
+ end
140
+
164
141
  hash[param] = _to_hash(value)
165
142
  end
166
143
  hash
167
144
  end
168
145
 
169
- # Outputs non-array value in the form of hash
170
- # For object, use to_hash. Otherwise, just return the value
171
- # @param [Object] value Any valid value
172
- # @return [Hash] Returns the value in the form of hash
173
- def _to_hash(value)
174
- if value.is_a?(Array)
175
- value.compact.map{ |v| _to_hash(v) }
176
- elsif value.is_a?(Hash)
177
- {}.tap do |hash|
178
- value.each { |k, v| hash[k] = _to_hash(v) }
179
- end
180
- elsif value.respond_to? :to_hash
181
- value.to_hash
182
- else
183
- value
184
- end
185
- end
186
-
187
146
  end
188
147
 
189
148
  end
@@ -1,20 +1,21 @@
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
  # A summary of the score details
17
- class ScoreSummary
18
+ class ScoreSummary < ApiModelBase
18
19
  # The unique identifier of the score
19
20
  attr_accessor :id
20
21
 
@@ -31,6 +32,27 @@ module FlatApi
31
32
  # The url where the score can be viewed in a web browser
32
33
  attr_accessor :html_url
33
34
 
35
+ class EnumAttributeValidator
36
+ attr_reader :datatype
37
+ attr_reader :allowable_values
38
+
39
+ def initialize(datatype, allowable_values)
40
+ @allowable_values = allowable_values.map do |value|
41
+ case datatype.to_s
42
+ when /Integer/i
43
+ value.to_i
44
+ when /Float/i
45
+ value.to_f
46
+ else
47
+ value
48
+ end
49
+ end
50
+ end
51
+
52
+ def valid?(value)
53
+ !value || allowable_values.include?(value)
54
+ end
55
+ end
34
56
 
35
57
  # Attribute mapping from ruby-style variable name to JSON key.
36
58
  def self.attribute_map
@@ -44,63 +66,173 @@ module FlatApi
44
66
  }
45
67
  end
46
68
 
69
+ # Returns attribute mapping this model knows about
70
+ def self.acceptable_attribute_map
71
+ attribute_map
72
+ end
73
+
74
+ # Returns all the JSON keys this model knows about
75
+ def self.acceptable_attributes
76
+ acceptable_attribute_map.values
77
+ end
78
+
47
79
  # Attribute type mapping.
48
- def self.swagger_types
80
+ def self.openapi_types
49
81
  {
50
82
  :'id' => :'String',
51
83
  :'sharing_key' => :'String',
52
84
  :'title' => :'String',
53
85
  :'privacy' => :'ScorePrivacy',
54
- :'user' => :'UserPublicSummary',
86
+ :'user' => :'UserPublic',
55
87
  :'html_url' => :'String'
56
88
  }
57
89
  end
58
90
 
91
+ # List of attributes with nullable: true
92
+ def self.openapi_nullable
93
+ Set.new([
94
+ ])
95
+ end
96
+
59
97
  # Initializes the object
60
98
  # @param [Hash] attributes Model attributes in the form of hash
61
99
  def initialize(attributes = {})
62
- return unless attributes.is_a?(Hash)
100
+ if (!attributes.is_a?(Hash))
101
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FlatApi::ScoreSummary` initialize method"
102
+ end
63
103
 
64
- # convert string to symbol for hash key
65
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
104
+ # check to see if the attribute exists and convert string to symbol for hash key
105
+ acceptable_attribute_map = self.class.acceptable_attribute_map
106
+ attributes = attributes.each_with_object({}) { |(k, v), h|
107
+ if (!acceptable_attribute_map.key?(k.to_sym))
108
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FlatApi::ScoreSummary`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
109
+ end
110
+ h[k.to_sym] = v
111
+ }
66
112
 
67
- if attributes.has_key?(:'id')
113
+ if attributes.key?(:'id')
68
114
  self.id = attributes[:'id']
115
+ else
116
+ self.id = nil
69
117
  end
70
118
 
71
- if attributes.has_key?(:'sharingKey')
72
- self.sharing_key = attributes[:'sharingKey']
119
+ if attributes.key?(:'sharing_key')
120
+ self.sharing_key = attributes[:'sharing_key']
73
121
  end
74
122
 
75
- if attributes.has_key?(:'title')
123
+ if attributes.key?(:'title')
76
124
  self.title = attributes[:'title']
125
+ else
126
+ self.title = nil
77
127
  end
78
128
 
79
- if attributes.has_key?(:'privacy')
129
+ if attributes.key?(:'privacy')
80
130
  self.privacy = attributes[:'privacy']
131
+ else
132
+ self.privacy = 'private'
81
133
  end
82
134
 
83
- if attributes.has_key?(:'user')
135
+ if attributes.key?(:'user')
84
136
  self.user = attributes[:'user']
137
+ else
138
+ self.user = nil
85
139
  end
86
140
 
87
- if attributes.has_key?(:'htmlUrl')
88
- self.html_url = attributes[:'htmlUrl']
141
+ if attributes.key?(:'html_url')
142
+ self.html_url = attributes[:'html_url']
143
+ else
144
+ self.html_url = nil
89
145
  end
90
-
91
146
  end
92
147
 
93
148
  # Show invalid properties with the reasons. Usually used together with valid?
94
149
  # @return Array for valid properties with the reasons
95
150
  def list_invalid_properties
151
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
96
152
  invalid_properties = Array.new
97
- return invalid_properties
153
+ if @id.nil?
154
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
155
+ end
156
+
157
+ if @title.nil?
158
+ invalid_properties.push('invalid value for "title", title cannot be nil.')
159
+ end
160
+
161
+ if @privacy.nil?
162
+ invalid_properties.push('invalid value for "privacy", privacy cannot be nil.')
163
+ end
164
+
165
+ if @user.nil?
166
+ invalid_properties.push('invalid value for "user", user cannot be nil.')
167
+ end
168
+
169
+ if @html_url.nil?
170
+ invalid_properties.push('invalid value for "html_url", html_url cannot be nil.')
171
+ end
172
+
173
+ invalid_properties
98
174
  end
99
175
 
100
176
  # Check to see if the all the properties in the model are valid
101
177
  # @return true if the model is valid
102
178
  def valid?
103
- return true
179
+ warn '[DEPRECATED] the `valid?` method is obsolete'
180
+ return false if @id.nil?
181
+ return false if @title.nil?
182
+ return false if @privacy.nil?
183
+ return false if @user.nil?
184
+ return false if @html_url.nil?
185
+ true
186
+ end
187
+
188
+ # Custom attribute writer method with validation
189
+ # @param [Object] id Value to be assigned
190
+ def id=(id)
191
+ if id.nil?
192
+ fail ArgumentError, 'id cannot be nil'
193
+ end
194
+
195
+ @id = id
196
+ end
197
+
198
+ # Custom attribute writer method with validation
199
+ # @param [Object] title Value to be assigned
200
+ def title=(title)
201
+ if title.nil?
202
+ fail ArgumentError, 'title cannot be nil'
203
+ end
204
+
205
+ @title = title
206
+ end
207
+
208
+ # Custom attribute writer method with validation
209
+ # @param [Object] privacy Value to be assigned
210
+ def privacy=(privacy)
211
+ if privacy.nil?
212
+ fail ArgumentError, 'privacy cannot be nil'
213
+ end
214
+
215
+ @privacy = privacy
216
+ end
217
+
218
+ # Custom attribute writer method with validation
219
+ # @param [Object] user Value to be assigned
220
+ def user=(user)
221
+ if user.nil?
222
+ fail ArgumentError, 'user cannot be nil'
223
+ end
224
+
225
+ @user = user
226
+ end
227
+
228
+ # Custom attribute writer method with validation
229
+ # @param [Object] html_url Value to be assigned
230
+ def html_url=(html_url)
231
+ if html_url.nil?
232
+ fail ArgumentError, 'html_url cannot be nil'
233
+ end
234
+
235
+ @html_url = html_url
104
236
  end
105
237
 
106
238
  # Checks equality by comparing each attribute.
@@ -123,7 +255,7 @@ module FlatApi
123
255
  end
124
256
 
125
257
  # Calculates hash code according to all attributes.
126
- # @return [Fixnum] Hash code
258
+ # @return [Integer] Hash code
127
259
  def hash
128
260
  [id, sharing_key, title, privacy, user, html_url].hash
129
261
  end
@@ -131,75 +263,24 @@ module FlatApi
131
263
  # Builds the object from hash
132
264
  # @param [Hash] attributes Model attributes in the form of hash
133
265
  # @return [Object] Returns the model itself
134
- def build_from_hash(attributes)
266
+ def self.build_from_hash(attributes)
135
267
  return nil unless attributes.is_a?(Hash)
136
- self.class.swagger_types.each_pair do |key, type|
137
- if type =~ /\AArray<(.*)>/i
138
- # check to ensure the input is an array given that the the attribute
268
+ attributes = attributes.transform_keys(&:to_sym)
269
+ transformed_hash = {}
270
+ openapi_types.each_pair do |key, type|
271
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
272
+ transformed_hash["#{key}"] = nil
273
+ elsif type =~ /\AArray<(.*)>/i
274
+ # check to ensure the input is an array given that the attribute
139
275
  # is documented as an array but the input is not
140
- if attributes[self.class.attribute_map[key]].is_a?(Array)
141
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
142
- end
143
- elsif !attributes[self.class.attribute_map[key]].nil?
144
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
145
- end # or else data not found in attributes(hash), not an issue as the data can be optional
146
- end
147
-
148
- self
149
- end
150
-
151
- # Deserializes the data based on type
152
- # @param string type Data type
153
- # @param string value Value to be deserialized
154
- # @return [Object] Deserialized data
155
- def _deserialize(type, value)
156
- case type.to_sym
157
- when :DateTime
158
- DateTime.parse(value)
159
- when :Date
160
- Date.parse(value)
161
- when :String
162
- value.to_s
163
- when :Integer
164
- value.to_i
165
- when :Float
166
- value.to_f
167
- when :BOOLEAN
168
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
169
- true
170
- else
171
- false
172
- end
173
- when :Object
174
- # generic object (usually a Hash), return directly
175
- value
176
- when /\AArray<(?<inner_type>.+)>\z/
177
- inner_type = Regexp.last_match[:inner_type]
178
- value.map { |v| _deserialize(inner_type, v) }
179
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
180
- k_type = Regexp.last_match[:k_type]
181
- v_type = Regexp.last_match[:v_type]
182
- {}.tap do |hash|
183
- value.each do |k, v|
184
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
276
+ if attributes[attribute_map[key]].is_a?(Array)
277
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
185
278
  end
279
+ elsif !attributes[attribute_map[key]].nil?
280
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
186
281
  end
187
- else # model
188
- temp_model = FlatApi.const_get(type).new
189
- temp_model.build_from_hash(value)
190
282
  end
191
- end
192
-
193
- # Returns the string representation of the object
194
- # @return [String] String presentation of the object
195
- def to_s
196
- to_hash.to_s
197
- end
198
-
199
- # to_body is an alias to to_hash (backward compatibility)
200
- # @return [Hash] Returns the object in the form of hash
201
- def to_body
202
- to_hash
283
+ new(transformed_hash)
203
284
  end
204
285
 
205
286
  # Returns the object in the form of hash
@@ -208,30 +289,16 @@ module FlatApi
208
289
  hash = {}
209
290
  self.class.attribute_map.each_pair do |attr, param|
210
291
  value = self.send(attr)
211
- next if value.nil?
292
+ if value.nil?
293
+ is_nullable = self.class.openapi_nullable.include?(attr)
294
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
295
+ end
296
+
212
297
  hash[param] = _to_hash(value)
213
298
  end
214
299
  hash
215
300
  end
216
301
 
217
- # Outputs non-array value in the form of hash
218
- # For object, use to_hash. Otherwise, just return the value
219
- # @param [Object] value Any valid value
220
- # @return [Hash] Returns the value in the form of hash
221
- def _to_hash(value)
222
- if value.is_a?(Array)
223
- value.compact.map{ |v| _to_hash(v) }
224
- elsif value.is_a?(Hash)
225
- {}.tap do |hash|
226
- value.each { |k, v| hash[k] = _to_hash(v) }
227
- end
228
- elsif value.respond_to? :to_hash
229
- value.to_hash
230
- else
231
- value
232
- end
233
- end
234
-
235
302
  end
236
303
 
237
304
  end