slack-ruby-client 1.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +45 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +37 -0
  7. data/.gitignore +4 -3
  8. data/.rubocop.yml +6 -1
  9. data/.rubocop_todo.yml +88 -34
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +36 -0
  12. data/CONTRIBUTING.md +6 -5
  13. data/Gemfile +13 -1
  14. data/Gemfile.danger +6 -0
  15. data/README.md +78 -76
  16. data/RELEASING.md +2 -2
  17. data/SECURITY.md +9 -0
  18. data/UPGRADING.md +28 -0
  19. data/bin/commands/admin_analytics.rb +16 -10
  20. data/bin/commands/admin_apps.rb +48 -42
  21. data/bin/commands/admin_apps_approved.rb +17 -11
  22. data/bin/commands/admin_apps_requests.rb +28 -11
  23. data/bin/commands/admin_apps_restricted.rb +17 -11
  24. data/bin/commands/admin_audit_anomaly_allow.rb +29 -0
  25. data/bin/commands/admin_auth_policy.rb +37 -31
  26. data/bin/commands/admin_barriers.rb +44 -38
  27. data/bin/commands/admin_conversations.rb +221 -163
  28. data/bin/commands/admin_conversations_ekm.rb +17 -11
  29. data/bin/commands/admin_conversations_restrictAccess.rb +35 -29
  30. data/bin/commands/admin_emoji.rb +50 -44
  31. data/bin/commands/admin_inviteRequests.rb +34 -28
  32. data/bin/commands/admin_inviteRequests_approved.rb +16 -10
  33. data/bin/commands/admin_inviteRequests_denied.rb +16 -10
  34. data/bin/commands/admin_roles.rb +46 -0
  35. data/bin/commands/admin_teams.rb +26 -20
  36. data/bin/commands/admin_teams_admins.rb +16 -10
  37. data/bin/commands/admin_teams_owners.rb +16 -10
  38. data/bin/commands/admin_teams_settings.rb +59 -53
  39. data/bin/commands/admin_usergroups.rb +45 -39
  40. data/bin/commands/admin_users.rb +91 -85
  41. data/bin/commands/admin_users_session.rb +72 -66
  42. data/bin/commands/admin_users_unsupportedVersions.rb +21 -0
  43. data/bin/commands/api.rb +14 -8
  44. data/bin/commands/apps.rb +15 -9
  45. data/bin/commands/apps_connections.rb +13 -7
  46. data/bin/commands/apps_event_authorizations.rb +16 -10
  47. data/bin/commands/apps_manifest.rb +48 -41
  48. data/bin/commands/auth.rb +21 -15
  49. data/bin/commands/auth_teams.rb +16 -10
  50. data/bin/commands/bookmarks.rb +59 -0
  51. data/bin/commands/bots.rb +15 -9
  52. data/bin/commands/calls.rb +49 -43
  53. data/bin/commands/calls_participants.rb +24 -18
  54. data/bin/commands/chat.rb +150 -141
  55. data/bin/commands/chat_scheduledMessages.rb +19 -13
  56. data/bin/commands/conversations.rb +233 -225
  57. data/bin/commands/dialog.rb +15 -9
  58. data/bin/commands/dnd.rb +46 -40
  59. data/bin/commands/emoji.rb +14 -7
  60. data/bin/commands/files.rb +112 -83
  61. data/bin/commands/files_comments.rb +15 -9
  62. data/bin/commands/files_remote.rb +73 -67
  63. data/bin/commands/functions_workflows_steps.rb +22 -0
  64. data/bin/commands/functions_workflows_steps_responses.rb +22 -0
  65. data/bin/commands/migration.rb +16 -10
  66. data/bin/commands/oauth.rb +18 -12
  67. data/bin/commands/oauth_v2.rb +28 -22
  68. data/bin/commands/openid_connect.rb +26 -20
  69. data/bin/commands/pins.rb +33 -26
  70. data/bin/commands/reactions.rb +52 -46
  71. data/bin/commands/reminders.rb +53 -47
  72. data/bin/commands/rtm.rb +15 -24
  73. data/bin/commands/search.rb +43 -37
  74. data/bin/commands/stars.rb +38 -32
  75. data/bin/commands/team.rb +47 -38
  76. data/bin/commands/team_billing.rb +13 -7
  77. data/bin/commands/team_preferences.rb +13 -7
  78. data/bin/commands/team_profile.rb +14 -8
  79. data/bin/commands/tooling_tokens.rb +14 -8
  80. data/bin/commands/usergroups.rb +64 -58
  81. data/bin/commands/usergroups_users.rb +27 -21
  82. data/bin/commands/users.rb +111 -105
  83. data/bin/commands/users_admin.rb +28 -22
  84. data/bin/commands/users_prefs.rb +13 -7
  85. data/bin/commands/users_profile.rb +26 -20
  86. data/bin/commands/views.rb +47 -39
  87. data/bin/commands/workflows.rb +36 -30
  88. data/bin/slack +48 -43
  89. data/lib/slack/real_time/api/message.rb +3 -2
  90. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  91. data/lib/slack/real_time/api/typing.rb +2 -1
  92. data/lib/slack/real_time/client.rb +10 -28
  93. data/lib/slack/real_time/config.rb +3 -3
  94. data/lib/slack/real_time/models/channel.rb +4 -0
  95. data/lib/slack/real_time/models/{group.rb → mpim.rb} +1 -1
  96. data/lib/slack/real_time/models.rb +2 -1
  97. data/lib/slack/real_time/stores/base.rb +25 -9
  98. data/lib/slack/real_time/stores/starter.rb +323 -309
  99. data/lib/slack/real_time/stores/store.rb +265 -198
  100. data/lib/slack/real_time/stores.rb +1 -7
  101. data/lib/slack/version.rb +1 -1
  102. data/lib/slack/web/api/endpoints/admin_analytics.rb +2 -2
  103. data/lib/slack/web/api/endpoints/admin_apps.rb +2 -2
  104. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +16 -0
  105. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  106. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +7 -7
  107. data/lib/slack/web/api/endpoints/admin_barriers.rb +8 -8
  108. data/lib/slack/web/api/endpoints/admin_conversations.rb +110 -28
  109. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +6 -6
  110. data/lib/slack/web/api/endpoints/admin_emoji.rb +9 -9
  111. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +2 -2
  112. data/lib/slack/web/api/endpoints/admin_roles.rb +73 -0
  113. data/lib/slack/web/api/endpoints/admin_teams.rb +2 -2
  114. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +1 -1
  115. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +1 -1
  116. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +11 -11
  117. data/lib/slack/web/api/endpoints/admin_usergroups.rb +7 -7
  118. data/lib/slack/web/api/endpoints/admin_users.rb +16 -16
  119. data/lib/slack/web/api/endpoints/admin_users_session.rb +8 -8
  120. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  121. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  122. data/lib/slack/web/api/endpoints/apps_connections.rb +1 -1
  123. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +1 -1
  124. data/lib/slack/web/api/endpoints/apps_manifest.rb +8 -6
  125. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  126. data/lib/slack/web/api/endpoints/bots.rb +1 -1
  127. data/lib/slack/web/api/endpoints/calls.rb +5 -5
  128. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  129. data/lib/slack/web/api/endpoints/chat.rb +37 -31
  130. data/lib/slack/web/api/endpoints/conversations.rb +38 -34
  131. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  132. data/lib/slack/web/api/endpoints/dnd.rb +1 -1
  133. data/lib/slack/web/api/endpoints/emoji.rb +2 -0
  134. data/lib/slack/web/api/endpoints/files.rb +45 -10
  135. data/lib/slack/web/api/endpoints/files_comments.rb +2 -2
  136. data/lib/slack/web/api/endpoints/files_remote.rb +8 -8
  137. data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +28 -0
  138. data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +28 -0
  139. data/lib/slack/web/api/endpoints/migration.rb +1 -1
  140. data/lib/slack/web/api/endpoints/oauth_v2.rb +2 -2
  141. data/lib/slack/web/api/endpoints/pins.rb +5 -3
  142. data/lib/slack/web/api/endpoints/reactions.rb +4 -4
  143. data/lib/slack/web/api/endpoints/reminders.rb +5 -5
  144. data/lib/slack/web/api/endpoints/rtm.rb +0 -23
  145. data/lib/slack/web/api/endpoints/search.rb +3 -3
  146. data/lib/slack/web/api/endpoints/team.rb +13 -1
  147. data/lib/slack/web/api/endpoints/tooling_tokens.rb +1 -1
  148. data/lib/slack/web/api/endpoints/usergroups.rb +5 -5
  149. data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -3
  150. data/lib/slack/web/api/endpoints/users.rb +4 -4
  151. data/lib/slack/web/api/endpoints/users_admin.rb +2 -2
  152. data/lib/slack/web/api/endpoints/users_profile.rb +1 -1
  153. data/lib/slack/web/api/endpoints/views.rb +16 -11
  154. data/lib/slack/web/api/endpoints/workflows.rb +4 -4
  155. data/lib/slack/web/api/endpoints.rb +12 -0
  156. data/lib/slack/web/api/errors.rb +146 -8
  157. data/lib/slack/web/api/mixins/conversations.id.rb +1 -1
  158. data/lib/slack/web/api/mixins/users.id.rb +1 -1
  159. data/lib/slack/web/api/mixins/users.search.rb +2 -1
  160. data/lib/slack/web/api/patches/{chat.1.patch → chat.attachments-blocks.patch} +13 -14
  161. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  162. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  163. data/lib/slack/web/api/templates/command.erb +18 -12
  164. data/lib/slack/web/api/templates/method.erb +1 -1
  165. data/lib/slack/web/config.rb +2 -2
  166. data/lib/slack/web/faraday/connection.rb +4 -4
  167. data/lib/slack/web/faraday/request.rb +2 -0
  168. data/lib/slack/web/faraday/response/raise_error.rb +2 -10
  169. data/lib/slack/web/faraday/response/wrap_error.rb +1 -1
  170. data/lib/slack-ruby-client.rb +2 -1
  171. data/lib/tasks/real_time.rake +44 -24
  172. data/lib/tasks/web.rake +9 -8
  173. data/slack-ruby-client.gemspec +5 -14
  174. data/spec/fixtures/slack/web/rtm_connect.yml +85 -1
  175. data/spec/integration/integration_spec.rb +1 -1
  176. data/spec/slack/events/config_spec.rb +2 -0
  177. data/spec/slack/events/request_spec.rb +5 -1
  178. data/spec/slack/messages/formatting_spec.rb +10 -0
  179. data/spec/slack/real_time/api/message_spec.rb +1 -1
  180. data/spec/slack/real_time/api/ping_spec.rb +1 -1
  181. data/spec/slack/real_time/api/typing_spec.rb +1 -1
  182. data/spec/slack/real_time/client_spec.rb +91 -127
  183. data/spec/slack/real_time/event_handlers/bot_spec.rb +19 -17
  184. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +1 -1
  185. data/spec/slack/real_time/event_handlers/im_spec.rb +30 -27
  186. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +35 -27
  187. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +27 -23
  188. data/spec/slack/real_time/event_handlers/team_spec.rb +7 -8
  189. data/spec/slack/real_time/event_handlers/user_spec.rb +6 -5
  190. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  191. data/spec/slack/slack_spec.rb +5 -4
  192. data/spec/slack/version_spec.rb +1 -1
  193. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +5 -0
  194. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  195. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +31 -0
  196. data/spec/slack/web/api/endpoints/admin_roles_spec.rb +30 -0
  197. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  198. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  199. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +45 -17
  200. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +6 -2
  201. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +33 -16
  202. data/spec/slack/web/api/endpoints/files_spec.rb +13 -0
  203. data/spec/slack/web/api/endpoints/functions_workflows_steps_responses_spec.rb +13 -0
  204. data/spec/slack/web/api/endpoints/functions_workflows_steps_spec.rb +13 -0
  205. data/spec/slack/web/api/mixins/conversations_spec.rb +2 -0
  206. data/spec/slack/web/api/mixins/users_spec.rb +2 -0
  207. data/spec/slack/web/api/pagination/cursor_spec.rb +11 -7
  208. data/spec/slack/web/client_spec.rb +39 -11
  209. data/spec/slack/web/faraday/response/raise_error_spec.rb +1 -1
  210. data/spec/support/real_time/connected_client.rb +1 -1
  211. data/spec/support/real_time/loaded_client.rb +120 -0
  212. metadata +45 -197
  213. data/.travis.yml +0 -29
  214. data/bin/commands/admin_conversations_whitelist.rb +0 -37
  215. data/bin/commands/apps_permissions.rb +0 -23
  216. data/bin/commands/apps_permissions_resources.rb +0 -15
  217. data/bin/commands/apps_permissions_scopes.rb +0 -13
  218. data/bin/commands/apps_permissions_users.rb +0 -26
  219. data/bin/commands/channels.rb +0 -23
  220. data/bin/commands/groups.rb +0 -14
  221. data/bin/commands/im.rb +0 -6
  222. data/bin/commands/mpim.rb +0 -6
  223. data/bin/commands.rb +0 -66
  224. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +0 -64
  225. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -36
  226. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -31
  227. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -21
  228. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -50
  229. data/lib/slack/web/api/endpoints/channels.rb +0 -25
  230. data/lib/slack/web/api/endpoints/groups.rb +0 -13
  231. data/lib/slack/web/api/endpoints/im.rb +0 -13
  232. data/lib/slack/web/api/endpoints/mpim.rb +0 -13
  233. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  234. data/lib/slack/web/api/patches/views.1.view-json.patch +0 -40
  235. data/lib/slack/web/api/patches/views.1.views-published.patch +0 -16
  236. data/lib/slack/web/api/templates/commands.erb +0 -6
  237. data/spec/fixtures/slack/web/rtm_start.yml +0 -815
  238. data/spec/slack/real_time/rtm_start_spec.rb +0 -14
  239. data/spec/slack/real_time/store_spec.rb +0 -12
data/bin/commands/dnd.rb CHANGED
@@ -1,50 +1,56 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'Dnd methods.'
5
- command 'dnd' do |g|
6
- g.desc "Ends the current user's Do Not Disturb session immediately."
7
- g.long_desc %( Ends the current user's Do Not Disturb session immediately. )
8
- g.command 'endDnd' do |c|
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.dnd_endDnd(options))
11
- end
12
- end
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'Dnd methods.'
8
+ command 'dnd' do |g|
9
+ g.desc "Ends the current user's Do Not Disturb session immediately."
10
+ g.long_desc %( Ends the current user's Do Not Disturb session immediately. )
11
+ g.command 'endDnd' do |c|
12
+ c.action do |_global_options, options, _args|
13
+ puts JSON.dump(@client.dnd_endDnd(options))
14
+ end
15
+ end
13
16
 
14
- g.desc "Ends the current user's snooze mode immediately."
15
- g.long_desc %( Ends the current user's snooze mode immediately. )
16
- g.command 'endSnooze' do |c|
17
- c.action do |_global_options, options, _args|
18
- puts JSON.dump($client.dnd_endSnooze(options))
19
- end
20
- end
17
+ g.desc "Ends the current user's snooze mode immediately."
18
+ g.long_desc %( Ends the current user's snooze mode immediately. )
19
+ g.command 'endSnooze' do |c|
20
+ c.action do |_global_options, options, _args|
21
+ puts JSON.dump(@client.dnd_endSnooze(options))
22
+ end
23
+ end
21
24
 
22
- g.desc "Retrieves a user's current Do Not Disturb status."
23
- g.long_desc %( Retrieves a user's current Do Not Disturb status. )
24
- g.command 'info' do |c|
25
- c.flag 'team_id', desc: '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.'
26
- c.flag 'user', desc: 'User to fetch status for (defaults to current user).'
27
- c.action do |_global_options, options, _args|
28
- puts JSON.dump($client.dnd_info(options))
29
- end
30
- end
25
+ g.desc "Retrieves a user's current Do Not Disturb status."
26
+ g.long_desc %( Retrieves a user's current Do Not Disturb status. )
27
+ g.command 'info' do |c|
28
+ c.flag 'team_id', desc: '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.'
29
+ c.flag 'user', desc: 'User to fetch status for (defaults to current user).'
30
+ c.action do |_global_options, options, _args|
31
+ puts JSON.dump(@client.dnd_info(options))
32
+ end
33
+ end
31
34
 
32
- g.desc 'Turns on Do Not Disturb mode for the current user, or changes its duration.'
33
- g.long_desc %( Turns on Do Not Disturb mode for the current user, or changes its duration. )
34
- g.command 'setSnooze' do |c|
35
- c.flag 'num_minutes', desc: 'Number of minutes, from now, to snooze until.'
36
- c.action do |_global_options, options, _args|
37
- puts JSON.dump($client.dnd_setSnooze(options))
38
- end
39
- end
35
+ g.desc 'Turns on Do Not Disturb mode for the current user, or changes its duration.'
36
+ g.long_desc %( Turns on Do Not Disturb mode for the current user, or changes its duration. )
37
+ g.command 'setSnooze' do |c|
38
+ c.flag 'num_minutes', desc: 'Number of minutes, from now, to snooze until.'
39
+ c.action do |_global_options, options, _args|
40
+ puts JSON.dump(@client.dnd_setSnooze(options))
41
+ end
42
+ end
40
43
 
41
- g.desc 'Retrieves the Do Not Disturb status for up to 50 users on a team.'
42
- g.long_desc %( Retrieves the Do Not Disturb status for up to 50 users on a team. )
43
- g.command 'teamInfo' do |c|
44
- c.flag 'users', desc: 'Comma-separated list of users to fetch Do Not Disturb status for.'
45
- c.flag 'team_id', desc: 'Encoded team id where passed in users belong, required if org token is used.'
46
- c.action do |_global_options, options, _args|
47
- puts JSON.dump($client.dnd_teamInfo(options))
44
+ g.desc 'Retrieves the Do Not Disturb status for up to 50 users on a team.'
45
+ g.long_desc %( Retrieves the Do Not Disturb status for up to 50 users on a team. )
46
+ g.command 'teamInfo' do |c|
47
+ c.flag 'users', desc: 'Comma-separated list of users to fetch Do Not Disturb status for.'
48
+ c.flag 'team_id', desc: 'Encoded team id where passed in users belong, required if org token is used.'
49
+ c.action do |_global_options, options, _args|
50
+ puts JSON.dump(@client.dnd_teamInfo(options))
51
+ end
52
+ end
53
+ end
48
54
  end
49
55
  end
50
56
  end
@@ -1,13 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'Emoji methods.'
5
- command 'emoji' do |g|
6
- g.desc 'Lists custom emoji for a team.'
7
- g.long_desc %( Lists custom emoji for a team. )
8
- g.command 'list' do |c|
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.emoji_list(options))
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'Emoji methods.'
8
+ command 'emoji' do |g|
9
+ g.desc 'Lists custom emoji for a team.'
10
+ g.long_desc %( Lists custom emoji for a team. )
11
+ g.command 'list' do |c|
12
+ c.flag 'include_categories', desc: 'Include a list of categories for Unicode emoji and the emoji in each category.'
13
+ c.action do |_global_options, options, _args|
14
+ puts JSON.dump(@client.emoji_list(options))
15
+ end
16
+ end
17
+ end
11
18
  end
12
19
  end
13
20
  end
@@ -1,96 +1,125 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'Files methods.'
5
- command 'files' do |g|
6
- g.desc 'Deletes a file.'
7
- g.long_desc %( Deletes a file. )
8
- g.command 'delete' do |c|
9
- c.flag 'file', desc: 'ID of file to delete.'
10
- c.action do |_global_options, options, _args|
11
- puts JSON.dump($client.files_delete(options))
12
- end
13
- end
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'Files methods.'
8
+ command 'files' do |g|
9
+ g.desc 'Finishes an upload started with files.getUploadURLExternal'
10
+ g.long_desc %( Finishes an upload started with files.getUploadURLExternal )
11
+ g.command 'completeUploadExternal' do |c|
12
+ c.flag 'files', desc: 'Array of file ids and their corresponding (optional) titles.'
13
+ c.flag 'channel_id', desc: 'Channel ID where the file will be shared. If not specified the file will be private.'
14
+ c.flag 'initial_comment', desc: 'The message text introducing the file in specified channels.'
15
+ c.flag 'thread_ts', desc: "Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead."
16
+ c.action do |_global_options, options, _args|
17
+ puts JSON.dump(@client.files_completeUploadExternal(options))
18
+ end
19
+ end
14
20
 
15
- g.desc 'Change the properties of a file (undocumented)'
16
- g.long_desc %( Change the properties of a file )
17
- g.command 'edit' do |c|
18
- c.flag 'file', desc: 'ID of the file to be edited'
19
- c.flag 'title', desc: 'New title of the file'
20
- c.flag 'filetype', desc: 'New filetype of the file. See https://api.slack.com/types/file#file_types for a list of all supported types.'
21
- c.action do |_global_options, options, _args|
22
- puts JSON.dump($client.files_edit(options))
23
- end
24
- end
21
+ g.desc 'Deletes a file.'
22
+ g.long_desc %( Deletes a file. )
23
+ g.command 'delete' do |c|
24
+ c.flag 'file', desc: 'ID of file to delete.'
25
+ c.action do |_global_options, options, _args|
26
+ puts JSON.dump(@client.files_delete(options))
27
+ end
28
+ end
25
29
 
26
- g.desc 'Gets information about a file.'
27
- g.long_desc %( Gets information about a file. )
28
- g.command 'info' do |c|
29
- c.flag 'file', desc: 'Specify a file by providing its ID.'
30
- c.flag 'cursor', desc: "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."
31
- c.flag 'limit', desc: "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."
32
- c.action do |_global_options, options, _args|
33
- puts JSON.dump($client.files_info(options))
34
- end
35
- end
30
+ g.desc 'Change the properties of a file (undocumented)'
31
+ g.long_desc %( Change the properties of a file )
32
+ g.command 'edit' do |c|
33
+ c.flag 'file', desc: 'ID of the file to be edited'
34
+ c.flag 'title', desc: 'New title of the file'
35
+ c.flag 'filetype', desc: 'New filetype of the file. See https://api.slack.com/types/file#file_types for a list of all supported types.'
36
+ c.action do |_global_options, options, _args|
37
+ puts JSON.dump(@client.files_edit(options))
38
+ end
39
+ end
36
40
 
37
- g.desc 'List for a team, in a channel, or from a user with applied filters.'
38
- g.long_desc %( List for a team, in a channel, or from a user with applied filters. )
39
- g.command 'list' do |c|
40
- c.flag 'channel', desc: 'Filter files appearing in a specific channel, indicated by its ID.'
41
- c.flag 'files', desc: '.'
42
- c.flag 'show_files_hidden_by_limit', desc: 'Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.'
43
- c.flag 'team_id', desc: 'encoded team id to list files in, required if org token is used.'
44
- c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
45
- c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
46
- c.flag 'types', desc: '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.'
47
- c.flag 'user', desc: 'Filter files created by a single user.'
48
- c.action do |_global_options, options, _args|
49
- puts JSON.dump($client.files_list(options))
50
- end
51
- end
41
+ g.desc 'Gets a URL for an edge external file upload'
42
+ g.long_desc %( Gets a URL for an edge external file upload )
43
+ g.command 'getUploadURLExternal' do |c|
44
+ c.flag 'filename', desc: 'Name of the file being uploaded.'
45
+ c.flag 'length', desc: 'Size in bytes of the file being uploaded.'
46
+ c.flag 'alt_txt', desc: 'Description of image for screen-reader.'
47
+ c.flag 'snippet_type', desc: 'Syntax type of the snippet being uploaded.'
48
+ c.action do |_global_options, options, _args|
49
+ puts JSON.dump(@client.files_getUploadURLExternal(options))
50
+ end
51
+ end
52
52
 
53
- g.desc 'Revokes public/external sharing access for a file'
54
- g.long_desc %( Revokes public/external sharing access for a file )
55
- g.command 'revokePublicURL' do |c|
56
- c.flag 'file', desc: 'File to revoke.'
57
- c.action do |_global_options, options, _args|
58
- puts JSON.dump($client.files_revokePublicURL(options))
59
- end
60
- end
53
+ g.desc 'Gets information about a file.'
54
+ g.long_desc %( Gets information about a file. )
55
+ g.command 'info' do |c|
56
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
57
+ c.flag 'cursor', desc: "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."
58
+ c.flag 'limit', desc: "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."
59
+ c.action do |_global_options, options, _args|
60
+ puts JSON.dump(@client.files_info(options))
61
+ end
62
+ end
61
63
 
62
- g.desc 'Share an existing file in a channel (undocumented)'
63
- g.long_desc %( Share an existing file in a channel )
64
- g.command 'share' do |c|
65
- c.flag 'file', desc: 'ID of the file to be shared'
66
- c.flag 'channel', desc: 'Channel to share the file in. Works with both public (channel ID) and private channels (group ID).'
67
- c.action do |_global_options, options, _args|
68
- puts JSON.dump($client.files_share(options))
69
- end
70
- end
64
+ g.desc 'List for a team, in a channel, or from a user with applied filters.'
65
+ g.long_desc %( List for a team, in a channel, or from a user with applied filters. )
66
+ g.command 'list' do |c|
67
+ c.flag 'channel', desc: 'Filter files appearing in a specific channel, indicated by its ID.'
68
+ c.flag 'show_files_hidden_by_limit', desc: 'Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.'
69
+ c.flag 'team_id', desc: 'encoded team id to list files in, required if org token is used.'
70
+ c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
71
+ c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
72
+ c.flag 'types', desc: '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
+ c.flag 'user', desc: 'Filter files created by a single user.'
74
+ c.action do |_global_options, options, _args|
75
+ puts JSON.dump(@client.files_list(options))
76
+ end
77
+ end
71
78
 
72
- g.desc 'Enables a file for public/external sharing.'
73
- g.long_desc %( Enables a file for public/external sharing. )
74
- g.command 'sharedPublicURL' do |c|
75
- c.flag 'file', desc: 'File to share.'
76
- c.action do |_global_options, options, _args|
77
- puts JSON.dump($client.files_sharedPublicURL(options))
78
- end
79
- end
79
+ g.desc 'Revokes public/external sharing access for a file'
80
+ g.long_desc %( Revokes public/external sharing access for a file )
81
+ g.command 'revokePublicURL' do |c|
82
+ c.flag 'file', desc: 'File to revoke.'
83
+ c.action do |_global_options, options, _args|
84
+ puts JSON.dump(@client.files_revokePublicURL(options))
85
+ end
86
+ end
87
+
88
+ g.desc 'Share an existing file in a channel (undocumented)'
89
+ g.long_desc %( Share an existing file in a channel )
90
+ g.command 'share' do |c|
91
+ c.flag 'file', desc: 'ID of the file to be shared'
92
+ c.flag 'channel', desc: 'Channel to share the file in. Works with both public (channel ID) and private channels (group ID).'
93
+ c.action do |_global_options, options, _args|
94
+ puts JSON.dump(@client.files_share(options))
95
+ end
96
+ end
97
+
98
+ g.desc 'Enables a file for public/external sharing.'
99
+ g.long_desc %( Enables a file for public/external sharing. )
100
+ g.command 'sharedPublicURL' do |c|
101
+ c.flag 'file', desc: 'File to share.'
102
+ c.action do |_global_options, options, _args|
103
+ puts JSON.dump(@client.files_sharedPublicURL(options))
104
+ end
105
+ end
80
106
 
81
- g.desc 'Uploads or creates a file.'
82
- g.long_desc %( Uploads or creates a file. )
83
- g.command 'upload' do |c|
84
- c.flag 'channels', desc: 'Comma-separated list of channel names or IDs where the file will be shared.'
85
- c.flag 'content', desc: 'File contents via a POST variable. If omitting this parameter, you must provide a file.'
86
- c.flag 'file', desc: 'File contents via multipart/form-data. If omitting this parameter, you must submit content.'
87
- c.flag 'filename', desc: 'Filename of file.'
88
- c.flag 'filetype', desc: 'A file type identifier.'
89
- c.flag 'initial_comment', desc: 'The message text introducing the file in specified channels.'
90
- c.flag 'thread_ts', desc: "Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead."
91
- c.flag 'title', desc: 'Title of file.'
92
- c.action do |_global_options, options, _args|
93
- puts JSON.dump($client.files_upload(options))
107
+ g.desc 'Uploads or creates a file.'
108
+ g.long_desc %( Uploads or creates a file. )
109
+ g.command 'upload' do |c|
110
+ c.flag 'channels', desc: 'Comma-separated list of channel names or IDs where the file will be shared.'
111
+ c.flag 'content', desc: 'File contents via a POST variable. If omitting this parameter, you must provide a file.'
112
+ c.flag 'file', desc: 'File contents via multipart/form-data. If omitting this parameter, you must submit content.'
113
+ c.flag 'filename', desc: 'Filename of file.'
114
+ c.flag 'filetype', desc: 'A file type identifier.'
115
+ c.flag 'initial_comment', desc: 'The message text introducing the file in specified channels.'
116
+ c.flag 'thread_ts', desc: "Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead."
117
+ c.flag 'title', desc: 'Title of file.'
118
+ c.action do |_global_options, options, _args|
119
+ puts JSON.dump(@client.files_upload(options))
120
+ end
121
+ end
122
+ end
94
123
  end
95
124
  end
96
125
  end
@@ -1,15 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'FilesComments methods.'
5
- command 'files_comments' do |g|
6
- g.desc 'Deletes an existing comment on a file.'
7
- g.long_desc %( Deletes an existing comment on a file. )
8
- g.command 'delete' do |c|
9
- c.flag 'file', desc: 'File to delete a comment from.'
10
- c.flag 'id', desc: 'The comment to delete.'
11
- c.action do |_global_options, options, _args|
12
- puts JSON.dump($client.files_comments_delete(options))
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'FilesComments methods.'
8
+ command 'files_comments' do |g|
9
+ g.desc 'Deletes an existing comment on a file.'
10
+ g.long_desc %( Deletes an existing comment on a file. )
11
+ g.command 'delete' do |c|
12
+ c.flag 'file', desc: 'File to delete a comment from.'
13
+ c.flag 'id', desc: 'The comment to delete.'
14
+ c.action do |_global_options, options, _args|
15
+ puts JSON.dump(@client.files_comments_delete(options))
16
+ end
17
+ end
18
+ end
13
19
  end
14
20
  end
15
21
  end
@@ -1,78 +1,84 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'FilesRemote methods.'
5
- command 'files_remote' do |g|
6
- g.desc 'Adds a file from a remote service'
7
- g.long_desc %( Adds a file from a remote service )
8
- g.command 'add' do |c|
9
- c.flag 'external_id', desc: 'Creator defined GUID for the file.'
10
- c.flag 'external_url', desc: 'URL of the remote file.'
11
- c.flag 'title', desc: 'Title of the file being shared.'
12
- c.flag 'filetype', desc: 'type of file.'
13
- c.flag 'indexable_file_contents', desc: 'A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.'
14
- c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
15
- c.action do |_global_options, options, _args|
16
- puts JSON.dump($client.files_remote_add(options))
17
- end
18
- end
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'FilesRemote methods.'
8
+ command 'files_remote' do |g|
9
+ g.desc 'Adds a file from a remote service'
10
+ g.long_desc %( Adds a file from a remote service )
11
+ g.command 'add' do |c|
12
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
13
+ c.flag 'external_url', desc: 'URL of the remote file.'
14
+ c.flag 'title', desc: 'Title of the file being shared.'
15
+ c.flag 'filetype', desc: 'type of file.'
16
+ c.flag 'indexable_file_contents', desc: 'A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.'
17
+ c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
18
+ c.action do |_global_options, options, _args|
19
+ puts JSON.dump(@client.files_remote_add(options))
20
+ end
21
+ end
19
22
 
20
- g.desc 'Retrieve information about a remote file added to Slack'
21
- g.long_desc %( Retrieve information about a remote file added to Slack )
22
- g.command 'info' do |c|
23
- c.flag 'external_id', desc: 'Creator defined GUID for the file.'
24
- c.flag 'file', desc: 'Specify a file by providing its ID.'
25
- c.action do |_global_options, options, _args|
26
- puts JSON.dump($client.files_remote_info(options))
27
- end
28
- end
23
+ g.desc 'Retrieve information about a remote file added to Slack'
24
+ g.long_desc %( Retrieve information about a remote file added to Slack )
25
+ g.command 'info' do |c|
26
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
27
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
28
+ c.action do |_global_options, options, _args|
29
+ puts JSON.dump(@client.files_remote_info(options))
30
+ end
31
+ end
29
32
 
30
- g.desc 'Retrieve information about a remote file added to Slack'
31
- g.long_desc %( Retrieve information about a remote file added to Slack )
32
- g.command 'list' do |c|
33
- c.flag 'channel', desc: 'Filter files appearing in a specific channel, indicated by its ID.'
34
- c.flag 'cursor', desc: "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."
35
- c.flag 'limit', desc: 'The maximum number of items to return.'
36
- c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
37
- c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
38
- c.action do |_global_options, options, _args|
39
- puts JSON.dump($client.files_remote_list(options))
40
- end
41
- end
33
+ g.desc 'Retrieve information about a remote file added to Slack'
34
+ g.long_desc %( Retrieve information about a remote file added to Slack )
35
+ g.command 'list' do |c|
36
+ c.flag 'channel', desc: 'Filter files appearing in a specific channel, indicated by its ID.'
37
+ c.flag 'cursor', desc: "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."
38
+ c.flag 'limit', desc: 'The maximum number of items to return.'
39
+ c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
40
+ c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
41
+ c.action do |_global_options, options, _args|
42
+ puts JSON.dump(@client.files_remote_list(options))
43
+ end
44
+ end
42
45
 
43
- g.desc 'Remove a remote file.'
44
- g.long_desc %( Remove a remote file. )
45
- g.command 'remove' do |c|
46
- c.flag 'external_id', desc: 'Creator defined GUID for the file.'
47
- c.flag 'file', desc: 'Specify a file by providing its ID.'
48
- c.action do |_global_options, options, _args|
49
- puts JSON.dump($client.files_remote_remove(options))
50
- end
51
- end
46
+ g.desc 'Remove a remote file.'
47
+ g.long_desc %( Remove a remote file. )
48
+ g.command 'remove' do |c|
49
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
50
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
51
+ c.action do |_global_options, options, _args|
52
+ puts JSON.dump(@client.files_remote_remove(options))
53
+ end
54
+ end
52
55
 
53
- g.desc 'Share a remote file into a channel.'
54
- g.long_desc %( Share a remote file into a channel. )
55
- g.command 'share' do |c|
56
- c.flag 'channels', desc: 'Comma-separated list of channel IDs where the file will be shared.'
57
- c.flag 'external_id', desc: '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.'
58
- c.flag 'file', desc: 'Specify a file registered with Slack by providing its ID. Either this field or external_id or both are required.'
59
- c.action do |_global_options, options, _args|
60
- puts JSON.dump($client.files_remote_share(options))
61
- end
62
- end
56
+ g.desc 'Share a remote file into a channel.'
57
+ g.long_desc %( Share a remote file into a channel. )
58
+ g.command 'share' do |c|
59
+ c.flag 'channels', desc: 'Comma-separated list of channel IDs where the file will be shared.'
60
+ c.flag 'external_id', desc: '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.'
61
+ c.flag 'file', desc: 'Specify a file registered with Slack by providing its ID. Either this field or external_id or both are required.'
62
+ c.action do |_global_options, options, _args|
63
+ puts JSON.dump(@client.files_remote_share(options))
64
+ end
65
+ end
63
66
 
64
- g.desc 'Updates an existing remote file.'
65
- g.long_desc %( Updates an existing remote file. )
66
- g.command 'update' do |c|
67
- c.flag 'external_id', desc: 'Creator defined GUID for the file.'
68
- c.flag 'external_url', desc: 'URL of the remote file.'
69
- c.flag 'file', desc: 'Specify a file by providing its ID.'
70
- c.flag 'filetype', desc: 'type of file.'
71
- c.flag 'indexable_file_contents', desc: 'File containing contents that can be used to improve searchability for the remote file.'
72
- c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
73
- c.flag 'title', desc: 'Title of the file being shared.'
74
- c.action do |_global_options, options, _args|
75
- puts JSON.dump($client.files_remote_update(options))
67
+ g.desc 'Updates an existing remote file.'
68
+ g.long_desc %( Updates an existing remote file. )
69
+ g.command 'update' do |c|
70
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
71
+ c.flag 'external_url', desc: 'URL of the remote file.'
72
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
73
+ c.flag 'filetype', desc: 'type of file.'
74
+ c.flag 'indexable_file_contents', desc: 'File containing contents that can be used to improve searchability for the remote file.'
75
+ c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
76
+ c.flag 'title', desc: 'Title of the file being shared.'
77
+ c.action do |_global_options, options, _args|
78
+ puts JSON.dump(@client.files_remote_update(options))
79
+ end
80
+ end
81
+ end
76
82
  end
77
83
  end
78
84
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'FunctionsWorkflowsSteps methods.'
8
+ command 'functions_workflows_steps' do |g|
9
+ g.desc "List the steps of a specific function of a workflow's versions"
10
+ g.long_desc %( List the steps of a specific function of a workflow's versions )
11
+ g.command 'list' do |c|
12
+ c.flag 'function_id', desc: '.'
13
+ c.flag 'workflow', desc: 'The workflow encoded ID or workflow reference.'
14
+ c.flag 'workflow_id', desc: 'The workflow ID, starts with Wf*.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump(@client.functions_workflows_steps_list(options))
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'FunctionsWorkflowsStepsResponses methods.'
8
+ command 'functions_workflows_steps_responses' do |g|
9
+ g.desc 'Download form responses of a workflow'
10
+ g.long_desc %( Download form responses of a workflow )
11
+ g.command 'export' do |c|
12
+ c.flag 'step_id', desc: '.'
13
+ c.flag 'workflow', desc: 'The workflow encoded ID or workflow reference.'
14
+ c.flag 'workflow_id', desc: 'The workflow ID, starts with Wf*.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump(@client.functions_workflows_steps_responses_export(options))
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,16 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
  # This file was auto-generated by lib/tasks/web.rake
3
3
 
4
- desc 'Migration methods.'
5
- command 'migration' do |g|
6
- g.desc 'For Enterprise Grid workspaces, map local user IDs to global user IDs'
7
- g.long_desc %( For Enterprise Grid workspaces, map local user IDs to global user IDs )
8
- g.command 'exchange' do |c|
9
- c.flag 'users', desc: 'A comma-separated list of user ids, up to 400 per request.'
10
- c.flag 'team_id', desc: 'Specify team_id starts with T in case of Org Token.'
11
- c.flag 'to_old', desc: 'Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.'
12
- c.action do |_global_options, options, _args|
13
- puts JSON.dump($client.migration_exchange(options))
4
+ module Slack
5
+ module Cli
6
+ class App
7
+ desc 'Migration methods.'
8
+ command 'migration' do |g|
9
+ g.desc 'For Enterprise Grid workspaces, map local user IDs to global user IDs'
10
+ g.long_desc %( For Enterprise Grid workspaces, map local user IDs to global user IDs )
11
+ g.command 'exchange' do |c|
12
+ c.flag 'users', desc: 'A comma-separated list of user ids, up to 400 per request.'
13
+ c.flag 'team_id', desc: 'Specify team_id starts with T in case of Org Token.'
14
+ c.flag 'to_old', desc: 'Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump(@client.migration_exchange(options))
17
+ end
18
+ end
19
+ end
14
20
  end
15
21
  end
16
22
  end