diff --git a/json-logs/samples/api/admin.users.getExpiration.json b/json-logs/samples/api/admin.users.getExpiration.json new file mode 100644 index 000000000..05aa4411b --- /dev/null +++ b/json-logs/samples/api/admin.users.getExpiration.json @@ -0,0 +1,14 @@ +{ + "ok": true, + "error": "", + "needed": "", + "provided": "", + "user": { + "id": "W00000000", + "email": "", + "is_restricted": false, + "is_ultra_restricted": true, + "expiration_ts": 12345 + } +} + diff --git a/metadata/web-api/rate_limit_tiers.json b/metadata/web-api/rate_limit_tiers.json index 0ab1ab567..ba7956c74 100644 --- a/metadata/web-api/rate_limit_tiers.json +++ b/metadata/web-api/rate_limit_tiers.json @@ -77,6 +77,7 @@ "admin.usergroups.listChannels": "Tier2", "admin.usergroups.removeChannels": "Tier2", "admin.users.assign": "Tier2", + "admin.users.getExpiration": "Tier4", "admin.users.invite": "Tier2", "admin.users.list": "Tier3", "admin.users.remove": "Tier2", diff --git a/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java b/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java index 848b11890..7566d7643 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java @@ -696,6 +696,10 @@ CompletableFuture CompletableFuture adminUsersAssign(RequestConfigurator req); + CompletableFuture adminUsersGetExpiration(AdminUsersGetExpirationRequest req); + + CompletableFuture adminUsersGetExpiration(RequestConfigurator req); + CompletableFuture adminUsersInvite(AdminUsersInviteRequest req); CompletableFuture adminUsersInvite(RequestConfigurator req); diff --git a/slack-api-client/src/main/java/com/slack/api/methods/Methods.java b/slack-api-client/src/main/java/com/slack/api/methods/Methods.java index 14e39ae20..22702c87c 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/Methods.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/Methods.java @@ -182,6 +182,7 @@ private Methods() { // ------------------------------ public static final String ADMIN_USERS_ASSIGN = "admin.users.assign"; + public static final String ADMIN_USERS_GET_EXPIRATION= "admin.users.getExpiration"; public static final String ADMIN_USERS_INVITE = "admin.users.invite"; public static final String ADMIN_USERS_LIST = "admin.users.list"; public static final String ADMIN_USERS_REMOVE = "admin.users.remove"; diff --git a/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java b/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java index 121d4cb2c..784d2e969 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java @@ -977,6 +977,12 @@ AdminUsersAssignResponse adminUsersAssign( RequestConfigurator req) throws IOException, SlackApiException; + AdminUsersGetExpirationResponse adminUsersGetExpiration(AdminUsersGetExpirationRequest req) throws IOException, SlackApiException; + + AdminUsersGetExpirationResponse adminUsersGetExpiration( + RequestConfigurator req) + throws IOException, SlackApiException; + AdminUsersInviteResponse adminUsersInvite(AdminUsersInviteRequest req) throws IOException, SlackApiException; AdminUsersInviteResponse adminUsersInvite( diff --git a/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java b/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java index 5e26cde7d..0c3fdb14a 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java @@ -184,6 +184,7 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier // Tier4 final List adminApiMethods_Tier4 = Arrays.asList( + ADMIN_USERS_GET_EXPIRATION, ADMIN_USERS_SESSION_GET_SETTINGS, ADMIN_USERS_SESSION_SET_SETTINGS, ADMIN_USERS_SESSION_CLEAR_SETTINGS, diff --git a/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java b/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java index bd84b961b..455387faa 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java @@ -913,6 +913,13 @@ public static FormBody.Builder toForm(AdminUsersAssignRequest req) { return form; } + public static FormBody.Builder toForm(AdminUsersGetExpirationRequest req) { + FormBody.Builder form = new FormBody.Builder(); + setIfNotNull("user_id", req.getUserId(), form); + setIfNotNull("target_team", req.getTargetTeam(), form); + return form; + } + public static FormBody.Builder toForm(AdminUsersInviteRequest req) { FormBody.Builder form = new FormBody.Builder(); setIfNotNull("channel_ids", req.getChannelIds().stream().collect(joining(",")), form); diff --git a/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java b/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java index e20724d87..a4d0b64a2 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java @@ -1105,6 +1105,16 @@ public CompletableFuture adminUsersAssign(RequestConfi return adminUsersAssign(req.configure(AdminUsersAssignRequest.builder()).build()); } + @Override + public CompletableFuture adminUsersGetExpiration(AdminUsersGetExpirationRequest req) { + return executor.execute(ADMIN_USERS_GET_EXPIRATION, toMap(req), () -> methods.adminUsersGetExpiration(req)); + } + + @Override + public CompletableFuture adminUsersGetExpiration(RequestConfigurator req) { + return adminUsersGetExpiration(req.configure(AdminUsersGetExpirationRequest.builder()).build()); + } + @Override public CompletableFuture adminUsersInvite(AdminUsersInviteRequest req) { return executor.execute(ADMIN_USERS_INVITE, toMap(req), () -> methods.adminUsersInvite(req)); diff --git a/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java b/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java index 63fad5b96..ac9fcf215 100644 --- a/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java +++ b/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java @@ -1146,6 +1146,16 @@ public AdminUsersAssignResponse adminUsersAssign(RequestConfigurator req) throws IOException, SlackApiException { + return adminUsersGetExpiration(req.configure(AdminUsersGetExpirationRequest.builder()).build()); + } + + @Override + public AdminUsersGetExpirationResponse adminUsersGetExpiration(AdminUsersGetExpirationRequest req) throws IOException, SlackApiException { + return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_USERS_GET_EXPIRATION, getToken(req), AdminUsersGetExpirationResponse.class); + } + @Override public AdminUsersInviteResponse adminUsersInvite(AdminUsersInviteRequest req) throws IOException, SlackApiException { return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_USERS_INVITE, getToken(req), AdminUsersInviteResponse.class); diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/admin/users/AdminUsersGetExpirationRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/admin/users/AdminUsersGetExpirationRequest.java new file mode 100644 index 000000000..e58f9d936 --- /dev/null +++ b/slack-api-client/src/main/java/com/slack/api/methods/request/admin/users/AdminUsersGetExpirationRequest.java @@ -0,0 +1,29 @@ +package com.slack.api.methods.request.admin.users; + +import com.slack.api.methods.SlackApiRequest; +import lombok.Builder; +import lombok.Data; + +/** + * https://docs.slack.dev/reference/methods/admin.users.getExpiration/ + */ +@Data +@Builder +public class AdminUsersGetExpirationRequest implements SlackApiRequest { + + /** + * Authentication token bearing required scopes. + */ + private String token; + + /** + * The ID of the user to add to the workspace. + */ + private String userId; + + /** + * Workspace Id. + */ + private String targetTeam; +} + diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/admin/users/AdminUsersGetExpirationResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/admin/users/AdminUsersGetExpirationResponse.java new file mode 100644 index 000000000..267413523 --- /dev/null +++ b/slack-api-client/src/main/java/com/slack/api/methods/response/admin/users/AdminUsersGetExpirationResponse.java @@ -0,0 +1,24 @@ +package com.slack.api.methods.response.admin.users; + +import com.slack.api.methods.SlackApiTextResponse; +import com.slack.api.model.ErrorResponseMetadata; +import com.slack.api.model.User; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class AdminUsersGetExpirationResponse implements SlackApiTextResponse { + + private boolean ok; + private String warning; + private String error; + private String needed; + private String provided; + private transient Map> httpResponseHeaders; + + private ErrorResponseMetadata responseMetadata; + private User user; +} + diff --git a/slack-api-client/src/test/java/test_locally/api/MethodsTest.java b/slack-api-client/src/test/java/test_locally/api/MethodsTest.java index 1f9e5f682..9aaeb030c 100644 --- a/slack-api-client/src/test/java/test_locally/api/MethodsTest.java +++ b/slack-api-client/src/test/java/test_locally/api/MethodsTest.java @@ -19,8 +19,8 @@ public class MethodsTest { public void verifyTheCoverage() { // https://docs.slack.dev/reference/methods // var methodNames = [].slice.call(document.getElementsByClassName('apiReferenceFilterableList__listItemLink')).map(e => e.href.replace("https://docs.slack.dev/reference/methods/", ""));console.log(methodNames.toString());console.log(methodNames.length); - // 307 endpoints as of December 16, 2025 - String methods = "admin.analytics.getFile,admin.apps.activities.list,admin.apps.approve,admin.apps.clearResolution,admin.apps.restrict,admin.apps.uninstall,admin.apps.approved.list,admin.apps.config.lookup,admin.apps.config.set,admin.apps.requests.cancel,admin.apps.requests.list,admin.apps.restricted.list,admin.audit.anomaly.allow.getItem,admin.audit.anomaly.allow.updateItem,admin.auth.policy.assignEntities,admin.auth.policy.getEntities,admin.auth.policy.removeEntities,admin.barriers.create,admin.barriers.delete,admin.barriers.list,admin.barriers.update,admin.conversations.archive,admin.conversations.bulkArchive,admin.conversations.bulkDelete,admin.conversations.bulkMove,admin.conversations.convertToPrivate,admin.conversations.convertToPublic,admin.conversations.create,admin.conversations.createForObjects,admin.conversations.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,admin.conversations.linkObjects,admin.conversations.lookup,admin.conversations.removeCustomRetention,admin.conversations.rename,admin.conversations.search,admin.conversations.setConversationPrefs,admin.conversations.setCustomRetention,admin.conversations.setTeams,admin.conversations.unarchive,admin.conversations.unlinkObjects,admin.conversations.ekm.listOriginalConnectedChannelInfo,admin.conversations.restrictAccess.addGroup,admin.conversations.restrictAccess.listGroups,admin.conversations.restrictAccess.removeGroup,admin.emoji.add,admin.emoji.addAlias,admin.emoji.list,admin.emoji.remove,admin.emoji.rename,admin.functions.list,admin.functions.permissions.lookup,admin.functions.permissions.set,admin.inviteRequests.approve,admin.inviteRequests.deny,admin.inviteRequests.list,admin.inviteRequests.approved.list,admin.inviteRequests.denied.list,admin.roles.addAssignments,admin.roles.listAssignments,admin.roles.removeAssignments,admin.teams.admins.list,admin.teams.create,admin.teams.list,admin.teams.owners.list,admin.teams.settings.info,admin.teams.settings.setDefaultChannels,admin.teams.settings.setDescription,admin.teams.settings.setDiscoverability,admin.teams.settings.setIcon,admin.teams.settings.setName,admin.usergroups.addChannels,admin.usergroups.addTeams,admin.usergroups.listChannels,admin.usergroups.removeChannels,admin.users.assign,admin.users.invite,admin.users.list,admin.users.remove,admin.users.setAdmin,admin.users.setExpiration,admin.users.setOwner,admin.users.setRegular,admin.users.session.clearSettings,admin.users.session.getSettings,admin.users.session.invalidate,admin.users.session.list,admin.users.session.reset,admin.users.session.resetBulk,admin.users.session.setSettings,admin.users.unsupportedVersions.export,admin.workflows.collaborators.add,admin.workflows.collaborators.remove,admin.workflows.permissions.lookup,admin.workflows.search,admin.workflows.unpublish,admin.workflows.triggers.types.permissions.lookup,admin.workflows.triggers.types.permissions.set,api.test,apps.activities.list,apps.auth.external.delete,apps.auth.external.get,apps.connections.open,apps.datastore.bulkDelete,apps.datastore.bulkGet,apps.datastore.bulkPut,apps.datastore.count,apps.datastore.delete,apps.datastore.get,apps.datastore.put,apps.datastore.query,apps.datastore.update,apps.event.authorizations.list,apps.manifest.create,apps.manifest.delete,apps.manifest.export,apps.manifest.update,apps.manifest.validate,apps.uninstall,assistant.search.context,assistant.threads.setStatus,assistant.threads.setSuggestedPrompts,assistant.threads.setTitle,auth.revoke,auth.test,auth.teams.list,bookmarks.add,bookmarks.edit,bookmarks.list,bookmarks.remove,bots.info,calls.add,calls.end,calls.info,calls.update,calls.participants.add,calls.participants.remove,canvases.access.delete,canvases.access.set,canvases.create,canvases.delete,canvases.edit,canvases.sections.lookup,channels.mark,chat.appendStream,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,chat.startStream,chat.stopStream,chat.unfurl,chat.update,chat.scheduledMessages.list,conversations.acceptSharedInvite,conversations.approveSharedInvite,conversations.archive,conversations.close,conversations.create,conversations.declineSharedInvite,conversations.history,conversations.info,conversations.invite,conversations.inviteShared,conversations.join,conversations.kick,conversations.leave,conversations.list,conversations.listConnectInvites,conversations.mark,conversations.members,conversations.open,conversations.rename,conversations.replies,conversations.setPurpose,conversations.setTopic,conversations.unarchive,conversations.canvases.create,conversations.externalInvitePermissions.set,conversations.requestSharedInvite.approve,conversations.requestSharedInvite.deny,conversations.requestSharedInvite.list,dialog.open,dnd.endDnd,dnd.endSnooze,dnd.info,dnd.setSnooze,dnd.teamInfo,emoji.list,files.comments.delete,files.completeUploadExternal,files.delete,files.getUploadURLExternal,files.info,files.list,files.revokePublicURL,files.sharedPublicURL,files.upload,files.remote.add,files.remote.info,files.remote.list,files.remote.remove,files.remote.share,files.remote.update,functions.completeError,functions.completeSuccess,functions.distributions.permissions.add,functions.distributions.permissions.list,functions.distributions.permissions.remove,functions.distributions.permissions.set,functions.workflows.steps.list,functions.workflows.steps.responses.export,groups.mark,migration.exchange,oauth.access,oauth.v2.access,oauth.v2.exchange,openid.connect.token,openid.connect.userInfo,pins.add,pins.list,pins.remove,reactions.add,reactions.get,reactions.list,reactions.remove,reminders.add,reminders.complete,reminders.delete,reminders.info,reminders.list,rtm.connect,rtm.start,search.all,search.files,search.messages,slackLists.access.delete,slackLists.access.set,slackLists.create,slackLists.download.get,slackLists.download.start,slackLists.items.create,slackLists.items.delete,slackLists.items.deleteMultiple,slackLists.items.info,slackLists.items.list,slackLists.items.update,slackLists.update,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,team.externalTeams.disconnect,team.externalTeams.list,team.preferences.list,team.profile.get,tooling.tokens.rotate,usergroups.create,usergroups.disable,usergroups.enable,usergroups.list,usergroups.update,usergroups.users.list,usergroups.users.update,users.conversations,users.deletePhoto,users.getPresence,users.identity,users.info,users.list,users.lookupByEmail,users.setActive,users.setPhoto,users.setPresence,users.discoverableContacts.lookup,users.profile.get,users.profile.set,views.open,views.publish,views.push,views.update,workflows.featured.add,workflows.featured.list,workflows.featured.remove,workflows.featured.set,workflows.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,im.list,im.mark,mpim.list,mpim.mark"; + // 307 endpoints as of December 18, 2025 + String methods = "admin.analytics.getFile,admin.apps.activities.list,admin.apps.approve,admin.apps.clearResolution,admin.apps.restrict,admin.apps.uninstall,admin.apps.approved.list,admin.apps.config.lookup,admin.apps.config.set,admin.apps.requests.cancel,admin.apps.requests.list,admin.apps.restricted.list,admin.audit.anomaly.allow.getItem,admin.audit.anomaly.allow.updateItem,admin.auth.policy.assignEntities,admin.auth.policy.getEntities,admin.auth.policy.removeEntities,admin.barriers.create,admin.barriers.delete,admin.barriers.list,admin.barriers.update,admin.conversations.archive,admin.conversations.bulkArchive,admin.conversations.bulkDelete,admin.conversations.bulkMove,admin.conversations.convertToPrivate,admin.conversations.convertToPublic,admin.conversations.create,admin.conversations.createForObjects,admin.conversations.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,admin.conversations.linkObjects,admin.conversations.lookup,admin.conversations.removeCustomRetention,admin.conversations.rename,admin.conversations.search,admin.conversations.setConversationPrefs,admin.conversations.setCustomRetention,admin.conversations.setTeams,admin.conversations.unarchive,admin.conversations.unlinkObjects,admin.conversations.ekm.listOriginalConnectedChannelInfo,admin.conversations.restrictAccess.addGroup,admin.conversations.restrictAccess.listGroups,admin.conversations.restrictAccess.removeGroup,admin.emoji.add,admin.emoji.addAlias,admin.emoji.list,admin.emoji.remove,admin.emoji.rename,admin.functions.list,admin.functions.permissions.lookup,admin.functions.permissions.set,admin.inviteRequests.approve,admin.inviteRequests.deny,admin.inviteRequests.list,admin.inviteRequests.approved.list,admin.inviteRequests.denied.list,admin.roles.addAssignments,admin.roles.listAssignments,admin.roles.removeAssignments,admin.teams.admins.list,admin.teams.create,admin.teams.list,admin.teams.owners.list,admin.teams.settings.info,admin.teams.settings.setDefaultChannels,admin.teams.settings.setDescription,admin.teams.settings.setDiscoverability,admin.teams.settings.setIcon,admin.teams.settings.setName,admin.usergroups.addChannels,admin.usergroups.addTeams,admin.usergroups.listChannels,admin.usergroups.removeChannels,admin.users.assign,admin.users.getExpiration,admin.users.invite,admin.users.list,admin.users.remove,admin.users.setAdmin,admin.users.setExpiration,admin.users.setOwner,admin.users.setRegular,admin.users.session.clearSettings,admin.users.session.getSettings,admin.users.session.invalidate,admin.users.session.list,admin.users.session.reset,admin.users.session.resetBulk,admin.users.session.setSettings,admin.users.unsupportedVersions.export,admin.workflows.collaborators.add,admin.workflows.collaborators.remove,admin.workflows.permissions.lookup,admin.workflows.search,admin.workflows.unpublish,admin.workflows.triggers.types.permissions.lookup,admin.workflows.triggers.types.permissions.set,api.test,apps.activities.list,apps.auth.external.delete,apps.auth.external.get,apps.connections.open,apps.datastore.bulkDelete,apps.datastore.bulkGet,apps.datastore.bulkPut,apps.datastore.count,apps.datastore.delete,apps.datastore.get,apps.datastore.put,apps.datastore.query,apps.datastore.update,apps.event.authorizations.list,apps.manifest.create,apps.manifest.delete,apps.manifest.export,apps.manifest.update,apps.manifest.validate,apps.uninstall,assistant.search.context,assistant.threads.setStatus,assistant.threads.setSuggestedPrompts,assistant.threads.setTitle,auth.revoke,auth.test,auth.teams.list,bookmarks.add,bookmarks.edit,bookmarks.list,bookmarks.remove,bots.info,calls.add,calls.end,calls.info,calls.update,calls.participants.add,calls.participants.remove,canvases.access.delete,canvases.access.set,canvases.create,canvases.delete,canvases.edit,canvases.sections.lookup,channels.mark,chat.appendStream,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,chat.startStream,chat.stopStream,chat.unfurl,chat.update,chat.scheduledMessages.list,conversations.acceptSharedInvite,conversations.approveSharedInvite,conversations.archive,conversations.close,conversations.create,conversations.declineSharedInvite,conversations.history,conversations.info,conversations.invite,conversations.inviteShared,conversations.join,conversations.kick,conversations.leave,conversations.list,conversations.listConnectInvites,conversations.mark,conversations.members,conversations.open,conversations.rename,conversations.replies,conversations.setPurpose,conversations.setTopic,conversations.unarchive,conversations.canvases.create,conversations.externalInvitePermissions.set,conversations.requestSharedInvite.approve,conversations.requestSharedInvite.deny,conversations.requestSharedInvite.list,dialog.open,dnd.endDnd,dnd.endSnooze,dnd.info,dnd.setSnooze,dnd.teamInfo,emoji.list,files.comments.delete,files.completeUploadExternal,files.delete,files.getUploadURLExternal,files.info,files.list,files.revokePublicURL,files.sharedPublicURL,files.upload,files.remote.add,files.remote.info,files.remote.list,files.remote.remove,files.remote.share,files.remote.update,functions.completeError,functions.completeSuccess,functions.distributions.permissions.add,functions.distributions.permissions.list,functions.distributions.permissions.remove,functions.distributions.permissions.set,functions.workflows.steps.list,functions.workflows.steps.responses.export,groups.mark,migration.exchange,oauth.access,oauth.v2.access,oauth.v2.exchange,openid.connect.token,openid.connect.userInfo,pins.add,pins.list,pins.remove,reactions.add,reactions.get,reactions.list,reactions.remove,reminders.add,reminders.complete,reminders.delete,reminders.info,reminders.list,rtm.connect,rtm.start,search.all,search.files,search.messages,slackLists.access.delete,slackLists.access.set,slackLists.create,slackLists.download.get,slackLists.download.start,slackLists.items.create,slackLists.items.delete,slackLists.items.deleteMultiple,slackLists.items.info,slackLists.items.list,slackLists.items.update,slackLists.update,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,team.externalTeams.disconnect,team.externalTeams.list,team.preferences.list,team.profile.get,tooling.tokens.rotate,usergroups.create,usergroups.disable,usergroups.enable,usergroups.list,usergroups.update,usergroups.users.list,usergroups.users.update,users.conversations,users.deletePhoto,users.getPresence,users.identity,users.info,users.list,users.lookupByEmail,users.setActive,users.setPhoto,users.setPresence,users.discoverableContacts.lookup,users.profile.get,users.profile.set,views.open,views.publish,views.push,views.update,workflows.featured.add,workflows.featured.list,workflows.featured.remove,workflows.featured.set,workflows.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,im.list,im.mark,mpim.list,mpim.mark"; final List existingMethods = new ArrayList<>(); for (Field f : Methods.class.getDeclaredFields()) { int modifiers = f.getModifiers(); diff --git a/slack-api-client/src/test/java/test_locally/api/methods_admin_api/AdminApiTest.java b/slack-api-client/src/test/java/test_locally/api/methods_admin_api/AdminApiTest.java index b98d730c7..5456d9b01 100644 --- a/slack-api-client/src/test/java/test_locally/api/methods_admin_api/AdminApiTest.java +++ b/slack-api-client/src/test/java/test_locally/api/methods_admin_api/AdminApiTest.java @@ -227,6 +227,8 @@ public void adminUsers() throws Exception { assertThat(methods.adminUsersAssign(r -> r.teamId("T123").userId("U123").isRestricted(false)) .isOk(), is(true)); + assertThat(methods.adminUsersGetExpiration(r -> r.userId("U123").targetTeam("T123")) + .isOk(), is(true)); assertThat(methods.adminUsersInvite(r -> r.teamId("T123").channelIds(Arrays.asList("C123")).email("who@example.com")) .isOk(), is(true)); 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 ef846a20a..afb4ae959 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 @@ -159,6 +159,13 @@ public void users() throws Exception { ).get(); // TODO: Fix "failed_to_validate_expiration" that can be raised here (as of June 2022) assertThat(response.getError(), is(anyOf(nullValue(), is("failed_to_validate_expiration")))); + + // Test getExpiration + AdminUsersGetExpirationResponse getExpirationResponse = methodsAsync.adminUsersGetExpiration(r -> r + .userId(guestUserId) + .targetTeam(teamId) + ).get(); + assertThat(getExpirationResponse.getError(), is(anyOf(nullValue(), is("failed_to_validate_expiration")))); } } }