@@ -1619,6 +1619,74 @@ def __init__(self, client: EventSubClient, data: dict):
16191619 self .donation_decimal_places : int = data ["amount" ]["decimal_places" ]
16201620
16211621
1622+ class ChannelUnbanRequestCreate (EventData ):
1623+ """
1624+ Represents an unban request created by a user.
1625+
1626+ Attributes
1627+ -----------
1628+ id: :class:`str`
1629+ The ID of the ban request.
1630+ broadcaster: :class:`PartialUser`
1631+ The broadcaster from which the user was banned.
1632+ user: :class:`PartialUser`
1633+ The user that was banned.
1634+ text: :class:`str`
1635+ The unban request text the user submitted.
1636+ created_at: :class:`datetime.datetime`
1637+ When the user submitted the request.
1638+ """
1639+
1640+ __slots__ = (
1641+ "id" ,
1642+ "broadcaster" ,
1643+ "user" ,
1644+ "text" ,
1645+ "created_at"
1646+ )
1647+
1648+ def __init__ (self , client : EventSubClient , data : dict ):
1649+ self .id : str = data ["id" ]
1650+ self .broadcaster : PartialUser = _transform_user (client , data , "broadcaster" )
1651+ self .user : PartialUser = _transform_user (client , data , "user" )
1652+ self .text : str = data ["text" ]
1653+ self .created_at : datetime .datetime = _parse_datetime (data ["created_at" ])
1654+
1655+ class ChannelUnbanRequestResolve (EventData ):
1656+ """
1657+ Represents an unban request that has been resolved by a moderator.
1658+
1659+ Attributes
1660+ -----------
1661+ id: :class:`str`
1662+ The ID of the ban request.
1663+ broadcaster: :class:`PartialUser`
1664+ The broadcaster from which the user was banned.
1665+ user: :class:`PartialUser`
1666+ The user that was banned.
1667+ moderator: :class:`PartialUser`
1668+ The moderator that handled this unban request.
1669+ resolution_text: :class:`str`
1670+ The reasoning provided by the moderator.
1671+ status: :class:`str`
1672+ The resolution. either `accepted` or `denied`.
1673+ """
1674+
1675+ __slots__ = (
1676+ "id" ,
1677+ "broadcaster" ,
1678+ "user" ,
1679+ "text" ,
1680+ "created_at"
1681+ )
1682+
1683+ def __init__ (self , client : EventSubClient , data : dict ):
1684+ self .id : str = data ["id" ]
1685+ self .broadcaster : PartialUser = _transform_user (client , data , "broadcaster" )
1686+ self .user : PartialUser = _transform_user (client , data , "user" )
1687+ self .text : str = data ["text" ]
1688+ self .created_at : datetime .datetime = _parse_datetime (data ["created_at" ])
1689+
16221690_DataType = Union [
16231691 ChannelBanData ,
16241692 ChannelUnbanData ,
@@ -1652,6 +1720,8 @@ def __init__(self, client: EventSubClient, data: dict):
16521720 ChannelShoutoutCreateData ,
16531721 ChannelShoutoutReceiveData ,
16541722 ChannelCharityDonationData ,
1723+ ChannelUnbanRequestCreate ,
1724+ ChannelUnbanRequestResolve
16551725]
16561726
16571727
@@ -1722,6 +1792,9 @@ class _SubscriptionTypes(metaclass=_SubTypesMeta):
17221792 stream_start = "stream.online" , 1 , StreamOnlineData
17231793 stream_end = "stream.offline" , 1 , StreamOfflineData
17241794
1795+ unban_request_create = "channel.unban_request.create" , 1 , ChannelUnbanRequestCreate
1796+ unban_request_resolve = "channel.unban_request.resolve" , 1 , ChannelUnbanRequestResolve
1797+
17251798 user_authorization_grant = "user.authorization.grant" , 1 , UserAuthorizationGrantedData
17261799 user_authorization_revoke = "user.authorization.revoke" , 1 , UserAuthorizationRevokedData
17271800
0 commit comments