slack-ruby-client 0.11.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/danger.yml +19 -0
  4. data/.github/workflows/integtest.yml +25 -0
  5. data/.github/workflows/rubocop.yml +13 -0
  6. data/.github/workflows/test.yml +34 -0
  7. data/.gitignore +6 -3
  8. data/.rubocop.yml +36 -2
  9. data/.rubocop_todo.yml +186 -54
  10. data/CHANGELOG.md +156 -31
  11. data/CONTRIBUTING.md +20 -9
  12. data/Dangerfile +2 -0
  13. data/Gemfile +27 -6
  14. data/Gemfile.danger +6 -0
  15. data/LICENSE.md +1 -1
  16. data/README.md +199 -52
  17. data/RELEASING.md +2 -2
  18. data/Rakefile +2 -1
  19. data/UPGRADING.md +89 -3
  20. data/bin/commands/admin_analytics.rb +16 -0
  21. data/bin/commands/admin_apps.rb +51 -0
  22. data/bin/commands/admin_apps_approved.rb +17 -0
  23. data/bin/commands/admin_apps_requests.rb +28 -0
  24. data/bin/commands/admin_apps_restricted.rb +17 -0
  25. data/bin/commands/admin_auth_policy.rb +39 -0
  26. data/bin/commands/admin_barriers.rb +47 -0
  27. data/bin/commands/admin_conversations.rb +170 -0
  28. data/bin/commands/admin_conversations_ekm.rb +17 -0
  29. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  30. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  31. data/bin/commands/admin_emoji.rb +54 -0
  32. data/bin/commands/admin_inviteRequests.rb +36 -0
  33. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  34. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  35. data/bin/commands/admin_teams.rb +27 -0
  36. data/bin/commands/admin_teams_admins.rb +16 -0
  37. data/bin/commands/admin_teams_owners.rb +16 -0
  38. data/bin/commands/admin_teams_settings.rb +64 -0
  39. data/bin/commands/admin_usergroups.rb +48 -0
  40. data/bin/commands/admin_users.rb +98 -0
  41. data/bin/commands/admin_users_session.rb +78 -0
  42. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  43. data/bin/commands/api.rb +1 -1
  44. data/bin/commands/apps.rb +15 -0
  45. data/bin/commands/apps_connections.rb +13 -0
  46. data/bin/commands/apps_event_authorizations.rb +16 -0
  47. data/bin/commands/apps_manifest.rb +52 -0
  48. data/bin/commands/apps_permissions.rb +1 -0
  49. data/bin/commands/apps_permissions_resources.rb +15 -0
  50. data/bin/commands/apps_permissions_scopes.rb +13 -0
  51. data/bin/commands/apps_permissions_users.rb +26 -0
  52. data/bin/commands/auth.rb +1 -0
  53. data/bin/commands/auth_teams.rb +16 -0
  54. data/bin/commands/bookmarks.rb +52 -0
  55. data/bin/commands/bots.rb +2 -0
  56. data/bin/commands/calls.rb +52 -0
  57. data/bin/commands/calls_participants.rb +25 -0
  58. data/bin/commands/channels.rb +1 -153
  59. data/bin/commands/chat.rb +57 -12
  60. data/bin/commands/chat_scheduledMessages.rb +19 -0
  61. data/bin/commands/conversations.rb +75 -4
  62. data/bin/commands/dialog.rb +1 -0
  63. data/bin/commands/dnd.rb +6 -3
  64. data/bin/commands/emoji.rb +1 -0
  65. data/bin/commands/files.rb +14 -19
  66. data/bin/commands/files_comments.rb +1 -21
  67. data/bin/commands/files_remote.rb +78 -0
  68. data/bin/commands/groups.rb +1 -159
  69. data/bin/commands/im.rb +1 -62
  70. data/bin/commands/migration.rb +2 -0
  71. data/bin/commands/mpim.rb +1 -58
  72. data/bin/commands/oauth.rb +4 -15
  73. data/bin/commands/oauth_v2.rb +29 -0
  74. data/bin/commands/openid_connect.rb +27 -0
  75. data/bin/commands/pins.rb +3 -6
  76. data/bin/commands/reactions.rb +5 -3
  77. data/bin/commands/reminders.rb +7 -0
  78. data/bin/commands/rtm.rb +7 -4
  79. data/bin/commands/search.rb +8 -3
  80. data/bin/commands/stars.rb +10 -6
  81. data/bin/commands/team.rb +6 -0
  82. data/bin/commands/team_billing.rb +13 -0
  83. data/bin/commands/team_preferences.rb +13 -0
  84. data/bin/commands/team_profile.rb +1 -0
  85. data/bin/commands/tooling_tokens.rb +14 -0
  86. data/bin/commands/usergroups.rb +7 -1
  87. data/bin/commands/usergroups_users.rb +3 -0
  88. data/bin/commands/users.rb +21 -6
  89. data/bin/commands/users_admin.rb +1 -0
  90. data/bin/commands/users_prefs.rb +1 -0
  91. data/bin/commands/users_profile.rb +7 -6
  92. data/bin/commands/views.rb +48 -0
  93. data/bin/commands/workflows.rb +38 -0
  94. data/bin/commands.rb +40 -5
  95. data/bin/slack +2 -3
  96. data/examples/hi_real_time_and_web/Gemfile +1 -0
  97. data/examples/hi_real_time_and_web/hi.rb +7 -3
  98. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  99. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  100. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +12 -7
  101. data/examples/hi_web/Gemfile +1 -0
  102. data/examples/hi_web/hi.rb +1 -0
  103. data/examples/new_ticket/Gemfile +1 -0
  104. data/examples/new_ticket/new_ticket.rb +1 -0
  105. data/lib/slack/config.rb +2 -2
  106. data/lib/slack/events/config.rb +32 -0
  107. data/lib/slack/events/request.rb +72 -0
  108. data/lib/slack/logger.rb +6 -5
  109. data/lib/slack/messages/formatting.rb +1 -1
  110. data/lib/slack/messages/message.rb +1 -4
  111. data/lib/slack/real_time/api/message.rb +3 -1
  112. data/lib/slack/real_time/api/message_id.rb +1 -0
  113. data/lib/slack/real_time/api/ping.rb +5 -2
  114. data/lib/slack/real_time/api/typing.rb +3 -1
  115. data/lib/slack/real_time/client.rb +103 -34
  116. data/lib/slack/real_time/concurrency/async.rb +138 -0
  117. data/lib/slack/real_time/concurrency.rb +2 -2
  118. data/lib/slack/real_time/config.rb +6 -10
  119. data/lib/slack/real_time/models/base.rb +1 -4
  120. data/lib/slack/real_time/models/bot.rb +1 -0
  121. data/lib/slack/real_time/models/channel.rb +1 -0
  122. data/lib/slack/real_time/models/group.rb +1 -0
  123. data/lib/slack/real_time/models/im.rb +1 -0
  124. data/lib/slack/real_time/models/team.rb +1 -0
  125. data/lib/slack/real_time/models/user.rb +1 -0
  126. data/lib/slack/real_time/models.rb +1 -0
  127. data/lib/slack/real_time/socket.rb +45 -17
  128. data/lib/slack/real_time/stores/base.rb +5 -7
  129. data/lib/slack/real_time/stores/starter.rb +27 -3
  130. data/lib/slack/real_time/stores/store.rb +43 -25
  131. data/lib/slack/real_time/stores.rb +1 -0
  132. data/lib/slack/version.rb +2 -1
  133. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  134. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  135. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
  137. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  138. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  139. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  140. data/lib/slack/web/api/endpoints/admin_conversations.rb +262 -0
  141. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  142. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  143. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  144. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  145. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  146. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  147. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  148. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  149. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  150. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  151. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  152. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  153. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  154. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  155. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  156. data/lib/slack/web/api/endpoints/api.rb +2 -3
  157. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  158. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  159. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  160. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  161. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  162. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  163. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  164. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  165. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  166. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  167. data/lib/slack/web/api/endpoints/bookmarks.rb +86 -0
  168. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  169. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  170. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  171. data/lib/slack/web/api/endpoints/channels.rb +2 -243
  172. data/lib/slack/web/api/endpoints/chat.rb +145 -46
  173. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  174. data/lib/slack/web/api/endpoints/conversations.rb +152 -39
  175. data/lib/slack/web/api/endpoints/dialog.rb +3 -2
  176. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  177. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  178. data/lib/slack/web/api/endpoints/files.rb +35 -28
  179. data/lib/slack/web/api/endpoints/files_comments.rb +2 -34
  180. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  181. data/lib/slack/web/api/endpoints/groups.rb +1 -243
  182. data/lib/slack/web/api/endpoints/im.rb +1 -101
  183. data/lib/slack/web/api/endpoints/migration.rb +5 -2
  184. data/lib/slack/web/api/endpoints/mpim.rb +1 -86
  185. data/lib/slack/web/api/endpoints/oauth.rb +8 -30
  186. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  187. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  188. data/lib/slack/web/api/endpoints/pins.rb +8 -15
  189. data/lib/slack/web/api/endpoints/reactions.rb +29 -18
  190. data/lib/slack/web/api/endpoints/reminders.rb +18 -5
  191. data/lib/slack/web/api/endpoints/rtm.rb +14 -9
  192. data/lib/slack/web/api/endpoints/search.rb +30 -15
  193. data/lib/slack/web/api/endpoints/stars.rb +23 -10
  194. data/lib/slack/web/api/endpoints/team.rb +15 -4
  195. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  196. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  197. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  198. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  199. data/lib/slack/web/api/endpoints/usergroups.rb +27 -16
  200. data/lib/slack/web/api/endpoints/usergroups_users.rb +10 -5
  201. data/lib/slack/web/api/endpoints/users.rb +44 -17
  202. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  203. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  204. data/lib/slack/web/api/endpoints/users_profile.rb +9 -8
  205. data/lib/slack/web/api/endpoints/views.rb +97 -0
  206. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  207. data/lib/slack/web/api/endpoints.rb +80 -12
  208. data/lib/slack/web/api/error.rb +1 -0
  209. data/lib/slack/web/api/errors/server_error.rb +37 -0
  210. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  211. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  212. data/lib/slack/web/api/errors.rb +1066 -0
  213. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +4 -5
  214. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  215. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  216. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  217. data/lib/slack/web/api/mixins.rb +2 -2
  218. data/lib/slack/web/api/patches/chat.1.patch +70 -0
  219. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  220. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  221. data/lib/slack/web/api/templates/command.erb +1 -0
  222. data/lib/slack/web/api/templates/commands.erb +1 -0
  223. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  224. data/lib/slack/web/api/templates/errors.erb +20 -0
  225. data/lib/slack/web/api/templates/method.erb +5 -1
  226. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  227. data/lib/slack/web/client.rb +2 -1
  228. data/lib/slack/web/config.rb +3 -0
  229. data/lib/slack/web/faraday/connection.rb +24 -20
  230. data/lib/slack/web/faraday/request.rb +5 -1
  231. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  232. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  233. data/lib/slack/web/pagination/cursor.rb +7 -7
  234. data/lib/slack-ruby-client.rb +12 -5
  235. data/lib/slack.rb +1 -0
  236. data/lib/slack_ruby_client.rb +1 -0
  237. data/lib/tasks/git.rake +1 -0
  238. data/lib/tasks/real_time.rake +16 -8
  239. data/lib/tasks/update.rake +1 -0
  240. data/lib/tasks/web.rake +39 -10
  241. data/screenshots/create-app.png +0 -0
  242. data/slack-ruby-client.gemspec +7 -12
  243. data/spec/fixtures/slack/web/429_error.yml +50 -54
  244. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  245. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  246. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  247. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  248. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  249. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  250. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  251. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  252. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  253. data/spec/fixtures/slack/web/users_info.yml +153 -69
  254. data/spec/fixtures/slack/web/users_list.yml +102 -41
  255. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  256. data/spec/integration/integration_spec.rb +116 -48
  257. data/spec/slack/config_spec.rb +2 -0
  258. data/spec/slack/events/config_spec.rb +33 -0
  259. data/spec/slack/events/request_spec.rb +184 -0
  260. data/spec/slack/messages/formatting_spec.rb +25 -14
  261. data/spec/slack/real_time/api/message_spec.rb +6 -1
  262. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  263. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  264. data/spec/slack/real_time/client_spec.rb +258 -62
  265. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  266. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  267. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  268. data/spec/slack/real_time/event_handlers/bot_spec.rb +3 -2
  269. data/spec/slack/real_time/event_handlers/channel_spec.rb +14 -11
  270. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  271. data/spec/slack/real_time/event_handlers/group_spec.rb +6 -5
  272. data/spec/slack/real_time/event_handlers/im_spec.rb +10 -9
  273. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  274. data/spec/slack/real_time/event_handlers/user_spec.rb +3 -2
  275. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  276. data/spec/slack/real_time/rtm_start_spec.rb +2 -1
  277. data/spec/slack/real_time/store_spec.rb +4 -3
  278. data/spec/slack/slack_spec.rb +42 -8
  279. data/spec/slack/version_spec.rb +2 -1
  280. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  281. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  282. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  283. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  284. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  285. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  286. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  287. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  289. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  290. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  291. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  292. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  293. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  294. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  295. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  296. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  297. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  298. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  299. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  300. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  301. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  302. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  303. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  304. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  305. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  306. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  307. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  308. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  309. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  310. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  311. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  312. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  313. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  314. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +131 -39
  315. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  316. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +16 -6
  317. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  318. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +103 -0
  319. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  320. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  322. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  323. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  324. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  326. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  327. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  328. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  329. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  330. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  331. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  332. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  333. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  334. data/spec/slack/web/api/endpoints/team_billing_spec.rb +8 -0
  335. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  336. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  337. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  338. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  339. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  340. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  341. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  342. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  343. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  344. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  345. data/spec/slack/web/api/error_spec.rb +7 -7
  346. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  347. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  348. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  349. data/spec/slack/web/api/mixins/users_spec.rb +25 -14
  350. data/spec/slack/web/api/pagination/cursor_spec.rb +43 -15
  351. data/spec/slack/web/client_spec.rb +186 -19
  352. data/spec/slack/web/faraday/request_spec.rb +80 -0
  353. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  354. data/spec/spec_helper.rb +9 -2
  355. data/spec/support/queue_with_timeout.rb +5 -4
  356. data/spec/support/real_time/concurrency/mock.rb +1 -0
  357. data/spec/support/real_time/connected_client.rb +6 -6
  358. data/spec/support/real_time/event.rb +1 -0
  359. data/spec/support/token.rb +1 -0
  360. data/spec/support/vcr.rb +37 -1
  361. metadata +177 -231
  362. data/.travis.yml +0 -30
  363. data/examples/hi_real_time/Gemfile +0 -5
  364. data/examples/hi_real_time/hi.gif +0 -0
  365. data/examples/hi_real_time/hi.rb +0 -37
  366. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  367. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  368. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  369. data/lib/slack/real_time/concurrency/celluloid.rb +0 -117
  370. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  371. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  372. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  373. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  374. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  375. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  376. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  377. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  378. data/screenshots/register-bot.png +0 -0
  379. data/spec/fixtures/slack/web/503_error.yml +0 -14
  380. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  381. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  382. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -62
  383. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  384. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  385. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  386. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  387. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  388. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  389. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  390. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  391. data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
  392. data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminBarriers
9
+ #
10
+ # Create an Information Barrier
11
+ #
12
+ # @option options [array] :barriered_from_usergroup_ids
13
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
14
+ # @option options [Object] :primary_usergroup_id
15
+ # The id of the primary IDP Group.
16
+ # @option options [array] :restricted_subjects
17
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
18
+ # @see https://api.slack.com/methods/admin.barriers.create
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.create.json
20
+ def admin_barriers_create(options = {})
21
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
22
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
23
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
24
+ post('admin.barriers.create', options)
25
+ end
26
+
27
+ #
28
+ # Delete an existing Information Barrier
29
+ #
30
+ # @option options [Object] :barrier_id
31
+ # The ID of the barrier you're trying to delete.
32
+ # @see https://api.slack.com/methods/admin.barriers.delete
33
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.delete.json
34
+ def admin_barriers_delete(options = {})
35
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
36
+ post('admin.barriers.delete', options)
37
+ end
38
+
39
+ #
40
+ # Get all Information Barriers for your organization
41
+ #
42
+ # @option options [string] :cursor
43
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
44
+ # @option options [integer] :limit
45
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
46
+ # @see https://api.slack.com/methods/admin.barriers.list
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.list.json
48
+ def admin_barriers_list(options = {})
49
+ if block_given?
50
+ Pagination::Cursor.new(self, :admin_barriers_list, options).each do |page|
51
+ yield page
52
+ end
53
+ else
54
+ post('admin.barriers.list', options)
55
+ end
56
+ end
57
+
58
+ #
59
+ # Update an existing Information Barrier
60
+ #
61
+ # @option options [Object] :barrier_id
62
+ # The ID of the barrier you're trying to modify.
63
+ # @option options [array] :barriered_from_usergroup_ids
64
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
65
+ # @option options [Object] :primary_usergroup_id
66
+ # The id of the primary IDP Group.
67
+ # @option options [array] :restricted_subjects
68
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
69
+ # @see https://api.slack.com/methods/admin.barriers.update
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.update.json
71
+ def admin_barriers_update(options = {})
72
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
73
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
74
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
75
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
76
+ post('admin.barriers.update', options)
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,262 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminConversations
9
+ #
10
+ # Archive a public or private channel.
11
+ #
12
+ # @option options [Object] :channel_id
13
+ # The channel to archive.
14
+ # @see https://api.slack.com/methods/admin.conversations.archive
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.archive.json
16
+ def admin_conversations_archive(options = {})
17
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
18
+ post('admin.conversations.archive', options)
19
+ end
20
+
21
+ #
22
+ # Convert a public channel to a private channel.
23
+ #
24
+ # @option options [Object] :channel_id
25
+ # The channel to convert to private.
26
+ # @option options [string] :name
27
+ # Name of private channel to create. Only respected when converting an MPIM.
28
+ # @see https://api.slack.com/methods/admin.conversations.convertToPrivate
29
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.convertToPrivate.json
30
+ def admin_conversations_convertToPrivate(options = {})
31
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
32
+ post('admin.conversations.convertToPrivate', options)
33
+ end
34
+
35
+ #
36
+ # Create a public or private channel-based conversation.
37
+ #
38
+ # @option options [boolean] :is_private
39
+ # When true, creates a private channel instead of a public channel.
40
+ # @option options [string] :name
41
+ # Name of the public or private channel to create.
42
+ # @option options [string] :description
43
+ # Description of the public or private channel to create.
44
+ # @option options [boolean] :org_wide
45
+ # When true, the channel will be available org-wide. Note: if the channel is not org_wide=true, you must specify a team_id for this channel.
46
+ # @option options [Object] :team_id
47
+ # The workspace to create the channel in. Note: this argument is required unless you set org_wide=true.
48
+ # @see https://api.slack.com/methods/admin.conversations.create
49
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.create.json
50
+ def admin_conversations_create(options = {})
51
+ throw ArgumentError.new('Required arguments :is_private missing') if options[:is_private].nil?
52
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
53
+ post('admin.conversations.create', options)
54
+ end
55
+
56
+ #
57
+ # Delete a public or private channel.
58
+ #
59
+ # @option options [Object] :channel_id
60
+ # The channel to delete.
61
+ # @see https://api.slack.com/methods/admin.conversations.delete
62
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.delete.json
63
+ def admin_conversations_delete(options = {})
64
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
65
+ post('admin.conversations.delete', options)
66
+ end
67
+
68
+ #
69
+ # Disconnect a connected channel from one or more workspaces.
70
+ #
71
+ # @option options [Object] :channel_id
72
+ # The channel to be disconnected from some workspaces.
73
+ # @option options [array] :leaving_team_ids
74
+ # team IDs getting removed from the channel, optional if there are only two teams in the channel.
75
+ # @see https://api.slack.com/methods/admin.conversations.disconnectShared
76
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.disconnectShared.json
77
+ def admin_conversations_disconnectShared(options = {})
78
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
79
+ post('admin.conversations.disconnectShared', options)
80
+ end
81
+
82
+ #
83
+ # Get conversation preferences for a public or private channel.
84
+ #
85
+ # @option options [Object] :channel_id
86
+ # The channel to get preferences for.
87
+ # @see https://api.slack.com/methods/admin.conversations.getConversationPrefs
88
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getConversationPrefs.json
89
+ def admin_conversations_getConversationPrefs(options = {})
90
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
91
+ post('admin.conversations.getConversationPrefs', options)
92
+ end
93
+
94
+ #
95
+ # This API endpoint can be used by any admin to get a channel's retention policy.
96
+ #
97
+ # @option options [string] :channel_id
98
+ # The channel to get the retention policy for.
99
+ # @see https://api.slack.com/methods/admin.conversations.getCustomRetention
100
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getCustomRetention.json
101
+ def admin_conversations_getCustomRetention(options = {})
102
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
103
+ post('admin.conversations.getCustomRetention', options)
104
+ end
105
+
106
+ #
107
+ # Get all the workspaces a given public or private channel is connected to within this Enterprise org.
108
+ #
109
+ # @option options [Object] :channel_id
110
+ # The channel to determine connected workspaces within the organization for.
111
+ # @option options [string] :cursor
112
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
113
+ # @option options [integer] :limit
114
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
115
+ # @see https://api.slack.com/methods/admin.conversations.getTeams
116
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getTeams.json
117
+ def admin_conversations_getTeams(options = {})
118
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
119
+ if block_given?
120
+ Pagination::Cursor.new(self, :admin_conversations_getTeams, options).each do |page|
121
+ yield page
122
+ end
123
+ else
124
+ post('admin.conversations.getTeams', options)
125
+ end
126
+ end
127
+
128
+ #
129
+ # Invite a user to a public or private channel.
130
+ #
131
+ # @option options [Object] :channel_id
132
+ # The channel that the users will be invited to.
133
+ # @option options [array] :user_ids
134
+ # The users to invite.
135
+ # @see https://api.slack.com/methods/admin.conversations.invite
136
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.invite.json
137
+ def admin_conversations_invite(options = {})
138
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
139
+ throw ArgumentError.new('Required arguments :user_ids missing') if options[:user_ids].nil?
140
+ post('admin.conversations.invite', options)
141
+ end
142
+
143
+ #
144
+ # This API endpoint can be used by any admin to remove a channel's retention policy.
145
+ #
146
+ # @option options [string] :channel_id
147
+ # The channel to set the retention policy for.
148
+ # @see https://api.slack.com/methods/admin.conversations.removeCustomRetention
149
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.removeCustomRetention.json
150
+ def admin_conversations_removeCustomRetention(options = {})
151
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
152
+ post('admin.conversations.removeCustomRetention', options)
153
+ end
154
+
155
+ #
156
+ # Rename a public or private channel.
157
+ #
158
+ # @option options [Object] :channel_id
159
+ # The channel to rename.
160
+ # @option options [string] :name
161
+ # .
162
+ # @see https://api.slack.com/methods/admin.conversations.rename
163
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.rename.json
164
+ def admin_conversations_rename(options = {})
165
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
166
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
167
+ post('admin.conversations.rename', options)
168
+ end
169
+
170
+ #
171
+ # Search for public or private channels in an Enterprise organization.
172
+ #
173
+ # @option options [string] :cursor
174
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
175
+ # @option options [integer] :limit
176
+ # Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10.
177
+ # @option options [string] :query
178
+ # Name of the the channel to query by.
179
+ # @option options [array] :search_channel_types
180
+ # The type of channel to include or exclude in the search. For example private will search private channels, while private_exclude will exclude them. For a full list of types, check the Types section.
181
+ # @option options [string] :sort
182
+ # Possible values are relevant (search ranking based on what we think is closest), name (alphabetical), member_count (number of users in the channel), and created (date channel was created). You can optionally pair this with the sort_dir arg to change how it is sorted.
183
+ # @option options [string] :sort_dir
184
+ # Sort direction. Possible values are asc for ascending order like (1, 2, 3) or (a, b, c), and desc for descending order like (3, 2, 1) or (c, b, a).
185
+ # @option options [array] :team_ids
186
+ # Comma separated string of team IDs, signifying the workspaces to search through.
187
+ # @see https://api.slack.com/methods/admin.conversations.search
188
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.search.json
189
+ def admin_conversations_search(options = {})
190
+ if block_given?
191
+ Pagination::Cursor.new(self, :admin_conversations_search, options).each do |page|
192
+ yield page
193
+ end
194
+ else
195
+ post('admin.conversations.search', options)
196
+ end
197
+ end
198
+
199
+ #
200
+ # Set the posting permissions for a public or private channel.
201
+ #
202
+ # @option options [string] :channel_id
203
+ # The channel to set the prefs for.
204
+ # @option options [string] :prefs
205
+ # The prefs for this channel in a stringified JSON format.
206
+ # @see https://api.slack.com/methods/admin.conversations.setConversationPrefs
207
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setConversationPrefs.json
208
+ def admin_conversations_setConversationPrefs(options = {})
209
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
210
+ throw ArgumentError.new('Required arguments :prefs missing') if options[:prefs].nil?
211
+ post('admin.conversations.setConversationPrefs', options)
212
+ end
213
+
214
+ #
215
+ # This API endpoint can be used by any admin to set a channel's retention policy.
216
+ #
217
+ # @option options [string] :channel_id
218
+ # The channel to set the retention policy for.
219
+ # @option options [integer] :duration_days
220
+ # The message retention duration in days to set for this channel.
221
+ # @see https://api.slack.com/methods/admin.conversations.setCustomRetention
222
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setCustomRetention.json
223
+ def admin_conversations_setCustomRetention(options = {})
224
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
225
+ throw ArgumentError.new('Required arguments :duration_days missing') if options[:duration_days].nil?
226
+ post('admin.conversations.setCustomRetention', options)
227
+ end
228
+
229
+ #
230
+ # Set the workspaces in an Enterprise grid org that connect to a public or private channel.
231
+ #
232
+ # @option options [string] :channel_id
233
+ # The encoded channel_id to add or remove to workspaces.
234
+ # @option options [boolean] :org_channel
235
+ # True if channel has to be converted to an org channel.
236
+ # @option options [array] :target_team_ids
237
+ # A comma-separated list of workspaces to which the channel should be shared. Not required if the channel is being shared org-wide.
238
+ # @option options [Object] :team_id
239
+ # The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel.
240
+ # @see https://api.slack.com/methods/admin.conversations.setTeams
241
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setTeams.json
242
+ def admin_conversations_setTeams(options = {})
243
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
244
+ post('admin.conversations.setTeams', options)
245
+ end
246
+
247
+ #
248
+ # Unarchive a public or private channel.
249
+ #
250
+ # @option options [Object] :channel_id
251
+ # The channel to unarchive.
252
+ # @see https://api.slack.com/methods/admin.conversations.unarchive
253
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.unarchive.json
254
+ def admin_conversations_unarchive(options = {})
255
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
256
+ post('admin.conversations.unarchive', options)
257
+ end
258
+ end
259
+ end
260
+ end
261
+ end
262
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminConversationsEkm
9
+ #
10
+ # List all disconnected channels—i.e., channels that were once connected to other workspaces and then disconnected—and the corresponding original channel IDs for key revocation with EKM.
11
+ #
12
+ # @option options [string] :channel_ids
13
+ # A comma-separated list of channels to filter to.
14
+ # @option options [string] :cursor
15
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
16
+ # @option options [integer] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @option options [string] :team_ids
19
+ # A comma-separated list of the workspaces to which the channels you would like returned belong.
20
+ # @see https://api.slack.com/methods/admin.conversations.ekm.listOriginalConnectedChannelInfo
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.ekm/admin.conversations.ekm.listOriginalConnectedChannelInfo.json
22
+ def admin_conversations_ekm_listOriginalConnectedChannelInfo(options = {})
23
+ if block_given?
24
+ Pagination::Cursor.new(self, :admin_conversations_ekm_listOriginalConnectedChannelInfo, options).each do |page|
25
+ yield page
26
+ end
27
+ else
28
+ post('admin.conversations.ekm.listOriginalConnectedChannelInfo', options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminConversationsRestrictaccess
9
+ #
10
+ # Add an allowlist of IDP groups for accessing a channel
11
+ #
12
+ # @option options [Object] :channel_id
13
+ # The channel to link this group to.
14
+ # @option options [Object] :group_id
15
+ # The IDP Group ID to be an allowlist for the private channel.
16
+ # @option options [Object] :team_id
17
+ # The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
18
+ # @see https://api.slack.com/methods/admin.conversations.restrictAccess.addGroup
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.restrictAccess/admin.conversations.restrictAccess.addGroup.json
20
+ def admin_conversations_restrictAccess_addGroup(options = {})
21
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
22
+ throw ArgumentError.new('Required arguments :group_id missing') if options[:group_id].nil?
23
+ post('admin.conversations.restrictAccess.addGroup', options)
24
+ end
25
+
26
+ #
27
+ # List all IDP Groups linked to a channel
28
+ #
29
+ # @option options [Object] :channel_id
30
+ # .
31
+ # @option options [Object] :team_id
32
+ # The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
33
+ # @see https://api.slack.com/methods/admin.conversations.restrictAccess.listGroups
34
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.restrictAccess/admin.conversations.restrictAccess.listGroups.json
35
+ def admin_conversations_restrictAccess_listGroups(options = {})
36
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
37
+ post('admin.conversations.restrictAccess.listGroups', options)
38
+ end
39
+
40
+ #
41
+ # Remove a linked IDP group linked from a private channel
42
+ #
43
+ # @option options [Object] :channel_id
44
+ # The channel to remove the linked group from.
45
+ # @option options [Object] :group_id
46
+ # The IDP Group ID to remove from the private channel.
47
+ # @option options [Object] :team_id
48
+ # The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
49
+ # @see https://api.slack.com/methods/admin.conversations.restrictAccess.removeGroup
50
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.restrictAccess/admin.conversations.restrictAccess.removeGroup.json
51
+ def admin_conversations_restrictAccess_removeGroup(options = {})
52
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
53
+ throw ArgumentError.new('Required arguments :group_id missing') if options[:group_id].nil?
54
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
55
+ post('admin.conversations.restrictAccess.removeGroup', options)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminConversationsWhitelist
9
+ #
10
+ # Add an allowlist of IDP groups for accessing a channel
11
+ #
12
+ # @option options [Object] :channel_id
13
+ # The channel to whitelist a group for.
14
+ # @option options [Object] :group_id
15
+ # The IDP Group ID to whitelist for the private channel.
16
+ # @option options [Object] :team_id
17
+ # The workspace where the IDP Group and channel exist.
18
+ # @see https://api.slack.com/methods/admin.conversations.whitelist.add
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.whitelist/admin.conversations.whitelist.add.json
20
+ def admin_conversations_whitelist_add(options = {})
21
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
22
+ throw ArgumentError.new('Required arguments :group_id missing') if options[:group_id].nil?
23
+ logger.warn('admin.conversations.whitelist.add: This method is deprecated Alternative methods: .')
24
+ post('admin.conversations.whitelist.add', options)
25
+ end
26
+
27
+ #
28
+ # List all IDP Groups linked to a channel
29
+ #
30
+ # @option options [Object] :channel_id
31
+ # .
32
+ # @option options [Object] :team_id
33
+ # The workspace where the channele exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
34
+ # @see https://api.slack.com/methods/admin.conversations.whitelist.listGroupsLinkedToChannel
35
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.whitelist/admin.conversations.whitelist.listGroupsLinkedToChannel.json
36
+ def admin_conversations_whitelist_listGroupsLinkedToChannel(options = {})
37
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
38
+ logger.warn('admin.conversations.whitelist.listGroupsLinkedToChannel: This method is deprecated Alternative methods: .')
39
+ post('admin.conversations.whitelist.listGroupsLinkedToChannel', options)
40
+ end
41
+
42
+ #
43
+ # Remove an allowlisted IDP group linked to a private channel
44
+ #
45
+ # @option options [Object] :channel_id
46
+ # The channel to remove a whitelisted group for.
47
+ # @option options [Object] :group_id
48
+ # The IDP Group ID to remove from the private channel whitelist.
49
+ # @option options [Object] :team_id
50
+ # The workspace where the IDP Group and channel exist.
51
+ # @see https://api.slack.com/methods/admin.conversations.whitelist.remove
52
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations.whitelist/admin.conversations.whitelist.remove.json
53
+ def admin_conversations_whitelist_remove(options = {})
54
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
55
+ throw ArgumentError.new('Required arguments :group_id missing') if options[:group_id].nil?
56
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
57
+ logger.warn('admin.conversations.whitelist.remove: This method is deprecated Alternative methods: .')
58
+ post('admin.conversations.whitelist.remove', options)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminEmoji
9
+ #
10
+ # Add an emoji.
11
+ #
12
+ # @option options [string] :name
13
+ # The name of the emoji to be added. Colons (:myemoji:) around the value are not required, although they may be included.
14
+ # @option options [string] :url
15
+ # The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best.
16
+ # @see https://api.slack.com/methods/admin.emoji.add
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.emoji/admin.emoji.add.json
18
+ def admin_emoji_add(options = {})
19
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
20
+ throw ArgumentError.new('Required arguments :url missing') if options[:url].nil?
21
+ post('admin.emoji.add', options)
22
+ end
23
+
24
+ #
25
+ # Add an emoji alias.
26
+ #
27
+ # @option options [string] :alias_for
28
+ # Name of the emoji for which the alias is being made. Any wrapping whitespace or colons will be automatically trimmed.
29
+ # @option options [string] :name
30
+ # The new alias for the specified emoji. Any wrapping whitespace or colons will be automatically trimmed.
31
+ # @see https://api.slack.com/methods/admin.emoji.addAlias
32
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.emoji/admin.emoji.addAlias.json
33
+ def admin_emoji_addAlias(options = {})
34
+ throw ArgumentError.new('Required arguments :alias_for missing') if options[:alias_for].nil?
35
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
36
+ post('admin.emoji.addAlias', options)
37
+ end
38
+
39
+ #
40
+ # List emoji for an Enterprise Grid organization.
41
+ #
42
+ # @option options [string] :cursor
43
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
44
+ # @option options [integer] :limit
45
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
46
+ # @see https://api.slack.com/methods/admin.emoji.list
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.emoji/admin.emoji.list.json
48
+ def admin_emoji_list(options = {})
49
+ if block_given?
50
+ Pagination::Cursor.new(self, :admin_emoji_list, options).each do |page|
51
+ yield page
52
+ end
53
+ else
54
+ post('admin.emoji.list', options)
55
+ end
56
+ end
57
+
58
+ #
59
+ # Remove an emoji across an Enterprise Grid organization
60
+ #
61
+ # @option options [string] :name
62
+ # The name of the emoji to be removed. Colons (:myemoji:) around the value are not required, although they may be included.
63
+ # @see https://api.slack.com/methods/admin.emoji.remove
64
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.emoji/admin.emoji.remove.json
65
+ def admin_emoji_remove(options = {})
66
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
67
+ post('admin.emoji.remove', options)
68
+ end
69
+
70
+ #
71
+ # Rename an emoji.
72
+ #
73
+ # @option options [string] :name
74
+ # The name of the emoji to be renamed. Colons (:myemoji:) around the value are not required, although they may be included.
75
+ # @option options [string] :new_name
76
+ # The new name of the emoji.
77
+ # @see https://api.slack.com/methods/admin.emoji.rename
78
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.emoji/admin.emoji.rename.json
79
+ def admin_emoji_rename(options = {})
80
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
81
+ throw ArgumentError.new('Required arguments :new_name missing') if options[:new_name].nil?
82
+ post('admin.emoji.rename', options)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminInviterequests
9
+ #
10
+ # Approve a workspace invite request.
11
+ #
12
+ # @option options [string] :invite_request_id
13
+ # ID of the request to invite.
14
+ # @option options [string] :team_id
15
+ # ID for the workspace where the invite request was made.
16
+ # @see https://api.slack.com/methods/admin.inviteRequests.approve
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.inviteRequests/admin.inviteRequests.approve.json
18
+ def admin_inviteRequests_approve(options = {})
19
+ throw ArgumentError.new('Required arguments :invite_request_id missing') if options[:invite_request_id].nil?
20
+ post('admin.inviteRequests.approve', options)
21
+ end
22
+
23
+ #
24
+ # Deny a workspace invite request.
25
+ #
26
+ # @option options [string] :invite_request_id
27
+ # ID of the request to invite.
28
+ # @option options [string] :team_id
29
+ # ID for the workspace where the invite request was made.
30
+ # @see https://api.slack.com/methods/admin.inviteRequests.deny
31
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.inviteRequests/admin.inviteRequests.deny.json
32
+ def admin_inviteRequests_deny(options = {})
33
+ throw ArgumentError.new('Required arguments :invite_request_id missing') if options[:invite_request_id].nil?
34
+ post('admin.inviteRequests.deny', options)
35
+ end
36
+
37
+ #
38
+ # List all pending workspace invite requests.
39
+ #
40
+ # @option options [string] :cursor
41
+ # Value of the next_cursor field sent as part of the previous API response.
42
+ # @option options [integer] :limit
43
+ # The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive.
44
+ # @option options [string] :team_id
45
+ # ID for the workspace where the invite requests were made.
46
+ # @see https://api.slack.com/methods/admin.inviteRequests.list
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.inviteRequests/admin.inviteRequests.list.json
48
+ def admin_inviteRequests_list(options = {})
49
+ if block_given?
50
+ Pagination::Cursor.new(self, :admin_inviteRequests_list, options).each do |page|
51
+ yield page
52
+ end
53
+ else
54
+ post('admin.inviteRequests.list', options)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end