slack-ruby-client 0.14.5 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (231) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +11 -3
  4. data/.rubocop_todo.yml +61 -23
  5. data/.travis.yml +1 -5
  6. data/CHANGELOG.md +43 -4
  7. data/CONTRIBUTING.md +17 -6
  8. data/Dangerfile +1 -1
  9. data/Gemfile +1 -2
  10. data/LICENSE.md +1 -1
  11. data/README.md +86 -52
  12. data/UPGRADING.md +20 -2
  13. data/bin/commands.rb +23 -0
  14. data/bin/commands/admin_analytics.rb +16 -0
  15. data/bin/commands/admin_apps.rb +15 -2
  16. data/bin/commands/admin_apps_approved.rb +17 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_barriers.rb +47 -0
  19. data/bin/commands/admin_conversations.rb +159 -0
  20. data/bin/commands/admin_conversations_ekm.rb +17 -0
  21. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  22. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  23. data/bin/commands/admin_emoji.rb +54 -0
  24. data/bin/commands/admin_inviteRequests.rb +36 -0
  25. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  26. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  27. data/bin/commands/admin_teams.rb +27 -0
  28. data/bin/commands/admin_teams_admins.rb +16 -0
  29. data/bin/commands/admin_teams_owners.rb +16 -0
  30. data/bin/commands/admin_teams_settings.rb +64 -0
  31. data/bin/commands/admin_usergroups.rb +48 -0
  32. data/bin/commands/admin_users.rb +97 -0
  33. data/bin/commands/admin_users_session.rb +22 -0
  34. data/bin/commands/api.rb +0 -1
  35. data/bin/commands/apps_connections.rb +13 -0
  36. data/bin/commands/apps_event_authorizations.rb +16 -0
  37. data/bin/commands/auth_teams.rb +16 -0
  38. data/bin/commands/bots.rb +1 -0
  39. data/bin/commands/calls.rb +52 -0
  40. data/bin/commands/calls_participants.rb +25 -0
  41. data/bin/commands/channels.rb +1 -155
  42. data/bin/commands/chat.rb +14 -12
  43. data/bin/commands/chat_scheduledMessages.rb +1 -0
  44. data/bin/commands/conversations.rb +15 -4
  45. data/bin/commands/dnd.rb +3 -1
  46. data/bin/commands/files.rb +7 -5
  47. data/bin/commands/files_remote.rb +3 -3
  48. data/bin/commands/groups.rb +1 -162
  49. data/bin/commands/im.rb +1 -63
  50. data/bin/commands/migration.rb +1 -0
  51. data/bin/commands/mpim.rb +1 -61
  52. data/bin/commands/oauth.rb +1 -1
  53. data/bin/commands/pins.rb +0 -2
  54. data/bin/commands/reactions.rb +1 -0
  55. data/bin/commands/search.rb +4 -1
  56. data/bin/commands/team.rb +3 -0
  57. data/bin/commands/usergroups.rb +6 -1
  58. data/bin/commands/usergroups_users.rb +2 -0
  59. data/bin/commands/users.rb +5 -3
  60. data/bin/commands/users_profile.rb +5 -5
  61. data/bin/commands/views.rb +1 -1
  62. data/bin/commands/workflows.rb +38 -0
  63. data/lib/slack-ruby-client.rb +5 -4
  64. data/lib/slack/events/request.rb +7 -3
  65. data/lib/slack/messages/message.rb +0 -4
  66. data/lib/slack/real_time/client.rb +2 -1
  67. data/lib/slack/real_time/concurrency.rb +0 -2
  68. data/lib/slack/real_time/concurrency/async.rb +1 -3
  69. data/lib/slack/real_time/config.rb +5 -14
  70. data/lib/slack/real_time/models/base.rb +0 -4
  71. data/lib/slack/real_time/socket.rb +2 -2
  72. data/lib/slack/real_time/stores/base.rb +3 -1
  73. data/lib/slack/version.rb +1 -1
  74. data/lib/slack/web/api/endpoints.rb +47 -0
  75. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  76. data/lib/slack/web/api/endpoints/admin_apps.rb +22 -2
  77. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  78. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  79. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  80. data/lib/slack/web/api/endpoints/admin_conversations.rb +246 -0
  81. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  82. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  83. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  84. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  85. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  86. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  87. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  88. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  89. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  90. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  91. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  92. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  93. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  94. data/lib/slack/web/api/endpoints/admin_users_session.rb +38 -0
  95. data/lib/slack/web/api/endpoints/api.rb +0 -2
  96. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  97. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  98. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  99. data/lib/slack/web/api/endpoints/bots.rb +2 -0
  100. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  101. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  102. data/lib/slack/web/api/endpoints/channels.rb +1 -245
  103. data/lib/slack/web/api/endpoints/chat.rb +23 -19
  104. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -1
  105. data/lib/slack/web/api/endpoints/conversations.rb +37 -19
  106. data/lib/slack/web/api/endpoints/dnd.rb +4 -0
  107. data/lib/slack/web/api/endpoints/files.rb +8 -4
  108. data/lib/slack/web/api/endpoints/files_remote.rb +4 -4
  109. data/lib/slack/web/api/endpoints/groups.rb +0 -253
  110. data/lib/slack/web/api/endpoints/im.rb +0 -101
  111. data/lib/slack/web/api/endpoints/migration.rb +2 -0
  112. data/lib/slack/web/api/endpoints/mpim.rb +0 -96
  113. data/lib/slack/web/api/endpoints/oauth.rb +1 -4
  114. data/lib/slack/web/api/endpoints/pins.rb +3 -8
  115. data/lib/slack/web/api/endpoints/reactions.rb +5 -3
  116. data/lib/slack/web/api/endpoints/search.rb +6 -0
  117. data/lib/slack/web/api/endpoints/stars.rb +2 -2
  118. data/lib/slack/web/api/endpoints/team.rb +6 -0
  119. data/lib/slack/web/api/endpoints/usergroups.rb +10 -0
  120. data/lib/slack/web/api/endpoints/usergroups_users.rb +4 -0
  121. data/lib/slack/web/api/endpoints/users.rb +7 -5
  122. data/lib/slack/web/api/endpoints/users_profile.rb +3 -3
  123. data/lib/slack/web/api/endpoints/views.rb +1 -1
  124. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  125. data/lib/slack/web/api/errors.rb +848 -0
  126. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  127. data/lib/slack/web/api/errors/slack_error.rb +12 -0
  128. data/lib/slack/web/api/mixins.rb +1 -0
  129. data/lib/slack/web/api/mixins/channels.id.rb +1 -3
  130. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  131. data/lib/slack/web/api/mixins/groups.id.rb +1 -3
  132. data/lib/slack/web/api/mixins/ids.id.rb +3 -5
  133. data/lib/slack/web/api/mixins/users.id.rb +1 -3
  134. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +26 -24
  135. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  136. data/lib/slack/web/api/templates/errors.erb +20 -0
  137. data/lib/slack/web/api/templates/method.erb +4 -1
  138. data/lib/slack/web/api/templates/method_spec.erb +1 -1
  139. data/lib/slack/web/client.rb +1 -1
  140. data/lib/slack/web/config.rb +2 -0
  141. data/lib/slack/web/faraday/connection.rb +23 -20
  142. data/lib/slack/web/faraday/response/raise_error.rb +16 -2
  143. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  144. data/lib/slack/web/pagination/cursor.rb +2 -2
  145. data/lib/tasks/real_time.rake +1 -1
  146. data/lib/tasks/web.rake +21 -4
  147. data/slack-ruby-client.gemspec +5 -5
  148. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  149. data/spec/fixtures/slack/web/{groups_info.yml → conversations_info.yml} +4 -4
  150. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  151. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  152. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  153. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  154. data/spec/slack/events/request_spec.rb +13 -8
  155. data/spec/slack/real_time/client_spec.rb +18 -1
  156. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  157. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  158. data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
  159. data/spec/slack/real_time/rtm_start_spec.rb +1 -1
  160. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  161. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  162. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  163. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +5 -0
  164. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  165. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  166. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  167. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +93 -0
  168. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  169. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  170. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  171. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  172. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  173. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  174. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  175. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  176. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  177. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +8 -0
  178. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  179. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  180. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  181. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +2 -2
  182. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +3 -3
  183. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  184. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  185. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  186. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  187. data/spec/slack/web/api/endpoints/conversations_spec.rb +20 -12
  188. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  189. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  190. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  191. data/spec/slack/web/api/endpoints/files_spec.rb +4 -4
  192. data/spec/slack/web/api/endpoints/im_spec.rb +0 -31
  193. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -31
  194. data/spec/slack/web/api/endpoints/oauth_spec.rb +3 -14
  195. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -4
  196. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  197. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  198. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  199. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  200. data/spec/slack/web/api/errors/slack_error_spec.rb +22 -0
  201. data/spec/slack/web/api/mixins/channels_spec.rb +1 -1
  202. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  203. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  204. data/spec/slack/web/api/mixins/groups_spec.rb +1 -1
  205. data/spec/slack/web/api/mixins/users_spec.rb +1 -1
  206. data/spec/slack/web/client_spec.rb +121 -0
  207. data/spec/slack/web/faraday/response/raise_error_spec.rb +33 -9
  208. data/spec/support/vcr.rb +4 -0
  209. metadata +145 -55
  210. data/examples/hi_real_time/Gemfile +0 -6
  211. data/examples/hi_real_time/hi.gif +0 -0
  212. data/examples/hi_real_time/hi.rb +0 -41
  213. data/examples/hi_real_time_async_celluloid/Gemfile +0 -7
  214. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  215. data/examples/hi_real_time_async_celluloid/hi.rb +0 -39
  216. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -7
  217. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  218. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -39
  219. data/lib/slack/real_time/concurrency/celluloid.rb +0 -142
  220. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -85
  221. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  222. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  223. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  224. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  225. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -15
  226. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -116
  227. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -57
  228. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -13
  229. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -13
  230. data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
  231. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -17
@@ -0,0 +1,28 @@
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 AdminAnalytics
9
+ #
10
+ # Retrieve analytics data for a given date, presented as a compressed JSON file
11
+ #
12
+ # @option options [Object] :type
13
+ # The type of analytics to retrieve. The options are currently limited to member (for grid member analytics) and public_channel (for public channel analytics).
14
+ # @option options [Object] :date
15
+ # Date to retrieve the analytics data for, expressed as YYYY-MM-DD in UTC.
16
+ # @option options [Object] :metadata_only
17
+ # Retrieve metadata for the type of analytics indicated. Can be used only with type set to public_channel analytics. See detail below. Omit the date parameter when using this argument.
18
+ # @see https://api.slack.com/methods/admin.analytics.getFile
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.analytics/admin.analytics.getFile.json
20
+ def admin_analytics_getFile(options = {})
21
+ throw ArgumentError.new('Required arguments :type missing') if options[:type].nil?
22
+ post('admin.analytics.getFile', options)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -11,25 +11,45 @@ module Slack
11
11
  #
12
12
  # @option options [Object] :app_id
13
13
  # The id of the app to approve.
14
+ # @option options [Object] :enterprise_id
15
+ # The ID of the enterprise to approve the app on.
14
16
  # @option options [Object] :request_id
15
17
  # The id of the request to approve.
16
18
  # @option options [Object] :team_id
17
- # .
19
+ # The ID of the workspace to approve the app on.
18
20
  # @see https://api.slack.com/methods/admin.apps.approve
19
21
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
20
22
  def admin_apps_approve(options = {})
21
23
  post('admin.apps.approve', options)
22
24
  end
23
25
 
26
+ #
27
+ # Clear an app resolution
28
+ #
29
+ # @option options [Object] :app_id
30
+ # The id of the app whose resolution you want to clear/undo.
31
+ # @option options [Object] :enterprise_id
32
+ # The enterprise to clear the app resolution from.
33
+ # @option options [Object] :team_id
34
+ # The workspace to clear the app resolution from.
35
+ # @see https://api.slack.com/methods/admin.apps.clearResolution
36
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.clearResolution.json
37
+ def admin_apps_clearResolution(options = {})
38
+ throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
39
+ post('admin.apps.clearResolution', options)
40
+ end
41
+
24
42
  #
25
43
  # Restrict an app for installation on a workspace.
26
44
  #
27
45
  # @option options [Object] :app_id
28
46
  # The id of the app to restrict.
47
+ # @option options [Object] :enterprise_id
48
+ # The ID of the enterprise to approve the app on.
29
49
  # @option options [Object] :request_id
30
50
  # The id of the request to restrict.
31
51
  # @option options [Object] :team_id
32
- # .
52
+ # The ID of the workspace to approve the app on.
33
53
  # @see https://api.slack.com/methods/admin.apps.restrict
34
54
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
35
55
  def admin_apps_restrict(options = {})
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminAppsApproved
9
+ #
10
+ # List approved apps for an org or workspace.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :enterprise_id
15
+ # .
16
+ # @option options [Object] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @option options [Object] :team_id
19
+ # .
20
+ # @see https://api.slack.com/methods/admin.apps.approved.list
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.approved/admin.apps.approved.list.json
22
+ def admin_apps_approved_list(options = {})
23
+ if block_given?
24
+ Pagination::Cursor.new(self, :admin_apps_approved_list, options).each do |page|
25
+ yield page
26
+ end
27
+ else
28
+ post('admin.apps.approved.list', options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminAppsRestricted
9
+ #
10
+ # List restricted apps for an org or workspace.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :enterprise_id
15
+ # .
16
+ # @option options [Object] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @option options [Object] :team_id
19
+ # .
20
+ # @see https://api.slack.com/methods/admin.apps.restricted.list
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.restricted/admin.apps.restricted.list.json
22
+ def admin_apps_restricted_list(options = {})
23
+ if block_given?
24
+ Pagination::Cursor.new(self, :admin_apps_restricted_list, options).each do |page|
25
+ yield page
26
+ end
27
+ else
28
+ post('admin.apps.restricted.list', options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminBarriers
9
+ #
10
+ # Create an Information Barrier
11
+ #
12
+ # @option options [Object] :barriered_from_usergroup_ids
13
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
14
+ # @option options [Object] :primary_usergroup_id
15
+ # The id of the primary IDP Group.
16
+ # @option options [Object] :restricted_subjects
17
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
18
+ # @see https://api.slack.com/methods/admin.barriers.create
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.create.json
20
+ def admin_barriers_create(options = {})
21
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
22
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
23
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
24
+ post('admin.barriers.create', options)
25
+ end
26
+
27
+ #
28
+ # Delete an existing Information Barrier
29
+ #
30
+ # @option options [Object] :barrier_id
31
+ # The ID of the barrier you're trying to delete.
32
+ # @see https://api.slack.com/methods/admin.barriers.delete
33
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.delete.json
34
+ def admin_barriers_delete(options = {})
35
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
36
+ post('admin.barriers.delete', options)
37
+ end
38
+
39
+ #
40
+ # Get all Information Barriers for your organization
41
+ #
42
+ # @option options [Object] :cursor
43
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
44
+ # @option options [Object] :limit
45
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
46
+ # @see https://api.slack.com/methods/admin.barriers.list
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.list.json
48
+ def admin_barriers_list(options = {})
49
+ if block_given?
50
+ Pagination::Cursor.new(self, :admin_barriers_list, options).each do |page|
51
+ yield page
52
+ end
53
+ else
54
+ post('admin.barriers.list', options)
55
+ end
56
+ end
57
+
58
+ #
59
+ # Update an existing Information Barrier
60
+ #
61
+ # @option options [Object] :barrier_id
62
+ # The ID of the barrier you're trying to modify.
63
+ # @option options [Object] :barriered_from_usergroup_ids
64
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
65
+ # @option options [Object] :primary_usergroup_id
66
+ # The id of the primary IDP Group.
67
+ # @option options [Object] :restricted_subjects
68
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
69
+ # @see https://api.slack.com/methods/admin.barriers.update
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.update.json
71
+ def admin_barriers_update(options = {})
72
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
73
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
74
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
75
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
76
+ post('admin.barriers.update', options)
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,246 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminConversations
9
+ #
10
+ # Archive a public or private channel.
11
+ #
12
+ # @option options [Object] :channel_id
13
+ # The channel to archive.
14
+ # @see https://api.slack.com/methods/admin.conversations.archive
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.archive.json
16
+ def admin_conversations_archive(options = {})
17
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
18
+ post('admin.conversations.archive', options)
19
+ end
20
+
21
+ #
22
+ # Convert a public channel to a private channel.
23
+ #
24
+ # @option options [Object] :channel_id
25
+ # The channel to convert to private.
26
+ # @see https://api.slack.com/methods/admin.conversations.convertToPrivate
27
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.convertToPrivate.json
28
+ def admin_conversations_convertToPrivate(options = {})
29
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
30
+ post('admin.conversations.convertToPrivate', options)
31
+ end
32
+
33
+ #
34
+ # Create a public or private channel-based conversation.
35
+ #
36
+ # @option options [Object] :is_private
37
+ # When true, creates a private channel instead of a public channel.
38
+ # @option options [Object] :name
39
+ # Name of the public or private channel to create.
40
+ # @option options [Object] :description
41
+ # Description of the public or private channel to create.
42
+ # @option options [Object] :org_wide
43
+ # When true, the channel will be available org-wide. Note: if the channel is not org_wide=true, you must specify a team_id for this channel.
44
+ # @option options [Object] :team_id
45
+ # The workspace to create the channel in. Note: this argument is required unless you set org_wide=true.
46
+ # @see https://api.slack.com/methods/admin.conversations.create
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.create.json
48
+ def admin_conversations_create(options = {})
49
+ throw ArgumentError.new('Required arguments :is_private missing') if options[:is_private].nil?
50
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
51
+ post('admin.conversations.create', options)
52
+ end
53
+
54
+ #
55
+ # Delete a public or private channel.
56
+ #
57
+ # @option options [Object] :channel_id
58
+ # The channel to delete.
59
+ # @see https://api.slack.com/methods/admin.conversations.delete
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.delete.json
61
+ def admin_conversations_delete(options = {})
62
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
63
+ post('admin.conversations.delete', options)
64
+ end
65
+
66
+ #
67
+ # Get conversation preferences for a public or private channel.
68
+ #
69
+ # @option options [Object] :channel_id
70
+ # The channel to get preferences for.
71
+ # @see https://api.slack.com/methods/admin.conversations.getConversationPrefs
72
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getConversationPrefs.json
73
+ def admin_conversations_getConversationPrefs(options = {})
74
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
75
+ post('admin.conversations.getConversationPrefs', options)
76
+ end
77
+
78
+ #
79
+ # This API endpoint can be used by any admin to get a channel's retention policy.
80
+ #
81
+ # @option options [Object] :channel_id
82
+ # The channel to get the retention policy for.
83
+ # @see https://api.slack.com/methods/admin.conversations.getCustomRetention
84
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getCustomRetention.json
85
+ def admin_conversations_getCustomRetention(options = {})
86
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
87
+ post('admin.conversations.getCustomRetention', options)
88
+ end
89
+
90
+ #
91
+ # Get all the workspaces a given public or private channel is connected to within this Enterprise org.
92
+ #
93
+ # @option options [Object] :channel_id
94
+ # The channel to determine connected workspaces within the organization for.
95
+ # @option options [Object] :cursor
96
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
97
+ # @option options [Object] :limit
98
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
99
+ # @see https://api.slack.com/methods/admin.conversations.getTeams
100
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.getTeams.json
101
+ def admin_conversations_getTeams(options = {})
102
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
103
+ if block_given?
104
+ Pagination::Cursor.new(self, :admin_conversations_getTeams, options).each do |page|
105
+ yield page
106
+ end
107
+ else
108
+ post('admin.conversations.getTeams', options)
109
+ end
110
+ end
111
+
112
+ #
113
+ # Invite a user to a public or private channel.
114
+ #
115
+ # @option options [Object] :channel_id
116
+ # The channel that the users will be invited to.
117
+ # @option options [Object] :user_ids
118
+ # The users to invite.
119
+ # @see https://api.slack.com/methods/admin.conversations.invite
120
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.invite.json
121
+ def admin_conversations_invite(options = {})
122
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
123
+ throw ArgumentError.new('Required arguments :user_ids missing') if options[:user_ids].nil?
124
+ post('admin.conversations.invite', options)
125
+ end
126
+
127
+ #
128
+ # This API endpoint can be used by any admin to remove a channel's retention policy.
129
+ #
130
+ # @option options [Object] :channel_id
131
+ # The channel to set the retention policy for.
132
+ # @see https://api.slack.com/methods/admin.conversations.removeCustomRetention
133
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.removeCustomRetention.json
134
+ def admin_conversations_removeCustomRetention(options = {})
135
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
136
+ post('admin.conversations.removeCustomRetention', options)
137
+ end
138
+
139
+ #
140
+ # Rename a public or private channel.
141
+ #
142
+ # @option options [Object] :channel_id
143
+ # The channel to rename.
144
+ # @option options [Object] :name
145
+ # .
146
+ # @see https://api.slack.com/methods/admin.conversations.rename
147
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.rename.json
148
+ def admin_conversations_rename(options = {})
149
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
150
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
151
+ post('admin.conversations.rename', options)
152
+ end
153
+
154
+ #
155
+ # Search for public or private channels in an Enterprise organization.
156
+ #
157
+ # @option options [Object] :cursor
158
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
159
+ # @option options [Object] :limit
160
+ # Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10.
161
+ # @option options [Object] :query
162
+ # Name of the the channel to query by.
163
+ # @option options [Object] :search_channel_types
164
+ # The type of channel to include or exclude in the search. For example private will search private channels, while private_exclude will exclude them. For a full list of types, check the Types section.
165
+ # @option options [Object] :sort
166
+ # Possible values are relevant (search ranking based on what we think is closest), name (alphabetical), member_count (number of users in the channel), and created (date channel was created). You can optionally pair this with the sort_dir arg to change how it is sorted.
167
+ # @option options [Object] :sort_dir
168
+ # Sort direction. Possible values are asc for ascending order like (1, 2, 3) or (a, b, c), and desc for descending order like (3, 2, 1) or (c, b, a).
169
+ # @option options [Object] :team_ids
170
+ # Comma separated string of team IDs, signifying the workspaces to search through.
171
+ # @see https://api.slack.com/methods/admin.conversations.search
172
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.search.json
173
+ def admin_conversations_search(options = {})
174
+ if block_given?
175
+ Pagination::Cursor.new(self, :admin_conversations_search, options).each do |page|
176
+ yield page
177
+ end
178
+ else
179
+ post('admin.conversations.search', options)
180
+ end
181
+ end
182
+
183
+ #
184
+ # Set the posting permissions for a public or private channel.
185
+ #
186
+ # @option options [Object] :channel_id
187
+ # The channel to set the prefs for.
188
+ # @option options [Object] :prefs
189
+ # The prefs for this channel in a stringified JSON format.
190
+ # @see https://api.slack.com/methods/admin.conversations.setConversationPrefs
191
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setConversationPrefs.json
192
+ def admin_conversations_setConversationPrefs(options = {})
193
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
194
+ throw ArgumentError.new('Required arguments :prefs missing') if options[:prefs].nil?
195
+ post('admin.conversations.setConversationPrefs', options)
196
+ end
197
+
198
+ #
199
+ # This API endpoint can be used by any admin to set a channel's retention policy.
200
+ #
201
+ # @option options [Object] :channel_id
202
+ # The channel to set the retention policy for.
203
+ # @option options [Object] :duration_days
204
+ # The message retention duration in days to set for this channel.
205
+ # @see https://api.slack.com/methods/admin.conversations.setCustomRetention
206
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setCustomRetention.json
207
+ def admin_conversations_setCustomRetention(options = {})
208
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
209
+ throw ArgumentError.new('Required arguments :duration_days missing') if options[:duration_days].nil?
210
+ post('admin.conversations.setCustomRetention', options)
211
+ end
212
+
213
+ #
214
+ # Set the workspaces in an Enterprise grid org that connect to a public or private channel.
215
+ #
216
+ # @option options [Object] :channel_id
217
+ # The encoded channel_id to add or remove to workspaces.
218
+ # @option options [Object] :org_channel
219
+ # True if channel has to be converted to an org channel.
220
+ # @option options [Object] :target_team_ids
221
+ # A comma-separated list of workspaces to which the channel should be shared. Not required if the channel is being shared org-wide.
222
+ # @option options [Object] :team_id
223
+ # The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel.
224
+ # @see https://api.slack.com/methods/admin.conversations.setTeams
225
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.setTeams.json
226
+ def admin_conversations_setTeams(options = {})
227
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
228
+ post('admin.conversations.setTeams', options)
229
+ end
230
+
231
+ #
232
+ # Unarchive a public or private channel.
233
+ #
234
+ # @option options [Object] :channel_id
235
+ # The channel to unarchive.
236
+ # @see https://api.slack.com/methods/admin.conversations.unarchive
237
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.conversations/admin.conversations.unarchive.json
238
+ def admin_conversations_unarchive(options = {})
239
+ throw ArgumentError.new('Required arguments :channel_id missing') if options[:channel_id].nil?
240
+ post('admin.conversations.unarchive', options)
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
246
+ end