diff --git a/CHANGELOG.md b/CHANGELOG.md index f6e6ab2f..69827b6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ### 2.3.1 (Next) +* [#509](https://github.com/slack-ruby-client/pulls/509): Update API from [slack-api-ref@8a22e57](https://github.com/slack-ruby/slack-api-ref/commit/8a22e57) - [@slack-ruby-ci-bot](https://github.com/apps/slack-ruby-ci-bot). * Your contribution here. ### 2.3.0 (2024/01/31) diff --git a/bin/commands/admin_emoji.rb b/bin/commands/admin_emoji.rb index c004a546..7bb8cbc1 100644 --- a/bin/commands/admin_emoji.rb +++ b/bin/commands/admin_emoji.rb @@ -9,7 +9,7 @@ class App g.desc 'Add an emoji.' g.long_desc %( Add an emoji. ) g.command 'add' do |c| - c.flag 'name', desc: 'The name of the emoji to be added. Colons (:myemoji:) around the value are not required, although they may be included.' + c.flag 'name', desc: 'The name of the emoji to be added (using lower-case letters only). Colons (:myemoji:) around the value are not required, although they may be included.' c.flag 'url', desc: 'The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best.' c.action do |_global_options, options, _args| puts JSON.dump(@client.admin_emoji_add(options)) diff --git a/bin/commands/admin_users.rb b/bin/commands/admin_users.rb index 1a9fa45b..b349b767 100644 --- a/bin/commands/admin_users.rb +++ b/bin/commands/admin_users.rb @@ -60,8 +60,8 @@ class App end end - g.desc 'Set an existing guest, regular user, or owner to be an admin user.' - g.long_desc %( Set an existing guest, regular user, or owner to be an admin user. ) + g.desc 'Set an existing regular user or owner to be a workspace admin.' + g.long_desc %( Set an existing regular user or owner to be a workspace admin. ) g.command 'setAdmin' do |c| c.flag 'team_id', desc: 'The ID (T1234) of the workspace.' c.flag 'user_id', desc: 'The ID of the user to designate as an admin.' @@ -81,8 +81,8 @@ class App end end - g.desc 'Set an existing guest, regular user, or admin user to be a workspace owner.' - g.long_desc %( Set an existing guest, regular user, or admin user to be a workspace owner. ) + g.desc 'Set an existing regular user or admin to be a workspace owner.' + g.long_desc %( Set an existing regular user or admin to be a workspace owner. ) g.command 'setOwner' do |c| c.flag 'team_id', desc: 'The ID (T1234) of the workspace.' c.flag 'user_id', desc: 'Id of the user to promote to owner.' diff --git a/bin/commands/admin_workflows_triggers_types_permissions.rb b/bin/commands/admin_workflows_triggers_types_permissions.rb new file mode 100644 index 00000000..1fe7f0de --- /dev/null +++ b/bin/commands/admin_workflows_triggers_types_permissions.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Cli + class App + desc 'AdminWorkflowsTriggersTypesPermissions methods.' + command 'admin_workflows_triggers_types_permissions' do |g| + g.desc 'list the permissions for using each trigger type in workflow builder' + g.long_desc %( list the permissions for using each trigger type in workflow builder ) + g.command 'lookup' do |c| + c.flag 'trigger_type_ids', desc: 'The trigger types IDs for which to get the permissions.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.admin_workflows_triggers_types_permissions_lookup(options)) + end + end + + g.desc 'Set the permissions for using a trigger type in workflow builder' + g.long_desc %( Set the permissions for using a trigger type in workflow builder ) + g.command 'set' do |c| + c.flag 'id', desc: 'The trigger type ID for which to set the permissions.' + c.flag 'visibility', desc: 'The function visibility.' + c.flag 'user_ids', desc: 'List of user IDs to allow for named_entities visibility.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.admin_workflows_triggers_types_permissions_set(options)) + end + end + end + end + end +end diff --git a/bin/commands/apps_datastore.rb b/bin/commands/apps_datastore.rb index fc1cfcef..fb3c2dd5 100644 --- a/bin/commands/apps_datastore.rb +++ b/bin/commands/apps_datastore.rb @@ -6,6 +6,52 @@ module Cli class App desc 'AppsDatastore methods.' command 'apps_datastore' do |g| + g.desc 'Delete items from a datastore in bulk' + g.long_desc %( Delete items from a datastore in bulk ) + g.command 'bulkDelete' do |c| + c.flag 'datastore', desc: 'name of the datastore.' + c.flag 'ids', desc: 'IDs of items to be deleted.' + c.flag 'app_id', desc: '.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.apps_datastore_bulkDelete(options)) + end + end + + g.desc 'Get items from a datastore in bulk' + g.long_desc %( Get items from a datastore in bulk ) + g.command 'bulkGet' do |c| + c.flag 'datastore', desc: 'name of the datastore.' + c.flag 'ids', desc: "items' ids." + c.flag 'app_id', desc: '.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.apps_datastore_bulkGet(options)) + end + end + + g.desc 'Creates or replaces existing items in bulk' + g.long_desc %( Creates or replaces existing items in bulk ) + g.command 'bulkPut' do |c| + c.flag 'datastore', desc: 'name of the datastore.' + c.flag 'items', desc: 'attribute names and values of the items; limit of 25.' + c.flag 'app_id', desc: '.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.apps_datastore_bulkPut(options)) + end + end + + g.desc 'Count the number of items in a datastore that match a query' + g.long_desc %( Count the number of items in a datastore that match a query ) + g.command 'count' do |c| + c.flag 'datastore', desc: 'Name of the datastore.' + c.flag 'app_id', desc: 'Required if calling with user token.' + c.flag 'expression', desc: 'A query filter expression https://api.slack.com/future/datastores.' + c.flag 'expression_attributes', desc: 'A map of attributes referenced in expression.' + c.flag 'expression_values', desc: 'A map of values referenced in expression.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.apps_datastore_count(options)) + end + end + g.desc 'Delete an item from a datastore' g.long_desc %( Delete an item from a datastore ) g.command 'delete' do |c| diff --git a/bin/commands/conversations.rb b/bin/commands/conversations.rb index 37c1d484..03cb3bc9 100644 --- a/bin/commands/conversations.rb +++ b/bin/commands/conversations.rb @@ -77,7 +77,7 @@ class App c.flag 'include_all_metadata', desc: 'Return all metadata associated with this message.' c.flag 'inclusive', desc: 'Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified.' c.flag 'latest', desc: 'Only messages before this Unix timestamp will be included in results. Default is the current time.' - 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 users list hasn't been reached." + 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 conversation history hasn't been reached. Maximum of 999." c.flag 'oldest', desc: 'Only messages after this Unix timestamp will be included in results.' c.action do |_global_options, options, _args| puts JSON.dump(@client.conversations_history(options)) diff --git a/bin/commands/functions_distributions_permissions.rb b/bin/commands/functions_distributions_permissions.rb new file mode 100644 index 00000000..a13e1c40 --- /dev/null +++ b/bin/commands/functions_distributions_permissions.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Cli + class App + desc 'FunctionsDistributionsPermissions methods.' + command 'functions_distributions_permissions' do |g| + g.desc 'Grant users access to a custom slack function if its permission_type is set to named_entities' + g.long_desc %( Grant users access to a custom slack function if its permission_type is set to named_entities ) + g.command 'add' do |c| + c.flag 'function_app_id', desc: 'The encoded ID of the app.' + c.flag 'function_callback_id', desc: "The callback ID defined in the function's definition file." + c.flag 'function_id', desc: 'The encoded ID of the function.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.functions_distributions_permissions_add(options)) + end + end + + g.desc 'List the access type of a custom slack function and include the users with access if its permission_type is set to named_entities' + g.long_desc %( List the access type of a custom slack function and include the users with access if its permission_type is set to named_entities ) + g.command 'list' do |c| + c.flag 'function_app_id', desc: 'The encoded ID of the app.' + c.flag 'function_callback_id', desc: "The callback ID defined in the function's definition file." + c.flag 'function_id', desc: 'The encoded ID of the function.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.functions_distributions_permissions_list(options)) + end + end + + g.desc 'Revoke user access to a custom slack function if permission_type set to named_entities' + g.long_desc %( Revoke user access to a custom slack function if permission_type set to named_entities ) + g.command 'remove' do |c| + c.flag 'function_app_id', desc: 'The encoded ID of the app.' + c.flag 'function_callback_id', desc: "The callback ID defined in the function's definition file." + c.flag 'function_id', desc: 'The encoded ID of the function.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.functions_distributions_permissions_remove(options)) + end + end + + g.desc 'Set the access type of a custom slack function and define the users to be granted access if permission_type is set to named_entities' + g.long_desc %( Set the access type of a custom slack function and define the users to be granted access if permission_type is set to named_entities ) + g.command 'set' do |c| + c.flag 'permission_type', desc: 'The type of permission that defines how the function can be distributed.' + c.flag 'function_app_id', desc: 'The encoded ID of the app.' + c.flag 'function_callback_id', desc: "The callback ID defined in the function's definition file." + c.flag 'function_id', desc: 'The encoded ID of the function.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.functions_distributions_permissions_set(options)) + end + end + end + end + end +end diff --git a/bin/commands/oauth.rb b/bin/commands/oauth.rb index 57eda82d..d7b79de7 100644 --- a/bin/commands/oauth.rb +++ b/bin/commands/oauth.rb @@ -9,8 +9,8 @@ class App g.desc 'Exchanges a temporary OAuth verifier code for an access token.' g.long_desc %( Exchanges a temporary OAuth verifier code for an access token. ) g.command 'access' do |c| - c.flag 'client_id', desc: 'Issued when you created your application.' - c.flag 'client_secret', desc: 'Issued when you created your application.' + c.flag 'client_id', desc: 'Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme.' + c.flag 'client_secret', desc: 'Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme.' c.flag 'code', desc: 'The code param returned via the OAuth callback.' c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).' c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel. Only valid with a legacy workspace app.' diff --git a/bin/commands/oauth_v2.rb b/bin/commands/oauth_v2.rb index ff9bb5c9..af40e722 100644 --- a/bin/commands/oauth_v2.rb +++ b/bin/commands/oauth_v2.rb @@ -9,8 +9,8 @@ class App g.desc 'Exchanges a temporary OAuth verifier code for an access token.' g.long_desc %( Exchanges a temporary OAuth verifier code for an access token. ) g.command 'access' do |c| - c.flag 'client_id', desc: 'Issued when you created your application.' - c.flag 'client_secret', desc: 'Issued when you created your application.' + c.flag 'client_id', desc: 'Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme.' + c.flag 'client_secret', desc: 'Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme.' c.flag 'code', desc: 'The code param returned via the OAuth callback.' c.flag 'grant_type', desc: 'The grant_type param as described in the OAuth spec.' c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).' diff --git a/bin/commands/reminders.rb b/bin/commands/reminders.rb index 9c3600da..b8faa63c 100644 --- a/bin/commands/reminders.rb +++ b/bin/commands/reminders.rb @@ -10,7 +10,7 @@ class App g.long_desc %( Creates a reminder. ) g.command 'add' do |c| c.flag 'text', desc: 'The content of the reminder.' - c.flag 'time', desc: 'When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday").' + c.flag 'time', desc: 'Can also take a type of integer. When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday").' c.flag 'recurrence', desc: 'Specify the repeating behavior of a reminder. Available options: daily, weekly, monthly, or yearly. If weekly, may further specify the days of the week.' c.flag 'team_id', desc: 'Encoded team id, required if org token is used.' c.flag 'user', desc: 'No longer supported - reminders cannot be set for other users. Previously, was the user who would receive the reminder.' diff --git a/bin/commands/workflows_triggers_permissions.rb b/bin/commands/workflows_triggers_permissions.rb new file mode 100644 index 00000000..c536a908 --- /dev/null +++ b/bin/commands/workflows_triggers_permissions.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Cli + class App + desc 'WorkflowsTriggersPermissions methods.' + command 'workflows_triggers_permissions' do |g| + g.desc 'Allows users to run a trigger that has its permission type set to named_entities' + g.long_desc %( Allows users to run a trigger that has its permission type set to named_entities ) + g.command 'add' do |c| + c.flag 'trigger_id', desc: 'Encoded ID of the trigger.' + c.flag 'channel_ids', desc: 'List of encoded channel IDs.' + c.flag 'org_ids', desc: 'List of encoded organization IDs.' + c.flag 'team_ids', desc: 'List of encoded workspace IDs.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.workflows_triggers_permissions_add(options)) + end + end + + g.desc 'Returns the permission type of a trigger and if applicable, includes the entities that have been granted access' + g.long_desc %( Returns the permission type of a trigger and if applicable, includes the entities that have been granted access ) + g.command 'list' do |c| + c.flag 'trigger_id', desc: 'Encoded ID of the trigger.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.workflows_triggers_permissions_list(options)) + end + end + + g.desc "Revoke an entity's access to a trigger that has its permission type set to named_entities" + g.long_desc %( Revoke an entity's access to a trigger that has its permission type set to named_entities ) + g.command 'remove' do |c| + c.flag 'trigger_id', desc: 'Encoded ID of the trigger.' + c.flag 'channel_ids', desc: 'List of encoded channel IDs.' + c.flag 'org_ids', desc: 'List of encoded organization IDs.' + c.flag 'team_ids', desc: 'List of encoded workspace IDs.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.workflows_triggers_permissions_remove(options)) + end + end + + g.desc 'Set the permission type for who can run a trigger' + g.long_desc %( Set the permission type for who can run a trigger ) + g.command 'set' do |c| + c.flag 'permission_type', desc: 'The type of permission that defines who can run a trigger.' + c.flag 'trigger_id', desc: 'Encoded ID of the trigger.' + c.flag 'channel_ids', desc: 'List of encoded channel IDs.' + c.flag 'org_ids', desc: 'List of encoded organization IDs.' + c.flag 'team_ids', desc: 'List of encoded workspace IDs.' + c.flag 'user_ids', desc: 'List of encoded user IDs.' + c.action do |_global_options, options, _args| + puts JSON.dump(@client.workflows_triggers_permissions_set(options)) + end + end + end + end + end +end diff --git a/lib/slack/web/api/endpoints.rb b/lib/slack/web/api/endpoints.rb index ca7dfc33..919cb80b 100644 --- a/lib/slack/web/api/endpoints.rb +++ b/lib/slack/web/api/endpoints.rb @@ -32,6 +32,7 @@ require_relative 'endpoints/admin_workflows' require_relative 'endpoints/admin_workflows_collaborators' require_relative 'endpoints/admin_workflows_permissions' +require_relative 'endpoints/admin_workflows_triggers_types_permissions' require_relative 'endpoints/api' require_relative 'endpoints/apps' require_relative 'endpoints/apps_activities' @@ -56,6 +57,7 @@ require_relative 'endpoints/files_comments' require_relative 'endpoints/files_remote' require_relative 'endpoints/functions' +require_relative 'endpoints/functions_distributions_permissions' require_relative 'endpoints/functions_workflows_steps' require_relative 'endpoints/functions_workflows_steps_responses' require_relative 'endpoints/migration' @@ -81,6 +83,7 @@ require_relative 'endpoints/users_profile' require_relative 'endpoints/views' require_relative 'endpoints/workflows' +require_relative 'endpoints/workflows_triggers_permissions' module Slack module Web @@ -120,6 +123,7 @@ module Endpoints include AdminWorkflows include AdminWorkflowsCollaborators include AdminWorkflowsPermissions + include AdminWorkflowsTriggersTypesPermissions include Api include Apps include AppsActivities @@ -144,6 +148,7 @@ module Endpoints include FilesComments include FilesRemote include Functions + include FunctionsDistributionsPermissions include FunctionsWorkflowsSteps include FunctionsWorkflowsStepsResponses include Migration @@ -169,6 +174,7 @@ module Endpoints include UsersProfile include Views include Workflows + include WorkflowsTriggersPermissions end end end diff --git a/lib/slack/web/api/endpoints/admin_emoji.rb b/lib/slack/web/api/endpoints/admin_emoji.rb index 08f0eb39..3d39daf0 100644 --- a/lib/slack/web/api/endpoints/admin_emoji.rb +++ b/lib/slack/web/api/endpoints/admin_emoji.rb @@ -10,7 +10,7 @@ module AdminEmoji # Add an emoji. # # @option options [string] :name - # The name of the emoji to be added. Colons (:myemoji:) around the value are not required, although they may be included. + # The name of the emoji to be added (using lower-case letters only). Colons (:myemoji:) around the value are not required, although they may be included. # @option options [string] :url # The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best. # @see https://api.slack.com/methods/admin.emoji.add diff --git a/lib/slack/web/api/endpoints/admin_users.rb b/lib/slack/web/api/endpoints/admin_users.rb index 00a8819f..dd9f9c31 100644 --- a/lib/slack/web/api/endpoints/admin_users.rb +++ b/lib/slack/web/api/endpoints/admin_users.rb @@ -100,7 +100,7 @@ def admin_users_remove(options = {}) end # - # Set an existing guest, regular user, or owner to be an admin user. + # Set an existing regular user or owner to be a workspace admin. # # @option options [Object] :team_id # The ID (T1234) of the workspace. @@ -132,7 +132,7 @@ def admin_users_setExpiration(options = {}) end # - # Set an existing guest, regular user, or admin user to be a workspace owner. + # Set an existing regular user or admin to be a workspace owner. # # @option options [Object] :team_id # The ID (T1234) of the workspace. diff --git a/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb b/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb new file mode 100644 index 00000000..e613d05b --- /dev/null +++ b/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Web + module Api + module Endpoints + module AdminWorkflowsTriggersTypesPermissions + # + # list the permissions for using each trigger type in workflow builder + # + # @option options [array] :trigger_type_ids + # The trigger types IDs for which to get the permissions. + # @see https://api.slack.com/methods/admin.workflows.triggers.types.permissions.lookup + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.workflows.triggers.types.permissions/admin.workflows.triggers.types.permissions.lookup.json + def admin_workflows_triggers_types_permissions_lookup(options = {}) + raise ArgumentError, 'Required arguments :trigger_type_ids missing' if options[:trigger_type_ids].nil? + post('admin.workflows.triggers.types.permissions.lookup', options) + end + + # + # Set the permissions for using a trigger type in workflow builder + # + # @option options [Object] :id + # The trigger type ID for which to set the permissions. + # @option options [enum] :visibility + # The function visibility. + # @option options [array] :user_ids + # List of user IDs to allow for named_entities visibility. + # @see https://api.slack.com/methods/admin.workflows.triggers.types.permissions.set + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.workflows.triggers.types.permissions/admin.workflows.triggers.types.permissions.set.json + def admin_workflows_triggers_types_permissions_set(options = {}) + raise ArgumentError, 'Required arguments :id missing' if options[:id].nil? + raise ArgumentError, 'Required arguments :visibility missing' if options[:visibility].nil? + post('admin.workflows.triggers.types.permissions.set', options) + end + end + end + end + end +end diff --git a/lib/slack/web/api/endpoints/apps_datastore.rb b/lib/slack/web/api/endpoints/apps_datastore.rb index bba1df50..2b3673a7 100644 --- a/lib/slack/web/api/endpoints/apps_datastore.rb +++ b/lib/slack/web/api/endpoints/apps_datastore.rb @@ -6,6 +6,77 @@ module Web module Api module Endpoints module AppsDatastore + # + # Delete items from a datastore in bulk + # + # @option options [string] :datastore + # name of the datastore. + # @option options [array] :ids + # IDs of items to be deleted. + # @option options [Object] :app_id + # . + # @see https://api.slack.com/methods/apps.datastore.bulkDelete + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.datastore/apps.datastore.bulkDelete.json + def apps_datastore_bulkDelete(options = {}) + raise ArgumentError, 'Required arguments :datastore missing' if options[:datastore].nil? + raise ArgumentError, 'Required arguments :ids missing' if options[:ids].nil? + post('apps.datastore.bulkDelete', options) + end + + # + # Get items from a datastore in bulk + # + # @option options [string] :datastore + # name of the datastore. + # @option options [array] :ids + # items' ids. + # @option options [Object] :app_id + # . + # @see https://api.slack.com/methods/apps.datastore.bulkGet + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.datastore/apps.datastore.bulkGet.json + def apps_datastore_bulkGet(options = {}) + raise ArgumentError, 'Required arguments :datastore missing' if options[:datastore].nil? + raise ArgumentError, 'Required arguments :ids missing' if options[:ids].nil? + post('apps.datastore.bulkGet', options) + end + + # + # Creates or replaces existing items in bulk + # + # @option options [string] :datastore + # name of the datastore. + # @option options [array] :items + # attribute names and values of the items; limit of 25. + # @option options [Object] :app_id + # . + # @see https://api.slack.com/methods/apps.datastore.bulkPut + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.datastore/apps.datastore.bulkPut.json + def apps_datastore_bulkPut(options = {}) + raise ArgumentError, 'Required arguments :datastore missing' if options[:datastore].nil? + raise ArgumentError, 'Required arguments :items missing' if options[:items].nil? + post('apps.datastore.bulkPut', options) + end + + # + # Count the number of items in a datastore that match a query + # + # @option options [string] :datastore + # Name of the datastore. + # @option options [Object] :app_id + # Required if calling with user token. + # @option options [string] :expression + # A query filter expression https://api.slack.com/future/datastores. + # @option options [object] :expression_attributes + # A map of attributes referenced in expression. + # @option options [object] :expression_values + # A map of values referenced in expression. + # @see https://api.slack.com/methods/apps.datastore.count + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.datastore/apps.datastore.count.json + def apps_datastore_count(options = {}) + raise ArgumentError, 'Required arguments :datastore missing' if options[:datastore].nil? + post('apps.datastore.count', options) + end + # # Delete an item from a datastore # diff --git a/lib/slack/web/api/endpoints/conversations.rb b/lib/slack/web/api/endpoints/conversations.rb index b10d5242..9dab6fe2 100644 --- a/lib/slack/web/api/endpoints/conversations.rb +++ b/lib/slack/web/api/endpoints/conversations.rb @@ -112,7 +112,7 @@ def conversations_declineSharedInvite(options = {}) # @option options [timestamp] :latest # Only messages before this Unix timestamp will be included in results. Default is the current time. # @option options [number] :limit - # 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. + # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the conversation history hasn't been reached. Maximum of 999. # @option options [timestamp] :oldest # Only messages after this Unix timestamp will be included in results. # @see https://api.slack.com/methods/conversations.history diff --git a/lib/slack/web/api/endpoints/dnd.rb b/lib/slack/web/api/endpoints/dnd.rb index 0b1229d7..f576b2ad 100644 --- a/lib/slack/web/api/endpoints/dnd.rb +++ b/lib/slack/web/api/endpoints/dnd.rb @@ -46,6 +46,7 @@ def dnd_info(options = {}) # @see https://api.slack.com/methods/dnd.setSnooze # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.setSnooze.json def dnd_setSnooze(options = {}) + raise ArgumentError, 'Required arguments :num_minutes missing' if options[:num_minutes].nil? post('dnd.setSnooze', options) end diff --git a/lib/slack/web/api/endpoints/functions_distributions_permissions.rb b/lib/slack/web/api/endpoints/functions_distributions_permissions.rb new file mode 100644 index 00000000..a2d5722e --- /dev/null +++ b/lib/slack/web/api/endpoints/functions_distributions_permissions.rb @@ -0,0 +1,81 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Web + module Api + module Endpoints + module FunctionsDistributionsPermissions + # + # Grant users access to a custom slack function if its permission_type is set to named_entities + # + # @option options [string] :function_app_id + # The encoded ID of the app. + # @option options [string] :function_callback_id + # The callback ID defined in the function's definition file. + # @option options [string] :function_id + # The encoded ID of the function. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/functions.distributions.permissions.add + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/functions.distributions.permissions/functions.distributions.permissions.add.json + def functions_distributions_permissions_add(options = {}) + post('functions.distributions.permissions.add', options) + end + + # + # List the access type of a custom slack function and include the users with access if its permission_type is set to named_entities + # + # @option options [string] :function_app_id + # The encoded ID of the app. + # @option options [string] :function_callback_id + # The callback ID defined in the function's definition file. + # @option options [string] :function_id + # The encoded ID of the function. + # @see https://api.slack.com/methods/functions.distributions.permissions.list + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/functions.distributions.permissions/functions.distributions.permissions.list.json + def functions_distributions_permissions_list(options = {}) + post('functions.distributions.permissions.list', options) + end + + # + # Revoke user access to a custom slack function if permission_type set to named_entities + # + # @option options [string] :function_app_id + # The encoded ID of the app. + # @option options [string] :function_callback_id + # The callback ID defined in the function's definition file. + # @option options [string] :function_id + # The encoded ID of the function. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/functions.distributions.permissions.remove + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/functions.distributions.permissions/functions.distributions.permissions.remove.json + def functions_distributions_permissions_remove(options = {}) + post('functions.distributions.permissions.remove', options) + end + + # + # Set the access type of a custom slack function and define the users to be granted access if permission_type is set to named_entities + # + # @option options [enum] :permission_type + # The type of permission that defines how the function can be distributed. + # @option options [string] :function_app_id + # The encoded ID of the app. + # @option options [string] :function_callback_id + # The callback ID defined in the function's definition file. + # @option options [string] :function_id + # The encoded ID of the function. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/functions.distributions.permissions.set + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/functions.distributions.permissions/functions.distributions.permissions.set.json + def functions_distributions_permissions_set(options = {}) + raise ArgumentError, 'Exactly one of :permission_type is required' unless options[:permission_type].nil? + post('functions.distributions.permissions.set', options) + end + end + end + end + end +end diff --git a/lib/slack/web/api/endpoints/oauth.rb b/lib/slack/web/api/endpoints/oauth.rb index 0106c658..cf1a8083 100644 --- a/lib/slack/web/api/endpoints/oauth.rb +++ b/lib/slack/web/api/endpoints/oauth.rb @@ -10,9 +10,9 @@ module Oauth # Exchanges a temporary OAuth verifier code for an access token. # # @option options [string] :client_id - # Issued when you created your application. + # Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme. # @option options [string] :client_secret - # Issued when you created your application. + # Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme. # @option options [string] :code # The code param returned via the OAuth callback. # @option options [string] :redirect_uri diff --git a/lib/slack/web/api/endpoints/oauth_v2.rb b/lib/slack/web/api/endpoints/oauth_v2.rb index d666918a..2f1f3f1e 100644 --- a/lib/slack/web/api/endpoints/oauth_v2.rb +++ b/lib/slack/web/api/endpoints/oauth_v2.rb @@ -10,9 +10,9 @@ module OauthV2 # Exchanges a temporary OAuth verifier code for an access token. # # @option options [string] :client_id - # Issued when you created your application. + # Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme. # @option options [string] :client_secret - # Issued when you created your application. + # Issued when you created your application. If possible, avoid sending client_id and client_secret as parameters in your request and instead supply the Client ID and Client Secret using the HTTP Basic authentication scheme. # @option options [string] :code # The code param returned via the OAuth callback. # @option options [string] :grant_type diff --git a/lib/slack/web/api/endpoints/reminders.rb b/lib/slack/web/api/endpoints/reminders.rb index a24ba674..f883472d 100644 --- a/lib/slack/web/api/endpoints/reminders.rb +++ b/lib/slack/web/api/endpoints/reminders.rb @@ -12,7 +12,7 @@ module Reminders # @option options [string] :text # The content of the reminder. # @option options [string] :time - # When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday"). + # Can also take a type of integer. When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday"). # @option options [object] :recurrence # Specify the repeating behavior of a reminder. Available options: daily, weekly, monthly, or yearly. If weekly, may further specify the days of the week. # @option options [string] :team_id diff --git a/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb b/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb new file mode 100644 index 00000000..aaf8005a --- /dev/null +++ b/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +module Slack + module Web + module Api + module Endpoints + module WorkflowsTriggersPermissions + # + # Allows users to run a trigger that has its permission type set to named_entities + # + # @option options [string] :trigger_id + # Encoded ID of the trigger. + # @option options [array] :channel_ids + # List of encoded channel IDs. + # @option options [array] :org_ids + # List of encoded organization IDs. + # @option options [array] :team_ids + # List of encoded workspace IDs. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/workflows.triggers.permissions.add + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows.triggers.permissions/workflows.triggers.permissions.add.json + def workflows_triggers_permissions_add(options = {}) + raise ArgumentError, 'Required arguments :trigger_id missing' if options[:trigger_id].nil? + post('workflows.triggers.permissions.add', options) + end + + # + # Returns the permission type of a trigger and if applicable, includes the entities that have been granted access + # + # @option options [string] :trigger_id + # Encoded ID of the trigger. + # @see https://api.slack.com/methods/workflows.triggers.permissions.list + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows.triggers.permissions/workflows.triggers.permissions.list.json + def workflows_triggers_permissions_list(options = {}) + raise ArgumentError, 'Required arguments :trigger_id missing' if options[:trigger_id].nil? + post('workflows.triggers.permissions.list', options) + end + + # + # Revoke an entity's access to a trigger that has its permission type set to named_entities + # + # @option options [string] :trigger_id + # Encoded ID of the trigger. + # @option options [array] :channel_ids + # List of encoded channel IDs. + # @option options [array] :org_ids + # List of encoded organization IDs. + # @option options [array] :team_ids + # List of encoded workspace IDs. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/workflows.triggers.permissions.remove + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows.triggers.permissions/workflows.triggers.permissions.remove.json + def workflows_triggers_permissions_remove(options = {}) + raise ArgumentError, 'Required arguments :trigger_id missing' if options[:trigger_id].nil? + post('workflows.triggers.permissions.remove', options) + end + + # + # Set the permission type for who can run a trigger + # + # @option options [enum] :permission_type + # The type of permission that defines who can run a trigger. + # @option options [string] :trigger_id + # Encoded ID of the trigger. + # @option options [array] :channel_ids + # List of encoded channel IDs. + # @option options [array] :org_ids + # List of encoded organization IDs. + # @option options [array] :team_ids + # List of encoded workspace IDs. + # @option options [array] :user_ids + # List of encoded user IDs. + # @see https://api.slack.com/methods/workflows.triggers.permissions.set + # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows.triggers.permissions/workflows.triggers.permissions.set.json + def workflows_triggers_permissions_set(options = {}) + raise ArgumentError, 'Required arguments :permission_type missing' if options[:permission_type].nil? + raise ArgumentError, 'Required arguments :trigger_id missing' if options[:trigger_id].nil? + post('workflows.triggers.permissions.set', options) + end + end + end + end + end +end diff --git a/lib/slack/web/api/errors.rb b/lib/slack/web/api/errors.rb index 24aec502..bb80a53b 100644 --- a/lib/slack/web/api/errors.rb +++ b/lib/slack/web/api/errors.rb @@ -68,6 +68,7 @@ class CannotCompleteOthers < SlackError; end class CannotCompleteRecurring < SlackError; end class CannotCreateChannel < SlackError; end class CannotCreateDialog < SlackError; end + class CannotFetchVersions < SlackError; end class CannotFindChannel < SlackError; end class CannotFindMessage < SlackError; end class CannotFindService < SlackError; end @@ -117,7 +118,10 @@ class ChannelOwnerRestriction < SlackError; end class ChannelTypeNotSupported < SlackError; end class ClientIdTokenMismatch < SlackError; end class CodeAlreadyUsed < SlackError; end + class ConnectedOrgDenied < SlackError; end + class ConnectedTeamDenied < SlackError; end class ConnectedTeamPassedInIsNotTopLevelTeam < SlackError; end + class ConnectedUserDenied < SlackError; end class ConnectionLimitExceeded < SlackError; end class ConnectionLimitExceededPending < SlackError; end class CouldNotArchiveChannel < SlackError; end @@ -180,10 +184,12 @@ class ExpiredTriggerId < SlackError; end class ExternalChannelMigrating < SlackError; end class ExternalLimitedRestriction < SlackError; end class ExternalTeamNotConnectedToThisOrg < SlackError; end + class ExternalWorkspaceDenied < SlackError; end class ExternallySharedOrDisconnectedChannel < SlackError; end class FailToGetTeamsForRestrictedUser < SlackError; end class FailedAddingCollaborator < SlackError; end class FailedCreatingApp < SlackError; end + class FailedDatastoreOperation < SlackError; end class FailedExport < SlackError; end class FailedForSomeEntities < SlackError; end class FailedForSomeUsers < SlackError; end @@ -299,9 +305,11 @@ class InvalidNameMaxlength < SlackError; end class InvalidNamePunctuation < SlackError; end class InvalidNameRequired < SlackError; end class InvalidNameSpecials < SlackError; end + class InvalidNamedEntities < SlackError; end class InvalidOutputs < SlackError; end class InvalidParentType < SlackError; end class InvalidPayload < SlackError; end + class InvalidPermissionType < SlackError; end class InvalidPermissions < SlackError; end class InvalidPostType < SlackError; end class InvalidPresence < SlackError; end @@ -403,6 +411,7 @@ class MissingTs < SlackError; end class MissingUnfurlId < SlackError; end class MissingUnfurls < SlackError; end class MissingUser < SlackError; end + class MsgBlocksTooLong < SlackError; end class MsgTooLong < SlackError; end class MustClearBothStatusTextAndStatusEmoji < SlackError; end class MustProvideTeamDomain < SlackError; end @@ -413,6 +422,7 @@ class NameNotAllowed < SlackError; end class NameTaken < SlackError; end class NameTakenInOrg < SlackError; end class NameTooLong < SlackError; end + class NamedEntitiesCannotBeEmpty < SlackError; end class NoActiveSessions < SlackError; end class NoAliasSelected < SlackError; end class NoBotUserForApp < SlackError; end @@ -420,6 +430,7 @@ class NoChannel < SlackError; end class NoChannelMemberships < SlackError; end class NoDomainsProvided < SlackError; end class NoDualBroadcastContentUpdate < SlackError; end + class NoExternalInvitePermission < SlackError; end class NoImageUploaded < SlackError; end class NoItemSpecified < SlackError; end class NoLocalUserOnTeam < SlackError; end @@ -438,6 +449,7 @@ class NoUser < SlackError; end class NoUsersProvided < SlackError; end class NoValidChannels < SlackError; end class NoValidEntities < SlackError; end + class NoValidNamedEntities < SlackError; end class NoValidTeams < SlackError; end class NoValidUsers < SlackError; end class NotAdmin < SlackError; end @@ -470,6 +482,7 @@ class OauthAuthorizationUrlMismatch < SlackError; end class OneOrMoreInvalidChannels < SlackError; end class OrgLevelEmailDisplayDisabled < SlackError; end class OrgLoginRequired < SlackError; end + class OrgNotConnected < SlackError; end class OrgNotFound < SlackError; end class OrgResolutionRequired < SlackError; end class OrgUserNotInTeam < SlackError; end @@ -481,8 +494,10 @@ class PaidTeamsOnly < SlackError; end class ParameterValidationFailed < SlackError; end class ParentBookmarkDisabled < SlackError; end class ParentWithLink < SlackError; end + class PartialFailure < SlackError; end class PartialProfileSetFailed < SlackError; end class PermissionDenied < SlackError; end + class PermissionTypeRequired < SlackError; end class PlanUpgradeRequired < SlackError; end class PolicyNotFound < SlackError; end class PostContentsTooLarge < SlackError; end @@ -518,11 +533,13 @@ class SessionExpired < SlackError; end class SessionInvalidationFailed < SlackError; end class SessionNotFound < SlackError; end class SessionResetNotAllowed < SlackError; end + class SharedChannelDenied < SlackError; end class SlackConnectBlockedFileType < SlackError; end class SlackConnectCanvasSharingBlocked < SlackError; end class SlackConnectClipSharingBlocked < SlackError; end class SlackConnectFileLinkSharingBlocked < SlackError; end class SlackConnectFileUploadSharingBlocked < SlackError; end + class SlackConnectListsSharingBlocked < SlackError; end class SnippetTooLarge < SlackError; end class SnoozeEndFailed < SlackError; end class SnoozeFailed < SlackError; end @@ -537,6 +554,7 @@ class TeamAccessNotGranted < SlackError; end class TeamAddedToOrg < SlackError; end class TeamIdOrOrgRequired < SlackError; end class TeamIdRequiredForEnterprise < SlackError; end + class TeamNotConnected < SlackError; end class TeamNotFound < SlackError; end class TeamNotOnEnterprise < SlackError; end class TeamQuotaExceeded < SlackError; end @@ -567,6 +585,7 @@ class TooManyIds < SlackError; end class TooManyIdsProvided < SlackError; end class TooManyLinkedChannels < SlackError; end class TooManyMembers < SlackError; end + class TooManyNamedEntities < SlackError; end class TooManyPins < SlackError; end class TooManyReactions < SlackError; end class TooManyTargetTeams < SlackError; end @@ -575,6 +594,8 @@ class TooManyTeamsProvided < SlackError; end class TooManyUsers < SlackError; end class TriggerExchanged < SlackError; end class TriggerExpired < SlackError; end + class TriggerNotFound < SlackError; end + class TriggerTypeIdNotFound < SlackError; end class TwoFactorSetupRequired < SlackError; end class UnableToDelete < SlackError; end class UnableToFetchCustomEmojis < SlackError; end @@ -624,6 +645,7 @@ class UsersListNotSupplied < SlackError; end class UsersNotFound < SlackError; end class ValidationErrors < SlackError; end class ViewTooLarge < SlackError; end + class VisibilityIsNotNamedEntities < SlackError; end class WorkflowsExportCsvNotEnabled < SlackError; end ERROR_CLASSES = { @@ -690,6 +712,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'cannot_complete_recurring' => CannotCompleteRecurring, 'cannot_create_channel' => CannotCreateChannel, 'cannot_create_dialog' => CannotCreateDialog, + 'cannot_fetch_versions' => CannotFetchVersions, 'cannot_find_channel' => CannotFindChannel, 'cannot_find_message' => CannotFindMessage, 'cannot_find_service' => CannotFindService, @@ -739,7 +762,10 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'channel_type_not_supported' => ChannelTypeNotSupported, 'client_id_token_mismatch' => ClientIdTokenMismatch, 'code_already_used' => CodeAlreadyUsed, + 'connected_org_denied' => ConnectedOrgDenied, + 'connected_team_denied' => ConnectedTeamDenied, 'connected_team_passed_in_is_not_top_level_team' => ConnectedTeamPassedInIsNotTopLevelTeam, + 'connected_user_denied' => ConnectedUserDenied, 'connection_limit_exceeded' => ConnectionLimitExceeded, 'connection_limit_exceeded_pending' => ConnectionLimitExceededPending, 'could_not_archive_channel' => CouldNotArchiveChannel, @@ -802,10 +828,12 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'external_channel_migrating' => ExternalChannelMigrating, 'external_limited_restriction' => ExternalLimitedRestriction, 'external_team_not_connected_to_this_org' => ExternalTeamNotConnectedToThisOrg, + 'external_workspace_denied' => ExternalWorkspaceDenied, 'externally_shared_or_disconnected_channel' => ExternallySharedOrDisconnectedChannel, 'fail_to_get_teams_for_restricted_user' => FailToGetTeamsForRestrictedUser, 'failed_adding_collaborator' => FailedAddingCollaborator, 'failed_creating_app' => FailedCreatingApp, + 'failed_datastore_operation' => FailedDatastoreOperation, 'failed_export' => FailedExport, 'failed_for_some_entities' => FailedForSomeEntities, 'failed_for_some_users' => FailedForSomeUsers, @@ -921,9 +949,11 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'invalid_name_punctuation' => InvalidNamePunctuation, 'invalid_name_required' => InvalidNameRequired, 'invalid_name_specials' => InvalidNameSpecials, + 'invalid_named_entities' => InvalidNamedEntities, 'invalid_outputs' => InvalidOutputs, 'invalid_parent_type' => InvalidParentType, 'invalid_payload' => InvalidPayload, + 'invalid_permission_type' => InvalidPermissionType, 'invalid_permissions' => InvalidPermissions, 'invalid_post_type' => InvalidPostType, 'invalid_presence' => InvalidPresence, @@ -1025,6 +1055,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'missing_unfurl_id' => MissingUnfurlId, 'missing_unfurls' => MissingUnfurls, 'missing_user' => MissingUser, + 'msg_blocks_too_long' => MsgBlocksTooLong, 'msg_too_long' => MsgTooLong, 'must_clear_both_status_text_and_status_emoji' => MustClearBothStatusTextAndStatusEmoji, 'must_provide_team_domain' => MustProvideTeamDomain, @@ -1035,6 +1066,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'name_taken' => NameTaken, 'name_taken_in_org' => NameTakenInOrg, 'name_too_long' => NameTooLong, + 'named_entities_cannot_be_empty' => NamedEntitiesCannotBeEmpty, 'no_active_sessions' => NoActiveSessions, 'no_alias_selected' => NoAliasSelected, 'no_bot_user_for_app' => NoBotUserForApp, @@ -1042,6 +1074,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'no_channel_memberships' => NoChannelMemberships, 'no_domains_provided' => NoDomainsProvided, 'no_dual_broadcast_content_update' => NoDualBroadcastContentUpdate, + 'no_external_invite_permission' => NoExternalInvitePermission, 'no_image_uploaded' => NoImageUploaded, 'no_item_specified' => NoItemSpecified, 'no_local_user_on_team' => NoLocalUserOnTeam, @@ -1060,6 +1093,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'no_users_provided' => NoUsersProvided, 'no_valid_channels' => NoValidChannels, 'no_valid_entities' => NoValidEntities, + 'no_valid_named_entities' => NoValidNamedEntities, 'no_valid_teams' => NoValidTeams, 'no_valid_users' => NoValidUsers, 'not_admin' => NotAdmin, @@ -1092,6 +1126,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'one_or_more_invalid_channels' => OneOrMoreInvalidChannels, 'org_level_email_display_disabled' => OrgLevelEmailDisplayDisabled, 'org_login_required' => OrgLoginRequired, + 'org_not_connected' => OrgNotConnected, 'org_not_found' => OrgNotFound, 'org_resolution_required' => OrgResolutionRequired, 'org_user_not_in_team' => OrgUserNotInTeam, @@ -1103,8 +1138,10 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'parameter_validation_failed' => ParameterValidationFailed, 'parent_bookmark_disabled' => ParentBookmarkDisabled, 'parent_with_link' => ParentWithLink, + 'partial_failure' => PartialFailure, 'partial_profile_set_failed' => PartialProfileSetFailed, 'permission_denied' => PermissionDenied, + 'permission_type_required' => PermissionTypeRequired, 'plan_upgrade_required' => PlanUpgradeRequired, 'policy_not_found' => PolicyNotFound, 'post_contents_too_large' => PostContentsTooLarge, @@ -1140,11 +1177,13 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'session_invalidation_failed' => SessionInvalidationFailed, 'session_not_found' => SessionNotFound, 'session_reset_not_allowed' => SessionResetNotAllowed, + 'shared_channel_denied' => SharedChannelDenied, 'slack_connect_blocked_file_type' => SlackConnectBlockedFileType, 'slack_connect_canvas_sharing_blocked' => SlackConnectCanvasSharingBlocked, 'slack_connect_clip_sharing_blocked' => SlackConnectClipSharingBlocked, 'slack_connect_file_link_sharing_blocked' => SlackConnectFileLinkSharingBlocked, 'slack_connect_file_upload_sharing_blocked' => SlackConnectFileUploadSharingBlocked, + 'slack_connect_lists_sharing_blocked' => SlackConnectListsSharingBlocked, 'snippet_too_large' => SnippetTooLarge, 'snooze_end_failed' => SnoozeEndFailed, 'snooze_failed' => SnoozeFailed, @@ -1159,6 +1198,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'team_added_to_org' => TeamAddedToOrg, 'team_id_or_org_required' => TeamIdOrOrgRequired, 'team_id_required_for_enterprise' => TeamIdRequiredForEnterprise, + 'team_not_connected' => TeamNotConnected, 'team_not_found' => TeamNotFound, 'team_not_on_enterprise' => TeamNotOnEnterprise, 'team_quota_exceeded' => TeamQuotaExceeded, @@ -1189,6 +1229,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'too_many_ids_provided' => TooManyIdsProvided, 'too_many_linked_channels' => TooManyLinkedChannels, 'too_many_members' => TooManyMembers, + 'too_many_named_entities' => TooManyNamedEntities, 'too_many_pins' => TooManyPins, 'too_many_reactions' => TooManyReactions, 'too_many_target_teams' => TooManyTargetTeams, @@ -1197,6 +1238,8 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'too_many_users' => TooManyUsers, 'trigger_exchanged' => TriggerExchanged, 'trigger_expired' => TriggerExpired, + 'trigger_not_found' => TriggerNotFound, + 'trigger_type_id_not_found' => TriggerTypeIdNotFound, 'two_factor_setup_required' => TwoFactorSetupRequired, 'unable_to_delete' => UnableToDelete, 'unable_to_fetch_custom_emojis' => UnableToFetchCustomEmojis, @@ -1246,6 +1289,7 @@ class WorkflowsExportCsvNotEnabled < SlackError; end 'users_not_found' => UsersNotFound, 'validation_errors' => ValidationErrors, 'view_too_large' => ViewTooLarge, + 'visibility_is_not_named_entities' => VisibilityIsNotNamedEntities, 'workflows_export_csv_not_enabled' => WorkflowsExportCsvNotEnabled, }.freeze end diff --git a/lib/slack/web/api/slack-api-ref b/lib/slack/web/api/slack-api-ref index 8a22e575..a5d9495f 160000 --- a/lib/slack/web/api/slack-api-ref +++ b/lib/slack/web/api/slack-api-ref @@ -1 +1 @@ -Subproject commit 8a22e575eefeb220a5a06426ff7319e6ef46dd42 +Subproject commit a5d9495fd391dad2294573480c4df7d3b2bb1487 diff --git a/spec/slack/web/api/endpoints/admin_workflows_triggers_types_permissions_spec.rb b/spec/slack/web/api/endpoints/admin_workflows_triggers_types_permissions_spec.rb new file mode 100644 index 00000000..4dd119a6 --- /dev/null +++ b/spec/slack/web/api/endpoints/admin_workflows_triggers_types_permissions_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +require 'spec_helper' + +RSpec.describe Slack::Web::Api::Endpoints::AdminWorkflowsTriggersTypesPermissions do + let(:client) { Slack::Web::Client.new } + context 'admin.workflows.triggers.types.permissions_lookup' do + it 'requires trigger_type_ids' do + expect { client.admin_workflows_triggers_types_permissions_lookup }.to raise_error ArgumentError, /Required arguments :trigger_type_ids missing/ + end + end + context 'admin.workflows.triggers.types.permissions_set' do + it 'requires id' do + expect { client.admin_workflows_triggers_types_permissions_set(visibility: %q[]) }.to raise_error ArgumentError, /Required arguments :id missing/ + end + it 'requires visibility' do + expect { client.admin_workflows_triggers_types_permissions_set(id: %q[['FTT01', 'FTT02', 'FTT03']]) }.to raise_error ArgumentError, /Required arguments :visibility missing/ + end + end +end diff --git a/spec/slack/web/api/endpoints/apps_datastore_spec.rb b/spec/slack/web/api/endpoints/apps_datastore_spec.rb index 7cd8e66f..41ca33e4 100644 --- a/spec/slack/web/api/endpoints/apps_datastore_spec.rb +++ b/spec/slack/web/api/endpoints/apps_datastore_spec.rb @@ -5,6 +5,35 @@ RSpec.describe Slack::Web::Api::Endpoints::AppsDatastore do let(:client) { Slack::Web::Client.new } + context 'apps.datastore_bulkDelete' do + it 'requires datastore' do + expect { client.apps_datastore_bulkDelete(ids: %q[["7c6dd137", "c7d6d731"]]) }.to raise_error ArgumentError, /Required arguments :datastore missing/ + end + it 'requires ids' do + expect { client.apps_datastore_bulkDelete(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :ids missing/ + end + end + context 'apps.datastore_bulkGet' do + it 'requires datastore' do + expect { client.apps_datastore_bulkGet(ids: %q[["7c6dd137", "c7d6d731"]]) }.to raise_error ArgumentError, /Required arguments :datastore missing/ + end + it 'requires ids' do + expect { client.apps_datastore_bulkGet(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :ids missing/ + end + end + context 'apps.datastore_bulkPut' do + it 'requires datastore' do + expect { client.apps_datastore_bulkPut(items: %q[[{"id": "7c6dd137", "favourite_meal": "Shawarma", "reason": "Who doesn't like Shawarma?"}]]) }.to raise_error ArgumentError, /Required arguments :datastore missing/ + end + it 'requires items' do + expect { client.apps_datastore_bulkPut(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :items missing/ + end + end + context 'apps.datastore_count' do + it 'requires datastore' do + expect { client.apps_datastore_count }.to raise_error ArgumentError, /Required arguments :datastore missing/ + end + end context 'apps.datastore_delete' do it 'requires datastore' do expect { client.apps_datastore_delete(id: %q[]) }.to raise_error ArgumentError, /Required arguments :datastore missing/ diff --git a/spec/slack/web/api/endpoints/dnd_spec.rb b/spec/slack/web/api/endpoints/dnd_spec.rb index 02414748..32f6efa3 100644 --- a/spec/slack/web/api/endpoints/dnd_spec.rb +++ b/spec/slack/web/api/endpoints/dnd_spec.rb @@ -5,6 +5,11 @@ RSpec.describe Slack::Web::Api::Endpoints::Dnd do let(:client) { Slack::Web::Client.new } + context 'dnd_setSnooze' do + it 'requires num_minutes' do + expect { client.dnd_setSnooze }.to raise_error ArgumentError, /Required arguments :num_minutes missing/ + end + end context 'dnd_teamInfo' do it 'requires users' do expect { client.dnd_teamInfo }.to raise_error ArgumentError, /Required arguments :users missing/ diff --git a/spec/slack/web/api/endpoints/functions_distributions_permissions_spec.rb b/spec/slack/web/api/endpoints/functions_distributions_permissions_spec.rb new file mode 100644 index 00000000..a64fb24a --- /dev/null +++ b/spec/slack/web/api/endpoints/functions_distributions_permissions_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +require 'spec_helper' + +RSpec.describe Slack::Web::Api::Endpoints::FunctionsDistributionsPermissions do + let(:client) { Slack::Web::Client.new } + context 'functions.distributions.permissions_set' do + it 'requires permission_type' do + expect { client.functions_distributions_permissions_set }.to raise_error ArgumentError, /Required arguments :permission_type missing/ + end + it 'requires one of permission_type' do + expect { client.functions_distributions_permissions_set }.to raise_error ArgumentError, /Exactly one of/ + + expect(client).to receive(:post).with('functions.distributions.permissions.set', {permission_type: %q[]}) + client.functions_distributions_permissions_set(permission_type: %q[]) + end + end +end diff --git a/spec/slack/web/api/endpoints/workflows_triggers_permissions_spec.rb b/spec/slack/web/api/endpoints/workflows_triggers_permissions_spec.rb new file mode 100644 index 00000000..9f4d36c1 --- /dev/null +++ b/spec/slack/web/api/endpoints/workflows_triggers_permissions_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# This file was auto-generated by lib/tasks/web.rake + +require 'spec_helper' + +RSpec.describe Slack::Web::Api::Endpoints::WorkflowsTriggersPermissions do + let(:client) { Slack::Web::Client.new } + context 'workflows.triggers.permissions_add' do + it 'requires trigger_id' do + expect { client.workflows_triggers_permissions_add }.to raise_error ArgumentError, /Required arguments :trigger_id missing/ + end + end + context 'workflows.triggers.permissions_list' do + it 'requires trigger_id' do + expect { client.workflows_triggers_permissions_list }.to raise_error ArgumentError, /Required arguments :trigger_id missing/ + end + end + context 'workflows.triggers.permissions_remove' do + it 'requires trigger_id' do + expect { client.workflows_triggers_permissions_remove }.to raise_error ArgumentError, /Required arguments :trigger_id missing/ + end + end + context 'workflows.triggers.permissions_set' do + it 'requires permission_type' do + expect { client.workflows_triggers_permissions_set(trigger_id: %q[Ft0000000001]) }.to raise_error ArgumentError, /Required arguments :permission_type missing/ + end + it 'requires trigger_id' do + expect { client.workflows_triggers_permissions_set(permission_type: %q[]) }.to raise_error ArgumentError, /Required arguments :trigger_id missing/ + end + end +end