@@ -104,6 +104,7 @@ pub struct ReplyParameters {
104104 pub quote_entities : Option < Vec < MessageEntity > > ,
105105 pub quote_position : Option < u32 > ,
106106 pub checklist_task_id : Option < i64 > ,
107+ pub poll_option_id : Option < String > ,
107108}
108109
109110#[ derive( Clone , Debug , Serialize , Deserialize , PartialEq , Eq ) ]
@@ -146,6 +147,7 @@ pub enum MessageEntityType {
146147 TextLink ,
147148 TextMention ,
148149 CustomEmoji ,
150+ DateTime ,
149151 Blockquote ,
150152 ExpandableBlockquote ,
151153 #[ serde( other) ]
@@ -327,6 +329,7 @@ pub enum AllowedUpdate {
327329 ChatJoinRequest ,
328330 ChatBoost ,
329331 RemovedChatBoost ,
332+ ManagedBot ,
330333}
331334
332335#[ apply( apistruct!) ]
@@ -347,6 +350,7 @@ pub struct User {
347350 pub has_main_web_app : Option < bool > ,
348351 pub has_topics_enabled : Option < bool > ,
349352 pub allows_users_to_create_topics : Option < bool > ,
353+ pub can_manage_bots : Option < bool > ,
350354}
351355
352356#[ apply( apistruct!) ]
@@ -440,6 +444,7 @@ pub struct Message {
440444 pub quote : Option < Box < TextQuote > > ,
441445 pub reply_to_story : Option < Box < Story > > ,
442446 pub reply_to_checklist_task_id : Option < i64 > ,
447+ pub reply_to_poll_option_id : Option < String > ,
443448 pub via_bot : Option < Box < User > > ,
444449 pub edit_date : Option < u64 > ,
445450 pub has_protected_content : Option < bool > ,
@@ -514,10 +519,13 @@ pub struct Message {
514519 pub giveaway : Option < Giveaway > ,
515520 pub giveaway_winners : Option < GiveawayWinners > ,
516521 pub giveaway_completed : Option < GiveawayCompleted > ,
522+ pub managed_bot_created : Option < Box < ManagedBotCreated > > ,
517523 pub paid_message_price_changed : Option < PaidMessagePriceChanged > ,
518524 pub suggested_post_approved : Option < Box < SuggestedPostApproved > > ,
519525 pub suggested_post_approval_failed : Option < Box < SuggestedPostApprovalFailed > > ,
520526 pub suggested_post_declined : Option < Box < SuggestedPostDeclined > > ,
527+ pub poll_option_added : Option < Box < PollOptionAdded > > ,
528+ pub poll_option_deleted : Option < Box < PollOptionDeleted > > ,
521529 pub suggested_post_paid : Option < Box < SuggestedPostPaid > > ,
522530 pub suggested_post_refunded : Option < Box < SuggestedPostRefunded > > ,
523531 pub video_chat_scheduled : Option < Box < VideoChatScheduled > > ,
@@ -795,9 +803,13 @@ pub struct Dice {
795803#[ apply( apistruct!) ]
796804#[ derive( Eq ) ]
797805pub struct PollOption {
806+ pub persistent_id : Option < String > ,
798807 pub text : String ,
799808 pub text_entities : Option < Vec < MessageEntity > > ,
800809 pub voter_count : u32 ,
810+ pub added_by_user : Option < User > ,
811+ pub added_by_chat : Option < Box < Chat > > ,
812+ pub addition_date : Option < u32 > ,
801813}
802814
803815#[ apply( apistruct!) ]
@@ -815,6 +827,7 @@ pub struct PollAnswer {
815827 pub voter_chat : Option < Chat > ,
816828 pub user : Option < Box < User > > ,
817829 pub option_ids : Vec < u8 > ,
830+ pub option_persistent_ids : Vec < String > ,
818831}
819832
820833#[ apply( apistruct!) ]
@@ -829,12 +842,15 @@ pub struct Poll {
829842 pub is_anonymous : bool ,
830843 #[ serde( rename = "type" ) ]
831844 pub type_field : PollType ,
832- pub allows_multiple_answers : bool ,
833- pub correct_option_id : Option < u8 > ,
845+ pub allows_multiple_answers : Option < bool > ,
846+ pub allows_revoting : Option < bool > ,
847+ pub correct_option_ids : Option < Vec < u8 > > ,
834848 pub explanation : Option < String > ,
835849 pub explanation_entities : Option < Vec < MessageEntity > > ,
836850 pub open_period : Option < u32 > ,
837851 pub close_date : Option < u64 > ,
852+ pub description : Option < String > ,
853+ pub description_entities : Option < Vec < MessageEntity > > ,
838854}
839855
840856#[ apply( apistruct!) ]
@@ -1124,6 +1140,7 @@ pub struct KeyboardButton {
11241140 pub icon_custom_emoji_id : Option < String > ,
11251141 pub request_users : Option < KeyboardButtonRequestUsers > ,
11261142 pub request_chat : Option < KeyboardButtonRequestChat > ,
1143+ pub request_managed_bot : Option < KeyboardButtonRequestManagedBot > ,
11271144 pub request_contact : Option < bool > ,
11281145 pub request_location : Option < bool > ,
11291146 pub request_poll : Option < KeyboardButtonPollType > ,
@@ -1159,6 +1176,14 @@ pub struct KeyboardButtonRequestChat {
11591176 pub request_photo : Option < bool > ,
11601177}
11611178
1179+ #[ apply( apistruct!) ]
1180+ #[ derive( Eq ) ]
1181+ pub struct KeyboardButtonRequestManagedBot {
1182+ pub request_id : i32 ,
1183+ pub suggested_name : Option < String > ,
1184+ pub suggested_username : Option < String > ,
1185+ }
1186+
11621187#[ apply( apistruct!) ]
11631188#[ derive( Copy , Eq ) ]
11641189pub struct KeyboardButtonPollType {
@@ -1786,6 +1811,35 @@ pub struct InaccessibleMessage {
17861811 pub date : u64 ,
17871812}
17881813
1814+ #[ apply( apistruct!) ]
1815+ #[ derive( Eq ) ]
1816+ pub struct ManagedBotCreated {
1817+ pub bot : User ,
1818+ }
1819+
1820+ #[ apply( apistruct!) ]
1821+ #[ derive( Eq ) ]
1822+ pub struct ManagedBotUpdated {
1823+ pub user : User ,
1824+ pub bot : User ,
1825+ }
1826+
1827+ #[ apply( apistruct!) ]
1828+ pub struct PollOptionAdded {
1829+ pub poll_message : Option < MaybeInaccessibleMessage > ,
1830+ pub option_persistent_id : String ,
1831+ pub option_text : String ,
1832+ pub option_text_entities : Option < Vec < MessageEntity > > ,
1833+ }
1834+
1835+ #[ apply( apistruct!) ]
1836+ pub struct PollOptionDeleted {
1837+ pub poll_message : Option < MaybeInaccessibleMessage > ,
1838+ pub option_persistent_id : String ,
1839+ pub option_text : String ,
1840+ pub option_text_entities : Option < Vec < MessageEntity > > ,
1841+ }
1842+
17891843#[ cfg( test) ]
17901844mod serde_tests {
17911845 use super :: * ;
0 commit comments