11from datetime import datetime
2- from typing import Any , List , Optional
3-
4- from ...utils .attrs_utils import ClientSerializerMixin , convert_list , define , field
2+ from enum import IntEnum
3+ from typing import Any , Dict , List , Optional , Union
4+
5+ from ...client .enums import Locale
6+ from ...utils .attrs_utils import (
7+ ClientSerializerMixin ,
8+ DictSerializerMixin ,
9+ convert_list ,
10+ define ,
11+ field ,
12+ )
513from .flags import AppFlags
614from .misc import IDMixin , Snowflake
715from .user import User
1018 "Team" ,
1119 "TeamMember" ,
1220 "Application" ,
21+ "ApplicationRoleConnectionMetadataType" ,
22+ "ApplicationRoleConnectionMetadata" ,
1323)
1424
1525
@@ -79,6 +89,7 @@ class Application(ClientSerializerMixin, IDMixin):
7989 :ivar Optional[str] slug: URL slug that links to the store page, if this app is a game sold on Discord
8090 :ivar Optional[str] cover_image: The app's default rich presence invite cover image
8191 :ivar Optional[AppFlags] flags: The application's public flags
92+ :ivar Optional[str] role_connections_verification_url: The application's role connection verification URL, if given.
8293 """
8394
8495 id : Snowflake = field (converter = Snowflake )
@@ -101,6 +112,7 @@ class Application(ClientSerializerMixin, IDMixin):
101112 flags : Optional [AppFlags ] = field (converter = AppFlags , default = None )
102113 type : Optional [Any ] = field (default = None )
103114 hook : Optional [Any ] = field (default = None )
115+ role_connections_verification_url : Optional [str ] = field (default = None , repr = False )
104116
105117 @property
106118 def icon_url (self ) -> Optional [str ]:
@@ -127,3 +139,38 @@ def created_at(self) -> datetime:
127139 Returns when the application was created.
128140 """
129141 return self .id .timestamp
142+
143+
144+ class ApplicationRoleConnectionMetadataType (IntEnum ):
145+ """
146+ .. versionadded:: 4.4.0
147+
148+ An enumerable object representing the app role connection metadata types
149+ """
150+
151+ INTEGER_LESS_THAN_OR_EQUAL = 1
152+ INTEGER_GREATER_THAN_OR_EQUAL = 2
153+ INTEGER_EQUAL = 3
154+ INTEGER_NOT_EQUAL = 4
155+ DATETIME_LESS_THAN_OR_EQUAL = 5
156+ DATETIME_GREATER_THAN_OR_EQUAL = 6
157+ BOOLEAN_EQUAL = 7
158+ BOOLEAN_NOT_EQUAL = 8
159+
160+
161+ @define ()
162+ class ApplicationRoleConnectionMetadata (DictSerializerMixin ):
163+ """
164+ .. versionadded:: 4.4.0
165+
166+ A class object representing role connection metadata for the application/bot/client.
167+ """
168+
169+ type : ApplicationRoleConnectionMetadataType = field (
170+ converter = ApplicationRoleConnectionMetadataType
171+ )
172+ key : str = field ()
173+ name : str = field ()
174+ name_localizations : Optional [Dict [Union [str , Locale ], str ]] = field (default = None )
175+ description : str = field ()
176+ description_localizations : Optional [Dict [Union [str , Locale ], str ]] = field (default = None )
0 commit comments