aboutsummaryrefslogtreecommitdiffstats
path: root/typings/slack_api/slack_profile.pyi
blob: e02d44e9ed58dc8604f35637a803ccf01da2b4ae (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
from __future__ import annotations

from typing import Dict, List, Optional

from slack_api.slack_common import SlackErrorResponse
from typing_extensions import Literal, NotRequired, TypedDict, final

@final
class SlackProfileField(TypedDict):
    value: str
    alt: 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 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 SlackUsersProfileSetSuccessResponse(TypedDict):
    ok: Literal[True]
    profile: SlackProfilePerson

SlackUsersProfileSetResponse = SlackUsersProfileSetSuccessResponse | SlackErrorResponse