flat_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile +7 -0
  4. data/README.md +248 -0
  5. data/Rakefile +8 -0
  6. data/docs/AccountApi.md +55 -0
  7. data/docs/Assignment.md +18 -0
  8. data/docs/AssignmentCopy.md +8 -0
  9. data/docs/AssignmentCreation.md +12 -0
  10. data/docs/AssignmentSubmission.md +19 -0
  11. data/docs/AssignmentSubmissionUpdate.md +11 -0
  12. data/docs/ClassApi.md +1051 -0
  13. data/docs/ClassAttachmentCreation.md +10 -0
  14. data/docs/ClassCreation.md +9 -0
  15. data/docs/ClassDetails.md +25 -0
  16. data/docs/ClassDetailsCanvas.md +9 -0
  17. data/docs/ClassDetailsClever.md +14 -0
  18. data/docs/ClassDetailsGoogleClassroom.md +11 -0
  19. data/docs/ClassDetailsGoogleDrive.md +9 -0
  20. data/docs/ClassDetailsLti.md +10 -0
  21. data/docs/ClassRoles.md +7 -0
  22. data/docs/ClassState.md +7 -0
  23. data/docs/ClassUpdate.md +9 -0
  24. data/docs/FlatErrorResponse.md +11 -0
  25. data/docs/FlatLocales.md +7 -0
  26. data/docs/GoogleClassroomCoursework.md +10 -0
  27. data/docs/GoogleClassroomSubmission.md +10 -0
  28. data/docs/Group.md +14 -0
  29. data/docs/GroupApi.md +167 -0
  30. data/docs/GroupDetails.md +14 -0
  31. data/docs/GroupType.md +7 -0
  32. data/docs/LicenseMode.md +7 -0
  33. data/docs/LicenseSources.md +7 -0
  34. data/docs/LmsName.md +7 -0
  35. data/docs/LtiCredentials.md +16 -0
  36. data/docs/LtiCredentialsCreation.md +9 -0
  37. data/docs/MediaAttachment.md +23 -0
  38. data/docs/MediaScoreSharingMode.md +7 -0
  39. data/docs/OrganizationApi.md +538 -0
  40. data/docs/OrganizationInvitation.md +14 -0
  41. data/docs/OrganizationInvitationCreation.md +9 -0
  42. data/docs/OrganizationRoles.md +7 -0
  43. data/docs/ScoreApi.md +1605 -0
  44. data/docs/ScoreCollaborator.md +15 -0
  45. data/docs/ScoreCollaboratorCreation.md +13 -0
  46. data/docs/ScoreComment.md +22 -0
  47. data/docs/ScoreCommentContext.md +14 -0
  48. data/docs/ScoreCommentCreation.md +13 -0
  49. data/docs/ScoreCommentUpdate.md +11 -0
  50. data/docs/ScoreCommentsCounts.md +11 -0
  51. data/docs/ScoreCreation.md +13 -0
  52. data/docs/ScoreCreationType.md +7 -0
  53. data/docs/ScoreData.md +7 -0
  54. data/docs/ScoreDataEncoding.md +7 -0
  55. data/docs/ScoreDetails.md +36 -0
  56. data/docs/ScoreFork.md +7 -0
  57. data/docs/ScoreLicense.md +7 -0
  58. data/docs/ScoreLikesCounts.md +10 -0
  59. data/docs/ScoreModification.md +13 -0
  60. data/docs/ScorePrivacy.md +7 -0
  61. data/docs/ScoreRevision.md +14 -0
  62. data/docs/ScoreRevisionCreation.md +11 -0
  63. data/docs/ScoreRevisionStatistics.md +9 -0
  64. data/docs/ScoreRights.md +9 -0
  65. data/docs/ScoreSource.md +8 -0
  66. data/docs/ScoreSummary.md +13 -0
  67. data/docs/ScoreTrack.md +19 -0
  68. data/docs/ScoreTrackCreation.md +12 -0
  69. data/docs/ScoreTrackPoint.md +10 -0
  70. data/docs/ScoreTrackState.md +7 -0
  71. data/docs/ScoreTrackType.md +7 -0
  72. data/docs/ScoreTrackUpdate.md +11 -0
  73. data/docs/ScoreViewsCounts.md +10 -0
  74. data/docs/UserAdminUpdate.md +9 -0
  75. data/docs/UserApi.md +173 -0
  76. data/docs/UserBasics.md +13 -0
  77. data/docs/UserCreation.md +11 -0
  78. data/docs/UserDetails.md +28 -0
  79. data/docs/UserDetailsAdmin.md +20 -0
  80. data/docs/UserDetailsAdminLicense.md +12 -0
  81. data/docs/UserInstruments.md +7 -0
  82. data/docs/UserPublic.md +25 -0
  83. data/docs/UserPublicSummary.md +17 -0
  84. data/flat_api.gemspec +48 -0
  85. data/git_push.sh +55 -0
  86. data/lib/flat_api.rb +117 -0
  87. data/lib/flat_api/api/account_api.rb +72 -0
  88. data/lib/flat_api/api/class_api.rb +1148 -0
  89. data/lib/flat_api/api/group_api.rb +191 -0
  90. data/lib/flat_api/api/organization_api.rb +599 -0
  91. data/lib/flat_api/api/score_api.rb +1737 -0
  92. data/lib/flat_api/api/user_api.rb +194 -0
  93. data/lib/flat_api/api_client.rb +389 -0
  94. data/lib/flat_api/api_error.rb +38 -0
  95. data/lib/flat_api/configuration.rb +209 -0
  96. data/lib/flat_api/models/assignment.rb +323 -0
  97. data/lib/flat_api/models/assignment_copy.rb +194 -0
  98. data/lib/flat_api/models/assignment_creation.rb +230 -0
  99. data/lib/flat_api/models/assignment_submission.rb +299 -0
  100. data/lib/flat_api/models/assignment_submission_update.rb +220 -0
  101. data/lib/flat_api/models/class_attachment_creation.rb +242 -0
  102. data/lib/flat_api/models/class_creation.rb +239 -0
  103. data/lib/flat_api/models/class_details.rb +351 -0
  104. data/lib/flat_api/models/class_details_canvas.rb +199 -0
  105. data/lib/flat_api/models/class_details_clever.rb +282 -0
  106. data/lib/flat_api/models/class_details_google_classroom.rb +219 -0
  107. data/lib/flat_api/models/class_details_google_drive.rb +199 -0
  108. data/lib/flat_api/models/class_details_lti.rb +209 -0
  109. data/lib/flat_api/models/class_roles.rb +22 -0
  110. data/lib/flat_api/models/class_state.rb +23 -0
  111. data/lib/flat_api/models/class_update.rb +231 -0
  112. data/lib/flat_api/models/flat_error_response.rb +219 -0
  113. data/lib/flat_api/models/flat_locales.rb +27 -0
  114. data/lib/flat_api/models/google_classroom_coursework.rb +209 -0
  115. data/lib/flat_api/models/google_classroom_submission.rb +209 -0
  116. data/lib/flat_api/models/group.rb +282 -0
  117. data/lib/flat_api/models/group_details.rb +248 -0
  118. data/lib/flat_api/models/group_type.rb +23 -0
  119. data/lib/flat_api/models/license_mode.rb +22 -0
  120. data/lib/flat_api/models/license_sources.rb +25 -0
  121. data/lib/flat_api/models/lms_name.rb +27 -0
  122. data/lib/flat_api/models/lti_credentials.rb +268 -0
  123. data/lib/flat_api/models/lti_credentials_creation.rb +227 -0
  124. data/lib/flat_api/models/media_attachment.rb +371 -0
  125. data/lib/flat_api/models/media_score_sharing_mode.rb +23 -0
  126. data/lib/flat_api/models/organization_invitation.rb +248 -0
  127. data/lib/flat_api/models/organization_invitation_creation.rb +198 -0
  128. data/lib/flat_api/models/organization_roles.rb +24 -0
  129. data/lib/flat_api/models/score_collaborator.rb +263 -0
  130. data/lib/flat_api/models/score_collaborator_creation.rb +245 -0
  131. data/lib/flat_api/models/score_comment.rb +363 -0
  132. data/lib/flat_api/models/score_comment_context.rb +282 -0
  133. data/lib/flat_api/models/score_comment_creation.rb +245 -0
  134. data/lib/flat_api/models/score_comment_update.rb +268 -0
  135. data/lib/flat_api/models/score_comments_counts.rb +219 -0
  136. data/lib/flat_api/models/score_creation.rb +240 -0
  137. data/lib/flat_api/models/score_creation_type.rb +23 -0
  138. data/lib/flat_api/models/score_data.rb +179 -0
  139. data/lib/flat_api/models/score_data_encoding.rb +21 -0
  140. data/lib/flat_api/models/score_details.rb +467 -0
  141. data/lib/flat_api/models/score_fork.rb +179 -0
  142. data/lib/flat_api/models/score_license.rb +28 -0
  143. data/lib/flat_api/models/score_likes_counts.rb +209 -0
  144. data/lib/flat_api/models/score_modification.rb +270 -0
  145. data/lib/flat_api/models/score_privacy.rb +24 -0
  146. data/lib/flat_api/models/score_revision.rb +249 -0
  147. data/lib/flat_api/models/score_revision_creation.rb +222 -0
  148. data/lib/flat_api/models/score_revision_statistics.rb +199 -0
  149. data/lib/flat_api/models/score_rights.rb +203 -0
  150. data/lib/flat_api/models/score_source.rb +189 -0
  151. data/lib/flat_api/models/score_summary.rb +237 -0
  152. data/lib/flat_api/models/score_track.rb +298 -0
  153. data/lib/flat_api/models/score_track_creation.rb +229 -0
  154. data/lib/flat_api/models/score_track_point.rb +252 -0
  155. data/lib/flat_api/models/score_track_state.rb +23 -0
  156. data/lib/flat_api/models/score_track_type.rb +24 -0
  157. data/lib/flat_api/models/score_track_update.rb +219 -0
  158. data/lib/flat_api/models/score_views_counts.rb +209 -0
  159. data/lib/flat_api/models/user_admin_update.rb +214 -0
  160. data/lib/flat_api/models/user_basics.rb +239 -0
  161. data/lib/flat_api/models/user_creation.rb +266 -0
  162. data/lib/flat_api/models/user_details.rb +418 -0
  163. data/lib/flat_api/models/user_details_admin.rb +306 -0
  164. data/lib/flat_api/models/user_details_admin_license.rb +227 -0
  165. data/lib/flat_api/models/user_instruments.rb +179 -0
  166. data/lib/flat_api/models/user_public.rb +356 -0
  167. data/lib/flat_api/models/user_public_summary.rb +277 -0
  168. data/lib/flat_api/version.rb +15 -0
  169. data/lib/swagger_client.rb +117 -0
  170. data/lib/swagger_client/api/account_api.rb +72 -0
  171. data/lib/swagger_client/api/class_api.rb +1148 -0
  172. data/lib/swagger_client/api/group_api.rb +191 -0
  173. data/lib/swagger_client/api/organization_api.rb +599 -0
  174. data/lib/swagger_client/api/score_api.rb +1737 -0
  175. data/lib/swagger_client/api/user_api.rb +194 -0
  176. data/lib/swagger_client/api_client.rb +389 -0
  177. data/lib/swagger_client/api_error.rb +38 -0
  178. data/lib/swagger_client/configuration.rb +209 -0
  179. data/lib/swagger_client/models/assignment.rb +323 -0
  180. data/lib/swagger_client/models/assignment_copy.rb +194 -0
  181. data/lib/swagger_client/models/assignment_creation.rb +230 -0
  182. data/lib/swagger_client/models/assignment_submission.rb +299 -0
  183. data/lib/swagger_client/models/assignment_submission_update.rb +220 -0
  184. data/lib/swagger_client/models/class_attachment_creation.rb +242 -0
  185. data/lib/swagger_client/models/class_creation.rb +239 -0
  186. data/lib/swagger_client/models/class_details.rb +351 -0
  187. data/lib/swagger_client/models/class_details_canvas.rb +199 -0
  188. data/lib/swagger_client/models/class_details_clever.rb +282 -0
  189. data/lib/swagger_client/models/class_details_google_classroom.rb +219 -0
  190. data/lib/swagger_client/models/class_details_google_drive.rb +199 -0
  191. data/lib/swagger_client/models/class_details_lti.rb +209 -0
  192. data/lib/swagger_client/models/class_roles.rb +22 -0
  193. data/lib/swagger_client/models/class_state.rb +23 -0
  194. data/lib/swagger_client/models/class_update.rb +231 -0
  195. data/lib/swagger_client/models/flat_error_response.rb +219 -0
  196. data/lib/swagger_client/models/flat_locales.rb +27 -0
  197. data/lib/swagger_client/models/google_classroom_coursework.rb +209 -0
  198. data/lib/swagger_client/models/google_classroom_submission.rb +209 -0
  199. data/lib/swagger_client/models/group.rb +282 -0
  200. data/lib/swagger_client/models/group_details.rb +248 -0
  201. data/lib/swagger_client/models/group_type.rb +23 -0
  202. data/lib/swagger_client/models/license_mode.rb +22 -0
  203. data/lib/swagger_client/models/license_sources.rb +25 -0
  204. data/lib/swagger_client/models/lms_name.rb +27 -0
  205. data/lib/swagger_client/models/lti_credentials.rb +268 -0
  206. data/lib/swagger_client/models/lti_credentials_creation.rb +227 -0
  207. data/lib/swagger_client/models/media_attachment.rb +371 -0
  208. data/lib/swagger_client/models/media_score_sharing_mode.rb +23 -0
  209. data/lib/swagger_client/models/organization_invitation.rb +248 -0
  210. data/lib/swagger_client/models/organization_invitation_creation.rb +198 -0
  211. data/lib/swagger_client/models/organization_roles.rb +24 -0
  212. data/lib/swagger_client/models/score_collaborator.rb +263 -0
  213. data/lib/swagger_client/models/score_collaborator_creation.rb +245 -0
  214. data/lib/swagger_client/models/score_comment.rb +363 -0
  215. data/lib/swagger_client/models/score_comment_context.rb +282 -0
  216. data/lib/swagger_client/models/score_comment_creation.rb +245 -0
  217. data/lib/swagger_client/models/score_comment_update.rb +268 -0
  218. data/lib/swagger_client/models/score_comments_counts.rb +219 -0
  219. data/lib/swagger_client/models/score_creation.rb +240 -0
  220. data/lib/swagger_client/models/score_creation_type.rb +23 -0
  221. data/lib/swagger_client/models/score_data.rb +179 -0
  222. data/lib/swagger_client/models/score_data_encoding.rb +21 -0
  223. data/lib/swagger_client/models/score_details.rb +467 -0
  224. data/lib/swagger_client/models/score_fork.rb +179 -0
  225. data/lib/swagger_client/models/score_license.rb +28 -0
  226. data/lib/swagger_client/models/score_likes_counts.rb +209 -0
  227. data/lib/swagger_client/models/score_modification.rb +270 -0
  228. data/lib/swagger_client/models/score_privacy.rb +24 -0
  229. data/lib/swagger_client/models/score_revision.rb +249 -0
  230. data/lib/swagger_client/models/score_revision_creation.rb +222 -0
  231. data/lib/swagger_client/models/score_revision_statistics.rb +199 -0
  232. data/lib/swagger_client/models/score_rights.rb +203 -0
  233. data/lib/swagger_client/models/score_source.rb +189 -0
  234. data/lib/swagger_client/models/score_summary.rb +237 -0
  235. data/lib/swagger_client/models/score_track.rb +298 -0
  236. data/lib/swagger_client/models/score_track_creation.rb +229 -0
  237. data/lib/swagger_client/models/score_track_point.rb +252 -0
  238. data/lib/swagger_client/models/score_track_state.rb +23 -0
  239. data/lib/swagger_client/models/score_track_type.rb +24 -0
  240. data/lib/swagger_client/models/score_track_update.rb +219 -0
  241. data/lib/swagger_client/models/score_views_counts.rb +209 -0
  242. data/lib/swagger_client/models/user_admin_update.rb +214 -0
  243. data/lib/swagger_client/models/user_basics.rb +239 -0
  244. data/lib/swagger_client/models/user_creation.rb +266 -0
  245. data/lib/swagger_client/models/user_details.rb +418 -0
  246. data/lib/swagger_client/models/user_details_admin.rb +306 -0
  247. data/lib/swagger_client/models/user_details_admin_license.rb +227 -0
  248. data/lib/swagger_client/models/user_instruments.rb +179 -0
  249. data/lib/swagger_client/models/user_public.rb +356 -0
  250. data/lib/swagger_client/models/user_public_summary.rb +277 -0
  251. data/lib/swagger_client/version.rb +15 -0
  252. data/spec/api/account_api_spec.rb +46 -0
  253. data/spec/api/class_api_spec.rb +278 -0
  254. data/spec/api/group_api_spec.rb +72 -0
  255. data/spec/api/organization_api_spec.rb +162 -0
  256. data/spec/api/score_api_spec.rb +411 -0
  257. data/spec/api/user_api_spec.rb +73 -0
  258. data/spec/api_client_spec.rb +226 -0
  259. data/spec/configuration_spec.rb +42 -0
  260. data/spec/models/assignment_copy_spec.rb +42 -0
  261. data/spec/models/assignment_creation_spec.rb +66 -0
  262. data/spec/models/assignment_spec.rb +106 -0
  263. data/spec/models/assignment_submission_spec.rb +108 -0
  264. data/spec/models/assignment_submission_update_spec.rb +60 -0
  265. data/spec/models/class_attachment_creation_spec.rb +58 -0
  266. data/spec/models/class_creation_spec.rb +48 -0
  267. data/spec/models/class_details_canvas_spec.rb +48 -0
  268. data/spec/models/class_details_clever_spec.rb +82 -0
  269. data/spec/models/class_details_google_classroom_spec.rb +60 -0
  270. data/spec/models/class_details_google_drive_spec.rb +48 -0
  271. data/spec/models/class_details_lti_spec.rb +54 -0
  272. data/spec/models/class_details_spec.rb +144 -0
  273. data/spec/models/class_roles_spec.rb +36 -0
  274. data/spec/models/class_state_spec.rb +36 -0
  275. data/spec/models/class_update_spec.rb +48 -0
  276. data/spec/models/flat_error_response_spec.rb +60 -0
  277. data/spec/models/flat_locales_spec.rb +36 -0
  278. data/spec/models/google_classroom_coursework_spec.rb +54 -0
  279. data/spec/models/google_classroom_submission_spec.rb +54 -0
  280. data/spec/models/group_details_spec.rb +78 -0
  281. data/spec/models/group_spec.rb +82 -0
  282. data/spec/models/group_type_spec.rb +36 -0
  283. data/spec/models/license_mode_spec.rb +36 -0
  284. data/spec/models/license_sources_spec.rb +36 -0
  285. data/spec/models/lms_name_spec.rb +36 -0
  286. data/spec/models/lti_credentials_creation_spec.rb +48 -0
  287. data/spec/models/lti_credentials_spec.rb +90 -0
  288. data/spec/models/media_attachment_spec.rb +136 -0
  289. data/spec/models/media_score_sharing_mode_spec.rb +36 -0
  290. data/spec/models/organization_invitation_creation_spec.rb +48 -0
  291. data/spec/models/organization_invitation_spec.rb +78 -0
  292. data/spec/models/organization_roles_spec.rb +36 -0
  293. data/spec/models/score_collaborator_creation_spec.rb +72 -0
  294. data/spec/models/score_collaborator_spec.rb +84 -0
  295. data/spec/models/score_comment_context_spec.rb +78 -0
  296. data/spec/models/score_comment_creation_spec.rb +72 -0
  297. data/spec/models/score_comment_spec.rb +130 -0
  298. data/spec/models/score_comment_update_spec.rb +60 -0
  299. data/spec/models/score_comments_counts_spec.rb +60 -0
  300. data/spec/models/score_creation_spec.rb +72 -0
  301. data/spec/models/score_creation_type_spec.rb +36 -0
  302. data/spec/models/score_data_encoding_spec.rb +36 -0
  303. data/spec/models/score_data_spec.rb +36 -0
  304. data/spec/models/score_details_spec.rb +210 -0
  305. data/spec/models/score_fork_spec.rb +36 -0
  306. data/spec/models/score_license_spec.rb +36 -0
  307. data/spec/models/score_likes_counts_spec.rb +54 -0
  308. data/spec/models/score_modification_spec.rb +72 -0
  309. data/spec/models/score_privacy_spec.rb +36 -0
  310. data/spec/models/score_revision_creation_spec.rb +60 -0
  311. data/spec/models/score_revision_spec.rb +78 -0
  312. data/spec/models/score_revision_statistics_spec.rb +48 -0
  313. data/spec/models/score_rights_spec.rb +48 -0
  314. data/spec/models/score_source_spec.rb +42 -0
  315. data/spec/models/score_summary_spec.rb +72 -0
  316. data/spec/models/score_track_creation_spec.rb +66 -0
  317. data/spec/models/score_track_point_spec.rb +58 -0
  318. data/spec/models/score_track_spec.rb +108 -0
  319. data/spec/models/score_track_state_spec.rb +36 -0
  320. data/spec/models/score_track_type_spec.rb +36 -0
  321. data/spec/models/score_track_update_spec.rb +60 -0
  322. data/spec/models/score_views_counts_spec.rb +54 -0
  323. data/spec/models/user_admin_update_spec.rb +48 -0
  324. data/spec/models/user_basics_spec.rb +72 -0
  325. data/spec/models/user_creation_spec.rb +60 -0
  326. data/spec/models/user_details_admin_license_spec.rb +66 -0
  327. data/spec/models/user_details_admin_spec.rb +114 -0
  328. data/spec/models/user_details_spec.rb +166 -0
  329. data/spec/models/user_instruments_spec.rb +36 -0
  330. data/spec/models/user_public_spec.rb +144 -0
  331. data/spec/models/user_public_summary_spec.rb +96 -0
  332. data/spec/spec_helper.rb +111 -0
  333. metadata +640 -0
@@ -0,0 +1,23 @@
1
+ =begin
2
+ #Flat API
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)
5
+
6
+ OpenAPI spec version: 2.5.1
7
+ Contact: developers@flat.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FlatApi
16
+ class ScoreCreationType
17
+
18
+ ORIGINAL = "original".freeze
19
+ ARRANGEMENT = "arrangement".freeze
20
+ OTHER = "other".freeze
21
+ end
22
+
23
+ end
@@ -0,0 +1,179 @@
1
+ =begin
2
+ #Flat API
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)
5
+
6
+ OpenAPI spec version: 2.5.1
7
+ Contact: developers@flat.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FlatApi
16
+ # The data of the score file. It must be a MusicXML 3 file (`vnd.recordare.musicxml` or `vnd.recordare.musicxml+xml`), a MIDI file (`audio/midi`) or a Flat.json (aka Adagio.json) file. Binary payloads (`vnd.recordare.musicxml` and `audio/midi`) can be encoded in Base64, in this case the `dataEncoding` property must match the encoding used for the API request.
17
+ class ScoreData
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ }
23
+ end
24
+
25
+ # Attribute type mapping.
26
+ def self.swagger_types
27
+ {
28
+ }
29
+ end
30
+
31
+ # Initializes the object
32
+ # @param [Hash] attributes Model attributes in the form of hash
33
+ def initialize(attributes = {})
34
+ return unless attributes.is_a?(Hash)
35
+
36
+ # convert string to symbol for hash key
37
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
38
+
39
+ end
40
+
41
+ # Show invalid properties with the reasons. Usually used together with valid?
42
+ # @return Array for valid properies with the reasons
43
+ def list_invalid_properties
44
+ invalid_properties = Array.new
45
+ return invalid_properties
46
+ end
47
+
48
+ # Check to see if the all the properties in the model are valid
49
+ # @return true if the model is valid
50
+ def valid?
51
+ return true
52
+ end
53
+
54
+ # Checks equality by comparing each attribute.
55
+ # @param [Object] Object to be compared
56
+ def ==(o)
57
+ return true if self.equal?(o)
58
+ self.class == o.class
59
+ end
60
+
61
+ # @see the `==` method
62
+ # @param [Object] Object to be compared
63
+ def eql?(o)
64
+ self == o
65
+ end
66
+
67
+ # Calculates hash code according to all attributes.
68
+ # @return [Fixnum] Hash code
69
+ def hash
70
+ [].hash
71
+ end
72
+
73
+ # Builds the object from hash
74
+ # @param [Hash] attributes Model attributes in the form of hash
75
+ # @return [Object] Returns the model itself
76
+ def build_from_hash(attributes)
77
+ return nil unless attributes.is_a?(Hash)
78
+ self.class.swagger_types.each_pair do |key, type|
79
+ if type =~ /\AArray<(.*)>/i
80
+ # check to ensure the input is an array given that the the attribute
81
+ # is documented as an array but the input is not
82
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
83
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
84
+ end
85
+ elsif !attributes[self.class.attribute_map[key]].nil?
86
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
87
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
88
+ end
89
+
90
+ self
91
+ end
92
+
93
+ # Deserializes the data based on type
94
+ # @param string type Data type
95
+ # @param string value Value to be deserialized
96
+ # @return [Object] Deserialized data
97
+ def _deserialize(type, value)
98
+ case type.to_sym
99
+ when :DateTime
100
+ DateTime.parse(value)
101
+ when :Date
102
+ Date.parse(value)
103
+ when :String
104
+ value.to_s
105
+ when :Integer
106
+ value.to_i
107
+ when :Float
108
+ value.to_f
109
+ when :BOOLEAN
110
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
111
+ true
112
+ else
113
+ false
114
+ end
115
+ when :Object
116
+ # generic object (usually a Hash), return directly
117
+ value
118
+ when /\AArray<(?<inner_type>.+)>\z/
119
+ inner_type = Regexp.last_match[:inner_type]
120
+ value.map { |v| _deserialize(inner_type, v) }
121
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
122
+ k_type = Regexp.last_match[:k_type]
123
+ v_type = Regexp.last_match[:v_type]
124
+ {}.tap do |hash|
125
+ value.each do |k, v|
126
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
127
+ end
128
+ end
129
+ else # model
130
+ temp_model = FlatApi.const_get(type).new
131
+ temp_model.build_from_hash(value)
132
+ end
133
+ end
134
+
135
+ # Returns the string representation of the object
136
+ # @return [String] String presentation of the object
137
+ def to_s
138
+ to_hash.to_s
139
+ end
140
+
141
+ # to_body is an alias to to_hash (backward compatibility)
142
+ # @return [Hash] Returns the object in the form of hash
143
+ def to_body
144
+ to_hash
145
+ end
146
+
147
+ # Returns the object in the form of hash
148
+ # @return [Hash] Returns the object in the form of hash
149
+ def to_hash
150
+ hash = {}
151
+ self.class.attribute_map.each_pair do |attr, param|
152
+ value = self.send(attr)
153
+ next if value.nil?
154
+ hash[param] = _to_hash(value)
155
+ end
156
+ hash
157
+ end
158
+
159
+ # Outputs non-array value in the form of hash
160
+ # For object, use to_hash. Otherwise, just return the value
161
+ # @param [Object] value Any valid value
162
+ # @return [Hash] Returns the value in the form of hash
163
+ def _to_hash(value)
164
+ if value.is_a?(Array)
165
+ value.compact.map{ |v| _to_hash(v) }
166
+ elsif value.is_a?(Hash)
167
+ {}.tap do |hash|
168
+ value.each { |k, v| hash[k] = _to_hash(v) }
169
+ end
170
+ elsif value.respond_to? :to_hash
171
+ value.to_hash
172
+ else
173
+ value
174
+ end
175
+ end
176
+
177
+ end
178
+
179
+ end
@@ -0,0 +1,21 @@
1
+ =begin
2
+ #Flat API
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)
5
+
6
+ OpenAPI spec version: 2.5.1
7
+ Contact: developers@flat.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FlatApi
16
+ class ScoreDataEncoding
17
+
18
+ BASE64 = "base64".freeze
19
+ end
20
+
21
+ end
@@ -0,0 +1,467 @@
1
+ =begin
2
+ #Flat API
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)
5
+
6
+ OpenAPI spec version: 2.5.1
7
+ Contact: developers@flat.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FlatApi
16
+ # The score and all its details
17
+ class ScoreDetails
18
+ # The unique identifier of the score
19
+ attr_accessor :id
20
+
21
+ # The private sharing key of the score (available when the `privacy` mode is set to `privateLink`)
22
+ attr_accessor :sharing_key
23
+
24
+ # The title of the score
25
+ attr_accessor :title
26
+
27
+ attr_accessor :privacy
28
+
29
+ attr_accessor :user
30
+
31
+ # The url where the score can be viewed in a web browser
32
+ attr_accessor :html_url
33
+
34
+ # Subtitle of the score
35
+ attr_accessor :subtitle
36
+
37
+ # Lyricist of the score
38
+ attr_accessor :lyricist
39
+
40
+ # Composer of the score
41
+ attr_accessor :composer
42
+
43
+ # Description of the creation
44
+ attr_accessor :description
45
+
46
+ # Tags describing the score
47
+ attr_accessor :tags
48
+
49
+ attr_accessor :creation_type
50
+
51
+ attr_accessor :license
52
+
53
+ # Additional license text written on the exported/printed score
54
+ attr_accessor :license_text
55
+
56
+ # In seconds, an approximative duration of the score
57
+ attr_accessor :duration_time
58
+
59
+ # The number of measures in the score
60
+ attr_accessor :number_measures
61
+
62
+ # The main tempo of the score (in QPM)
63
+ attr_accessor :main_tempo_qpm
64
+
65
+ attr_accessor :rights
66
+
67
+ # The list of the collaborators of the score
68
+ attr_accessor :collaborators
69
+
70
+ # The date when the score was created
71
+ attr_accessor :creation_date
72
+
73
+ # The date of the last revision of the score
74
+ attr_accessor :modification_date
75
+
76
+ # The date when the score was published on Flat
77
+ attr_accessor :publication_date
78
+
79
+ # If the score has been created in an organization, the identifier of this organization. This property is especially used with the score privacy `organizationPublic`.
80
+ attr_accessor :organization
81
+
82
+ # If the score has been forked, the unique identifier of the parent score.
83
+ attr_accessor :parent_score
84
+
85
+ # An array of the instrument identifiers used in the last version of the score. This is mainly used to display a list of the instruments in the Flat's UI or instruments icons. The format of the strings is `{instrument-group}.{instrument-id}`.
86
+ attr_accessor :instruments
87
+
88
+ # If the user uses Google Drive and the score exists on Google Drive, this field will contain the unique identifier of the Flat score on Google Drive. You can access the document using the url: `https://drive.google.com/open?id={googleDriveFileId}`
89
+ attr_accessor :google_drive_file_id
90
+
91
+ attr_accessor :likes
92
+
93
+ attr_accessor :comments
94
+
95
+ attr_accessor :views
96
+
97
+
98
+ # Attribute mapping from ruby-style variable name to JSON key.
99
+ def self.attribute_map
100
+ {
101
+ :'id' => :'id',
102
+ :'sharing_key' => :'sharingKey',
103
+ :'title' => :'title',
104
+ :'privacy' => :'privacy',
105
+ :'user' => :'user',
106
+ :'html_url' => :'htmlUrl',
107
+ :'subtitle' => :'subtitle',
108
+ :'lyricist' => :'lyricist',
109
+ :'composer' => :'composer',
110
+ :'description' => :'description',
111
+ :'tags' => :'tags',
112
+ :'creation_type' => :'creationType',
113
+ :'license' => :'license',
114
+ :'license_text' => :'licenseText',
115
+ :'duration_time' => :'durationTime',
116
+ :'number_measures' => :'numberMeasures',
117
+ :'main_tempo_qpm' => :'mainTempoQpm',
118
+ :'rights' => :'rights',
119
+ :'collaborators' => :'collaborators',
120
+ :'creation_date' => :'creationDate',
121
+ :'modification_date' => :'modificationDate',
122
+ :'publication_date' => :'publicationDate',
123
+ :'organization' => :'organization',
124
+ :'parent_score' => :'parentScore',
125
+ :'instruments' => :'instruments',
126
+ :'google_drive_file_id' => :'googleDriveFileId',
127
+ :'likes' => :'likes',
128
+ :'comments' => :'comments',
129
+ :'views' => :'views'
130
+ }
131
+ end
132
+
133
+ # Attribute type mapping.
134
+ def self.swagger_types
135
+ {
136
+ :'id' => :'String',
137
+ :'sharing_key' => :'String',
138
+ :'title' => :'String',
139
+ :'privacy' => :'ScorePrivacy',
140
+ :'user' => :'UserPublicSummary',
141
+ :'html_url' => :'String',
142
+ :'subtitle' => :'String',
143
+ :'lyricist' => :'String',
144
+ :'composer' => :'String',
145
+ :'description' => :'String',
146
+ :'tags' => :'Array<String>',
147
+ :'creation_type' => :'ScoreCreationType',
148
+ :'license' => :'ScoreLicense',
149
+ :'license_text' => :'String',
150
+ :'duration_time' => :'Integer',
151
+ :'number_measures' => :'Integer',
152
+ :'main_tempo_qpm' => :'Integer',
153
+ :'rights' => :'ScoreRights',
154
+ :'collaborators' => :'Array<ScoreCollaborator>',
155
+ :'creation_date' => :'DateTime',
156
+ :'modification_date' => :'DateTime',
157
+ :'publication_date' => :'DateTime',
158
+ :'organization' => :'String',
159
+ :'parent_score' => :'String',
160
+ :'instruments' => :'Array<String>',
161
+ :'google_drive_file_id' => :'String',
162
+ :'likes' => :'ScoreLikesCounts',
163
+ :'comments' => :'ScoreCommentsCounts',
164
+ :'views' => :'ScoreViewsCounts'
165
+ }
166
+ end
167
+
168
+ # Initializes the object
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ def initialize(attributes = {})
171
+ return unless attributes.is_a?(Hash)
172
+
173
+ # convert string to symbol for hash key
174
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
175
+
176
+ if attributes.has_key?(:'id')
177
+ self.id = attributes[:'id']
178
+ end
179
+
180
+ if attributes.has_key?(:'sharingKey')
181
+ self.sharing_key = attributes[:'sharingKey']
182
+ end
183
+
184
+ if attributes.has_key?(:'title')
185
+ self.title = attributes[:'title']
186
+ end
187
+
188
+ if attributes.has_key?(:'privacy')
189
+ self.privacy = attributes[:'privacy']
190
+ end
191
+
192
+ if attributes.has_key?(:'user')
193
+ self.user = attributes[:'user']
194
+ end
195
+
196
+ if attributes.has_key?(:'htmlUrl')
197
+ self.html_url = attributes[:'htmlUrl']
198
+ end
199
+
200
+ if attributes.has_key?(:'subtitle')
201
+ self.subtitle = attributes[:'subtitle']
202
+ end
203
+
204
+ if attributes.has_key?(:'lyricist')
205
+ self.lyricist = attributes[:'lyricist']
206
+ end
207
+
208
+ if attributes.has_key?(:'composer')
209
+ self.composer = attributes[:'composer']
210
+ end
211
+
212
+ if attributes.has_key?(:'description')
213
+ self.description = attributes[:'description']
214
+ end
215
+
216
+ if attributes.has_key?(:'tags')
217
+ if (value = attributes[:'tags']).is_a?(Array)
218
+ self.tags = value
219
+ end
220
+ end
221
+
222
+ if attributes.has_key?(:'creationType')
223
+ self.creation_type = attributes[:'creationType']
224
+ end
225
+
226
+ if attributes.has_key?(:'license')
227
+ self.license = attributes[:'license']
228
+ end
229
+
230
+ if attributes.has_key?(:'licenseText')
231
+ self.license_text = attributes[:'licenseText']
232
+ end
233
+
234
+ if attributes.has_key?(:'durationTime')
235
+ self.duration_time = attributes[:'durationTime']
236
+ end
237
+
238
+ if attributes.has_key?(:'numberMeasures')
239
+ self.number_measures = attributes[:'numberMeasures']
240
+ end
241
+
242
+ if attributes.has_key?(:'mainTempoQpm')
243
+ self.main_tempo_qpm = attributes[:'mainTempoQpm']
244
+ end
245
+
246
+ if attributes.has_key?(:'rights')
247
+ self.rights = attributes[:'rights']
248
+ end
249
+
250
+ if attributes.has_key?(:'collaborators')
251
+ if (value = attributes[:'collaborators']).is_a?(Array)
252
+ self.collaborators = value
253
+ end
254
+ end
255
+
256
+ if attributes.has_key?(:'creationDate')
257
+ self.creation_date = attributes[:'creationDate']
258
+ end
259
+
260
+ if attributes.has_key?(:'modificationDate')
261
+ self.modification_date = attributes[:'modificationDate']
262
+ end
263
+
264
+ if attributes.has_key?(:'publicationDate')
265
+ self.publication_date = attributes[:'publicationDate']
266
+ end
267
+
268
+ if attributes.has_key?(:'organization')
269
+ self.organization = attributes[:'organization']
270
+ end
271
+
272
+ if attributes.has_key?(:'parentScore')
273
+ self.parent_score = attributes[:'parentScore']
274
+ end
275
+
276
+ if attributes.has_key?(:'instruments')
277
+ if (value = attributes[:'instruments']).is_a?(Array)
278
+ self.instruments = value
279
+ end
280
+ end
281
+
282
+ if attributes.has_key?(:'googleDriveFileId')
283
+ self.google_drive_file_id = attributes[:'googleDriveFileId']
284
+ end
285
+
286
+ if attributes.has_key?(:'likes')
287
+ self.likes = attributes[:'likes']
288
+ end
289
+
290
+ if attributes.has_key?(:'comments')
291
+ self.comments = attributes[:'comments']
292
+ end
293
+
294
+ if attributes.has_key?(:'views')
295
+ self.views = attributes[:'views']
296
+ end
297
+
298
+ end
299
+
300
+ # Show invalid properties with the reasons. Usually used together with valid?
301
+ # @return Array for valid properies with the reasons
302
+ def list_invalid_properties
303
+ invalid_properties = Array.new
304
+ return invalid_properties
305
+ end
306
+
307
+ # Check to see if the all the properties in the model are valid
308
+ # @return true if the model is valid
309
+ def valid?
310
+ return true
311
+ end
312
+
313
+ # Checks equality by comparing each attribute.
314
+ # @param [Object] Object to be compared
315
+ def ==(o)
316
+ return true if self.equal?(o)
317
+ self.class == o.class &&
318
+ id == o.id &&
319
+ sharing_key == o.sharing_key &&
320
+ title == o.title &&
321
+ privacy == o.privacy &&
322
+ user == o.user &&
323
+ html_url == o.html_url &&
324
+ subtitle == o.subtitle &&
325
+ lyricist == o.lyricist &&
326
+ composer == o.composer &&
327
+ description == o.description &&
328
+ tags == o.tags &&
329
+ creation_type == o.creation_type &&
330
+ license == o.license &&
331
+ license_text == o.license_text &&
332
+ duration_time == o.duration_time &&
333
+ number_measures == o.number_measures &&
334
+ main_tempo_qpm == o.main_tempo_qpm &&
335
+ rights == o.rights &&
336
+ collaborators == o.collaborators &&
337
+ creation_date == o.creation_date &&
338
+ modification_date == o.modification_date &&
339
+ publication_date == o.publication_date &&
340
+ organization == o.organization &&
341
+ parent_score == o.parent_score &&
342
+ instruments == o.instruments &&
343
+ google_drive_file_id == o.google_drive_file_id &&
344
+ likes == o.likes &&
345
+ comments == o.comments &&
346
+ views == o.views
347
+ end
348
+
349
+ # @see the `==` method
350
+ # @param [Object] Object to be compared
351
+ def eql?(o)
352
+ self == o
353
+ end
354
+
355
+ # Calculates hash code according to all attributes.
356
+ # @return [Fixnum] Hash code
357
+ def hash
358
+ [id, sharing_key, title, privacy, user, html_url, subtitle, lyricist, composer, description, tags, creation_type, license, license_text, duration_time, number_measures, main_tempo_qpm, rights, collaborators, creation_date, modification_date, publication_date, organization, parent_score, instruments, google_drive_file_id, likes, comments, views].hash
359
+ end
360
+
361
+ # Builds the object from hash
362
+ # @param [Hash] attributes Model attributes in the form of hash
363
+ # @return [Object] Returns the model itself
364
+ def build_from_hash(attributes)
365
+ return nil unless attributes.is_a?(Hash)
366
+ self.class.swagger_types.each_pair do |key, type|
367
+ if type =~ /\AArray<(.*)>/i
368
+ # check to ensure the input is an array given that the the attribute
369
+ # is documented as an array but the input is not
370
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
371
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
372
+ end
373
+ elsif !attributes[self.class.attribute_map[key]].nil?
374
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
375
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
376
+ end
377
+
378
+ self
379
+ end
380
+
381
+ # Deserializes the data based on type
382
+ # @param string type Data type
383
+ # @param string value Value to be deserialized
384
+ # @return [Object] Deserialized data
385
+ def _deserialize(type, value)
386
+ case type.to_sym
387
+ when :DateTime
388
+ DateTime.parse(value)
389
+ when :Date
390
+ Date.parse(value)
391
+ when :String
392
+ value.to_s
393
+ when :Integer
394
+ value.to_i
395
+ when :Float
396
+ value.to_f
397
+ when :BOOLEAN
398
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
399
+ true
400
+ else
401
+ false
402
+ end
403
+ when :Object
404
+ # generic object (usually a Hash), return directly
405
+ value
406
+ when /\AArray<(?<inner_type>.+)>\z/
407
+ inner_type = Regexp.last_match[:inner_type]
408
+ value.map { |v| _deserialize(inner_type, v) }
409
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
410
+ k_type = Regexp.last_match[:k_type]
411
+ v_type = Regexp.last_match[:v_type]
412
+ {}.tap do |hash|
413
+ value.each do |k, v|
414
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
415
+ end
416
+ end
417
+ else # model
418
+ temp_model = FlatApi.const_get(type).new
419
+ temp_model.build_from_hash(value)
420
+ end
421
+ end
422
+
423
+ # Returns the string representation of the object
424
+ # @return [String] String presentation of the object
425
+ def to_s
426
+ to_hash.to_s
427
+ end
428
+
429
+ # to_body is an alias to to_hash (backward compatibility)
430
+ # @return [Hash] Returns the object in the form of hash
431
+ def to_body
432
+ to_hash
433
+ end
434
+
435
+ # Returns the object in the form of hash
436
+ # @return [Hash] Returns the object in the form of hash
437
+ def to_hash
438
+ hash = {}
439
+ self.class.attribute_map.each_pair do |attr, param|
440
+ value = self.send(attr)
441
+ next if value.nil?
442
+ hash[param] = _to_hash(value)
443
+ end
444
+ hash
445
+ end
446
+
447
+ # Outputs non-array value in the form of hash
448
+ # For object, use to_hash. Otherwise, just return the value
449
+ # @param [Object] value Any valid value
450
+ # @return [Hash] Returns the value in the form of hash
451
+ def _to_hash(value)
452
+ if value.is_a?(Array)
453
+ value.compact.map{ |v| _to_hash(v) }
454
+ elsif value.is_a?(Hash)
455
+ {}.tap do |hash|
456
+ value.each { |k, v| hash[k] = _to_hash(v) }
457
+ end
458
+ elsif value.respond_to? :to_hash
459
+ value.to_hash
460
+ else
461
+ value
462
+ end
463
+ end
464
+
465
+ end
466
+
467
+ end