Skip to content

Commit b464941

Browse files
feat: add team.externalTeams.list (#1512)
* feat: add team.externalTeams.list --------- Co-authored-by: Kazuhiro Sera <[email protected]>
1 parent 75997b2 commit b464941

File tree

4 files changed

+110
-2
lines changed

4 files changed

+110
-2
lines changed

slack_sdk/web/async_client.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4695,6 +4695,42 @@ async def team_billing_info(
46954695
"""
46964696
return await self.api_call("team.billing.info", params=kwargs)
46974697

4698+
async def team_externalTeams_list(
4699+
self,
4700+
*,
4701+
connection_status_filter: Optional[str] = None,
4702+
slack_connect_pref_filter: Optional[Sequence[str]] = None,
4703+
sort_direction: Optional[str] = None,
4704+
sort_field: Optional[str] = None,
4705+
workspace_filter: Optional[Sequence[str]] = None,
4706+
cursor: Optional[str] = None,
4707+
limit: Optional[int] = None,
4708+
**kwargs,
4709+
) -> AsyncSlackResponse:
4710+
"""Returns a list of all the external teams connected and details about the connection.
4711+
https://api.slack.com/methods/team.externalTeams.list
4712+
"""
4713+
kwargs.update(
4714+
{
4715+
"connection_status_filter": connection_status_filter,
4716+
"sort_direction": sort_direction,
4717+
"sort_field": sort_field,
4718+
"cursor": cursor,
4719+
"limit": limit,
4720+
}
4721+
)
4722+
if slack_connect_pref_filter is not None:
4723+
if isinstance(slack_connect_pref_filter, (list, Tuple)):
4724+
kwargs.update({"slack_connect_pref_filter": ",".join(slack_connect_pref_filter)})
4725+
else:
4726+
kwargs.update({"slack_connect_pref_filter": slack_connect_pref_filter})
4727+
if workspace_filter is not None:
4728+
if isinstance(workspace_filter, (list, Tuple)):
4729+
kwargs.update({"workspace_filter": ",".join(workspace_filter)})
4730+
else:
4731+
kwargs.update({"workspace_filter": workspace_filter})
4732+
return await self.api_call("team.externalTeams.list", http_verb="GET", params=kwargs)
4733+
46984734
async def team_info(
46994735
self,
47004736
*,

slack_sdk/web/client.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4686,6 +4686,42 @@ def team_billing_info(
46864686
"""
46874687
return self.api_call("team.billing.info", params=kwargs)
46884688

4689+
def team_externalTeams_list(
4690+
self,
4691+
*,
4692+
connection_status_filter: Optional[str] = None,
4693+
slack_connect_pref_filter: Optional[Sequence[str]] = None,
4694+
sort_direction: Optional[str] = None,
4695+
sort_field: Optional[str] = None,
4696+
workspace_filter: Optional[Sequence[str]] = None,
4697+
cursor: Optional[str] = None,
4698+
limit: Optional[int] = None,
4699+
**kwargs,
4700+
) -> SlackResponse:
4701+
"""Returns a list of all the external teams connected and details about the connection.
4702+
https://api.slack.com/methods/team.externalTeams.list
4703+
"""
4704+
kwargs.update(
4705+
{
4706+
"connection_status_filter": connection_status_filter,
4707+
"sort_direction": sort_direction,
4708+
"sort_field": sort_field,
4709+
"cursor": cursor,
4710+
"limit": limit,
4711+
}
4712+
)
4713+
if slack_connect_pref_filter is not None:
4714+
if isinstance(slack_connect_pref_filter, (list, Tuple)):
4715+
kwargs.update({"slack_connect_pref_filter": ",".join(slack_connect_pref_filter)})
4716+
else:
4717+
kwargs.update({"slack_connect_pref_filter": slack_connect_pref_filter})
4718+
if workspace_filter is not None:
4719+
if isinstance(workspace_filter, (list, Tuple)):
4720+
kwargs.update({"workspace_filter": ",".join(workspace_filter)})
4721+
else:
4722+
kwargs.update({"workspace_filter": workspace_filter})
4723+
return self.api_call("team.externalTeams.list", http_verb="GET", params=kwargs)
4724+
46894725
def team_info(
46904726
self,
46914727
*,

slack_sdk/web/legacy_client.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4697,6 +4697,42 @@ def team_billing_info(
46974697
"""
46984698
return self.api_call("team.billing.info", params=kwargs)
46994699

4700+
def team_externalTeams_list(
4701+
self,
4702+
*,
4703+
connection_status_filter: Optional[str] = None,
4704+
slack_connect_pref_filter: Optional[Sequence[str]] = None,
4705+
sort_direction: Optional[str] = None,
4706+
sort_field: Optional[str] = None,
4707+
workspace_filter: Optional[Sequence[str]] = None,
4708+
cursor: Optional[str] = None,
4709+
limit: Optional[int] = None,
4710+
**kwargs,
4711+
) -> Union[Future, SlackResponse]:
4712+
"""Returns a list of all the external teams connected and details about the connection.
4713+
https://api.slack.com/methods/team.externalTeams.list
4714+
"""
4715+
kwargs.update(
4716+
{
4717+
"connection_status_filter": connection_status_filter,
4718+
"sort_direction": sort_direction,
4719+
"sort_field": sort_field,
4720+
"cursor": cursor,
4721+
"limit": limit,
4722+
}
4723+
)
4724+
if slack_connect_pref_filter is not None:
4725+
if isinstance(slack_connect_pref_filter, (list, Tuple)):
4726+
kwargs.update({"slack_connect_pref_filter": ",".join(slack_connect_pref_filter)})
4727+
else:
4728+
kwargs.update({"slack_connect_pref_filter": slack_connect_pref_filter})
4729+
if workspace_filter is not None:
4730+
if isinstance(workspace_filter, (list, Tuple)):
4731+
kwargs.update({"workspace_filter": ",".join(workspace_filter)})
4732+
else:
4733+
kwargs.update({"workspace_filter": workspace_filter})
4734+
return self.api_call("team.externalTeams.list", http_verb="GET", params=kwargs)
4735+
47004736
def team_info(
47014737
self,
47024738
*,

tests/slack_sdk_async/web/test_web_client_coverage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616

1717
class TestWebClientCoverage(unittest.TestCase):
18-
# 284 endpoints as of June 12, 2024
18+
# 284 endpoints as of June 19, 2024
1919
# Can be fetched by running `var methodNames = [].slice.call(document.getElementsByClassName('apiReferenceFilterableList__listItemLink')).map(e => e.href.replace("https://api.slack.com/methods/", ""));console.log(methodNames.toString());console.log(methodNames.length);` on https://api.slack.com/methods
20-
all_api_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.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,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.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,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,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,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,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,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,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,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.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,channels.create,channels.info,channels.invite,channels.mark,groups.create,groups.info,groups.invite,groups.mark,groups.open,im.list,im.mark,im.open,mpim.list,mpim.mark,mpim.open".split(
20+
all_api_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.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,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.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.uninstall,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,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,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,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,dialog.open,dnd.endDnd,dnd.endSnooze,dnd.info,dnd.setSnooze,dnd.teamInfo,emoji.list,files.completeUploadExternal,files.delete,files.getUploadURLExternal,files.info,files.list,files.revokePublicURL,files.sharedPublicURL,files.upload,files.comments.delete,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,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,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,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.profile.get,users.profile.set,views.open,views.publish,views.push,views.update,workflows.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,channels.create,channels.info,channels.invite,channels.mark,groups.create,groups.info,groups.invite,groups.mark,groups.open,im.list,im.mark,im.open,mpim.list,mpim.mark,mpim.open".split(
2121
","
2222
)
2323

0 commit comments

Comments
 (0)