diff --git a/json-logs/raw/audit/v1/actions.json b/json-logs/raw/audit/v1/actions.json index bbad38fd2..47aebc1dd 100644 --- a/json-logs/raw/audit/v1/actions.json +++ b/json-logs/raw/audit/v1/actions.json @@ -518,7 +518,15 @@ "agentforce_agent_metadata_updated", "agentforce_agent_slack_deleted", "child_app_auto_installed", - "child_app_auto_install_denied" + "child_app_auto_install_denied", + "child_app_auto_install_rule_created", + "child_app_manifest_created", + "child_app_manifest_updated", + "child_app_manifest_deleted", + "child_app_manifest_exported", + "app_mcp_server_added", + "app_mcp_server_updated", + "app_mcp_server_removed" ], "workflow_builder": [ "workflow_created", diff --git a/json-logs/samples/api/admin.conversations.delete.json b/json-logs/samples/api/admin.conversations.delete.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.conversations.delete.json +++ b/json-logs/samples/api/admin.conversations.delete.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.conversations.getCustomRetention.json b/json-logs/samples/api/admin.conversations.getCustomRetention.json index 98d573c67..23269b78e 100644 --- a/json-logs/samples/api/admin.conversations.getCustomRetention.json +++ b/json-logs/samples/api/admin.conversations.getCustomRetention.json @@ -4,5 +4,6 @@ "needed": "", "provided": "", "is_policy_enabled": false, - "duration_days": 12345 + "duration_days": 12345, + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.conversations.search.json b/json-logs/samples/api/admin.conversations.search.json index b3f7e2a29..6aa9bad34 100644 --- a/json-logs/samples/api/admin.conversations.search.json +++ b/json-logs/samples/api/admin.conversations.search.json @@ -115,14 +115,18 @@ "type": "", "data": { "file_id": "F00000000", - "shared_ts": "0000000000.000000" + "shared_ts": "0000000000.000000", + "folder_bookmark_id": "" }, "is_disabled": false }, { "type": "", "label": "", - "id": "" + "id": "", + "data": { + "folder_bookmark_id": "" + } } ], "tabz": [ @@ -132,12 +136,18 @@ "type": "", "data": { "file_id": "F00000000", - "shared_ts": "0000000000.000000" + "shared_ts": "0000000000.000000", + "folder_bookmark_id": "" }, "is_disabled": false }, { - "type": "" + "type": "", + "id": "", + "label": "", + "data": { + "folder_bookmark_id": "" + } } ], "meeting_notes": { diff --git a/json-logs/samples/api/admin.roles.addAssignments.json b/json-logs/samples/api/admin.roles.addAssignments.json index c85fa68d7..6c20053af 100644 --- a/json-logs/samples/api/admin.roles.addAssignments.json +++ b/json-logs/samples/api/admin.roles.addAssignments.json @@ -8,5 +8,6 @@ } ], "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.roles.removeAssignments.json b/json-logs/samples/api/admin.roles.removeAssignments.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.roles.removeAssignments.json +++ b/json-logs/samples/api/admin.roles.removeAssignments.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.teams.settings.setDefaultChannels.json b/json-logs/samples/api/admin.teams.settings.setDefaultChannels.json index 8d498f7d1..89bf3960c 100644 --- a/json-logs/samples/api/admin.teams.settings.setDefaultChannels.json +++ b/json-logs/samples/api/admin.teams.settings.setDefaultChannels.json @@ -7,5 +7,6 @@ ] }, "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.teams.settings.setDescription.json b/json-logs/samples/api/admin.teams.settings.setDescription.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.teams.settings.setDescription.json +++ b/json-logs/samples/api/admin.teams.settings.setDescription.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.teams.settings.setDiscoverability.json b/json-logs/samples/api/admin.teams.settings.setDiscoverability.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.teams.settings.setDiscoverability.json +++ b/json-logs/samples/api/admin.teams.settings.setDiscoverability.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.teams.settings.setIcon.json b/json-logs/samples/api/admin.teams.settings.setIcon.json index 8d498f7d1..89bf3960c 100644 --- a/json-logs/samples/api/admin.teams.settings.setIcon.json +++ b/json-logs/samples/api/admin.teams.settings.setIcon.json @@ -7,5 +7,6 @@ ] }, "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.teams.settings.setName.json b/json-logs/samples/api/admin.teams.settings.setName.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.teams.settings.setName.json +++ b/json-logs/samples/api/admin.teams.settings.setName.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.clearSettings.json b/json-logs/samples/api/admin.users.session.clearSettings.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.users.session.clearSettings.json +++ b/json-logs/samples/api/admin.users.session.clearSettings.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.getSettings.json b/json-logs/samples/api/admin.users.session.getSettings.json index 3f552a7da..35ce8f65c 100644 --- a/json-logs/samples/api/admin.users.session.getSettings.json +++ b/json-logs/samples/api/admin.users.session.getSettings.json @@ -12,5 +12,6 @@ ], "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.invalidate.json b/json-logs/samples/api/admin.users.session.invalidate.json index 8d498f7d1..89bf3960c 100644 --- a/json-logs/samples/api/admin.users.session.invalidate.json +++ b/json-logs/samples/api/admin.users.session.invalidate.json @@ -7,5 +7,6 @@ ] }, "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.reset.json b/json-logs/samples/api/admin.users.session.reset.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.users.session.reset.json +++ b/json-logs/samples/api/admin.users.session.reset.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.resetBulk.json b/json-logs/samples/api/admin.users.session.resetBulk.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.users.session.resetBulk.json +++ b/json-logs/samples/api/admin.users.session.resetBulk.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/admin.users.session.setSettings.json b/json-logs/samples/api/admin.users.session.setSettings.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/admin.users.session.setSettings.json +++ b/json-logs/samples/api/admin.users.session.setSettings.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/conversations.leave.json b/json-logs/samples/api/conversations.leave.json index 1b3fc766f..6b6ba1fe1 100644 --- a/json-logs/samples/api/conversations.leave.json +++ b/json-logs/samples/api/conversations.leave.json @@ -2,5 +2,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/conversations.rename.json b/json-logs/samples/api/conversations.rename.json index 2d4151d66..7df54a8d6 100644 --- a/json-logs/samples/api/conversations.rename.json +++ b/json-logs/samples/api/conversations.rename.json @@ -52,5 +52,6 @@ "ok": false, "error": "", "needed": "", - "provided": "" + "provided": "", + "warning": "" } \ No newline at end of file diff --git a/json-logs/samples/api/users.conversations.json b/json-logs/samples/api/users.conversations.json index 0230f312c..1c5152d3f 100644 --- a/json-logs/samples/api/users.conversations.json +++ b/json-logs/samples/api/users.conversations.json @@ -125,7 +125,8 @@ "file_id": "F00000000" }, "is_dormant": false, - "use_case": "" + "use_case": "", + "has_slack_connect_invite_created": false } } ], diff --git a/slack-api-client/src/main/java/com/slack/api/audit/Actions.java b/slack-api-client/src/main/java/com/slack/api/audit/Actions.java index 94b371537..c7b7b4cb6 100644 --- a/slack-api-client/src/main/java/com/slack/api/audit/Actions.java +++ b/slack-api-client/src/main/java/com/slack/api/audit/Actions.java @@ -277,6 +277,58 @@ private WorkspaceOrOrg() { public static final String search_query_audit_logs_export_deleted = "search_query_audit_logs_export_deleted"; public static final String audit_logs_ai_summary_generated = "audit_logs_ai_summary_generated"; public static final String search_query_audit_logs_max_rows_failure = "search_query_audit_logs_max_rows_failure"; + public static final String migration_bulk_email_process_completed = "migration_bulk_email_process_completed"; + public static final String migration_bulk_user_resolutions_uploaded = "migration_bulk_user_resolutions_uploaded"; + public static final String migration_bulk_user_resolutions_undone = "migration_bulk_user_resolutions_undone"; + public static final String migration_bulk_user_resolutions_upload_failed = "migration_bulk_user_resolutions_upload_failed"; + public static final String data_deletion_date_changed = "data_deletion_date_changed"; + public static final String slack_ai_message_explanation_generated = "slack_ai_message_explanation_generated"; + public static final String quip_migration_org_mapping_deleted = "quip_migration_org_mapping_deleted"; + public static final String quip_migration_org_mapping_updated = "quip_migration_org_mapping_updated"; + public static final String salesforce_channels_retention_settings_synced = "salesforce_channels_retention_settings_synced"; + public static final String mcp_slack_read_canvas_tool_called = "mcp_slack_read_canvas_tool_called"; + public static final String mcp_slack_create_canvas_tool_called = "mcp_slack_create_canvas_tool_called"; + public static final String mcp_slack_update_canvas_tool_called = "mcp_slack_update_canvas_tool_called"; + public static final String mcp_slack_read_channel_tool_called = "mcp_slack_read_channel_tool_called"; + public static final String mcp_slack_read_thread_tool_called = "mcp_slack_read_thread_tool_called"; + public static final String mcp_slack_search_public_tool_called = "mcp_slack_search_public_tool_called"; + public static final String mcp_slack_search_channels_tool_called = "mcp_slack_search_channels_tool_called"; + public static final String mcp_slack_search_public_and_private_tool_called = "mcp_slack_search_public_and_private_tool_called"; + public static final String mcp_slack_search_users_tool_called = "mcp_slack_search_users_tool_called"; + public static final String mcp_slack_send_message_tool_called = "mcp_slack_send_message_tool_called"; + public static final String mcp_slack_read_user_profile_tool_called = "mcp_slack_read_user_profile_tool_called"; + public static final String mcp_slack_create_draft_tool_called = "mcp_slack_create_draft_tool_called"; + public static final String mcp_slack_create_draft_message_tool_called = "mcp_slack_create_draft_message_tool_called"; + public static final String mcp_slack_send_message_draft_tool_called = "mcp_slack_send_message_draft_tool_called"; + public static final String mcp_slack_schedule_message_tool_called = "mcp_slack_schedule_message_tool_called"; + public static final String mcp_slack_list_channel_members_tool_called = "mcp_slack_list_channel_members_tool_called"; + public static final String mcp_slack_mark_read_tool_called = "mcp_slack_mark_read_tool_called"; + public static final String mcp_slack_search_emojis_tool_called = "mcp_slack_search_emojis_tool_called"; + public static final String mcp_slack_add_reaction_tool_called = "mcp_slack_add_reaction_tool_called"; + public static final String mcp_slack_get_reactions_tool_called = "mcp_slack_get_reactions_tool_called"; + public static final String mcp_slack_create_conversation_tool_called = "mcp_slack_create_conversation_tool_called"; + public static final String mcp_slack_read_file_tool_called = "mcp_slack_read_file_tool_called"; + public static final String mcp_slack_get_workflow_details_tool_called = "mcp_slack_get_workflow_details_tool_called"; + public static final String mcp_slack_get_workflow_execution_status_tool_called = "mcp_slack_get_workflow_execution_status_tool_called"; + public static final String mcp_slack_canvas_find_replace_tool_called = "mcp_slack_canvas_find_replace_tool_called"; + public static final String mcp_slack_list_workflows_tool_called = "mcp_slack_list_workflows_tool_called"; + public static final String mcp_slack_run_workflow_tool_called = "mcp_slack_run_workflow_tool_called"; + public static final String slack_ai_mcp_tool_called = "slack_ai_mcp_tool_called"; + public static final String slack_ai_mcp_tool_permission_changed = "slack_ai_mcp_tool_permission_changed"; + public static final String slack_ai_mcp_connector_changed = "slack_ai_mcp_connector_changed"; + public static final String custom_tos_link_clicked = "custom_tos_link_clicked"; + public static final String prefs_setting_changed = "prefs_setting_changed"; + public static final String auth_policy_created = "auth_policy_created"; + public static final String auth_policy_entity_assigned = "auth_policy_entity_assigned"; + public static final String auth_policy_entity_removed = "auth_policy_entity_removed"; + public static final String slack_connect_guidelines_changed = "slack_connect_guidelines_changed"; + public static final String slack_connect_pref_set = "slack_connect_pref_set"; + public static final String slack_connect_pref_removed = "slack_connect_pref_removed"; + public static final String slack_connect_pref_migrated = "slack_connect_pref_migrated"; + public static final String pref_allow_cea_for_hippa_team_changed = "pref.allow_cea_for_hippa_team_changed"; + public static final String pref_slackbot_ai_canvas_write_enabled_changed = "pref.slackbot_ai_canvas_write_enabled_changed"; + public static final String pref_show_join_leave_changed = "pref.show_join_leave_changed"; + public static final String pref_show_join_leave_welcome_party_changed = "pref.show_join_leave_welcome_party_changed"; } public static class User { @@ -340,6 +392,15 @@ private User() { public static final String user_anomaly_event_response_allowlist_changed = "user_anomaly_event_response_allowlist_changed"; public static final String org_owner_created = "org_owner_created"; public static final String slackbot_ai_shareable_prompt_created = "slackbot_ai_shareable_prompt_created"; + public static final String user_merged = "user_merged"; + public static final String slack_ai_calendar_read = "slack_ai_calendar_read"; + public static final String slack_ai_calendar_create = "slack_ai_calendar_create"; + public static final String slack_ai_calendar_update = "slack_ai_calendar_update"; + public static final String slackbot_ai_canvas_approval_bypassed = "slackbot_ai_canvas_approval_bypassed"; + public static final String slack_ai_skill_invoked = "slack_ai_skill_invoked"; + public static final String slack_ai_skill_metadata_updated = "slack_ai_skill_metadata_updated"; + public static final String slack_ai_skill_auto_enabled = "slack_ai_skill_auto_enabled"; + public static final String slack_ai_skill_auto_disabled = "slack_ai_skill_auto_disabled"; } public static class File { @@ -435,6 +496,8 @@ private Channel() { public static final String channel_detail_flag_unassignment = "channel_detail_flag_unassignment"; public static final String channel_detail_flag_moderated = "channel_detail_flag_moderated"; public static final String channel_detail_flag_dismissed = "channel_detail_flag_dismissed"; + public static final String channel_exclude_from_slack_ai_updated = "channel_exclude_from_slack_ai_updated"; + public static final String service_owner_transferred = "service_owner_transferred"; } public static class App { @@ -480,6 +543,16 @@ private App() { public static final String agentforce_agent_actions_updated = "agentforce_agent_actions_updated"; public static final String agentforce_agent_metadata_updated = "agentforce_agent_metadata_updated"; public static final String agentforce_agent_slack_deleted = "agentforce_agent_slack_deleted"; + public static final String child_app_auto_installed = "child_app_auto_installed"; + public static final String child_app_auto_install_denied = "child_app_auto_install_denied"; + public static final String child_app_auto_install_rule_created = "child_app_auto_install_rule_created"; + public static final String child_app_manifest_created = "child_app_manifest_created"; + public static final String child_app_manifest_updated = "child_app_manifest_updated"; + public static final String child_app_manifest_deleted = "child_app_manifest_deleted"; + public static final String child_app_manifest_exported = "child_app_manifest_exported"; + public static final String app_mcp_server_added = "app_mcp_server_added"; + public static final String app_mcp_server_updated = "app_mcp_server_updated"; + public static final String app_mcp_server_removed = "app_mcp_server_removed"; } public static class Message { @@ -597,6 +670,7 @@ private Subteam() { public static final String usergroup_section_updated = "usergroup_section_updated"; public static final String user_add_to_usergroup_failed = "user_add_to_usergroup_failed"; public static final String usergroup_anomaly_event_response_allowlist_changed = "usergroup_anomaly_event_response_allowlist_changed"; + public static final String user_bulk_upload_to_usergroup_started = "user_bulk_upload_to_usergroup_started"; } public static class AccountTypeRole { @@ -629,6 +703,10 @@ private WorkflowV2() { public static final String workflow_trigger_permission_added = "workflow_trigger_permission_added"; public static final String workflow_trigger_permission_removed = "workflow_trigger_permission_removed"; public static final String workflow_trigger_suspicious_keyword = "workflow_trigger_suspicious_keyword"; + public static final String workflow_ai_answer_suspicious_prompt = "workflow_ai_answer_suspicious_prompt"; + public static final String external_auth_oauth2_token_fetched = "external_auth_oauth2_token_fetched"; + public static final String external_auth_oauth2_token_refreshed = "external_auth_oauth2_token_refreshed"; + public static final String external_auth_oauth2_token_deleted = "external_auth_oauth2_token_deleted"; } public static class Canvas { @@ -662,6 +740,9 @@ private Canvas() { public static final String canvas_converted_to_standalone = "canvas_converted_to_standalone"; public static final String canvas_quip_migration_undone = "canvas_quip_migration_undone"; public static final String slack_ai_canvas_content_generated = "slack_ai_canvas_content_generated"; + public static final String canvas_slack_ai_exclusion_enabled = "canvas_slack_ai_exclusion_enabled"; + public static final String canvas_slack_ai_exclusion_disabled = "canvas_slack_ai_exclusion_disabled"; + public static final String canvas_share_limit_reached = "canvas_share_limit_reached"; } public static class Function { @@ -698,6 +779,7 @@ private NativeDlp() { public static final String native_dlp_rule_reactivated = "native_dlp_rule_reactivated"; public static final String native_dlp_rule_edited = "native_dlp_rule_edited"; public static final String native_dlp_rule_action_applied = "native_dlp_rule_action_applied"; + public static final String native_dlp_violation_deleted = "native_dlp_violation_deleted"; } public static class Template { @@ -756,5 +838,39 @@ private List() { public static final String list_restricted_sharing_disabled = "list_restricted_sharing_disabled"; public static final String list_rows_undeleted = "list_rows_undeleted"; public static final String list_default_view_updated = "list_default_view_updated"; + public static final String list_slack_ai_exclusion_enabled = "list_slack_ai_exclusion_enabled"; + public static final String list_slack_ai_exclusion_disabled = "list_slack_ai_exclusion_disabled"; + public static final String list_share_limit_reached = "list_share_limit_reached"; + } + + public static class LegalHold { + private LegalHold() { + } + + public static final String legal_hold_policy_created = "legal_hold_policy_created"; + public static final String legal_hold_policy_updated = "legal_hold_policy_updated"; + public static final String legal_hold_policy_released = "legal_hold_policy_released"; + public static final String legal_hold_policy_reactivated = "legal_hold_policy_reactivated"; + public static final String legal_hold_policy_entities_added = "legal_hold_policy_entities_added"; + public static final String legal_hold_policy_entities_deleted = "legal_hold_policy_entities_deleted"; + public static final String legal_hold_policy_exclusion_added = "legal_hold_policy_exclusion_added"; + public static final String legal_hold_policy_exclusion_deleted = "legal_hold_policy_exclusion_deleted"; + } + + public static class SlackFirstCrm { + private SlackFirstCrm() { + } + + public static final String contacts_import_initiated = "contacts_import_initiated"; + public static final String contacts_import_completed = "contacts_import_completed"; + public static final String contacts_import_failed = "contacts_import_failed"; + public static final String object_import_initiated = "object_import_initiated"; + public static final String object_import_completed = "object_import_completed"; + public static final String object_import_failed = "object_import_failed"; + public static final String field_created = "field_created"; + public static final String field_updated = "field_updated"; + public static final String field_visibility_updated = "field_visibility_updated"; + public static final String license_assigned = "license_assigned"; + public static final String license_removed = "license_removed"; } } diff --git a/slack-api-client/src/test/java/test_with_remote_apis/audit/ApiTest.java b/slack-api-client/src/test/java/test_with_remote_apis/audit/ApiTest.java index c04a83c82..d9e2165e2 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/audit/ApiTest.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/audit/ApiTest.java @@ -293,6 +293,18 @@ public void getActions_detectingNewOnes() throws IOException, AuditApiException fail("Unknown action detected - " + action); } } + List legalHoldNames = getAllPublicStaticFieldValues(Actions.LegalHold.class); + for (String action : actions.getLegalHold()) { + if (!legalHoldNames.contains(action)) { + fail("Unknown action detected - " + action); + } + } + List slackFirstCrmNames = getAllPublicStaticFieldValues(Actions.SlackFirstCrm.class); + for (String action : actions.getSlackFirstCrm()) { + if (!slackFirstCrmNames.contains(action)) { + fail("Unknown action detected - " + action); + } + } } @Test @@ -370,6 +382,8 @@ public void getLogs_all_actions() throws Exception { verifyAllActions(orgAdminUserToken, Actions.AppApprovalAutomationRule.class); verifyAllActions(orgAdminUserToken, Actions.SalesElevate.class); verifyAllActions(orgAdminUserToken, Actions.NativeDlp.class); + verifyAllActions(orgAdminUserToken, Actions.LegalHold.class); + verifyAllActions(orgAdminUserToken, Actions.SlackFirstCrm.class); // As all the properties are available in LogsResponse class, // we'll re-generate the sample JSON file. diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods/conversations_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods/conversations_Test.java index 6886b733d..c3b62493e 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/methods/conversations_Test.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/methods/conversations_Test.java @@ -228,10 +228,13 @@ public void channelConversation() throws Exception { // Using async client to avoid an exception due to rate limited errors UsersListResponse usersListResponse = slack.methodsAsync().usersList(r -> r.token(botToken)).get(); + // Exclude the userToken's user to avoid cant_kick_self when kicking with userToken + String userTokenUserId = slack.methods().authTest(r -> r.token(userToken)).getUserId(); String invitee_ = null; for (User u : usersListResponse.getMembers()) { if (!"USLACKBOT".equals(u.getId()) && !u.isBot() + && !u.getId().equals(userTokenUserId) && !membersResponse.getMembers().contains(u.getId()) && !u.isRestricted() && !u.isUltraRestricted()) { diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_conversations_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_conversations_Test.java index f22f5937c..3d0cc11a5 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_conversations_Test.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_conversations_Test.java @@ -244,11 +244,11 @@ public void changeSharedChannels() throws Exception { } static String getOrCreatePrivateChannel() throws Exception { - List privateChannels = slack.methods(teamAdminUserToken).conversationsList(r -> r - .excludeArchived(true).types(Arrays.asList(ConversationType.PRIVATE_CHANNEL)).limit(1)).getChannels(); + List privateChannels = slack.methods(orgAdminUserToken).conversationsList(r -> r + .teamId(teamId).excludeArchived(true).types(Arrays.asList(ConversationType.PRIVATE_CHANNEL)).limit(1)).getChannels(); if (privateChannels.size() == 0 || privateChannels.get(0).isShared()) { String name = "private-test-" + System.currentTimeMillis(); - ConversationsCreateResponse creation = slack.methods(teamAdminUserToken).conversationsCreate(r -> r.name(name).isPrivate(true)); + ConversationsCreateResponse creation = slack.methods(orgAdminUserToken).conversationsCreate(r -> r.name(name).teamId(teamId).isPrivate(true)); return creation.getChannel().getId(); } else { return privateChannels.get(0).getId(); diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_roles_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_roles_Test.java index a3b677ae4..afec1a6e5 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_roles_Test.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_roles_Test.java @@ -54,8 +54,9 @@ public void listRoleAssignments() throws Exception { public void addAndRemoveAssignments() throws Exception { if (orgAdminUserToken != null) { String userId = orgAdminMethodsAsync.authTest(r -> r).get().getUserId(); - String channelId = workspaceAdminMethodsAsync.usersConversations(r -> r - .user(userId).excludeArchived(true).limit(1) + String teamId = System.getenv(Constants.SLACK_SDK_TEST_GRID_TEAM_ID); + String channelId = orgAdminMethodsAsync.usersConversations(r -> r + .user(userId).teamId(teamId).excludeArchived(true).limit(1) ).get().getChannels().get(0).getId(); AdminRolesAddAssignmentsResponse addition = orgAdminMethodsAsync.adminRolesAddAssignments(r -> r .roleId("Rl0A") diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_teams_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_teams_Test.java index b502341ea..ff8b80c42 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_teams_Test.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_teams_Test.java @@ -136,7 +136,8 @@ public void teams_settings() throws Exception { AdminTeamsSettingsInfoResponse info = methodsAsync.adminTeamsSettingsInfo(r -> r.teamId(teamId)).get(); assertThat(info.getError(), is(nullValue())); - List channelIds = slack.methods(teamAdminUserToken).conversationsList(r -> r + List channelIds = slack.methods(orgAdminUserToken).conversationsList(r -> r + .teamId(teamId) .excludeArchived(true) .types(Arrays.asList(ConversationType.PUBLIC_CHANNEL)) .limit(2) diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_users_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_users_Test.java index afb4ae959..397628b38 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_users_Test.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_users_Test.java @@ -209,7 +209,7 @@ private String findUserId(List idsToSkip) throws Exception { private List findUserIds(int num, List idsToSkip) throws Exception { List userIds = new ArrayList<>(); - UsersListResponse usersListResponse = slack.methodsAsync(teamAdminUserToken).usersList(req -> req).get(); + UsersListResponse usersListResponse = slack.methodsAsync(orgAdminUserToken).usersList(req -> req.teamId(teamId)).get(); assertThat(usersListResponse.getError(), is(nullValue())); List members = usersListResponse.getMembers(); for (User member : members) { diff --git a/slack-api-model/src/main/java/com/slack/api/model/Message.java b/slack-api-model/src/main/java/com/slack/api/model/Message.java index 60741c1b9..ea991ddb1 100644 --- a/slack-api-model/src/main/java/com/slack/api/model/Message.java +++ b/slack-api-model/src/main/java/com/slack/api/model/Message.java @@ -269,4 +269,16 @@ public static class AssistantAppThread { private AssistantAppThread assistantAppThread; private String streamingState; + + private Language language; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Language { + private String locale; + @SerializedName("is_reliable") + private boolean reliable; + } }