blob: a5f14090375bdbed0c3b6ba23db351ac4cd90747 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
from __future__ import annotations
from typing import Dict, Generic, List, Optional, TypeVar
from slack_api.slack_common import SlackErrorResponse
from typing_extensions import Literal, NotRequired, TypedDict, final
T = TypeVar("T")
@final
class SlackProfileField(TypedDict):
value: str
alt: str
@final
class SlackSetProfile(TypedDict):
display_name: NotRequired[Optional[str]]
email: NotRequired[Optional[str]]
first_name: NotRequired[Optional[str]]
last_name: NotRequired[Optional[str]]
phone: NotRequired[Optional[str]]
pronouns: NotRequired[Optional[str]]
real_name: NotRequired[Optional[str]]
start_date: NotRequired[Optional[str]]
title: NotRequired[Optional[str]]
status_emoji: NotRequired[Optional[str]]
status_expiration: NotRequired[Optional[int]]
status_text: NotRequired[Optional[str]]
@final
class SlackProfileStatusEmojiDisplayInfo(TypedDict):
emoji_name: str
display_url: str
unicode: str
class SlackProfileCommon(TypedDict):
title: NotRequired[Optional[str]]
phone: NotRequired[Optional[str]]
skype: NotRequired[Optional[str]]
first_name: NotRequired[Optional[str]]
last_name: NotRequired[Optional[str]]
real_name: NotRequired[Optional[str]]
real_name_normalized: NotRequired[Optional[str]]
display_name: NotRequired[Optional[str]]
display_name_normalized: NotRequired[Optional[str]]
fields: NotRequired[Optional[Dict[str, SlackProfileField]]]
status_text: NotRequired[Optional[str]]
status_emoji: NotRequired[Optional[str]]
status_emoji_display_info: NotRequired[
Optional[List[SlackProfileStatusEmojiDisplayInfo]]
]
status_expiration: NotRequired[Optional[int]]
avatar_hash: NotRequired[Optional[str]]
image_original: NotRequired[str]
is_custom_image: NotRequired[Optional[bool]]
huddle_state: NotRequired[Optional[str]]
huddle_state_expiration_ts: NotRequired[Optional[int]]
image_24: NotRequired[str]
image_32: NotRequired[str]
image_48: NotRequired[str]
image_72: NotRequired[str]
image_192: NotRequired[str]
image_512: NotRequired[str]
image_1024: NotRequired[str]
status_text_canonical: NotRequired[Optional[str]]
team: str
@final
class SlackProfilePerson(SlackProfileCommon):
email: NotRequired[Optional[str]]
@final
class SlackProfileBot(SlackProfileCommon):
api_app_id: NotRequired[Optional[str]]
always_active: NotRequired[Optional[bool]]
bot_id: NotRequired[Optional[str]]
image_1024: str
SlackProfile = SlackProfilePerson | SlackProfileBot
@final
class SlackEnterpriseUser(TypedDict):
id: str
enterprise_id: str
enterprise_name: str
is_admin: bool
is_owner: bool
is_primary_owner: bool
teams: List[str]
class SlackUserInfoCommon(TypedDict):
id: str
team_id: NotRequired[str]
name: str
deleted: NotRequired[bool]
color: str
real_name: NotRequired[str]
tz: NotRequired[str]
tz_label: NotRequired[str]
tz_offset: NotRequired[int]
is_admin: NotRequired[bool]
is_owner: NotRequired[bool]
is_primary_owner: NotRequired[bool]
is_restricted: NotRequired[bool]
is_ultra_restricted: NotRequired[bool]
is_app_user: bool
updated: int
is_email_confirmed: NotRequired[bool]
who_can_share_contact_card: str
enterprise_user: NotRequired[SlackEnterpriseUser]
enterprise_id: NotRequired[str]
presence: NotRequired[Literal["active"]]
@final
class SlackUserInfoPerson(SlackUserInfoCommon):
profile: SlackProfilePerson
is_bot: Literal[False]
is_stranger: NotRequired[bool]
has_2fa: NotRequired[bool]
@final
class SlackUserInfoBot(SlackUserInfoCommon):
profile: SlackProfileBot
is_bot: Literal[True]
is_workflow_bot: NotRequired[bool]
SlackUserInfo = SlackUserInfoPerson | SlackUserInfoBot
@final
class SlackUserInfoSuccessResponse(TypedDict, Generic[T]):
ok: Literal[True]
user: T
SlackUserInfoPersonResponse = (
SlackUserInfoSuccessResponse[SlackUserInfoPerson] | SlackErrorResponse
)
SlackUserInfoBotResponse = (
SlackUserInfoSuccessResponse[SlackUserInfoBot] | SlackErrorResponse
)
SlackUserInfoResponse = SlackUserInfoSuccessResponse[SlackUserInfo] | SlackErrorResponse
@final
class SlackUsersInfoSuccessResponse(TypedDict, Generic[T]):
ok: Literal[True]
users: List[T]
SlackUsersInfoPersonResponse = (
SlackUsersInfoSuccessResponse[SlackUserInfoPerson] | SlackErrorResponse
)
SlackUsersInfoBotResponse = (
SlackUsersInfoSuccessResponse[SlackUserInfoBot] | SlackErrorResponse
)
SlackUsersInfoResponse = (
SlackUsersInfoSuccessResponse[SlackUserInfo] | SlackErrorResponse
)
|