slack-ruby-client 0.12.0 → 0.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +21 -9
  4. data/.rubocop_todo.yml +64 -56
  5. data/.travis.yml +5 -3
  6. data/CHANGELOG.md +90 -32
  7. data/Dangerfile +2 -0
  8. data/Gemfile +10 -4
  9. data/LICENSE.md +1 -1
  10. data/README.md +176 -32
  11. data/Rakefile +2 -1
  12. data/UPGRADING.md +27 -1
  13. data/bin/commands.rb +21 -0
  14. data/bin/commands/admin_apps.rb +27 -0
  15. data/bin/commands/admin_apps_approved.rb +17 -0
  16. data/bin/commands/admin_apps_requests.rb +16 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_conversations.rb +17 -0
  19. data/bin/commands/admin_emoji.rb +54 -0
  20. data/bin/commands/admin_inviteRequests.rb +36 -0
  21. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  22. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  23. data/bin/commands/admin_teams.rb +27 -0
  24. data/bin/commands/admin_teams_admins.rb +16 -0
  25. data/bin/commands/admin_teams_owners.rb +16 -0
  26. data/bin/commands/admin_teams_settings.rb +64 -0
  27. data/bin/commands/admin_users.rb +97 -0
  28. data/bin/commands/admin_users_session.rb +16 -0
  29. data/bin/commands/api.rb +1 -0
  30. data/bin/commands/apps.rb +15 -0
  31. data/bin/commands/apps_permissions.rb +1 -0
  32. data/bin/commands/apps_permissions_resources.rb +1 -0
  33. data/bin/commands/apps_permissions_scopes.rb +1 -0
  34. data/bin/commands/apps_permissions_users.rb +1 -0
  35. data/bin/commands/auth.rb +1 -0
  36. data/bin/commands/bots.rb +1 -0
  37. data/bin/commands/channels.rb +3 -1
  38. data/bin/commands/chat.rb +48 -9
  39. data/bin/commands/chat_scheduledMessages.rb +18 -0
  40. data/bin/commands/conversations.rb +4 -2
  41. data/bin/commands/dialog.rb +1 -0
  42. data/bin/commands/dnd.rb +4 -3
  43. data/bin/commands/emoji.rb +1 -0
  44. data/bin/commands/files.rb +4 -14
  45. data/bin/commands/files_comments.rb +1 -21
  46. data/bin/commands/files_remote.rb +78 -0
  47. data/bin/commands/groups.rb +2 -1
  48. data/bin/commands/im.rb +2 -1
  49. data/bin/commands/migration.rb +1 -0
  50. data/bin/commands/mpim.rb +2 -1
  51. data/bin/commands/oauth.rb +2 -1
  52. data/bin/commands/oauth_v2.rb +17 -0
  53. data/bin/commands/pins.rb +1 -2
  54. data/bin/commands/reactions.rb +2 -3
  55. data/bin/commands/reminders.rb +1 -0
  56. data/bin/commands/rtm.rb +1 -0
  57. data/bin/commands/search.rb +2 -1
  58. data/bin/commands/stars.rb +1 -0
  59. data/bin/commands/team.rb +2 -0
  60. data/bin/commands/team_profile.rb +1 -0
  61. data/bin/commands/usergroups.rb +2 -1
  62. data/bin/commands/usergroups_users.rb +1 -0
  63. data/bin/commands/users.rb +2 -2
  64. data/bin/commands/users_admin.rb +1 -0
  65. data/bin/commands/users_prefs.rb +1 -0
  66. data/bin/commands/users_profile.rb +1 -0
  67. data/bin/commands/views.rb +48 -0
  68. data/bin/slack +2 -3
  69. data/examples/hi_real_time/Gemfile +1 -0
  70. data/examples/hi_real_time/hi.rb +7 -3
  71. data/examples/hi_real_time_and_web/Gemfile +1 -0
  72. data/examples/hi_real_time_and_web/hi.rb +7 -3
  73. data/examples/hi_real_time_async_async/Gemfile +7 -0
  74. data/examples/hi_real_time_async_async/Procfile +2 -0
  75. data/examples/hi_real_time_async_async/hi.rb +41 -0
  76. data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
  77. data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
  78. data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
  79. data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
  80. data/examples/hi_web/Gemfile +1 -0
  81. data/examples/hi_web/hi.rb +1 -0
  82. data/examples/new_ticket/Gemfile +1 -0
  83. data/examples/new_ticket/new_ticket.rb +1 -0
  84. data/lib/slack-ruby-client.rb +8 -2
  85. data/lib/slack.rb +1 -0
  86. data/lib/slack/config.rb +1 -0
  87. data/lib/slack/events/config.rb +32 -0
  88. data/lib/slack/events/request.rb +66 -0
  89. data/lib/slack/logger.rb +6 -5
  90. data/lib/slack/messages/formatting.rb +1 -0
  91. data/lib/slack/messages/message.rb +1 -0
  92. data/lib/slack/real_time/api/message.rb +3 -1
  93. data/lib/slack/real_time/api/message_id.rb +1 -0
  94. data/lib/slack/real_time/api/ping.rb +5 -2
  95. data/lib/slack/real_time/api/typing.rb +3 -1
  96. data/lib/slack/real_time/client.rb +97 -28
  97. data/lib/slack/real_time/concurrency.rb +2 -0
  98. data/lib/slack/real_time/concurrency/async.rb +142 -0
  99. data/lib/slack/real_time/concurrency/celluloid.rb +33 -9
  100. data/lib/slack/real_time/concurrency/eventmachine.rb +32 -7
  101. data/lib/slack/real_time/config.rb +7 -2
  102. data/lib/slack/real_time/models.rb +1 -0
  103. data/lib/slack/real_time/models/base.rb +1 -0
  104. data/lib/slack/real_time/models/bot.rb +1 -0
  105. data/lib/slack/real_time/models/channel.rb +1 -0
  106. data/lib/slack/real_time/models/group.rb +1 -0
  107. data/lib/slack/real_time/models/im.rb +1 -0
  108. data/lib/slack/real_time/models/team.rb +1 -0
  109. data/lib/slack/real_time/models/user.rb +1 -0
  110. data/lib/slack/real_time/socket.rb +42 -13
  111. data/lib/slack/real_time/stores.rb +1 -0
  112. data/lib/slack/real_time/stores/base.rb +1 -0
  113. data/lib/slack/real_time/stores/starter.rb +11 -0
  114. data/lib/slack/real_time/stores/store.rb +28 -25
  115. data/lib/slack/version.rb +2 -1
  116. data/lib/slack/web/api/endpoints.rb +41 -0
  117. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
  118. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  119. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  120. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  121. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  122. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  123. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  124. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  125. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  126. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  127. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  128. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  129. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  130. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  131. data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
  132. data/lib/slack/web/api/endpoints/api.rb +1 -0
  133. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  134. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  135. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
  136. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
  137. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
  138. data/lib/slack/web/api/endpoints/auth.rb +1 -0
  139. data/lib/slack/web/api/endpoints/bots.rb +1 -0
  140. data/lib/slack/web/api/endpoints/channels.rb +3 -0
  141. data/lib/slack/web/api/endpoints/chat.rb +99 -12
  142. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +38 -0
  143. data/lib/slack/web/api/endpoints/conversations.rb +4 -1
  144. data/lib/slack/web/api/endpoints/dialog.rb +1 -0
  145. data/lib/slack/web/api/endpoints/dnd.rb +3 -1
  146. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  147. data/lib/slack/web/api/endpoints/files.rb +4 -13
  148. data/lib/slack/web/api/endpoints/files_comments.rb +1 -33
  149. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  150. data/lib/slack/web/api/endpoints/groups.rb +1 -0
  151. data/lib/slack/web/api/endpoints/im.rb +1 -0
  152. data/lib/slack/web/api/endpoints/migration.rb +1 -0
  153. data/lib/slack/web/api/endpoints/mpim.rb +1 -0
  154. data/lib/slack/web/api/endpoints/oauth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  156. data/lib/slack/web/api/endpoints/pins.rb +2 -4
  157. data/lib/slack/web/api/endpoints/reactions.rb +5 -6
  158. data/lib/slack/web/api/endpoints/reminders.rb +1 -0
  159. data/lib/slack/web/api/endpoints/rtm.rb +1 -0
  160. data/lib/slack/web/api/endpoints/search.rb +1 -0
  161. data/lib/slack/web/api/endpoints/stars.rb +1 -0
  162. data/lib/slack/web/api/endpoints/team.rb +3 -0
  163. data/lib/slack/web/api/endpoints/team_profile.rb +1 -0
  164. data/lib/slack/web/api/endpoints/usergroups.rb +1 -0
  165. data/lib/slack/web/api/endpoints/usergroups_users.rb +1 -0
  166. data/lib/slack/web/api/endpoints/users.rb +1 -2
  167. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  168. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  169. data/lib/slack/web/api/endpoints/users_profile.rb +1 -0
  170. data/lib/slack/web/api/endpoints/views.rb +97 -0
  171. data/lib/slack/web/api/error.rb +1 -0
  172. data/lib/slack/web/api/errors.rb +566 -0
  173. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  174. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  175. data/lib/slack/web/api/mixins.rb +1 -0
  176. data/lib/slack/web/api/mixins/channels.id.rb +1 -0
  177. data/lib/slack/web/api/mixins/groups.id.rb +1 -0
  178. data/lib/slack/web/api/mixins/ids.id.rb +4 -1
  179. data/lib/slack/web/api/mixins/users.id.rb +1 -0
  180. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  181. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +5 -3
  182. data/lib/slack/web/api/patches/chat.6.block-kit-support.patch +69 -0
  183. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  184. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  185. data/lib/slack/web/api/templates/command.erb +1 -0
  186. data/lib/slack/web/api/templates/commands.erb +1 -0
  187. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  188. data/lib/slack/web/api/templates/errors.erb +20 -0
  189. data/lib/slack/web/api/templates/method.erb +1 -0
  190. data/lib/slack/web/api/templates/method_spec.erb +1 -0
  191. data/lib/slack/web/client.rb +2 -1
  192. data/lib/slack/web/config.rb +1 -0
  193. data/lib/slack/web/faraday/connection.rb +1 -0
  194. data/lib/slack/web/faraday/request.rb +1 -0
  195. data/lib/slack/web/faraday/response/raise_error.rb +10 -6
  196. data/lib/slack/web/pagination/cursor.rb +4 -0
  197. data/lib/slack_ruby_client.rb +1 -0
  198. data/lib/tasks/git.rake +1 -0
  199. data/lib/tasks/real_time.rake +15 -5
  200. data/lib/tasks/update.rake +1 -0
  201. data/lib/tasks/web.rake +28 -7
  202. data/screenshots/create-app.png +0 -0
  203. data/slack-ruby-client.gemspec +6 -2
  204. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  205. data/spec/integration/integration_spec.rb +116 -48
  206. data/spec/slack/config_spec.rb +2 -0
  207. data/spec/slack/events/config_spec.rb +33 -0
  208. data/spec/slack/events/request_spec.rb +179 -0
  209. data/spec/slack/messages/formatting_spec.rb +25 -13
  210. data/spec/slack/real_time/api/message_spec.rb +6 -1
  211. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  212. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  213. data/spec/slack/real_time/client_spec.rb +212 -31
  214. data/spec/slack/real_time/concurrency/celluloid_spec.rb +15 -5
  215. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +11 -1
  216. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  217. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  218. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  219. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  220. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  221. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  222. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  223. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  224. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  225. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  226. data/spec/slack/real_time/store_spec.rb +2 -1
  227. data/spec/slack/slack_spec.rb +37 -5
  228. data/spec/slack/version_spec.rb +2 -1
  229. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  230. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  231. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  232. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
  233. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  234. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  235. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  236. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  237. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  238. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  239. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  240. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  241. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  242. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
  243. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  244. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  245. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  246. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  247. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  248. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  249. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  250. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  251. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  252. data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
  253. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  254. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +2 -0
  255. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
  256. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  257. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  258. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  259. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  260. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  261. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  262. data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -19
  263. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  264. data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
  265. data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
  266. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  267. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
  268. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -0
  269. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  270. data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
  271. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  272. data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
  273. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  275. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  276. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  279. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
  280. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  281. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  284. data/spec/slack/web/api/error_spec.rb +4 -2
  285. data/spec/slack/web/api/errors/service_unavailable_spec.rb +6 -3
  286. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  287. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  288. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  289. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  290. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  291. data/spec/slack/web/client_spec.rb +45 -18
  292. data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
  293. data/spec/spec_helper.rb +8 -1
  294. data/spec/support/queue_with_timeout.rb +5 -4
  295. data/spec/support/real_time/concurrency/mock.rb +1 -0
  296. data/spec/support/real_time/connected_client.rb +9 -3
  297. data/spec/support/real_time/event.rb +1 -0
  298. data/spec/support/token.rb +1 -0
  299. data/spec/support/vcr.rb +1 -0
  300. metadata +149 -9
  301. data/screenshots/register-bot.png +0 -0
@@ -0,0 +1,127 @@
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 FilesRemote
9
+ #
10
+ # Adds a file from a remote service
11
+ #
12
+ # @option options [Object] :external_id
13
+ # Creator defined GUID for the file.
14
+ # @option options [Object] :external_url
15
+ # URL of the remote file.
16
+ # @option options [Object] :title
17
+ # Title of the file being shared.
18
+ # @option options [Object] :filetype
19
+ # type of file.
20
+ # @option options [Object] :indexable_file_contents
21
+ # A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.
22
+ # @option options [Object] :preview_image
23
+ # Preview of the document via multipart/form-data.
24
+ # @see https://api.slack.com/methods/files.remote.add
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.add.json
26
+ def files_remote_add(options = {})
27
+ throw ArgumentError.new('Required arguments :external_id missing') if options[:external_id].nil?
28
+ throw ArgumentError.new('Required arguments :external_url missing') if options[:external_url].nil?
29
+ throw ArgumentError.new('Required arguments :title missing') if options[:title].nil?
30
+ post('files.remote.add', options)
31
+ end
32
+
33
+ #
34
+ # Retrieve information about a remote file added to Slack
35
+ #
36
+ # @option options [Object] :external_id
37
+ # Creator defined GUID for the file.
38
+ # @option options [file] :file
39
+ # Specify a file by providing its ID.
40
+ # @see https://api.slack.com/methods/files.remote.info
41
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.info.json
42
+ def files_remote_info(options = {})
43
+ post('files.remote.info', options)
44
+ end
45
+
46
+ #
47
+ # Retrieve information about a remote file added to Slack
48
+ #
49
+ # @option options [channel] :channel
50
+ # Filter files appearing in a specific channel, indicated by its ID.
51
+ # @option options [Object] :cursor
52
+ # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
53
+ # @option options [Object] :limit
54
+ # The maximum number of items to return.
55
+ # @option options [Object] :ts_from
56
+ # Filter files created after this timestamp (inclusive).
57
+ # @option options [Object] :ts_to
58
+ # Filter files created before this timestamp (inclusive).
59
+ # @see https://api.slack.com/methods/files.remote.list
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.list.json
61
+ def files_remote_list(options = {})
62
+ options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
63
+ if block_given?
64
+ Pagination::Cursor.new(self, :files_remote_list, options).each do |page|
65
+ yield page
66
+ end
67
+ else
68
+ post('files.remote.list', options)
69
+ end
70
+ end
71
+
72
+ #
73
+ # Remove a remote file.
74
+ #
75
+ # @option options [Object] :external_id
76
+ # Creator defined GUID for the file.
77
+ # @option options [file] :file
78
+ # Specify a file by providing its ID.
79
+ # @see https://api.slack.com/methods/files.remote.remove
80
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.remove.json
81
+ def files_remote_remove(options = {})
82
+ post('files.remote.remove', options)
83
+ end
84
+
85
+ #
86
+ # Share a remote file into a channel.
87
+ #
88
+ # @option options [Object] :channels
89
+ # Comma-separated list of channel IDs where the file will be shared.
90
+ # @option options [Object] :external_id
91
+ # Creator defined GUID for the file.
92
+ # @option options [file] :file
93
+ # Specify a file by providing its ID.
94
+ # @see https://api.slack.com/methods/files.remote.share
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.share.json
96
+ def files_remote_share(options = {})
97
+ throw ArgumentError.new('Required arguments :channels missing') if options[:channels].nil?
98
+ post('files.remote.share', options)
99
+ end
100
+
101
+ #
102
+ # Updates an existing remote file.
103
+ #
104
+ # @option options [Object] :external_id
105
+ # Creator defined GUID for the file.
106
+ # @option options [Object] :external_url
107
+ # URL of the remote file.
108
+ # @option options [file] :file
109
+ # Specify a file by providing its ID.
110
+ # @option options [Object] :filetype
111
+ # type of file.
112
+ # @option options [Object] :indexable_file_contents
113
+ # File containing contents that can be used to improve searchability for the remote file.
114
+ # @option options [Object] :preview_image
115
+ # Preview of the document via multipart/form-data.
116
+ # @option options [Object] :title
117
+ # Title of the file being shared.
118
+ # @see https://api.slack.com/methods/files.remote.update
119
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.update.json
120
+ def files_remote_update(options = {})
121
+ post('files.remote.update', options)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -17,7 +18,7 @@ module Slack
17
18
  # @option options [Object] :redirect_uri
18
19
  # This must match the originally submitted URI (if one was sent).
19
20
  # @option options [Object] :single_channel
20
- # Request the user to add your app only to a single channel.
21
+ # Request the user to add your app only to a single channel. Only valid with a legacy workspace app.
21
22
  # @see https://api.slack.com/methods/oauth.access
22
23
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.access.json
23
24
  def oauth_access(options = {})
@@ -0,0 +1,30 @@
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 OauthV2
9
+ #
10
+ # Exchanges a temporary OAuth verifier code for an access token.
11
+ #
12
+ # @option options [Object] :code
13
+ # The code param returned via the OAuth callback.
14
+ # @option options [Object] :client_id
15
+ # Issued when you created your application.
16
+ # @option options [Object] :client_secret
17
+ # Issued when you created your application.
18
+ # @option options [Object] :redirect_uri
19
+ # This must match the originally submitted URI (if one was sent).
20
+ # @see https://api.slack.com/methods/oauth.v2.access
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.access.json
22
+ def oauth_v2_access(options = {})
23
+ throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
24
+ post('oauth.v2.access', options)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -10,16 +11,13 @@ module Slack
10
11
  #
11
12
  # @option options [channel] :channel
12
13
  # Channel to pin the item in.
13
- # @option options [file] :file
14
- # File to pin.
15
- # @option options [Object] :file_comment
16
- # File comment to pin.
17
14
  # @option options [Object] :timestamp
18
15
  # Timestamp of the message to pin.
19
16
  # @see https://api.slack.com/methods/pins.add
20
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.add.json
21
18
  def pins_add(options = {})
22
19
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
20
+ throw ArgumentError.new('Required arguments :timestamp missing') if options[:timestamp].nil?
23
21
  options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
24
22
  post('pins.add', options)
25
23
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,20 +9,18 @@ module Slack
8
9
  #
9
10
  # Adds a reaction to an item.
10
11
  #
11
- # @option options [Object] :name
12
- # Reaction (emoji) name.
13
12
  # @option options [channel] :channel
14
13
  # Channel where the message to add reaction to was posted.
15
- # @option options [file] :file
16
- # File to add reaction to.
17
- # @option options [Object] :file_comment
18
- # File comment to add reaction to.
14
+ # @option options [Object] :name
15
+ # Reaction (emoji) name.
19
16
  # @option options [Object] :timestamp
20
17
  # Timestamp of the message to add reaction to.
21
18
  # @see https://api.slack.com/methods/reactions.add
22
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.add.json
23
20
  def reactions_add(options = {})
21
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
24
22
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
23
+ throw ArgumentError.new('Required arguments :timestamp missing') if options[:timestamp].nil?
25
24
  options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
26
25
  post('reactions.add', options)
27
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -31,6 +32,8 @@ module Slack
31
32
  #
32
33
  # Gets information about the current team.
33
34
  #
35
+ # @option options [Object] :team
36
+ # Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels.
34
37
  # @see https://api.slack.com/methods/team.info
35
38
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.info.json
36
39
  def team_info(options = {})
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -86,8 +87,6 @@ module Slack
86
87
  # Set this to true to receive the locale for users. Defaults to false.
87
88
  # @option options [Object] :limit
88
89
  # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
89
- # @option options [Object] :presence
90
- # Deprecated. Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.
91
90
  # @see https://api.slack.com/methods/users.list
92
91
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.list.json
93
92
  def users_list(options = {})
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -0,0 +1,97 @@
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 Views
9
+ #
10
+ # Open a view for a user.
11
+ #
12
+ # @option options [Object] :trigger_id
13
+ # Exchange a trigger to post to the user.
14
+ # @option options [Object] :view
15
+ # A view payload. This must be a JSON-encoded string.
16
+ # @see https://api.slack.com/methods/views.open
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.open.json
18
+ def views_open(options = {})
19
+ throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
20
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
21
+ if options.key?(:view)
22
+ view = options[:view]
23
+ view = JSON.dump(view) unless view.is_a?(String)
24
+ options = options.merge(view: view)
25
+ end
26
+ post('views.open', options)
27
+ end
28
+
29
+ #
30
+ # Publish a static view for a User.
31
+ #
32
+ # @option options [Object] :user_id
33
+ # id of the user you want publish a view to.
34
+ # @option options [Object] :view
35
+ # A view payload. This must be a JSON-encoded string.
36
+ # @option options [Object] :hash
37
+ # A string that represents view state to protect against possible race conditions.
38
+ # @see https://api.slack.com/methods/views.publish
39
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.publish.json
40
+ def views_publish(options = {})
41
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
42
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
43
+ if options.key?(:view)
44
+ view = options[:view]
45
+ view = JSON.dump(view) unless view.is_a?(String)
46
+ options = options.merge(view: view)
47
+ end
48
+ post('views.publish', options)
49
+ end
50
+
51
+ #
52
+ # Push a view onto the stack of a root view.
53
+ #
54
+ # @option options [Object] :trigger_id
55
+ # Exchange a trigger to post to the user.
56
+ # @option options [Object] :view
57
+ # A view payload. This must be a JSON-encoded string.
58
+ # @see https://api.slack.com/methods/views.push
59
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.push.json
60
+ def views_push(options = {})
61
+ throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
62
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
63
+ if options.key?(:view)
64
+ view = options[:view]
65
+ view = JSON.dump(view) unless view.is_a?(String)
66
+ options = options.merge(view: view)
67
+ end
68
+ post('views.push', options)
69
+ end
70
+
71
+ #
72
+ # Update an existing view.
73
+ #
74
+ # @option options [Object] :view
75
+ # A view payload This must be a JSON-encoded string.
76
+ # @option options [Object] :external_id
77
+ # A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either view_id or external_id is required.
78
+ # @option options [Object] :hash
79
+ # A string that represents view state to protect against possible race conditions.
80
+ # @option options [Object] :view_id
81
+ # A unique identifier of the view to be updated. Either view_id or external_id is required.
82
+ # @see https://api.slack.com/methods/views.update
83
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.update.json
84
+ def views_update(options = {})
85
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
86
+ if options.key?(:view)
87
+ view = options[:view]
88
+ view = JSON.dump(view) unless view.is_a?(String)
89
+ options = options.merge(view: view)
90
+ end
91
+ post('views.update', options)
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module Web
3
4
  module Api
@@ -0,0 +1,566 @@
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 Errors
8
+ class AccountInactive < SlackError; end
9
+ class AlreadyArchived < SlackError; end
10
+ class AlreadyInChannel < SlackError; end
11
+ class AlreadyInTeam < SlackError; end
12
+ class AlreadyInTeamInvitedUser < SlackError; end
13
+ class AlreadyInvited < SlackError; end
14
+ class AlreadyPinned < SlackError; end
15
+ class AlreadyProcessed < SlackError; end
16
+ class AlreadyReacted < SlackError; end
17
+ class AlreadyStarred < SlackError; end
18
+ class AppManagementAppNotInstalledOnOrg < SlackError; end
19
+ class AppMissingActionUrl < SlackError; end
20
+ class AsUserNotSupported < SlackError; end
21
+ class BadClientSecret < SlackError; end
22
+ class BadImage < SlackError; end
23
+ class BadRedirectUri < SlackError; end
24
+ class BadTimestamp < SlackError; end
25
+ class BadTitle < SlackError; end
26
+ class BadToken < SlackError; end
27
+ class BadUrl < SlackError; end
28
+ class BotNotFound < SlackError; end
29
+ class CannotAddBot < SlackError; end
30
+ class CannotAddOthers < SlackError; end
31
+ class CannotAddOthersRecurring < SlackError; end
32
+ class CannotAddSlackbot < SlackError; end
33
+ class CannotCompleteOthers < SlackError; end
34
+ class CannotCompleteRecurring < SlackError; end
35
+ class CannotCreateDialog < SlackError; end
36
+ class CannotFindChannel < SlackError; end
37
+ class CannotFindMessage < SlackError; end
38
+ class CannotFindService < SlackError; end
39
+ class CannotModifyPrimaryOwner < SlackError; end
40
+ class CannotParse < SlackError; end
41
+ class CannotParseAttachment < SlackError; end
42
+ class CannotPrompt < SlackError; end
43
+ class CannotResetPrimaryOwner < SlackError; end
44
+ class CannotUnfurlUrl < SlackError; end
45
+ class CannotUpdateAdminUser < SlackError; end
46
+ class CantArchiveGeneral < SlackError; end
47
+ class CantDelete < SlackError; end
48
+ class CantDeleteFile < SlackError; end
49
+ class CantDeleteMessage < SlackError; end
50
+ class CantInvite < SlackError; end
51
+ class CantInviteSelf < SlackError; end
52
+ class CantKickFromGeneral < SlackError; end
53
+ class CantKickSelf < SlackError; end
54
+ class CantLeaveGeneral < SlackError; end
55
+ class CantUpdateMessage < SlackError; end
56
+ class ChannelCannotBeUnshared < SlackError; end
57
+ class ChannelNotFound < SlackError; end
58
+ class ChannelNotSharedWithTeam < SlackError; end
59
+ class ChannelTypeNotSupported < SlackError; end
60
+ class ClientIdTokenMismatch < SlackError; end
61
+ class CodeAlreadyUsed < SlackError; end
62
+ class ComplianceExportsPreventDeletion < SlackError; end
63
+ class CouldNotCreateWorkspace < SlackError; end
64
+ class DefaultOrgWideChannel < SlackError; end
65
+ class DiscoverabilitySettingInvalid < SlackError; end
66
+ class DomainTaken < SlackError; end
67
+ class DuplicateChannelNotFound < SlackError; end
68
+ class DuplicateExternalId < SlackError; end
69
+ class DuplicateMessageNotFound < SlackError; end
70
+ class EditWindowClosed < SlackError; end
71
+ class EkmAccessDenied < SlackError; end
72
+ class EmojiNotFound < SlackError; end
73
+ class EnterpriseIsRestricted < SlackError; end
74
+ class ErrorBadFormat < SlackError; end
75
+ class ErrorBadNameI18n < SlackError; end
76
+ class ErrorBadUpload < SlackError; end
77
+ class ErrorBadWide < SlackError; end
78
+ class ErrorInvalidAlias < SlackError; end
79
+ class ErrorInvalidEmojiToRename < SlackError; end
80
+ class ErrorMissingName < SlackError; end
81
+ class ErrorNameTaken < SlackError; end
82
+ class ErrorNameTakenI18n < SlackError; end
83
+ class ErrorNoImage < SlackError; end
84
+ class ErrorTooBig < SlackError; end
85
+ class ExternalChannelMigrating < SlackError; end
86
+ class FailedLookingUpUser < SlackError; end
87
+ class FailedSendingDialog < SlackError; end
88
+ class FailedToAddEmoji < SlackError; end
89
+ class FailedToAliasEmoji < SlackError; end
90
+ class FailedToFetchActiveTeam < SlackError; end
91
+ class FailedToFetchInfo < SlackError; end
92
+ class FailedToRemoveUserFromWorkspace < SlackError; end
93
+ class FailedToRenameEmoji < SlackError; end
94
+ class FailedToSendInvite < SlackError; end
95
+ class FailedToSetDefaultChannels < SlackError; end
96
+ class FailedToSetDescription < SlackError; end
97
+ class FailedToSetDiscoverability < SlackError; end
98
+ class FailedToSetIcon < SlackError; end
99
+ class FailedToSetName < SlackError; end
100
+ class FailedToSetUserToAdmin < SlackError; end
101
+ class FailedToSetUserToOwner < SlackError; end
102
+ class FailedToSetUserToRegular < SlackError; end
103
+ class FailedToValidateCaller < SlackError; end
104
+ class FailedToValidateChannels < SlackError; end
105
+ class FailedToValidateCustomMessage < SlackError; end
106
+ class FailedToValidateExpiration < SlackError; end
107
+ class FailedToValidateTeam < SlackError; end
108
+ class FailureRemovingEmoji < SlackError; end
109
+ class FatalError < SlackError; end
110
+ class FeatureNotEnabled < SlackError; end
111
+ class FetchMembersFailed < SlackError; end
112
+ class FileCommentNotFound < SlackError; end
113
+ class FileDeleted < SlackError; end
114
+ class FileNotFound < SlackError; end
115
+ class FileNotShared < SlackError; end
116
+ class FileUnderReview < SlackError; end
117
+ class GroupContainsOthers < SlackError; end
118
+ class HashConflict < SlackError; end
119
+ class InvalidAppId < SlackError; end
120
+ class InvalidArgName < SlackError; end
121
+ class InvalidArguments < SlackError; end
122
+ class InvalidAuth < SlackError; end
123
+ class InvalidChannel < SlackError; end
124
+ class InvalidChannelId < SlackError; end
125
+ class InvalidCharset < SlackError; end
126
+ class InvalidClientId < SlackError; end
127
+ class InvalidCode < SlackError; end
128
+ class InvalidCursor < SlackError; end
129
+ class InvalidEmail < SlackError; end
130
+ class InvalidExternalId < SlackError; end
131
+ class InvalidFormData < SlackError; end
132
+ class InvalidGrantType < SlackError; end
133
+ class InvalidLimit < SlackError; end
134
+ class InvalidName < SlackError; end
135
+ class InvalidNameMaxlength < SlackError; end
136
+ class InvalidNamePunctuation < SlackError; end
137
+ class InvalidNameRequired < SlackError; end
138
+ class InvalidNameSpecials < SlackError; end
139
+ class InvalidPermissions < SlackError; end
140
+ class InvalidPostType < SlackError; end
141
+ class InvalidPresence < SlackError; end
142
+ class InvalidProfile < SlackError; end
143
+ class InvalidRequest < SlackError; end
144
+ class InvalidRequestId < SlackError; end
145
+ class InvalidRoleForUser < SlackError; end
146
+ class InvalidScheduledMessageId < SlackError; end
147
+ class InvalidScope < SlackError; end
148
+ class InvalidTargetTeam < SlackError; end
149
+ class InvalidTime < SlackError; end
150
+ class InvalidTimestamp < SlackError; end
151
+ class InvalidTrigger < SlackError; end
152
+ class InvalidTsLatest < SlackError; end
153
+ class InvalidTsOldest < SlackError; end
154
+ class InvalidTypes < SlackError; end
155
+ class InvalidUrl < SlackError; end
156
+ class InvalidUser < SlackError; end
157
+ class InvalidUsers < SlackError; end
158
+ class InvitedUserNotCreated < SlackError; end
159
+ class InvitedUserNotReactivated < SlackError; end
160
+ class InviteeCantSeeChannel < SlackError; end
161
+ class IsArchived < SlackError; end
162
+ class IsBot < SlackError; end
163
+ class IsInactive < SlackError; end
164
+ class LastMember < SlackError; end
165
+ class LimitRequired < SlackError; end
166
+ class MessageNotFound < SlackError; end
167
+ class MethodNotSupportedForChannelType < SlackError; end
168
+ class MigrationInProgress < SlackError; end
169
+ class MissingChannel < SlackError; end
170
+ class MissingDialog < SlackError; end
171
+ class MissingDuration < SlackError; end
172
+ class MissingPostType < SlackError; end
173
+ class MissingScope < SlackError; end
174
+ class MissingTrigger < SlackError; end
175
+ class MissingTs < SlackError; end
176
+ class MissingUnfurls < SlackError; end
177
+ class MixedScope < SlackError; end
178
+ class MsgTooLong < SlackError; end
179
+ class MustProvideTeamDomain < SlackError; end
180
+ class MustProvideTeamName < SlackError; end
181
+ class NameTaken < SlackError; end
182
+ class NameTakenInOrg < SlackError; end
183
+ class NoAliasSelected < SlackError; end
184
+ class NoBotUserForApp < SlackError; end
185
+ class NoChannel < SlackError; end
186
+ class NoImageUploaded < SlackError; end
187
+ class NoItemSpecified < SlackError; end
188
+ class NoPermission < SlackError; end
189
+ class NoReaction < SlackError; end
190
+ class NoSuchSubteam < SlackError; end
191
+ class NoText < SlackError; end
192
+ class NoUser < SlackError; end
193
+ class NoUserProvided < SlackError; end
194
+ class NotAdmin < SlackError; end
195
+ class NotAllowed < SlackError; end
196
+ class NotAllowedTokenType < SlackError; end
197
+ class NotAnAdmin < SlackError; end
198
+ class NotAppAdmin < SlackError; end
199
+ class NotArchived < SlackError; end
200
+ class NotAuthed < SlackError; end
201
+ class NotAuthorized < SlackError; end
202
+ class NotBearerToken < SlackError; end
203
+ class NotEnabled < SlackError; end
204
+ class NotEnoughUsers < SlackError; end
205
+ class NotEnterpriseTeam < SlackError; end
206
+ class NotFound < SlackError; end
207
+ class NotInChannel < SlackError; end
208
+ class NotInDnd < SlackError; end
209
+ class NotInGroup < SlackError; end
210
+ class NotPinnable < SlackError; end
211
+ class NotPinned < SlackError; end
212
+ class NotReactable < SlackError; end
213
+ class NotStarred < SlackError; end
214
+ class OauthAuthorizationUrlMismatch < SlackError; end
215
+ class OrgLoginRequired < SlackError; end
216
+ class OverPaginationLimit < SlackError; end
217
+ class PaginationNotAvailable < SlackError; end
218
+ class PaidOnly < SlackError; end
219
+ class PermissionDenied < SlackError; end
220
+ class PlanUpgradeRequired < SlackError; end
221
+ class PostingToGeneralChannelDenied < SlackError; end
222
+ class PreviewFeatureNotAvailable < SlackError; end
223
+ class ProfileSetFailed < SlackError; end
224
+ class PublicVideoNotAllowed < SlackError; end
225
+ class PushLimitReached < SlackError; end
226
+ class RateLimited < SlackError; end
227
+ class Ratelimited < SlackError; end
228
+ class RequestAlreadyResolved < SlackError; end
229
+ class RequestIdOrAppIdIsRequired < SlackError; end
230
+ class RequestIdRequiredForCustomIntegrations < SlackError; end
231
+ class RequestTimeout < SlackError; end
232
+ class ReservedName < SlackError; end
233
+ class RestrictedAction < SlackError; end
234
+ class RestrictedActionNonThreadableChannel < SlackError; end
235
+ class RestrictedActionReadOnlyChannel < SlackError; end
236
+ class RestrictedActionThreadOnlyChannel < SlackError; end
237
+ class RtmConnectRequired < SlackError; end
238
+ class SentRecently < SlackError; end
239
+ class SnoozeEndFailed < SlackError; end
240
+ class SnoozeFailed < SlackError; end
241
+ class SnoozeNotActive < SlackError; end
242
+ class TeamAddedToOrg < SlackError; end
243
+ class TeamNotFound < SlackError; end
244
+ class ThreadNotFound < SlackError; end
245
+ class TimeInPast < SlackError; end
246
+ class TimeTooFar < SlackError; end
247
+ class TokenRevoked < SlackError; end
248
+ class TooLarge < SlackError; end
249
+ class TooLong < SlackError; end
250
+ class TooManyAttachments < SlackError; end
251
+ class TooManyConvosForAppOnTeam < SlackError; end
252
+ class TooManyConvosForTeam < SlackError; end
253
+ class TooManyEmoji < SlackError; end
254
+ class TooManyFrames < SlackError; end
255
+ class TooManyIds < SlackError; end
256
+ class TooManyIdsProvided < SlackError; end
257
+ class TooManyReactions < SlackError; end
258
+ class TooManyTargetTeams < SlackError; end
259
+ class TooManyTeamsProvided < SlackError; end
260
+ class TooManyUsers < SlackError; end
261
+ class TriggerExchanged < SlackError; end
262
+ class TriggerExpired < SlackError; end
263
+ class UnableToLeaveLastTeam < SlackError; end
264
+ class UnknownMethod < SlackError; end
265
+ class UnknownType < SlackError; end
266
+ class UnsupportedArguments < SlackError; end
267
+ class UraMaxChannels < SlackError; end
268
+ class UserAlreadyDeleted < SlackError; end
269
+ class UserAlreadyTeamMember < SlackError; end
270
+ class UserDisabled < SlackError; end
271
+ class UserDoesNotOwnChannel < SlackError; end
272
+ class UserIsAlreadyDeleted < SlackError; end
273
+ class UserIsNotAGuest < SlackError; end
274
+ class UserIsRestricted < SlackError; end
275
+ class UserIsUltraRestricted < SlackError; end
276
+ class UserNotFound < SlackError; end
277
+ class UserNotInChannel < SlackError; end
278
+ class UserNotVisible < SlackError; end
279
+ class UserSessionResetFailed < SlackError; end
280
+ class UsersListNotSupplied < SlackError; end
281
+ class UsersNotFound < SlackError; end
282
+ class ValidationErrors < SlackError; end
283
+ class ViewTooLarge < SlackError; end
284
+
285
+ ERROR_CLASSES = {
286
+ 'account_inactive' => AccountInactive,
287
+ 'already_archived' => AlreadyArchived,
288
+ 'already_in_channel' => AlreadyInChannel,
289
+ 'already_in_team' => AlreadyInTeam,
290
+ 'already_in_team_invited_user' => AlreadyInTeamInvitedUser,
291
+ 'already_invited' => AlreadyInvited,
292
+ 'already_pinned' => AlreadyPinned,
293
+ 'already_processed' => AlreadyProcessed,
294
+ 'already_reacted' => AlreadyReacted,
295
+ 'already_starred' => AlreadyStarred,
296
+ 'app_management_app_not_installed_on_org' => AppManagementAppNotInstalledOnOrg,
297
+ 'app_missing_action_url' => AppMissingActionUrl,
298
+ 'as_user_not_supported' => AsUserNotSupported,
299
+ 'bad_client_secret' => BadClientSecret,
300
+ 'bad_image' => BadImage,
301
+ 'bad_redirect_uri' => BadRedirectUri,
302
+ 'bad_timestamp' => BadTimestamp,
303
+ 'bad_title' => BadTitle,
304
+ 'bad_token' => BadToken,
305
+ 'bad_url' => BadUrl,
306
+ 'bot_not_found' => BotNotFound,
307
+ 'cannot_add_bot' => CannotAddBot,
308
+ 'cannot_add_others' => CannotAddOthers,
309
+ 'cannot_add_others_recurring' => CannotAddOthersRecurring,
310
+ 'cannot_add_slackbot' => CannotAddSlackbot,
311
+ 'cannot_complete_others' => CannotCompleteOthers,
312
+ 'cannot_complete_recurring' => CannotCompleteRecurring,
313
+ 'cannot_create_dialog' => CannotCreateDialog,
314
+ 'cannot_find_channel' => CannotFindChannel,
315
+ 'cannot_find_message' => CannotFindMessage,
316
+ 'cannot_find_service' => CannotFindService,
317
+ 'cannot_modify_primary_owner' => CannotModifyPrimaryOwner,
318
+ 'cannot_parse' => CannotParse,
319
+ 'cannot_parse_attachment' => CannotParseAttachment,
320
+ 'cannot_prompt' => CannotPrompt,
321
+ 'cannot_reset_primary_owner' => CannotResetPrimaryOwner,
322
+ 'cannot_unfurl_url' => CannotUnfurlUrl,
323
+ 'cannot_update_admin_user' => CannotUpdateAdminUser,
324
+ 'cant_archive_general' => CantArchiveGeneral,
325
+ 'cant_delete' => CantDelete,
326
+ 'cant_delete_file' => CantDeleteFile,
327
+ 'cant_delete_message' => CantDeleteMessage,
328
+ 'cant_invite' => CantInvite,
329
+ 'cant_invite_self' => CantInviteSelf,
330
+ 'cant_kick_from_general' => CantKickFromGeneral,
331
+ 'cant_kick_self' => CantKickSelf,
332
+ 'cant_leave_general' => CantLeaveGeneral,
333
+ 'cant_update_message' => CantUpdateMessage,
334
+ 'channel_cannot_be_unshared' => ChannelCannotBeUnshared,
335
+ 'channel_not_found' => ChannelNotFound,
336
+ 'channel_not_shared_with_team' => ChannelNotSharedWithTeam,
337
+ 'channel_type_not_supported' => ChannelTypeNotSupported,
338
+ 'client_id_token_mismatch' => ClientIdTokenMismatch,
339
+ 'code_already_used' => CodeAlreadyUsed,
340
+ 'compliance_exports_prevent_deletion' => ComplianceExportsPreventDeletion,
341
+ 'could_not_create_workspace' => CouldNotCreateWorkspace,
342
+ 'default_org_wide_channel' => DefaultOrgWideChannel,
343
+ 'discoverability_setting_invalid' => DiscoverabilitySettingInvalid,
344
+ 'domain_taken' => DomainTaken,
345
+ 'duplicate_channel_not_found' => DuplicateChannelNotFound,
346
+ 'duplicate_external_id' => DuplicateExternalId,
347
+ 'duplicate_message_not_found' => DuplicateMessageNotFound,
348
+ 'edit_window_closed' => EditWindowClosed,
349
+ 'ekm_access_denied' => EkmAccessDenied,
350
+ 'emoji_not_found' => EmojiNotFound,
351
+ 'enterprise_is_restricted' => EnterpriseIsRestricted,
352
+ 'error_bad_format' => ErrorBadFormat,
353
+ 'error_bad_name_i18n' => ErrorBadNameI18n,
354
+ 'error_bad_upload' => ErrorBadUpload,
355
+ 'error_bad_wide' => ErrorBadWide,
356
+ 'error_invalid_alias' => ErrorInvalidAlias,
357
+ 'error_invalid_emoji_to_rename' => ErrorInvalidEmojiToRename,
358
+ 'error_missing_name' => ErrorMissingName,
359
+ 'error_name_taken' => ErrorNameTaken,
360
+ 'error_name_taken_i18n' => ErrorNameTakenI18n,
361
+ 'error_no_image' => ErrorNoImage,
362
+ 'error_too_big' => ErrorTooBig,
363
+ 'external_channel_migrating' => ExternalChannelMigrating,
364
+ 'failed_looking_up_user' => FailedLookingUpUser,
365
+ 'failed_sending_dialog' => FailedSendingDialog,
366
+ 'failed_to_add_emoji' => FailedToAddEmoji,
367
+ 'failed_to_alias_emoji' => FailedToAliasEmoji,
368
+ 'failed_to_fetch_active_team' => FailedToFetchActiveTeam,
369
+ 'failed_to_fetch_info' => FailedToFetchInfo,
370
+ 'failed_to_remove_user_from_workspace' => FailedToRemoveUserFromWorkspace,
371
+ 'failed_to_rename_emoji' => FailedToRenameEmoji,
372
+ 'failed_to_send_invite' => FailedToSendInvite,
373
+ 'failed_to_set_default_channels' => FailedToSetDefaultChannels,
374
+ 'failed_to_set_description' => FailedToSetDescription,
375
+ 'failed_to_set_discoverability' => FailedToSetDiscoverability,
376
+ 'failed_to_set_icon' => FailedToSetIcon,
377
+ 'failed_to_set_name' => FailedToSetName,
378
+ 'failed_to_set_user_to_admin' => FailedToSetUserToAdmin,
379
+ 'failed_to_set_user_to_owner' => FailedToSetUserToOwner,
380
+ 'failed_to_set_user_to_regular' => FailedToSetUserToRegular,
381
+ 'failed_to_validate_caller' => FailedToValidateCaller,
382
+ 'failed_to_validate_channels' => FailedToValidateChannels,
383
+ 'failed_to_validate_custom_message' => FailedToValidateCustomMessage,
384
+ 'failed_to_validate_expiration' => FailedToValidateExpiration,
385
+ 'failed_to_validate_team' => FailedToValidateTeam,
386
+ 'failure_removing_emoji' => FailureRemovingEmoji,
387
+ 'fatal_error' => FatalError,
388
+ 'feature_not_enabled' => FeatureNotEnabled,
389
+ 'fetch_members_failed' => FetchMembersFailed,
390
+ 'file_comment_not_found' => FileCommentNotFound,
391
+ 'file_deleted' => FileDeleted,
392
+ 'file_not_found' => FileNotFound,
393
+ 'file_not_shared' => FileNotShared,
394
+ 'file_under_review' => FileUnderReview,
395
+ 'group_contains_others' => GroupContainsOthers,
396
+ 'hash_conflict' => HashConflict,
397
+ 'invalid_app_id' => InvalidAppId,
398
+ 'invalid_arg_name' => InvalidArgName,
399
+ 'invalid_arguments' => InvalidArguments,
400
+ 'invalid_auth' => InvalidAuth,
401
+ 'invalid_channel' => InvalidChannel,
402
+ 'invalid_channel_id' => InvalidChannelId,
403
+ 'invalid_charset' => InvalidCharset,
404
+ 'invalid_client_id' => InvalidClientId,
405
+ 'invalid_code' => InvalidCode,
406
+ 'invalid_cursor' => InvalidCursor,
407
+ 'invalid_email' => InvalidEmail,
408
+ 'invalid_external_id' => InvalidExternalId,
409
+ 'invalid_form_data' => InvalidFormData,
410
+ 'invalid_grant_type' => InvalidGrantType,
411
+ 'invalid_limit' => InvalidLimit,
412
+ 'invalid_name' => InvalidName,
413
+ 'invalid_name_maxlength' => InvalidNameMaxlength,
414
+ 'invalid_name_punctuation' => InvalidNamePunctuation,
415
+ 'invalid_name_required' => InvalidNameRequired,
416
+ 'invalid_name_specials' => InvalidNameSpecials,
417
+ 'invalid_permissions' => InvalidPermissions,
418
+ 'invalid_post_type' => InvalidPostType,
419
+ 'invalid_presence' => InvalidPresence,
420
+ 'invalid_profile' => InvalidProfile,
421
+ 'invalid_request' => InvalidRequest,
422
+ 'invalid_request_id' => InvalidRequestId,
423
+ 'invalid_role_for_user' => InvalidRoleForUser,
424
+ 'invalid_scheduled_message_id' => InvalidScheduledMessageId,
425
+ 'invalid_scope' => InvalidScope,
426
+ 'invalid_target_team' => InvalidTargetTeam,
427
+ 'invalid_time' => InvalidTime,
428
+ 'invalid_timestamp' => InvalidTimestamp,
429
+ 'invalid_trigger' => InvalidTrigger,
430
+ 'invalid_ts_latest' => InvalidTsLatest,
431
+ 'invalid_ts_oldest' => InvalidTsOldest,
432
+ 'invalid_types' => InvalidTypes,
433
+ 'invalid_url' => InvalidUrl,
434
+ 'invalid_user' => InvalidUser,
435
+ 'invalid_users' => InvalidUsers,
436
+ 'invited_user_not_created' => InvitedUserNotCreated,
437
+ 'invited_user_not_reactivated' => InvitedUserNotReactivated,
438
+ 'invitee_cant_see_channel' => InviteeCantSeeChannel,
439
+ 'is_archived' => IsArchived,
440
+ 'is_bot' => IsBot,
441
+ 'is_inactive' => IsInactive,
442
+ 'last_member' => LastMember,
443
+ 'limit_required' => LimitRequired,
444
+ 'message_not_found' => MessageNotFound,
445
+ 'method_not_supported_for_channel_type' => MethodNotSupportedForChannelType,
446
+ 'migration_in_progress' => MigrationInProgress,
447
+ 'missing_channel' => MissingChannel,
448
+ 'missing_dialog' => MissingDialog,
449
+ 'missing_duration' => MissingDuration,
450
+ 'missing_post_type' => MissingPostType,
451
+ 'missing_scope' => MissingScope,
452
+ 'missing_trigger' => MissingTrigger,
453
+ 'missing_ts' => MissingTs,
454
+ 'missing_unfurls' => MissingUnfurls,
455
+ 'mixed_scope' => MixedScope,
456
+ 'msg_too_long' => MsgTooLong,
457
+ 'must_provide_team_domain' => MustProvideTeamDomain,
458
+ 'must_provide_team_name' => MustProvideTeamName,
459
+ 'name_taken' => NameTaken,
460
+ 'name_taken_in_org' => NameTakenInOrg,
461
+ 'no_alias_selected' => NoAliasSelected,
462
+ 'no_bot_user_for_app' => NoBotUserForApp,
463
+ 'no_channel' => NoChannel,
464
+ 'no_image_uploaded' => NoImageUploaded,
465
+ 'no_item_specified' => NoItemSpecified,
466
+ 'no_permission' => NoPermission,
467
+ 'no_reaction' => NoReaction,
468
+ 'no_such_subteam' => NoSuchSubteam,
469
+ 'no_text' => NoText,
470
+ 'no_user' => NoUser,
471
+ 'no_user_provided' => NoUserProvided,
472
+ 'not_admin' => NotAdmin,
473
+ 'not_allowed' => NotAllowed,
474
+ 'not_allowed_token_type' => NotAllowedTokenType,
475
+ 'not_an_admin' => NotAnAdmin,
476
+ 'not_app_admin' => NotAppAdmin,
477
+ 'not_archived' => NotArchived,
478
+ 'not_authed' => NotAuthed,
479
+ 'not_authorized' => NotAuthorized,
480
+ 'not_bearer_token' => NotBearerToken,
481
+ 'not_enabled' => NotEnabled,
482
+ 'not_enough_users' => NotEnoughUsers,
483
+ 'not_enterprise_team' => NotEnterpriseTeam,
484
+ 'not_found' => NotFound,
485
+ 'not_in_channel' => NotInChannel,
486
+ 'not_in_dnd' => NotInDnd,
487
+ 'not_in_group' => NotInGroup,
488
+ 'not_pinnable' => NotPinnable,
489
+ 'not_pinned' => NotPinned,
490
+ 'not_reactable' => NotReactable,
491
+ 'not_starred' => NotStarred,
492
+ 'oauth_authorization_url_mismatch' => OauthAuthorizationUrlMismatch,
493
+ 'org_login_required' => OrgLoginRequired,
494
+ 'over_pagination_limit' => OverPaginationLimit,
495
+ 'pagination_not_available' => PaginationNotAvailable,
496
+ 'paid_only' => PaidOnly,
497
+ 'permission_denied' => PermissionDenied,
498
+ 'plan_upgrade_required' => PlanUpgradeRequired,
499
+ 'posting_to_general_channel_denied' => PostingToGeneralChannelDenied,
500
+ 'preview_feature_not_available' => PreviewFeatureNotAvailable,
501
+ 'profile_set_failed' => ProfileSetFailed,
502
+ 'public_video_not_allowed' => PublicVideoNotAllowed,
503
+ 'push_limit_reached' => PushLimitReached,
504
+ 'rate_limited' => RateLimited,
505
+ 'ratelimited' => Ratelimited,
506
+ 'request_already_resolved' => RequestAlreadyResolved,
507
+ 'request_id_or_app_id_is_required' => RequestIdOrAppIdIsRequired,
508
+ 'request_id_required_for_custom_integrations' => RequestIdRequiredForCustomIntegrations,
509
+ 'request_timeout' => RequestTimeout,
510
+ 'reserved_name' => ReservedName,
511
+ 'restricted_action' => RestrictedAction,
512
+ 'restricted_action_non_threadable_channel' => RestrictedActionNonThreadableChannel,
513
+ 'restricted_action_read_only_channel' => RestrictedActionReadOnlyChannel,
514
+ 'restricted_action_thread_only_channel' => RestrictedActionThreadOnlyChannel,
515
+ 'rtm_connect_required' => RtmConnectRequired,
516
+ 'sent_recently' => SentRecently,
517
+ 'snooze_end_failed' => SnoozeEndFailed,
518
+ 'snooze_failed' => SnoozeFailed,
519
+ 'snooze_not_active' => SnoozeNotActive,
520
+ 'team_added_to_org' => TeamAddedToOrg,
521
+ 'team_not_found' => TeamNotFound,
522
+ 'thread_not_found' => ThreadNotFound,
523
+ 'time_in_past' => TimeInPast,
524
+ 'time_too_far' => TimeTooFar,
525
+ 'token_revoked' => TokenRevoked,
526
+ 'too_large' => TooLarge,
527
+ 'too_long' => TooLong,
528
+ 'too_many_attachments' => TooManyAttachments,
529
+ 'too_many_convos_for_app_on_team' => TooManyConvosForAppOnTeam,
530
+ 'too_many_convos_for_team' => TooManyConvosForTeam,
531
+ 'too_many_emoji' => TooManyEmoji,
532
+ 'too_many_frames' => TooManyFrames,
533
+ 'too_many_ids' => TooManyIds,
534
+ 'too_many_ids_provided' => TooManyIdsProvided,
535
+ 'too_many_reactions' => TooManyReactions,
536
+ 'too_many_target_teams' => TooManyTargetTeams,
537
+ 'too_many_teams_provided' => TooManyTeamsProvided,
538
+ 'too_many_users' => TooManyUsers,
539
+ 'trigger_exchanged' => TriggerExchanged,
540
+ 'trigger_expired' => TriggerExpired,
541
+ 'unable_to_leave_last_team' => UnableToLeaveLastTeam,
542
+ 'unknown_method' => UnknownMethod,
543
+ 'unknown_type' => UnknownType,
544
+ 'unsupported_arguments' => UnsupportedArguments,
545
+ 'ura_max_channels' => UraMaxChannels,
546
+ 'user_already_deleted' => UserAlreadyDeleted,
547
+ 'user_already_team_member' => UserAlreadyTeamMember,
548
+ 'user_disabled' => UserDisabled,
549
+ 'user_does_not_own_channel' => UserDoesNotOwnChannel,
550
+ 'user_is_already_deleted' => UserIsAlreadyDeleted,
551
+ 'user_is_not_a_guest' => UserIsNotAGuest,
552
+ 'user_is_restricted' => UserIsRestricted,
553
+ 'user_is_ultra_restricted' => UserIsUltraRestricted,
554
+ 'user_not_found' => UserNotFound,
555
+ 'user_not_in_channel' => UserNotInChannel,
556
+ 'user_not_visible' => UserNotVisible,
557
+ 'user_session_reset_failed' => UserSessionResetFailed,
558
+ 'users_list_not_supplied' => UsersListNotSupplied,
559
+ 'users_not_found' => UsersNotFound,
560
+ 'validation_errors' => ValidationErrors,
561
+ 'view_too_large' => ViewTooLarge,
562
+ }.freeze
563
+ end
564
+ end
565
+ end
566
+ end