slack-ruby-client 0.15.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -1
  3. data/.rubocop_todo.yml +75 -43
  4. data/.travis.yml +2 -4
  5. data/CHANGELOG.md +32 -0
  6. data/CONTRIBUTING.md +6 -13
  7. data/LICENSE.md +1 -1
  8. data/README.md +19 -36
  9. data/RELEASING.md +1 -1
  10. data/UPGRADING.md +56 -2
  11. data/bin/commands/admin_analytics.rb +16 -0
  12. data/bin/commands/admin_apps.rb +26 -2
  13. data/bin/commands/admin_apps_requests.rb +1 -0
  14. data/bin/commands/admin_auth_policy.rb +39 -0
  15. data/bin/commands/admin_barriers.rb +47 -0
  16. data/bin/commands/admin_conversations.rb +154 -2
  17. data/bin/commands/admin_conversations_ekm.rb +17 -0
  18. data/bin/commands/admin_conversations_restrictAccess.rb +3 -3
  19. data/bin/commands/admin_conversations_whitelist.rb +1 -1
  20. data/bin/commands/admin_emoji.rb +1 -1
  21. data/bin/commands/admin_teams.rb +1 -1
  22. data/bin/commands/admin_usergroups.rb +2 -2
  23. data/bin/commands/admin_users.rb +3 -2
  24. data/bin/commands/admin_users_session.rb +62 -0
  25. data/bin/commands/api.rb +0 -1
  26. data/bin/commands/apps_connections.rb +13 -0
  27. data/bin/commands/apps_event_authorizations.rb +16 -0
  28. data/bin/commands/apps_manifest.rb +51 -0
  29. data/bin/commands/auth_teams.rb +16 -0
  30. data/bin/commands/bots.rb +1 -0
  31. data/bin/commands/channels.rb +1 -155
  32. data/bin/commands/chat.rb +12 -7
  33. data/bin/commands/chat_scheduledMessages.rb +1 -0
  34. data/bin/commands/conversations.rb +71 -2
  35. data/bin/commands/dnd.rb +2 -0
  36. data/bin/commands/files.rb +6 -4
  37. data/bin/commands/files_remote.rb +2 -2
  38. data/bin/commands/groups.rb +1 -162
  39. data/bin/commands/im.rb +1 -63
  40. data/bin/commands/migration.rb +1 -0
  41. data/bin/commands/mpim.rb +1 -61
  42. data/bin/commands/oauth.rb +0 -13
  43. data/bin/commands/oauth_v2.rb +13 -1
  44. data/bin/commands/openid_connect.rb +27 -0
  45. data/bin/commands/pins.rb +2 -4
  46. data/bin/commands/reactions.rb +1 -0
  47. data/bin/commands/reminders.rb +6 -0
  48. data/bin/commands/rtm.rb +2 -2
  49. data/bin/commands/search.rb +4 -0
  50. data/bin/commands/stars.rb +7 -6
  51. data/bin/commands/team.rb +3 -0
  52. data/bin/commands/team_billing.rb +13 -0
  53. data/bin/commands/team_preferences.rb +13 -0
  54. data/bin/commands/tooling_tokens.rb +14 -0
  55. data/bin/commands/usergroups.rb +5 -0
  56. data/bin/commands/usergroups_users.rb +2 -0
  57. data/bin/commands/users.rb +4 -2
  58. data/bin/commands/users_profile.rb +5 -5
  59. data/bin/commands/views.rb +2 -2
  60. data/bin/commands/workflows.rb +38 -0
  61. data/bin/commands.rb +13 -9
  62. data/lib/slack/config.rb +1 -2
  63. data/lib/slack/events/request.rb +10 -4
  64. data/lib/slack/real_time/client.rb +6 -6
  65. data/lib/slack/real_time/concurrency/async.rb +6 -8
  66. data/lib/slack/real_time/concurrency.rb +0 -2
  67. data/lib/slack/real_time/config.rb +5 -14
  68. data/lib/slack/real_time/socket.rb +1 -2
  69. data/lib/slack/real_time/stores/base.rb +1 -6
  70. data/lib/slack/real_time/stores/starter.rb +6 -3
  71. data/lib/slack/real_time/stores/store.rb +5 -0
  72. data/lib/slack/version.rb +1 -1
  73. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  74. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -6
  75. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +2 -2
  76. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +4 -2
  77. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +2 -2
  78. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  79. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  80. data/lib/slack/web/api/endpoints/admin_conversations.rb +233 -3
  81. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  82. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +3 -3
  83. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +3 -3
  84. data/lib/slack/web/api/endpoints/admin_emoji.rb +10 -10
  85. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +7 -7
  86. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +3 -3
  87. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +2 -2
  88. data/lib/slack/web/api/endpoints/admin_teams.rb +7 -7
  89. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +2 -2
  90. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +2 -2
  91. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +5 -5
  92. data/lib/slack/web/api/endpoints/admin_usergroups.rb +11 -11
  93. data/lib/slack/web/api/endpoints/admin_users.rb +23 -23
  94. data/lib/slack/web/api/endpoints/admin_users_session.rb +97 -3
  95. data/lib/slack/web/api/endpoints/api.rb +1 -3
  96. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  97. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  98. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  99. data/lib/slack/web/api/endpoints/apps_manifest.rb +75 -0
  100. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  101. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  102. data/lib/slack/web/api/endpoints/bots.rb +3 -1
  103. data/lib/slack/web/api/endpoints/calls.rb +15 -15
  104. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  105. data/lib/slack/web/api/endpoints/channels.rb +0 -259
  106. data/lib/slack/web/api/endpoints/chat.rb +65 -55
  107. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +4 -2
  108. data/lib/slack/web/api/endpoints/conversations.rb +134 -24
  109. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  110. data/lib/slack/web/api/endpoints/dnd.rb +6 -3
  111. data/lib/slack/web/api/endpoints/files.rb +19 -15
  112. data/lib/slack/web/api/endpoints/files_comments.rb +1 -1
  113. data/lib/slack/web/api/endpoints/files_remote.rb +22 -22
  114. data/lib/slack/web/api/endpoints/groups.rb +0 -269
  115. data/lib/slack/web/api/endpoints/im.rb +0 -107
  116. data/lib/slack/web/api/endpoints/migration.rb +4 -2
  117. data/lib/slack/web/api/endpoints/mpim.rb +0 -102
  118. data/lib/slack/web/api/endpoints/oauth.rb +5 -27
  119. data/lib/slack/web/api/endpoints/oauth_v2.rb +24 -6
  120. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  121. data/lib/slack/web/api/endpoints/pins.rb +4 -9
  122. data/lib/slack/web/api/endpoints/reactions.rb +13 -11
  123. data/lib/slack/web/api/endpoints/reminders.rb +17 -5
  124. data/lib/slack/web/api/endpoints/rtm.rb +10 -10
  125. data/lib/slack/web/api/endpoints/search.rb +27 -13
  126. data/lib/slack/web/api/endpoints/stars.rb +11 -9
  127. data/lib/slack/web/api/endpoints/team.rb +11 -5
  128. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  129. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  130. data/lib/slack/web/api/endpoints/team_profile.rb +1 -1
  131. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  132. data/lib/slack/web/api/endpoints/usergroups.rb +26 -16
  133. data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -5
  134. data/lib/slack/web/api/endpoints/users.rb +20 -18
  135. data/lib/slack/web/api/endpoints/users_profile.rb +7 -7
  136. data/lib/slack/web/api/endpoints/views.rb +13 -13
  137. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  138. data/lib/slack/web/api/endpoints.rb +26 -20
  139. data/lib/slack/web/api/errors/server_error.rb +37 -0
  140. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -4
  141. data/lib/slack/web/api/errors.rb +394 -10
  142. data/lib/slack/web/api/mixins/conversations.id.rb +1 -3
  143. data/lib/slack/web/api/mixins/ids.id.rb +2 -2
  144. data/lib/slack/web/api/mixins/users.id.rb +1 -3
  145. data/lib/slack/web/api/mixins.rb +0 -2
  146. data/lib/slack/web/api/patches/chat.1.patch +6 -8
  147. data/lib/slack/web/api/templates/endpoints.erb +1 -2
  148. data/lib/slack/web/api/templates/method_spec.erb +1 -1
  149. data/lib/slack/web/config.rb +2 -0
  150. data/lib/slack/web/faraday/connection.rb +2 -2
  151. data/lib/slack/web/faraday/request.rb +2 -1
  152. data/lib/slack/web/faraday/response/raise_error.rb +12 -1
  153. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  154. data/lib/slack/web/pagination/cursor.rb +1 -5
  155. data/lib/slack-ruby-client.rb +2 -0
  156. data/lib/tasks/web.rake +11 -3
  157. data/slack-ruby-client.gemspec +2 -3
  158. data/spec/fixtures/slack/web/429_error.yml +50 -54
  159. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  160. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  161. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  162. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  163. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  164. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  165. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  166. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  167. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  168. data/spec/fixtures/slack/web/users_info.yml +153 -69
  169. data/spec/fixtures/slack/web/users_list.yml +102 -41
  170. data/spec/fixtures/slack/web/views_open_error.yml +49 -42
  171. data/spec/slack/events/request_spec.rb +13 -8
  172. data/spec/slack/real_time/client_spec.rb +35 -22
  173. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  174. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  175. data/spec/slack/real_time/event_handlers/bot_spec.rb +1 -1
  176. data/spec/slack/real_time/event_handlers/channel_spec.rb +1 -1
  177. data/spec/slack/real_time/event_handlers/im_spec.rb +5 -5
  178. data/spec/slack/real_time/event_handlers/user_spec.rb +2 -2
  179. data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
  180. data/spec/slack/real_time/rtm_start_spec.rb +1 -1
  181. data/spec/slack/slack_spec.rb +3 -1
  182. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  183. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +10 -0
  184. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  185. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  186. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → admin_conversations_ekm_spec.rb} +1 -1
  187. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +5 -5
  188. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +85 -0
  189. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +6 -6
  190. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +10 -10
  191. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +2 -2
  192. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +6 -6
  193. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +28 -0
  194. data/spec/slack/web/api/endpoints/admin_users_spec.rb +15 -23
  195. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → apps_connections_spec.rb} +1 -1
  196. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  197. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  198. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  199. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  200. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +4 -4
  201. data/spec/slack/web/api/endpoints/calls_spec.rb +2 -2
  202. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +4 -6
  203. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  204. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +2 -2
  205. data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -5
  206. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  207. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  208. data/spec/slack/web/api/endpoints/files_spec.rb +4 -4
  209. data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -11
  210. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +6 -3
  211. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  212. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -4
  213. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  214. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  215. data/spec/slack/web/api/endpoints/team_billing_spec.rb +8 -0
  216. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  217. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  218. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  219. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  220. data/spec/slack/web/api/error_spec.rb +5 -7
  221. data/spec/slack/web/api/errors/slack_error_spec.rb +21 -26
  222. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  223. data/spec/slack/web/api/mixins/conversations_spec.rb +11 -9
  224. data/spec/slack/web/api/mixins/users_spec.rb +1 -1
  225. data/spec/slack/web/api/pagination/cursor_spec.rb +1 -3
  226. data/spec/slack/web/client_spec.rb +112 -16
  227. data/spec/slack/web/faraday/request_spec.rb +80 -0
  228. data/spec/slack/web/faraday/response/raise_error_spec.rb +8 -6
  229. data/spec/spec_helper.rb +1 -1
  230. data/spec/support/real_time/connected_client.rb +1 -7
  231. data/spec/support/vcr.rb +36 -1
  232. metadata +58 -155
  233. data/examples/hi_real_time/Gemfile +0 -6
  234. data/examples/hi_real_time/hi.gif +0 -0
  235. data/examples/hi_real_time/hi.rb +0 -41
  236. data/examples/hi_real_time_async_celluloid/Gemfile +0 -7
  237. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  238. data/examples/hi_real_time_async_celluloid/hi.rb +0 -39
  239. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -7
  240. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  241. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -39
  242. data/lib/slack/real_time/concurrency/celluloid.rb +0 -142
  243. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -85
  244. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  245. data/lib/slack/web/api/mixins/channels.id.rb +0 -27
  246. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  247. data/lib/slack/web/api/mixins/groups.id.rb +0 -27
  248. data/spec/fixtures/slack/web/503_error.yml +0 -14
  249. data/spec/fixtures/slack/web/channels_info.yml +0 -139
  250. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  251. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -116
  252. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -57
  253. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +0 -32
  254. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -16
  255. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -19
  256. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -101
  257. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -13
  258. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -13
  259. data/spec/slack/web/api/endpoints/im_spec.rb +0 -39
  260. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -39
  261. data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
  262. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -17
  263. data/spec/slack/web/api/mixins/channels_spec.rb +0 -43
  264. data/spec/slack/web/api/mixins/groups_spec.rb +0 -43
@@ -6,6 +6,42 @@ module Slack
6
6
  module Api
7
7
  module Endpoints
8
8
  module Conversations
9
+ #
10
+ # Accepts an invitation to a Slack Connect channel.
11
+ #
12
+ # @option options [string] :channel_name
13
+ # Name of the channel. If the channel does not exist already in your workspace, this name is the one that the channel will take.
14
+ # @option options [Object] :channel_id
15
+ # ID of the channel that you'd like to accept. Must provide either invite_id or channel_id.
16
+ # @option options [boolean] :free_trial_accepted
17
+ # Whether you'd like to use your workspace's free trial to begin using Slack Connect.
18
+ # @option options [Object] :invite_id
19
+ # See the shared_channel_invite_received event payload for more details on how to retrieve the ID of the invitation.
20
+ # @option options [boolean] :is_private
21
+ # Whether the channel should be private.
22
+ # @option options [string] :team_id
23
+ # The ID of the workspace to accept the channel in. If an org-level token is used to call this method, the team_id argument is required.
24
+ # @see https://api.slack.com/methods/conversations.acceptSharedInvite
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.acceptSharedInvite.json
26
+ def conversations_acceptSharedInvite(options = {})
27
+ throw ArgumentError.new('Required arguments :channel_name missing') if options[:channel_name].nil?
28
+ post('conversations.acceptSharedInvite', options)
29
+ end
30
+
31
+ #
32
+ # Approves an invitation to a Slack Connect channel
33
+ #
34
+ # @option options [Object] :invite_id
35
+ # ID of the shared channel invite to approve.
36
+ # @option options [Object] :target_team
37
+ # The team or enterprise id of the other party involved in the invitation you are approving.
38
+ # @see https://api.slack.com/methods/conversations.approveSharedInvite
39
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.approveSharedInvite.json
40
+ def conversations_approveSharedInvite(options = {})
41
+ throw ArgumentError.new('Required arguments :invite_id missing') if options[:invite_id].nil?
42
+ post('conversations.approveSharedInvite', options)
43
+ end
44
+
9
45
  #
10
46
  # Archives a conversation.
11
47
  #
@@ -35,10 +71,12 @@ module Slack
35
71
  #
36
72
  # Initiates a public or private channel-based conversation
37
73
  #
38
- # @option options [Object] :name
74
+ # @option options [string] :name
39
75
  # Name of the public or private channel to create.
40
- # @option options [Object] :is_private
76
+ # @option options [boolean] :is_private
41
77
  # Create a private channel instead of a public one.
78
+ # @option options [string] :team_id
79
+ # encoded team id to create the channel in, required if org token is used.
42
80
  # @see https://api.slack.com/methods/conversations.create
43
81
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.create.json
44
82
  def conversations_create(options = {})
@@ -46,18 +84,32 @@ module Slack
46
84
  post('conversations.create', options)
47
85
  end
48
86
 
87
+ #
88
+ # Declines a Slack Connect channel invite.
89
+ #
90
+ # @option options [Object] :invite_id
91
+ # ID of the Slack Connect invite to decline. Subscribe to the shared_channel_invite_accepted event to receive IDs of Slack Connect channel invites that have been accepted and are awaiting approval.
92
+ # @option options [Object] :target_team
93
+ # The team or enterprise id of the other party involved in the invitation you are declining.
94
+ # @see https://api.slack.com/methods/conversations.declineSharedInvite
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.declineSharedInvite.json
96
+ def conversations_declineSharedInvite(options = {})
97
+ throw ArgumentError.new('Required arguments :invite_id missing') if options[:invite_id].nil?
98
+ post('conversations.declineSharedInvite', options)
99
+ end
100
+
49
101
  #
50
102
  # Fetches a conversation's history of messages and events.
51
103
  #
52
104
  # @option options [channel] :channel
53
105
  # Conversation ID to fetch history for.
54
- # @option options [Object] :cursor
106
+ # @option options [string] :cursor
55
107
  # 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.
56
- # @option options [Object] :inclusive
108
+ # @option options [boolean] :inclusive
57
109
  # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
58
110
  # @option options [timestamp] :latest
59
- # End of time range of messages to include in results.
60
- # @option options [Object] :limit
111
+ # End of time range of messages to include in results. Default is the current time.
112
+ # @option options [number] :limit
61
113
  # 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.
62
114
  # @option options [timestamp] :oldest
63
115
  # Start of time range of messages to include in results.
@@ -80,9 +132,9 @@ module Slack
80
132
  #
81
133
  # @option options [channel] :channel
82
134
  # Conversation ID to learn more about.
83
- # @option options [Object] :include_locale
135
+ # @option options [boolean] :include_locale
84
136
  # Set this to true to receive the locale for this conversation. Defaults to false.
85
- # @option options [Object] :include_num_members
137
+ # @option options [boolean] :include_num_members
86
138
  # Set to true to include the member count for the specified conversation. Defaults to false.
87
139
  # @see https://api.slack.com/methods/conversations.info
88
140
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.info.json
@@ -97,7 +149,7 @@ module Slack
97
149
  #
98
150
  # @option options [channel] :channel
99
151
  # The ID of the public or private channel to invite user(s) to.
100
- # @option options [Object] :users
152
+ # @option options [string] :users
101
153
  # A comma separated list of user IDs. Up to 1000 users may be listed.
102
154
  # @see https://api.slack.com/methods/conversations.invite
103
155
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.invite.json
@@ -108,6 +160,25 @@ module Slack
108
160
  post('conversations.invite', options)
109
161
  end
110
162
 
163
+ #
164
+ # Sends an invitation to a Slack Connect channel
165
+ #
166
+ # @option options [channel] :channel
167
+ # ID of the channel on your team that you'd like to share.
168
+ # @option options [array] :emails
169
+ # Optional email to receive this invite. Either emails or user_ids must be provided.
170
+ # @option options [boolean] :external_limited
171
+ # Optional boolean on whether invite is to a external limited member. Defaults to true.
172
+ # @option options [array] :user_ids
173
+ # Optional user_id to receive this invite. Either emails or user_ids must be provided.
174
+ # @see https://api.slack.com/methods/conversations.inviteShared
175
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.inviteShared.json
176
+ def conversations_inviteShared(options = {})
177
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
178
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
179
+ post('conversations.inviteShared', options)
180
+ end
181
+
111
182
  #
112
183
  # Joins an existing conversation.
113
184
  #
@@ -154,13 +225,15 @@ module Slack
154
225
  #
155
226
  # Lists all channels in a Slack team.
156
227
  #
157
- # @option options [Object] :cursor
228
+ # @option options [string] :cursor
158
229
  # 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.
159
- # @option options [Object] :exclude_archived
230
+ # @option options [boolean] :exclude_archived
160
231
  # Set to true to exclude archived channels from the list.
161
- # @option options [Object] :limit
232
+ # @option options [number] :limit
162
233
  # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000.
163
- # @option options [Object] :types
234
+ # @option options [string] :team_id
235
+ # encoded team id to list channels in, required if token belongs to org-wide app.
236
+ # @option options [string] :types
164
237
  # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
165
238
  # @see https://api.slack.com/methods/conversations.list
166
239
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.list.json
@@ -174,14 +247,49 @@ module Slack
174
247
  end
175
248
  end
176
249
 
250
+ #
251
+ # Lists shared channel invites that have been generated or received but have not been approved by all parties
252
+ #
253
+ # @option options [string] :cursor
254
+ # Set to next_cursor returned by previous call to list items in subsequent page.
255
+ # @option options [string] :team_id
256
+ # Encoded team id for the workspace to retrieve invites for, required if org token is used.
257
+ # @see https://api.slack.com/methods/conversations.listConnectInvites
258
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.listConnectInvites.json
259
+ def conversations_listConnectInvites(options = {})
260
+ if block_given?
261
+ Pagination::Cursor.new(self, :conversations_listConnectInvites, options).each do |page|
262
+ yield page
263
+ end
264
+ else
265
+ post('conversations.listConnectInvites', options)
266
+ end
267
+ end
268
+
269
+ #
270
+ # Sets the read cursor in a channel.
271
+ #
272
+ # @option options [channel] :channel
273
+ # Channel or conversation to set the read cursor for.
274
+ # @option options [timestamp] :ts
275
+ # Unique identifier of message you want marked as most recently seen in this conversation.
276
+ # @see https://api.slack.com/methods/conversations.mark
277
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.mark.json
278
+ def conversations_mark(options = {})
279
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
280
+ throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
281
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
282
+ post('conversations.mark', options)
283
+ end
284
+
177
285
  #
178
286
  # Retrieve members of a conversation.
179
287
  #
180
288
  # @option options [channel] :channel
181
289
  # ID of the conversation to retrieve members for.
182
- # @option options [Object] :cursor
290
+ # @option options [string] :cursor
183
291
  # 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.
184
- # @option options [Object] :limit
292
+ # @option options [number] :limit
185
293
  # 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.
186
294
  # @see https://api.slack.com/methods/conversations.members
187
295
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.members.json
@@ -202,9 +310,11 @@ module Slack
202
310
  #
203
311
  # @option options [channel] :channel
204
312
  # Resume a conversation by supplying an im or mpim's ID. Or provide the users field instead.
205
- # @option options [Object] :return_im
313
+ # @option options [boolean] :prevent_creation
314
+ # Do not create a direct message or multi-person direct message. This is used to see if there is an existing dm or mpdm.
315
+ # @option options [boolean] :return_im
206
316
  # Boolean, indicates you want the full IM channel definition in the response.
207
- # @option options [Object] :users
317
+ # @option options [string] :users
208
318
  # Comma separated lists of users. If only one user is included, this creates a 1:1 DM. The ordering of the users is preserved whenever a multi-person direct message is returned. Supply a channel when not supplying users.
209
319
  # @see https://api.slack.com/methods/conversations.open
210
320
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.open.json
@@ -218,7 +328,7 @@ module Slack
218
328
  #
219
329
  # @option options [channel] :channel
220
330
  # ID of conversation to rename.
221
- # @option options [Object] :name
331
+ # @option options [string] :name
222
332
  # New name for conversation.
223
333
  # @see https://api.slack.com/methods/conversations.rename
224
334
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.rename.json
@@ -235,14 +345,14 @@ module Slack
235
345
  # @option options [channel] :channel
236
346
  # Conversation ID to fetch thread from.
237
347
  # @option options [timestamp] :ts
238
- # Unique identifier of a thread's parent message.
239
- # @option options [Object] :cursor
348
+ # Unique identifier of either a thread's parent message or a message in the thread. ts must be the timestamp of an existing message with 0 or more replies. If there are no replies then just the single message referenced by ts will return - it is just an ordinary, unthreaded message.
349
+ # @option options [string] :cursor
240
350
  # 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.
241
- # @option options [Object] :inclusive
351
+ # @option options [boolean] :inclusive
242
352
  # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
243
353
  # @option options [timestamp] :latest
244
354
  # End of time range of messages to include in results.
245
- # @option options [Object] :limit
355
+ # @option options [number] :limit
246
356
  # 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.
247
357
  # @option options [timestamp] :oldest
248
358
  # Start of time range of messages to include in results.
@@ -266,7 +376,7 @@ module Slack
266
376
  #
267
377
  # @option options [channel] :channel
268
378
  # Conversation to set the purpose of.
269
- # @option options [Object] :purpose
379
+ # @option options [string] :purpose
270
380
  # A new, specialer purpose.
271
381
  # @see https://api.slack.com/methods/conversations.setPurpose
272
382
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setPurpose.json
@@ -282,7 +392,7 @@ module Slack
282
392
  #
283
393
  # @option options [channel] :channel
284
394
  # Conversation to set the topic of.
285
- # @option options [Object] :topic
395
+ # @option options [string] :topic
286
396
  # The new topic string. Does not support formatting or linkification.
287
397
  # @see https://api.slack.com/methods/conversations.setTopic
288
398
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setTopic.json
@@ -9,9 +9,9 @@ module Slack
9
9
  #
10
10
  # Open a dialog with a user
11
11
  #
12
- # @option options [Object] :dialog
12
+ # @option options [string] :dialog
13
13
  # The dialog definition. This must be a JSON-encoded string.
14
- # @option options [Object] :trigger_id
14
+ # @option options [string] :trigger_id
15
15
  # Exchange a trigger to post to the user.
16
16
  # @see https://api.slack.com/methods/dialog.open
17
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dialog/dialog.open.json
@@ -27,6 +27,8 @@ module Slack
27
27
  #
28
28
  # Retrieves a user's current Do Not Disturb status.
29
29
  #
30
+ # @option options [string] :team_id
31
+ # Encoded team id where passed in user param belongs, required if org token is used. If no user param is passed, then a team which has access to the app should be passed.
30
32
  # @option options [user] :user
31
33
  # User to fetch status for (defaults to current user).
32
34
  # @see https://api.slack.com/methods/dnd.info
@@ -39,20 +41,21 @@ module Slack
39
41
  #
40
42
  # Turns on Do Not Disturb mode for the current user, or changes its duration.
41
43
  #
42
- # @option options [Object] :num_minutes
44
+ # @option options [string] :num_minutes
43
45
  # Number of minutes, from now, to snooze until.
44
46
  # @see https://api.slack.com/methods/dnd.setSnooze
45
47
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.setSnooze.json
46
48
  def dnd_setSnooze(options = {})
47
- throw ArgumentError.new('Required arguments :num_minutes missing') if options[:num_minutes].nil?
48
49
  post('dnd.setSnooze', options)
49
50
  end
50
51
 
51
52
  #
52
53
  # Retrieves the Do Not Disturb status for up to 50 users on a team.
53
54
  #
54
- # @option options [Object] :users
55
+ # @option options [string] :users
55
56
  # Comma-separated list of users to fetch Do Not Disturb status for.
57
+ # @option options [string] :team_id
58
+ # Encoded team id where passed in users belong, required if org token is used.
56
59
  # @see https://api.slack.com/methods/dnd.teamInfo
57
60
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.teamInfo.json
58
61
  def dnd_teamInfo(options = {})
@@ -36,13 +36,13 @@ module Slack
36
36
  end
37
37
 
38
38
  #
39
- # Gets information about a team file.
39
+ # Gets information about a file.
40
40
  #
41
41
  # @option options [file] :file
42
42
  # Specify a file by providing its ID.
43
- # @option options [Object] :cursor
43
+ # @option options [string] :cursor
44
44
  # Parameter for pagination. File comments are paginated for a single file. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection of comments. See pagination for more details.
45
- # @option options [Object] :limit
45
+ # @option options [integer] :limit
46
46
  # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
47
47
  # @see https://api.slack.com/methods/files.info
48
48
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.info.json
@@ -58,17 +58,21 @@ module Slack
58
58
  end
59
59
 
60
60
  #
61
- # Lists & filters team files.
61
+ # List for a team, in a channel, or from a user with applied filters.
62
62
  #
63
63
  # @option options [channel] :channel
64
64
  # Filter files appearing in a specific channel, indicated by its ID.
65
- # @option options [Object] :show_files_hidden_by_limit
65
+ # @option options [string] :files
66
+ # .
67
+ # @option options [boolean] :show_files_hidden_by_limit
66
68
  # Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.
67
- # @option options [Object] :ts_from
69
+ # @option options [string] :team_id
70
+ # encoded team id to list files in, required if org token is used.
71
+ # @option options [string] :ts_from
68
72
  # Filter files created after this timestamp (inclusive).
69
- # @option options [Object] :ts_to
73
+ # @option options [string] :ts_to
70
74
  # Filter files created before this timestamp (inclusive).
71
- # @option options [Object] :types
75
+ # @option options [string] :types
72
76
  # Filter files by type (see below). You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
73
77
  # @option options [user] :user
74
78
  # Filter files created by a single user.
@@ -123,21 +127,21 @@ module Slack
123
127
  #
124
128
  # Uploads or creates a file.
125
129
  #
126
- # @option options [Object] :channels
130
+ # @option options [string] :channels
127
131
  # Comma-separated list of channel names or IDs where the file will be shared.
128
- # @option options [Object] :content
132
+ # @option options [string] :content
129
133
  # File contents via a POST variable. If omitting this parameter, you must provide a file.
130
134
  # @option options [file] :file
131
135
  # File contents via multipart/form-data. If omitting this parameter, you must submit content.
132
- # @option options [Object] :filename
136
+ # @option options [string] :filename
133
137
  # Filename of file.
134
- # @option options [Object] :filetype
138
+ # @option options [string] :filetype
135
139
  # A file type identifier.
136
- # @option options [Object] :initial_comment
140
+ # @option options [string] :initial_comment
137
141
  # The message text introducing the file in specified channels.
138
- # @option options [Object] :thread_ts
142
+ # @option options [string] :thread_ts
139
143
  # Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead.
140
- # @option options [Object] :title
144
+ # @option options [string] :title
141
145
  # Title of file.
142
146
  # @see https://api.slack.com/methods/files.upload
143
147
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.upload.json
@@ -11,7 +11,7 @@ module Slack
11
11
  #
12
12
  # @option options [file] :file
13
13
  # File to delete a comment from.
14
- # @option options [Object] :id
14
+ # @option options [string] :id
15
15
  # The comment to delete.
16
16
  # @see https://api.slack.com/methods/files.comments.delete
17
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.delete.json
@@ -9,17 +9,17 @@ module Slack
9
9
  #
10
10
  # Adds a file from a remote service
11
11
  #
12
- # @option options [Object] :external_id
12
+ # @option options [string] :external_id
13
13
  # Creator defined GUID for the file.
14
- # @option options [Object] :external_url
14
+ # @option options [string] :external_url
15
15
  # URL of the remote file.
16
- # @option options [Object] :title
16
+ # @option options [string] :title
17
17
  # Title of the file being shared.
18
- # @option options [Object] :filetype
18
+ # @option options [string] :filetype
19
19
  # type of file.
20
- # @option options [Object] :indexable_file_contents
20
+ # @option options [string] :indexable_file_contents
21
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
22
+ # @option options [string] :preview_image
23
23
  # Preview of the document via multipart/form-data.
24
24
  # @see https://api.slack.com/methods/files.remote.add
25
25
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.add.json
@@ -33,7 +33,7 @@ module Slack
33
33
  #
34
34
  # Retrieve information about a remote file added to Slack
35
35
  #
36
- # @option options [Object] :external_id
36
+ # @option options [string] :external_id
37
37
  # Creator defined GUID for the file.
38
38
  # @option options [file] :file
39
39
  # Specify a file by providing its ID.
@@ -48,13 +48,13 @@ module Slack
48
48
  #
49
49
  # @option options [channel] :channel
50
50
  # Filter files appearing in a specific channel, indicated by its ID.
51
- # @option options [Object] :cursor
51
+ # @option options [string] :cursor
52
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
53
+ # @option options [integer] :limit
54
54
  # The maximum number of items to return.
55
- # @option options [Object] :ts_from
55
+ # @option options [string] :ts_from
56
56
  # Filter files created after this timestamp (inclusive).
57
- # @option options [Object] :ts_to
57
+ # @option options [string] :ts_to
58
58
  # Filter files created before this timestamp (inclusive).
59
59
  # @see https://api.slack.com/methods/files.remote.list
60
60
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.list.json
@@ -72,7 +72,7 @@ module Slack
72
72
  #
73
73
  # Remove a remote file.
74
74
  #
75
- # @option options [Object] :external_id
75
+ # @option options [string] :external_id
76
76
  # Creator defined GUID for the file.
77
77
  # @option options [file] :file
78
78
  # Specify a file by providing its ID.
@@ -85,12 +85,12 @@ module Slack
85
85
  #
86
86
  # Share a remote file into a channel.
87
87
  #
88
- # @option options [Object] :channels
88
+ # @option options [string] :channels
89
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.
90
+ # @option options [string] :external_id
91
+ # The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack. Either this field or file or both are required.
92
92
  # @option options [file] :file
93
- # Specify a file by providing its ID.
93
+ # Specify a file registered with Slack by providing its ID. Either this field or external_id or both are required.
94
94
  # @see https://api.slack.com/methods/files.remote.share
95
95
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.share.json
96
96
  def files_remote_share(options = {})
@@ -101,19 +101,19 @@ module Slack
101
101
  #
102
102
  # Updates an existing remote file.
103
103
  #
104
- # @option options [Object] :external_id
104
+ # @option options [string] :external_id
105
105
  # Creator defined GUID for the file.
106
- # @option options [Object] :external_url
106
+ # @option options [string] :external_url
107
107
  # URL of the remote file.
108
108
  # @option options [file] :file
109
109
  # Specify a file by providing its ID.
110
- # @option options [Object] :filetype
110
+ # @option options [string] :filetype
111
111
  # type of file.
112
- # @option options [Object] :indexable_file_contents
112
+ # @option options [string] :indexable_file_contents
113
113
  # File containing contents that can be used to improve searchability for the remote file.
114
- # @option options [Object] :preview_image
114
+ # @option options [string] :preview_image
115
115
  # Preview of the document via multipart/form-data.
116
- # @option options [Object] :title
116
+ # @option options [string] :title
117
117
  # Title of the file being shared.
118
118
  # @see https://api.slack.com/methods/files.remote.update
119
119
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.update.json