shortcut_client_ruby 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (453) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +21 -0
  4. data/README.md +2303 -0
  5. data/Rakefile +8 -0
  6. data/bin/console +15 -0
  7. data/bin/setup +8 -0
  8. data/bin/update.rb +34 -0
  9. data/config.json +7 -0
  10. data/docs/BasicWorkspaceInfo.md +8 -0
  11. data/docs/Branch.md +17 -0
  12. data/docs/Category.md +15 -0
  13. data/docs/Commit.md +19 -0
  14. data/docs/CreateCategory.md +10 -0
  15. data/docs/CreateCategoryParams.md +9 -0
  16. data/docs/CreateCommentComment.md +11 -0
  17. data/docs/CreateEntityTemplate.md +9 -0
  18. data/docs/CreateEpic.md +23 -0
  19. data/docs/CreateEpicComment.md +11 -0
  20. data/docs/CreateGroup.md +14 -0
  21. data/docs/CreateIteration.md +13 -0
  22. data/docs/CreateLabelParams.md +10 -0
  23. data/docs/CreateLinkedFile.md +15 -0
  24. data/docs/CreateMilestone.md +12 -0
  25. data/docs/CreateOrDeleteStoryReaction.md +7 -0
  26. data/docs/CreateProject.md +17 -0
  27. data/docs/CreateStories.md +7 -0
  28. data/docs/CreateStoryComment.md +11 -0
  29. data/docs/CreateStoryCommentParams.md +11 -0
  30. data/docs/CreateStoryContents.md +27 -0
  31. data/docs/CreateStoryLink.md +9 -0
  32. data/docs/CreateStoryLinkParams.md +9 -0
  33. data/docs/CreateStoryParams.md +33 -0
  34. data/docs/CreateTask.md +12 -0
  35. data/docs/CreateTaskParams.md +12 -0
  36. data/docs/DefaultApi.md +5632 -0
  37. data/docs/DeleteStories.md +7 -0
  38. data/docs/EntityTemplate.md +14 -0
  39. data/docs/EntityTemplateTask.md +10 -0
  40. data/docs/Epic.md +44 -0
  41. data/docs/EpicSearchResults.md +10 -0
  42. data/docs/EpicSlim.md +43 -0
  43. data/docs/EpicState.md +15 -0
  44. data/docs/EpicStats.md +19 -0
  45. data/docs/EpicWorkflow.md +12 -0
  46. data/docs/GetEpicStories.md +7 -0
  47. data/docs/GetExternalLinkStoriesParams.md +7 -0
  48. data/docs/GetIterationStories.md +7 -0
  49. data/docs/GetLabelStories.md +7 -0
  50. data/docs/GetMember.md +7 -0
  51. data/docs/GetProjectStories.md +7 -0
  52. data/docs/Group.md +22 -0
  53. data/docs/History.md +15 -0
  54. data/docs/HistoryActionBranchCreate.md +11 -0
  55. data/docs/HistoryActionBranchMerge.md +11 -0
  56. data/docs/HistoryActionBranchPush.md +11 -0
  57. data/docs/HistoryActionLabelCreate.md +11 -0
  58. data/docs/HistoryActionLabelDelete.md +10 -0
  59. data/docs/HistoryActionLabelUpdate.md +9 -0
  60. data/docs/HistoryActionProjectUpdate.md +11 -0
  61. data/docs/HistoryActionPullRequest.md +12 -0
  62. data/docs/HistoryActionStoryCommentCreate.md +12 -0
  63. data/docs/HistoryActionStoryCreate.md +30 -0
  64. data/docs/HistoryActionStoryDelete.md +11 -0
  65. data/docs/HistoryActionStoryLinkCreate.md +12 -0
  66. data/docs/HistoryActionStoryLinkDelete.md +12 -0
  67. data/docs/HistoryActionStoryLinkUpdate.md +13 -0
  68. data/docs/HistoryActionStoryUpdate.md +13 -0
  69. data/docs/HistoryActionTaskCreate.md +15 -0
  70. data/docs/HistoryActionTaskDelete.md +10 -0
  71. data/docs/HistoryActionTaskUpdate.md +13 -0
  72. data/docs/HistoryChangesStory.md +30 -0
  73. data/docs/HistoryChangesStoryLink.md +9 -0
  74. data/docs/HistoryChangesTask.md +10 -0
  75. data/docs/HistoryReferenceBranch.md +10 -0
  76. data/docs/HistoryReferenceCommit.md +10 -0
  77. data/docs/HistoryReferenceEpic.md +10 -0
  78. data/docs/HistoryReferenceGeneral.md +9 -0
  79. data/docs/HistoryReferenceGroup.md +9 -0
  80. data/docs/HistoryReferenceIteration.md +10 -0
  81. data/docs/HistoryReferenceLabel.md +10 -0
  82. data/docs/HistoryReferenceProject.md +10 -0
  83. data/docs/HistoryReferenceStory.md +11 -0
  84. data/docs/HistoryReferenceStoryTask.md +9 -0
  85. data/docs/HistoryReferenceWorkflowState.md +10 -0
  86. data/docs/Icon.md +11 -0
  87. data/docs/Identity.md +9 -0
  88. data/docs/Iteration.md +24 -0
  89. data/docs/IterationSlim.md +23 -0
  90. data/docs/IterationStats.md +17 -0
  91. data/docs/Label.md +17 -0
  92. data/docs/LabelSlim.md +16 -0
  93. data/docs/LabelStats.md +21 -0
  94. data/docs/LinkedFile.md +22 -0
  95. data/docs/ListEpics.md +7 -0
  96. data/docs/ListGroupStories.md +8 -0
  97. data/docs/ListLabels.md +7 -0
  98. data/docs/ListMembers.md +7 -0
  99. data/docs/MaxSearchResultsExceededError.md +9 -0
  100. data/docs/Member.md +17 -0
  101. data/docs/MemberInfo.md +10 -0
  102. data/docs/Milestone.md +23 -0
  103. data/docs/MilestoneStats.md +9 -0
  104. data/docs/Profile.md +15 -0
  105. data/docs/Project.md +25 -0
  106. data/docs/ProjectStats.md +9 -0
  107. data/docs/PullRequest.md +28 -0
  108. data/docs/PullRequestLabel.md +11 -0
  109. data/docs/Repository.md +15 -0
  110. data/docs/Search.md +10 -0
  111. data/docs/SearchResults.md +8 -0
  112. data/docs/SearchStories.md +34 -0
  113. data/docs/Story.md +56 -0
  114. data/docs/StoryComment.md +20 -0
  115. data/docs/StoryContents.md +25 -0
  116. data/docs/StoryContentsTask.md +11 -0
  117. data/docs/StoryHistoryChangeAddsRemovesInt.md +8 -0
  118. data/docs/StoryHistoryChangeAddsRemovesUuid.md +8 -0
  119. data/docs/StoryHistoryChangeOldNewBool.md +8 -0
  120. data/docs/StoryHistoryChangeOldNewInt.md +8 -0
  121. data/docs/StoryHistoryChangeOldNewStr.md +8 -0
  122. data/docs/StoryHistoryChangeOldNewUuid.md +8 -0
  123. data/docs/StoryLink.md +14 -0
  124. data/docs/StoryReaction.md +8 -0
  125. data/docs/StorySearchResults.md +10 -0
  126. data/docs/StorySlim.md +54 -0
  127. data/docs/StoryStats.md +7 -0
  128. data/docs/Task.md +20 -0
  129. data/docs/ThreadedComment.md +19 -0
  130. data/docs/TypedStoryLink.md +15 -0
  131. data/docs/UnusableEntitlementError.md +9 -0
  132. data/docs/UpdateCategory.md +9 -0
  133. data/docs/UpdateComment.md +7 -0
  134. data/docs/UpdateEntityTemplate.md +8 -0
  135. data/docs/UpdateEpic.md +23 -0
  136. data/docs/UpdateFile.md +12 -0
  137. data/docs/UpdateGroup.md +15 -0
  138. data/docs/UpdateIteration.md +13 -0
  139. data/docs/UpdateLabel.md +10 -0
  140. data/docs/UpdateLinkedFile.md +14 -0
  141. data/docs/UpdateMilestone.md +14 -0
  142. data/docs/UpdateProject.md +15 -0
  143. data/docs/UpdateStories.md +27 -0
  144. data/docs/UpdateStory.md +32 -0
  145. data/docs/UpdateStoryComment.md +7 -0
  146. data/docs/UpdateStoryContents.md +27 -0
  147. data/docs/UpdateStoryLink.md +9 -0
  148. data/docs/UpdateTask.md +11 -0
  149. data/docs/UploadedFile.md +23 -0
  150. data/docs/V3FilesBody.md +11 -0
  151. data/docs/Workflow.md +17 -0
  152. data/docs/WorkflowState.md +18 -0
  153. data/git_push.sh +55 -0
  154. data/lib/shortcut/client/ruby/version.rb +9 -0
  155. data/lib/shortcut/client/ruby.rb +12 -0
  156. data/lib/shortcut_client_ruby/api/default_api.rb +6091 -0
  157. data/lib/shortcut_client_ruby/api_client.rb +388 -0
  158. data/lib/shortcut_client_ruby/api_error.rb +57 -0
  159. data/lib/shortcut_client_ruby/configuration.rb +205 -0
  160. data/lib/shortcut_client_ruby/models/basic_workspace_info.rb +227 -0
  161. data/lib/shortcut_client_ruby/models/branch.rb +371 -0
  162. data/lib/shortcut_client_ruby/models/category.rb +335 -0
  163. data/lib/shortcut_client_ruby/models/commit.rb +398 -0
  164. data/lib/shortcut_client_ruby/models/create_category.rb +281 -0
  165. data/lib/shortcut_client_ruby/models/create_category_params.rb +233 -0
  166. data/lib/shortcut_client_ruby/models/create_comment_comment.rb +252 -0
  167. data/lib/shortcut_client_ruby/models/create_entity_template.rb +237 -0
  168. data/lib/shortcut_client_ruby/models/create_epic.rb +416 -0
  169. data/lib/shortcut_client_ruby/models/create_epic_comment.rb +252 -0
  170. data/lib/shortcut_client_ruby/models/create_group.rb +325 -0
  171. data/lib/shortcut_client_ruby/models/create_iteration.rb +288 -0
  172. data/lib/shortcut_client_ruby/models/create_label_params.rb +243 -0
  173. data/lib/shortcut_client_ruby/models/create_linked_file.rb +336 -0
  174. data/lib/shortcut_client_ruby/models/create_milestone.rb +298 -0
  175. data/lib/shortcut_client_ruby/models/create_or_delete_story_reaction.rb +212 -0
  176. data/lib/shortcut_client_ruby/models/create_project.rb +319 -0
  177. data/lib/shortcut_client_ruby/models/create_stories.rb +214 -0
  178. data/lib/shortcut_client_ruby/models/create_story_comment.rb +252 -0
  179. data/lib/shortcut_client_ruby/models/create_story_comment_params.rb +253 -0
  180. data/lib/shortcut_client_ruby/models/create_story_contents.rb +433 -0
  181. data/lib/shortcut_client_ruby/models/create_story_link.rb +276 -0
  182. data/lib/shortcut_client_ruby/models/create_story_link_params.rb +267 -0
  183. data/lib/shortcut_client_ruby/models/create_story_params.rb +532 -0
  184. data/lib/shortcut_client_ruby/models/create_task.rb +264 -0
  185. data/lib/shortcut_client_ruby/models/create_task_params.rb +265 -0
  186. data/lib/shortcut_client_ruby/models/delete_stories.rb +214 -0
  187. data/lib/shortcut_client_ruby/models/entity_template.rb +317 -0
  188. data/lib/shortcut_client_ruby/models/entity_template_task.rb +245 -0
  189. data/lib/shortcut_client_ruby/models/epic.rb +799 -0
  190. data/lib/shortcut_client_ruby/models/epic_search_results.rb +257 -0
  191. data/lib/shortcut_client_ruby/models/epic_slim.rb +777 -0
  192. data/lib/shortcut_client_ruby/models/epic_state.rb +328 -0
  193. data/lib/shortcut_client_ruby/models/epic_stats.rb +384 -0
  194. data/lib/shortcut_client_ruby/models/epic_workflow.rb +290 -0
  195. data/lib/shortcut_client_ruby/models/get_epic_stories.rb +207 -0
  196. data/lib/shortcut_client_ruby/models/get_external_link_stories_params.rb +212 -0
  197. data/lib/shortcut_client_ruby/models/get_iteration_stories.rb +207 -0
  198. data/lib/shortcut_client_ruby/models/get_label_stories.rb +207 -0
  199. data/lib/shortcut_client_ruby/models/get_member.rb +207 -0
  200. data/lib/shortcut_client_ruby/models/get_project_stories.rb +207 -0
  201. data/lib/shortcut_client_ruby/models/group.rb +479 -0
  202. data/lib/shortcut_client_ruby/models/history.rb +347 -0
  203. data/lib/shortcut_client_ruby/models/history_action_branch_create.rb +307 -0
  204. data/lib/shortcut_client_ruby/models/history_action_branch_merge.rb +307 -0
  205. data/lib/shortcut_client_ruby/models/history_action_branch_push.rb +307 -0
  206. data/lib/shortcut_client_ruby/models/history_action_label_create.rb +307 -0
  207. data/lib/shortcut_client_ruby/models/history_action_label_delete.rb +292 -0
  208. data/lib/shortcut_client_ruby/models/history_action_label_update.rb +277 -0
  209. data/lib/shortcut_client_ruby/models/history_action_project_update.rb +307 -0
  210. data/lib/shortcut_client_ruby/models/history_action_pull_request.rb +322 -0
  211. data/lib/shortcut_client_ruby/models/history_action_story_comment_create.rb +322 -0
  212. data/lib/shortcut_client_ruby/models/history_action_story_create.rb +527 -0
  213. data/lib/shortcut_client_ruby/models/history_action_story_delete.rb +319 -0
  214. data/lib/shortcut_client_ruby/models/history_action_story_link_create.rb +334 -0
  215. data/lib/shortcut_client_ruby/models/history_action_story_link_delete.rb +336 -0
  216. data/lib/shortcut_client_ruby/models/history_action_story_link_update.rb +348 -0
  217. data/lib/shortcut_client_ruby/models/history_action_story_update.rb +343 -0
  218. data/lib/shortcut_client_ruby/models/history_action_task_create.rb +353 -0
  219. data/lib/shortcut_client_ruby/models/history_action_task_delete.rb +292 -0
  220. data/lib/shortcut_client_ruby/models/history_action_task_update.rb +331 -0
  221. data/lib/shortcut_client_ruby/models/history_changes_story.rb +414 -0
  222. data/lib/shortcut_client_ruby/models/history_changes_story_link.rb +225 -0
  223. data/lib/shortcut_client_ruby/models/history_changes_task.rb +234 -0
  224. data/lib/shortcut_client_ruby/models/history_reference_branch.rb +258 -0
  225. data/lib/shortcut_client_ruby/models/history_reference_commit.rb +258 -0
  226. data/lib/shortcut_client_ruby/models/history_reference_epic.rb +258 -0
  227. data/lib/shortcut_client_ruby/models/history_reference_general.rb +243 -0
  228. data/lib/shortcut_client_ruby/models/history_reference_group.rb +243 -0
  229. data/lib/shortcut_client_ruby/models/history_reference_iteration.rb +258 -0
  230. data/lib/shortcut_client_ruby/models/history_reference_label.rb +258 -0
  231. data/lib/shortcut_client_ruby/models/history_reference_project.rb +258 -0
  232. data/lib/shortcut_client_ruby/models/history_reference_story.rb +307 -0
  233. data/lib/shortcut_client_ruby/models/history_reference_story_task.rb +243 -0
  234. data/lib/shortcut_client_ruby/models/history_reference_workflow_state.rb +292 -0
  235. data/lib/shortcut_client_ruby/models/icon.rb +273 -0
  236. data/lib/shortcut_client_ruby/models/identity.rb +245 -0
  237. data/lib/shortcut_client_ruby/models/iteration.rb +481 -0
  238. data/lib/shortcut_client_ruby/models/iteration_slim.rb +466 -0
  239. data/lib/shortcut_client_ruby/models/iteration_stats.rb +353 -0
  240. data/lib/shortcut_client_ruby/models/label.rb +362 -0
  241. data/lib/shortcut_client_ruby/models/label_slim.rb +353 -0
  242. data/lib/shortcut_client_ruby/models/label_stats.rb +423 -0
  243. data/lib/shortcut_client_ruby/models/linked_file.rb +450 -0
  244. data/lib/shortcut_client_ruby/models/list_epics.rb +207 -0
  245. data/lib/shortcut_client_ruby/models/list_group_stories.rb +217 -0
  246. data/lib/shortcut_client_ruby/models/list_labels.rb +207 -0
  247. data/lib/shortcut_client_ruby/models/list_members.rb +207 -0
  248. data/lib/shortcut_client_ruby/models/max_search_results_exceeded_error.rb +289 -0
  249. data/lib/shortcut_client_ruby/models/member.rb +395 -0
  250. data/lib/shortcut_client_ruby/models/member_info.rb +253 -0
  251. data/lib/shortcut_client_ruby/models/milestone.rb +453 -0
  252. data/lib/shortcut_client_ruby/models/milestone_stats.rb +233 -0
  253. data/lib/shortcut_client_ruby/models/profile.rb +330 -0
  254. data/lib/shortcut_client_ruby/models/project.rb +490 -0
  255. data/lib/shortcut_client_ruby/models/project_stats.rb +243 -0
  256. data/lib/shortcut_client_ruby/models/pull_request.rb +518 -0
  257. data/lib/shortcut_client_ruby/models/pull_request_label.rb +269 -0
  258. data/lib/shortcut_client_ruby/models/repository.rb +340 -0
  259. data/lib/shortcut_client_ruby/models/search.rb +275 -0
  260. data/lib/shortcut_client_ruby/models/search_results.rb +226 -0
  261. data/lib/shortcut_client_ruby/models/search_stories.rb +529 -0
  262. data/lib/shortcut_client_ruby/models/story.rb +985 -0
  263. data/lib/shortcut_client_ruby/models/story_comment.rb +419 -0
  264. data/lib/shortcut_client_ruby/models/story_contents.rb +404 -0
  265. data/lib/shortcut_client_ruby/models/story_contents_task.rb +255 -0
  266. data/lib/shortcut_client_ruby/models/story_history_change_adds_removes_int.rb +222 -0
  267. data/lib/shortcut_client_ruby/models/story_history_change_adds_removes_uuid.rb +222 -0
  268. data/lib/shortcut_client_ruby/models/story_history_change_old_new_bool.rb +218 -0
  269. data/lib/shortcut_client_ruby/models/story_history_change_old_new_int.rb +218 -0
  270. data/lib/shortcut_client_ruby/models/story_history_change_old_new_str.rb +218 -0
  271. data/lib/shortcut_client_ruby/models/story_history_change_old_new_uuid.rb +218 -0
  272. data/lib/shortcut_client_ruby/models/story_link.rb +318 -0
  273. data/lib/shortcut_client_ruby/models/story_reaction.rb +230 -0
  274. data/lib/shortcut_client_ruby/models/story_search_results.rb +257 -0
  275. data/lib/shortcut_client_ruby/models/story_slim.rb +944 -0
  276. data/lib/shortcut_client_ruby/models/story_stats.rb +213 -0
  277. data/lib/shortcut_client_ruby/models/task.rb +418 -0
  278. data/lib/shortcut_client_ruby/models/threaded_comment.rb +402 -0
  279. data/lib/shortcut_client_ruby/models/typed_story_link.rb +333 -0
  280. data/lib/shortcut_client_ruby/models/unusable_entitlement_error.rb +276 -0
  281. data/lib/shortcut_client_ruby/models/update_category.rb +228 -0
  282. data/lib/shortcut_client_ruby/models/update_comment.rb +212 -0
  283. data/lib/shortcut_client_ruby/models/update_entity_template.rb +217 -0
  284. data/lib/shortcut_client_ruby/models/update_epic.rb +413 -0
  285. data/lib/shortcut_client_ruby/models/update_file.rb +257 -0
  286. data/lib/shortcut_client_ruby/models/update_group.rb +328 -0
  287. data/lib/shortcut_client_ruby/models/update_iteration.rb +273 -0
  288. data/lib/shortcut_client_ruby/models/update_label.rb +238 -0
  289. data/lib/shortcut_client_ruby/models/update_linked_file.rb +311 -0
  290. data/lib/shortcut_client_ruby/models/update_milestone.rb +315 -0
  291. data/lib/shortcut_client_ruby/models/update_project.rb +289 -0
  292. data/lib/shortcut_client_ruby/models/update_stories.rb +480 -0
  293. data/lib/shortcut_client_ruby/models/update_story.rb +529 -0
  294. data/lib/shortcut_client_ruby/models/update_story_comment.rb +212 -0
  295. data/lib/shortcut_client_ruby/models/update_story_contents.rb +434 -0
  296. data/lib/shortcut_client_ruby/models/update_story_link.rb +261 -0
  297. data/lib/shortcut_client_ruby/models/update_task.rb +249 -0
  298. data/lib/shortcut_client_ruby/models/uploaded_file.rb +466 -0
  299. data/lib/shortcut_client_ruby/models/v3_files_body.rb +252 -0
  300. data/lib/shortcut_client_ruby/models/workflow.rb +367 -0
  301. data/lib/shortcut_client_ruby/models/workflow_state.rb +374 -0
  302. data/lib/shortcut_client_ruby/version.rb +14 -0
  303. data/lib/shortcut_client_ruby.rb +181 -0
  304. data/shortcut-client-ruby.gemspec +36 -0
  305. data/shortcut_client_ruby.gemspec +38 -0
  306. data/spec/api/default_api_spec.rb +1310 -0
  307. data/spec/api_client_spec.rb +225 -0
  308. data/spec/base_object_spec.rb +109 -0
  309. data/spec/configuration_spec.rb +41 -0
  310. data/spec/models/basic_workspace_info_spec.rb +46 -0
  311. data/spec/models/branch_spec.rb +100 -0
  312. data/spec/models/category_spec.rb +88 -0
  313. data/spec/models/commit_spec.rb +112 -0
  314. data/spec/models/create_category_params_spec.rb +52 -0
  315. data/spec/models/create_category_spec.rb +62 -0
  316. data/spec/models/create_comment_comment_spec.rb +64 -0
  317. data/spec/models/create_entity_template_spec.rb +52 -0
  318. data/spec/models/create_epic_comment_spec.rb +64 -0
  319. data/spec/models/create_epic_spec.rb +140 -0
  320. data/spec/models/create_group_spec.rb +86 -0
  321. data/spec/models/create_iteration_spec.rb +76 -0
  322. data/spec/models/create_label_params_spec.rb +58 -0
  323. data/spec/models/create_linked_file_spec.rb +92 -0
  324. data/spec/models/create_milestone_spec.rb +74 -0
  325. data/spec/models/create_or_delete_story_reaction_spec.rb +40 -0
  326. data/spec/models/create_project_spec.rb +100 -0
  327. data/spec/models/create_stories_spec.rb +40 -0
  328. data/spec/models/create_story_comment_params_spec.rb +64 -0
  329. data/spec/models/create_story_comment_spec.rb +64 -0
  330. data/spec/models/create_story_contents_spec.rb +160 -0
  331. data/spec/models/create_story_link_params_spec.rb +56 -0
  332. data/spec/models/create_story_link_spec.rb +56 -0
  333. data/spec/models/create_story_params_spec.rb +200 -0
  334. data/spec/models/create_task_params_spec.rb +70 -0
  335. data/spec/models/create_task_spec.rb +70 -0
  336. data/spec/models/delete_stories_spec.rb +40 -0
  337. data/spec/models/entity_template_spec.rb +82 -0
  338. data/spec/models/entity_template_task_spec.rb +58 -0
  339. data/spec/models/epic_search_results_spec.rb +58 -0
  340. data/spec/models/epic_slim_spec.rb +256 -0
  341. data/spec/models/epic_spec.rb +262 -0
  342. data/spec/models/epic_state_spec.rb +88 -0
  343. data/spec/models/epic_stats_spec.rb +112 -0
  344. data/spec/models/epic_workflow_spec.rb +70 -0
  345. data/spec/models/get_epic_stories_spec.rb +40 -0
  346. data/spec/models/get_external_link_stories_params_spec.rb +40 -0
  347. data/spec/models/get_iteration_stories_spec.rb +40 -0
  348. data/spec/models/get_label_stories_spec.rb +40 -0
  349. data/spec/models/get_member_spec.rb +40 -0
  350. data/spec/models/get_project_stories_spec.rb +40 -0
  351. data/spec/models/group_spec.rb +134 -0
  352. data/spec/models/history_action_branch_create_spec.rb +68 -0
  353. data/spec/models/history_action_branch_merge_spec.rb +68 -0
  354. data/spec/models/history_action_branch_push_spec.rb +68 -0
  355. data/spec/models/history_action_label_create_spec.rb +68 -0
  356. data/spec/models/history_action_label_delete_spec.rb +62 -0
  357. data/spec/models/history_action_label_update_spec.rb +56 -0
  358. data/spec/models/history_action_project_update_spec.rb +68 -0
  359. data/spec/models/history_action_pull_request_spec.rb +74 -0
  360. data/spec/models/history_action_story_comment_create_spec.rb +74 -0
  361. data/spec/models/history_action_story_create_spec.rb +186 -0
  362. data/spec/models/history_action_story_delete_spec.rb +72 -0
  363. data/spec/models/history_action_story_link_create_spec.rb +78 -0
  364. data/spec/models/history_action_story_link_delete_spec.rb +78 -0
  365. data/spec/models/history_action_story_link_update_spec.rb +84 -0
  366. data/spec/models/history_action_story_update_spec.rb +84 -0
  367. data/spec/models/history_action_task_create_spec.rb +92 -0
  368. data/spec/models/history_action_task_delete_spec.rb +62 -0
  369. data/spec/models/history_action_task_update_spec.rb +80 -0
  370. data/spec/models/history_changes_story_link_spec.rb +52 -0
  371. data/spec/models/history_changes_story_spec.rb +178 -0
  372. data/spec/models/history_changes_task_spec.rb +58 -0
  373. data/spec/models/history_reference_branch_spec.rb +58 -0
  374. data/spec/models/history_reference_commit_spec.rb +58 -0
  375. data/spec/models/history_reference_epic_spec.rb +58 -0
  376. data/spec/models/history_reference_general_spec.rb +52 -0
  377. data/spec/models/history_reference_group_spec.rb +52 -0
  378. data/spec/models/history_reference_iteration_spec.rb +58 -0
  379. data/spec/models/history_reference_label_spec.rb +58 -0
  380. data/spec/models/history_reference_project_spec.rb +58 -0
  381. data/spec/models/history_reference_story_spec.rb +68 -0
  382. data/spec/models/history_reference_story_task_spec.rb +52 -0
  383. data/spec/models/history_reference_workflow_state_spec.rb +62 -0
  384. data/spec/models/history_spec.rb +92 -0
  385. data/spec/models/icon_spec.rb +64 -0
  386. data/spec/models/identity_spec.rb +52 -0
  387. data/spec/models/iteration_slim_spec.rb +136 -0
  388. data/spec/models/iteration_spec.rb +142 -0
  389. data/spec/models/iteration_stats_spec.rb +100 -0
  390. data/spec/models/label_slim_spec.rb +94 -0
  391. data/spec/models/label_spec.rb +100 -0
  392. data/spec/models/label_stats_spec.rb +124 -0
  393. data/spec/models/linked_file_spec.rb +130 -0
  394. data/spec/models/list_epics_spec.rb +40 -0
  395. data/spec/models/list_group_stories_spec.rb +46 -0
  396. data/spec/models/list_labels_spec.rb +40 -0
  397. data/spec/models/list_members_spec.rb +40 -0
  398. data/spec/models/max_search_results_exceeded_error_spec.rb +60 -0
  399. data/spec/models/member_info_spec.rb +58 -0
  400. data/spec/models/member_spec.rb +104 -0
  401. data/spec/models/milestone_spec.rb +136 -0
  402. data/spec/models/milestone_stats_spec.rb +52 -0
  403. data/spec/models/profile_spec.rb +88 -0
  404. data/spec/models/project_spec.rb +148 -0
  405. data/spec/models/project_stats_spec.rb +52 -0
  406. data/spec/models/pull_request_label_spec.rb +64 -0
  407. data/spec/models/pull_request_spec.rb +166 -0
  408. data/spec/models/repository_spec.rb +88 -0
  409. data/spec/models/search_results_spec.rb +46 -0
  410. data/spec/models/search_spec.rb +62 -0
  411. data/spec/models/search_stories_spec.rb +210 -0
  412. data/spec/models/story_comment_spec.rb +118 -0
  413. data/spec/models/story_contents_spec.rb +148 -0
  414. data/spec/models/story_contents_task_spec.rb +64 -0
  415. data/spec/models/story_history_change_adds_removes_int_spec.rb +46 -0
  416. data/spec/models/story_history_change_adds_removes_uuid_spec.rb +46 -0
  417. data/spec/models/story_history_change_old_new_bool_spec.rb +46 -0
  418. data/spec/models/story_history_change_old_new_int_spec.rb +46 -0
  419. data/spec/models/story_history_change_old_new_str_spec.rb +46 -0
  420. data/spec/models/story_history_change_old_new_uuid_spec.rb +46 -0
  421. data/spec/models/story_link_spec.rb +82 -0
  422. data/spec/models/story_reaction_spec.rb +46 -0
  423. data/spec/models/story_search_results_spec.rb +58 -0
  424. data/spec/models/story_slim_spec.rb +322 -0
  425. data/spec/models/story_spec.rb +334 -0
  426. data/spec/models/story_stats_spec.rb +40 -0
  427. data/spec/models/task_spec.rb +118 -0
  428. data/spec/models/threaded_comment_spec.rb +112 -0
  429. data/spec/models/typed_story_link_spec.rb +88 -0
  430. data/spec/models/unusable_entitlement_error_spec.rb +56 -0
  431. data/spec/models/update_category_spec.rb +52 -0
  432. data/spec/models/update_comment_spec.rb +40 -0
  433. data/spec/models/update_entity_template_spec.rb +46 -0
  434. data/spec/models/update_epic_spec.rb +140 -0
  435. data/spec/models/update_file_spec.rb +70 -0
  436. data/spec/models/update_group_spec.rb +92 -0
  437. data/spec/models/update_iteration_spec.rb +76 -0
  438. data/spec/models/update_label_spec.rb +58 -0
  439. data/spec/models/update_linked_file_spec.rb +86 -0
  440. data/spec/models/update_milestone_spec.rb +86 -0
  441. data/spec/models/update_project_spec.rb +88 -0
  442. data/spec/models/update_stories_spec.rb +168 -0
  443. data/spec/models/update_story_comment_spec.rb +40 -0
  444. data/spec/models/update_story_contents_spec.rb +160 -0
  445. data/spec/models/update_story_link_spec.rb +56 -0
  446. data/spec/models/update_story_spec.rb +198 -0
  447. data/spec/models/update_task_spec.rb +64 -0
  448. data/spec/models/uploaded_file_spec.rb +136 -0
  449. data/spec/models/v3_files_body_spec.rb +64 -0
  450. data/spec/models/workflow_spec.rb +100 -0
  451. data/spec/models/workflow_state_spec.rb +106 -0
  452. data/spec/spec_helper.rb +110 -0
  453. metadata +701 -0
@@ -0,0 +1,466 @@
1
+ =begin
2
+ #Shortcut API
3
+
4
+ #Shortcut API
5
+
6
+ OpenAPI spec version: 3.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 3.0.35
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module Shortcut
15
+ # An UploadedFile is any document uploaded to your Shortcut Workspace. Files attached from a third-party service are different: see the Linked Files endpoint.
16
+ class UploadedFile
17
+ # The description of the file.
18
+ attr_accessor :description
19
+
20
+ # A string description of this resource.
21
+ attr_accessor :entity_type
22
+
23
+ # The unique IDs of the Stories associated with this file.
24
+ attr_accessor :story_ids
25
+
26
+ # Deprecated: use member_mention_ids.
27
+ attr_accessor :mention_ids
28
+
29
+ # The unique IDs of the Members who are mentioned in the file description.
30
+ attr_accessor :member_mention_ids
31
+
32
+ # The optional User-specified name of the file.
33
+ attr_accessor :name
34
+
35
+ # The url where the thumbnail of the file can be found in Shortcut.
36
+ attr_accessor :thumbnail_url
37
+
38
+ # The size of the file.
39
+ attr_accessor :size
40
+
41
+ # The unique ID of the Member who uploaded the file.
42
+ attr_accessor :uploader_id
43
+
44
+ # Free form string corresponding to a text or image file.
45
+ attr_accessor :content_type
46
+
47
+ # The time/date that the file was updated.
48
+ attr_accessor :updated_at
49
+
50
+ # The name assigned to the file in Shortcut upon upload.
51
+ attr_accessor :filename
52
+
53
+ # The unique IDs of the Groups who are mentioned in the file description.
54
+ attr_accessor :group_mention_ids
55
+
56
+ # This field can be set to another unique ID. In the case that the File has been imported from another tool, the ID in the other tool can be indicated here.
57
+ attr_accessor :external_id
58
+
59
+ # The unique ID for the file.
60
+ attr_accessor :id
61
+
62
+ # The URL for the file.
63
+ attr_accessor :url
64
+
65
+ # The time/date that the file was created.
66
+ attr_accessor :created_at
67
+
68
+ # Attribute mapping from ruby-style variable name to JSON key.
69
+ def self.attribute_map
70
+ {
71
+ :'description' => :'description',
72
+ :'entity_type' => :'entity_type',
73
+ :'story_ids' => :'story_ids',
74
+ :'mention_ids' => :'mention_ids',
75
+ :'member_mention_ids' => :'member_mention_ids',
76
+ :'name' => :'name',
77
+ :'thumbnail_url' => :'thumbnail_url',
78
+ :'size' => :'size',
79
+ :'uploader_id' => :'uploader_id',
80
+ :'content_type' => :'content_type',
81
+ :'updated_at' => :'updated_at',
82
+ :'filename' => :'filename',
83
+ :'group_mention_ids' => :'group_mention_ids',
84
+ :'external_id' => :'external_id',
85
+ :'id' => :'id',
86
+ :'url' => :'url',
87
+ :'created_at' => :'created_at'
88
+ }
89
+ end
90
+
91
+ # Attribute type mapping.
92
+ def self.openapi_types
93
+ {
94
+ :'description' => :'Object',
95
+ :'entity_type' => :'Object',
96
+ :'story_ids' => :'Object',
97
+ :'mention_ids' => :'Object',
98
+ :'member_mention_ids' => :'Object',
99
+ :'name' => :'Object',
100
+ :'thumbnail_url' => :'Object',
101
+ :'size' => :'Object',
102
+ :'uploader_id' => :'Object',
103
+ :'content_type' => :'Object',
104
+ :'updated_at' => :'Object',
105
+ :'filename' => :'Object',
106
+ :'group_mention_ids' => :'Object',
107
+ :'external_id' => :'Object',
108
+ :'id' => :'Object',
109
+ :'url' => :'Object',
110
+ :'created_at' => :'Object'
111
+ }
112
+ end
113
+
114
+ # List of attributes with nullable: true
115
+ def self.openapi_nullable
116
+ Set.new([
117
+ :'description',
118
+ :'thumbnail_url',
119
+ :'updated_at',
120
+ :'external_id',
121
+ :'url',
122
+ ])
123
+ end
124
+
125
+ # Initializes the object
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ def initialize(attributes = {})
128
+ if (!attributes.is_a?(Hash))
129
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shortcut::UploadedFile` initialize method"
130
+ end
131
+
132
+ # check to see if the attribute exists and convert string to symbol for hash key
133
+ attributes = attributes.each_with_object({}) { |(k, v), h|
134
+ if (!self.class.attribute_map.key?(k.to_sym))
135
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shortcut::UploadedFile`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
136
+ end
137
+ h[k.to_sym] = v
138
+ }
139
+
140
+ if attributes.key?(:'description')
141
+ self.description = attributes[:'description']
142
+ end
143
+
144
+ if attributes.key?(:'entity_type')
145
+ self.entity_type = attributes[:'entity_type']
146
+ end
147
+
148
+ if attributes.key?(:'story_ids')
149
+ if (value = attributes[:'story_ids']).is_a?(Array)
150
+ self.story_ids = value
151
+ end
152
+ end
153
+
154
+ if attributes.key?(:'mention_ids')
155
+ if (value = attributes[:'mention_ids']).is_a?(Array)
156
+ self.mention_ids = value
157
+ end
158
+ end
159
+
160
+ if attributes.key?(:'member_mention_ids')
161
+ if (value = attributes[:'member_mention_ids']).is_a?(Array)
162
+ self.member_mention_ids = value
163
+ end
164
+ end
165
+
166
+ if attributes.key?(:'name')
167
+ self.name = attributes[:'name']
168
+ end
169
+
170
+ if attributes.key?(:'thumbnail_url')
171
+ self.thumbnail_url = attributes[:'thumbnail_url']
172
+ end
173
+
174
+ if attributes.key?(:'size')
175
+ self.size = attributes[:'size']
176
+ end
177
+
178
+ if attributes.key?(:'uploader_id')
179
+ self.uploader_id = attributes[:'uploader_id']
180
+ end
181
+
182
+ if attributes.key?(:'content_type')
183
+ self.content_type = attributes[:'content_type']
184
+ end
185
+
186
+ if attributes.key?(:'updated_at')
187
+ self.updated_at = attributes[:'updated_at']
188
+ end
189
+
190
+ if attributes.key?(:'filename')
191
+ self.filename = attributes[:'filename']
192
+ end
193
+
194
+ if attributes.key?(:'group_mention_ids')
195
+ if (value = attributes[:'group_mention_ids']).is_a?(Array)
196
+ self.group_mention_ids = value
197
+ end
198
+ end
199
+
200
+ if attributes.key?(:'external_id')
201
+ self.external_id = attributes[:'external_id']
202
+ end
203
+
204
+ if attributes.key?(:'id')
205
+ self.id = attributes[:'id']
206
+ end
207
+
208
+ if attributes.key?(:'url')
209
+ self.url = attributes[:'url']
210
+ end
211
+
212
+ if attributes.key?(:'created_at')
213
+ self.created_at = attributes[:'created_at']
214
+ end
215
+ end
216
+
217
+ # Show invalid properties with the reasons. Usually used together with valid?
218
+ # @return Array for valid properties with the reasons
219
+ def list_invalid_properties
220
+ invalid_properties = Array.new
221
+ if @description.nil?
222
+ invalid_properties.push('invalid value for "description", description cannot be nil.')
223
+ end
224
+
225
+ if @entity_type.nil?
226
+ invalid_properties.push('invalid value for "entity_type", entity_type cannot be nil.')
227
+ end
228
+
229
+ if @story_ids.nil?
230
+ invalid_properties.push('invalid value for "story_ids", story_ids cannot be nil.')
231
+ end
232
+
233
+ if @mention_ids.nil?
234
+ invalid_properties.push('invalid value for "mention_ids", mention_ids cannot be nil.')
235
+ end
236
+
237
+ if @member_mention_ids.nil?
238
+ invalid_properties.push('invalid value for "member_mention_ids", member_mention_ids cannot be nil.')
239
+ end
240
+
241
+ if @name.nil?
242
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
243
+ end
244
+
245
+ if @thumbnail_url.nil?
246
+ invalid_properties.push('invalid value for "thumbnail_url", thumbnail_url cannot be nil.')
247
+ end
248
+
249
+ if @size.nil?
250
+ invalid_properties.push('invalid value for "size", size cannot be nil.')
251
+ end
252
+
253
+ if @uploader_id.nil?
254
+ invalid_properties.push('invalid value for "uploader_id", uploader_id cannot be nil.')
255
+ end
256
+
257
+ if @content_type.nil?
258
+ invalid_properties.push('invalid value for "content_type", content_type cannot be nil.')
259
+ end
260
+
261
+ if @updated_at.nil?
262
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
263
+ end
264
+
265
+ if @filename.nil?
266
+ invalid_properties.push('invalid value for "filename", filename cannot be nil.')
267
+ end
268
+
269
+ if @group_mention_ids.nil?
270
+ invalid_properties.push('invalid value for "group_mention_ids", group_mention_ids cannot be nil.')
271
+ end
272
+
273
+ if @external_id.nil?
274
+ invalid_properties.push('invalid value for "external_id", external_id cannot be nil.')
275
+ end
276
+
277
+ if @id.nil?
278
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
279
+ end
280
+
281
+ if @url.nil?
282
+ invalid_properties.push('invalid value for "url", url cannot be nil.')
283
+ end
284
+
285
+ if @created_at.nil?
286
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
287
+ end
288
+
289
+ invalid_properties
290
+ end
291
+
292
+ # Check to see if the all the properties in the model are valid
293
+ # @return true if the model is valid
294
+ def valid?
295
+ return false if @description.nil?
296
+ return false if @entity_type.nil?
297
+ return false if @story_ids.nil?
298
+ return false if @mention_ids.nil?
299
+ return false if @member_mention_ids.nil?
300
+ return false if @name.nil?
301
+ return false if @thumbnail_url.nil?
302
+ return false if @size.nil?
303
+ return false if @uploader_id.nil?
304
+ return false if @content_type.nil?
305
+ return false if @updated_at.nil?
306
+ return false if @filename.nil?
307
+ return false if @group_mention_ids.nil?
308
+ return false if @external_id.nil?
309
+ return false if @id.nil?
310
+ return false if @url.nil?
311
+ return false if @created_at.nil?
312
+ true
313
+ end
314
+
315
+ # Checks equality by comparing each attribute.
316
+ # @param [Object] Object to be compared
317
+ def ==(o)
318
+ return true if self.equal?(o)
319
+ self.class == o.class &&
320
+ description == o.description &&
321
+ entity_type == o.entity_type &&
322
+ story_ids == o.story_ids &&
323
+ mention_ids == o.mention_ids &&
324
+ member_mention_ids == o.member_mention_ids &&
325
+ name == o.name &&
326
+ thumbnail_url == o.thumbnail_url &&
327
+ size == o.size &&
328
+ uploader_id == o.uploader_id &&
329
+ content_type == o.content_type &&
330
+ updated_at == o.updated_at &&
331
+ filename == o.filename &&
332
+ group_mention_ids == o.group_mention_ids &&
333
+ external_id == o.external_id &&
334
+ id == o.id &&
335
+ url == o.url &&
336
+ created_at == o.created_at
337
+ end
338
+
339
+ # @see the `==` method
340
+ # @param [Object] Object to be compared
341
+ def eql?(o)
342
+ self == o
343
+ end
344
+
345
+ # Calculates hash code according to all attributes.
346
+ # @return [Integer] Hash code
347
+ def hash
348
+ [description, entity_type, story_ids, mention_ids, member_mention_ids, name, thumbnail_url, size, uploader_id, content_type, updated_at, filename, group_mention_ids, external_id, id, url, created_at].hash
349
+ end
350
+
351
+ # Builds the object from hash
352
+ # @param [Hash] attributes Model attributes in the form of hash
353
+ # @return [Object] Returns the model itself
354
+ def self.build_from_hash(attributes)
355
+ new.build_from_hash(attributes)
356
+ end
357
+
358
+ # Builds the object from hash
359
+ # @param [Hash] attributes Model attributes in the form of hash
360
+ # @return [Object] Returns the model itself
361
+ def build_from_hash(attributes)
362
+ return nil unless attributes.is_a?(Hash)
363
+ self.class.openapi_types.each_pair do |key, type|
364
+ if type =~ /\AArray<(.*)>/i
365
+ # check to ensure the input is an array given that the attribute
366
+ # is documented as an array but the input is not
367
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
368
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
369
+ end
370
+ elsif !attributes[self.class.attribute_map[key]].nil?
371
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
372
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
373
+ self.send("#{key}=", nil)
374
+ end
375
+ end
376
+
377
+ self
378
+ end
379
+
380
+ # Deserializes the data based on type
381
+ # @param string type Data type
382
+ # @param string value Value to be deserialized
383
+ # @return [Object] Deserialized data
384
+ def _deserialize(type, value)
385
+ case type.to_sym
386
+ when :DateTime
387
+ DateTime.parse(value)
388
+ when :Date
389
+ Date.parse(value)
390
+ when :String
391
+ value.to_s
392
+ when :Integer
393
+ value.to_i
394
+ when :Float
395
+ value.to_f
396
+ when :Boolean
397
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
398
+ true
399
+ else
400
+ false
401
+ end
402
+ when :Object
403
+ # generic object (usually a Hash), return directly
404
+ value
405
+ when /\AArray<(?<inner_type>.+)>\z/
406
+ inner_type = Regexp.last_match[:inner_type]
407
+ value.map { |v| _deserialize(inner_type, v) }
408
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
409
+ k_type = Regexp.last_match[:k_type]
410
+ v_type = Regexp.last_match[:v_type]
411
+ {}.tap do |hash|
412
+ value.each do |k, v|
413
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
414
+ end
415
+ end
416
+ else # model
417
+ Shortcut.const_get(type).build_from_hash(value)
418
+ end
419
+ end
420
+
421
+ # Returns the string representation of the object
422
+ # @return [String] String presentation of the object
423
+ def to_s
424
+ to_hash.to_s
425
+ end
426
+
427
+ # to_body is an alias to to_hash (backward compatibility)
428
+ # @return [Hash] Returns the object in the form of hash
429
+ def to_body
430
+ to_hash
431
+ end
432
+
433
+ # Returns the object in the form of hash
434
+ # @return [Hash] Returns the object in the form of hash
435
+ def to_hash
436
+ hash = {}
437
+ self.class.attribute_map.each_pair do |attr, param|
438
+ value = self.send(attr)
439
+ if value.nil?
440
+ is_nullable = self.class.openapi_nullable.include?(attr)
441
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
442
+ end
443
+
444
+ hash[param] = _to_hash(value)
445
+ end
446
+ hash
447
+ end
448
+
449
+ # Outputs non-array value in the form of hash
450
+ # For object, use to_hash. Otherwise, just return the value
451
+ # @param [Object] value Any valid value
452
+ # @return [Hash] Returns the value in the form of hash
453
+ def _to_hash(value)
454
+ if value.is_a?(Array)
455
+ value.compact.map { |v| _to_hash(v) }
456
+ elsif value.is_a?(Hash)
457
+ {}.tap do |hash|
458
+ value.each { |k, v| hash[k] = _to_hash(v) }
459
+ end
460
+ elsif value.respond_to? :to_hash
461
+ value.to_hash
462
+ else
463
+ value
464
+ end
465
+ end end
466
+ end
@@ -0,0 +1,252 @@
1
+ =begin
2
+ #Shortcut API
3
+
4
+ #Shortcut API
5
+
6
+ OpenAPI spec version: 3.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 3.0.35
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module Shortcut
15
+ class V3FilesBody
16
+ # The story ID that these files will be associated with.
17
+ attr_accessor :story_id
18
+
19
+ # A file upload. At least one is required.
20
+ attr_accessor :file0
21
+
22
+ # Optional additional files.
23
+ attr_accessor :file1
24
+
25
+ # Optional additional files.
26
+ attr_accessor :file2
27
+
28
+ # Optional additional files.
29
+ attr_accessor :file3
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+ :'story_id' => :'story_id',
35
+ :'file0' => :'file0',
36
+ :'file1' => :'file1',
37
+ :'file2' => :'file2',
38
+ :'file3' => :'file3'
39
+ }
40
+ end
41
+
42
+ # Attribute type mapping.
43
+ def self.openapi_types
44
+ {
45
+ :'story_id' => :'Object',
46
+ :'file0' => :'Object',
47
+ :'file1' => :'Object',
48
+ :'file2' => :'Object',
49
+ :'file3' => :'Object'
50
+ }
51
+ end
52
+
53
+ # List of attributes with nullable: true
54
+ def self.openapi_nullable
55
+ Set.new([
56
+ ])
57
+ end
58
+
59
+ # Initializes the object
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ def initialize(attributes = {})
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shortcut::V3FilesBody` initialize method"
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shortcut::V3FilesBody`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'story_id')
75
+ self.story_id = attributes[:'story_id']
76
+ end
77
+
78
+ if attributes.key?(:'file0')
79
+ self.file0 = attributes[:'file0']
80
+ end
81
+
82
+ if attributes.key?(:'file1')
83
+ self.file1 = attributes[:'file1']
84
+ end
85
+
86
+ if attributes.key?(:'file2')
87
+ self.file2 = attributes[:'file2']
88
+ end
89
+
90
+ if attributes.key?(:'file3')
91
+ self.file3 = attributes[:'file3']
92
+ end
93
+ end
94
+
95
+ # Show invalid properties with the reasons. Usually used together with valid?
96
+ # @return Array for valid properties with the reasons
97
+ def list_invalid_properties
98
+ invalid_properties = Array.new
99
+ if @file0.nil?
100
+ invalid_properties.push('invalid value for "file0", file0 cannot be nil.')
101
+ end
102
+
103
+ invalid_properties
104
+ end
105
+
106
+ # Check to see if the all the properties in the model are valid
107
+ # @return true if the model is valid
108
+ def valid?
109
+ return false if @file0.nil?
110
+ true
111
+ end
112
+
113
+ # Checks equality by comparing each attribute.
114
+ # @param [Object] Object to be compared
115
+ def ==(o)
116
+ return true if self.equal?(o)
117
+ self.class == o.class &&
118
+ story_id == o.story_id &&
119
+ file0 == o.file0 &&
120
+ file1 == o.file1 &&
121
+ file2 == o.file2 &&
122
+ file3 == o.file3
123
+ end
124
+
125
+ # @see the `==` method
126
+ # @param [Object] Object to be compared
127
+ def eql?(o)
128
+ self == o
129
+ end
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Integer] Hash code
133
+ def hash
134
+ [story_id, file0, file1, file2, file3].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ new.build_from_hash(attributes)
142
+ end
143
+
144
+ # Builds the object from hash
145
+ # @param [Hash] attributes Model attributes in the form of hash
146
+ # @return [Object] Returns the model itself
147
+ def build_from_hash(attributes)
148
+ return nil unless attributes.is_a?(Hash)
149
+ self.class.openapi_types.each_pair do |key, type|
150
+ if type =~ /\AArray<(.*)>/i
151
+ # check to ensure the input is an array given that the attribute
152
+ # is documented as an array but the input is not
153
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
154
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
155
+ end
156
+ elsif !attributes[self.class.attribute_map[key]].nil?
157
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
158
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
159
+ self.send("#{key}=", nil)
160
+ end
161
+ end
162
+
163
+ self
164
+ end
165
+
166
+ # Deserializes the data based on type
167
+ # @param string type Data type
168
+ # @param string value Value to be deserialized
169
+ # @return [Object] Deserialized data
170
+ def _deserialize(type, value)
171
+ case type.to_sym
172
+ when :DateTime
173
+ DateTime.parse(value)
174
+ when :Date
175
+ Date.parse(value)
176
+ when :String
177
+ value.to_s
178
+ when :Integer
179
+ value.to_i
180
+ when :Float
181
+ value.to_f
182
+ when :Boolean
183
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
184
+ true
185
+ else
186
+ false
187
+ end
188
+ when :Object
189
+ # generic object (usually a Hash), return directly
190
+ value
191
+ when /\AArray<(?<inner_type>.+)>\z/
192
+ inner_type = Regexp.last_match[:inner_type]
193
+ value.map { |v| _deserialize(inner_type, v) }
194
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
195
+ k_type = Regexp.last_match[:k_type]
196
+ v_type = Regexp.last_match[:v_type]
197
+ {}.tap do |hash|
198
+ value.each do |k, v|
199
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
200
+ end
201
+ end
202
+ else # model
203
+ Shortcut.const_get(type).build_from_hash(value)
204
+ end
205
+ end
206
+
207
+ # Returns the string representation of the object
208
+ # @return [String] String presentation of the object
209
+ def to_s
210
+ to_hash.to_s
211
+ end
212
+
213
+ # to_body is an alias to to_hash (backward compatibility)
214
+ # @return [Hash] Returns the object in the form of hash
215
+ def to_body
216
+ to_hash
217
+ end
218
+
219
+ # Returns the object in the form of hash
220
+ # @return [Hash] Returns the object in the form of hash
221
+ def to_hash
222
+ hash = {}
223
+ self.class.attribute_map.each_pair do |attr, param|
224
+ value = self.send(attr)
225
+ if value.nil?
226
+ is_nullable = self.class.openapi_nullable.include?(attr)
227
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
228
+ end
229
+
230
+ hash[param] = _to_hash(value)
231
+ end
232
+ hash
233
+ end
234
+
235
+ # Outputs non-array value in the form of hash
236
+ # For object, use to_hash. Otherwise, just return the value
237
+ # @param [Object] value Any valid value
238
+ # @return [Hash] Returns the value in the form of hash
239
+ def _to_hash(value)
240
+ if value.is_a?(Array)
241
+ value.compact.map { |v| _to_hash(v) }
242
+ elsif value.is_a?(Hash)
243
+ {}.tap do |hash|
244
+ value.each { |k, v| hash[k] = _to_hash(v) }
245
+ end
246
+ elsif value.respond_to? :to_hash
247
+ value.to_hash
248
+ else
249
+ value
250
+ end
251
+ end end
252
+ end