slack_resources 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +87 -0
  3. data/.circleci/gem_deployment.rb +53 -0
  4. data/.gitignore +13 -0
  5. data/.rubocop.yml +104 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +93 -0
  8. data/README.md +29 -0
  9. data/Rakefile +6 -0
  10. data/lib/generate_event_api_resources.rb +8 -0
  11. data/lib/slack_resources.rb +11 -0
  12. data/lib/slack_resources/generator/event_api/examples_preparation.rb +71 -0
  13. data/lib/slack_resources/generator/event_api/fetch.rb +111 -0
  14. data/lib/slack_resources/generator/event_api/strong_hash.rb +25 -0
  15. data/lib/slack_resources/generator/event_api/to_schema.rb +200 -0
  16. data/lib/slack_resources/generator/event_api/type_detection.rb +272 -0
  17. data/lib/slack_resources/generator/event_api/write.rb +123 -0
  18. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.add.json +7 -0
  19. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.remove.json +6 -0
  20. data/lib/slack_resources/raw_data/event_api/_added_examples/event_callback.json +13 -0
  21. data/lib/slack_resources/raw_data/event_api/examples/app_mention.json +8 -0
  22. data/lib/slack_resources/raw_data/event_api/examples/app_rate_limited.json +7 -0
  23. data/lib/slack_resources/raw_data/event_api/examples/app_uninstalled.json +11 -0
  24. data/lib/slack_resources/raw_data/event_api/examples/channel_archive.json +5 -0
  25. data/lib/slack_resources/raw_data/event_api/examples/channel_created.json +9 -0
  26. data/lib/slack_resources/raw_data/event_api/examples/channel_deleted.json +4 -0
  27. data/lib/slack_resources/raw_data/event_api/examples/channel_history_changed.json +6 -0
  28. data/lib/slack_resources/raw_data/event_api/examples/channel_left.json +4 -0
  29. data/lib/slack_resources/raw_data/event_api/examples/channel_rename.json +8 -0
  30. data/lib/slack_resources/raw_data/event_api/examples/channel_unarchive.json +5 -0
  31. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated.json +11 -0
  32. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated_user.json +9 -0
  33. data/lib/slack_resources/raw_data/event_api/examples/email_domain_changed.json +5 -0
  34. data/lib/slack_resources/raw_data/event_api/examples/emoji_changed.json +8 -0
  35. data/lib/slack_resources/raw_data/event_api/examples/file_change.json +7 -0
  36. data/lib/slack_resources/raw_data/event_api/examples/file_comment_added.json +9 -0
  37. data/lib/slack_resources/raw_data/event_api/examples/file_comment_deleted.json +8 -0
  38. data/lib/slack_resources/raw_data/event_api/examples/file_comment_edited.json +9 -0
  39. data/lib/slack_resources/raw_data/event_api/examples/file_created.json +7 -0
  40. data/lib/slack_resources/raw_data/event_api/examples/file_deleted.json +5 -0
  41. data/lib/slack_resources/raw_data/event_api/examples/file_public.json +7 -0
  42. data/lib/slack_resources/raw_data/event_api/examples/file_shared.json +7 -0
  43. data/lib/slack_resources/raw_data/event_api/examples/file_unshared.json +7 -0
  44. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_finished.json +12 -0
  45. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_started.json +12 -0
  46. data/lib/slack_resources/raw_data/event_api/examples/group_archive.json +4 -0
  47. data/lib/slack_resources/raw_data/event_api/examples/group_close.json +5 -0
  48. data/lib/slack_resources/raw_data/event_api/examples/group_deleted.json +4 -0
  49. data/lib/slack_resources/raw_data/event_api/examples/group_history_changed.json +6 -0
  50. data/lib/slack_resources/raw_data/event_api/examples/group_left.json +4 -0
  51. data/lib/slack_resources/raw_data/event_api/examples/group_open.json +5 -0
  52. data/lib/slack_resources/raw_data/event_api/examples/group_rename.json +8 -0
  53. data/lib/slack_resources/raw_data/event_api/examples/group_unarchive.json +4 -0
  54. data/lib/slack_resources/raw_data/event_api/examples/im_close.json +5 -0
  55. data/lib/slack_resources/raw_data/event_api/examples/im_created.json +6 -0
  56. data/lib/slack_resources/raw_data/event_api/examples/im_history_changed.json +6 -0
  57. data/lib/slack_resources/raw_data/event_api/examples/im_open.json +5 -0
  58. data/lib/slack_resources/raw_data/event_api/examples/link_shared.json +33 -0
  59. data/lib/slack_resources/raw_data/event_api/examples/member_joined_channel.json +8 -0
  60. data/lib/slack_resources/raw_data/event_api/examples/member_left_channel.json +7 -0
  61. data/lib/slack_resources/raw_data/event_api/examples/message.app_home.json +20 -0
  62. data/lib/slack_resources/raw_data/event_api/examples/message.channels.json +20 -0
  63. data/lib/slack_resources/raw_data/event_api/examples/message.groups.json +20 -0
  64. data/lib/slack_resources/raw_data/event_api/examples/message.im.json +20 -0
  65. data/lib/slack_resources/raw_data/event_api/examples/message.json +7 -0
  66. data/lib/slack_resources/raw_data/event_api/examples/message.mpim.json +20 -0
  67. data/lib/slack_resources/raw_data/event_api/examples/pin_added.json +8 -0
  68. data/lib/slack_resources/raw_data/event_api/examples/pin_removed.json +9 -0
  69. data/lib/slack_resources/raw_data/event_api/examples/reaction_added.json +12 -0
  70. data/lib/slack_resources/raw_data/event_api/examples/reaction_removed.json +12 -0
  71. data/lib/slack_resources/raw_data/event_api/examples/resources_added.json +31 -0
  72. data/lib/slack_resources/raw_data/event_api/examples/resources_removed.json +31 -0
  73. data/lib/slack_resources/raw_data/event_api/examples/scope_denied.json +20 -0
  74. data/lib/slack_resources/raw_data/event_api/examples/scope_granted.json +20 -0
  75. data/lib/slack_resources/raw_data/event_api/examples/star_added.json +7 -0
  76. data/lib/slack_resources/raw_data/event_api/examples/star_removed.json +7 -0
  77. data/lib/slack_resources/raw_data/event_api/examples/subteam_created.json +28 -0
  78. data/lib/slack_resources/raw_data/event_api/examples/subteam_members_changed.json +17 -0
  79. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_added.json +4 -0
  80. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_removed.json +4 -0
  81. data/lib/slack_resources/raw_data/event_api/examples/subteam_updated.json +34 -0
  82. data/lib/slack_resources/raw_data/event_api/examples/team_domain_change.json +5 -0
  83. data/lib/slack_resources/raw_data/event_api/examples/team_join.json +5 -0
  84. data/lib/slack_resources/raw_data/event_api/examples/team_rename.json +4 -0
  85. data/lib/slack_resources/raw_data/event_api/examples/tokens_revoked.json +19 -0
  86. data/lib/slack_resources/raw_data/event_api/examples/url_verification.json +5 -0
  87. data/lib/slack_resources/raw_data/event_api/examples/user_change.json +5 -0
  88. data/lib/slack_resources/raw_data/event_api/examples/user_resource_denied.json +20 -0
  89. data/lib/slack_resources/raw_data/event_api/examples/user_resource_granted.json +20 -0
  90. data/lib/slack_resources/raw_data/event_api/examples/user_resource_removed.json +16 -0
  91. data/lib/slack_resources/raw_data/event_api/meta.json +834 -0
  92. data/lib/slack_resources/raw_data/event_api/preset_schemas.json +33 -0
  93. data/lib/slack_resources/resources/event_api.rb +38 -0
  94. data/lib/slack_resources/resources/event_api/details/app_mention.json +85 -0
  95. data/lib/slack_resources/resources/event_api/details/app_rate_limited.json +80 -0
  96. data/lib/slack_resources/resources/event_api/details/app_uninstalled.json +36 -0
  97. data/lib/slack_resources/resources/event_api/details/channel_archive.json +59 -0
  98. data/lib/slack_resources/resources/event_api/details/channel_created.json +82 -0
  99. data/lib/slack_resources/resources/event_api/details/channel_deleted.json +48 -0
  100. data/lib/slack_resources/resources/event_api/details/channel_history_changed.json +66 -0
  101. data/lib/slack_resources/resources/event_api/details/channel_left.json +48 -0
  102. data/lib/slack_resources/resources/event_api/details/channel_rename.json +77 -0
  103. data/lib/slack_resources/resources/event_api/details/channel_unarchive.json +59 -0
  104. data/lib/slack_resources/resources/event_api/details/dnd_updated.json +86 -0
  105. data/lib/slack_resources/resources/event_api/details/dnd_updated_user.json +82 -0
  106. data/lib/slack_resources/resources/event_api/details/email_domain_changed.json +56 -0
  107. data/lib/slack_resources/resources/event_api/details/emoji_changed.add.json +78 -0
  108. data/lib/slack_resources/resources/event_api/details/emoji_changed.json +103 -0
  109. data/lib/slack_resources/resources/event_api/details/emoji_changed.remove.json +77 -0
  110. data/lib/slack_resources/resources/event_api/details/event_callback.json +126 -0
  111. data/lib/slack_resources/resources/event_api/details/file_change.json +69 -0
  112. data/lib/slack_resources/resources/event_api/details/file_comment_added.json +85 -0
  113. data/lib/slack_resources/resources/event_api/details/file_comment_deleted.json +80 -0
  114. data/lib/slack_resources/resources/event_api/details/file_comment_edited.json +85 -0
  115. data/lib/slack_resources/resources/event_api/details/file_created.json +69 -0
  116. data/lib/slack_resources/resources/event_api/details/file_deleted.json +59 -0
  117. data/lib/slack_resources/resources/event_api/details/file_public.json +69 -0
  118. data/lib/slack_resources/resources/event_api/details/file_shared.json +69 -0
  119. data/lib/slack_resources/resources/event_api/details/file_unshared.json +69 -0
  120. data/lib/slack_resources/resources/event_api/details/grid_migration_finished.json +47 -0
  121. data/lib/slack_resources/resources/event_api/details/grid_migration_started.json +47 -0
  122. data/lib/slack_resources/resources/event_api/details/group_archive.json +48 -0
  123. data/lib/slack_resources/resources/event_api/details/group_close.json +59 -0
  124. data/lib/slack_resources/resources/event_api/details/group_deleted.json +48 -0
  125. data/lib/slack_resources/resources/event_api/details/group_history_changed.json +64 -0
  126. data/lib/slack_resources/resources/event_api/details/group_left.json +48 -0
  127. data/lib/slack_resources/resources/event_api/details/group_open.json +59 -0
  128. data/lib/slack_resources/resources/event_api/details/group_rename.json +77 -0
  129. data/lib/slack_resources/resources/event_api/details/group_unarchive.json +48 -0
  130. data/lib/slack_resources/resources/event_api/details/im_close.json +59 -0
  131. data/lib/slack_resources/resources/event_api/details/im_created.json +73 -0
  132. data/lib/slack_resources/resources/event_api/details/im_history_changed.json +64 -0
  133. data/lib/slack_resources/resources/event_api/details/im_open.json +59 -0
  134. data/lib/slack_resources/resources/event_api/details/link_shared.json +129 -0
  135. data/lib/slack_resources/resources/event_api/details/member_joined_channel.json +87 -0
  136. data/lib/slack_resources/resources/event_api/details/member_left_channel.json +79 -0
  137. data/lib/slack_resources/resources/event_api/details/message.app_home.json +93 -0
  138. data/lib/slack_resources/resources/event_api/details/message.channels.json +93 -0
  139. data/lib/slack_resources/resources/event_api/details/message.groups.json +93 -0
  140. data/lib/slack_resources/resources/event_api/details/message.im.json +93 -0
  141. data/lib/slack_resources/resources/event_api/details/message.json +129 -0
  142. data/lib/slack_resources/resources/event_api/details/message.mpim.json +93 -0
  143. data/lib/slack_resources/resources/event_api/details/pin_added.json +86 -0
  144. data/lib/slack_resources/resources/event_api/details/pin_removed.json +94 -0
  145. data/lib/slack_resources/resources/event_api/details/reaction_added.json +115 -0
  146. data/lib/slack_resources/resources/event_api/details/reaction_removed.json +115 -0
  147. data/lib/slack_resources/resources/event_api/details/resources_added.json +152 -0
  148. data/lib/slack_resources/resources/event_api/details/resources_removed.json +152 -0
  149. data/lib/slack_resources/resources/event_api/details/scope_denied.json +91 -0
  150. data/lib/slack_resources/resources/event_api/details/scope_granted.json +91 -0
  151. data/lib/slack_resources/resources/event_api/details/star_added.json +75 -0
  152. data/lib/slack_resources/resources/event_api/details/star_removed.json +75 -0
  153. data/lib/slack_resources/resources/event_api/details/subteam_created.json +198 -0
  154. data/lib/slack_resources/resources/event_api/details/subteam_members_changed.json +140 -0
  155. data/lib/slack_resources/resources/event_api/details/subteam_self_added.json +48 -0
  156. data/lib/slack_resources/resources/event_api/details/subteam_self_removed.json +48 -0
  157. data/lib/slack_resources/resources/event_api/details/subteam_updated.json +210 -0
  158. data/lib/slack_resources/resources/event_api/details/team_domain_change.json +53 -0
  159. data/lib/slack_resources/resources/event_api/details/team_join.json +53 -0
  160. data/lib/slack_resources/resources/event_api/details/team_rename.json +48 -0
  161. data/lib/slack_resources/resources/event_api/details/tokens_revoked.json +76 -0
  162. data/lib/slack_resources/resources/event_api/details/url_verification.json +52 -0
  163. data/lib/slack_resources/resources/event_api/details/user_change.json +53 -0
  164. data/lib/slack_resources/resources/event_api/details/user_resource_denied.json +100 -0
  165. data/lib/slack_resources/resources/event_api/details/user_resource_granted.json +100 -0
  166. data/lib/slack_resources/resources/event_api/details/user_resource_removed.json +58 -0
  167. data/lib/slack_resources/resources/event_api/examples/app_mention.json +8 -0
  168. data/lib/slack_resources/resources/event_api/examples/app_rate_limited.json +7 -0
  169. data/lib/slack_resources/resources/event_api/examples/app_uninstalled.json +3 -0
  170. data/lib/slack_resources/resources/event_api/examples/channel_archive.json +5 -0
  171. data/lib/slack_resources/resources/event_api/examples/channel_created.json +9 -0
  172. data/lib/slack_resources/resources/event_api/examples/channel_deleted.json +4 -0
  173. data/lib/slack_resources/resources/event_api/examples/channel_history_changed.json +6 -0
  174. data/lib/slack_resources/resources/event_api/examples/channel_left.json +4 -0
  175. data/lib/slack_resources/resources/event_api/examples/channel_rename.json +8 -0
  176. data/lib/slack_resources/resources/event_api/examples/channel_unarchive.json +5 -0
  177. data/lib/slack_resources/resources/event_api/examples/dnd_updated.json +11 -0
  178. data/lib/slack_resources/resources/event_api/examples/dnd_updated_user.json +9 -0
  179. data/lib/slack_resources/resources/event_api/examples/email_domain_changed.json +5 -0
  180. data/lib/slack_resources/resources/event_api/examples/emoji_changed.add.json +7 -0
  181. data/lib/slack_resources/resources/event_api/examples/emoji_changed.json +7 -0
  182. data/lib/slack_resources/resources/event_api/examples/emoji_changed.remove.json +8 -0
  183. data/lib/slack_resources/resources/event_api/examples/event_callback.json +14 -0
  184. data/lib/slack_resources/resources/event_api/examples/file_change.json +7 -0
  185. data/lib/slack_resources/resources/event_api/examples/file_comment_added.json +9 -0
  186. data/lib/slack_resources/resources/event_api/examples/file_comment_deleted.json +8 -0
  187. data/lib/slack_resources/resources/event_api/examples/file_comment_edited.json +9 -0
  188. data/lib/slack_resources/resources/event_api/examples/file_created.json +7 -0
  189. data/lib/slack_resources/resources/event_api/examples/file_deleted.json +5 -0
  190. data/lib/slack_resources/resources/event_api/examples/file_public.json +7 -0
  191. data/lib/slack_resources/resources/event_api/examples/file_shared.json +7 -0
  192. data/lib/slack_resources/resources/event_api/examples/file_unshared.json +7 -0
  193. data/lib/slack_resources/resources/event_api/examples/grid_migration_finished.json +4 -0
  194. data/lib/slack_resources/resources/event_api/examples/grid_migration_started.json +4 -0
  195. data/lib/slack_resources/resources/event_api/examples/group_archive.json +4 -0
  196. data/lib/slack_resources/resources/event_api/examples/group_close.json +5 -0
  197. data/lib/slack_resources/resources/event_api/examples/group_deleted.json +4 -0
  198. data/lib/slack_resources/resources/event_api/examples/group_history_changed.json +6 -0
  199. data/lib/slack_resources/resources/event_api/examples/group_left.json +4 -0
  200. data/lib/slack_resources/resources/event_api/examples/group_open.json +5 -0
  201. data/lib/slack_resources/resources/event_api/examples/group_rename.json +8 -0
  202. data/lib/slack_resources/resources/event_api/examples/group_unarchive.json +4 -0
  203. data/lib/slack_resources/resources/event_api/examples/im_close.json +5 -0
  204. data/lib/slack_resources/resources/event_api/examples/im_created.json +6 -0
  205. data/lib/slack_resources/resources/event_api/examples/im_history_changed.json +6 -0
  206. data/lib/slack_resources/resources/event_api/examples/im_open.json +5 -0
  207. data/lib/slack_resources/resources/event_api/examples/link_shared.json +21 -0
  208. data/lib/slack_resources/resources/event_api/examples/member_joined_channel.json +8 -0
  209. data/lib/slack_resources/resources/event_api/examples/member_left_channel.json +7 -0
  210. data/lib/slack_resources/resources/event_api/examples/message.app_home.json +9 -0
  211. data/lib/slack_resources/resources/event_api/examples/message.channels.json +9 -0
  212. data/lib/slack_resources/resources/event_api/examples/message.groups.json +9 -0
  213. data/lib/slack_resources/resources/event_api/examples/message.im.json +9 -0
  214. data/lib/slack_resources/resources/event_api/examples/message.json +9 -0
  215. data/lib/slack_resources/resources/event_api/examples/message.mpim.json +9 -0
  216. data/lib/slack_resources/resources/event_api/examples/pin_added.json +8 -0
  217. data/lib/slack_resources/resources/event_api/examples/pin_removed.json +9 -0
  218. data/lib/slack_resources/resources/event_api/examples/reaction_added.json +12 -0
  219. data/lib/slack_resources/resources/event_api/examples/reaction_removed.json +12 -0
  220. data/lib/slack_resources/resources/event_api/examples/resources_added.json +20 -0
  221. data/lib/slack_resources/resources/event_api/examples/resources_removed.json +20 -0
  222. data/lib/slack_resources/resources/event_api/examples/scope_denied.json +9 -0
  223. data/lib/slack_resources/resources/event_api/examples/scope_granted.json +9 -0
  224. data/lib/slack_resources/resources/event_api/examples/star_added.json +7 -0
  225. data/lib/slack_resources/resources/event_api/examples/star_removed.json +7 -0
  226. data/lib/slack_resources/resources/event_api/examples/subteam_created.json +28 -0
  227. data/lib/slack_resources/resources/event_api/examples/subteam_members_changed.json +17 -0
  228. data/lib/slack_resources/resources/event_api/examples/subteam_self_added.json +4 -0
  229. data/lib/slack_resources/resources/event_api/examples/subteam_self_removed.json +4 -0
  230. data/lib/slack_resources/resources/event_api/examples/subteam_updated.json +34 -0
  231. data/lib/slack_resources/resources/event_api/examples/team_domain_change.json +5 -0
  232. data/lib/slack_resources/resources/event_api/examples/team_join.json +5 -0
  233. data/lib/slack_resources/resources/event_api/examples/team_rename.json +4 -0
  234. data/lib/slack_resources/resources/event_api/examples/tokens_revoked.json +11 -0
  235. data/lib/slack_resources/resources/event_api/examples/url_verification.json +5 -0
  236. data/lib/slack_resources/resources/event_api/examples/user_change.json +5 -0
  237. data/lib/slack_resources/resources/event_api/examples/user_resource_denied.json +9 -0
  238. data/lib/slack_resources/resources/event_api/examples/user_resource_granted.json +9 -0
  239. data/lib/slack_resources/resources/event_api/examples/user_resource_removed.json +5 -0
  240. data/lib/slack_resources/resources/event_api/schema.json +2261 -0
  241. data/lib/slack_resources/resources/event_api/schemas/app_mention.json +46 -0
  242. data/lib/slack_resources/resources/event_api/schemas/app_rate_limited.json +45 -0
  243. data/lib/slack_resources/resources/event_api/schemas/app_uninstalled.json +17 -0
  244. data/lib/slack_resources/resources/event_api/schemas/channel_archive.json +31 -0
  245. data/lib/slack_resources/resources/event_api/schemas/channel_created.json +53 -0
  246. data/lib/slack_resources/resources/event_api/schemas/channel_deleted.json +24 -0
  247. data/lib/slack_resources/resources/event_api/schemas/channel_history_changed.json +32 -0
  248. data/lib/slack_resources/resources/event_api/schemas/channel_left.json +24 -0
  249. data/lib/slack_resources/resources/event_api/schemas/channel_rename.json +49 -0
  250. data/lib/slack_resources/resources/event_api/schemas/channel_unarchive.json +31 -0
  251. data/lib/slack_resources/resources/event_api/schemas/dnd_updated.json +52 -0
  252. data/lib/slack_resources/resources/event_api/schemas/dnd_updated_user.json +50 -0
  253. data/lib/slack_resources/resources/event_api/schemas/email_domain_changed.json +28 -0
  254. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.add.json +42 -0
  255. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.json +61 -0
  256. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.remove.json +40 -0
  257. data/lib/slack_resources/resources/event_api/schemas/event_callback.json +76 -0
  258. data/lib/slack_resources/resources/event_api/schemas/file_change.json +39 -0
  259. data/lib/slack_resources/resources/event_api/schemas/file_comment_added.json +50 -0
  260. data/lib/slack_resources/resources/event_api/schemas/file_comment_deleted.json +46 -0
  261. data/lib/slack_resources/resources/event_api/schemas/file_comment_edited.json +50 -0
  262. data/lib/slack_resources/resources/event_api/schemas/file_created.json +39 -0
  263. data/lib/slack_resources/resources/event_api/schemas/file_deleted.json +31 -0
  264. data/lib/slack_resources/resources/event_api/schemas/file_public.json +39 -0
  265. data/lib/slack_resources/resources/event_api/schemas/file_shared.json +39 -0
  266. data/lib/slack_resources/resources/event_api/schemas/file_unshared.json +39 -0
  267. data/lib/slack_resources/resources/event_api/schemas/grid_migration_finished.json +24 -0
  268. data/lib/slack_resources/resources/event_api/schemas/grid_migration_started.json +24 -0
  269. data/lib/slack_resources/resources/event_api/schemas/group_archive.json +24 -0
  270. data/lib/slack_resources/resources/event_api/schemas/group_close.json +31 -0
  271. data/lib/slack_resources/resources/event_api/schemas/group_deleted.json +24 -0
  272. data/lib/slack_resources/resources/event_api/schemas/group_history_changed.json +32 -0
  273. data/lib/slack_resources/resources/event_api/schemas/group_left.json +24 -0
  274. data/lib/slack_resources/resources/event_api/schemas/group_open.json +31 -0
  275. data/lib/slack_resources/resources/event_api/schemas/group_rename.json +49 -0
  276. data/lib/slack_resources/resources/event_api/schemas/group_unarchive.json +24 -0
  277. data/lib/slack_resources/resources/event_api/schemas/im_close.json +31 -0
  278. data/lib/slack_resources/resources/event_api/schemas/im_created.json +44 -0
  279. data/lib/slack_resources/resources/event_api/schemas/im_history_changed.json +32 -0
  280. data/lib/slack_resources/resources/event_api/schemas/im_open.json +31 -0
  281. data/lib/slack_resources/resources/event_api/schemas/link_shared.json +74 -0
  282. data/lib/slack_resources/resources/event_api/schemas/member_joined_channel.json +46 -0
  283. data/lib/slack_resources/resources/event_api/schemas/member_left_channel.json +42 -0
  284. data/lib/slack_resources/resources/event_api/schemas/message.app_home.json +50 -0
  285. data/lib/slack_resources/resources/event_api/schemas/message.channels.json +50 -0
  286. data/lib/slack_resources/resources/event_api/schemas/message.groups.json +50 -0
  287. data/lib/slack_resources/resources/event_api/schemas/message.im.json +50 -0
  288. data/lib/slack_resources/resources/event_api/schemas/message.json +82 -0
  289. data/lib/slack_resources/resources/event_api/schemas/message.mpim.json +50 -0
  290. data/lib/slack_resources/resources/event_api/schemas/pin_added.json +49 -0
  291. data/lib/slack_resources/resources/event_api/schemas/pin_removed.json +53 -0
  292. data/lib/slack_resources/resources/event_api/schemas/reaction_added.json +71 -0
  293. data/lib/slack_resources/resources/event_api/schemas/reaction_removed.json +71 -0
  294. data/lib/slack_resources/resources/event_api/schemas/resources_added.json +110 -0
  295. data/lib/slack_resources/resources/event_api/schemas/resources_removed.json +110 -0
  296. data/lib/slack_resources/resources/event_api/schemas/scope_denied.json +57 -0
  297. data/lib/slack_resources/resources/event_api/schemas/scope_granted.json +57 -0
  298. data/lib/slack_resources/resources/event_api/schemas/star_added.json +42 -0
  299. data/lib/slack_resources/resources/event_api/schemas/star_removed.json +42 -0
  300. data/lib/slack_resources/resources/event_api/schemas/subteam_created.json +150 -0
  301. data/lib/slack_resources/resources/event_api/schemas/subteam_members_changed.json +76 -0
  302. data/lib/slack_resources/resources/event_api/schemas/subteam_self_added.json +24 -0
  303. data/lib/slack_resources/resources/event_api/schemas/subteam_self_removed.json +24 -0
  304. data/lib/slack_resources/resources/event_api/schemas/subteam_updated.json +156 -0
  305. data/lib/slack_resources/resources/event_api/schemas/team_domain_change.json +25 -0
  306. data/lib/slack_resources/resources/event_api/schemas/team_join.json +28 -0
  307. data/lib/slack_resources/resources/event_api/schemas/team_rename.json +24 -0
  308. data/lib/slack_resources/resources/event_api/schemas/tokens_revoked.json +46 -0
  309. data/lib/slack_resources/resources/event_api/schemas/url_verification.json +25 -0
  310. data/lib/slack_resources/resources/event_api/schemas/user_change.json +28 -0
  311. data/lib/slack_resources/resources/event_api/schemas/user_resource_denied.json +63 -0
  312. data/lib/slack_resources/resources/event_api/schemas/user_resource_granted.json +63 -0
  313. data/lib/slack_resources/resources/event_api/schemas/user_resource_removed.json +31 -0
  314. data/lib/slack_resources/resources/event_api/summary.json +5876 -0
  315. data/slack_resources.gemspec +33 -0
  316. metadata +470 -0
@@ -0,0 +1,123 @@
1
+ require 'pathname'
2
+ require 'rest-client'
3
+ require 'nokogiri'
4
+ require 'json'
5
+ require 'active_support/core_ext/object/blank'
6
+ require 'active_support/core_ext/string/inflections'
7
+
8
+ module SlackResources
9
+ module Generator
10
+ class Writer
11
+ using StrongHash
12
+
13
+ def initialize(output_dir:, data_dir:)
14
+ @output_dir = Pathname(output_dir)
15
+ @details_output_dir = @output_dir.join('details')
16
+ @schemas_output_dir = @output_dir.join('schemas')
17
+ @example_output_dir = @output_dir.join('examples')
18
+
19
+ @data_dir = Pathname(data_dir)
20
+ @meta = JSON.parse(File.read(@data_dir.join('meta.json')))
21
+ @preset_schema = JSON.parse(File.read(@data_dir.join('preset_schemas.json')))
22
+ @preset_definitions = @preset_schema['definitions']
23
+
24
+ @examples_dir = @data_dir.join('examples')
25
+ @added_examples_dir = @data_dir.join('_added_examples')
26
+ end
27
+
28
+ def execute!
29
+ FileUtils.mkdir_p(@details_output_dir)
30
+ FileUtils.mkdir_p(@schemas_output_dir)
31
+ FileUtils.mkdir_p(@example_output_dir)
32
+
33
+ alt_event_type_mapped_examples = ExamplePreparation.new(
34
+ examples_dir: @examples_dir,
35
+ added_examples_dir: @added_examples_dir
36
+ ).execute!
37
+
38
+ examples_with_metadata = alt_event_type_mapped_examples.map do |alt_event_type, example|
39
+ info = @meta['subscriptions'][alt_event_type] || @meta['subscriptions'][example['type']] || {}
40
+ [info['url'], alt_event_type, example, info['compatibility'], info['scopes']]
41
+ end
42
+
43
+ all_sub_schemas = @preset_definitions.merge(
44
+ 'scope' => {
45
+ "type": 'string',
46
+ "enum": @meta['scopes'],
47
+ }
48
+ )
49
+
50
+ main_schemas = {}
51
+
52
+ all_details = examples_with_metadata.map do |url, alt_event_type, example, compatibility, scopes|
53
+ raw_example = example.delete('_raw_example')
54
+ schema, new_definition, included_props_names = ToSchema.new(
55
+ example: example,
56
+ url: url,
57
+ preset: all_sub_schemas
58
+ ).execute!
59
+
60
+ all_sub_schemas.protect_merge!(new_definition)
61
+
62
+ included_schemas = included_props_names.inject({}) do |a, included_prop|
63
+ all_sub_schemas[included_prop] ? a.protect_merge!(included_prop => all_sub_schemas[included_prop]) : a
64
+ end
65
+
66
+ schema['description'] = "learn more: #{url}"
67
+ schema['example'] = raw_example
68
+
69
+ main_schemas[alt_event_type] = schema
70
+
71
+ [
72
+ alt_event_type,
73
+ {
74
+ url: url,
75
+ event: alt_event_type,
76
+ sub_schemas: included_schemas,
77
+ schema: schema,
78
+ compatibility: compatibility,
79
+ scopes: scopes,
80
+ },
81
+ {
82
+ "$schema": 'http://json-schema.org/draft-07/schema',
83
+ 'definitions' => included_schemas.protect_merge!(alt_event_type => schema),
84
+ },
85
+ raw_example,
86
+ ]
87
+ end
88
+
89
+ write_each_data_json!(all_details)
90
+ write_all_schemas_json!(all_sub_schemas, main_schemas)
91
+ write_summary!(all_details.map { |d| d[1] })
92
+
93
+ all_details
94
+ end
95
+
96
+ # @output_dir = Pathname('./lib/slack_resources/resources/event_api/')
97
+
98
+ private
99
+
100
+ def write_each_data_json!(all_details)
101
+ all_details.each do |alt_event_type, data, single_schema, example|
102
+ File.write(@details_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(data))
103
+ File.write(@example_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(example))
104
+ File.write(@schemas_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(single_schema))
105
+ end
106
+ end
107
+
108
+ def write_all_schemas_json!(all_sub_schemas, main_schemas)
109
+ File.write(
110
+ @output_dir.join('schema.json').to_s,
111
+ JSON.pretty_generate(
112
+ "$schema": 'http://json-schema.org/draft-07/schema',
113
+ 'definitions' => all_sub_schemas.protect_merge!(main_schemas).key_ordered
114
+ )
115
+ )
116
+ end
117
+
118
+ def write_summary!(data)
119
+ File.write(@output_dir.join('summary.json').to_s, JSON.pretty_generate(data.sort_by { |a| a[:type] }))
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "emoji_changed",
3
+ "subtype": "add",
4
+ "name": "picard_facepalm",
5
+ "value": "https://my.slack.com/emoji/picard_facepalm/db8e287430eaa459.gif",
6
+ "event_ts" : "1361482916.000004"
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "emoji_changed",
3
+ "subtype": "remove",
4
+ "names": ["picard_facepalm"],
5
+ "event_ts" : "1361482916.000004"
6
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "token": "XXYYZZ",
3
+ "team_id": "TXXXXXXXX",
4
+ "api_app_id": "AXXXXXXXXX",
5
+ "event": {},
6
+ "type": "event_callback",
7
+ "authed_users": [
8
+ "UXXXXXXX1",
9
+ "UXXXXXXX2"
10
+ ],
11
+ "event_id": "Ev08MFMKH6",
12
+ "event_time": 1234567890
13
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "app_mention",
3
+ "user": "U061F7AUR",
4
+ "text": "<@U0LAN0Z89> is it everything a river should be?",
5
+ "ts": "1515449522.000016",
6
+ "channel": "C0LAN2Q65",
7
+ "event_ts": "1515449522000016"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "token": "Jhj5dZrVaK7ZwHHjRyZWjbDl",
3
+ "type": "app_rate_limited",
4
+ "team_id": "T123456",
5
+ "minute_rate_limited": 1518467820,
6
+ "api_app_id": "A123456"
7
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "token": "XXYYZZ",
3
+ "team_id": "TXXXXXXXX",
4
+ "api_app_id": "AXXXXXXXXX",
5
+ "event": {
6
+ "type": "app_uninstalled"
7
+ },
8
+ "type": "event_callback",
9
+ "event_id": "EvXXXXXXXX",
10
+ "event_time": 1234567890
11
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "channel_archive",
3
+ "channel": "C024BE91L",
4
+ "user": "U024BE7LH"
5
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "channel_created",
3
+ "channel": {
4
+ "id": "C024BE91L",
5
+ "name": "fun",
6
+ "created": 1360782804,
7
+ "creator": "U024BE7LH"
8
+ }
9
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "channel_deleted",
3
+ "channel": "C024BE91L"
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "channel_history_changed",
3
+ "latest": "1358877455.000010",
4
+ "ts": "1361482916.000003",
5
+ "event_ts": "1361482916.000004"
6
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "channel_left",
3
+ "channel": "C024BE91L"
4
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "channel_rename",
3
+ "channel": {
4
+ "id": "C02ELGNBH",
5
+ "name": "new_name",
6
+ "created": 1360782804
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "channel_unarchive",
3
+ "channel": "C024BE91L",
4
+ "user": "U024BE7LH"
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "type": "dnd_updated",
3
+ "user": "U1234",
4
+ "dnd_status": {
5
+ "dnd_enabled": true,
6
+ "next_dnd_start_ts": 1450387800,
7
+ "next_dnd_end_ts": 1450423800,
8
+ "snooze_enabled": true,
9
+ "snooze_endtime": 1450373897
10
+ }
11
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "dnd_updated_user",
3
+ "user": "U1234",
4
+ "dnd_status": {
5
+ "dnd_enabled": true,
6
+ "next_dnd_start_ts": 1450387800,
7
+ "next_dnd_end_ts": 1450423800
8
+ }
9
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "email_domain_changed",
3
+ "email_domain": "example.com",
4
+ "event_ts": "1360782804.083113"
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "emoji_changed",
3
+ "subtype": "remove",
4
+ "names": [
5
+ "picard_facepalm"
6
+ ],
7
+ "event_ts": "1361482916.000004"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "file_change",
3
+ "file_id": "F2147483862",
4
+ "file": {
5
+ "id": "F2147483862"
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "file_comment_added",
3
+ "comment": {
4
+ },
5
+ "file_id": "F2147483862",
6
+ "file": {
7
+ "id": "F2147483862"
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "file_comment_deleted",
3
+ "comment": "Fc67890",
4
+ "file_id": "F2147483862",
5
+ "file": {
6
+ "id": "F2147483862"
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "file_comment_edited",
3
+ "comment": {
4
+ },
5
+ "file_id": "F2147483862",
6
+ "file": {
7
+ "id": "F2147483862"
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "file_created",
3
+ "file_id": "F2147483862",
4
+ "file": {
5
+ "id": "F2147483862"
6
+ }
7
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "file_deleted",
3
+ "file_id": "F2147483862",
4
+ "event_ts": "1361482916.000004"
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "file_public",
3
+ "file_id": "F2147483862",
4
+ "file": {
5
+ "id": "F2147483862"
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "file_shared",
3
+ "file_id": "F2147483862",
4
+ "file": {
5
+ "id": "F2147483862"
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "file_unshared",
3
+ "file_id": "F2147483862",
4
+ "file": {
5
+ "id": "F2147483862"
6
+ }
7
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "token": "XXYYZZ",
3
+ "team_id": "TXXXXXXXX",
4
+ "api_app_id": "AXXXXXXXXX",
5
+ "event": {
6
+ "type": "grid_migration_finished",
7
+ "enterprise_id": "EXXXXXXXX"
8
+ },
9
+ "type": "event_callback",
10
+ "event_id": "EvXXXXXXXX",
11
+ "event_time": 1234567890
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "token": "XXYYZZ",
3
+ "team_id": "TXXXXXXXX",
4
+ "api_app_id": "AXXXXXXXXX",
5
+ "event": {
6
+ "type": "grid_migration_started",
7
+ "enterprise_id": "EXXXXXXXX"
8
+ },
9
+ "type": "event_callback",
10
+ "event_id": "EvXXXXXXXX",
11
+ "event_time": 1234567890
12
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "group_archive",
3
+ "channel": "G024BE91L"
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "group_close",
3
+ "user": "U024BE7LH",
4
+ "channel": "G024BE91L"
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "group_deleted",
3
+ "channel": "G0QN9RGTT"
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "group_history_changed",
3
+ "latest": "1358877455.000010",
4
+ "ts": "1361482916.000003",
5
+ "event_ts": "1361482916.000004"
6
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "group_left",
3
+ "channel": "G02ELGNBH"
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "group_open",
3
+ "user": "U024BE7LH",
4
+ "channel": "G024BE91L"
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "group_rename",
3
+ "channel": {
4
+ "id": "G02ELGNBH",
5
+ "name": "new_name",
6
+ "created": 1360782804
7
+ }
8
+ }