# Generated by scripts/generate_telegram_schema.py. Source: https://core.telegram.org/bots/api
schema = {'methods': {'addStickerToSet': {'name': {'required': True, 'type': 'String'},
                                 'sticker': {'required': True, 'type': 'InputSticker'},
                                 'user_id': {'required': True, 'type': 'Integer'}},
             'answerCallbackQuery': {'cache_time': {'required': False, 'type': 'Integer'},
                                     'callback_query_id': {'required': True, 'type': 'String'},
                                     'show_alert': {'required': False, 'type': 'Boolean'},
                                     'text': {'required': False, 'type': 'String'},
                                     'url': {'required': False, 'type': 'String'}},
             'answerChatJoinRequestQuery': {'chat_join_request_query_id': {'required': True,
                                                                           'type': 'String'},
                                            'result': {'required': True, 'type': 'String'}},
             'answerGuestQuery': {'guest_query_id': {'required': True, 'type': 'String'},
                                  'result': {'required': True, 'type': 'InlineQueryResult'}},
             'answerInlineQuery': {'button': {'required': False, 'type': 'InlineQueryResultsButton'},
                                   'cache_time': {'required': False, 'type': 'Integer'},
                                   'inline_query_id': {'required': True, 'type': 'String'},
                                   'is_personal': {'required': False, 'type': 'Boolean'},
                                   'next_offset': {'required': False, 'type': 'String'},
                                   'results': {'required': True, 'type': 'Array of InlineQueryResult'}},
             'answerPreCheckoutQuery': {'error_message': {'required': False, 'type': 'String'},
                                        'ok': {'required': True, 'type': 'Boolean'},
                                        'pre_checkout_query_id': {'required': True, 'type': 'String'}},
             'answerShippingQuery': {'error_message': {'required': False, 'type': 'String'},
                                     'ok': {'required': True, 'type': 'Boolean'},
                                     'shipping_options': {'required': False,
                                                          'type': 'Array of ShippingOption'},
                                     'shipping_query_id': {'required': True, 'type': 'String'}},
             'answerWebAppQuery': {'result': {'required': True, 'type': 'InlineQueryResult'},
                                   'web_app_query_id': {'required': True, 'type': 'String'}},
             'approveChatJoinRequest': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                        'user_id': {'required': True, 'type': 'Integer'}},
             'approveSuggestedPost': {'chat_id': {'required': True, 'type': 'Integer'},
                                      'message_id': {'required': True, 'type': 'Integer'},
                                      'send_date': {'required': False, 'type': 'Integer'}},
             'banChatMember': {'chat_id': {'required': True, 'type': 'Integer or String'},
                               'revoke_messages': {'required': False, 'type': 'Boolean'},
                               'until_date': {'required': False, 'type': 'Integer'},
                               'user_id': {'required': True, 'type': 'Integer'}},
             'banChatSenderChat': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                   'sender_chat_id': {'required': True, 'type': 'Integer'}},
             'closeForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                 'message_thread_id': {'required': True, 'type': 'Integer'}},
             'closeGeneralForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'convertGiftToStars': {'business_connection_id': {'required': True, 'type': 'String'},
                                    'owned_gift_id': {'required': True, 'type': 'String'}},
             'copyMessage': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                             'caption': {'required': False, 'type': 'String'},
                             'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                             'chat_id': {'required': True, 'type': 'Integer or String'},
                             'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                             'disable_notification': {'required': False, 'type': 'Boolean'},
                             'from_chat_id': {'required': True, 'type': 'Integer or String'},
                             'message_effect_id': {'required': False, 'type': 'String'},
                             'message_id': {'required': True, 'type': 'Integer'},
                             'message_thread_id': {'required': False, 'type': 'Integer'},
                             'parse_mode': {'required': False, 'type': 'String'},
                             'protect_content': {'required': False, 'type': 'Boolean'},
                             'reply_markup': {'required': False,
                                              'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                      'ReplyKeyboardRemove or ForceReply'},
                             'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                             'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                             'suggested_post_parameters': {'required': False,
                                                           'type': 'SuggestedPostParameters'},
                             'video_start_timestamp': {'required': False, 'type': 'Integer'}},
             'copyMessages': {'chat_id': {'required': True, 'type': 'Integer or String'},
                              'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                              'disable_notification': {'required': False, 'type': 'Boolean'},
                              'from_chat_id': {'required': True, 'type': 'Integer or String'},
                              'message_ids': {'required': True, 'type': 'Array of Integer'},
                              'message_thread_id': {'required': False, 'type': 'Integer'},
                              'protect_content': {'required': False, 'type': 'Boolean'},
                              'remove_caption': {'required': False, 'type': 'Boolean'}},
             'createChatInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                      'creates_join_request': {'required': False, 'type': 'Boolean'},
                                      'expire_date': {'required': False, 'type': 'Integer'},
                                      'member_limit': {'required': False, 'type': 'Integer'},
                                      'name': {'required': False, 'type': 'String'}},
             'createChatSubscriptionInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                                  'name': {'required': False, 'type': 'String'},
                                                  'subscription_period': {'required': True,
                                                                          'type': 'Integer'},
                                                  'subscription_price': {'required': True,
                                                                         'type': 'Integer'}},
             'createForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                  'icon_color': {'required': False, 'type': 'Integer'},
                                  'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                                  'name': {'required': True, 'type': 'String'}},
             'createInvoiceLink': {'business_connection_id': {'required': False, 'type': 'String'},
                                   'currency': {'required': True, 'type': 'String'},
                                   'description': {'required': True, 'type': 'String'},
                                   'is_flexible': {'required': False, 'type': 'Boolean'},
                                   'max_tip_amount': {'required': False, 'type': 'Integer'},
                                   'need_email': {'required': False, 'type': 'Boolean'},
                                   'need_name': {'required': False, 'type': 'Boolean'},
                                   'need_phone_number': {'required': False, 'type': 'Boolean'},
                                   'need_shipping_address': {'required': False, 'type': 'Boolean'},
                                   'payload': {'required': True, 'type': 'String'},
                                   'photo_height': {'required': False, 'type': 'Integer'},
                                   'photo_size': {'required': False, 'type': 'Integer'},
                                   'photo_url': {'required': False, 'type': 'String'},
                                   'photo_width': {'required': False, 'type': 'Integer'},
                                   'prices': {'required': True, 'type': 'Array of LabeledPrice'},
                                   'provider_data': {'required': False, 'type': 'String'},
                                   'provider_token': {'required': False, 'type': 'String'},
                                   'send_email_to_provider': {'required': False, 'type': 'Boolean'},
                                   'send_phone_number_to_provider': {'required': False, 'type': 'Boolean'},
                                   'subscription_period': {'required': False, 'type': 'Integer'},
                                   'suggested_tip_amounts': {'required': False, 'type': 'Array of Integer'},
                                   'title': {'required': True, 'type': 'String'}},
             'createNewStickerSet': {'name': {'required': True, 'type': 'String'},
                                     'needs_repainting': {'required': False, 'type': 'Boolean'},
                                     'sticker_type': {'required': False, 'type': 'String'},
                                     'stickers': {'required': True, 'type': 'Array of InputSticker'},
                                     'title': {'required': True, 'type': 'String'},
                                     'user_id': {'required': True, 'type': 'Integer'}},
             'declineChatJoinRequest': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                        'user_id': {'required': True, 'type': 'Integer'}},
             'declineSuggestedPost': {'chat_id': {'required': True, 'type': 'Integer'},
                                      'comment': {'required': False, 'type': 'String'},
                                      'message_id': {'required': True, 'type': 'Integer'}},
             'deleteAllMessageReactions': {'actor_chat_id': {'required': False, 'type': 'Integer'},
                                           'chat_id': {'required': True, 'type': 'Integer or String'},
                                           'user_id': {'required': False, 'type': 'Integer'}},
             'deleteBusinessMessages': {'business_connection_id': {'required': True, 'type': 'String'},
                                        'message_ids': {'required': True, 'type': 'Array of Integer'}},
             'deleteChatPhoto': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'deleteChatStickerSet': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'deleteEphemeralMessage': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                        'ephemeral_message_id': {'required': True, 'type': 'Integer'},
                                        'receiver_user_id': {'required': True, 'type': 'Integer'}},
             'deleteForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                  'message_thread_id': {'required': True, 'type': 'Integer'}},
             'deleteMessage': {'chat_id': {'required': True, 'type': 'Integer or String'},
                               'message_id': {'required': True, 'type': 'Integer'}},
             'deleteMessageReaction': {'actor_chat_id': {'required': False, 'type': 'Integer'},
                                       'chat_id': {'required': True, 'type': 'Integer or String'},
                                       'message_id': {'required': True, 'type': 'Integer'},
                                       'user_id': {'required': False, 'type': 'Integer'}},
             'deleteMessages': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                'message_ids': {'required': True, 'type': 'Array of Integer'}},
             'deleteMyCommands': {'language_code': {'required': False, 'type': 'String'},
                                  'scope': {'required': False, 'type': 'BotCommandScope'}},
             'deleteStickerFromSet': {'sticker': {'required': True, 'type': 'String'}},
             'deleteStickerSet': {'name': {'required': True, 'type': 'String'}},
             'deleteStory': {'business_connection_id': {'required': True, 'type': 'String'},
                             'story_id': {'required': True, 'type': 'Integer'}},
             'deleteWebhook': {'drop_pending_updates': {'required': False, 'type': 'Boolean'}},
             'editChatInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                    'creates_join_request': {'required': False, 'type': 'Boolean'},
                                    'expire_date': {'required': False, 'type': 'Integer'},
                                    'invite_link': {'required': True, 'type': 'String'},
                                    'member_limit': {'required': False, 'type': 'Integer'},
                                    'name': {'required': False, 'type': 'String'}},
             'editChatSubscriptionInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                                'invite_link': {'required': True, 'type': 'String'},
                                                'name': {'required': False, 'type': 'String'}},
             'editEphemeralMessageCaption': {'caption': {'required': False, 'type': 'String'},
                                             'caption_entities': {'required': False,
                                                                  'type': 'Array of MessageEntity'},
                                             'chat_id': {'required': True, 'type': 'Integer or String'},
                                             'ephemeral_message_id': {'required': True, 'type': 'Integer'},
                                             'parse_mode': {'required': False, 'type': 'String'},
                                             'receiver_user_id': {'required': True, 'type': 'Integer'},
                                             'reply_markup': {'required': False,
                                                              'type': 'InlineKeyboardMarkup'},
                                             'show_caption_above_media': {'required': False,
                                                                          'type': 'Boolean'}},
             'editEphemeralMessageMedia': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                           'ephemeral_message_id': {'required': True, 'type': 'Integer'},
                                           'media': {'required': True, 'type': 'InputMedia'},
                                           'receiver_user_id': {'required': True, 'type': 'Integer'},
                                           'reply_markup': {'required': False,
                                                            'type': 'InlineKeyboardMarkup'}},
             'editEphemeralMessageReplyMarkup': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                                 'ephemeral_message_id': {'required': True,
                                                                          'type': 'Integer'},
                                                 'receiver_user_id': {'required': True, 'type': 'Integer'},
                                                 'reply_markup': {'required': False,
                                                                  'type': 'InlineKeyboardMarkup'}},
             'editEphemeralMessageText': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                          'entities': {'required': False, 'type': 'Array of MessageEntity'},
                                          'ephemeral_message_id': {'required': True, 'type': 'Integer'},
                                          'link_preview_options': {'required': False,
                                                                   'type': 'LinkPreviewOptions'},
                                          'parse_mode': {'required': False, 'type': 'String'},
                                          'receiver_user_id': {'required': True, 'type': 'Integer'},
                                          'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                          'rich_message': {'required': False, 'type': 'InputRichMessage'},
                                          'text': {'required': False, 'type': 'String'}},
             'editForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                                'message_thread_id': {'required': True, 'type': 'Integer'},
                                'name': {'required': False, 'type': 'String'}},
             'editGeneralForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                       'name': {'required': True, 'type': 'String'}},
             'editMessageCaption': {'business_connection_id': {'required': False, 'type': 'String'},
                                    'caption': {'required': False, 'type': 'String'},
                                    'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                    'chat_id': {'required': False, 'type': 'Integer or String'},
                                    'inline_message_id': {'required': False, 'type': 'String'},
                                    'message_id': {'required': False, 'type': 'Integer'},
                                    'parse_mode': {'required': False, 'type': 'String'},
                                    'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                    'show_caption_above_media': {'required': False, 'type': 'Boolean'}},
             'editMessageChecklist': {'business_connection_id': {'required': True, 'type': 'String'},
                                      'chat_id': {'required': True, 'type': 'Integer or String'},
                                      'checklist': {'required': True, 'type': 'InputChecklist'},
                                      'message_id': {'required': True, 'type': 'Integer'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'editMessageLiveLocation': {'business_connection_id': {'required': False, 'type': 'String'},
                                         'chat_id': {'required': False, 'type': 'Integer or String'},
                                         'heading': {'required': False, 'type': 'Integer'},
                                         'horizontal_accuracy': {'required': False, 'type': 'Float'},
                                         'inline_message_id': {'required': False, 'type': 'String'},
                                         'latitude': {'required': True, 'type': 'Float'},
                                         'live_period': {'required': False, 'type': 'Integer'},
                                         'longitude': {'required': True, 'type': 'Float'},
                                         'message_id': {'required': False, 'type': 'Integer'},
                                         'proximity_alert_radius': {'required': False, 'type': 'Integer'},
                                         'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'editMessageMedia': {'business_connection_id': {'required': False, 'type': 'String'},
                                  'chat_id': {'required': False, 'type': 'Integer or String'},
                                  'inline_message_id': {'required': False, 'type': 'String'},
                                  'media': {'required': True, 'type': 'InputMedia'},
                                  'message_id': {'required': False, 'type': 'Integer'},
                                  'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'editMessageReplyMarkup': {'business_connection_id': {'required': False, 'type': 'String'},
                                        'chat_id': {'required': False, 'type': 'Integer or String'},
                                        'inline_message_id': {'required': False, 'type': 'String'},
                                        'message_id': {'required': False, 'type': 'Integer'},
                                        'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'editMessageText': {'business_connection_id': {'required': False, 'type': 'String'},
                                 'chat_id': {'required': False, 'type': 'Integer or String'},
                                 'entities': {'required': False, 'type': 'Array of MessageEntity'},
                                 'inline_message_id': {'required': False, 'type': 'String'},
                                 'link_preview_options': {'required': False, 'type': 'LinkPreviewOptions'},
                                 'message_id': {'required': False, 'type': 'Integer'},
                                 'parse_mode': {'required': False, 'type': 'String'},
                                 'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                 'rich_message': {'required': False, 'type': 'InputRichMessage'},
                                 'text': {'required': False, 'type': 'String'}},
             'editStory': {'areas': {'required': False, 'type': 'Array of StoryArea'},
                           'business_connection_id': {'required': True, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'content': {'required': True, 'type': 'InputStoryContent'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'story_id': {'required': True, 'type': 'Integer'}},
             'editUserStarSubscription': {'is_canceled': {'required': True, 'type': 'Boolean'},
                                          'telegram_payment_charge_id': {'required': True, 'type': 'String'},
                                          'user_id': {'required': True, 'type': 'Integer'}},
             'exportChatInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'forwardMessage': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                                'disable_notification': {'required': False, 'type': 'Boolean'},
                                'from_chat_id': {'required': True, 'type': 'Integer or String'},
                                'message_effect_id': {'required': False, 'type': 'String'},
                                'message_id': {'required': True, 'type': 'Integer'},
                                'message_thread_id': {'required': False, 'type': 'Integer'},
                                'protect_content': {'required': False, 'type': 'Boolean'},
                                'suggested_post_parameters': {'required': False,
                                                              'type': 'SuggestedPostParameters'},
                                'video_start_timestamp': {'required': False, 'type': 'Integer'}},
             'forwardMessages': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                 'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                                 'disable_notification': {'required': False, 'type': 'Boolean'},
                                 'from_chat_id': {'required': True, 'type': 'Integer or String'},
                                 'message_ids': {'required': True, 'type': 'Array of Integer'},
                                 'message_thread_id': {'required': False, 'type': 'Integer'},
                                 'protect_content': {'required': False, 'type': 'Boolean'}},
             'getAvailableGifts': {},
             'getBusinessAccountGifts': {'business_connection_id': {'required': True, 'type': 'String'},
                                         'exclude_from_blockchain': {'required': False, 'type': 'Boolean'},
                                         'exclude_limited_non_upgradable': {'required': False,
                                                                            'type': 'Boolean'},
                                         'exclude_limited_upgradable': {'required': False, 'type': 'Boolean'},
                                         'exclude_saved': {'required': False, 'type': 'Boolean'},
                                         'exclude_unique': {'required': False, 'type': 'Boolean'},
                                         'exclude_unlimited': {'required': False, 'type': 'Boolean'},
                                         'exclude_unsaved': {'required': False, 'type': 'Boolean'},
                                         'limit': {'required': False, 'type': 'Integer'},
                                         'offset': {'required': False, 'type': 'String'},
                                         'sort_by_price': {'required': False, 'type': 'Boolean'}},
             'getBusinessAccountStarBalance': {'business_connection_id': {'required': True,
                                                                          'type': 'String'}},
             'getBusinessConnection': {'business_connection_id': {'required': True, 'type': 'String'}},
             'getChat': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'getChatAdministrators': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                       'return_bots': {'required': False, 'type': 'Boolean'}},
             'getChatGifts': {'chat_id': {'required': True, 'type': 'Integer or String'},
                              'exclude_from_blockchain': {'required': False, 'type': 'Boolean'},
                              'exclude_limited_non_upgradable': {'required': False, 'type': 'Boolean'},
                              'exclude_limited_upgradable': {'required': False, 'type': 'Boolean'},
                              'exclude_saved': {'required': False, 'type': 'Boolean'},
                              'exclude_unique': {'required': False, 'type': 'Boolean'},
                              'exclude_unlimited': {'required': False, 'type': 'Boolean'},
                              'exclude_unsaved': {'required': False, 'type': 'Boolean'},
                              'limit': {'required': False, 'type': 'Integer'},
                              'offset': {'required': False, 'type': 'String'},
                              'sort_by_price': {'required': False, 'type': 'Boolean'}},
             'getChatMember': {'chat_id': {'required': True, 'type': 'Integer or String'},
                               'user_id': {'required': True, 'type': 'Integer'}},
             'getChatMemberCount': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'getChatMenuButton': {'chat_id': {'required': False, 'type': 'Integer'}},
             'getCustomEmojiStickers': {'custom_emoji_ids': {'required': True, 'type': 'Array of String'}},
             'getFile': {'file_id': {'required': True, 'type': 'String'}},
             'getForumTopicIconStickers': {},
             'getGameHighScores': {'chat_id': {'required': False, 'type': 'Integer'},
                                   'inline_message_id': {'required': False, 'type': 'String'},
                                   'message_id': {'required': False, 'type': 'Integer'},
                                   'user_id': {'required': True, 'type': 'Integer'}},
             'getManagedBotAccessSettings': {'user_id': {'required': True, 'type': 'Integer'}},
             'getManagedBotToken': {'user_id': {'required': True, 'type': 'Integer'}},
             'getMe': {},
             'getMyCommands': {'language_code': {'required': False, 'type': 'String'},
                               'scope': {'required': False, 'type': 'BotCommandScope'}},
             'getMyDefaultAdministratorRights': {'for_channels': {'required': False, 'type': 'Boolean'}},
             'getMyDescription': {'language_code': {'required': False, 'type': 'String'}},
             'getMyName': {'language_code': {'required': False, 'type': 'String'}},
             'getMyShortDescription': {'language_code': {'required': False, 'type': 'String'}},
             'getMyStarBalance': {},
             'getStarTransactions': {'limit': {'required': False, 'type': 'Integer'},
                                     'offset': {'required': False, 'type': 'Integer'}},
             'getStickerSet': {'name': {'required': True, 'type': 'String'}},
             'getUpdates': {'allowed_updates': {'required': False, 'type': 'Array of String'},
                            'limit': {'required': False, 'type': 'Integer'},
                            'offset': {'required': False, 'type': 'Integer'},
                            'timeout': {'required': False, 'type': 'Integer'}},
             'getUserChatBoosts': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                   'user_id': {'required': True, 'type': 'Integer'}},
             'getUserGifts': {'exclude_from_blockchain': {'required': False, 'type': 'Boolean'},
                              'exclude_limited_non_upgradable': {'required': False, 'type': 'Boolean'},
                              'exclude_limited_upgradable': {'required': False, 'type': 'Boolean'},
                              'exclude_unique': {'required': False, 'type': 'Boolean'},
                              'exclude_unlimited': {'required': False, 'type': 'Boolean'},
                              'limit': {'required': False, 'type': 'Integer'},
                              'offset': {'required': False, 'type': 'String'},
                              'sort_by_price': {'required': False, 'type': 'Boolean'},
                              'user_id': {'required': True, 'type': 'Integer'}},
             'getUserPersonalChatMessages': {'limit': {'required': True, 'type': 'Integer'},
                                             'user_id': {'required': True, 'type': 'Integer'}},
             'getUserProfileAudios': {'limit': {'required': False, 'type': 'Integer'},
                                      'offset': {'required': False, 'type': 'Integer'},
                                      'user_id': {'required': True, 'type': 'Integer'}},
             'getUserProfilePhotos': {'limit': {'required': False, 'type': 'Integer'},
                                      'offset': {'required': False, 'type': 'Integer'},
                                      'user_id': {'required': True, 'type': 'Integer'}},
             'getWebhookInfo': {},
             'giftPremiumSubscription': {'month_count': {'required': True, 'type': 'Integer'},
                                         'star_count': {'required': True, 'type': 'Integer'},
                                         'text': {'required': False, 'type': 'String'},
                                         'text_entities': {'required': False,
                                                           'type': 'Array of MessageEntity'},
                                         'text_parse_mode': {'required': False, 'type': 'String'},
                                         'user_id': {'required': True, 'type': 'Integer'}},
             'hideGeneralForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'leaveChat': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'logOut': {},
             'pinChatMessage': {'business_connection_id': {'required': False, 'type': 'String'},
                                'chat_id': {'required': True, 'type': 'Integer or String'},
                                'disable_notification': {'required': False, 'type': 'Boolean'},
                                'message_id': {'required': True, 'type': 'Integer'}},
             'postStory': {'active_period': {'required': True, 'type': 'Integer'},
                           'areas': {'required': False, 'type': 'Array of StoryArea'},
                           'business_connection_id': {'required': True, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'content': {'required': True, 'type': 'InputStoryContent'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'post_to_chat_page': {'required': False, 'type': 'Boolean'},
                           'protect_content': {'required': False, 'type': 'Boolean'}},
             'promoteChatMember': {'can_change_info': {'required': False, 'type': 'Boolean'},
                                   'can_delete_messages': {'required': False, 'type': 'Boolean'},
                                   'can_delete_stories': {'required': False, 'type': 'Boolean'},
                                   'can_edit_messages': {'required': False, 'type': 'Boolean'},
                                   'can_edit_stories': {'required': False, 'type': 'Boolean'},
                                   'can_invite_users': {'required': False, 'type': 'Boolean'},
                                   'can_manage_chat': {'required': False, 'type': 'Boolean'},
                                   'can_manage_direct_messages': {'required': False, 'type': 'Boolean'},
                                   'can_manage_tags': {'required': False, 'type': 'Boolean'},
                                   'can_manage_topics': {'required': False, 'type': 'Boolean'},
                                   'can_manage_video_chats': {'required': False, 'type': 'Boolean'},
                                   'can_pin_messages': {'required': False, 'type': 'Boolean'},
                                   'can_post_messages': {'required': False, 'type': 'Boolean'},
                                   'can_post_stories': {'required': False, 'type': 'Boolean'},
                                   'can_promote_members': {'required': False, 'type': 'Boolean'},
                                   'can_restrict_members': {'required': False, 'type': 'Boolean'},
                                   'can_send_welcome_messages': {'required': False, 'type': 'Boolean'},
                                   'chat_id': {'required': True, 'type': 'Integer or String'},
                                   'is_anonymous': {'required': False, 'type': 'Boolean'},
                                   'user_id': {'required': True, 'type': 'Integer'}},
             'readBusinessMessage': {'business_connection_id': {'required': True, 'type': 'String'},
                                     'chat_id': {'required': True, 'type': 'Integer'},
                                     'message_id': {'required': True, 'type': 'Integer'}},
             'refundStarPayment': {'telegram_payment_charge_id': {'required': True, 'type': 'String'},
                                   'user_id': {'required': True, 'type': 'Integer'}},
             'removeBusinessAccountProfilePhoto': {'business_connection_id': {'required': True,
                                                                              'type': 'String'},
                                                   'is_public': {'required': False, 'type': 'Boolean'}},
             'removeChatVerification': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'removeMyProfilePhoto': {},
             'removeUserVerification': {'user_id': {'required': True, 'type': 'Integer'}},
             'reopenForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                  'message_thread_id': {'required': True, 'type': 'Integer'}},
             'reopenGeneralForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'replaceManagedBotToken': {'user_id': {'required': True, 'type': 'Integer'}},
             'replaceStickerInSet': {'name': {'required': True, 'type': 'String'},
                                     'old_sticker': {'required': True, 'type': 'String'},
                                     'sticker': {'required': True, 'type': 'InputSticker'},
                                     'user_id': {'required': True, 'type': 'Integer'}},
             'repostStory': {'active_period': {'required': True, 'type': 'Integer'},
                             'business_connection_id': {'required': True, 'type': 'String'},
                             'from_chat_id': {'required': True, 'type': 'Integer'},
                             'from_story_id': {'required': True, 'type': 'Integer'},
                             'post_to_chat_page': {'required': False, 'type': 'Boolean'},
                             'protect_content': {'required': False, 'type': 'Boolean'}},
             'restrictChatMember': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                    'permissions': {'required': True, 'type': 'ChatPermissions'},
                                    'until_date': {'required': False, 'type': 'Integer'},
                                    'use_independent_chat_permissions': {'required': False,
                                                                         'type': 'Boolean'},
                                    'user_id': {'required': True, 'type': 'Integer'}},
             'revokeChatInviteLink': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                      'invite_link': {'required': True, 'type': 'String'}},
             'savePreparedInlineMessage': {'allow_bot_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_channel_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_group_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_user_chats': {'required': False, 'type': 'Boolean'},
                                           'result': {'required': True, 'type': 'InlineQueryResult'},
                                           'user_id': {'required': True, 'type': 'Integer'}},
             'savePreparedKeyboardButton': {'button': {'required': True, 'type': 'KeyboardButton'},
                                            'user_id': {'required': True, 'type': 'Integer'}},
             'sendAnimation': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                               'animation': {'required': True, 'type': 'InputFile or String'},
                               'business_connection_id': {'required': False, 'type': 'String'},
                               'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'chat_id': {'required': True, 'type': 'Integer or String'},
                               'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                               'disable_notification': {'required': False, 'type': 'Boolean'},
                               'duration': {'required': False, 'type': 'Integer'},
                               'ephemeral_message_parameters': {'required': False,
                                                                'type': 'EphemeralMessageParameters'},
                               'has_spoiler': {'required': False, 'type': 'Boolean'},
                               'height': {'required': False, 'type': 'Integer'},
                               'message_effect_id': {'required': False, 'type': 'String'},
                               'message_thread_id': {'required': False, 'type': 'Integer'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'protect_content': {'required': False, 'type': 'Boolean'},
                               'reply_markup': {'required': False,
                                                'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                        'ReplyKeyboardRemove or ForceReply'},
                               'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                               'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                               'suggested_post_parameters': {'required': False,
                                                             'type': 'SuggestedPostParameters'},
                               'thumbnail': {'required': False, 'type': 'InputFile or String'},
                               'width': {'required': False, 'type': 'Integer'}},
             'sendAudio': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                           'audio': {'required': True, 'type': 'InputFile or String'},
                           'business_connection_id': {'required': False, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'chat_id': {'required': True, 'type': 'Integer or String'},
                           'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                           'disable_notification': {'required': False, 'type': 'Boolean'},
                           'duration': {'required': False, 'type': 'Integer'},
                           'ephemeral_message_parameters': {'required': False,
                                                            'type': 'EphemeralMessageParameters'},
                           'message_effect_id': {'required': False, 'type': 'String'},
                           'message_thread_id': {'required': False, 'type': 'Integer'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'performer': {'required': False, 'type': 'String'},
                           'protect_content': {'required': False, 'type': 'Boolean'},
                           'reply_markup': {'required': False,
                                            'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                    'ReplyKeyboardRemove or ForceReply'},
                           'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                           'suggested_post_parameters': {'required': False,
                                                         'type': 'SuggestedPostParameters'},
                           'thumbnail': {'required': False, 'type': 'InputFile or String'},
                           'title': {'required': False, 'type': 'String'}},
             'sendChatAction': {'action': {'required': True, 'type': 'String'},
                                'business_connection_id': {'required': False, 'type': 'String'},
                                'chat_id': {'required': True, 'type': 'Integer or String'},
                                'message_thread_id': {'required': False, 'type': 'Integer'}},
             'sendChatJoinRequestWebApp': {'chat_join_request_query_id': {'required': True, 'type': 'String'},
                                           'web_app_url': {'required': True, 'type': 'String'}},
             'sendChecklist': {'business_connection_id': {'required': True, 'type': 'String'},
                               'chat_id': {'required': True, 'type': 'Integer or String'},
                               'checklist': {'required': True, 'type': 'InputChecklist'},
                               'disable_notification': {'required': False, 'type': 'Boolean'},
                               'message_effect_id': {'required': False, 'type': 'String'},
                               'protect_content': {'required': False, 'type': 'Boolean'},
                               'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                               'reply_parameters': {'required': False, 'type': 'ReplyParameters'}},
             'sendContact': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                             'business_connection_id': {'required': False, 'type': 'String'},
                             'chat_id': {'required': True, 'type': 'Integer or String'},
                             'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                             'disable_notification': {'required': False, 'type': 'Boolean'},
                             'ephemeral_message_parameters': {'required': False,
                                                              'type': 'EphemeralMessageParameters'},
                             'first_name': {'required': True, 'type': 'String'},
                             'last_name': {'required': False, 'type': 'String'},
                             'message_effect_id': {'required': False, 'type': 'String'},
                             'message_thread_id': {'required': False, 'type': 'Integer'},
                             'phone_number': {'required': True, 'type': 'String'},
                             'protect_content': {'required': False, 'type': 'Boolean'},
                             'reply_markup': {'required': False,
                                              'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                      'ReplyKeyboardRemove or ForceReply'},
                             'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                             'suggested_post_parameters': {'required': False,
                                                           'type': 'SuggestedPostParameters'},
                             'vcard': {'required': False, 'type': 'String'}},
             'sendDice': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                          'business_connection_id': {'required': False, 'type': 'String'},
                          'chat_id': {'required': True, 'type': 'Integer or String'},
                          'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                          'disable_notification': {'required': False, 'type': 'Boolean'},
                          'emoji': {'required': False, 'type': 'String'},
                          'message_effect_id': {'required': False, 'type': 'String'},
                          'message_thread_id': {'required': False, 'type': 'Integer'},
                          'protect_content': {'required': False, 'type': 'Boolean'},
                          'reply_markup': {'required': False,
                                           'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                   'ReplyKeyboardRemove or ForceReply'},
                          'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                          'suggested_post_parameters': {'required': False,
                                                        'type': 'SuggestedPostParameters'}},
             'sendDocument': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                              'business_connection_id': {'required': False, 'type': 'String'},
                              'caption': {'required': False, 'type': 'String'},
                              'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                              'chat_id': {'required': True, 'type': 'Integer or String'},
                              'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                              'disable_content_type_detection': {'required': False, 'type': 'Boolean'},
                              'disable_notification': {'required': False, 'type': 'Boolean'},
                              'document': {'required': True, 'type': 'InputFile or String'},
                              'ephemeral_message_parameters': {'required': False,
                                                               'type': 'EphemeralMessageParameters'},
                              'message_effect_id': {'required': False, 'type': 'String'},
                              'message_thread_id': {'required': False, 'type': 'Integer'},
                              'parse_mode': {'required': False, 'type': 'String'},
                              'protect_content': {'required': False, 'type': 'Boolean'},
                              'reply_markup': {'required': False,
                                               'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                       'ReplyKeyboardRemove or ForceReply'},
                              'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                              'suggested_post_parameters': {'required': False,
                                                            'type': 'SuggestedPostParameters'},
                              'thumbnail': {'required': False, 'type': 'InputFile or String'}},
             'sendGame': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                          'business_connection_id': {'required': False, 'type': 'String'},
                          'chat_id': {'required': True, 'type': 'Integer or String'},
                          'disable_notification': {'required': False, 'type': 'Boolean'},
                          'game_short_name': {'required': True, 'type': 'String'},
                          'message_effect_id': {'required': False, 'type': 'String'},
                          'message_thread_id': {'required': False, 'type': 'Integer'},
                          'protect_content': {'required': False, 'type': 'Boolean'},
                          'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                          'reply_parameters': {'required': False, 'type': 'ReplyParameters'}},
             'sendGift': {'chat_id': {'required': False, 'type': 'Integer or String'},
                          'gift_id': {'required': True, 'type': 'String'},
                          'pay_for_upgrade': {'required': False, 'type': 'Boolean'},
                          'text': {'required': False, 'type': 'String'},
                          'text_entities': {'required': False, 'type': 'Array of MessageEntity'},
                          'text_parse_mode': {'required': False, 'type': 'String'},
                          'user_id': {'required': False, 'type': 'Integer'}},
             'sendInvoice': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                             'chat_id': {'required': True, 'type': 'Integer or String'},
                             'currency': {'required': True, 'type': 'String'},
                             'description': {'required': True, 'type': 'String'},
                             'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                             'disable_notification': {'required': False, 'type': 'Boolean'},
                             'is_flexible': {'required': False, 'type': 'Boolean'},
                             'max_tip_amount': {'required': False, 'type': 'Integer'},
                             'message_effect_id': {'required': False, 'type': 'String'},
                             'message_thread_id': {'required': False, 'type': 'Integer'},
                             'need_email': {'required': False, 'type': 'Boolean'},
                             'need_name': {'required': False, 'type': 'Boolean'},
                             'need_phone_number': {'required': False, 'type': 'Boolean'},
                             'need_shipping_address': {'required': False, 'type': 'Boolean'},
                             'payload': {'required': True, 'type': 'String'},
                             'photo_height': {'required': False, 'type': 'Integer'},
                             'photo_size': {'required': False, 'type': 'Integer'},
                             'photo_url': {'required': False, 'type': 'String'},
                             'photo_width': {'required': False, 'type': 'Integer'},
                             'prices': {'required': True, 'type': 'Array of LabeledPrice'},
                             'protect_content': {'required': False, 'type': 'Boolean'},
                             'provider_data': {'required': False, 'type': 'String'},
                             'provider_token': {'required': False, 'type': 'String'},
                             'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                             'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                             'send_email_to_provider': {'required': False, 'type': 'Boolean'},
                             'send_phone_number_to_provider': {'required': False, 'type': 'Boolean'},
                             'start_parameter': {'required': False, 'type': 'String'},
                             'suggested_post_parameters': {'required': False,
                                                           'type': 'SuggestedPostParameters'},
                             'suggested_tip_amounts': {'required': False, 'type': 'Array of Integer'},
                             'title': {'required': True, 'type': 'String'}},
             'sendLivePhoto': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                               'business_connection_id': {'required': False, 'type': 'String'},
                               'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'chat_id': {'required': True, 'type': 'Integer or String'},
                               'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                               'disable_notification': {'required': False, 'type': 'Boolean'},
                               'ephemeral_message_parameters': {'required': False,
                                                                'type': 'EphemeralMessageParameters'},
                               'has_spoiler': {'required': False, 'type': 'Boolean'},
                               'live_photo': {'required': True, 'type': 'InputFile or String'},
                               'message_effect_id': {'required': False, 'type': 'String'},
                               'message_thread_id': {'required': False, 'type': 'Integer'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'photo': {'required': True, 'type': 'InputFile or String'},
                               'protect_content': {'required': False, 'type': 'Boolean'},
                               'reply_markup': {'required': False,
                                                'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                        'ReplyKeyboardRemove or ForceReply'},
                               'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                               'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                               'suggested_post_parameters': {'required': False,
                                                             'type': 'SuggestedPostParameters'}},
             'sendLocation': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                              'business_connection_id': {'required': False, 'type': 'String'},
                              'chat_id': {'required': True, 'type': 'Integer or String'},
                              'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                              'disable_notification': {'required': False, 'type': 'Boolean'},
                              'ephemeral_message_parameters': {'required': False,
                                                               'type': 'EphemeralMessageParameters'},
                              'heading': {'required': False, 'type': 'Integer'},
                              'horizontal_accuracy': {'required': False, 'type': 'Float'},
                              'latitude': {'required': True, 'type': 'Float'},
                              'live_period': {'required': False, 'type': 'Integer'},
                              'longitude': {'required': True, 'type': 'Float'},
                              'message_effect_id': {'required': False, 'type': 'String'},
                              'message_thread_id': {'required': False, 'type': 'Integer'},
                              'protect_content': {'required': False, 'type': 'Boolean'},
                              'proximity_alert_radius': {'required': False, 'type': 'Integer'},
                              'reply_markup': {'required': False,
                                               'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                       'ReplyKeyboardRemove or ForceReply'},
                              'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                              'suggested_post_parameters': {'required': False,
                                                            'type': 'SuggestedPostParameters'}},
             'sendMediaGroup': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                                'business_connection_id': {'required': False, 'type': 'String'},
                                'chat_id': {'required': True, 'type': 'Integer or String'},
                                'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                                'disable_notification': {'required': False, 'type': 'Boolean'},
                                'media': {'required': True,
                                          'type': 'Array of InputMediaAudio, InputMediaDocument, '
                                                  'InputMediaLivePhoto, InputMediaPhoto and InputMediaVideo'},
                                'message_effect_id': {'required': False, 'type': 'String'},
                                'message_thread_id': {'required': False, 'type': 'Integer'},
                                'protect_content': {'required': False, 'type': 'Boolean'},
                                'reply_parameters': {'required': False, 'type': 'ReplyParameters'}},
             'sendMessage': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                             'business_connection_id': {'required': False, 'type': 'String'},
                             'chat_id': {'required': True, 'type': 'Integer or String'},
                             'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                             'disable_notification': {'required': False, 'type': 'Boolean'},
                             'entities': {'required': False, 'type': 'Array of MessageEntity'},
                             'ephemeral_message_parameters': {'required': False,
                                                              'type': 'EphemeralMessageParameters'},
                             'link_preview_options': {'required': False, 'type': 'LinkPreviewOptions'},
                             'message_effect_id': {'required': False, 'type': 'String'},
                             'message_thread_id': {'required': False, 'type': 'Integer'},
                             'parse_mode': {'required': False, 'type': 'String'},
                             'protect_content': {'required': False, 'type': 'Boolean'},
                             'reply_markup': {'required': False,
                                              'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                      'ReplyKeyboardRemove or ForceReply'},
                             'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                             'suggested_post_parameters': {'required': False,
                                                           'type': 'SuggestedPostParameters'},
                             'text': {'required': True, 'type': 'String'}},
             'sendMessageDraft': {'can_stop': {'required': False, 'type': 'Boolean'},
                                  'chat_id': {'required': True, 'type': 'Integer'},
                                  'draft_id': {'required': True, 'type': 'Integer'},
                                  'entities': {'required': False, 'type': 'Array of MessageEntity'},
                                  'keep_on_stop': {'required': False, 'type': 'Boolean'},
                                  'message_thread_id': {'required': False, 'type': 'Integer'},
                                  'parse_mode': {'required': False, 'type': 'String'},
                                  'text': {'required': False, 'type': 'String'}},
             'sendPaidMedia': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                               'business_connection_id': {'required': False, 'type': 'String'},
                               'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'chat_id': {'required': True, 'type': 'Integer or String'},
                               'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                               'disable_notification': {'required': False, 'type': 'Boolean'},
                               'media': {'required': True, 'type': 'Array of InputPaidMedia'},
                               'message_thread_id': {'required': False, 'type': 'Integer'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'payload': {'required': False, 'type': 'String'},
                               'protect_content': {'required': False, 'type': 'Boolean'},
                               'reply_markup': {'required': False,
                                                'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                        'ReplyKeyboardRemove or ForceReply'},
                               'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                               'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                               'star_count': {'required': True, 'type': 'Integer'},
                               'suggested_post_parameters': {'required': False,
                                                             'type': 'SuggestedPostParameters'}},
             'sendPhoto': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                           'business_connection_id': {'required': False, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'chat_id': {'required': True, 'type': 'Integer or String'},
                           'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                           'disable_notification': {'required': False, 'type': 'Boolean'},
                           'ephemeral_message_parameters': {'required': False,
                                                            'type': 'EphemeralMessageParameters'},
                           'has_spoiler': {'required': False, 'type': 'Boolean'},
                           'message_effect_id': {'required': False, 'type': 'String'},
                           'message_thread_id': {'required': False, 'type': 'Integer'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'photo': {'required': True, 'type': 'InputFile or String'},
                           'protect_content': {'required': False, 'type': 'Boolean'},
                           'reply_markup': {'required': False,
                                            'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                    'ReplyKeyboardRemove or ForceReply'},
                           'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                           'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                           'suggested_post_parameters': {'required': False,
                                                         'type': 'SuggestedPostParameters'}},
             'sendPoll': {'allow_adding_options': {'required': False, 'type': 'Boolean'},
                          'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                          'allows_multiple_answers': {'required': False, 'type': 'Boolean'},
                          'allows_revoting': {'required': False, 'type': 'Boolean'},
                          'business_connection_id': {'required': False, 'type': 'String'},
                          'chat_id': {'required': True, 'type': 'Integer or String'},
                          'close_date': {'required': False, 'type': 'Integer'},
                          'correct_option_ids': {'required': False, 'type': 'Array of Integer'},
                          'country_codes': {'required': False, 'type': 'Array of String'},
                          'description': {'required': False, 'type': 'String'},
                          'description_entities': {'required': False, 'type': 'Array of MessageEntity'},
                          'description_parse_mode': {'required': False, 'type': 'String'},
                          'disable_notification': {'required': False, 'type': 'Boolean'},
                          'explanation': {'required': False, 'type': 'String'},
                          'explanation_entities': {'required': False, 'type': 'Array of MessageEntity'},
                          'explanation_media': {'required': False, 'type': 'InputPollMedia'},
                          'explanation_parse_mode': {'required': False, 'type': 'String'},
                          'hide_results_until_closes': {'required': False, 'type': 'Boolean'},
                          'is_anonymous': {'required': False, 'type': 'Boolean'},
                          'is_closed': {'required': False, 'type': 'Boolean'},
                          'media': {'required': False, 'type': 'InputPollMedia'},
                          'members_only': {'required': False, 'type': 'Boolean'},
                          'message_effect_id': {'required': False, 'type': 'String'},
                          'message_thread_id': {'required': False, 'type': 'Integer'},
                          'open_period': {'required': False, 'type': 'Integer'},
                          'options': {'required': True, 'type': 'Array of InputPollOption'},
                          'protect_content': {'required': False, 'type': 'Boolean'},
                          'question': {'required': True, 'type': 'String'},
                          'question_entities': {'required': False, 'type': 'Array of MessageEntity'},
                          'question_parse_mode': {'required': False, 'type': 'String'},
                          'reply_markup': {'required': False,
                                           'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                   'ReplyKeyboardRemove or ForceReply'},
                          'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                          'shuffle_options': {'required': False, 'type': 'Boolean'},
                          'type': {'required': False, 'type': 'String'}},
             'sendRichMessage': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                                 'business_connection_id': {'required': False, 'type': 'String'},
                                 'chat_id': {'required': True, 'type': 'Integer or String'},
                                 'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                                 'disable_notification': {'required': False, 'type': 'Boolean'},
                                 'ephemeral_message_parameters': {'required': False,
                                                                  'type': 'EphemeralMessageParameters'},
                                 'message_effect_id': {'required': False, 'type': 'String'},
                                 'message_thread_id': {'required': False, 'type': 'Integer'},
                                 'protect_content': {'required': False, 'type': 'Boolean'},
                                 'reply_markup': {'required': False,
                                                  'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                          'ReplyKeyboardRemove or ForceReply'},
                                 'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                                 'rich_message': {'required': True, 'type': 'InputRichMessage'},
                                 'suggested_post_parameters': {'required': False,
                                                               'type': 'SuggestedPostParameters'}},
             'sendRichMessageDraft': {'can_stop': {'required': False, 'type': 'Boolean'},
                                      'chat_id': {'required': True, 'type': 'Integer'},
                                      'draft_id': {'required': True, 'type': 'Integer'},
                                      'keep_on_stop': {'required': False, 'type': 'Boolean'},
                                      'message_thread_id': {'required': False, 'type': 'Integer'},
                                      'rich_message': {'required': True, 'type': 'InputRichMessage'}},
             'sendSticker': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                             'business_connection_id': {'required': False, 'type': 'String'},
                             'chat_id': {'required': True, 'type': 'Integer or String'},
                             'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                             'disable_notification': {'required': False, 'type': 'Boolean'},
                             'emoji': {'required': False, 'type': 'String'},
                             'ephemeral_message_parameters': {'required': False,
                                                              'type': 'EphemeralMessageParameters'},
                             'message_effect_id': {'required': False, 'type': 'String'},
                             'message_thread_id': {'required': False, 'type': 'Integer'},
                             'protect_content': {'required': False, 'type': 'Boolean'},
                             'reply_markup': {'required': False,
                                              'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                      'ReplyKeyboardRemove or ForceReply'},
                             'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                             'sticker': {'required': True, 'type': 'InputFile or String'},
                             'suggested_post_parameters': {'required': False,
                                                           'type': 'SuggestedPostParameters'}},
             'sendVenue': {'address': {'required': True, 'type': 'String'},
                           'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                           'business_connection_id': {'required': False, 'type': 'String'},
                           'chat_id': {'required': True, 'type': 'Integer or String'},
                           'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                           'disable_notification': {'required': False, 'type': 'Boolean'},
                           'ephemeral_message_parameters': {'required': False,
                                                            'type': 'EphemeralMessageParameters'},
                           'foursquare_id': {'required': False, 'type': 'String'},
                           'foursquare_type': {'required': False, 'type': 'String'},
                           'google_place_id': {'required': False, 'type': 'String'},
                           'google_place_type': {'required': False, 'type': 'String'},
                           'latitude': {'required': True, 'type': 'Float'},
                           'longitude': {'required': True, 'type': 'Float'},
                           'message_effect_id': {'required': False, 'type': 'String'},
                           'message_thread_id': {'required': False, 'type': 'Integer'},
                           'protect_content': {'required': False, 'type': 'Boolean'},
                           'reply_markup': {'required': False,
                                            'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                    'ReplyKeyboardRemove or ForceReply'},
                           'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                           'suggested_post_parameters': {'required': False,
                                                         'type': 'SuggestedPostParameters'},
                           'title': {'required': True, 'type': 'String'}},
             'sendVideo': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                           'business_connection_id': {'required': False, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'chat_id': {'required': True, 'type': 'Integer or String'},
                           'cover': {'required': False, 'type': 'InputFile or String'},
                           'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                           'disable_notification': {'required': False, 'type': 'Boolean'},
                           'duration': {'required': False, 'type': 'Integer'},
                           'ephemeral_message_parameters': {'required': False,
                                                            'type': 'EphemeralMessageParameters'},
                           'has_spoiler': {'required': False, 'type': 'Boolean'},
                           'height': {'required': False, 'type': 'Integer'},
                           'message_effect_id': {'required': False, 'type': 'String'},
                           'message_thread_id': {'required': False, 'type': 'Integer'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'protect_content': {'required': False, 'type': 'Boolean'},
                           'reply_markup': {'required': False,
                                            'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                    'ReplyKeyboardRemove or ForceReply'},
                           'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                           'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                           'start_timestamp': {'required': False, 'type': 'Integer'},
                           'suggested_post_parameters': {'required': False,
                                                         'type': 'SuggestedPostParameters'},
                           'supports_streaming': {'required': False, 'type': 'Boolean'},
                           'thumbnail': {'required': False, 'type': 'InputFile or String'},
                           'video': {'required': True, 'type': 'InputFile or String'},
                           'width': {'required': False, 'type': 'Integer'}},
             'sendVideoNote': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                               'business_connection_id': {'required': False, 'type': 'String'},
                               'chat_id': {'required': True, 'type': 'Integer or String'},
                               'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                               'disable_notification': {'required': False, 'type': 'Boolean'},
                               'duration': {'required': False, 'type': 'Integer'},
                               'ephemeral_message_parameters': {'required': False,
                                                                'type': 'EphemeralMessageParameters'},
                               'length': {'required': False, 'type': 'Integer'},
                               'message_effect_id': {'required': False, 'type': 'String'},
                               'message_thread_id': {'required': False, 'type': 'Integer'},
                               'protect_content': {'required': False, 'type': 'Boolean'},
                               'reply_markup': {'required': False,
                                                'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                        'ReplyKeyboardRemove or ForceReply'},
                               'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                               'suggested_post_parameters': {'required': False,
                                                             'type': 'SuggestedPostParameters'},
                               'thumbnail': {'required': False, 'type': 'InputFile or String'},
                               'video_note': {'required': True, 'type': 'InputFile or String'}},
             'sendVoice': {'allow_paid_broadcast': {'required': False, 'type': 'Boolean'},
                           'business_connection_id': {'required': False, 'type': 'String'},
                           'caption': {'required': False, 'type': 'String'},
                           'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                           'chat_id': {'required': True, 'type': 'Integer or String'},
                           'direct_messages_topic_id': {'required': False, 'type': 'Integer'},
                           'disable_notification': {'required': False, 'type': 'Boolean'},
                           'duration': {'required': False, 'type': 'Integer'},
                           'ephemeral_message_parameters': {'required': False,
                                                            'type': 'EphemeralMessageParameters'},
                           'message_effect_id': {'required': False, 'type': 'String'},
                           'message_thread_id': {'required': False, 'type': 'Integer'},
                           'parse_mode': {'required': False, 'type': 'String'},
                           'protect_content': {'required': False, 'type': 'Boolean'},
                           'reply_markup': {'required': False,
                                            'type': 'InlineKeyboardMarkup or ReplyKeyboardMarkup or '
                                                    'ReplyKeyboardRemove or ForceReply'},
                           'reply_parameters': {'required': False, 'type': 'ReplyParameters'},
                           'suggested_post_parameters': {'required': False,
                                                         'type': 'SuggestedPostParameters'},
                           'voice': {'required': True, 'type': 'InputFile or String'}},
             'setBusinessAccountBio': {'bio': {'required': False, 'type': 'String'},
                                       'business_connection_id': {'required': True, 'type': 'String'}},
             'setBusinessAccountGiftSettings': {'accepted_gift_types': {'required': True,
                                                                        'type': 'AcceptedGiftTypes'},
                                                'business_connection_id': {'required': True,
                                                                           'type': 'String'},
                                                'show_gift_button': {'required': True, 'type': 'Boolean'}},
             'setBusinessAccountName': {'business_connection_id': {'required': True, 'type': 'String'},
                                        'first_name': {'required': True, 'type': 'String'},
                                        'last_name': {'required': False, 'type': 'String'}},
             'setBusinessAccountProfilePhoto': {'business_connection_id': {'required': True,
                                                                           'type': 'String'},
                                                'is_public': {'required': False, 'type': 'Boolean'},
                                                'photo': {'required': True, 'type': 'InputProfilePhoto'}},
             'setBusinessAccountUsername': {'business_connection_id': {'required': True, 'type': 'String'},
                                            'username': {'required': False, 'type': 'String'}},
             'setChatAdministratorCustomTitle': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                                 'custom_title': {'required': True, 'type': 'String'},
                                                 'user_id': {'required': True, 'type': 'Integer'}},
             'setChatDescription': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                    'description': {'required': False, 'type': 'String'}},
             'setChatMemberTag': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                  'tag': {'required': False, 'type': 'String'},
                                  'user_id': {'required': True, 'type': 'Integer'}},
             'setChatMenuButton': {'chat_id': {'required': False, 'type': 'Integer'},
                                   'menu_button': {'required': False, 'type': 'MenuButton'}},
             'setChatPermissions': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                    'permissions': {'required': True, 'type': 'ChatPermissions'},
                                    'use_independent_chat_permissions': {'required': False,
                                                                         'type': 'Boolean'}},
             'setChatPhoto': {'chat_id': {'required': True, 'type': 'Integer or String'},
                              'photo': {'required': True, 'type': 'InputFile'}},
             'setChatStickerSet': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                   'sticker_set_name': {'required': True, 'type': 'String'}},
             'setChatTitle': {'chat_id': {'required': True, 'type': 'Integer or String'},
                              'title': {'required': True, 'type': 'String'}},
             'setCustomEmojiStickerSetThumbnail': {'custom_emoji_id': {'required': False, 'type': 'String'},
                                                   'name': {'required': True, 'type': 'String'}},
             'setGameScore': {'chat_id': {'required': False, 'type': 'Integer'},
                              'disable_edit_message': {'required': False, 'type': 'Boolean'},
                              'force': {'required': False, 'type': 'Boolean'},
                              'inline_message_id': {'required': False, 'type': 'String'},
                              'message_id': {'required': False, 'type': 'Integer'},
                              'score': {'required': True, 'type': 'Integer'},
                              'user_id': {'required': True, 'type': 'Integer'}},
             'setManagedBotAccessSettings': {'added_user_ids': {'required': False,
                                                                'type': 'Array of Integer'},
                                             'is_access_restricted': {'required': True, 'type': 'Boolean'},
                                             'user_id': {'required': True, 'type': 'Integer'}},
             'setMessageReaction': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                    'is_big': {'required': False, 'type': 'Boolean'},
                                    'message_id': {'required': True, 'type': 'Integer'},
                                    'reaction': {'required': False, 'type': 'Array of ReactionType'}},
             'setMyCommands': {'commands': {'required': True, 'type': 'Array of BotCommand'},
                               'language_code': {'required': False, 'type': 'String'},
                               'scope': {'required': False, 'type': 'BotCommandScope'}},
             'setMyDefaultAdministratorRights': {'for_channels': {'required': False, 'type': 'Boolean'},
                                                 'rights': {'required': False,
                                                            'type': 'ChatAdministratorRights'}},
             'setMyDescription': {'description': {'required': False, 'type': 'String'},
                                  'language_code': {'required': False, 'type': 'String'}},
             'setMyName': {'language_code': {'required': False, 'type': 'String'},
                           'name': {'required': False, 'type': 'String'}},
             'setMyProfilePhoto': {'photo': {'required': True, 'type': 'InputProfilePhoto'}},
             'setMyShortDescription': {'language_code': {'required': False, 'type': 'String'},
                                       'short_description': {'required': False, 'type': 'String'}},
             'setPassportDataErrors': {'errors': {'required': True, 'type': 'Array of PassportElementError'},
                                       'user_id': {'required': True, 'type': 'Integer'}},
             'setStickerEmojiList': {'emoji_list': {'required': True, 'type': 'Array of String'},
                                     'sticker': {'required': True, 'type': 'String'}},
             'setStickerKeywords': {'keywords': {'required': False, 'type': 'Array of String'},
                                    'sticker': {'required': True, 'type': 'String'}},
             'setStickerMaskPosition': {'mask_position': {'required': False, 'type': 'MaskPosition'},
                                        'sticker': {'required': True, 'type': 'String'}},
             'setStickerPositionInSet': {'position': {'required': True, 'type': 'Integer'},
                                         'sticker': {'required': True, 'type': 'String'}},
             'setStickerSetThumbnail': {'format': {'required': True, 'type': 'String'},
                                        'name': {'required': True, 'type': 'String'},
                                        'thumbnail': {'required': False, 'type': 'InputFile or String'},
                                        'user_id': {'required': True, 'type': 'Integer'}},
             'setStickerSetTitle': {'name': {'required': True, 'type': 'String'},
                                    'title': {'required': True, 'type': 'String'}},
             'setUserEmojiStatus': {'emoji_status_custom_emoji_id': {'required': False, 'type': 'String'},
                                    'emoji_status_expiration_date': {'required': False, 'type': 'Integer'},
                                    'user_id': {'required': True, 'type': 'Integer'}},
             'setWebhook': {'allowed_updates': {'required': False, 'type': 'Array of String'},
                            'certificate': {'required': False, 'type': 'InputFile'},
                            'drop_pending_updates': {'required': False, 'type': 'Boolean'},
                            'ip_address': {'required': False, 'type': 'String'},
                            'max_connections': {'required': False, 'type': 'Integer'},
                            'secret_token': {'required': False, 'type': 'String'},
                            'url': {'required': True, 'type': 'String'}},
             'stopMessageLiveLocation': {'business_connection_id': {'required': False, 'type': 'String'},
                                         'chat_id': {'required': False, 'type': 'Integer or String'},
                                         'inline_message_id': {'required': False, 'type': 'String'},
                                         'message_id': {'required': False, 'type': 'Integer'},
                                         'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'stopPoll': {'business_connection_id': {'required': False, 'type': 'String'},
                          'chat_id': {'required': True, 'type': 'Integer or String'},
                          'message_id': {'required': True, 'type': 'Integer'},
                          'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'}},
             'transferBusinessAccountStars': {'business_connection_id': {'required': True, 'type': 'String'},
                                              'star_count': {'required': True, 'type': 'Integer'}},
             'transferGift': {'business_connection_id': {'required': True, 'type': 'String'},
                              'new_owner_chat_id': {'required': True, 'type': 'Integer'},
                              'owned_gift_id': {'required': True, 'type': 'String'},
                              'star_count': {'required': False, 'type': 'Integer'}},
             'unbanChatMember': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                 'only_if_banned': {'required': False, 'type': 'Boolean'},
                                 'user_id': {'required': True, 'type': 'Integer'}},
             'unbanChatSenderChat': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                     'sender_chat_id': {'required': True, 'type': 'Integer'}},
             'unhideGeneralForumTopic': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'unpinAllChatMessages': {'chat_id': {'required': True, 'type': 'Integer or String'}},
             'unpinAllForumTopicMessages': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                            'message_thread_id': {'required': True, 'type': 'Integer'}},
             'unpinAllGeneralForumTopicMessages': {'chat_id': {'required': True,
                                                               'type': 'Integer or String'}},
             'unpinChatMessage': {'business_connection_id': {'required': False, 'type': 'String'},
                                  'chat_id': {'required': True, 'type': 'Integer or String'},
                                  'message_id': {'required': False, 'type': 'Integer'}},
             'upgradeGift': {'business_connection_id': {'required': True, 'type': 'String'},
                             'keep_original_details': {'required': False, 'type': 'Boolean'},
                             'owned_gift_id': {'required': True, 'type': 'String'},
                             'star_count': {'required': False, 'type': 'Integer'}},
             'uploadStickerFile': {'sticker': {'required': True, 'type': 'InputFile'},
                                   'sticker_format': {'required': True, 'type': 'String'},
                                   'user_id': {'required': True, 'type': 'Integer'}},
             'verifyChat': {'chat_id': {'required': True, 'type': 'Integer or String'},
                            'custom_description': {'required': False, 'type': 'String'}},
             'verifyUser': {'custom_description': {'required': False, 'type': 'String'},
                            'user_id': {'required': True, 'type': 'Integer'}}},
 'types': {'AcceptedGiftTypes': {'gifts_from_channels': {'required': True, 'type': 'Boolean'},
                                 'limited_gifts': {'required': True, 'type': 'Boolean'},
                                 'premium_subscription': {'required': True, 'type': 'Boolean'},
                                 'unique_gifts': {'required': True, 'type': 'Boolean'},
                                 'unlimited_gifts': {'required': True, 'type': 'Boolean'}},
           'AffiliateInfo': {'affiliate_chat': {'required': False, 'type': 'Chat'},
                             'affiliate_user': {'required': False, 'type': 'User'},
                             'amount': {'required': True, 'type': 'Integer'},
                             'commission_per_mille': {'required': True, 'type': 'Integer'},
                             'nanostar_amount': {'required': False, 'type': 'Integer'}},
           'Animation': {'duration': {'required': True, 'type': 'Integer'},
                         'file_id': {'required': True, 'type': 'String'},
                         'file_name': {'required': False, 'type': 'String'},
                         'file_size': {'required': False, 'type': 'Integer'},
                         'file_unique_id': {'required': True, 'type': 'String'},
                         'height': {'required': True, 'type': 'Integer'},
                         'mime_type': {'required': False, 'type': 'String'},
                         'thumbnail': {'required': False, 'type': 'PhotoSize'},
                         'width': {'required': True, 'type': 'Integer'}},
           'Audio': {'duration': {'required': True, 'type': 'Integer'},
                     'file_id': {'required': True, 'type': 'String'},
                     'file_name': {'required': False, 'type': 'String'},
                     'file_size': {'required': False, 'type': 'Integer'},
                     'file_unique_id': {'required': True, 'type': 'String'},
                     'mime_type': {'required': False, 'type': 'String'},
                     'performer': {'required': False, 'type': 'String'},
                     'thumbnail': {'required': False, 'type': 'PhotoSize'},
                     'title': {'required': False, 'type': 'String'}},
           'BackgroundFill': {},
           'BackgroundFillFreeformGradient': {'colors': {'required': True, 'type': 'Array of Integer'},
                                              'type': {'constant': 'freeform_gradient',
                                                       'required': True,
                                                       'type': 'String'}},
           'BackgroundFillGradient': {'bottom_color': {'required': True, 'type': 'Integer'},
                                      'rotation_angle': {'required': True, 'type': 'Integer'},
                                      'top_color': {'required': True, 'type': 'Integer'},
                                      'type': {'constant': 'gradient', 'required': True, 'type': 'String'}},
           'BackgroundFillSolid': {'color': {'required': True, 'type': 'Integer'},
                                   'type': {'constant': 'solid', 'required': True, 'type': 'String'}},
           'BackgroundType': {},
           'BackgroundTypeChatTheme': {'theme_name': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'chat_theme',
                                                'required': True,
                                                'type': 'String'}},
           'BackgroundTypeFill': {'dark_theme_dimming': {'required': True, 'type': 'Integer'},
                                  'fill': {'required': True, 'type': 'BackgroundFill'},
                                  'type': {'constant': 'fill', 'required': True, 'type': 'String'}},
           'BackgroundTypePattern': {'document': {'required': True, 'type': 'Document'},
                                     'fill': {'required': True, 'type': 'BackgroundFill'},
                                     'intensity': {'required': True, 'type': 'Integer'},
                                     'is_inverted': {'required': False, 'type': 'True'},
                                     'is_moving': {'required': False, 'type': 'True'},
                                     'type': {'constant': 'pattern', 'required': True, 'type': 'String'}},
           'BackgroundTypeWallpaper': {'dark_theme_dimming': {'required': True, 'type': 'Integer'},
                                       'document': {'required': True, 'type': 'Document'},
                                       'is_blurred': {'required': False, 'type': 'True'},
                                       'is_moving': {'required': False, 'type': 'True'},
                                       'type': {'constant': 'wallpaper', 'required': True, 'type': 'String'}},
           'Birthdate': {'day': {'required': True, 'type': 'Integer'},
                         'month': {'required': True, 'type': 'Integer'},
                         'year': {'required': False, 'type': 'Integer'}},
           'BotAccessSettings': {'added_users': {'required': False, 'type': 'Array of User'},
                                 'is_access_restricted': {'required': True, 'type': 'Boolean'}},
           'BotCommand': {'command': {'required': True, 'type': 'String'},
                          'description': {'required': True, 'type': 'String'},
                          'is_ephemeral': {'required': False, 'type': 'Boolean'}},
           'BotCommandScope': {},
           'BotCommandScopeAllChatAdministrators': {'type': {'constant': 'all_chat_administrators',
                                                             'required': True,
                                                             'type': 'String'}},
           'BotCommandScopeAllGroupChats': {'type': {'constant': 'all_group_chats',
                                                     'required': True,
                                                     'type': 'String'}},
           'BotCommandScopeAllPrivateChats': {'type': {'constant': 'all_private_chats',
                                                       'required': True,
                                                       'type': 'String'}},
           'BotCommandScopeChat': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                   'type': {'constant': 'chat', 'required': True, 'type': 'String'}},
           'BotCommandScopeChatAdministrators': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                                 'type': {'constant': 'chat_administrators',
                                                          'required': True,
                                                          'type': 'String'}},
           'BotCommandScopeChatMember': {'chat_id': {'required': True, 'type': 'Integer or String'},
                                         'type': {'constant': 'chat_member',
                                                  'required': True,
                                                  'type': 'String'},
                                         'user_id': {'required': True, 'type': 'Integer'}},
           'BotCommandScopeDefault': {'type': {'constant': 'default', 'required': True, 'type': 'String'}},
           'BotDescription': {'description': {'required': True, 'type': 'String'}},
           'BotName': {'name': {'required': True, 'type': 'String'}},
           'BotShortDescription': {'short_description': {'required': True, 'type': 'String'}},
           'BotSubscriptionUpdated': {'invoice_payload': {'required': True, 'type': 'String'},
                                      'state': {'required': True, 'type': 'String'},
                                      'user': {'required': True, 'type': 'User'}},
           'BusinessBotRights': {'can_change_gift_settings': {'required': False, 'type': 'True'},
                                 'can_convert_gifts_to_stars': {'required': False, 'type': 'True'},
                                 'can_delete_all_messages': {'required': False, 'type': 'True'},
                                 'can_delete_sent_messages': {'required': False, 'type': 'True'},
                                 'can_edit_bio': {'required': False, 'type': 'True'},
                                 'can_edit_name': {'required': False, 'type': 'True'},
                                 'can_edit_profile_photo': {'required': False, 'type': 'True'},
                                 'can_edit_username': {'required': False, 'type': 'True'},
                                 'can_manage_stories': {'required': False, 'type': 'True'},
                                 'can_read_messages': {'required': False, 'type': 'True'},
                                 'can_reply': {'required': False, 'type': 'True'},
                                 'can_transfer_and_upgrade_gifts': {'required': False, 'type': 'True'},
                                 'can_transfer_stars': {'required': False, 'type': 'True'},
                                 'can_view_gifts_and_stars': {'required': False, 'type': 'True'}},
           'BusinessConnection': {'date': {'required': True, 'type': 'Integer'},
                                  'id': {'required': True, 'type': 'String'},
                                  'is_enabled': {'required': True, 'type': 'Boolean'},
                                  'rights': {'required': False, 'type': 'BusinessBotRights'},
                                  'user': {'required': True, 'type': 'User'},
                                  'user_chat_id': {'required': True, 'type': 'Integer'}},
           'BusinessIntro': {'message': {'required': False, 'type': 'String'},
                             'sticker': {'required': False, 'type': 'Sticker'},
                             'title': {'required': False, 'type': 'String'}},
           'BusinessLocation': {'address': {'required': True, 'type': 'String'},
                                'location': {'required': False, 'type': 'Location'}},
           'BusinessMessagesDeleted': {'business_connection_id': {'required': True, 'type': 'String'},
                                       'chat': {'required': True, 'type': 'Chat'},
                                       'message_ids': {'required': True, 'type': 'Array of Integer'}},
           'BusinessOpeningHours': {'opening_hours': {'required': True,
                                                      'type': 'Array of BusinessOpeningHoursInterval'},
                                    'time_zone_name': {'required': True, 'type': 'String'}},
           'BusinessOpeningHoursInterval': {'closing_minute': {'required': True, 'type': 'Integer'},
                                            'opening_minute': {'required': True, 'type': 'Integer'}},
           'CallbackGame': {},
           'CallbackQuery': {'chat_instance': {'required': True, 'type': 'String'},
                             'data': {'required': False, 'type': 'String'},
                             'from': {'required': True, 'type': 'User'},
                             'game_short_name': {'required': False, 'type': 'String'},
                             'id': {'required': True, 'type': 'String'},
                             'inline_message_id': {'required': False, 'type': 'String'},
                             'message': {'required': False, 'type': 'MaybeInaccessibleMessage'}},
           'Chat': {'first_name': {'required': False, 'type': 'String'},
                    'id': {'required': True, 'type': 'Integer'},
                    'is_direct_messages': {'required': False, 'type': 'True'},
                    'is_forum': {'required': False, 'type': 'True'},
                    'last_name': {'required': False, 'type': 'String'},
                    'title': {'required': False, 'type': 'String'},
                    'type': {'required': True, 'type': 'String'},
                    'username': {'required': False, 'type': 'String'}},
           'ChatAdministratorRights': {'can_change_info': {'required': True, 'type': 'Boolean'},
                                       'can_delete_messages': {'required': True, 'type': 'Boolean'},
                                       'can_delete_stories': {'required': True, 'type': 'Boolean'},
                                       'can_edit_messages': {'required': False, 'type': 'Boolean'},
                                       'can_edit_stories': {'required': True, 'type': 'Boolean'},
                                       'can_invite_users': {'required': True, 'type': 'Boolean'},
                                       'can_manage_chat': {'required': True, 'type': 'Boolean'},
                                       'can_manage_direct_messages': {'required': False, 'type': 'Boolean'},
                                       'can_manage_tags': {'required': False, 'type': 'Boolean'},
                                       'can_manage_topics': {'required': False, 'type': 'Boolean'},
                                       'can_manage_video_chats': {'required': True, 'type': 'Boolean'},
                                       'can_pin_messages': {'required': False, 'type': 'Boolean'},
                                       'can_post_messages': {'required': False, 'type': 'Boolean'},
                                       'can_post_stories': {'required': True, 'type': 'Boolean'},
                                       'can_promote_members': {'required': True, 'type': 'Boolean'},
                                       'can_restrict_members': {'required': True, 'type': 'Boolean'},
                                       'can_send_welcome_messages': {'required': True, 'type': 'Boolean'},
                                       'is_anonymous': {'required': True, 'type': 'Boolean'}},
           'ChatBackground': {'type': {'required': True, 'type': 'BackgroundType'}},
           'ChatBoost': {'add_date': {'required': True, 'type': 'Integer'},
                         'boost_id': {'required': True, 'type': 'String'},
                         'expiration_date': {'required': True, 'type': 'Integer'},
                         'source': {'required': True, 'type': 'ChatBoostSource'}},
           'ChatBoostAdded': {'boost_count': {'required': True, 'type': 'Integer'}},
           'ChatBoostRemoved': {'boost_id': {'required': True, 'type': 'String'},
                                'chat': {'required': True, 'type': 'Chat'},
                                'remove_date': {'required': True, 'type': 'Integer'},
                                'source': {'required': True, 'type': 'ChatBoostSource'}},
           'ChatBoostSource': {},
           'ChatBoostSourceGiftCode': {'source': {'required': True, 'type': 'String'},
                                       'user': {'required': True, 'type': 'User'}},
           'ChatBoostSourceGiveaway': {'giveaway_message_id': {'required': True, 'type': 'Integer'},
                                       'is_unclaimed': {'required': False, 'type': 'True'},
                                       'prize_star_count': {'required': False, 'type': 'Integer'},
                                       'source': {'required': True, 'type': 'String'},
                                       'user': {'required': False, 'type': 'User'}},
           'ChatBoostSourcePremium': {'source': {'required': True, 'type': 'String'},
                                      'user': {'required': True, 'type': 'User'}},
           'ChatBoostUpdated': {'boost': {'required': True, 'type': 'ChatBoost'},
                                'chat': {'required': True, 'type': 'Chat'}},
           'ChatFullInfo': {'accent_color_id': {'required': True, 'type': 'Integer'},
                            'accepted_gift_types': {'required': True, 'type': 'AcceptedGiftTypes'},
                            'active_usernames': {'required': False, 'type': 'Array of String'},
                            'available_reactions': {'required': False, 'type': 'Array of ReactionType'},
                            'background_custom_emoji_id': {'required': False, 'type': 'String'},
                            'bio': {'required': False, 'type': 'String'},
                            'birthdate': {'required': False, 'type': 'Birthdate'},
                            'business_intro': {'required': False, 'type': 'BusinessIntro'},
                            'business_location': {'required': False, 'type': 'BusinessLocation'},
                            'business_opening_hours': {'required': False, 'type': 'BusinessOpeningHours'},
                            'can_send_paid_media': {'required': False, 'type': 'True'},
                            'can_set_sticker_set': {'required': False, 'type': 'True'},
                            'community': {'required': False, 'type': 'Community'},
                            'custom_emoji_sticker_set_name': {'required': False, 'type': 'String'},
                            'description': {'required': False, 'type': 'String'},
                            'emoji_status_custom_emoji_id': {'required': False, 'type': 'String'},
                            'emoji_status_expiration_date': {'required': False, 'type': 'Integer'},
                            'first_name': {'required': False, 'type': 'String'},
                            'first_profile_audio': {'required': False, 'type': 'Audio'},
                            'guard_bot': {'required': False, 'type': 'User'},
                            'has_aggressive_anti_spam_enabled': {'required': False, 'type': 'True'},
                            'has_hidden_members': {'required': False, 'type': 'True'},
                            'has_private_forwards': {'required': False, 'type': 'True'},
                            'has_protected_content': {'required': False, 'type': 'True'},
                            'has_restricted_voice_and_video_messages': {'required': False, 'type': 'True'},
                            'has_visible_history': {'required': False, 'type': 'True'},
                            'id': {'required': True, 'type': 'Integer'},
                            'invite_link': {'required': False, 'type': 'String'},
                            'is_direct_messages': {'required': False, 'type': 'True'},
                            'is_forum': {'required': False, 'type': 'True'},
                            'join_by_request': {'required': False, 'type': 'True'},
                            'join_to_send_messages': {'required': False, 'type': 'True'},
                            'last_name': {'required': False, 'type': 'String'},
                            'linked_chat_id': {'required': False, 'type': 'Integer'},
                            'location': {'required': False, 'type': 'ChatLocation'},
                            'max_reaction_count': {'required': True, 'type': 'Integer'},
                            'message_auto_delete_time': {'required': False, 'type': 'Integer'},
                            'paid_message_star_count': {'required': False, 'type': 'Integer'},
                            'parent_chat': {'required': False, 'type': 'Chat'},
                            'permissions': {'required': False, 'type': 'ChatPermissions'},
                            'personal_chat': {'required': False, 'type': 'Chat'},
                            'photo': {'required': False, 'type': 'ChatPhoto'},
                            'pinned_message': {'required': False, 'type': 'Message'},
                            'profile_accent_color_id': {'required': False, 'type': 'Integer'},
                            'profile_background_custom_emoji_id': {'required': False, 'type': 'String'},
                            'rating': {'required': False, 'type': 'UserRating'},
                            'slow_mode_delay': {'required': False, 'type': 'Integer'},
                            'sticker_set_name': {'required': False, 'type': 'String'},
                            'title': {'required': False, 'type': 'String'},
                            'type': {'required': True, 'type': 'String'},
                            'unique_gift_colors': {'required': False, 'type': 'UniqueGiftColors'},
                            'unrestrict_boost_count': {'required': False, 'type': 'Integer'},
                            'username': {'required': False, 'type': 'String'}},
           'ChatInviteLink': {'creates_join_request': {'required': True, 'type': 'Boolean'},
                              'creator': {'required': True, 'type': 'User'},
                              'expire_date': {'required': False, 'type': 'Integer'},
                              'invite_link': {'required': True, 'type': 'String'},
                              'is_primary': {'required': True, 'type': 'Boolean'},
                              'is_revoked': {'required': True, 'type': 'Boolean'},
                              'member_limit': {'required': False, 'type': 'Integer'},
                              'name': {'required': False, 'type': 'String'},
                              'pending_join_request_count': {'required': False, 'type': 'Integer'},
                              'subscription_period': {'required': False, 'type': 'Integer'},
                              'subscription_price': {'required': False, 'type': 'Integer'}},
           'ChatJoinRequest': {'bio': {'required': False, 'type': 'String'},
                               'chat': {'required': True, 'type': 'Chat'},
                               'date': {'required': True, 'type': 'Integer'},
                               'from': {'required': True, 'type': 'User'},
                               'invite_link': {'required': False, 'type': 'ChatInviteLink'},
                               'query_id': {'required': False, 'type': 'String'},
                               'user_chat_id': {'required': True, 'type': 'Integer'}},
           'ChatLocation': {'address': {'required': True, 'type': 'String'},
                            'location': {'required': True, 'type': 'Location'}},
           'ChatMember': {},
           'ChatMemberAdministrator': {'can_be_edited': {'required': True, 'type': 'Boolean'},
                                       'can_change_info': {'required': True, 'type': 'Boolean'},
                                       'can_delete_messages': {'required': True, 'type': 'Boolean'},
                                       'can_delete_stories': {'required': True, 'type': 'Boolean'},
                                       'can_edit_messages': {'required': False, 'type': 'Boolean'},
                                       'can_edit_stories': {'required': True, 'type': 'Boolean'},
                                       'can_invite_users': {'required': True, 'type': 'Boolean'},
                                       'can_manage_chat': {'required': True, 'type': 'Boolean'},
                                       'can_manage_direct_messages': {'required': False, 'type': 'Boolean'},
                                       'can_manage_tags': {'required': False, 'type': 'Boolean'},
                                       'can_manage_topics': {'required': False, 'type': 'Boolean'},
                                       'can_manage_video_chats': {'required': True, 'type': 'Boolean'},
                                       'can_pin_messages': {'required': False, 'type': 'Boolean'},
                                       'can_post_messages': {'required': False, 'type': 'Boolean'},
                                       'can_post_stories': {'required': True, 'type': 'Boolean'},
                                       'can_promote_members': {'required': True, 'type': 'Boolean'},
                                       'can_restrict_members': {'required': True, 'type': 'Boolean'},
                                       'can_send_welcome_messages': {'required': True, 'type': 'Boolean'},
                                       'custom_title': {'required': False, 'type': 'String'},
                                       'is_anonymous': {'required': True, 'type': 'Boolean'},
                                       'status': {'required': True, 'type': 'String'},
                                       'user': {'required': True, 'type': 'User'}},
           'ChatMemberBanned': {'status': {'required': True, 'type': 'String'},
                                'until_date': {'required': True, 'type': 'Integer'},
                                'user': {'required': True, 'type': 'User'}},
           'ChatMemberLeft': {'status': {'required': True, 'type': 'String'},
                              'user': {'required': True, 'type': 'User'}},
           'ChatMemberMember': {'status': {'required': True, 'type': 'String'},
                                'tag': {'required': False, 'type': 'String'},
                                'until_date': {'required': False, 'type': 'Integer'},
                                'user': {'required': True, 'type': 'User'}},
           'ChatMemberOwner': {'custom_title': {'required': False, 'type': 'String'},
                               'is_anonymous': {'required': True, 'type': 'Boolean'},
                               'status': {'required': True, 'type': 'String'},
                               'user': {'required': True, 'type': 'User'}},
           'ChatMemberRestricted': {'can_add_web_page_previews': {'required': True, 'type': 'Boolean'},
                                    'can_change_info': {'required': True, 'type': 'Boolean'},
                                    'can_edit_tag': {'required': True, 'type': 'Boolean'},
                                    'can_invite_users': {'required': True, 'type': 'Boolean'},
                                    'can_manage_topics': {'required': True, 'type': 'Boolean'},
                                    'can_pin_messages': {'required': True, 'type': 'Boolean'},
                                    'can_react_to_messages': {'required': True, 'type': 'Boolean'},
                                    'can_send_audios': {'required': True, 'type': 'Boolean'},
                                    'can_send_documents': {'required': True, 'type': 'Boolean'},
                                    'can_send_messages': {'required': True, 'type': 'Boolean'},
                                    'can_send_other_messages': {'required': True, 'type': 'Boolean'},
                                    'can_send_photos': {'required': True, 'type': 'Boolean'},
                                    'can_send_polls': {'required': True, 'type': 'Boolean'},
                                    'can_send_video_notes': {'required': True, 'type': 'Boolean'},
                                    'can_send_videos': {'required': True, 'type': 'Boolean'},
                                    'can_send_voice_notes': {'required': True, 'type': 'Boolean'},
                                    'is_member': {'required': True, 'type': 'Boolean'},
                                    'status': {'required': True, 'type': 'String'},
                                    'tag': {'required': False, 'type': 'String'},
                                    'until_date': {'required': True, 'type': 'Integer'},
                                    'user': {'required': True, 'type': 'User'}},
           'ChatMemberUpdated': {'chat': {'required': True, 'type': 'Chat'},
                                 'date': {'required': True, 'type': 'Integer'},
                                 'from': {'required': True, 'type': 'User'},
                                 'invite_link': {'required': False, 'type': 'ChatInviteLink'},
                                 'new_chat_member': {'required': True, 'type': 'ChatMember'},
                                 'old_chat_member': {'required': True, 'type': 'ChatMember'},
                                 'via_chat_folder_invite_link': {'required': False, 'type': 'Boolean'},
                                 'via_join_request': {'required': False, 'type': 'Boolean'}},
           'ChatOwnerChanged': {'new_owner': {'required': True, 'type': 'User'}},
           'ChatOwnerLeft': {'new_owner': {'required': False, 'type': 'User'}},
           'ChatPermissions': {'can_add_web_page_previews': {'required': False, 'type': 'Boolean'},
                               'can_change_info': {'required': False, 'type': 'Boolean'},
                               'can_edit_tag': {'required': False, 'type': 'Boolean'},
                               'can_invite_users': {'required': False, 'type': 'Boolean'},
                               'can_manage_topics': {'required': False, 'type': 'Boolean'},
                               'can_pin_messages': {'required': False, 'type': 'Boolean'},
                               'can_react_to_messages': {'required': False, 'type': 'Boolean'},
                               'can_send_audios': {'required': False, 'type': 'Boolean'},
                               'can_send_documents': {'required': False, 'type': 'Boolean'},
                               'can_send_messages': {'required': False, 'type': 'Boolean'},
                               'can_send_other_messages': {'required': False, 'type': 'Boolean'},
                               'can_send_photos': {'required': False, 'type': 'Boolean'},
                               'can_send_polls': {'required': False, 'type': 'Boolean'},
                               'can_send_video_notes': {'required': False, 'type': 'Boolean'},
                               'can_send_videos': {'required': False, 'type': 'Boolean'},
                               'can_send_voice_notes': {'required': False, 'type': 'Boolean'}},
           'ChatPhoto': {'big_file_id': {'required': True, 'type': 'String'},
                         'big_file_unique_id': {'required': True, 'type': 'String'},
                         'small_file_id': {'required': True, 'type': 'String'},
                         'small_file_unique_id': {'required': True, 'type': 'String'}},
           'ChatShared': {'chat_id': {'required': True, 'type': 'Integer'},
                          'photo': {'required': False, 'type': 'Array of PhotoSize'},
                          'request_id': {'required': True, 'type': 'Integer'},
                          'title': {'required': False, 'type': 'String'},
                          'username': {'required': False, 'type': 'String'}},
           'Checklist': {'others_can_add_tasks': {'required': False, 'type': 'True'},
                         'others_can_mark_tasks_as_done': {'required': False, 'type': 'True'},
                         'tasks': {'required': True, 'type': 'Array of ChecklistTask'},
                         'title': {'required': True, 'type': 'String'},
                         'title_entities': {'required': False, 'type': 'Array of MessageEntity'}},
           'ChecklistTask': {'completed_by_chat': {'required': False, 'type': 'Chat'},
                             'completed_by_user': {'required': False, 'type': 'User'},
                             'completion_date': {'required': False, 'type': 'Integer'},
                             'id': {'required': True, 'type': 'Integer'},
                             'text': {'required': True, 'type': 'String'},
                             'text_entities': {'required': False, 'type': 'Array of MessageEntity'}},
           'ChecklistTasksAdded': {'checklist_message': {'required': False, 'type': 'Message'},
                                   'tasks': {'required': True, 'type': 'Array of ChecklistTask'}},
           'ChecklistTasksDone': {'checklist_message': {'required': False, 'type': 'Message'},
                                  'marked_as_done_task_ids': {'required': False, 'type': 'Array of Integer'},
                                  'marked_as_not_done_task_ids': {'required': False,
                                                                  'type': 'Array of Integer'}},
           'ChosenInlineResult': {'from': {'required': True, 'type': 'User'},
                                  'inline_message_id': {'required': False, 'type': 'String'},
                                  'location': {'required': False, 'type': 'Location'},
                                  'query': {'required': True, 'type': 'String'},
                                  'result_id': {'required': True, 'type': 'String'}},
           'Community': {'id': {'required': True, 'type': 'Integer'},
                         'name': {'required': True, 'type': 'String'}},
           'CommunityChatAdded': {'community': {'required': True, 'type': 'Community'}},
           'CommunityChatJoined': {'community': {'required': True, 'type': 'Community'}},
           'CommunityChatRemoved': {},
           'Contact': {'first_name': {'required': True, 'type': 'String'},
                       'last_name': {'required': False, 'type': 'String'},
                       'phone_number': {'required': True, 'type': 'String'},
                       'user_id': {'required': False, 'type': 'Integer'},
                       'vcard': {'required': False, 'type': 'String'}},
           'CopyTextButton': {'text': {'required': True, 'type': 'String'}},
           'Dice': {'emoji': {'required': True, 'type': 'String'},
                    'value': {'required': True, 'type': 'Integer'}},
           'DirectMessagePriceChanged': {'are_direct_messages_enabled': {'required': True, 'type': 'Boolean'},
                                         'direct_message_star_count': {'required': False, 'type': 'Integer'}},
           'DirectMessagesTopic': {'topic_id': {'required': True, 'type': 'Integer'},
                                   'user': {'required': False, 'type': 'User'}},
           'DisabledButton': {},
           'Document': {'file_id': {'required': True, 'type': 'String'},
                        'file_name': {'required': False, 'type': 'String'},
                        'file_size': {'required': False, 'type': 'Integer'},
                        'file_unique_id': {'required': True, 'type': 'String'},
                        'mime_type': {'required': False, 'type': 'String'},
                        'thumbnail': {'required': False, 'type': 'PhotoSize'}},
           'EncryptedCredentials': {'data': {'required': True, 'type': 'String'},
                                    'hash': {'required': True, 'type': 'String'},
                                    'secret': {'required': True, 'type': 'String'}},
           'EncryptedPassportElement': {'data': {'required': False, 'type': 'String'},
                                        'email': {'required': False, 'type': 'String'},
                                        'files': {'required': False, 'type': 'Array of PassportFile'},
                                        'front_side': {'required': False, 'type': 'PassportFile'},
                                        'hash': {'required': True, 'type': 'String'},
                                        'phone_number': {'required': False, 'type': 'String'},
                                        'reverse_side': {'required': False, 'type': 'PassportFile'},
                                        'selfie': {'required': False, 'type': 'PassportFile'},
                                        'translation': {'required': False, 'type': 'Array of PassportFile'},
                                        'type': {'required': True, 'type': 'String'}},
           'EphemeralMessageParameters': {'callback_query_id': {'required': False, 'type': 'String'},
                                          'receiver_user_id': {'required': True, 'type': 'Integer'},
                                          'replace_callback_query_message': {'required': False,
                                                                             'type': 'Boolean'}},
           'ExternalReplyInfo': {'animation': {'required': False, 'type': 'Animation'},
                                 'audio': {'required': False, 'type': 'Audio'},
                                 'chat': {'required': False, 'type': 'Chat'},
                                 'checklist': {'required': False, 'type': 'Checklist'},
                                 'contact': {'required': False, 'type': 'Contact'},
                                 'dice': {'required': False, 'type': 'Dice'},
                                 'document': {'required': False, 'type': 'Document'},
                                 'game': {'required': False, 'type': 'Game'},
                                 'giveaway': {'required': False, 'type': 'Giveaway'},
                                 'giveaway_winners': {'required': False, 'type': 'GiveawayWinners'},
                                 'has_media_spoiler': {'required': False, 'type': 'True'},
                                 'invoice': {'required': False, 'type': 'Invoice'},
                                 'link_preview_options': {'required': False, 'type': 'LinkPreviewOptions'},
                                 'live_photo': {'required': False, 'type': 'LivePhoto'},
                                 'location': {'required': False, 'type': 'Location'},
                                 'message_id': {'required': False, 'type': 'Integer'},
                                 'origin': {'required': True, 'type': 'MessageOrigin'},
                                 'paid_media': {'required': False, 'type': 'PaidMediaInfo'},
                                 'photo': {'required': False, 'type': 'Array of PhotoSize'},
                                 'poll': {'required': False, 'type': 'Poll'},
                                 'sticker': {'required': False, 'type': 'Sticker'},
                                 'story': {'required': False, 'type': 'Story'},
                                 'venue': {'required': False, 'type': 'Venue'},
                                 'video': {'required': False, 'type': 'Video'},
                                 'video_note': {'required': False, 'type': 'VideoNote'},
                                 'voice': {'required': False, 'type': 'Voice'}},
           'File': {'file_id': {'required': True, 'type': 'String'},
                    'file_path': {'required': False, 'type': 'String'},
                    'file_size': {'required': False, 'type': 'Integer'},
                    'file_unique_id': {'required': True, 'type': 'String'}},
           'ForceReply': {'force_reply': {'required': True, 'type': 'True'},
                          'input_field_placeholder': {'required': False, 'type': 'String'},
                          'selective': {'required': False, 'type': 'Boolean'}},
           'ForumTopic': {'icon_color': {'required': True, 'type': 'Integer'},
                          'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                          'is_name_implicit': {'required': False, 'type': 'True'},
                          'message_thread_id': {'required': True, 'type': 'Integer'},
                          'name': {'required': True, 'type': 'String'}},
           'ForumTopicClosed': {},
           'ForumTopicCreated': {'icon_color': {'required': True, 'type': 'Integer'},
                                 'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                                 'is_name_implicit': {'required': False, 'type': 'True'},
                                 'name': {'required': True, 'type': 'String'}},
           'ForumTopicEdited': {'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                                'name': {'required': False, 'type': 'String'}},
           'ForumTopicReopened': {},
           'Game': {'animation': {'required': False, 'type': 'Animation'},
                    'description': {'required': True, 'type': 'String'},
                    'photo': {'required': True, 'type': 'Array of PhotoSize'},
                    'text': {'required': False, 'type': 'String'},
                    'text_entities': {'required': False, 'type': 'Array of MessageEntity'},
                    'title': {'required': True, 'type': 'String'}},
           'GameHighScore': {'position': {'required': True, 'type': 'Integer'},
                             'score': {'required': True, 'type': 'Integer'},
                             'user': {'required': True, 'type': 'User'}},
           'GeneralForumTopicHidden': {},
           'GeneralForumTopicUnhidden': {},
           'Gift': {'background': {'required': False, 'type': 'GiftBackground'},
                    'has_colors': {'required': False, 'type': 'True'},
                    'id': {'required': True, 'type': 'String'},
                    'is_premium': {'required': False, 'type': 'True'},
                    'personal_remaining_count': {'required': False, 'type': 'Integer'},
                    'personal_total_count': {'required': False, 'type': 'Integer'},
                    'publisher_chat': {'required': False, 'type': 'Chat'},
                    'remaining_count': {'required': False, 'type': 'Integer'},
                    'star_count': {'required': True, 'type': 'Integer'},
                    'sticker': {'required': True, 'type': 'Sticker'},
                    'total_count': {'required': False, 'type': 'Integer'},
                    'unique_gift_variant_count': {'required': False, 'type': 'Integer'},
                    'upgrade_star_count': {'required': False, 'type': 'Integer'}},
           'GiftBackground': {'center_color': {'required': True, 'type': 'Integer'},
                              'edge_color': {'required': True, 'type': 'Integer'},
                              'text_color': {'required': True, 'type': 'Integer'}},
           'GiftInfo': {'can_be_upgraded': {'required': False, 'type': 'True'},
                        'convert_star_count': {'required': False, 'type': 'Integer'},
                        'entities': {'required': False, 'type': 'Array of MessageEntity'},
                        'gift': {'required': True, 'type': 'Gift'},
                        'is_private': {'required': False, 'type': 'True'},
                        'is_upgrade_separate': {'required': False, 'type': 'True'},
                        'owned_gift_id': {'required': False, 'type': 'String'},
                        'prepaid_upgrade_star_count': {'required': False, 'type': 'Integer'},
                        'text': {'required': False, 'type': 'String'},
                        'unique_gift_number': {'required': False, 'type': 'Integer'}},
           'Gifts': {'gifts': {'required': True, 'type': 'Array of Gift'}},
           'Giveaway': {'chats': {'required': True, 'type': 'Array of Chat'},
                        'country_codes': {'required': False, 'type': 'Array of String'},
                        'has_public_winners': {'required': False, 'type': 'True'},
                        'only_new_members': {'required': False, 'type': 'True'},
                        'premium_subscription_month_count': {'required': False, 'type': 'Integer'},
                        'prize_description': {'required': False, 'type': 'String'},
                        'prize_star_count': {'required': False, 'type': 'Integer'},
                        'winner_count': {'required': True, 'type': 'Integer'},
                        'winners_selection_date': {'required': True, 'type': 'Integer'}},
           'GiveawayCompleted': {'giveaway_message': {'required': False, 'type': 'Message'},
                                 'is_star_giveaway': {'required': False, 'type': 'True'},
                                 'unclaimed_prize_count': {'required': False, 'type': 'Integer'},
                                 'winner_count': {'required': True, 'type': 'Integer'}},
           'GiveawayCreated': {'prize_star_count': {'required': False, 'type': 'Integer'}},
           'GiveawayWinners': {'additional_chat_count': {'required': False, 'type': 'Integer'},
                               'chat': {'required': True, 'type': 'Chat'},
                               'giveaway_message_id': {'required': True, 'type': 'Integer'},
                               'only_new_members': {'required': False, 'type': 'True'},
                               'premium_subscription_month_count': {'required': False, 'type': 'Integer'},
                               'prize_description': {'required': False, 'type': 'String'},
                               'prize_star_count': {'required': False, 'type': 'Integer'},
                               'unclaimed_prize_count': {'required': False, 'type': 'Integer'},
                               'was_refunded': {'required': False, 'type': 'True'},
                               'winner_count': {'required': True, 'type': 'Integer'},
                               'winners': {'required': True, 'type': 'Array of User'},
                               'winners_selection_date': {'required': True, 'type': 'Integer'}},
           'InaccessibleMessage': {'chat': {'required': True, 'type': 'Chat'},
                                   'date': {'required': True, 'type': 'Integer'},
                                   'message_id': {'required': True, 'type': 'Integer'}},
           'InlineKeyboardButton': {'callback_data': {'required': False, 'type': 'String'},
                                    'callback_game': {'required': False, 'type': 'CallbackGame'},
                                    'copy_text': {'required': False, 'type': 'CopyTextButton'},
                                    'disabled': {'required': False, 'type': 'DisabledButton'},
                                    'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                                    'login_url': {'required': False, 'type': 'LoginUrl'},
                                    'pay': {'required': False, 'type': 'Boolean'},
                                    'style': {'required': False, 'type': 'String'},
                                    'switch_inline_query': {'required': False, 'type': 'String'},
                                    'switch_inline_query_chosen_chat': {'required': False,
                                                                        'type': 'SwitchInlineQueryChosenChat'},
                                    'switch_inline_query_current_chat': {'required': False, 'type': 'String'},
                                    'text': {'required': True, 'type': 'String'},
                                    'url': {'required': False, 'type': 'String'},
                                    'web_app': {'required': False, 'type': 'WebAppInfo'}},
           'InlineKeyboardMarkup': {'force_reply': {'required': False, 'type': 'Boolean'},
                                    'inline_keyboard': {'required': True,
                                                        'type': 'Array of Array of InlineKeyboardButton'}},
           'InlineQuery': {'chat_type': {'required': False, 'type': 'String'},
                           'from': {'required': True, 'type': 'User'},
                           'id': {'required': True, 'type': 'String'},
                           'location': {'required': False, 'type': 'Location'},
                           'offset': {'required': True, 'type': 'String'},
                           'query': {'required': True, 'type': 'String'}},
           'InlineQueryResult': {},
           'InlineQueryResultArticle': {'description': {'required': False, 'type': 'String'},
                                        'id': {'required': True, 'type': 'String'},
                                        'input_message_content': {'required': True,
                                                                  'type': 'InputMessageContent'},
                                        'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                        'thumbnail_height': {'required': False, 'type': 'Integer'},
                                        'thumbnail_url': {'required': False, 'type': 'String'},
                                        'thumbnail_width': {'required': False, 'type': 'Integer'},
                                        'title': {'required': True, 'type': 'String'},
                                        'type': {'constant': 'article', 'required': True, 'type': 'String'},
                                        'url': {'required': False, 'type': 'String'}},
           'InlineQueryResultAudio': {'audio_duration': {'required': False, 'type': 'Integer'},
                                      'audio_url': {'required': True, 'type': 'String'},
                                      'caption': {'required': False, 'type': 'String'},
                                      'caption_entities': {'required': False,
                                                           'type': 'Array of MessageEntity'},
                                      'id': {'required': True, 'type': 'String'},
                                      'input_message_content': {'required': False,
                                                                'type': 'InputMessageContent'},
                                      'parse_mode': {'required': False, 'type': 'String'},
                                      'performer': {'required': False, 'type': 'String'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                      'title': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'audio', 'required': True, 'type': 'String'}},
           'InlineQueryResultCachedAudio': {'audio_file_id': {'required': True, 'type': 'String'},
                                            'caption': {'required': False, 'type': 'String'},
                                            'caption_entities': {'required': False,
                                                                 'type': 'Array of MessageEntity'},
                                            'id': {'required': True, 'type': 'String'},
                                            'input_message_content': {'required': False,
                                                                      'type': 'InputMessageContent'},
                                            'parse_mode': {'required': False, 'type': 'String'},
                                            'reply_markup': {'required': False,
                                                             'type': 'InlineKeyboardMarkup'},
                                            'type': {'constant': 'audio',
                                                     'required': True,
                                                     'type': 'String'}},
           'InlineQueryResultCachedDocument': {'caption': {'required': False, 'type': 'String'},
                                               'caption_entities': {'required': False,
                                                                    'type': 'Array of MessageEntity'},
                                               'description': {'required': False, 'type': 'String'},
                                               'document_file_id': {'required': True, 'type': 'String'},
                                               'id': {'required': True, 'type': 'String'},
                                               'input_message_content': {'required': False,
                                                                         'type': 'InputMessageContent'},
                                               'parse_mode': {'required': False, 'type': 'String'},
                                               'reply_markup': {'required': False,
                                                                'type': 'InlineKeyboardMarkup'},
                                               'title': {'required': True, 'type': 'String'},
                                               'type': {'constant': 'document',
                                                        'required': True,
                                                        'type': 'String'}},
           'InlineQueryResultCachedGif': {'caption': {'required': False, 'type': 'String'},
                                          'caption_entities': {'required': False,
                                                               'type': 'Array of MessageEntity'},
                                          'gif_file_id': {'required': True, 'type': 'String'},
                                          'id': {'required': True, 'type': 'String'},
                                          'input_message_content': {'required': False,
                                                                    'type': 'InputMessageContent'},
                                          'parse_mode': {'required': False, 'type': 'String'},
                                          'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                          'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                          'title': {'required': False, 'type': 'String'},
                                          'type': {'constant': 'gif', 'required': True, 'type': 'String'}},
           'InlineQueryResultCachedMpeg4Gif': {'caption': {'required': False, 'type': 'String'},
                                               'caption_entities': {'required': False,
                                                                    'type': 'Array of MessageEntity'},
                                               'id': {'required': True, 'type': 'String'},
                                               'input_message_content': {'required': False,
                                                                         'type': 'InputMessageContent'},
                                               'mpeg4_file_id': {'required': True, 'type': 'String'},
                                               'parse_mode': {'required': False, 'type': 'String'},
                                               'reply_markup': {'required': False,
                                                                'type': 'InlineKeyboardMarkup'},
                                               'show_caption_above_media': {'required': False,
                                                                            'type': 'Boolean'},
                                               'title': {'required': False, 'type': 'String'},
                                               'type': {'constant': 'mpeg',
                                                        'required': True,
                                                        'type': 'String'}},
           'InlineQueryResultCachedPhoto': {'caption': {'required': False, 'type': 'String'},
                                            'caption_entities': {'required': False,
                                                                 'type': 'Array of MessageEntity'},
                                            'description': {'required': False, 'type': 'String'},
                                            'id': {'required': True, 'type': 'String'},
                                            'input_message_content': {'required': False,
                                                                      'type': 'InputMessageContent'},
                                            'parse_mode': {'required': False, 'type': 'String'},
                                            'photo_file_id': {'required': True, 'type': 'String'},
                                            'reply_markup': {'required': False,
                                                             'type': 'InlineKeyboardMarkup'},
                                            'show_caption_above_media': {'required': False,
                                                                         'type': 'Boolean'},
                                            'title': {'required': False, 'type': 'String'},
                                            'type': {'constant': 'photo',
                                                     'required': True,
                                                     'type': 'String'}},
           'InlineQueryResultCachedSticker': {'id': {'required': True, 'type': 'String'},
                                              'input_message_content': {'required': False,
                                                                        'type': 'InputMessageContent'},
                                              'reply_markup': {'required': False,
                                                               'type': 'InlineKeyboardMarkup'},
                                              'sticker_file_id': {'required': True, 'type': 'String'},
                                              'type': {'constant': 'sticker',
                                                       'required': True,
                                                       'type': 'String'}},
           'InlineQueryResultCachedVideo': {'caption': {'required': False, 'type': 'String'},
                                            'caption_entities': {'required': False,
                                                                 'type': 'Array of MessageEntity'},
                                            'description': {'required': False, 'type': 'String'},
                                            'id': {'required': True, 'type': 'String'},
                                            'input_message_content': {'required': False,
                                                                      'type': 'InputMessageContent'},
                                            'parse_mode': {'required': False, 'type': 'String'},
                                            'reply_markup': {'required': False,
                                                             'type': 'InlineKeyboardMarkup'},
                                            'show_caption_above_media': {'required': False,
                                                                         'type': 'Boolean'},
                                            'title': {'required': True, 'type': 'String'},
                                            'type': {'constant': 'video', 'required': True, 'type': 'String'},
                                            'video_file_id': {'required': True, 'type': 'String'}},
           'InlineQueryResultCachedVoice': {'caption': {'required': False, 'type': 'String'},
                                            'caption_entities': {'required': False,
                                                                 'type': 'Array of MessageEntity'},
                                            'id': {'required': True, 'type': 'String'},
                                            'input_message_content': {'required': False,
                                                                      'type': 'InputMessageContent'},
                                            'parse_mode': {'required': False, 'type': 'String'},
                                            'reply_markup': {'required': False,
                                                             'type': 'InlineKeyboardMarkup'},
                                            'title': {'required': True, 'type': 'String'},
                                            'type': {'constant': 'voice', 'required': True, 'type': 'String'},
                                            'voice_file_id': {'required': True, 'type': 'String'}},
           'InlineQueryResultContact': {'first_name': {'required': True, 'type': 'String'},
                                        'id': {'required': True, 'type': 'String'},
                                        'input_message_content': {'required': False,
                                                                  'type': 'InputMessageContent'},
                                        'last_name': {'required': False, 'type': 'String'},
                                        'phone_number': {'required': True, 'type': 'String'},
                                        'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                        'thumbnail_height': {'required': False, 'type': 'Integer'},
                                        'thumbnail_url': {'required': False, 'type': 'String'},
                                        'thumbnail_width': {'required': False, 'type': 'Integer'},
                                        'type': {'constant': 'contact', 'required': True, 'type': 'String'},
                                        'vcard': {'required': False, 'type': 'String'}},
           'InlineQueryResultDocument': {'caption': {'required': False, 'type': 'String'},
                                         'caption_entities': {'required': False,
                                                              'type': 'Array of MessageEntity'},
                                         'description': {'required': False, 'type': 'String'},
                                         'document_url': {'required': True, 'type': 'String'},
                                         'id': {'required': True, 'type': 'String'},
                                         'input_message_content': {'required': False,
                                                                   'type': 'InputMessageContent'},
                                         'mime_type': {'required': True, 'type': 'String'},
                                         'parse_mode': {'required': False, 'type': 'String'},
                                         'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                         'thumbnail_height': {'required': False, 'type': 'Integer'},
                                         'thumbnail_url': {'required': False, 'type': 'String'},
                                         'thumbnail_width': {'required': False, 'type': 'Integer'},
                                         'title': {'required': True, 'type': 'String'},
                                         'type': {'constant': 'document',
                                                  'required': True,
                                                  'type': 'String'}},
           'InlineQueryResultGame': {'game_short_name': {'required': True, 'type': 'String'},
                                     'id': {'required': True, 'type': 'String'},
                                     'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                     'type': {'constant': 'game', 'required': True, 'type': 'String'}},
           'InlineQueryResultGif': {'caption': {'required': False, 'type': 'String'},
                                    'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                    'gif_duration': {'required': False, 'type': 'Integer'},
                                    'gif_height': {'required': False, 'type': 'Integer'},
                                    'gif_url': {'required': True, 'type': 'String'},
                                    'gif_width': {'required': False, 'type': 'Integer'},
                                    'id': {'required': True, 'type': 'String'},
                                    'input_message_content': {'required': False,
                                                              'type': 'InputMessageContent'},
                                    'parse_mode': {'required': False, 'type': 'String'},
                                    'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                    'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                    'thumbnail_mime_type': {'required': False, 'type': 'String'},
                                    'thumbnail_url': {'required': True, 'type': 'String'},
                                    'title': {'required': False, 'type': 'String'},
                                    'type': {'constant': 'gif', 'required': True, 'type': 'String'}},
           'InlineQueryResultLocation': {'heading': {'required': False, 'type': 'Integer'},
                                         'horizontal_accuracy': {'required': False, 'type': 'Float'},
                                         'id': {'required': True, 'type': 'String'},
                                         'input_message_content': {'required': False,
                                                                   'type': 'InputMessageContent'},
                                         'latitude': {'required': True, 'type': 'Float'},
                                         'live_period': {'required': False, 'type': 'Integer'},
                                         'longitude': {'required': True, 'type': 'Float'},
                                         'proximity_alert_radius': {'required': False, 'type': 'Integer'},
                                         'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                         'thumbnail_height': {'required': False, 'type': 'Integer'},
                                         'thumbnail_url': {'required': False, 'type': 'String'},
                                         'thumbnail_width': {'required': False, 'type': 'Integer'},
                                         'title': {'required': True, 'type': 'String'},
                                         'type': {'constant': 'location',
                                                  'required': True,
                                                  'type': 'String'}},
           'InlineQueryResultMpeg4Gif': {'caption': {'required': False, 'type': 'String'},
                                         'caption_entities': {'required': False,
                                                              'type': 'Array of MessageEntity'},
                                         'id': {'required': True, 'type': 'String'},
                                         'input_message_content': {'required': False,
                                                                   'type': 'InputMessageContent'},
                                         'mpeg4_duration': {'required': False, 'type': 'Integer'},
                                         'mpeg4_height': {'required': False, 'type': 'Integer'},
                                         'mpeg4_url': {'required': True, 'type': 'String'},
                                         'mpeg4_width': {'required': False, 'type': 'Integer'},
                                         'parse_mode': {'required': False, 'type': 'String'},
                                         'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                         'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                         'thumbnail_mime_type': {'required': False, 'type': 'String'},
                                         'thumbnail_url': {'required': True, 'type': 'String'},
                                         'title': {'required': False, 'type': 'String'},
                                         'type': {'constant': 'mpeg', 'required': True, 'type': 'String'}},
           'InlineQueryResultPhoto': {'caption': {'required': False, 'type': 'String'},
                                      'caption_entities': {'required': False,
                                                           'type': 'Array of MessageEntity'},
                                      'description': {'required': False, 'type': 'String'},
                                      'id': {'required': True, 'type': 'String'},
                                      'input_message_content': {'required': False,
                                                                'type': 'InputMessageContent'},
                                      'parse_mode': {'required': False, 'type': 'String'},
                                      'photo_height': {'required': False, 'type': 'Integer'},
                                      'photo_url': {'required': True, 'type': 'String'},
                                      'photo_width': {'required': False, 'type': 'Integer'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                      'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                      'thumbnail_url': {'required': True, 'type': 'String'},
                                      'title': {'required': False, 'type': 'String'},
                                      'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'InlineQueryResultVenue': {'address': {'required': True, 'type': 'String'},
                                      'foursquare_id': {'required': False, 'type': 'String'},
                                      'foursquare_type': {'required': False, 'type': 'String'},
                                      'google_place_id': {'required': False, 'type': 'String'},
                                      'google_place_type': {'required': False, 'type': 'String'},
                                      'id': {'required': True, 'type': 'String'},
                                      'input_message_content': {'required': False,
                                                                'type': 'InputMessageContent'},
                                      'latitude': {'required': True, 'type': 'Float'},
                                      'longitude': {'required': True, 'type': 'Float'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                      'thumbnail_height': {'required': False, 'type': 'Integer'},
                                      'thumbnail_url': {'required': False, 'type': 'String'},
                                      'thumbnail_width': {'required': False, 'type': 'Integer'},
                                      'title': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'venue', 'required': True, 'type': 'String'}},
           'InlineQueryResultVideo': {'caption': {'required': False, 'type': 'String'},
                                      'caption_entities': {'required': False,
                                                           'type': 'Array of MessageEntity'},
                                      'description': {'required': False, 'type': 'String'},
                                      'id': {'required': True, 'type': 'String'},
                                      'input_message_content': {'required': False,
                                                                'type': 'InputMessageContent'},
                                      'mime_type': {'required': True, 'type': 'String'},
                                      'parse_mode': {'required': False, 'type': 'String'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                      'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                      'thumbnail_url': {'required': True, 'type': 'String'},
                                      'title': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'video', 'required': True, 'type': 'String'},
                                      'video_duration': {'required': False, 'type': 'Integer'},
                                      'video_height': {'required': False, 'type': 'Integer'},
                                      'video_url': {'required': True, 'type': 'String'},
                                      'video_width': {'required': False, 'type': 'Integer'}},
           'InlineQueryResultVoice': {'caption': {'required': False, 'type': 'String'},
                                      'caption_entities': {'required': False,
                                                           'type': 'Array of MessageEntity'},
                                      'id': {'required': True, 'type': 'String'},
                                      'input_message_content': {'required': False,
                                                                'type': 'InputMessageContent'},
                                      'parse_mode': {'required': False, 'type': 'String'},
                                      'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                                      'title': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'voice', 'required': True, 'type': 'String'},
                                      'voice_duration': {'required': False, 'type': 'Integer'},
                                      'voice_url': {'required': True, 'type': 'String'}},
           'InlineQueryResultsButton': {'start_parameter': {'required': False, 'type': 'String'},
                                        'text': {'required': True, 'type': 'String'},
                                        'web_app': {'required': False, 'type': 'WebAppInfo'}},
           'InputChecklist': {'others_can_add_tasks': {'required': False, 'type': 'Boolean'},
                              'others_can_mark_tasks_as_done': {'required': False, 'type': 'Boolean'},
                              'parse_mode': {'required': False, 'type': 'String'},
                              'tasks': {'required': True, 'type': 'Array of InputChecklistTask'},
                              'title': {'required': True, 'type': 'String'},
                              'title_entities': {'required': False, 'type': 'Array of MessageEntity'}},
           'InputChecklistTask': {'id': {'required': True, 'type': 'Integer'},
                                  'parse_mode': {'required': False, 'type': 'String'},
                                  'text': {'required': True, 'type': 'String'},
                                  'text_entities': {'required': False, 'type': 'Array of MessageEntity'}},
           'InputContactMessageContent': {'first_name': {'required': True, 'type': 'String'},
                                          'last_name': {'required': False, 'type': 'String'},
                                          'phone_number': {'required': True, 'type': 'String'},
                                          'vcard': {'required': False, 'type': 'String'}},
           'InputFile': {},
           'InputInvoiceMessageContent': {'currency': {'required': True, 'type': 'String'},
                                          'description': {'required': True, 'type': 'String'},
                                          'is_flexible': {'required': False, 'type': 'Boolean'},
                                          'max_tip_amount': {'required': False, 'type': 'Integer'},
                                          'need_email': {'required': False, 'type': 'Boolean'},
                                          'need_name': {'required': False, 'type': 'Boolean'},
                                          'need_phone_number': {'required': False, 'type': 'Boolean'},
                                          'need_shipping_address': {'required': False, 'type': 'Boolean'},
                                          'payload': {'required': True, 'type': 'String'},
                                          'photo_height': {'required': False, 'type': 'Integer'},
                                          'photo_size': {'required': False, 'type': 'Integer'},
                                          'photo_url': {'required': False, 'type': 'String'},
                                          'photo_width': {'required': False, 'type': 'Integer'},
                                          'prices': {'required': True, 'type': 'Array of LabeledPrice'},
                                          'provider_data': {'required': False, 'type': 'String'},
                                          'provider_token': {'required': False, 'type': 'String'},
                                          'send_email_to_provider': {'required': False, 'type': 'Boolean'},
                                          'send_phone_number_to_provider': {'required': False,
                                                                            'type': 'Boolean'},
                                          'suggested_tip_amounts': {'required': False,
                                                                    'type': 'Array of Integer'},
                                          'title': {'required': True, 'type': 'String'}},
           'InputLocationMessageContent': {'heading': {'required': False, 'type': 'Integer'},
                                           'horizontal_accuracy': {'required': False, 'type': 'Float'},
                                           'latitude': {'required': True, 'type': 'Float'},
                                           'live_period': {'required': False, 'type': 'Integer'},
                                           'longitude': {'required': True, 'type': 'Float'},
                                           'proximity_alert_radius': {'required': False, 'type': 'Integer'}},
           'InputMedia': {},
           'InputMediaAnimation': {'caption': {'required': False, 'type': 'String'},
                                   'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                   'duration': {'required': False, 'type': 'Integer'},
                                   'has_spoiler': {'required': False, 'type': 'Boolean'},
                                   'height': {'required': False, 'type': 'Integer'},
                                   'media': {'required': True, 'type': 'String'},
                                   'parse_mode': {'required': False, 'type': 'String'},
                                   'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                   'thumbnail': {'required': False, 'type': 'String'},
                                   'type': {'constant': 'animation', 'required': True, 'type': 'String'},
                                   'width': {'required': False, 'type': 'Integer'}},
           'InputMediaAudio': {'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'duration': {'required': False, 'type': 'Integer'},
                               'media': {'required': True, 'type': 'String'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'performer': {'required': False, 'type': 'String'},
                               'thumbnail': {'required': False, 'type': 'String'},
                               'title': {'required': False, 'type': 'String'},
                               'type': {'constant': 'audio', 'required': True, 'type': 'String'}},
           'InputMediaDocument': {'caption': {'required': False, 'type': 'String'},
                                  'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                  'disable_content_type_detection': {'required': False, 'type': 'Boolean'},
                                  'media': {'required': True, 'type': 'String'},
                                  'parse_mode': {'required': False, 'type': 'String'},
                                  'thumbnail': {'required': False, 'type': 'String'},
                                  'type': {'constant': 'document', 'required': True, 'type': 'String'}},
           'InputMediaLink': {'type': {'constant': 'link', 'required': True, 'type': 'String'},
                              'url': {'required': True, 'type': 'String'}},
           'InputMediaLivePhoto': {'caption': {'required': False, 'type': 'String'},
                                   'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                   'has_spoiler': {'required': False, 'type': 'Boolean'},
                                   'media': {'required': True, 'type': 'String'},
                                   'parse_mode': {'required': False, 'type': 'String'},
                                   'photo': {'required': True, 'type': 'String'},
                                   'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                                   'type': {'constant': 'live_photo', 'required': True, 'type': 'String'}},
           'InputMediaLocation': {'horizontal_accuracy': {'required': False, 'type': 'Float'},
                                  'latitude': {'required': True, 'type': 'Float'},
                                  'longitude': {'required': True, 'type': 'Float'},
                                  'type': {'constant': 'location', 'required': True, 'type': 'String'}},
           'InputMediaPhoto': {'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'has_spoiler': {'required': False, 'type': 'Boolean'},
                               'media': {'required': True, 'type': 'String'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                               'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'InputMediaSticker': {'emoji': {'required': False, 'type': 'String'},
                                 'media': {'required': True, 'type': 'String'},
                                 'type': {'constant': 'sticker', 'required': True, 'type': 'String'}},
           'InputMediaVenue': {'address': {'required': True, 'type': 'String'},
                               'foursquare_id': {'required': False, 'type': 'String'},
                               'foursquare_type': {'required': False, 'type': 'String'},
                               'google_place_id': {'required': False, 'type': 'String'},
                               'google_place_type': {'required': False, 'type': 'String'},
                               'latitude': {'required': True, 'type': 'Float'},
                               'longitude': {'required': True, 'type': 'Float'},
                               'title': {'required': True, 'type': 'String'},
                               'type': {'constant': 'venue', 'required': True, 'type': 'String'}},
           'InputMediaVideo': {'caption': {'required': False, 'type': 'String'},
                               'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'cover': {'required': False, 'type': 'String'},
                               'duration': {'required': False, 'type': 'Integer'},
                               'has_spoiler': {'required': False, 'type': 'Boolean'},
                               'height': {'required': False, 'type': 'Integer'},
                               'media': {'required': True, 'type': 'String'},
                               'parse_mode': {'required': False, 'type': 'String'},
                               'show_caption_above_media': {'required': False, 'type': 'Boolean'},
                               'start_timestamp': {'required': False, 'type': 'Integer'},
                               'supports_streaming': {'required': False, 'type': 'Boolean'},
                               'thumbnail': {'required': False, 'type': 'String'},
                               'type': {'constant': 'video', 'required': True, 'type': 'String'},
                               'width': {'required': False, 'type': 'Integer'}},
           'InputMediaVoiceNote': {'caption': {'required': False, 'type': 'String'},
                                   'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                                   'duration': {'required': False, 'type': 'Integer'},
                                   'media': {'required': True, 'type': 'String'},
                                   'parse_mode': {'required': False, 'type': 'String'},
                                   'type': {'constant': 'voice_note', 'required': True, 'type': 'String'}},
           'InputMessageContent': {},
           'InputPaidMedia': {},
           'InputPaidMediaLivePhoto': {'media': {'required': True, 'type': 'String'},
                                       'photo': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'live_photo',
                                                'required': True,
                                                'type': 'String'}},
           'InputPaidMediaPhoto': {'media': {'required': True, 'type': 'String'},
                                   'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'InputPaidMediaVideo': {'cover': {'required': False, 'type': 'String'},
                                   'duration': {'required': False, 'type': 'Integer'},
                                   'height': {'required': False, 'type': 'Integer'},
                                   'media': {'required': True, 'type': 'String'},
                                   'start_timestamp': {'required': False, 'type': 'Integer'},
                                   'supports_streaming': {'required': False, 'type': 'Boolean'},
                                   'thumbnail': {'required': False, 'type': 'String'},
                                   'type': {'constant': 'video', 'required': True, 'type': 'String'},
                                   'width': {'required': False, 'type': 'Integer'}},
           'InputPollMedia': {},
           'InputPollOption': {'media': {'required': False, 'type': 'InputPollOptionMedia'},
                               'text': {'required': True, 'type': 'String'},
                               'text_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'text_parse_mode': {'required': False, 'type': 'String'}},
           'InputPollOptionMedia': {},
           'InputProfilePhoto': {},
           'InputProfilePhotoAnimated': {'animation': {'required': True, 'type': 'String'},
                                         'main_frame_timestamp': {'required': False, 'type': 'Float'},
                                         'type': {'constant': 'animated',
                                                  'required': True,
                                                  'type': 'String'}},
           'InputProfilePhotoStatic': {'photo': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'static', 'required': True, 'type': 'String'}},
           'InputRichBlock': {},
           'InputRichBlockAnchor': {'name': {'required': True, 'type': 'String'},
                                    'type': {'constant': 'anchor', 'required': True, 'type': 'String'}},
           'InputRichBlockAnimation': {'animation': {'required': True, 'type': 'InputMediaAnimation'},
                                       'caption': {'required': False, 'type': 'RichBlockCaption'},
                                       'type': {'constant': 'animation', 'required': True, 'type': 'String'}},
           'InputRichBlockAudio': {'audio': {'required': True, 'type': 'InputMediaAudio'},
                                   'caption': {'required': False, 'type': 'RichBlockCaption'},
                                   'type': {'constant': 'audio', 'required': True, 'type': 'String'}},
           'InputRichBlockBlockQuotation': {'blocks': {'required': True, 'type': 'Array of InputRichBlock'},
                                            'credit': {'required': False, 'type': 'RichText'},
                                            'type': {'constant': 'blockquote',
                                                     'required': True,
                                                     'type': 'String'}},
           'InputRichBlockButtons': {'align': {'required': False, 'type': 'String'},
                                     'buttons': {'required': True, 'type': 'Array of RichMessageButton'},
                                     'type': {'constant': 'buttons', 'required': True, 'type': 'String'}},
           'InputRichBlockCollage': {'blocks': {'required': True, 'type': 'Array of InputRichBlock'},
                                     'caption': {'required': False, 'type': 'RichBlockCaption'},
                                     'type': {'constant': 'collage', 'required': True, 'type': 'String'}},
           'InputRichBlockDetails': {'blocks': {'required': True, 'type': 'Array of InputRichBlock'},
                                     'is_open': {'required': False, 'type': 'True'},
                                     'summary': {'required': True, 'type': 'RichText'},
                                     'type': {'constant': 'details', 'required': True, 'type': 'String'}},
           'InputRichBlockDivider': {'type': {'constant': 'divider', 'required': True, 'type': 'String'}},
           'InputRichBlockDocument': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                      'document': {'required': True, 'type': 'InputMediaDocument'},
                                      'type': {'constant': 'document', 'required': True, 'type': 'String'}},
           'InputRichBlockExpandableBlockQuotation': {'credit': {'required': False, 'type': 'RichText'},
                                                      'text': {'required': True, 'type': 'RichText'},
                                                      'type': {'constant': 'expandable_blockquote',
                                                               'required': True,
                                                               'type': 'String'}},
           'InputRichBlockFooter': {'text': {'required': True, 'type': 'RichText'},
                                    'type': {'constant': 'footer', 'required': True, 'type': 'String'}},
           'InputRichBlockList': {'items': {'required': True, 'type': 'Array of InputRichBlockListItem'},
                                  'type': {'constant': 'list', 'required': True, 'type': 'String'}},
           'InputRichBlockListItem': {'blocks': {'required': True, 'type': 'Array of InputRichBlock'},
                                      'has_checkbox': {'required': False, 'type': 'True'},
                                      'is_checked': {'required': False, 'type': 'True'},
                                      'type': {'constant': 'one', 'required': False, 'type': 'String'},
                                      'value': {'required': False, 'type': 'Integer'}},
           'InputRichBlockMap': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                 'height': {'required': False, 'type': 'Integer'},
                                 'location': {'required': True, 'type': 'Location'},
                                 'type': {'constant': 'map', 'required': True, 'type': 'String'},
                                 'width': {'required': False, 'type': 'Integer'},
                                 'zoom': {'required': False, 'type': 'Integer'}},
           'InputRichBlockMathematicalExpression': {'expression': {'required': True, 'type': 'String'},
                                                    'type': {'constant': 'mathematical_expression',
                                                             'required': True,
                                                             'type': 'String'}},
           'InputRichBlockParagraph': {'text': {'required': True, 'type': 'RichText'},
                                       'type': {'constant': 'paragraph', 'required': True, 'type': 'String'}},
           'InputRichBlockPhoto': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                   'photo': {'required': True, 'type': 'InputMediaPhoto'},
                                   'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'InputRichBlockPreformatted': {'language': {'required': False, 'type': 'String'},
                                          'text': {'required': True, 'type': 'RichText'},
                                          'type': {'constant': 'pre', 'required': True, 'type': 'String'}},
           'InputRichBlockPullQuotation': {'credit': {'required': False, 'type': 'RichText'},
                                           'text': {'required': True, 'type': 'RichText'},
                                           'type': {'constant': 'pullquote',
                                                    'required': True,
                                                    'type': 'String'}},
           'InputRichBlockSectionHeading': {'size': {'required': True, 'type': 'Integer'},
                                            'text': {'required': True, 'type': 'RichText'},
                                            'type': {'constant': 'heading',
                                                     'required': True,
                                                     'type': 'String'}},
           'InputRichBlockSlideshow': {'blocks': {'required': True, 'type': 'Array of InputRichBlock'},
                                       'caption': {'required': False, 'type': 'RichBlockCaption'},
                                       'type': {'constant': 'slideshow', 'required': True, 'type': 'String'}},
           'InputRichBlockTable': {'caption': {'required': False, 'type': 'RichText'},
                                   'cells': {'required': True,
                                             'type': 'Array of Array of RichBlockTableCell'},
                                   'is_bordered': {'required': False, 'type': 'True'},
                                   'is_compact': {'required': False, 'type': 'True'},
                                   'is_striped': {'required': False, 'type': 'True'},
                                   'type': {'constant': 'table', 'required': True, 'type': 'String'}},
           'InputRichBlockThinking': {'text': {'required': True, 'type': 'RichText'},
                                      'type': {'constant': 'thinking', 'required': True, 'type': 'String'}},
           'InputRichBlockVideo': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                   'type': {'constant': 'video', 'required': True, 'type': 'String'},
                                   'video': {'required': True, 'type': 'InputMediaVideo'}},
           'InputRichBlockVoiceNote': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                       'type': {'constant': 'voice_note', 'required': True, 'type': 'String'},
                                       'voice_note': {'required': True, 'type': 'InputMediaVoiceNote'}},
           'InputRichMessage': {'blocks': {'required': False, 'type': 'Array of InputRichBlock'},
                                'html': {'required': False, 'type': 'String'},
                                'is_rtl': {'required': False, 'type': 'Boolean'},
                                'markdown': {'required': False, 'type': 'String'},
                                'media': {'required': False, 'type': 'Array of InputRichMessageMedia'},
                                'skip_entity_detection': {'required': False, 'type': 'Boolean'}},
           'InputRichMessageContent': {'rich_message': {'required': True, 'type': 'InputRichMessage'}},
           'InputRichMessageMedia': {'id': {'required': True, 'type': 'String'},
                                     'media': {'required': True,
                                               'type': 'InputMediaAnimation or InputMediaAudio or '
                                                       'InputMediaDocument or InputMediaPhoto or '
                                                       'InputMediaVideo or InputMediaVoiceNote'}},
           'InputSticker': {'emoji_list': {'required': True, 'type': 'Array of String'},
                            'format': {'required': True, 'type': 'String'},
                            'keywords': {'required': False, 'type': 'Array of String'},
                            'mask_position': {'required': False, 'type': 'MaskPosition'},
                            'sticker': {'required': True, 'type': 'String'}},
           'InputStoryContent': {},
           'InputStoryContentPhoto': {'photo': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'InputStoryContentVideo': {'cover_frame_timestamp': {'required': False, 'type': 'Float'},
                                      'duration': {'required': False, 'type': 'Float'},
                                      'is_animation': {'required': False, 'type': 'Boolean'},
                                      'type': {'constant': 'video', 'required': True, 'type': 'String'},
                                      'video': {'required': True, 'type': 'String'}},
           'InputTextMessageContent': {'entities': {'required': False, 'type': 'Array of MessageEntity'},
                                       'link_preview_options': {'required': False,
                                                                'type': 'LinkPreviewOptions'},
                                       'message_text': {'required': True, 'type': 'String'},
                                       'parse_mode': {'required': False, 'type': 'String'}},
           'InputVenueMessageContent': {'address': {'required': True, 'type': 'String'},
                                        'foursquare_id': {'required': False, 'type': 'String'},
                                        'foursquare_type': {'required': False, 'type': 'String'},
                                        'google_place_id': {'required': False, 'type': 'String'},
                                        'google_place_type': {'required': False, 'type': 'String'},
                                        'latitude': {'required': True, 'type': 'Float'},
                                        'longitude': {'required': True, 'type': 'Float'},
                                        'title': {'required': True, 'type': 'String'}},
           'Invoice': {'currency': {'required': True, 'type': 'String'},
                       'description': {'required': True, 'type': 'String'},
                       'start_parameter': {'required': True, 'type': 'String'},
                       'title': {'required': True, 'type': 'String'},
                       'total_amount': {'required': True, 'type': 'Integer'}},
           'KeyboardButton': {'icon_custom_emoji_id': {'required': False, 'type': 'String'},
                              'request_chat': {'required': False, 'type': 'KeyboardButtonRequestChat'},
                              'request_contact': {'required': False, 'type': 'Boolean'},
                              'request_location': {'required': False, 'type': 'Boolean'},
                              'request_managed_bot': {'required': False,
                                                      'type': 'KeyboardButtonRequestManagedBot'},
                              'request_poll': {'required': False, 'type': 'KeyboardButtonPollType'},
                              'request_users': {'required': False, 'type': 'KeyboardButtonRequestUsers'},
                              'style': {'required': False, 'type': 'String'},
                              'text': {'required': True, 'type': 'String'},
                              'web_app': {'required': False, 'type': 'WebAppInfo'}},
           'KeyboardButtonPollType': {'type': {'required': False, 'type': 'String'}},
           'KeyboardButtonRequestChat': {'bot_administrator_rights': {'required': False,
                                                                      'type': 'ChatAdministratorRights'},
                                         'bot_is_member': {'required': False, 'type': 'Boolean'},
                                         'chat_has_username': {'required': False, 'type': 'Boolean'},
                                         'chat_is_channel': {'required': True, 'type': 'Boolean'},
                                         'chat_is_created': {'required': False, 'type': 'Boolean'},
                                         'chat_is_forum': {'required': False, 'type': 'Boolean'},
                                         'request_id': {'required': True, 'type': 'Integer'},
                                         'request_photo': {'required': False, 'type': 'Boolean'},
                                         'request_title': {'required': False, 'type': 'Boolean'},
                                         'request_username': {'required': False, 'type': 'Boolean'},
                                         'user_administrator_rights': {'required': False,
                                                                       'type': 'ChatAdministratorRights'}},
           'KeyboardButtonRequestManagedBot': {'request_id': {'required': True, 'type': 'Integer'},
                                               'suggested_name': {'required': False, 'type': 'String'},
                                               'suggested_username': {'required': False, 'type': 'String'}},
           'KeyboardButtonRequestUsers': {'max_quantity': {'required': False, 'type': 'Integer'},
                                          'request_id': {'required': True, 'type': 'Integer'},
                                          'request_name': {'required': False, 'type': 'Boolean'},
                                          'request_photo': {'required': False, 'type': 'Boolean'},
                                          'request_username': {'required': False, 'type': 'Boolean'},
                                          'user_is_bot': {'required': False, 'type': 'Boolean'},
                                          'user_is_premium': {'required': False, 'type': 'Boolean'}},
           'LabeledPrice': {'amount': {'required': True, 'type': 'Integer'},
                            'label': {'required': True, 'type': 'String'}},
           'Link': {'url': {'required': True, 'type': 'String'}},
           'LinkPreviewOptions': {'is_disabled': {'required': False, 'type': 'Boolean'},
                                  'prefer_large_media': {'required': False, 'type': 'Boolean'},
                                  'prefer_small_media': {'required': False, 'type': 'Boolean'},
                                  'show_above_text': {'required': False, 'type': 'Boolean'},
                                  'url': {'required': False, 'type': 'String'}},
           'LivePhoto': {'duration': {'required': True, 'type': 'Integer'},
                         'file_id': {'required': True, 'type': 'String'},
                         'file_size': {'required': False, 'type': 'Integer'},
                         'file_unique_id': {'required': True, 'type': 'String'},
                         'height': {'required': True, 'type': 'Integer'},
                         'mime_type': {'required': False, 'type': 'String'},
                         'photo': {'required': False, 'type': 'Array of PhotoSize'},
                         'width': {'required': True, 'type': 'Integer'}},
           'Location': {'heading': {'required': False, 'type': 'Integer'},
                        'horizontal_accuracy': {'required': False, 'type': 'Float'},
                        'latitude': {'required': True, 'type': 'Float'},
                        'live_period': {'required': False, 'type': 'Integer'},
                        'longitude': {'required': True, 'type': 'Float'},
                        'proximity_alert_radius': {'required': False, 'type': 'Integer'}},
           'LocationAddress': {'city': {'required': False, 'type': 'String'},
                               'country_code': {'required': True, 'type': 'String'},
                               'state': {'required': False, 'type': 'String'},
                               'street': {'required': False, 'type': 'String'}},
           'LoginUrl': {'bot_username': {'required': False, 'type': 'String'},
                        'forward_text': {'required': False, 'type': 'String'},
                        'request_write_access': {'required': False, 'type': 'Boolean'},
                        'url': {'required': True, 'type': 'String'}},
           'ManagedBotCreated': {'bot': {'required': True, 'type': 'User'}},
           'ManagedBotUpdated': {'bot': {'required': True, 'type': 'User'},
                                 'user': {'required': True, 'type': 'User'}},
           'MaskPosition': {'point': {'required': True, 'type': 'String'},
                            'scale': {'required': True, 'type': 'Float'},
                            'x_shift': {'required': True, 'type': 'Float'},
                            'y_shift': {'required': True, 'type': 'Float'}},
           'MaybeInaccessibleMessage': {},
           'MenuButton': {},
           'MenuButtonCommands': {'type': {'constant': 'commands', 'required': True, 'type': 'String'}},
           'MenuButtonDefault': {'type': {'constant': 'default', 'required': True, 'type': 'String'}},
           'MenuButtonWebApp': {'text': {'required': True, 'type': 'String'},
                                'type': {'constant': 'web_app', 'required': True, 'type': 'String'},
                                'web_app': {'required': True, 'type': 'WebAppInfo'}},
           'Message': {'animation': {'required': False, 'type': 'Animation'},
                       'audio': {'required': False, 'type': 'Audio'},
                       'author_signature': {'required': False, 'type': 'String'},
                       'boost_added': {'required': False, 'type': 'ChatBoostAdded'},
                       'business_connection_id': {'required': False, 'type': 'String'},
                       'caption': {'required': False, 'type': 'String'},
                       'caption_entities': {'required': False, 'type': 'Array of MessageEntity'},
                       'channel_chat_created': {'required': False, 'type': 'True'},
                       'chat': {'required': True, 'type': 'Chat'},
                       'chat_background_set': {'required': False, 'type': 'ChatBackground'},
                       'chat_owner_changed': {'required': False, 'type': 'ChatOwnerChanged'},
                       'chat_owner_left': {'required': False, 'type': 'ChatOwnerLeft'},
                       'chat_shared': {'required': False, 'type': 'ChatShared'},
                       'checklist': {'required': False, 'type': 'Checklist'},
                       'checklist_tasks_added': {'required': False, 'type': 'ChecklistTasksAdded'},
                       'checklist_tasks_done': {'required': False, 'type': 'ChecklistTasksDone'},
                       'community_chat_added': {'required': False, 'type': 'CommunityChatAdded'},
                       'community_chat_joined': {'required': False, 'type': 'CommunityChatJoined'},
                       'community_chat_removed': {'required': False, 'type': 'CommunityChatRemoved'},
                       'connected_website': {'required': False, 'type': 'String'},
                       'contact': {'required': False, 'type': 'Contact'},
                       'date': {'required': True, 'type': 'Integer'},
                       'delete_chat_photo': {'required': False, 'type': 'True'},
                       'dice': {'required': False, 'type': 'Dice'},
                       'direct_message_price_changed': {'required': False,
                                                        'type': 'DirectMessagePriceChanged'},
                       'direct_messages_topic': {'required': False, 'type': 'DirectMessagesTopic'},
                       'document': {'required': False, 'type': 'Document'},
                       'edit_date': {'required': False, 'type': 'Integer'},
                       'effect_id': {'required': False, 'type': 'String'},
                       'entities': {'required': False, 'type': 'Array of MessageEntity'},
                       'ephemeral_message_id': {'required': False, 'type': 'Integer'},
                       'external_reply': {'required': False, 'type': 'ExternalReplyInfo'},
                       'forum_topic_closed': {'required': False, 'type': 'ForumTopicClosed'},
                       'forum_topic_created': {'required': False, 'type': 'ForumTopicCreated'},
                       'forum_topic_edited': {'required': False, 'type': 'ForumTopicEdited'},
                       'forum_topic_reopened': {'required': False, 'type': 'ForumTopicReopened'},
                       'forward_origin': {'required': False, 'type': 'MessageOrigin'},
                       'from': {'required': False, 'type': 'User'},
                       'game': {'required': False, 'type': 'Game'},
                       'general_forum_topic_hidden': {'required': False, 'type': 'GeneralForumTopicHidden'},
                       'general_forum_topic_unhidden': {'required': False,
                                                        'type': 'GeneralForumTopicUnhidden'},
                       'gift': {'required': False, 'type': 'GiftInfo'},
                       'gift_upgrade_sent': {'required': False, 'type': 'GiftInfo'},
                       'giveaway': {'required': False, 'type': 'Giveaway'},
                       'giveaway_completed': {'required': False, 'type': 'GiveawayCompleted'},
                       'giveaway_created': {'required': False, 'type': 'GiveawayCreated'},
                       'giveaway_winners': {'required': False, 'type': 'GiveawayWinners'},
                       'group_chat_created': {'required': False, 'type': 'True'},
                       'guest_bot_caller_chat': {'required': False, 'type': 'Chat'},
                       'guest_bot_caller_user': {'required': False, 'type': 'User'},
                       'guest_query_id': {'required': False, 'type': 'String'},
                       'has_media_spoiler': {'required': False, 'type': 'True'},
                       'has_protected_content': {'required': False, 'type': 'True'},
                       'invoice': {'required': False, 'type': 'Invoice'},
                       'is_automatic_forward': {'required': False, 'type': 'True'},
                       'is_from_offline': {'required': False, 'type': 'True'},
                       'is_paid_post': {'required': False, 'type': 'True'},
                       'is_topic_message': {'required': False, 'type': 'True'},
                       'left_chat_member': {'required': False, 'type': 'User'},
                       'link_preview_options': {'required': False, 'type': 'LinkPreviewOptions'},
                       'live_photo': {'required': False, 'type': 'LivePhoto'},
                       'location': {'required': False, 'type': 'Location'},
                       'managed_bot_created': {'required': False, 'type': 'ManagedBotCreated'},
                       'media_group_id': {'required': False, 'type': 'String'},
                       'message_auto_delete_timer_changed': {'required': False,
                                                             'type': 'MessageAutoDeleteTimerChanged'},
                       'message_id': {'required': True, 'type': 'Integer'},
                       'message_thread_id': {'required': False, 'type': 'Integer'},
                       'migrate_from_chat_id': {'required': False, 'type': 'Integer'},
                       'migrate_to_chat_id': {'required': False, 'type': 'Integer'},
                       'new_chat_members': {'required': False, 'type': 'Array of User'},
                       'new_chat_photo': {'required': False, 'type': 'Array of PhotoSize'},
                       'new_chat_title': {'required': False, 'type': 'String'},
                       'paid_media': {'required': False, 'type': 'PaidMediaInfo'},
                       'paid_message_price_changed': {'required': False, 'type': 'PaidMessagePriceChanged'},
                       'paid_star_count': {'required': False, 'type': 'Integer'},
                       'passport_data': {'required': False, 'type': 'PassportData'},
                       'photo': {'required': False, 'type': 'Array of PhotoSize'},
                       'pinned_message': {'required': False, 'type': 'MaybeInaccessibleMessage'},
                       'poll': {'required': False, 'type': 'Poll'},
                       'poll_option_added': {'required': False, 'type': 'PollOptionAdded'},
                       'poll_option_deleted': {'required': False, 'type': 'PollOptionDeleted'},
                       'proximity_alert_triggered': {'required': False, 'type': 'ProximityAlertTriggered'},
                       'quote': {'required': False, 'type': 'TextQuote'},
                       'receiver_user': {'required': False, 'type': 'User'},
                       'refunded_payment': {'required': False, 'type': 'RefundedPayment'},
                       'reply_markup': {'required': False, 'type': 'InlineKeyboardMarkup'},
                       'reply_to_checklist_task_id': {'required': False, 'type': 'Integer'},
                       'reply_to_message': {'required': False, 'type': 'Message'},
                       'reply_to_poll_option_id': {'required': False, 'type': 'String'},
                       'reply_to_story': {'required': False, 'type': 'Story'},
                       'rich_message': {'required': False, 'type': 'RichMessage'},
                       'sender_boost_count': {'required': False, 'type': 'Integer'},
                       'sender_business_bot': {'required': False, 'type': 'User'},
                       'sender_chat': {'required': False, 'type': 'Chat'},
                       'sender_tag': {'required': False, 'type': 'String'},
                       'show_caption_above_media': {'required': False, 'type': 'True'},
                       'sticker': {'required': False, 'type': 'Sticker'},
                       'story': {'required': False, 'type': 'Story'},
                       'successful_payment': {'required': False, 'type': 'SuccessfulPayment'},
                       'suggested_post_approval_failed': {'required': False,
                                                          'type': 'SuggestedPostApprovalFailed'},
                       'suggested_post_approved': {'required': False, 'type': 'SuggestedPostApproved'},
                       'suggested_post_declined': {'required': False, 'type': 'SuggestedPostDeclined'},
                       'suggested_post_info': {'required': False, 'type': 'SuggestedPostInfo'},
                       'suggested_post_paid': {'required': False, 'type': 'SuggestedPostPaid'},
                       'suggested_post_refunded': {'required': False, 'type': 'SuggestedPostRefunded'},
                       'supergroup_chat_created': {'required': False, 'type': 'True'},
                       'text': {'required': False, 'type': 'String'},
                       'unique_gift': {'required': False, 'type': 'UniqueGiftInfo'},
                       'users_shared': {'required': False, 'type': 'UsersShared'},
                       'venue': {'required': False, 'type': 'Venue'},
                       'via_bot': {'required': False, 'type': 'User'},
                       'video': {'required': False, 'type': 'Video'},
                       'video_chat_ended': {'required': False, 'type': 'VideoChatEnded'},
                       'video_chat_participants_invited': {'required': False,
                                                           'type': 'VideoChatParticipantsInvited'},
                       'video_chat_scheduled': {'required': False, 'type': 'VideoChatScheduled'},
                       'video_chat_started': {'required': False, 'type': 'VideoChatStarted'},
                       'video_note': {'required': False, 'type': 'VideoNote'},
                       'voice': {'required': False, 'type': 'Voice'},
                       'web_app_data': {'required': False, 'type': 'WebAppData'},
                       'write_access_allowed': {'required': False, 'type': 'WriteAccessAllowed'}},
           'MessageAutoDeleteTimerChanged': {'message_auto_delete_time': {'required': True,
                                                                          'type': 'Integer'}},
           'MessageEntity': {'custom_emoji_id': {'required': False, 'type': 'String'},
                             'date_time_format': {'required': False, 'type': 'String'},
                             'language': {'required': False, 'type': 'String'},
                             'length': {'required': True, 'type': 'Integer'},
                             'offset': {'required': True, 'type': 'Integer'},
                             'type': {'required': True, 'type': 'String'},
                             'unix_time': {'required': False, 'type': 'Integer'},
                             'url': {'required': False, 'type': 'String'},
                             'user': {'required': False, 'type': 'User'}},
           'MessageGenerationStopped': {'chat': {'required': True, 'type': 'Chat'},
                                        'draft_id': {'required': True, 'type': 'Integer'},
                                        'message_thread_id': {'required': False, 'type': 'Integer'}},
           'MessageId': {'message_id': {'required': True, 'type': 'Integer'}},
           'MessageOrigin': {},
           'MessageOriginChannel': {'author_signature': {'required': False, 'type': 'String'},
                                    'chat': {'required': True, 'type': 'Chat'},
                                    'date': {'required': True, 'type': 'Integer'},
                                    'message_id': {'required': True, 'type': 'Integer'},
                                    'type': {'constant': 'channel', 'required': True, 'type': 'String'}},
           'MessageOriginChat': {'author_signature': {'required': False, 'type': 'String'},
                                 'date': {'required': True, 'type': 'Integer'},
                                 'sender_chat': {'required': True, 'type': 'Chat'},
                                 'type': {'constant': 'chat', 'required': True, 'type': 'String'}},
           'MessageOriginHiddenUser': {'date': {'required': True, 'type': 'Integer'},
                                       'sender_user_name': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'hidden_user',
                                                'required': True,
                                                'type': 'String'}},
           'MessageOriginUser': {'date': {'required': True, 'type': 'Integer'},
                                 'sender_user': {'required': True, 'type': 'User'},
                                 'type': {'constant': 'user', 'required': True, 'type': 'String'}},
           'MessageReactionCountUpdated': {'chat': {'required': True, 'type': 'Chat'},
                                           'date': {'required': True, 'type': 'Integer'},
                                           'message_id': {'required': True, 'type': 'Integer'},
                                           'reactions': {'required': True, 'type': 'Array of ReactionCount'}},
           'MessageReactionUpdated': {'actor_chat': {'required': False, 'type': 'Chat'},
                                      'chat': {'required': True, 'type': 'Chat'},
                                      'date': {'required': True, 'type': 'Integer'},
                                      'message_id': {'required': True, 'type': 'Integer'},
                                      'new_reaction': {'required': True, 'type': 'Array of ReactionType'},
                                      'old_reaction': {'required': True, 'type': 'Array of ReactionType'},
                                      'user': {'required': False, 'type': 'User'}},
           'OrderInfo': {'email': {'required': False, 'type': 'String'},
                         'name': {'required': False, 'type': 'String'},
                         'phone_number': {'required': False, 'type': 'String'},
                         'shipping_address': {'required': False, 'type': 'ShippingAddress'}},
           'OwnedGift': {},
           'OwnedGiftRegular': {'can_be_upgraded': {'required': False, 'type': 'True'},
                                'convert_star_count': {'required': False, 'type': 'Integer'},
                                'entities': {'required': False, 'type': 'Array of MessageEntity'},
                                'gift': {'required': True, 'type': 'Gift'},
                                'is_private': {'required': False, 'type': 'True'},
                                'is_saved': {'required': False, 'type': 'True'},
                                'is_upgrade_separate': {'required': False, 'type': 'True'},
                                'owned_gift_id': {'required': False, 'type': 'String'},
                                'prepaid_upgrade_star_count': {'required': False, 'type': 'Integer'},
                                'send_date': {'required': True, 'type': 'Integer'},
                                'sender_user': {'required': False, 'type': 'User'},
                                'text': {'required': False, 'type': 'String'},
                                'type': {'constant': 'regular', 'required': True, 'type': 'String'},
                                'unique_gift_number': {'required': False, 'type': 'Integer'},
                                'was_refunded': {'required': False, 'type': 'True'}},
           'OwnedGiftUnique': {'can_be_transferred': {'required': False, 'type': 'True'},
                               'gift': {'required': True, 'type': 'UniqueGift'},
                               'is_saved': {'required': False, 'type': 'True'},
                               'next_transfer_date': {'required': False, 'type': 'Integer'},
                               'owned_gift_id': {'required': False, 'type': 'String'},
                               'send_date': {'required': True, 'type': 'Integer'},
                               'sender_user': {'required': False, 'type': 'User'},
                               'transfer_star_count': {'required': False, 'type': 'Integer'},
                               'type': {'constant': 'unique', 'required': True, 'type': 'String'}},
           'OwnedGifts': {'gifts': {'required': True, 'type': 'Array of OwnedGift'},
                          'next_offset': {'required': False, 'type': 'String'},
                          'total_count': {'required': True, 'type': 'Integer'}},
           'PaidMedia': {},
           'PaidMediaInfo': {'paid_media': {'required': True, 'type': 'Array of PaidMedia'},
                             'star_count': {'required': True, 'type': 'Integer'}},
           'PaidMediaLivePhoto': {'live_photo': {'required': True, 'type': 'LivePhoto'},
                                  'type': {'constant': 'live_photo', 'required': True, 'type': 'String'}},
           'PaidMediaPhoto': {'photo': {'required': True, 'type': 'Array of PhotoSize'},
                              'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'PaidMediaPreview': {'duration': {'required': False, 'type': 'Integer'},
                                'height': {'required': False, 'type': 'Integer'},
                                'type': {'constant': 'preview', 'required': True, 'type': 'String'},
                                'width': {'required': False, 'type': 'Integer'}},
           'PaidMediaPurchased': {'from': {'required': True, 'type': 'User'},
                                  'paid_media_payload': {'required': True, 'type': 'String'}},
           'PaidMediaVideo': {'type': {'constant': 'video', 'required': True, 'type': 'String'},
                              'video': {'required': True, 'type': 'Video'}},
           'PaidMessagePriceChanged': {'paid_message_star_count': {'required': True, 'type': 'Integer'}},
           'PassportData': {'credentials': {'required': True, 'type': 'EncryptedCredentials'},
                            'data': {'required': True, 'type': 'Array of EncryptedPassportElement'}},
           'PassportElementError': {},
           'PassportElementErrorDataField': {'data_hash': {'required': True, 'type': 'String'},
                                             'field_name': {'required': True, 'type': 'String'},
                                             'message': {'required': True, 'type': 'String'},
                                             'source': {'required': True, 'type': 'String'},
                                             'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorFile': {'file_hash': {'required': True, 'type': 'String'},
                                        'message': {'required': True, 'type': 'String'},
                                        'source': {'required': True, 'type': 'String'},
                                        'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorFiles': {'file_hashes': {'required': True, 'type': 'Array of String'},
                                         'message': {'required': True, 'type': 'String'},
                                         'source': {'required': True, 'type': 'String'},
                                         'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorFrontSide': {'file_hash': {'required': True, 'type': 'String'},
                                             'message': {'required': True, 'type': 'String'},
                                             'source': {'required': True, 'type': 'String'},
                                             'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorReverseSide': {'file_hash': {'required': True, 'type': 'String'},
                                               'message': {'required': True, 'type': 'String'},
                                               'source': {'required': True, 'type': 'String'},
                                               'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorSelfie': {'file_hash': {'required': True, 'type': 'String'},
                                          'message': {'required': True, 'type': 'String'},
                                          'source': {'required': True, 'type': 'String'},
                                          'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorTranslationFile': {'file_hash': {'required': True, 'type': 'String'},
                                                   'message': {'required': True, 'type': 'String'},
                                                   'source': {'required': True, 'type': 'String'},
                                                   'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorTranslationFiles': {'file_hashes': {'required': True,
                                                                    'type': 'Array of String'},
                                                    'message': {'required': True, 'type': 'String'},
                                                    'source': {'required': True, 'type': 'String'},
                                                    'type': {'required': True, 'type': 'String'}},
           'PassportElementErrorUnspecified': {'element_hash': {'required': True, 'type': 'String'},
                                               'message': {'required': True, 'type': 'String'},
                                               'source': {'required': True, 'type': 'String'},
                                               'type': {'required': True, 'type': 'String'}},
           'PassportFile': {'file_date': {'required': True, 'type': 'Integer'},
                            'file_id': {'required': True, 'type': 'String'},
                            'file_size': {'required': True, 'type': 'Integer'},
                            'file_unique_id': {'required': True, 'type': 'String'}},
           'PhotoSize': {'file_id': {'required': True, 'type': 'String'},
                         'file_size': {'required': False, 'type': 'Integer'},
                         'file_unique_id': {'required': True, 'type': 'String'},
                         'height': {'required': True, 'type': 'Integer'},
                         'width': {'required': True, 'type': 'Integer'}},
           'Poll': {'allows_multiple_answers': {'required': True, 'type': 'Boolean'},
                    'allows_revoting': {'required': True, 'type': 'Boolean'},
                    'close_date': {'required': False, 'type': 'Integer'},
                    'correct_option_ids': {'required': False, 'type': 'Array of Integer'},
                    'country_codes': {'required': False, 'type': 'Array of String'},
                    'description': {'required': False, 'type': 'String'},
                    'description_entities': {'required': False, 'type': 'Array of MessageEntity'},
                    'explanation': {'required': False, 'type': 'String'},
                    'explanation_entities': {'required': False, 'type': 'Array of MessageEntity'},
                    'explanation_media': {'required': False, 'type': 'PollMedia'},
                    'id': {'required': True, 'type': 'String'},
                    'is_anonymous': {'required': True, 'type': 'Boolean'},
                    'is_closed': {'required': True, 'type': 'Boolean'},
                    'media': {'required': False, 'type': 'PollMedia'},
                    'members_only': {'required': True, 'type': 'Boolean'},
                    'open_period': {'required': False, 'type': 'Integer'},
                    'options': {'required': True, 'type': 'Array of PollOption'},
                    'question': {'required': True, 'type': 'String'},
                    'question_entities': {'required': False, 'type': 'Array of MessageEntity'},
                    'total_voter_count': {'required': True, 'type': 'Integer'},
                    'type': {'required': True, 'type': 'String'}},
           'PollAnswer': {'option_ids': {'required': True, 'type': 'Array of Integer'},
                          'option_persistent_ids': {'required': True, 'type': 'Array of String'},
                          'poll_id': {'required': True, 'type': 'String'},
                          'user': {'required': False, 'type': 'User'},
                          'voter_chat': {'required': False, 'type': 'Chat'}},
           'PollMedia': {'animation': {'required': False, 'type': 'Animation'},
                         'audio': {'required': False, 'type': 'Audio'},
                         'document': {'required': False, 'type': 'Document'},
                         'link': {'required': False, 'type': 'Link'},
                         'live_photo': {'required': False, 'type': 'LivePhoto'},
                         'location': {'required': False, 'type': 'Location'},
                         'photo': {'required': False, 'type': 'Array of PhotoSize'},
                         'sticker': {'required': False, 'type': 'Sticker'},
                         'venue': {'required': False, 'type': 'Venue'},
                         'video': {'required': False, 'type': 'Video'}},
           'PollOption': {'added_by_chat': {'required': False, 'type': 'Chat'},
                          'added_by_user': {'required': False, 'type': 'User'},
                          'addition_date': {'required': False, 'type': 'Integer'},
                          'media': {'required': False, 'type': 'PollMedia'},
                          'persistent_id': {'required': True, 'type': 'String'},
                          'text': {'required': True, 'type': 'String'},
                          'text_entities': {'required': False, 'type': 'Array of MessageEntity'},
                          'voter_count': {'required': True, 'type': 'Integer'}},
           'PollOptionAdded': {'option_persistent_id': {'required': True, 'type': 'String'},
                               'option_text': {'required': True, 'type': 'String'},
                               'option_text_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'poll_message': {'required': False, 'type': 'MaybeInaccessibleMessage'}},
           'PollOptionDeleted': {'option_persistent_id': {'required': True, 'type': 'String'},
                                 'option_text': {'required': True, 'type': 'String'},
                                 'option_text_entities': {'required': False,
                                                          'type': 'Array of MessageEntity'},
                                 'poll_message': {'required': False, 'type': 'MaybeInaccessibleMessage'}},
           'PreCheckoutQuery': {'currency': {'required': True, 'type': 'String'},
                                'from': {'required': True, 'type': 'User'},
                                'id': {'required': True, 'type': 'String'},
                                'invoice_payload': {'required': True, 'type': 'String'},
                                'order_info': {'required': False, 'type': 'OrderInfo'},
                                'shipping_option_id': {'required': False, 'type': 'String'},
                                'total_amount': {'required': True, 'type': 'Integer'}},
           'PreparedInlineMessage': {'expiration_date': {'required': True, 'type': 'Integer'},
                                     'id': {'required': True, 'type': 'String'}},
           'PreparedKeyboardButton': {'id': {'required': True, 'type': 'String'}},
           'ProximityAlertTriggered': {'distance': {'required': True, 'type': 'Integer'},
                                       'traveler': {'required': True, 'type': 'User'},
                                       'watcher': {'required': True, 'type': 'User'}},
           'ReactionCount': {'total_count': {'required': True, 'type': 'Integer'},
                             'type': {'required': True, 'type': 'ReactionType'}},
           'ReactionType': {},
           'ReactionTypeCustomEmoji': {'custom_emoji_id': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'custom_emoji',
                                                'required': True,
                                                'type': 'String'}},
           'ReactionTypeEmoji': {'emoji': {'required': True, 'type': 'String'},
                                 'type': {'constant': 'emoji', 'required': True, 'type': 'String'}},
           'ReactionTypePaid': {'type': {'constant': 'paid', 'required': True, 'type': 'String'}},
           'RefundedPayment': {'currency': {'required': True, 'type': 'String'},
                               'invoice_payload': {'required': True, 'type': 'String'},
                               'provider_payment_charge_id': {'required': False, 'type': 'String'},
                               'telegram_payment_charge_id': {'required': True, 'type': 'String'},
                               'total_amount': {'required': True, 'type': 'Integer'}},
           'ReplyKeyboardMarkup': {'force_reply': {'required': False, 'type': 'Boolean'},
                                   'input_field_placeholder': {'required': False, 'type': 'String'},
                                   'is_persistent': {'required': False, 'type': 'Boolean'},
                                   'keyboard': {'required': True, 'type': 'Array of Array of KeyboardButton'},
                                   'one_time_keyboard': {'required': False, 'type': 'Boolean'},
                                   'resize_keyboard': {'required': False, 'type': 'Boolean'},
                                   'selective': {'required': False, 'type': 'Boolean'}},
           'ReplyKeyboardRemove': {'remove_keyboard': {'required': True, 'type': 'True'},
                                   'selective': {'required': False, 'type': 'Boolean'}},
           'ReplyParameters': {'allow_sending_without_reply': {'required': False, 'type': 'Boolean'},
                               'chat_id': {'required': False, 'type': 'Integer or String'},
                               'checklist_task_id': {'required': False, 'type': 'Integer'},
                               'ephemeral_message_id': {'required': False, 'type': 'Integer'},
                               'message_id': {'required': False, 'type': 'Integer'},
                               'poll_option_id': {'required': False, 'type': 'String'},
                               'quote': {'required': False, 'type': 'String'},
                               'quote_entities': {'required': False, 'type': 'Array of MessageEntity'},
                               'quote_parse_mode': {'required': False, 'type': 'String'},
                               'quote_position': {'required': False, 'type': 'Integer'}},
           'ResponseParameters': {'migrate_to_chat_id': {'required': False, 'type': 'Integer'},
                                  'retry_after': {'required': False, 'type': 'Integer'}},
           'RevenueWithdrawalState': {},
           'RevenueWithdrawalStateFailed': {'type': {'constant': 'failed',
                                                     'required': True,
                                                     'type': 'String'}},
           'RevenueWithdrawalStatePending': {'type': {'constant': 'pending',
                                                      'required': True,
                                                      'type': 'String'}},
           'RevenueWithdrawalStateSucceeded': {'date': {'required': True, 'type': 'Integer'},
                                               'type': {'constant': 'succeeded',
                                                        'required': True,
                                                        'type': 'String'},
                                               'url': {'required': True, 'type': 'String'}},
           'RichBlock': {},
           'RichBlockAnchor': {'name': {'required': True, 'type': 'String'},
                               'type': {'constant': 'anchor', 'required': True, 'type': 'String'}},
           'RichBlockAnimation': {'animation': {'required': True, 'type': 'Animation'},
                                  'caption': {'required': False, 'type': 'RichBlockCaption'},
                                  'has_spoiler': {'required': False, 'type': 'True'},
                                  'type': {'constant': 'animation', 'required': True, 'type': 'String'}},
           'RichBlockAudio': {'audio': {'required': True, 'type': 'Audio'},
                              'caption': {'required': False, 'type': 'RichBlockCaption'},
                              'type': {'constant': 'audio', 'required': True, 'type': 'String'}},
           'RichBlockBlockQuotation': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                                       'credit': {'required': False, 'type': 'RichText'},
                                       'type': {'constant': 'blockquote',
                                                'required': True,
                                                'type': 'String'}},
           'RichBlockButtons': {'align': {'required': False, 'type': 'String'},
                                'buttons': {'required': True, 'type': 'Array of RichMessageButton'},
                                'type': {'constant': 'buttons', 'required': True, 'type': 'String'}},
           'RichBlockCaption': {'credit': {'required': False, 'type': 'RichText'},
                                'text': {'required': True, 'type': 'RichText'}},
           'RichBlockCollage': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                                'caption': {'required': False, 'type': 'RichBlockCaption'},
                                'type': {'constant': 'collage', 'required': True, 'type': 'String'}},
           'RichBlockDetails': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                                'is_open': {'required': False, 'type': 'True'},
                                'summary': {'required': True, 'type': 'RichText'},
                                'type': {'constant': 'details', 'required': True, 'type': 'String'}},
           'RichBlockDivider': {'type': {'constant': 'divider', 'required': True, 'type': 'String'}},
           'RichBlockDocument': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                 'document': {'required': True, 'type': 'Document'},
                                 'type': {'constant': 'document', 'required': True, 'type': 'String'}},
           'RichBlockExpandableBlockQuotation': {'credit': {'required': False, 'type': 'RichText'},
                                                 'text': {'required': True, 'type': 'RichText'},
                                                 'type': {'constant': 'expandable_blockquote',
                                                          'required': True,
                                                          'type': 'String'}},
           'RichBlockFooter': {'text': {'required': True, 'type': 'RichText'},
                               'type': {'constant': 'footer', 'required': True, 'type': 'String'}},
           'RichBlockList': {'items': {'required': True, 'type': 'Array of RichBlockListItem'},
                             'type': {'constant': 'list', 'required': True, 'type': 'String'}},
           'RichBlockListItem': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                                 'has_checkbox': {'required': False, 'type': 'True'},
                                 'is_checked': {'required': False, 'type': 'True'},
                                 'label': {'required': True, 'type': 'String'},
                                 'type': {'constant': 'one', 'required': False, 'type': 'String'},
                                 'value': {'required': False, 'type': 'Integer'}},
           'RichBlockMap': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                            'height': {'required': True, 'type': 'Integer'},
                            'location': {'required': True, 'type': 'Location'},
                            'type': {'constant': 'map', 'required': True, 'type': 'String'},
                            'width': {'required': True, 'type': 'Integer'},
                            'zoom': {'required': True, 'type': 'Integer'}},
           'RichBlockMathematicalExpression': {'expression': {'required': True, 'type': 'String'},
                                               'type': {'constant': 'mathematical_expression',
                                                        'required': True,
                                                        'type': 'String'}},
           'RichBlockParagraph': {'text': {'required': True, 'type': 'RichText'},
                                  'type': {'constant': 'paragraph', 'required': True, 'type': 'String'}},
           'RichBlockPhoto': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                              'has_spoiler': {'required': False, 'type': 'True'},
                              'photo': {'required': True, 'type': 'Array of PhotoSize'},
                              'type': {'constant': 'photo', 'required': True, 'type': 'String'}},
           'RichBlockPreformatted': {'language': {'required': False, 'type': 'String'},
                                     'text': {'required': True, 'type': 'RichText'},
                                     'type': {'constant': 'pre', 'required': True, 'type': 'String'}},
           'RichBlockPullQuotation': {'credit': {'required': False, 'type': 'RichText'},
                                      'text': {'required': True, 'type': 'RichText'},
                                      'type': {'constant': 'pullquote', 'required': True, 'type': 'String'}},
           'RichBlockSectionHeading': {'size': {'required': True, 'type': 'Integer'},
                                       'text': {'required': True, 'type': 'RichText'},
                                       'type': {'constant': 'heading', 'required': True, 'type': 'String'}},
           'RichBlockSlideshow': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                                  'caption': {'required': False, 'type': 'RichBlockCaption'},
                                  'type': {'constant': 'slideshow', 'required': True, 'type': 'String'}},
           'RichBlockTable': {'caption': {'required': False, 'type': 'RichText'},
                              'cells': {'required': True, 'type': 'Array of Array of RichBlockTableCell'},
                              'is_bordered': {'required': False, 'type': 'True'},
                              'is_compact': {'required': False, 'type': 'True'},
                              'is_striped': {'required': False, 'type': 'True'},
                              'type': {'constant': 'table', 'required': True, 'type': 'String'}},
           'RichBlockTableCell': {'align': {'required': True, 'type': 'String'},
                                  'colspan': {'required': False, 'type': 'Integer'},
                                  'is_header': {'required': False, 'type': 'True'},
                                  'rowspan': {'required': False, 'type': 'Integer'},
                                  'text': {'required': False, 'type': 'RichText'},
                                  'valign': {'required': True, 'type': 'String'}},
           'RichBlockThinking': {'text': {'required': True, 'type': 'RichText'},
                                 'type': {'constant': 'thinking', 'required': True, 'type': 'String'}},
           'RichBlockVideo': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                              'has_spoiler': {'required': False, 'type': 'True'},
                              'type': {'constant': 'video', 'required': True, 'type': 'String'},
                              'video': {'required': True, 'type': 'Video'}},
           'RichBlockVoiceNote': {'caption': {'required': False, 'type': 'RichBlockCaption'},
                                  'type': {'constant': 'voice_note', 'required': True, 'type': 'String'},
                                  'voice_note': {'required': True, 'type': 'Voice'}},
           'RichMessage': {'blocks': {'required': True, 'type': 'Array of RichBlock'},
                           'is_rtl': {'required': False, 'type': 'Boolean'}},
           'RichMessageButton': {'callback_data': {'required': False, 'type': 'String'},
                                 'copy_text': {'required': False, 'type': 'CopyTextButton'},
                                 'disabled': {'required': False, 'type': 'DisabledButton'},
                                 'login_url': {'required': False, 'type': 'LoginUrl'},
                                 'style': {'required': False, 'type': 'String'},
                                 'switch_inline_query': {'required': False, 'type': 'String'},
                                 'switch_inline_query_chosen_chat': {'required': False,
                                                                     'type': 'SwitchInlineQueryChosenChat'},
                                 'switch_inline_query_current_chat': {'required': False, 'type': 'String'},
                                 'text': {'required': True, 'type': 'RichText'},
                                 'url': {'required': False, 'type': 'String'},
                                 'web_app': {'required': False, 'type': 'WebAppInfo'}},
           'RichText': {},
           'RichTextAnchor': {'name': {'required': True, 'type': 'String'},
                              'type': {'constant': 'anchor', 'required': True, 'type': 'String'}},
           'RichTextAnchorLink': {'anchor_name': {'required': True, 'type': 'String'},
                                  'text': {'required': True, 'type': 'RichText'},
                                  'type': {'constant': 'anchor_link', 'required': True, 'type': 'String'}},
           'RichTextBankCardNumber': {'bank_card_number': {'required': True, 'type': 'String'},
                                      'text': {'required': True, 'type': 'RichText'},
                                      'type': {'constant': 'bank_card_number',
                                               'required': True,
                                               'type': 'String'}},
           'RichTextBold': {'text': {'required': True, 'type': 'RichText'},
                            'type': {'constant': 'bold', 'required': True, 'type': 'String'}},
           'RichTextBotCommand': {'bot_command': {'required': True, 'type': 'String'},
                                  'text': {'required': True, 'type': 'RichText'},
                                  'type': {'constant': 'bot_command', 'required': True, 'type': 'String'}},
           'RichTextButton': {'button': {'required': True, 'type': 'RichMessageButton'},
                              'type': {'constant': 'button', 'required': True, 'type': 'String'}},
           'RichTextCashtag': {'cashtag': {'required': True, 'type': 'String'},
                               'text': {'required': True, 'type': 'RichText'},
                               'type': {'constant': 'cashtag', 'required': True, 'type': 'String'}},
           'RichTextCode': {'text': {'required': True, 'type': 'RichText'},
                            'type': {'constant': 'code', 'required': True, 'type': 'String'}},
           'RichTextCustomEmoji': {'alternative_text': {'required': True, 'type': 'String'},
                                   'custom_emoji_id': {'required': True, 'type': 'String'},
                                   'type': {'constant': 'custom_emoji', 'required': True, 'type': 'String'}},
           'RichTextDateTime': {'date_time_format': {'required': True, 'type': 'String'},
                                'text': {'required': True, 'type': 'RichText'},
                                'type': {'constant': 'date_time', 'required': True, 'type': 'String'},
                                'unix_time': {'required': True, 'type': 'Integer'}},
           'RichTextEmailAddress': {'email_address': {'required': True, 'type': 'String'},
                                    'text': {'required': True, 'type': 'RichText'},
                                    'type': {'constant': 'email_address',
                                             'required': True,
                                             'type': 'String'}},
           'RichTextHashtag': {'hashtag': {'required': True, 'type': 'String'},
                               'text': {'required': True, 'type': 'RichText'},
                               'type': {'constant': 'hashtag', 'required': True, 'type': 'String'}},
           'RichTextItalic': {'text': {'required': True, 'type': 'RichText'},
                              'type': {'constant': 'italic', 'required': True, 'type': 'String'}},
           'RichTextMarked': {'text': {'required': True, 'type': 'RichText'},
                              'type': {'constant': 'marked', 'required': True, 'type': 'String'}},
           'RichTextMathematicalExpression': {'expression': {'required': True, 'type': 'String'},
                                              'type': {'constant': 'mathematical_expression',
                                                       'required': True,
                                                       'type': 'String'}},
           'RichTextMention': {'text': {'required': True, 'type': 'RichText'},
                               'type': {'constant': 'mention', 'required': True, 'type': 'String'},
                               'username': {'required': True, 'type': 'String'}},
           'RichTextPhoneNumber': {'phone_number': {'required': True, 'type': 'String'},
                                   'text': {'required': True, 'type': 'RichText'},
                                   'type': {'constant': 'phone_number', 'required': True, 'type': 'String'}},
           'RichTextReference': {'name': {'required': True, 'type': 'String'},
                                 'text': {'required': True, 'type': 'RichText'},
                                 'type': {'constant': 'reference', 'required': True, 'type': 'String'}},
           'RichTextReferenceLink': {'reference_name': {'required': True, 'type': 'String'},
                                     'text': {'required': True, 'type': 'RichText'},
                                     'type': {'constant': 'reference_link',
                                              'required': True,
                                              'type': 'String'}},
           'RichTextSpoiler': {'text': {'required': True, 'type': 'RichText'},
                               'type': {'constant': 'spoiler', 'required': True, 'type': 'String'}},
           'RichTextStrikethrough': {'text': {'required': True, 'type': 'RichText'},
                                     'type': {'constant': 'strikethrough',
                                              'required': True,
                                              'type': 'String'}},
           'RichTextSubscript': {'text': {'required': True, 'type': 'RichText'},
                                 'type': {'constant': 'subscript', 'required': True, 'type': 'String'}},
           'RichTextSuperscript': {'text': {'required': True, 'type': 'RichText'},
                                   'type': {'constant': 'superscript', 'required': True, 'type': 'String'}},
           'RichTextTextMention': {'text': {'required': True, 'type': 'RichText'},
                                   'type': {'constant': 'text_mention', 'required': True, 'type': 'String'},
                                   'user': {'required': True, 'type': 'User'}},
           'RichTextUnderline': {'text': {'required': True, 'type': 'RichText'},
                                 'type': {'constant': 'underline', 'required': True, 'type': 'String'}},
           'RichTextUrl': {'text': {'required': True, 'type': 'RichText'},
                           'type': {'constant': 'url', 'required': True, 'type': 'String'},
                           'url': {'required': True, 'type': 'String'}},
           'SentGuestMessage': {'inline_message_id': {'required': True, 'type': 'String'}},
           'SentWebAppMessage': {'inline_message_id': {'required': False, 'type': 'String'}},
           'SharedUser': {'first_name': {'required': False, 'type': 'String'},
                          'last_name': {'required': False, 'type': 'String'},
                          'photo': {'required': False, 'type': 'Array of PhotoSize'},
                          'user_id': {'required': True, 'type': 'Integer'},
                          'username': {'required': False, 'type': 'String'}},
           'ShippingAddress': {'city': {'required': True, 'type': 'String'},
                               'country_code': {'required': True, 'type': 'String'},
                               'post_code': {'required': True, 'type': 'String'},
                               'state': {'required': True, 'type': 'String'},
                               'street_line1': {'required': True, 'type': 'String'},
                               'street_line2': {'required': True, 'type': 'String'}},
           'ShippingOption': {'id': {'required': True, 'type': 'String'},
                              'prices': {'required': True, 'type': 'Array of LabeledPrice'},
                              'title': {'required': True, 'type': 'String'}},
           'ShippingQuery': {'from': {'required': True, 'type': 'User'},
                             'id': {'required': True, 'type': 'String'},
                             'invoice_payload': {'required': True, 'type': 'String'},
                             'shipping_address': {'required': True, 'type': 'ShippingAddress'}},
           'StarAmount': {'amount': {'required': True, 'type': 'Integer'},
                          'nanostar_amount': {'required': False, 'type': 'Integer'}},
           'StarTransaction': {'amount': {'required': True, 'type': 'Integer'},
                               'date': {'required': True, 'type': 'Integer'},
                               'id': {'required': True, 'type': 'String'},
                               'nanostar_amount': {'required': False, 'type': 'Integer'},
                               'receiver': {'required': False, 'type': 'TransactionPartner'},
                               'source': {'required': False, 'type': 'TransactionPartner'}},
           'StarTransactions': {'transactions': {'required': True, 'type': 'Array of StarTransaction'}},
           'Sticker': {'custom_emoji_id': {'required': False, 'type': 'String'},
                       'emoji': {'required': False, 'type': 'String'},
                       'file_id': {'required': True, 'type': 'String'},
                       'file_size': {'required': False, 'type': 'Integer'},
                       'file_unique_id': {'required': True, 'type': 'String'},
                       'height': {'required': True, 'type': 'Integer'},
                       'is_animated': {'required': True, 'type': 'Boolean'},
                       'is_video': {'required': True, 'type': 'Boolean'},
                       'mask_position': {'required': False, 'type': 'MaskPosition'},
                       'needs_repainting': {'required': False, 'type': 'True'},
                       'premium_animation': {'required': False, 'type': 'File'},
                       'set_name': {'required': False, 'type': 'String'},
                       'thumbnail': {'required': False, 'type': 'PhotoSize'},
                       'type': {'required': True, 'type': 'String'},
                       'width': {'required': True, 'type': 'Integer'}},
           'StickerSet': {'name': {'required': True, 'type': 'String'},
                          'sticker_type': {'required': True, 'type': 'String'},
                          'stickers': {'required': True, 'type': 'Array of Sticker'},
                          'thumbnail': {'required': False, 'type': 'PhotoSize'},
                          'title': {'required': True, 'type': 'String'}},
           'Story': {'chat': {'required': True, 'type': 'Chat'}, 'id': {'required': True, 'type': 'Integer'}},
           'StoryArea': {'position': {'required': True, 'type': 'StoryAreaPosition'},
                         'type': {'required': True, 'type': 'StoryAreaType'}},
           'StoryAreaPosition': {'corner_radius_percentage': {'required': True, 'type': 'Float'},
                                 'height_percentage': {'required': True, 'type': 'Float'},
                                 'rotation_angle': {'required': True, 'type': 'Float'},
                                 'width_percentage': {'required': True, 'type': 'Float'},
                                 'x_percentage': {'required': True, 'type': 'Float'},
                                 'y_percentage': {'required': True, 'type': 'Float'}},
           'StoryAreaType': {},
           'StoryAreaTypeLink': {'type': {'constant': 'link', 'required': True, 'type': 'String'},
                                 'url': {'required': True, 'type': 'String'}},
           'StoryAreaTypeLocation': {'address': {'required': False, 'type': 'LocationAddress'},
                                     'latitude': {'required': True, 'type': 'Float'},
                                     'longitude': {'required': True, 'type': 'Float'},
                                     'type': {'constant': 'location', 'required': True, 'type': 'String'}},
           'StoryAreaTypeSuggestedReaction': {'is_dark': {'required': False, 'type': 'Boolean'},
                                              'is_flipped': {'required': False, 'type': 'Boolean'},
                                              'reaction_type': {'required': True, 'type': 'ReactionType'},
                                              'type': {'constant': 'suggested_reaction',
                                                       'required': True,
                                                       'type': 'String'}},
           'StoryAreaTypeUniqueGift': {'name': {'required': True, 'type': 'String'},
                                       'type': {'constant': 'unique_gift',
                                                'required': True,
                                                'type': 'String'}},
           'StoryAreaTypeWeather': {'background_color': {'required': True, 'type': 'Integer'},
                                    'emoji': {'required': True, 'type': 'String'},
                                    'temperature': {'required': True, 'type': 'Float'},
                                    'type': {'constant': 'weather', 'required': True, 'type': 'String'}},
           'SuccessfulPayment': {'currency': {'required': True, 'type': 'String'},
                                 'invoice_payload': {'required': True, 'type': 'String'},
                                 'is_first_recurring': {'required': False, 'type': 'True'},
                                 'is_recurring': {'required': False, 'type': 'True'},
                                 'order_info': {'required': False, 'type': 'OrderInfo'},
                                 'provider_payment_charge_id': {'required': True, 'type': 'String'},
                                 'shipping_option_id': {'required': False, 'type': 'String'},
                                 'subscription_expiration_date': {'required': False, 'type': 'Integer'},
                                 'telegram_payment_charge_id': {'required': True, 'type': 'String'},
                                 'total_amount': {'required': True, 'type': 'Integer'}},
           'SuggestedPostApprovalFailed': {'price': {'required': True, 'type': 'SuggestedPostPrice'},
                                           'suggested_post_message': {'required': False, 'type': 'Message'}},
           'SuggestedPostApproved': {'price': {'required': False, 'type': 'SuggestedPostPrice'},
                                     'send_date': {'required': True, 'type': 'Integer'},
                                     'suggested_post_message': {'required': False, 'type': 'Message'}},
           'SuggestedPostDeclined': {'comment': {'required': False, 'type': 'String'},
                                     'suggested_post_message': {'required': False, 'type': 'Message'}},
           'SuggestedPostInfo': {'price': {'required': False, 'type': 'SuggestedPostPrice'},
                                 'send_date': {'required': False, 'type': 'Integer'},
                                 'state': {'required': True, 'type': 'String'}},
           'SuggestedPostPaid': {'amount': {'required': False, 'type': 'Integer'},
                                 'currency': {'required': True, 'type': 'String'},
                                 'star_amount': {'required': False, 'type': 'StarAmount'},
                                 'suggested_post_message': {'required': False, 'type': 'Message'}},
           'SuggestedPostParameters': {'price': {'required': False, 'type': 'SuggestedPostPrice'},
                                       'send_date': {'required': False, 'type': 'Integer'}},
           'SuggestedPostPrice': {'amount': {'required': True, 'type': 'Integer'},
                                  'currency': {'required': True, 'type': 'String'}},
           'SuggestedPostRefunded': {'reason': {'required': True, 'type': 'String'},
                                     'suggested_post_message': {'required': False, 'type': 'Message'}},
           'SwitchInlineQueryChosenChat': {'allow_bot_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_channel_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_group_chats': {'required': False, 'type': 'Boolean'},
                                           'allow_user_chats': {'required': False, 'type': 'Boolean'},
                                           'query': {'required': False, 'type': 'String'}},
           'TextQuote': {'entities': {'required': False, 'type': 'Array of MessageEntity'},
                         'is_manual': {'required': False, 'type': 'True'},
                         'position': {'required': True, 'type': 'Integer'},
                         'text': {'required': True, 'type': 'String'}},
           'TransactionPartner': {},
           'TransactionPartnerAffiliateProgram': {'commission_per_mille': {'required': True,
                                                                           'type': 'Integer'},
                                                  'sponsor_user': {'required': False, 'type': 'User'},
                                                  'type': {'constant': 'affiliate_program',
                                                           'required': True,
                                                           'type': 'String'}},
           'TransactionPartnerChat': {'chat': {'required': True, 'type': 'Chat'},
                                      'gift': {'required': False, 'type': 'Gift'},
                                      'type': {'constant': 'chat', 'required': True, 'type': 'String'}},
           'TransactionPartnerFragment': {'type': {'constant': 'fragment',
                                                   'required': True,
                                                   'type': 'String'},
                                          'withdrawal_state': {'required': False,
                                                               'type': 'RevenueWithdrawalState'}},
           'TransactionPartnerOther': {'type': {'constant': 'other', 'required': True, 'type': 'String'}},
           'TransactionPartnerTelegramAds': {'type': {'constant': 'telegram_ads',
                                                      'required': True,
                                                      'type': 'String'}},
           'TransactionPartnerTelegramApi': {'request_count': {'required': True, 'type': 'Integer'},
                                             'type': {'constant': 'telegram_api',
                                                      'required': True,
                                                      'type': 'String'}},
           'TransactionPartnerUser': {'affiliate': {'required': False, 'type': 'AffiliateInfo'},
                                      'gift': {'required': False, 'type': 'Gift'},
                                      'invoice_payload': {'required': False, 'type': 'String'},
                                      'paid_media': {'required': False, 'type': 'Array of PaidMedia'},
                                      'paid_media_payload': {'required': False, 'type': 'String'},
                                      'premium_subscription_duration': {'required': False, 'type': 'Integer'},
                                      'subscription_period': {'required': False, 'type': 'Integer'},
                                      'transaction_type': {'required': True, 'type': 'String'},
                                      'type': {'constant': 'user', 'required': True, 'type': 'String'},
                                      'user': {'required': True, 'type': 'User'}},
           'UniqueGift': {'backdrop': {'required': True, 'type': 'UniqueGiftBackdrop'},
                          'base_name': {'required': True, 'type': 'String'},
                          'colors': {'required': False, 'type': 'UniqueGiftColors'},
                          'gift_id': {'required': True, 'type': 'String'},
                          'is_burned': {'required': False, 'type': 'True'},
                          'is_from_blockchain': {'required': False, 'type': 'True'},
                          'is_premium': {'required': False, 'type': 'True'},
                          'model': {'required': True, 'type': 'UniqueGiftModel'},
                          'name': {'required': True, 'type': 'String'},
                          'number': {'required': True, 'type': 'Integer'},
                          'publisher_chat': {'required': False, 'type': 'Chat'},
                          'symbol': {'required': True, 'type': 'UniqueGiftSymbol'}},
           'UniqueGiftBackdrop': {'colors': {'required': True, 'type': 'UniqueGiftBackdropColors'},
                                  'name': {'required': True, 'type': 'String'},
                                  'rarity_per_mille': {'required': True, 'type': 'Integer'}},
           'UniqueGiftBackdropColors': {'center_color': {'required': True, 'type': 'Integer'},
                                        'edge_color': {'required': True, 'type': 'Integer'},
                                        'symbol_color': {'required': True, 'type': 'Integer'},
                                        'text_color': {'required': True, 'type': 'Integer'}},
           'UniqueGiftColors': {'dark_theme_main_color': {'required': True, 'type': 'Integer'},
                                'dark_theme_other_colors': {'required': True, 'type': 'Array of Integer'},
                                'light_theme_main_color': {'required': True, 'type': 'Integer'},
                                'light_theme_other_colors': {'required': True, 'type': 'Array of Integer'},
                                'model_custom_emoji_id': {'required': True, 'type': 'String'},
                                'symbol_custom_emoji_id': {'required': True, 'type': 'String'}},
           'UniqueGiftInfo': {'entities': {'required': False, 'type': 'Array of MessageEntity'},
                              'gift': {'required': True, 'type': 'UniqueGift'},
                              'is_private': {'required': False, 'type': 'True'},
                              'last_resale_amount': {'required': False, 'type': 'Integer'},
                              'last_resale_currency': {'required': False, 'type': 'String'},
                              'next_transfer_date': {'required': False, 'type': 'Integer'},
                              'origin': {'required': True, 'type': 'String'},
                              'owned_gift_id': {'required': False, 'type': 'String'},
                              'text': {'required': False, 'type': 'String'},
                              'transfer_star_count': {'required': False, 'type': 'Integer'}},
           'UniqueGiftModel': {'name': {'required': True, 'type': 'String'},
                               'rarity': {'required': False, 'type': 'String'},
                               'rarity_per_mille': {'required': True, 'type': 'Integer'},
                               'sticker': {'required': True, 'type': 'Sticker'}},
           'UniqueGiftSymbol': {'name': {'required': True, 'type': 'String'},
                                'rarity_per_mille': {'required': True, 'type': 'Integer'},
                                'sticker': {'required': True, 'type': 'Sticker'}},
           'Update': {'business_connection': {'required': False, 'type': 'BusinessConnection'},
                      'business_message': {'required': False, 'type': 'Message'},
                      'callback_query': {'required': False, 'type': 'CallbackQuery'},
                      'channel_post': {'required': False, 'type': 'Message'},
                      'chat_boost': {'required': False, 'type': 'ChatBoostUpdated'},
                      'chat_join_request': {'required': False, 'type': 'ChatJoinRequest'},
                      'chat_member': {'required': False, 'type': 'ChatMemberUpdated'},
                      'chosen_inline_result': {'required': False, 'type': 'ChosenInlineResult'},
                      'deleted_business_messages': {'required': False, 'type': 'BusinessMessagesDeleted'},
                      'edited_business_message': {'required': False, 'type': 'Message'},
                      'edited_channel_post': {'required': False, 'type': 'Message'},
                      'edited_message': {'required': False, 'type': 'Message'},
                      'guest_message': {'required': False, 'type': 'Message'},
                      'inline_query': {'required': False, 'type': 'InlineQuery'},
                      'managed_bot': {'required': False, 'type': 'ManagedBotUpdated'},
                      'message': {'required': False, 'type': 'Message'},
                      'message_reaction': {'required': False, 'type': 'MessageReactionUpdated'},
                      'message_reaction_count': {'required': False, 'type': 'MessageReactionCountUpdated'},
                      'my_chat_member': {'required': False, 'type': 'ChatMemberUpdated'},
                      'poll': {'required': False, 'type': 'Poll'},
                      'poll_answer': {'required': False, 'type': 'PollAnswer'},
                      'pre_checkout_query': {'required': False, 'type': 'PreCheckoutQuery'},
                      'purchased_paid_media': {'required': False, 'type': 'PaidMediaPurchased'},
                      'removed_chat_boost': {'required': False, 'type': 'ChatBoostRemoved'},
                      'shipping_query': {'required': False, 'type': 'ShippingQuery'},
                      'stopped_message_generation': {'required': False, 'type': 'MessageGenerationStopped'},
                      'subscription': {'required': False, 'type': 'BotSubscriptionUpdated'},
                      'update_id': {'required': True, 'type': 'Integer'}},
           'User': {'added_to_attachment_menu': {'required': False, 'type': 'True'},
                    'allows_users_to_create_topics': {'required': False, 'type': 'Boolean'},
                    'can_connect_to_business': {'required': False, 'type': 'Boolean'},
                    'can_join_groups': {'required': False, 'type': 'Boolean'},
                    'can_manage_bots': {'required': False, 'type': 'Boolean'},
                    'can_read_all_group_messages': {'required': False, 'type': 'Boolean'},
                    'first_name': {'required': True, 'type': 'String'},
                    'has_main_web_app': {'required': False, 'type': 'Boolean'},
                    'has_topics_enabled': {'required': False, 'type': 'Boolean'},
                    'id': {'required': True, 'type': 'Integer'},
                    'is_bot': {'required': True, 'type': 'Boolean'},
                    'is_premium': {'required': False, 'type': 'True'},
                    'language_code': {'required': False, 'type': 'String'},
                    'last_name': {'required': False, 'type': 'String'},
                    'supports_guest_queries': {'required': False, 'type': 'Boolean'},
                    'supports_inline_queries': {'required': False, 'type': 'Boolean'},
                    'supports_join_request_queries': {'required': False, 'type': 'Boolean'},
                    'username': {'required': False, 'type': 'String'}},
           'UserChatBoosts': {'boosts': {'required': True, 'type': 'Array of ChatBoost'}},
           'UserProfileAudios': {'audios': {'required': True, 'type': 'Array of Audio'},
                                 'total_count': {'required': True, 'type': 'Integer'}},
           'UserProfilePhotos': {'photos': {'required': True, 'type': 'Array of Array of PhotoSize'},
                                 'total_count': {'required': True, 'type': 'Integer'}},
           'UserRating': {'current_level_rating': {'required': True, 'type': 'Integer'},
                          'level': {'required': True, 'type': 'Integer'},
                          'next_level_rating': {'required': False, 'type': 'Integer'},
                          'rating': {'required': True, 'type': 'Integer'}},
           'UsersShared': {'request_id': {'required': True, 'type': 'Integer'},
                           'users': {'required': True, 'type': 'Array of SharedUser'}},
           'Venue': {'address': {'required': True, 'type': 'String'},
                     'foursquare_id': {'required': False, 'type': 'String'},
                     'foursquare_type': {'required': False, 'type': 'String'},
                     'google_place_id': {'required': False, 'type': 'String'},
                     'google_place_type': {'required': False, 'type': 'String'},
                     'location': {'required': True, 'type': 'Location'},
                     'title': {'required': True, 'type': 'String'}},
           'Video': {'cover': {'required': False, 'type': 'Array of PhotoSize'},
                     'duration': {'required': True, 'type': 'Integer'},
                     'file_id': {'required': True, 'type': 'String'},
                     'file_name': {'required': False, 'type': 'String'},
                     'file_size': {'required': False, 'type': 'Integer'},
                     'file_unique_id': {'required': True, 'type': 'String'},
                     'height': {'required': True, 'type': 'Integer'},
                     'mime_type': {'required': False, 'type': 'String'},
                     'qualities': {'required': False, 'type': 'Array of VideoQuality'},
                     'start_timestamp': {'required': False, 'type': 'Integer'},
                     'thumbnail': {'required': False, 'type': 'PhotoSize'},
                     'width': {'required': True, 'type': 'Integer'}},
           'VideoChatEnded': {'duration': {'required': True, 'type': 'Integer'}},
           'VideoChatParticipantsInvited': {'users': {'required': True, 'type': 'Array of User'}},
           'VideoChatScheduled': {'start_date': {'required': True, 'type': 'Integer'}},
           'VideoChatStarted': {},
           'VideoNote': {'duration': {'required': True, 'type': 'Integer'},
                         'file_id': {'required': True, 'type': 'String'},
                         'file_size': {'required': False, 'type': 'Integer'},
                         'file_unique_id': {'required': True, 'type': 'String'},
                         'length': {'required': True, 'type': 'Integer'},
                         'thumbnail': {'required': False, 'type': 'PhotoSize'}},
           'VideoQuality': {'codec': {'required': True, 'type': 'String'},
                            'file_id': {'required': True, 'type': 'String'},
                            'file_size': {'required': False, 'type': 'Integer'},
                            'file_unique_id': {'required': True, 'type': 'String'},
                            'height': {'required': True, 'type': 'Integer'},
                            'width': {'required': True, 'type': 'Integer'}},
           'Voice': {'duration': {'required': True, 'type': 'Integer'},
                     'file_id': {'required': True, 'type': 'String'},
                     'file_size': {'required': False, 'type': 'Integer'},
                     'file_unique_id': {'required': True, 'type': 'String'},
                     'mime_type': {'required': False, 'type': 'String'}},
           'WebAppData': {'button_text': {'required': True, 'type': 'String'},
                          'data': {'required': True, 'type': 'String'}},
           'WebAppInfo': {'url': {'required': True, 'type': 'String'}},
           'WebhookInfo': {'allowed_updates': {'required': False, 'type': 'Array of String'},
                           'has_custom_certificate': {'required': True, 'type': 'Boolean'},
                           'ip_address': {'required': False, 'type': 'String'},
                           'last_error_date': {'required': False, 'type': 'Integer'},
                           'last_error_message': {'required': False, 'type': 'String'},
                           'last_synchronization_error_date': {'required': False, 'type': 'Integer'},
                           'max_connections': {'required': False, 'type': 'Integer'},
                           'pending_update_count': {'required': True, 'type': 'Integer'},
                           'url': {'required': True, 'type': 'String'}},
           'WriteAccessAllowed': {'from_attachment_menu': {'required': False, 'type': 'Boolean'},
                                  'from_request': {'required': False, 'type': 'Boolean'},
                                  'web_app_name': {'required': False, 'type': 'String'}}}}
