From 4df9fb8cc3e3c8a66e7656f62ce03b10b7e4cc72 Mon Sep 17 00:00:00 2001 From: Fil Maj Date: Tue, 18 Jun 2024 14:48:47 -0400 Subject: [PATCH] feat(web-api): add new Slack Connect APIs `team.externalTeams.list` and `users.discoverableContacts.lookup` (#1826) --- packages/web-api/src/methods.ts | 250 ++++++++++-------- packages/web-api/src/types/request/index.ts | 4 +- packages/web-api/src/types/request/team.ts | 16 +- packages/web-api/src/types/request/users.ts | 12 +- .../response/TeamExternalTeamsListResponse.ts | 51 ++++ packages/web-api/src/types/response/index.ts | 1 + 6 files changed, 211 insertions(+), 123 deletions(-) create mode 100644 packages/web-api/src/types/response/TeamExternalTeamsListResponse.ts diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 2f6362574..dfe4d8c45 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -3,9 +3,13 @@ import { WebAPICallResult, WebClient, WebClientEvent } from './WebClient'; // Response types import type { AdminAnalyticsGetFileResponse, + AdminAppsActivitiesListResponse, AdminAppsApproveResponse, AdminAppsApprovedListResponse, AdminAppsClearResolutionResponse, + AdminAppsConfigLookupResponse, + AdminAppsConfigSetResponse, + AdminAppsRequestsCancelResponse, AdminAppsRequestsListResponse, AdminAppsRestrictResponse, AdminAppsRestrictedListResponse, @@ -19,6 +23,7 @@ import type { AdminBarriersUpdateResponse, AdminConversationsArchiveResponse, AdminConversationsConvertToPrivateResponse, + AdminConversationsConvertToPublicResponse, AdminConversationsCreateResponse, AdminConversationsDeleteResponse, AdminConversationsDisconnectSharedResponse, @@ -26,6 +31,7 @@ import type { AdminConversationsGetConversationPrefsResponse, AdminConversationsGetTeamsResponse, AdminConversationsInviteResponse, + AdminConversationsLookupResponse, AdminConversationsRenameResponse, AdminConversationsRestrictAccessAddGroupResponse, AdminConversationsRestrictAccessListGroupsResponse, @@ -45,11 +51,17 @@ import type { AdminEmojiListResponse, AdminEmojiRemoveResponse, AdminEmojiRenameResponse, + AdminFunctionsListResponse, + AdminFunctionsPermissionsLookupResponse, + AdminFunctionsPermissionsSetResponse, AdminInviteRequestsApproveResponse, AdminInviteRequestsApprovedListResponse, AdminInviteRequestsDeniedListResponse, AdminInviteRequestsDenyResponse, AdminInviteRequestsListResponse, + AdminRolesAddAssignmentsResponse, + AdminRolesListAssignmentsResponse, + AdminRolesRemoveAssignmentsResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, @@ -80,6 +92,11 @@ import type { AdminUsersSetOwnerResponse, AdminUsersSetRegularResponse, AdminUsersUnsupportedVersionsExportResponse, + AdminWorkflowsCollaboratorsAddResponse, + AdminWorkflowsCollaboratorsRemoveResponse, + AdminWorkflowsPermissionsLookupResponse, + AdminWorkflowsSearchResponse, + AdminWorkflowsUnpublishResponse, ApiTestResponse, AppsConnectionsOpenResponse, AppsEventAuthorizationsListResponse, @@ -92,6 +109,10 @@ import type { AuthRevokeResponse, AuthTeamsListResponse, AuthTestResponse, + BookmarksAddResponse, + BookmarksEditResponse, + BookmarksListResponse, + BookmarksRemoveResponse, BotsInfoResponse, CallsAddResponse, CallsEndResponse, @@ -192,6 +213,7 @@ import type { TeamAccessLogsResponse, TeamBillableInfoResponse, TeamBillingInfoResponse, + TeamExternalTeamsListResponse, TeamInfoResponse, TeamIntegrationLogsResponse, TeamPreferencesListResponse, @@ -206,6 +228,7 @@ import type { UsergroupsUsersUpdateResponse, UsersConversationsResponse, UsersDeletePhotoResponse, + UsersDiscoverableContactsLookupResponse, UsersGetPresenceResponse, UsersIdentityResponse, UsersInfoResponse, @@ -222,30 +245,104 @@ import type { WorkflowsStepCompletedResponse, WorkflowsStepFailedResponse, WorkflowsUpdateStepResponse, - AdminAppsRequestsCancelResponse, - BookmarksAddResponse, - BookmarksEditResponse, - BookmarksListResponse, - BookmarksRemoveResponse, - AdminConversationsConvertToPublicResponse, - AdminConversationsLookupResponse, - AdminRolesAddAssignmentsResponse, - AdminRolesListAssignmentsResponse, - AdminRolesRemoveAssignmentsResponse, - AdminAppsActivitiesListResponse, - AdminFunctionsListResponse, - AdminFunctionsPermissionsLookupResponse, - AdminFunctionsPermissionsSetResponse, - AdminWorkflowsSearchResponse, - AdminWorkflowsUnpublishResponse, - AdminWorkflowsCollaboratorsAddResponse, - AdminWorkflowsCollaboratorsRemoveResponse, - AdminWorkflowsPermissionsLookupResponse, - AdminAppsConfigLookupResponse, - AdminAppsConfigSetResponse, } from './types/response/index'; // Request types import type { + AdminAnalyticsGetFileArguments, + AdminAppsActivitiesListArguments, + AdminAppsApproveArguments, + AdminAppsApprovedListArguments, + AdminAppsClearResolutionArguments, + AdminAppsConfigLookupArguments, + AdminAppsConfigSetArguments, + AdminAppsRequestsCancelArguments, + AdminAppsRequestsListArguments, + AdminAppsRestrictArguments, + AdminAppsRestrictedListArguments, + AdminAppsUninstallArguments, + AdminAuthPolicyAssignEntitiesArguments, + AdminAuthPolicyGetEntitiesArguments, + AdminAuthPolicyRemoveEntitiesArguments, + AdminBarriersCreateArguments, + AdminBarriersDeleteArguments, + AdminBarriersListArguments, + AdminBarriersUpdateArguments, + AdminConversationsArchiveArguments, + AdminConversationsBulkArchiveArguments, + AdminConversationsBulkDeleteArguments, + AdminConversationsBulkMoveArguments, + AdminConversationsConvertToPrivateArguments, + AdminConversationsConvertToPublicArguments, + AdminConversationsCreateArguments, + AdminConversationsDeleteArguments, + AdminConversationsDisconnectSharedArguments, + AdminConversationsEKMListOriginalConnectedChannelInfoArguments, + AdminConversationsGetConversationPrefsArguments, + AdminConversationsGetCustomRetentionArguments, + AdminConversationsGetTeamsArguments, + AdminConversationsInviteArguments, + AdminConversationsLookupArguments, + AdminConversationsRemoveCustomRetentionArguments, + AdminConversationsRenameArguments, + AdminConversationsRestrictAccessAddGroupArguments, + AdminConversationsRestrictAccessListGroupsArguments, + AdminConversationsRestrictAccessRemoveGroupArguments, + AdminConversationsSearchArguments, + AdminConversationsSetConversationPrefsArguments, + AdminConversationsSetCustomRetentionArguments, + AdminConversationsSetTeamsArguments, + AdminConversationsUnarchiveArguments, + AdminEmojiAddArguments, + AdminEmojiAddAliasArguments, + AdminEmojiListArguments, + AdminEmojiRemoveArguments, + AdminEmojiRenameArguments, + AdminFunctionsListArguments, + AdminFunctionsPermissionsLookupArguments, + AdminFunctionsPermissionsSetArguments, + AdminInviteRequestsApproveArguments, + AdminInviteRequestsApprovedListArguments, + AdminInviteRequestsDeniedListArguments, + AdminInviteRequestsDenyArguments, + AdminInviteRequestsListArguments, + AdminRolesAddAssignmentsArguments, + AdminRolesListAssignmentsArguments, + AdminRolesRemoveAssignmentsArguments, + AdminTeamsAdminsListArguments, + AdminTeamsCreateArguments, + AdminTeamsListArguments, + AdminTeamsOwnersListArguments, + AdminTeamsSettingsInfoArguments, + AdminTeamsSettingsSetDefaultChannelsArguments, + AdminTeamsSettingsSetDescriptionArguments, + AdminTeamsSettingsSetDiscoverabilityArguments, + AdminTeamsSettingsSetIconArguments, + AdminTeamsSettingsSetNameArguments, + AdminUsergroupsAddChannelsArguments, + AdminUsergroupsAddTeamsArguments, + AdminUsergroupsListChannelsArguments, + AdminUsergroupsRemoveChannelsArguments, + AdminUsersAssignArguments, + AdminUsersInviteArguments, + AdminUsersListArguments, + AdminUsersRemoveArguments, + AdminUsersSessionListArguments, + AdminUsersSessionClearSettingsArguments, + AdminUsersSessionGetSettingsArguments, + AdminUsersSessionInvalidateArguments, + AdminUsersSessionResetArguments, + AdminUsersSessionResetBulkArguments, + AdminUsersSessionSetSettingsArguments, + AdminUsersSetAdminArguments, + AdminUsersSetExpirationArguments, + AdminUsersSetOwnerArguments, + AdminUsersSetRegularArguments, + AdminUsersUnsupportedVersionsExportArguments, + AdminWorkflowsCollaboratorsAddArguments, + AdminWorkflowsCollaboratorsRemoveArguments, + AdminWorkflowsPermissionsLookupArguments, + AdminWorkflowsSearchArguments, + AdminWorkflowsUnpublishArguments, WorkflowsStepCompletedArguments, WorkflowsStepFailedArguments, WorkflowsUpdateStepArguments, @@ -254,6 +351,7 @@ import type { ViewsPushArguments, ViewsPublishArguments, UsersConversationsArguments, + UsersDiscoverableContactsLookupArguments, UsersInfoArguments, UsersListArguments, UsersIdentityArguments, @@ -278,6 +376,7 @@ import type { TeamAccessLogsArguments, TeamBillableInfoArguments, TeamBillingInfoArguments, + TeamExternalTeamsListArguments, TeamInfoArguments, TeamIntegrationLogsArguments, TeamPreferencesListArguments, @@ -392,101 +491,6 @@ import type { AppsManifestValidateArguments, AppsUninstallArguments, APITestArguments, - AdminAnalyticsGetFileArguments, - AdminAppsActivitiesListArguments, - AdminAppsApproveArguments, - AdminAppsApprovedListArguments, - AdminAppsClearResolutionArguments, - AdminAppsConfigLookupArguments, - AdminAppsConfigSetArguments, - AdminAppsRequestsCancelArguments, - AdminAppsRequestsListArguments, - AdminAppsRestrictArguments, - AdminAppsRestrictedListArguments, - AdminAppsUninstallArguments, - AdminAuthPolicyAssignEntitiesArguments, - AdminAuthPolicyGetEntitiesArguments, - AdminAuthPolicyRemoveEntitiesArguments, - AdminBarriersCreateArguments, - AdminBarriersDeleteArguments, - AdminBarriersListArguments, - AdminBarriersUpdateArguments, - AdminConversationsArchiveArguments, - AdminConversationsBulkArchiveArguments, - AdminConversationsBulkDeleteArguments, - AdminConversationsBulkMoveArguments, - AdminConversationsConvertToPrivateArguments, - AdminConversationsConvertToPublicArguments, - AdminConversationsCreateArguments, - AdminConversationsDeleteArguments, - AdminConversationsDisconnectSharedArguments, - AdminConversationsEKMListOriginalConnectedChannelInfoArguments, - AdminConversationsGetConversationPrefsArguments, - AdminConversationsGetCustomRetentionArguments, - AdminConversationsGetTeamsArguments, - AdminConversationsInviteArguments, - AdminConversationsLookupArguments, - AdminConversationsRemoveCustomRetentionArguments, - AdminConversationsRenameArguments, - AdminConversationsRestrictAccessAddGroupArguments, - AdminConversationsRestrictAccessListGroupsArguments, - AdminConversationsRestrictAccessRemoveGroupArguments, - AdminConversationsSearchArguments, - AdminConversationsSetConversationPrefsArguments, - AdminConversationsSetCustomRetentionArguments, - AdminConversationsSetTeamsArguments, - AdminConversationsUnarchiveArguments, - AdminEmojiAddArguments, - AdminEmojiAddAliasArguments, - AdminEmojiListArguments, - AdminEmojiRemoveArguments, - AdminEmojiRenameArguments, - AdminFunctionsListArguments, - AdminFunctionsPermissionsLookupArguments, - AdminFunctionsPermissionsSetArguments, - AdminInviteRequestsApproveArguments, - AdminInviteRequestsApprovedListArguments, - AdminInviteRequestsDeniedListArguments, - AdminInviteRequestsDenyArguments, - AdminInviteRequestsListArguments, - AdminRolesAddAssignmentsArguments, - AdminRolesListAssignmentsArguments, - AdminRolesRemoveAssignmentsArguments, - AdminTeamsAdminsListArguments, - AdminTeamsCreateArguments, - AdminTeamsListArguments, - AdminTeamsOwnersListArguments, - AdminTeamsSettingsInfoArguments, - AdminTeamsSettingsSetDefaultChannelsArguments, - AdminTeamsSettingsSetDescriptionArguments, - AdminTeamsSettingsSetDiscoverabilityArguments, - AdminTeamsSettingsSetIconArguments, - AdminTeamsSettingsSetNameArguments, - AdminUsergroupsAddChannelsArguments, - AdminUsergroupsAddTeamsArguments, - AdminUsergroupsListChannelsArguments, - AdminUsergroupsRemoveChannelsArguments, - AdminUsersAssignArguments, - AdminUsersInviteArguments, - AdminUsersListArguments, - AdminUsersRemoveArguments, - AdminUsersSessionListArguments, - AdminUsersSessionClearSettingsArguments, - AdminUsersSessionGetSettingsArguments, - AdminUsersSessionInvalidateArguments, - AdminUsersSessionResetArguments, - AdminUsersSessionResetBulkArguments, - AdminUsersSessionSetSettingsArguments, - AdminUsersSetAdminArguments, - AdminUsersSetExpirationArguments, - AdminUsersSetOwnerArguments, - AdminUsersSetRegularArguments, - AdminUsersUnsupportedVersionsExportArguments, - AdminWorkflowsCollaboratorsAddArguments, - AdminWorkflowsCollaboratorsRemoveArguments, - AdminWorkflowsPermissionsLookupArguments, - AdminWorkflowsSearchArguments, - AdminWorkflowsUnpublishArguments, } from './types/request/index'; /** @@ -1928,6 +1932,13 @@ export abstract class Methods extends EventEmitter { */ info: bindApiCall(this, 'team.billing.info'), }, + externalTeams: { + /** + * @description Returns a list of all the external teams connected and details about the connection. + * @see {@link https://api.slack.com/methods/team.externalTeams.list `team.externalTeams.list` API reference}. + */ + lookup: bindApiCall(this, 'team.externalTeams.list'), + }, /** * @description Gets information about the current team. * @see {@link https://api.slack.com/methods/team.info `team.info` API reference}. @@ -2022,6 +2033,13 @@ export abstract class Methods extends EventEmitter { * @see {@link https://api.slack.com/methods/users.deletePhoto `users.deletePhoto` API reference}. */ deletePhoto: bindApiCall(this, 'users.deletePhoto'), + discoverableContacts: { + /** + * @description Lookup an email address to see if someone is on Slack. + * @see {@link https://api.slack.com/methods/users.discoverableContacts.lookup `users.discoverableContacts.lookup` API reference}. + */ + lookup: bindApiCall(this, 'users.discoverableContacts.lookup'), + }, /** * @description Gets user presence information. * @see {@link https://api.slack.com/methods/users.getPresence `users.getPresence` API reference}. diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index 166e61177..f9f3cc85e 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -1,10 +1,10 @@ export type { WorkflowsStepCompletedArguments, WorkflowsStepFailedArguments, WorkflowsUpdateStepArguments } from './workflows'; export type { ViewsUpdateArguments, ViewsOpenArguments, ViewsPushArguments, ViewsPublishArguments } from './views'; -export type { UsersConversationsArguments, UsersInfoArguments, UsersListArguments, UsersIdentityArguments, UsersSetPhotoArguments, UsersProfileGetArguments, UsersProfileSetArguments, UsersDeletePhotoArguments, UsersGetPresenceArguments, UsersSetPresenceArguments, UsersLookupByEmailArguments } from './users'; +export type { UsersConversationsArguments, UsersDiscoverableContactsLookupArguments, UsersInfoArguments, UsersListArguments, UsersIdentityArguments, UsersSetPhotoArguments, UsersProfileGetArguments, UsersProfileSetArguments, UsersDeletePhotoArguments, UsersGetPresenceArguments, UsersSetPresenceArguments, UsersLookupByEmailArguments } from './users'; export type { ToolingTokensRotateArguments } from './tooling'; export type { SearchAllArguments, SearchFilesArguments, SearchMessagesArguments } from './search'; export type { UsergroupsCreateArguments, UsergroupsDisableArguments, UsergroupsEnableArguments, UsergroupsListArguments, UsergroupsUpdateArguments, UsergroupsUsersListArguments, UsergroupsUsersUpdateArguments } from './usergroups'; -export type { TeamAccessLogsArguments, TeamBillableInfoArguments, TeamBillingInfoArguments, TeamInfoArguments, TeamIntegrationLogsArguments, TeamPreferencesListArguments, TeamProfileGetArguments } from './team'; +export type { TeamAccessLogsArguments, TeamBillableInfoArguments, TeamBillingInfoArguments, TeamExternalTeamsListArguments, TeamInfoArguments, TeamIntegrationLogsArguments, TeamPreferencesListArguments, TeamProfileGetArguments } from './team'; export type { StarsAddRemoveArguments, StarsListArguments } from './stars'; export type { RTMConnectArguments, RTMStartArguments } from './rtm'; export type { RemindersAddArguments, RemindersInfoArguments, RemindersListArguments, RemindersDeleteArguments, RemindersCompleteArguments } from './reminders'; diff --git a/packages/web-api/src/types/request/team.ts b/packages/web-api/src/types/request/team.ts index d1104255d..7151647d5 100644 --- a/packages/web-api/src/types/request/team.ts +++ b/packages/web-api/src/types/request/team.ts @@ -1,8 +1,9 @@ import { AppID, + CursorPaginationEnabled, OptionalTeamAssignable, + SortDir, TokenOverridable, - CursorPaginationEnabled, TraditionalPagingEnabled, } from './common'; import { OptionalArgument } from '../helpers'; @@ -24,6 +25,19 @@ OptionalTeamAssignable & { }>; // https://api.slack.com/methods/team.billing.info export type TeamBillingInfoArguments = OptionalArgument; +// https://api.slack.com/methods/team.externalTeams.list +export type TeamExternalTeamsListArguments = OptionalArgument; // https://api.slack.com/methods/team.info export type TeamInfoArguments = OptionalArgument