diff --git a/.changeset/admin-users-get-expiration.md b/.changeset/admin-users-get-expiration.md new file mode 100644 index 000000000..9631e7c4e --- /dev/null +++ b/.changeset/admin-users-get-expiration.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add support for [`admin.users.getExpiration`](https://docs.slack.dev/reference/methods/admin.users.getExpiration) diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 462060320..5a23001d8 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -77,6 +77,7 @@ import type { AdminUsergroupsListChannelsArguments, AdminUsergroupsRemoveChannelsArguments, AdminUsersAssignArguments, + AdminUsersGetExpirationArguments, AdminUsersInviteArguments, AdminUsersListArguments, AdminUsersRemoveArguments, @@ -346,6 +347,7 @@ import type { AdminUsergroupsListChannelsResponse, AdminUsergroupsRemoveChannelsResponse, AdminUsersAssignResponse, + AdminUsersGetExpirationResponse, AdminUsersInviteResponse, AdminUsersListResponse, AdminUsersRemoveResponse, @@ -1202,6 +1204,14 @@ export abstract class Methods extends EventEmitter { * @see {@link https://docs.slack.dev/reference/methods/admin.users.assign `admin.users.assign` API reference}. */ assign: bindApiCall(this, 'admin.users.assign'), + /** + * @description Fetches the expiration timestamp for a guest. + * @see {@link https://docs.slack.dev/reference/methods/admin.users.getExpiration `admin.users.getExpiration` API reference}. + */ + getExpiration: bindApiCall( + this, + 'admin.users.getExpiration', + ), /** * @description Invite a user to a workspace. * @see {@link https://docs.slack.dev/reference/methods/admin.users.invite `admin.users.invite` API reference}. diff --git a/packages/web-api/src/types/request/admin/users.ts b/packages/web-api/src/types/request/admin/users.ts index 47382fea1..fa68105cc 100644 --- a/packages/web-api/src/types/request/admin/users.ts +++ b/packages/web-api/src/types/request/admin/users.ts @@ -59,6 +59,16 @@ export interface AdminUsersAssignArguments IsUltraRestricted, TokenOverridable {} +// https://docs.slack.dev/reference/methods/admin.users.getExpiration +export interface AdminUsersGetExpirationArguments extends TokenOverridable { + /** @description The ID of the guest user to get the expiration for. */ + user_id?: string; + /** + * @description If an org token is passed in and this team is on the org, it will operate on the workspace level + * on the specified team. Otherwise it will operate on the org or team in context. */ + target_team?: string; +} + // https://docs.slack.dev/reference/methods/admin.users.invite export interface AdminUsersInviteArguments extends ChannelIDs, diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index 112bfa46e..44f1fa877 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -94,6 +94,7 @@ export type { } from './admin/usergroups'; export type { AdminUsersAssignArguments, + AdminUsersGetExpirationArguments, AdminUsersInviteArguments, AdminUsersListArguments, AdminUsersRemoveArguments, diff --git a/packages/web-api/src/types/response/AdminUsersGetExpirationResponse.ts b/packages/web-api/src/types/response/AdminUsersGetExpirationResponse.ts new file mode 100644 index 000000000..38103d307 --- /dev/null +++ b/packages/web-api/src/types/response/AdminUsersGetExpirationResponse.ts @@ -0,0 +1,25 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// // +// !!! DO NOT EDIT THIS FILE !!! // +// // +// This file is auto-generated by scripts/generate-web-api-types.sh in the repository. // +// Please refer to the script code to learn how to update the source data. // +// // +///////////////////////////////////////////////////////////////////////////////////////// + +import type { WebAPICallResult } from '../../WebClient'; +export type AdminUsersGetExpirationResponse = WebAPICallResult & { + error?: string; + needed?: string; + ok?: boolean; + provided?: string; + user?: User; +}; + +export interface User { + email?: string; + expiration_ts?: number; + id?: string; + is_restricted?: boolean; + is_ultra_restricted?: boolean; +} diff --git a/packages/web-api/src/types/response/index.ts b/packages/web-api/src/types/response/index.ts index e1c324253..3f395d8b4 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -81,6 +81,7 @@ export { AdminUsergroupsAddTeamsResponse } from './AdminUsergroupsAddTeamsRespon export { AdminUsergroupsListChannelsResponse } from './AdminUsergroupsListChannelsResponse'; export { AdminUsergroupsRemoveChannelsResponse } from './AdminUsergroupsRemoveChannelsResponse'; export { AdminUsersAssignResponse } from './AdminUsersAssignResponse'; +export { AdminUsersGetExpirationResponse } from './AdminUsersGetExpirationResponse'; export { AdminUsersInviteResponse } from './AdminUsersInviteResponse'; export { AdminUsersListResponse } from './AdminUsersListResponse'; export { AdminUsersRemoveResponse } from './AdminUsersRemoveResponse';