slack-web-api-client
Version:
Streamlined Slack Web API client for TypeScript
1,253 lines • 40.1 kB
TypeScript
import type { EventTriggerSettings, ScheduleTriggerSettings, WebhookTriggerSettings } from "./automation-response/types";
import type { AnyMessageBlock } from "../block-kit/blocks";
import type { LinkUnfurls } from "../block-kit/link-unfurls";
import type { MessageAttachment } from "../block-kit/message-attachment";
import type { MessageMetadata } from "../block-kit/message-metadata";
import type { ModalView, HomeTabView } from "../block-kit/views";
import type { ManifestParams } from "../manifest/manifest-params";
export interface SlackAPIRequest {
token?: string;
}
export interface LocaleAware {
include_locale?: boolean;
}
export interface Searchable {
query: string;
highlight?: boolean;
sort: "score" | "timestamp";
sort_dir: "asc" | "desc";
team_id?: string;
}
export interface CursorPaginationEnabled {
limit?: number;
cursor?: string;
}
export interface TimelinePaginationEnabled {
oldest?: string;
latest?: string;
inclusive?: boolean;
}
export interface TraditionalPagingEnabled {
page?: number;
count?: number;
}
export interface AdminAnalyticsGetFileRequest extends SlackAPIRequest {
type: string;
date?: string;
metadata_only?: boolean;
}
export interface AdminAppsApproveRequest extends SlackAPIRequest {
app_id?: string;
request_id?: string;
team_id?: string;
}
export interface AdminAppsApprovedListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id?: string;
enterprise_id?: string;
}
export interface AdminAppsClearResolutionRequest extends SlackAPIRequest {
app_id: string;
enterprise_id?: string;
team_id?: string;
}
export interface AdminAppsRequestsCancelRequest extends SlackAPIRequest {
request_id: string;
enterprise_id?: string;
team_id?: string;
}
export interface AdminAppsRequestsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id?: string;
}
export interface AdminAppsRestrictRequest extends SlackAPIRequest {
app_id?: string;
request_id?: string;
team_id?: string;
}
export interface AdminAppsRestrictedListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id?: string;
enterprise_id?: string;
}
export interface AdminAppsUninstallRequest extends SlackAPIRequest {
app_id: string;
enterprise_id?: string;
team_ids?: string[];
}
export interface AdminAppsActivitiesListRequest extends SlackAPIRequest, CursorPaginationEnabled {
app_id?: string;
component_id?: string;
component_type?: "events_api" | "workflows" | "functions" | "tables";
log_event_type?: string;
max_date_created?: number;
min_date_created?: number;
min_log_level?: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
sort_direction?: "asc" | "desc";
source?: "slack" | "developer";
team_id?: string;
trace_id?: string;
}
export interface AdminAppsConfigLookupRequest extends SlackAPIRequest {
app_ids: string[];
}
export interface AdminAppsConfigSetRequest extends SlackAPIRequest {
app_id: string;
domain_restrictions?: {
urls?: string[];
emails?: string[];
};
workflow_auth_strategy?: "builder_choice" | "end_user_only";
}
export interface AdminAuthPolicyAssignEntitiesRequest extends SlackAPIRequest {
entity_ids: string[];
entity_type: "USER";
policy_name: "email_password";
}
export interface AdminAuthPolicyGetEntitiesRequest extends SlackAPIRequest, CursorPaginationEnabled {
policy_name: "email_password";
entity_type?: "USER";
}
export interface AdminAuthPolicyRemoveEntitiesRequest extends SlackAPIRequest {
entity_ids: string[];
entity_type: "USER";
policy_name: "email_password";
}
export interface AdminBarriersCreateRequest extends SlackAPIRequest {
barriered_from_usergroup_ids: string[];
primary_usergroup_id: string;
restricted_subjects: ["im", "mpim", "call"];
}
export interface AdminBarriersDeleteRequest extends SlackAPIRequest {
barrier_id: string;
}
export interface AdminBarriersListRequest extends SlackAPIRequest, CursorPaginationEnabled {
}
export interface AdminBarriersUpdateRequest extends SlackAPIRequest {
barrier_id: string;
barriered_from_usergroup_ids: string[];
primary_usergroup_id: string;
restricted_subjects: ["im", "mpim", "call"];
}
export interface AdminConversationsArchiveRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsBulkArchiveRequest extends SlackAPIRequest {
channel_ids: string[];
}
export interface AdminConversationsBulkDeleteRequest extends SlackAPIRequest {
channel_ids: string[];
}
export interface AdminConversationsBulkMoveRequest extends SlackAPIRequest {
channel_ids: string[];
target_team_id: string;
}
export interface AdminConversationsConvertToPrivateRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsConvertToPublicRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsCreateRequest extends SlackAPIRequest {
is_private: boolean;
name: string;
description?: string;
org_wide?: boolean;
team_id?: string;
}
export interface AdminConversationsDeleteRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsDisconnectSharedRequest extends SlackAPIRequest {
channel_id: string;
leaving_team_ids?: string[];
}
export interface AdminConversationsEKMListOriginalConnectedChannelInfoRequest extends SlackAPIRequest, CursorPaginationEnabled {
channel_ids?: string[];
team_ids?: string[];
}
export interface AdminConversationsGetConversationPrefsRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsGetTeamsRequest extends SlackAPIRequest, CursorPaginationEnabled {
channel_id: string;
}
export interface AdminConversationsInviteRequest extends SlackAPIRequest {
channel_id: string;
user_ids: string[];
}
export interface AdminConversationsRenameRequest extends SlackAPIRequest {
channel_id: string;
name: string;
}
export interface AdminConversationsRestrictAccessAddGroupRequest extends SlackAPIRequest {
channel_id: string;
group_id: string;
team_id?: string;
}
export interface AdminConversationsRestrictAccessListGroupsRequest extends SlackAPIRequest {
channel_id: string;
team_id?: string;
}
export interface AdminConversationsRestrictAccessRemoveGroupRequest extends SlackAPIRequest {
channel_id: string;
group_id: string;
team_id: string;
}
export interface AdminConversationsGetCustomRetentionRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsSetCustomRetentionRequest extends SlackAPIRequest {
channel_id: string;
duration_days: number;
}
export interface AdminConversationsRemoveCustomRetentionRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminConversationsLookupRequest extends SlackAPIRequest, CursorPaginationEnabled {
last_message_activity_before: number;
team_ids: string[];
max_member_count?: number;
}
export interface AdminConversationsSearchRequest extends SlackAPIRequest, CursorPaginationEnabled {
query?: string;
search_channel_types?: string[];
sort?: "relevant" | "name" | "member_count" | "created";
sort_dir?: "asc" | "desc";
team_ids?: string[];
}
export interface AdminConversationsSetConversationPrefsRequest extends SlackAPIRequest {
channel_id: string;
prefs: {
who_can_post?: string;
can_thread?: string;
can_huddle?: string;
enable_at_channel?: string;
enable_at_here?: string;
};
}
export interface AdminConversationsSetTeamsRequest extends SlackAPIRequest {
channel_id: string;
team_id?: string;
target_team_ids?: string[];
org_channel?: boolean;
}
export interface AdminConversationsUnarchiveRequest extends SlackAPIRequest {
channel_id: string;
}
export interface AdminEmojiAddRequest extends SlackAPIRequest {
name: string;
url: string;
}
export interface AdminEmojiAddAliasRequest extends SlackAPIRequest {
name: string;
alias_for: string;
}
export interface AdminEmojiListRequest extends SlackAPIRequest, CursorPaginationEnabled {
}
export interface AdminEmojiRemoveRequest extends SlackAPIRequest {
name: string;
}
export interface AdminEmojiRenameRequest extends SlackAPIRequest {
name: string;
new_name: string;
}
export interface AdminFunctionsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
app_ids: string[];
team_id?: string;
}
export interface AdminFunctionsPermissionsLookupRequest extends SlackAPIRequest {
function_ids: string[];
}
export interface AdminFunctionsPermissionsSetRequest extends SlackAPIRequest {
function_id: string;
visibility: "everyone" | "app_collaborators" | "named_entities" | "no_one";
user_ids?: string[];
}
export interface AdminInviteRequestsApproveRequest extends SlackAPIRequest {
invite_request_id: string;
team_id: string;
}
export interface AdminInviteRequestsApprovedListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
}
export interface AdminInviteRequestsDenyRequest extends SlackAPIRequest {
invite_request_id: string;
team_id: string;
}
export interface AdminInviteRequestsDeniedListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
}
export interface AdminInviteRequestsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
}
export interface AdminRolesAddAssignmentsRequest extends SlackAPIRequest {
role_id: string;
entity_ids: string[];
user_ids: string[];
}
export interface AdminRolesListAssignmentsRequest extends SlackAPIRequest, CursorPaginationEnabled {
entity_ids?: string[];
role_ids?: string[];
sort_dir?: "ASC" | "DESC";
}
export interface AdminRolesRemoveAssignmentsRequest extends SlackAPIRequest {
role_id: string;
entity_ids: string[];
user_ids: string[];
}
export interface AdminTeamsAdminsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
}
export interface AdminTeamsCreateRequest extends SlackAPIRequest {
team_domain: string;
team_name: string;
team_description?: string;
team_discoverability?: "open" | "closed" | "invite_only" | "unlisted";
}
export interface AdminTeamsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
}
export interface AdminTeamsOwnersListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
}
export interface AdminTeamsSettingsInfoRequest extends SlackAPIRequest {
team_id: string;
}
export interface AdminTeamsSettingsSetDefaultChannelsRequest extends SlackAPIRequest {
team_id: string;
channel_ids: string[];
}
export interface AdminTeamsSettingsSetDescriptionRequest extends SlackAPIRequest {
team_id: string;
description: string;
}
export interface AdminTeamsSettingsSetDiscoverabilityRequest extends SlackAPIRequest {
team_id: string;
discoverability: "open" | "invite_only" | "closed" | "unlisted";
}
export interface AdminTeamsSettingsSetIconRequest extends SlackAPIRequest {
team_id: string;
image_url: string;
}
export interface AdminTeamsSettingsSetNameRequest extends SlackAPIRequest {
team_id: string;
name: string;
}
export interface AdminUsergroupsAddChannelsRequest extends SlackAPIRequest {
usergroup_id: string;
team_id?: string;
channel_ids: string | string[];
}
export interface AdminUsergroupsAddTeamsRequest extends SlackAPIRequest {
usergroup_id: string;
team_ids: string | string[];
auto_provision?: boolean;
}
export interface AdminUsergroupsListChannelsRequest extends SlackAPIRequest {
usergroup_id: string;
include_num_members?: boolean;
team_id?: string;
}
export interface AdminUsergroupsRemoveChannelsRequest extends SlackAPIRequest {
usergroup_id: string;
channel_ids: string | string[];
}
export interface AdminUsersAssignRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
is_restricted?: boolean;
is_ultra_restricted?: boolean;
}
export interface AdminUsersInviteRequest extends SlackAPIRequest {
channel_ids: string | string[];
email: string;
team_id: string;
custom_message?: string;
email_password_policy_enabled?: boolean;
guest_expiration_ts?: string;
is_restricted?: boolean;
is_ultra_restricted?: boolean;
real_name?: string;
resend?: boolean;
}
export interface AdminUsersListRequest extends SlackAPIRequest, CursorPaginationEnabled {
team_id: string;
include_deactivated_user_workspaces?: boolean;
is_active?: boolean;
}
export interface AdminUsersRemoveRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
}
export interface AdminUsersSetAdminRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
}
export interface AdminUsersSetExpirationRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
expiration_ts: number;
}
export interface AdminUsersSetOwnerRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
}
export interface AdminUsersSetRegularRequest extends SlackAPIRequest {
team_id: string;
user_id: string;
}
export interface AdminUsersSessionListRequest extends SlackAPIRequest, CursorPaginationEnabled {
user_id?: string;
team_id?: string;
}
export interface AdminUsersSessionResetRequest extends SlackAPIRequest {
user_id: string;
mobile_only?: boolean;
web_only?: boolean;
}
export interface AdminUsersSessionResetBulkRequest extends SlackAPIRequest {
user_ids: string[];
mobile_only?: boolean;
web_only?: boolean;
}
export interface AdminUsersSessionInvalidateRequest extends SlackAPIRequest {
session_id: string;
team_id: string;
}
export interface AdminUsersSessionGetSettingsRequest extends SlackAPIRequest {
user_ids: string[];
}
export interface AdminUsersSessionSetSettingsRequest extends SlackAPIRequest {
user_ids: string[];
desktop_app_browser_quit?: boolean;
duration?: number;
}
export interface AdminUsersSessionClearSettingsRequest extends SlackAPIRequest {
user_ids: string[];
}
export interface AdminUsersUnsupportedVersionsExportRequest extends SlackAPIRequest {
date_end_of_support?: number;
date_sessions_started?: number;
}
export interface AdminWorkflowsCollaboratorsAddRequest extends SlackAPIRequest {
collaborator_ids: string[];
workflow_ids: string[];
}
export interface AdminWorkflowsCollaboratorsRemoveRequest extends SlackAPIRequest {
collaborator_ids: string[];
workflow_ids: string[];
}
export interface AdminWorkflowsPermissionsLookupRequest extends SlackAPIRequest {
workflow_ids: string[];
max_workflow_triggers?: number;
}
export interface AdminWorkflowsSearchRequest extends SlackAPIRequest, CursorPaginationEnabled {
app_id?: string;
collaborator_ids?: string[];
no_collaborators?: boolean;
num_trigger_ids?: number;
query?: string;
sort?: string;
sort_dir?: string;
source?: string;
}
export interface AdminWorkflowsUnpublishRequest extends SlackAPIRequest {
workflow_ids: string[];
}
export type APITestRequest = SlackAPIRequest;
export type AppsConnectionsOpenRequest = SlackAPIRequest;
export interface AppsDatastorePutRequest extends SlackAPIRequest {
datastore: string;
item: Record<string, any>;
}
export interface AppsDatastoreUpdateRequest extends SlackAPIRequest {
datastore: string;
item: Record<string, any>;
}
export interface AppsDatastoreGetRequest extends SlackAPIRequest {
datastore: string;
id: string;
}
export interface AppsDatastoreQueryRequest extends SlackAPIRequest {
datastore: string;
app_id?: string;
cursor?: string;
expression_attributes?: Record<string, any>;
expression_values?: Record<string, any>;
limit?: number;
}
export interface AppsDatastoreDeleteRequest extends SlackAPIRequest {
datastore: string;
id: string;
}
export interface AppsEventAuthorizationsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
event_context: string;
}
export interface AppsManifestCreateRequest extends SlackAPIRequest {
manifest: ManifestParams | string;
}
export interface AppsManifestDeleteRequest extends SlackAPIRequest {
app_id: string;
}
export interface AppsManifestUpdateRequest extends SlackAPIRequest {
app_id: string;
manifest: ManifestParams | string;
}
export interface AppsManifestExportRequest extends SlackAPIRequest {
app_id: string;
}
export interface AppsManifestValidateRequest extends SlackAPIRequest {
app_id?: string;
manifest: ManifestParams | string;
}
export interface AppsUninstallRequest extends SlackAPIRequest {
client_id: string;
client_secret: string;
}
export interface AssistantThreadsSetStatusRequest extends SlackAPIRequest {
channel_id: string;
thread_ts: string;
status: string;
}
export interface AssistantThreadsSetSuggestedPromptsRequest extends SlackAPIRequest {
channel_id: string;
thread_ts: string;
title?: string;
prompts: {
title: string;
message: string;
}[];
}
export interface AssistantThreadsSetTitleRequest extends SlackAPIRequest {
channel_id: string;
thread_ts: string;
title: string;
}
export interface AuthRevokeRequest extends SlackAPIRequest {
test?: boolean;
}
export interface AuthTeamsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
include_icon?: boolean;
}
export type AuthTestRequest = SlackAPIRequest;
export interface BotsInfoRequest extends SlackAPIRequest {
bot: string;
team_id?: string;
}
export interface BookmarksAddRequest extends SlackAPIRequest {
channel_id: string;
title: string;
type: string;
emoji?: string;
entity_id?: string;
link?: string;
parent_id?: string;
}
export interface BookmarksEditRequest extends SlackAPIRequest {
bookmark_id: string;
channel_id: string;
emoji?: string;
link?: string;
title?: string;
}
export interface BookmarksListRequest extends SlackAPIRequest {
channel_id: string;
}
export interface BookmarksRemoveRequest extends SlackAPIRequest {
bookmark_id: string;
channel_id: string;
}
export interface CanvasesAccessDeleteRequest extends SlackAPIRequest {
canvas_id: string;
user_ids?: string[];
channel_ids?: string[];
}
export interface CanvasesAccessSetRequest extends SlackAPIRequest {
canvas_id: string;
access_level: "read" | "write";
user_ids?: string[];
channel_ids?: string[];
}
export interface CanvasDocumentContent {
type: "markdown";
markdown: string;
}
export interface CanvasesCreateRequest extends SlackAPIRequest {
title?: string;
document_content: CanvasDocumentContent;
}
export interface CanvasesDeleteRequest extends SlackAPIRequest {
canvas_id: string;
}
export interface CanvasesEditRequest extends SlackAPIRequest {
canvas_id: string;
changes: {
operation: "insert_after" | "insert_before" | "insert_at_start" | "insert_at_end" | "replace" | "delete";
section_id: string;
document_content?: CanvasDocumentContent;
}[];
}
export interface CanvasesSectionsLookupRequest extends SlackAPIRequest {
canvas_id: string;
criteria: {
section_types?: ("any_header" | "h1" | "h2" | "h3")[];
contains_text?: string;
};
}
export interface ChatDeleteRequest extends SlackAPIRequest {
channel: string;
ts: string;
as_user?: boolean;
}
export interface ChatDeleteScheduledMessageRequest extends SlackAPIRequest {
channel: string;
scheduled_message_id: string;
as_user?: boolean;
}
export interface ChatGetPermalinkRequest extends SlackAPIRequest {
channel: string;
message_ts: string;
}
export interface ChatMeMessageRequest extends SlackAPIRequest {
channel: string;
text: string;
}
export interface ChatPostEphemeralRequest extends SlackAPIRequest {
channel: string;
text: string;
user: string;
blocks?: AnyMessageBlock[];
attachments?: MessageAttachment[];
thread_ts?: string;
icon_emoji?: string;
icon_url?: string;
username?: string;
link_names?: boolean;
parse?: "full" | "none";
as_user?: boolean;
}
export interface ChatPostMessageRequest extends SlackAPIRequest {
channel: string;
text: string;
blocks?: AnyMessageBlock[];
attachments?: MessageAttachment[];
metadata?: MessageMetadata;
thread_ts?: string;
reply_broadcast?: boolean;
unfurl_links?: boolean;
unfurl_media?: boolean;
icon_emoji?: string;
icon_url?: string;
username?: string;
link_names?: boolean;
mrkdwn?: boolean;
parse?: "full" | "none";
as_user?: boolean;
}
export interface ChatScheduleMessageRequest extends SlackAPIRequest {
channel: string;
text: string;
post_at: string | number;
blocks?: AnyMessageBlock[];
attachments?: MessageAttachment[];
thread_ts?: string;
metadata?: MessageMetadata;
reply_broadcast?: boolean;
team_id?: string;
unfurl_links?: boolean;
unfurl_media?: boolean;
link_names?: boolean;
as_user?: boolean;
parse?: "full" | "none";
}
export interface ChatScheduledMessagesListRequest extends SlackAPIRequest, CursorPaginationEnabled {
channel: string;
latest: number;
oldest: number;
team_id?: string;
}
interface ChannelAndTSRequest {
channel: string;
ts: string;
}
interface SourceAndUnfurlIDRequest {
source: "composer" | "conversations_history";
unfurl_id: string;
}
export type ChatUnfurlRequest = (ChannelAndTSRequest | SourceAndUnfurlIDRequest) & SlackAPIRequest & {
unfurls: LinkUnfurls;
user_auth_message?: string;
user_auth_required?: boolean;
user_auth_url?: string;
user_auth_blocks?: AnyMessageBlock[];
};
export interface ChatUpdateRequest extends SlackAPIRequest {
channel: string;
text: string;
ts: string;
blocks?: AnyMessageBlock[];
attachments?: MessageAttachment[];
metadata?: MessageMetadata;
file_ids?: string[];
reply_broadcast?: boolean;
link_names?: boolean;
parse?: "full" | "none";
as_user?: boolean;
}
export interface ConversationsAcceptSharedInviteRequest extends SlackAPIRequest {
channel_name: string;
channel_id?: string;
free_trial_accepted?: boolean;
invite_id?: string;
is_private?: boolean;
team_id?: string;
}
export interface ConversationsApproveSharedInviteRequest extends SlackAPIRequest {
invite_id: string;
target_team?: string;
}
export interface ConversationsArchiveRequest extends SlackAPIRequest {
channel: string;
}
export interface ConversationsCloseRequest extends SlackAPIRequest {
channel: string;
}
export interface ConversationsCreateRequest extends SlackAPIRequest {
name: string;
is_private?: boolean;
team_id?: string;
}
export interface ConversationsDeclineSharedInviteRequest extends SlackAPIRequest {
invite_id: string;
target_team?: string;
}
export interface ConversationsHistoryRequest extends SlackAPIRequest, CursorPaginationEnabled, TimelinePaginationEnabled {
channel: string;
include_all_metadata?: boolean;
}
export interface ConversationsInfoRequest extends SlackAPIRequest, LocaleAware {
channel: string;
include_num_members?: boolean;
}
export interface ConversationsInviteRequest extends SlackAPIRequest {
channel: string;
users: string | string[];
force?: boolean;
}
export interface ConversationsInviteSharedRequest extends SlackAPIRequest {
channel: string;
emails?: string[];
user_ids?: string[];
}
export interface ConversationsJoinRequest extends SlackAPIRequest {
channel: string;
}
export interface ConversationsKickRequest extends SlackAPIRequest {
channel: string;
user: string;
}
export interface ConversationsLeaveRequest extends SlackAPIRequest {
channel: string;
}
export interface ConversationsListRequest extends SlackAPIRequest, CursorPaginationEnabled {
exclude_archived?: boolean;
types?: ("public_channel" | "private_channel" | "mpim" | "im")[];
team_id?: string;
}
export interface ConversationsListConnectInvitesRequest extends SlackAPIRequest {
count?: number;
cursor?: string;
team_id?: string;
}
export interface ConversationsMarkRequest extends SlackAPIRequest {
channel: string;
ts: string;
}
export interface ConversationsMembersRequest extends SlackAPIRequest, CursorPaginationEnabled {
channel: string;
}
export interface ConversationsOpenRequest extends SlackAPIRequest {
channel?: string;
users?: string | string[];
prevent_creation?: boolean;
return_im?: boolean;
}
export interface ConversationsRenameRequest extends SlackAPIRequest {
channel: string;
name: string;
}
export interface ConversationsRepliesRequest extends SlackAPIRequest, CursorPaginationEnabled, TimelinePaginationEnabled {
channel: string;
ts: string;
include_all_metadata?: boolean;
}
export interface ConversationsSetPurposeRequest extends SlackAPIRequest {
channel: string;
purpose: string;
}
export interface ConversationsSetTopicRequest extends SlackAPIRequest {
channel: string;
topic: string;
}
export interface ConversationsUnarchiveRequest extends SlackAPIRequest {
channel: string;
}
export interface ConversationsCanvasesCreateRequest extends SlackAPIRequest {
channel_id: string;
document_content: CanvasDocumentContent;
}
export interface ConversationsExternalInvitePermissionsSetRequest extends SlackAPIRequest {
action: "upgrade" | "downgrade";
channel: string;
target_team: string;
}
export interface ConversationsRequestSharedInviteApproveRequest extends SlackAPIRequest {
invite_id: string;
team_id?: string;
is_external_limited?: boolean;
message?: {
text: string;
is_override: boolean;
};
}
export interface ConversationsRequestSharedInviteDenyRequest extends SlackAPIRequest {
invite_id: string;
message: string;
}
export interface ConversationsRequestSharedInviteListRequest extends SlackAPIRequest, CursorPaginationEnabled {
include_approved?: boolean;
include_denied?: boolean;
include_expired?: boolean;
invite_ids?: string[];
user_id?: string;
}
export type DndEndDndRequest = SlackAPIRequest;
export type DndEndSnoozeRequest = SlackAPIRequest;
export interface DndInfoRequest extends SlackAPIRequest {
user: string;
}
export interface DndSetSnoozeRequest extends SlackAPIRequest {
num_minutes: number;
}
export interface DndTeamInfoRequest extends SlackAPIRequest {
users?: string | string[];
}
export interface EmojiListRequest extends SlackAPIRequest {
include_categories?: boolean;
}
export interface FilesDeleteRequest extends SlackAPIRequest {
file: string;
}
export interface FilesInfoRequest extends SlackAPIRequest, CursorPaginationEnabled {
file: string;
count?: number;
page?: number;
}
export interface FilesListRequest extends SlackAPIRequest, TraditionalPagingEnabled {
channel?: string;
user?: string;
ts_from?: string;
ts_to?: string;
types?: string | string[];
show_files_hidden_by_limit?: boolean;
team_id?: string;
}
export interface FilesRevokePublicURLRequest extends SlackAPIRequest {
file: string;
}
export interface FilesSharedPublicURLRequest extends SlackAPIRequest {
file: string;
}
/**
* Legacy files.upload API files upload Request
* @deprecated use files.uploadV2 instead
* */
interface FileUpload {
channels?: string | string[];
content?: string;
file?: Blob | ArrayBuffer;
filename?: string;
filetype?: string;
initial_comment?: string;
thread_ts?: string;
title?: string;
}
/**
* @deprecated use files.uploadV2 instead
*/
export type FilesUploadRequest = FileUpload & SlackAPIRequest;
/**
* files.upload V2 API files upload Request
* */
export interface FileUploadV2 {
filename: string;
title?: string;
alt_text?: string;
snippet_type?: string;
content?: string;
file?: Blob | ArrayBuffer;
filetype?: string;
}
export interface FileUploadV2Share {
channel_id?: string;
thread_ts?: string;
initial_comment?: string;
}
export interface FilesUploadV2Request1 extends SlackAPIRequest, FileUploadV2, FileUploadV2Share {
}
export interface FilesUploadV2RequestN extends SlackAPIRequest, FileUploadV2Share {
files: FileUploadV2[];
}
export type FilesUploadV2Request = FilesUploadV2Request1 | FilesUploadV2RequestN;
/**
* Gets a URL for an edge external file upload. Method:
* {@link https://api.slack.com/methods/files.getUploadURLExternal files.getUploadURLExternal}
*/
export interface FilesGetUploadURLExternalRequest extends SlackAPIRequest {
filename: string;
length: number;
alt_text?: string;
snippet_type?: string;
}
/**
* Finishes an upload started with files.getUploadURLExternal. Method:
* {@link https://api.slack.com/methods/files.completeUploadExternal files.completeUploadExternal}
* */
export interface FilesCompleteUploadExternalRequest extends SlackAPIRequest {
files: FileUploadComplete[];
channel_id?: string;
initial_comment?: string;
thread_ts?: string;
}
export interface FileUploadComplete {
id: string;
title?: string;
}
export interface FilesRemoteInfoRequest extends SlackAPIRequest {
file?: string;
external_id?: string;
}
export interface FilesRemoteListRequest extends SlackAPIRequest, CursorPaginationEnabled {
ts_from?: string;
ts_to?: string;
channel?: string;
}
export interface FilesRemoteAddRequest extends SlackAPIRequest {
title: string;
external_url: string;
external_id: string;
filetype: string;
preview_image?: Uint8Array;
indexable_file_contents?: Uint8Array;
}
export interface FilesRemoteUpdateRequest extends SlackAPIRequest {
title?: string;
external_url?: string;
filetype?: string;
preview_image?: Uint8Array;
indexable_file_contents?: Uint8Array;
file?: string;
external_id?: string;
}
export interface FilesRemoteRemoveRequest extends SlackAPIRequest {
file?: string;
external_id?: string;
}
export interface FilesRemoteShareRequest extends SlackAPIRequest {
channels: string | string[];
file?: string;
external_id?: string;
}
export interface FunctionsCompleteSuccessRequest extends SlackAPIRequest {
outputs: Record<string, any>;
function_execution_id: string;
}
export interface FunctionsCompleteErrorRequest extends SlackAPIRequest {
error: string;
function_execution_id: string;
}
export interface MigrationExchangeRequest extends SlackAPIRequest {
users: string | string[];
to_old?: boolean;
team_id?: string;
}
export interface OAuthV2AccessRequest extends SlackAPIRequest {
client_id: string;
client_secret: string;
code?: string;
redirect_uri?: string;
grant_type?: string;
refresh_token?: string;
}
export interface OAuthV2ExchangeRequest extends SlackAPIRequest {
client_id: string;
client_secret: string;
}
export interface OpenIDConnectTokenRequest extends SlackAPIRequest {
client_id: string;
client_secret: string;
code?: string;
redirect_uri?: string;
grant_type?: "authorization_code" | "refresh_token";
refresh_token?: string;
}
export type OpenIDConnectUserInfoRequest = SlackAPIRequest;
export interface PinsAddRequest extends SlackAPIRequest {
channel: string;
timestamp: string;
}
export interface PinsListRequest extends SlackAPIRequest {
channel: string;
}
export interface PinsRemoveRequest extends SlackAPIRequest {
channel: string;
timestamp: string;
}
export interface ReactionsAddRequest extends SlackAPIRequest {
name: string;
channel?: string;
timestamp?: string;
file?: string;
file_comment?: string;
}
export interface ReactionsGetRequest extends SlackAPIRequest {
full?: boolean;
channel?: string;
timestamp?: string;
file?: string;
file_comment?: string;
}
export interface ReactionsListRequest extends SlackAPIRequest, TraditionalPagingEnabled, CursorPaginationEnabled {
user?: string;
full?: boolean;
team_id?: string;
}
export interface ReactionsRemoveRequest extends SlackAPIRequest {
name: string;
channel?: string;
timestamp?: string;
file?: string;
file_comment?: string;
}
export interface RemindersAddRequest extends SlackAPIRequest {
text: string;
time: string | number;
user?: string;
}
export interface RemindersCompleteRequest extends SlackAPIRequest {
reminder: string;
}
export interface RemindersDeleteRequest extends SlackAPIRequest {
reminder: string;
}
export interface RemindersInfoRequest extends SlackAPIRequest {
reminder: string;
}
export type RemindersListRequest = SlackAPIRequest;
export interface SearchAllRequest extends SlackAPIRequest, TraditionalPagingEnabled, Searchable {
}
export interface SearchFilesRequest extends SlackAPIRequest, TraditionalPagingEnabled, Searchable {
}
export interface SearchMessagesRequest extends SlackAPIRequest, TraditionalPagingEnabled, Searchable {
}
export interface StarsAddRequest extends SlackAPIRequest {
channel?: string;
timestamp?: string;
file?: string;
file_comment?: string;
}
export interface StarsListRequest extends SlackAPIRequest, TraditionalPagingEnabled, CursorPaginationEnabled {
}
export interface StarsRemoveRequest extends SlackAPIRequest {
channel?: string;
timestamp?: string;
file?: string;
file_comment?: string;
}
export interface TeamAccessLogsRequest extends SlackAPIRequest {
before?: number;
count?: number;
page?: number;
team_id?: string;
}
export interface TeamBillableInfoRequest extends SlackAPIRequest, CursorPaginationEnabled {
user?: string;
team_id?: string;
}
export type TeamBillingInfoRequest = SlackAPIRequest;
export interface TeamInfoRequest extends SlackAPIRequest {
team?: string;
domain?: string;
}
export interface TeamIntegrationLogsRequest extends SlackAPIRequest {
app_id?: string;
change_type?: "added" | "removed" | "enabled" | "disabled" | "updated";
count?: number;
page?: number;
service_id?: string;
user?: string;
team_id?: string;
}
export interface TeamProfileGetRequest extends SlackAPIRequest {
visibility?: "all" | "visible" | "hidden";
team_id?: string;
}
export type TeamPreferencesListRequest = SlackAPIRequest;
export interface TeamExternalTeamsListRequest extends SlackAPIRequest {
connection_status_filter?: "CONNECTED" | "DISCONNECTED" | "BLOCKED" | "IN_REVIEW";
limit?: number;
slack_connect_pref_filter?: string[];
sort_direction?: "asc" | "desc";
sort_field?: "team_name" | "last_active_timestamp" | "connection_status";
workspace_filter?: string[];
}
export interface TeamExternalTeamsDisconnectRequest extends SlackAPIRequest {
target_team: string;
}
export interface ToolingTokensRotateRequest extends SlackAPIRequest {
refresh_token: string;
}
export interface UsergroupsCreateRequest extends SlackAPIRequest {
name: string;
channels?: string | string[];
description?: string;
handle?: string;
include_count?: boolean;
}
export interface UsergroupsDisableRequest extends SlackAPIRequest {
usergroup: string;
include_count?: boolean;
}
export interface UsergroupsEnableRequest extends SlackAPIRequest {
usergroup: string;
include_count?: boolean;
}
export interface UsergroupsListRequest extends SlackAPIRequest {
include_count?: boolean;
include_disabled?: boolean;
include_users?: boolean;
}
export interface UsergroupsUpdateRequest extends SlackAPIRequest {
usergroup: string;
channels?: string | string[];
description?: string;
handle?: string;
include_count?: boolean;
name?: string;
}
export interface UsergroupsUsersListRequest extends SlackAPIRequest {
usergroup: string;
include_disabled?: boolean;
}
export interface UsergroupsUsersUpdateRequest extends SlackAPIRequest {
usergroup: string;
users: string | string[];
include_count?: boolean;
}
export interface UsersConversationsRequest extends SlackAPIRequest, CursorPaginationEnabled {
exclude_archived?: boolean;
types?: ("public_channel" | "private_channel" | "mpim" | "im")[];
user?: string;
team_id?: string;
}
export type UsersDeletePhotoRequest = SlackAPIRequest;
export interface UsersGetPresenceRequest extends SlackAPIRequest {
user: string;
}
export type UsersIdentityRequest = SlackAPIRequest;
export interface UsersInfoRequest extends SlackAPIRequest, LocaleAware {
user: string;
}
export interface UsersListRequest extends SlackAPIRequest, CursorPaginationEnabled, LocaleAware {
presence?: boolean;
team_id?: string;
}
export interface UsersLookupByEmailRequest extends SlackAPIRequest {
email: string;
}
export interface UsersSetPhotoRequest extends SlackAPIRequest {
image: Uint8Array;
crop_w?: number;
crop_x?: number;
crop_y?: number;
}
export interface UsersSetPresenceRequest extends SlackAPIRequest {
presence: "auto" | "away";
}
export interface UsersProfileGetRequest extends SlackAPIRequest {
include_labels?: boolean;
user?: string;
}
export interface UsersProfileSetRequest extends SlackAPIRequest {
profile?: Record<string, unknown> | string;
user?: string;
name?: string;
value?: string;
}
export interface UsersDiscoverableContactsLookupRequest extends SlackAPIRequest {
email: string;
}
export type ViewsOpenRequest = ViewsOpenAppPlatformRequest | ViewsOpenAutomationPlatformRequest;
export interface ViewsOpenAppPlatformRequest extends SlackAPIRequest {
trigger_id: string;
view: ModalView;
}
export interface ViewsOpenAutomationPlatformRequest extends SlackAPIRequest {
interactivity_pointer: string;
view: ModalView;
}
export type ViewsPushRequest = ViewsPushAppPlatformRequest | ViewsPushAutomationPlatformRequest;
export interface ViewsPushAppPlatformRequest extends SlackAPIRequest {
trigger_id: string;
view: ModalView;
}
export interface ViewsPushAutomationPlatformRequest extends SlackAPIRequest {
interactivity_pointer: string;
view: ModalView;
}
export interface ViewsPublishRequest extends SlackAPIRequest {
user_id: string;
view: HomeTabView;
hash?: string;
}
export interface ViewsUpdateRequest extends SlackAPIRequest {
view_id?: string;
view: ModalView;
external_id?: string;
hash?: string;
}
export interface CommonTriggerParameters {
type: string;
name: string;
description?: string;
workflow: string;
inputs: Record<string, {
value: any;
}>;
}
export interface LinkTriggerParameters extends CommonTriggerParameters {
type: "shortcut";
}
export interface ScheduledTriggerParameters extends CommonTriggerParameters {
type: "scheduled";
schedule: ScheduleTriggerSettings;
}
export interface WebhookTriggerParameters extends CommonTriggerParameters {
type: "webhook";
webhook?: WebhookTriggerSettings;
}
export interface EventTriggerParameters extends CommonTriggerParameters {
type: "event";
event: EventTriggerSettings;
}
export type AnyTriggerParameters = LinkTriggerParameters | ScheduledTriggerParameters | WebhookTriggerParameters | EventTriggerParameters;
export type WorkflowsTriggersCreateRequest = SlackAPIRequest & AnyTriggerParameters;
export type WorkflowsTriggersUpdateRequest = SlackAPIRequest & AnyTriggerParameters & {
trigger_id: string;
};
export interface WorkflowsTriggersDeleteRequest extends SlackAPIRequest {
trigger_id: string;
}
export interface WorkflowsTriggersListRequest extends SlackAPIRequest, CursorPaginationEnabled {
is_owner?: boolean;
is_published?: boolean;
}
export {};
//# sourceMappingURL=request.d.ts.map