From 4b3da146d9768b77fa214393a46934b53417072c Mon Sep 17 00:00:00 2001 From: Matteo Piccina Date: Tue, 31 Dec 2019 16:08:26 +0100 Subject: [PATCH] Update Telegram API to v4.5 --- API/TelegramAPIDefinition.yml | 35 +- .../TelegramBotSDK/Generated/Methods.swift | 2767 +++++------ Sources/TelegramBotSDK/Generated/Types.swift | 4301 +++++++++-------- 3 files changed, 3608 insertions(+), 3495 deletions(-) diff --git a/API/TelegramAPIDefinition.yml b/API/TelegramAPIDefinition.yml index d501fd4..62b7607 100644 --- a/API/TelegramAPIDefinition.yml +++ b/API/TelegramAPIDefinition.yml @@ -54,6 +54,7 @@ fields: invite_link: String? pinned_message: Message? permissions: ChatPermissions? + slow_mode_delay: Int? sticker_set_name: String? can_set_sticker_set: Bool? @@ -120,7 +121,8 @@ fields: --- type: PhotoSize fields: - file_id: Int + file_id: String + file_unique_id: String width: Int height: Int file_size: Int? @@ -128,7 +130,8 @@ fields: --- type: Audio fields: - file_id: Int + file_id: String + file_unique_id: String duration: Int performer: String? title: String? @@ -139,7 +142,8 @@ fields: --- type: Document fields: - file_id: Int + file_id: String + file_unique_id: String thumb: PhotoSize? file_name: String? mime_type: String? @@ -148,7 +152,8 @@ fields: --- type: Video fields: - file_id: Int + file_id: String + file_unique_id: String width: Int height: Int duration: Int @@ -159,7 +164,8 @@ fields: --- type: Animation fields: - file_id: Int + file_id: String + file_unique_id: String width: Int height: Int duration: Int @@ -171,7 +177,8 @@ fields: --- type: Voice fields: - file_id: Int + file_id: String + file_unique_id: String duration: Int mime_type: String? file_size: Int? @@ -179,7 +186,8 @@ fields: --- type: VideoNote fields: - file_id: Int + file_id: String + file_unique_id: String length: Int duration: Int thumb: PhotoSize? @@ -233,6 +241,7 @@ fields: type: File fields: file_id: String + file_unique_id: String file_size: Int? file_path: String? @@ -303,13 +312,16 @@ fields: type: ChatPhoto fields: small_file_id: String + small_file_unique_id: String big_file_id: String + big_file_unique_id: String --- type: ChatMember fields: user: User status: String + custom_title: String? until_date: Date? can_be_edited: Bool? can_post_messages: Bool? @@ -403,6 +415,7 @@ fields: type: Sticker fields: file_id: String + file_unique_id: String width: Int height: Int is_animated: Bool @@ -1134,6 +1147,14 @@ parameters: can_promote_members: Bool? result: Bool? +--- +method: setChatAdministratorCustomTitle +parameters: + chat_id: ChatId + user_id: Int + custom_title: String +result: Bool? + --- method: setChatPermissions parameters: diff --git a/Sources/TelegramBotSDK/Generated/Methods.swift b/Sources/TelegramBotSDK/Generated/Methods.swift index f904964..9042c78 100644 --- a/Sources/TelegramBotSDK/Generated/Methods.swift +++ b/Sources/TelegramBotSDK/Generated/Methods.swift @@ -6,251 +6,333 @@ import Dispatch public extension TelegramBot { - typealias StopMessageLiveLocationCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias SendDocumentCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func stopMessageLiveLocationSync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + func sendDocumentSync( + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + document: FileInfo, + parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("stopMessageLiveLocation", defaultParameters["stopMessageLiveLocation"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"reply_markup": replyMarkup]) + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendDocument", defaultParameters["sendDocument"], parameters, [ + "caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"document": document, +"parse_mode": parseMode, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb]) } - func stopMessageLiveLocationAsync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + func sendDocumentAsync( + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + document: FileInfo, + parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: StopMessageLiveLocationCompletion? = nil) { - return requestAsync("stopMessageLiveLocation", defaultParameters["stopMessageLiveLocation"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"reply_markup": replyMarkup], + completion: SendDocumentCompletion? = nil) { + return requestAsync("sendDocument", defaultParameters["sendDocument"], parameters, [ + "caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"document": document, +"parse_mode": parseMode, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb], queue: queue, completion: completion) } - typealias UnbanChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias GetGameHighScoresCompletion = (_ result: [GameHighScore]?, _ error: DataTaskError?) -> () @discardableResult - func unbanChatMemberSync( - chatId: ChatId, + func getGameHighScoresSync( + chatId: Int64? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, userId: Int64, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("unbanChatMember", defaultParameters["unbanChatMember"], parameters, [ + _ parameters: [String: Any?] = [:]) -> [GameHighScore]? { + return requestSync("getGameHighScores", defaultParameters["getGameHighScores"], parameters, [ "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, "user_id": userId]) } - func unbanChatMemberAsync( - chatId: ChatId, + func getGameHighScoresAsync( + chatId: Int64? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: UnbanChatMemberCompletion? = nil) { - return requestAsync("unbanChatMember", defaultParameters["unbanChatMember"], parameters, [ + completion: GetGameHighScoresCompletion? = nil) { + return requestAsync("getGameHighScores", defaultParameters["getGameHighScores"], parameters, [ "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, "user_id": userId], queue: queue, completion: completion) } - typealias SetChatDescriptionCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SetWebhookCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func setChatDescriptionSync( - chatId: ChatId, - description: String, + func setWebhookSync( + allowedUpdates: [String]? = nil, + certificate: FileInfo? = nil, + maxConnections: Int? = nil, + url: String, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setChatDescription", defaultParameters["setChatDescription"], parameters, [ - "chat_id": chatId, -"description": description]) + return requestSync("setWebhook", defaultParameters["setWebhook"], parameters, [ + "allowed_updates": allowedUpdates, +"certificate": certificate, +"max_connections": maxConnections, +"url": url]) } - func setChatDescriptionAsync( - chatId: ChatId, - description: String, + func setWebhookAsync( + allowedUpdates: [String]? = nil, + certificate: FileInfo? = nil, + maxConnections: Int? = nil, + url: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SetChatDescriptionCompletion? = nil) { - return requestAsync("setChatDescription", defaultParameters["setChatDescription"], parameters, [ - "chat_id": chatId, -"description": description], + completion: SetWebhookCompletion? = nil) { + return requestAsync("setWebhook", defaultParameters["setWebhook"], parameters, [ + "allowed_updates": allowedUpdates, +"certificate": certificate, +"max_connections": maxConnections, +"url": url], queue: queue, completion: completion) } - typealias GetUserProfilePhotosCompletion = (_ result: UserProfilePhotos?, _ error: DataTaskError?) -> () + typealias KickChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func getUserProfilePhotosSync( - limit: Int? = nil, - offset: Int? = nil, + func kickChatMemberSync( + chatId: ChatId, + untilDate: Int? = nil, userId: Int64, - _ parameters: [String: Any?] = [:]) -> UserProfilePhotos? { - return requestSync("getUserProfilePhotos", defaultParameters["getUserProfilePhotos"], parameters, [ - "limit": limit, -"offset": offset, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("kickChatMember", defaultParameters["kickChatMember"], parameters, [ + "chat_id": chatId, +"until_date": untilDate, "user_id": userId]) } - func getUserProfilePhotosAsync( - limit: Int? = nil, - offset: Int? = nil, + func kickChatMemberAsync( + chatId: ChatId, + untilDate: Int? = nil, userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetUserProfilePhotosCompletion? = nil) { - return requestAsync("getUserProfilePhotos", defaultParameters["getUserProfilePhotos"], parameters, [ - "limit": limit, -"offset": offset, + completion: KickChatMemberCompletion? = nil) { + return requestAsync("kickChatMember", defaultParameters["kickChatMember"], parameters, [ + "chat_id": chatId, +"until_date": untilDate, "user_id": userId], queue: queue, completion: completion) } - typealias UploadStickerFileCompletion = (_ result: File?, _ error: DataTaskError?) -> () + typealias SendChatActionCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func uploadStickerFileSync( - pngSticker: FileInfo, - userId: Int64, - _ parameters: [String: Any?] = [:]) -> File? { - return requestSync("uploadStickerFile", defaultParameters["uploadStickerFile"], parameters, [ - "png_sticker": pngSticker, -"user_id": userId]) + func sendChatActionSync( + action: String, + chatId: ChatId, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("sendChatAction", defaultParameters["sendChatAction"], parameters, [ + "action": action, +"chat_id": chatId]) } - func uploadStickerFileAsync( - pngSticker: FileInfo, - userId: Int64, + func sendChatActionAsync( + action: String, + chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: UploadStickerFileCompletion? = nil) { - return requestAsync("uploadStickerFile", defaultParameters["uploadStickerFile"], parameters, [ - "png_sticker": pngSticker, -"user_id": userId], + completion: SendChatActionCompletion? = nil) { + return requestAsync("sendChatAction", defaultParameters["sendChatAction"], parameters, [ + "action": action, +"chat_id": chatId], queue: queue, completion: completion) } - typealias StopPollCompletion = (_ result: Poll?, _ error: DataTaskError?) -> () + typealias AnswerInlineQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func stopPollSync( - chatId: ChatId, - messageId: Int, - replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> Poll? { - return requestSync("stopPoll", defaultParameters["stopPoll"], parameters, [ - "chat_id": chatId, -"message_id": messageId, -"reply_markup": replyMarkup]) + func answerInlineQuerySync( + cacheTime: Int? = nil, + inlineQueryId: String, + isPersonal: Bool? = nil, + nextOffset: String? = nil, + results: [InlineQueryResult], + switchPmParameter: String? = nil, + switchPmText: String? = nil, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("answerInlineQuery", defaultParameters["answerInlineQuery"], parameters, [ + "cache_time": cacheTime, +"inline_query_id": inlineQueryId, +"is_personal": isPersonal, +"next_offset": nextOffset, +"results": results, +"switch_pm_parameter": switchPmParameter, +"switch_pm_text": switchPmText]) } - func stopPollAsync( - chatId: ChatId, - messageId: Int, - replyMarkup: InlineKeyboardMarkup? = nil, + func answerInlineQueryAsync( + cacheTime: Int? = nil, + inlineQueryId: String, + isPersonal: Bool? = nil, + nextOffset: String? = nil, + results: [InlineQueryResult], + switchPmParameter: String? = nil, + switchPmText: String? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: StopPollCompletion? = nil) { - return requestAsync("stopPoll", defaultParameters["stopPoll"], parameters, [ - "chat_id": chatId, -"message_id": messageId, -"reply_markup": replyMarkup], + completion: AnswerInlineQueryCompletion? = nil) { + return requestAsync("answerInlineQuery", defaultParameters["answerInlineQuery"], parameters, [ + "cache_time": cacheTime, +"inline_query_id": inlineQueryId, +"is_personal": isPersonal, +"next_offset": nextOffset, +"results": results, +"switch_pm_parameter": switchPmParameter, +"switch_pm_text": switchPmText], queue: queue, completion: completion) } - typealias GetMeCompletion = (_ result: User?, _ error: DataTaskError?) -> () + typealias GetWebhookInfoCompletion = (_ result: WebhookInfo?, _ error: DataTaskError?) -> () @discardableResult - func getMeSync( + func getWebhookInfoSync( - _ parameters: [String: Any?] = [:]) -> User? { - return requestSync("getMe", defaultParameters["getMe"], parameters, [ + _ parameters: [String: Any?] = [:]) -> WebhookInfo? { + return requestSync("getWebhookInfo", defaultParameters["getWebhookInfo"], parameters, [ :]) } - func getMeAsync( + func getWebhookInfoAsync( _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetMeCompletion? = nil) { - return requestAsync("getMe", defaultParameters["getMe"], parameters, [ + completion: GetWebhookInfoCompletion? = nil) { + return requestAsync("getWebhookInfo", defaultParameters["getWebhookInfo"], parameters, [ :], queue: queue, completion: completion) } - typealias PromoteChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias GetStickerSetCompletion = (_ result: StickerSet?, _ error: DataTaskError?) -> () @discardableResult - func promoteChatMemberSync( - canChangeInfo: Bool? = nil, - canDeleteMessages: Bool? = nil, - canEditMessages: Bool? = nil, - canInviteUsers: Bool? = nil, - canPinMessages: Bool? = nil, - canPostMessages: Bool? = nil, - canPromoteMembers: Bool? = nil, - canRestrictMembers: Bool? = nil, - chatId: ChatId, - userId: Int, + func getStickerSetSync( + name: String, + _ parameters: [String: Any?] = [:]) -> StickerSet? { + return requestSync("getStickerSet", defaultParameters["getStickerSet"], parameters, [ + "name": name]) + } + + func getStickerSetAsync( + name: String, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: GetStickerSetCompletion? = nil) { + return requestAsync("getStickerSet", defaultParameters["getStickerSet"], parameters, [ + "name": name], + queue: queue, completion: completion) + } + typealias SendContactCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + + @discardableResult + func sendContactSync( + chatId: ChatId, + disableNotification: Bool? = nil, + firstName: String, + lastName: String? = nil, + phoneNumber: String, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + vcard: String? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendContact", defaultParameters["sendContact"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"first_name": firstName, +"last_name": lastName, +"phone_number": phoneNumber, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"vcard": vcard]) + } + + func sendContactAsync( + chatId: ChatId, + disableNotification: Bool? = nil, + firstName: String, + lastName: String? = nil, + phoneNumber: String, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + vcard: String? = nil, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: SendContactCompletion? = nil) { + return requestAsync("sendContact", defaultParameters["sendContact"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"first_name": firstName, +"last_name": lastName, +"phone_number": phoneNumber, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"vcard": vcard], + queue: queue, completion: completion) + } + typealias UnbanChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + + @discardableResult + func unbanChatMemberSync( + chatId: ChatId, + userId: Int64, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("promoteChatMember", defaultParameters["promoteChatMember"], parameters, [ - "can_change_info": canChangeInfo, -"can_delete_messages": canDeleteMessages, -"can_edit_messages": canEditMessages, -"can_invite_users": canInviteUsers, -"can_pin_messages": canPinMessages, -"can_post_messages": canPostMessages, -"can_promote_members": canPromoteMembers, -"can_restrict_members": canRestrictMembers, -"chat_id": chatId, + return requestSync("unbanChatMember", defaultParameters["unbanChatMember"], parameters, [ + "chat_id": chatId, "user_id": userId]) } - func promoteChatMemberAsync( - canChangeInfo: Bool? = nil, - canDeleteMessages: Bool? = nil, - canEditMessages: Bool? = nil, - canInviteUsers: Bool? = nil, - canPinMessages: Bool? = nil, - canPostMessages: Bool? = nil, - canPromoteMembers: Bool? = nil, - canRestrictMembers: Bool? = nil, - chatId: ChatId, - userId: Int, + func unbanChatMemberAsync( + chatId: ChatId, + userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: PromoteChatMemberCompletion? = nil) { - return requestAsync("promoteChatMember", defaultParameters["promoteChatMember"], parameters, [ - "can_change_info": canChangeInfo, -"can_delete_messages": canDeleteMessages, -"can_edit_messages": canEditMessages, -"can_invite_users": canInviteUsers, -"can_pin_messages": canPinMessages, -"can_post_messages": canPostMessages, -"can_promote_members": canPromoteMembers, -"can_restrict_members": canRestrictMembers, -"chat_id": chatId, + completion: UnbanChatMemberCompletion? = nil) { + return requestAsync("unbanChatMember", defaultParameters["unbanChatMember"], parameters, [ + "chat_id": chatId, "user_id": userId], queue: queue, completion: completion) } - typealias GetChatCompletion = (_ result: Chat?, _ error: DataTaskError?) -> () + typealias GetFileCompletion = (_ result: File?, _ error: DataTaskError?) -> () @discardableResult - func getChatSync( - chatId: ChatId, - _ parameters: [String: Any?] = [:]) -> Chat? { - return requestSync("getChat", defaultParameters["getChat"], parameters, [ - "chat_id": chatId]) + func getFileSync( + fileId: String, + _ parameters: [String: Any?] = [:]) -> File? { + return requestSync("getFile", defaultParameters["getFile"], parameters, [ + "file_id": fileId]) } - func getChatAsync( - chatId: ChatId, + func getFileAsync( + fileId: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetChatCompletion? = nil) { - return requestAsync("getChat", defaultParameters["getChat"], parameters, [ - "chat_id": chatId], + completion: GetFileCompletion? = nil) { + return requestAsync("getFile", defaultParameters["getFile"], parameters, [ + "file_id": fileId], queue: queue, completion: completion) } typealias SetStickerPositionInSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @@ -276,283 +358,243 @@ public extension TelegramBot { "sticker": sticker], queue: queue, completion: completion) } - typealias UnpinChatMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias EditMessageReplyMarkupCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () @discardableResult - func unpinChatMessageSync( + func editMessageReplyMarkupSync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("editMessageReplyMarkup", defaultParameters["editMessageReplyMarkup"], parameters, [ + "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"reply_markup": replyMarkup]) + } + + func editMessageReplyMarkupAsync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: EditMessageReplyMarkupCompletion? = nil) { + return requestAsync("editMessageReplyMarkup", defaultParameters["editMessageReplyMarkup"], parameters, [ + "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"reply_markup": replyMarkup], + queue: queue, completion: completion) + } + typealias DeleteChatStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + + @discardableResult + func deleteChatStickerSetSync( chatId: ChatId, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("unpinChatMessage", defaultParameters["unpinChatMessage"], parameters, [ + return requestSync("deleteChatStickerSet", defaultParameters["deleteChatStickerSet"], parameters, [ "chat_id": chatId]) } - func unpinChatMessageAsync( + func deleteChatStickerSetAsync( chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: UnpinChatMessageCompletion? = nil) { - return requestAsync("unpinChatMessage", defaultParameters["unpinChatMessage"], parameters, [ + completion: DeleteChatStickerSetCompletion? = nil) { + return requestAsync("deleteChatStickerSet", defaultParameters["deleteChatStickerSet"], parameters, [ "chat_id": chatId], queue: queue, completion: completion) } - typealias SendAudioCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias PinChatMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func sendAudioSync( - audio: FileInfo, - caption: String? = nil, - chatId: ChatId, + func pinChatMessageSync( + chatId: ChatId, disableNotification: Bool? = nil, - duration: Int? = nil, - parseMode: String? = nil, - performer: String? = nil, - replyMarkup: InlineKeyboardMarkup, - replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - title: String? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendAudio", defaultParameters["sendAudio"], parameters, [ - "audio": audio, -"caption": caption, -"chat_id": chatId, + messageId: Int, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("pinChatMessage", defaultParameters["pinChatMessage"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"parse_mode": parseMode, -"performer": performer, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"thumb": thumb, -"title": title]) +"message_id": messageId]) } - func sendAudioAsync( - audio: FileInfo, - caption: String? = nil, - chatId: ChatId, + func pinChatMessageAsync( + chatId: ChatId, disableNotification: Bool? = nil, - duration: Int? = nil, - parseMode: String? = nil, - performer: String? = nil, - replyMarkup: InlineKeyboardMarkup, - replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - title: String? = nil, + messageId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendAudioCompletion? = nil) { - return requestAsync("sendAudio", defaultParameters["sendAudio"], parameters, [ - "audio": audio, -"caption": caption, -"chat_id": chatId, + completion: PinChatMessageCompletion? = nil) { + return requestAsync("pinChatMessage", defaultParameters["pinChatMessage"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"parse_mode": parseMode, -"performer": performer, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"thumb": thumb, -"title": title], +"message_id": messageId], queue: queue, completion: completion) } - typealias SendGameCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias UploadStickerFileCompletion = (_ result: File?, _ error: DataTaskError?) -> () @discardableResult - func sendGameSync( - chatId: Int64, - disableNotification: Bool? = nil, - gameShortName: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendGame", defaultParameters["sendGame"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"game_short_name": gameShortName, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId]) - } - - func sendGameAsync( - chatId: Int64, - disableNotification: Bool? = nil, - gameShortName: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: SendGameCompletion? = nil) { - return requestAsync("sendGame", defaultParameters["sendGame"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"game_short_name": gameShortName, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId], - queue: queue, completion: completion) - } - typealias PinChatMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () - - @discardableResult - func pinChatMessageSync( - chatId: ChatId, - disableNotification: Bool? = nil, - messageId: Int, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("pinChatMessage", defaultParameters["pinChatMessage"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"message_id": messageId]) + func uploadStickerFileSync( + pngSticker: FileInfo, + userId: Int64, + _ parameters: [String: Any?] = [:]) -> File? { + return requestSync("uploadStickerFile", defaultParameters["uploadStickerFile"], parameters, [ + "png_sticker": pngSticker, +"user_id": userId]) } - func pinChatMessageAsync( - chatId: ChatId, - disableNotification: Bool? = nil, - messageId: Int, + func uploadStickerFileAsync( + pngSticker: FileInfo, + userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: PinChatMessageCompletion? = nil) { - return requestAsync("pinChatMessage", defaultParameters["pinChatMessage"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"message_id": messageId], + completion: UploadStickerFileCompletion? = nil) { + return requestAsync("uploadStickerFile", defaultParameters["uploadStickerFile"], parameters, [ + "png_sticker": pngSticker, +"user_id": userId], queue: queue, completion: completion) } - typealias SendStickerCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias EditMessageMediaCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () @discardableResult - func sendStickerSync( - chatId: ChatId, - disableNotification: Bool? = nil, + func editMessageMediaSync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + media: InputMedia, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - sticker: FileInfo, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendSticker", defaultParameters["sendSticker"], parameters, [ + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("editMessageMedia", defaultParameters["editMessageMedia"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"sticker": sticker]) +"inline_message_id": inlineMessageId, +"media": media, +"message_id": messageId, +"reply_markup": replyMarkup]) } - func sendStickerAsync( - chatId: ChatId, - disableNotification: Bool? = nil, + func editMessageMediaAsync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + media: InputMedia, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - sticker: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendStickerCompletion? = nil) { - return requestAsync("sendSticker", defaultParameters["sendSticker"], parameters, [ + completion: EditMessageMediaCompletion? = nil) { + return requestAsync("editMessageMedia", defaultParameters["editMessageMedia"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"sticker": sticker], +"inline_message_id": inlineMessageId, +"media": media, +"message_id": messageId, +"reply_markup": replyMarkup], queue: queue, completion: completion) } - typealias GetStickerSetCompletion = (_ result: StickerSet?, _ error: DataTaskError?) -> () + typealias AddStickerToSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func getStickerSetSync( - name: String, - _ parameters: [String: Any?] = [:]) -> StickerSet? { - return requestSync("getStickerSet", defaultParameters["getStickerSet"], parameters, [ - "name": name]) + func addStickerToSetSync( + emojis: String, + maskPosition: MaskPosition? = nil, + name: String, + pngSticker: FileInfo, + userId: Int, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("addStickerToSet", defaultParameters["addStickerToSet"], parameters, [ + "emojis": emojis, +"mask_position": maskPosition, +"name": name, +"png_sticker": pngSticker, +"user_id": userId]) } - func getStickerSetAsync( - name: String, + func addStickerToSetAsync( + emojis: String, + maskPosition: MaskPosition? = nil, + name: String, + pngSticker: FileInfo, + userId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetStickerSetCompletion? = nil) { - return requestAsync("getStickerSet", defaultParameters["getStickerSet"], parameters, [ - "name": name], + completion: AddStickerToSetCompletion? = nil) { + return requestAsync("addStickerToSet", defaultParameters["addStickerToSet"], parameters, [ + "emojis": emojis, +"mask_position": maskPosition, +"name": name, +"png_sticker": pngSticker, +"user_id": userId], queue: queue, completion: completion) } - typealias SetWebhookCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SetChatPermissionsCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func setWebhookSync( - allowedUpdates: [String]? = nil, - certificate: FileInfo? = nil, - maxConnections: Int? = nil, - url: String, + func setChatPermissionsSync( + chatId: ChatId, + permissions: ChatPermissions, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setWebhook", defaultParameters["setWebhook"], parameters, [ - "allowed_updates": allowedUpdates, -"certificate": certificate, -"max_connections": maxConnections, -"url": url]) + return requestSync("setChatPermissions", defaultParameters["setChatPermissions"], parameters, [ + "chat_id": chatId, +"permissions": permissions]) } - func setWebhookAsync( - allowedUpdates: [String]? = nil, - certificate: FileInfo? = nil, - maxConnections: Int? = nil, - url: String, + func setChatPermissionsAsync( + chatId: ChatId, + permissions: ChatPermissions, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SetWebhookCompletion? = nil) { - return requestAsync("setWebhook", defaultParameters["setWebhook"], parameters, [ - "allowed_updates": allowedUpdates, -"certificate": certificate, -"max_connections": maxConnections, -"url": url], + completion: SetChatPermissionsCompletion? = nil) { + return requestAsync("setChatPermissions", defaultParameters["setChatPermissions"], parameters, [ + "chat_id": chatId, +"permissions": permissions], queue: queue, completion: completion) } - typealias DeleteChatStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SetChatDescriptionCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func deleteChatStickerSetSync( + func setChatDescriptionSync( chatId: ChatId, + description: String, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("deleteChatStickerSet", defaultParameters["deleteChatStickerSet"], parameters, [ - "chat_id": chatId]) + return requestSync("setChatDescription", defaultParameters["setChatDescription"], parameters, [ + "chat_id": chatId, +"description": description]) } - func deleteChatStickerSetAsync( + func setChatDescriptionAsync( chatId: ChatId, + description: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: DeleteChatStickerSetCompletion? = nil) { - return requestAsync("deleteChatStickerSet", defaultParameters["deleteChatStickerSet"], parameters, [ - "chat_id": chatId], + completion: SetChatDescriptionCompletion? = nil) { + return requestAsync("setChatDescription", defaultParameters["setChatDescription"], parameters, [ + "chat_id": chatId, +"description": description], queue: queue, completion: completion) } - typealias AnswerCallbackQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias DeleteMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func answerCallbackQuerySync( - cacheTime: Int? = nil, - callbackQueryId: String, - showAlert: Bool? = nil, - text: String? = nil, - url: String? = nil, + func deleteMessageSync( + chatId: ChatId, + messageId: Int, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("answerCallbackQuery", defaultParameters["answerCallbackQuery"], parameters, [ - "cache_time": cacheTime, -"callback_query_id": callbackQueryId, -"show_alert": showAlert, -"text": text, -"url": url]) + return requestSync("deleteMessage", defaultParameters["deleteMessage"], parameters, [ + "chat_id": chatId, +"message_id": messageId]) } - func answerCallbackQueryAsync( - cacheTime: Int? = nil, - callbackQueryId: String, - showAlert: Bool? = nil, - text: String? = nil, - url: String? = nil, + func deleteMessageAsync( + chatId: ChatId, + messageId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: AnswerCallbackQueryCompletion? = nil) { - return requestAsync("answerCallbackQuery", defaultParameters["answerCallbackQuery"], parameters, [ - "cache_time": cacheTime, -"callback_query_id": callbackQueryId, -"show_alert": showAlert, -"text": text, -"url": url], + completion: DeleteMessageCompletion? = nil) { + return requestAsync("deleteMessage", defaultParameters["deleteMessage"], parameters, [ + "chat_id": chatId, +"message_id": messageId], queue: queue, completion: completion) } typealias SendMessageCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @@ -598,965 +640,955 @@ public extension TelegramBot { "text": text], queue: queue, completion: completion) } - typealias SetGameScoreCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias GetChatAdministratorsCompletion = (_ result: [ChatMember]?, _ error: DataTaskError?) -> () @discardableResult - func setGameScoreSync( - chatId: Int64? = nil, - disableEditMessage: Bool? = nil, - force: Bool? = nil, - inlineMessageId: Int? = nil, - messageId: Int? = nil, - score: Int, - userId: Int64, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("setGameScore", defaultParameters["setGameScore"], parameters, [ - "chat_id": chatId, -"disable_edit_message": disableEditMessage, -"force": force, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"score": score, -"user_id": userId]) - } - - func setGameScoreAsync( - chatId: Int64? = nil, - disableEditMessage: Bool? = nil, - force: Bool? = nil, - inlineMessageId: Int? = nil, - messageId: Int? = nil, - score: Int, - userId: Int64, + func getChatAdministratorsSync( + chatId: ChatId, + _ parameters: [String: Any?] = [:]) -> [ChatMember]? { + return requestSync("getChatAdministrators", defaultParameters["getChatAdministrators"], parameters, [ + "chat_id": chatId]) + } + + func getChatAdministratorsAsync( + chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SetGameScoreCompletion? = nil) { - return requestAsync("setGameScore", defaultParameters["setGameScore"], parameters, [ - "chat_id": chatId, -"disable_edit_message": disableEditMessage, -"force": force, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"score": score, -"user_id": userId], + completion: GetChatAdministratorsCompletion? = nil) { + return requestAsync("getChatAdministrators", defaultParameters["getChatAdministrators"], parameters, [ + "chat_id": chatId], queue: queue, completion: completion) } - typealias SendInvoiceCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias DeleteWebhookCompletion = (_ result: WebhookInfo?, _ error: DataTaskError?) -> () @discardableResult - func sendInvoiceSync( - chatId: Int64, - currency: String, - description: String, - disableNotification: Bool? = nil, - isFlexible: Bool? = nil, - needEmail: Bool? = nil, - needName: Bool? = nil, - needPhoneNumber: Bool? = nil, - needShippingAddress: Bool? = nil, - payload: String, - photoHeight: Int? = nil, - photoSize: Int? = nil, - photoUrl: String? = nil, - photoWidth: Int? = nil, - prices: [LabeledPrice], - providerData: String? = nil, - providerToken: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - sendEmailToProvider: Bool? = nil, - sendPhoneNumberToProvider: Bool? = nil, - startParameter: String, - title: String, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendInvoice", defaultParameters["sendInvoice"], parameters, [ - "chat_id": chatId, -"currency": currency, -"description": description, -"disable_notification": disableNotification, -"is_flexible": isFlexible, -"need_email": needEmail, -"need_name": needName, -"need_phone_number": needPhoneNumber, -"need_shipping_address": needShippingAddress, -"payload": payload, -"photo_height": photoHeight, -"photo_size": photoSize, -"photo_url": photoUrl, -"photo_width": photoWidth, -"prices": prices, -"provider_data": providerData, -"provider_token": providerToken, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"send_email_to_provider": sendEmailToProvider, -"send_phone_number_to_provider": sendPhoneNumberToProvider, -"start_parameter": startParameter, -"title": title]) + func deleteWebhookSync( + + _ parameters: [String: Any?] = [:]) -> WebhookInfo? { + return requestSync("deleteWebhook", defaultParameters["deleteWebhook"], parameters, [ + :]) } - func sendInvoiceAsync( - chatId: Int64, - currency: String, - description: String, - disableNotification: Bool? = nil, - isFlexible: Bool? = nil, - needEmail: Bool? = nil, - needName: Bool? = nil, - needPhoneNumber: Bool? = nil, - needShippingAddress: Bool? = nil, - payload: String, - photoHeight: Int? = nil, - photoSize: Int? = nil, - photoUrl: String? = nil, - photoWidth: Int? = nil, - prices: [LabeledPrice], - providerData: String? = nil, - providerToken: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - sendEmailToProvider: Bool? = nil, - sendPhoneNumberToProvider: Bool? = nil, - startParameter: String, - title: String, + func deleteWebhookAsync( + _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendInvoiceCompletion? = nil) { - return requestAsync("sendInvoice", defaultParameters["sendInvoice"], parameters, [ - "chat_id": chatId, -"currency": currency, -"description": description, -"disable_notification": disableNotification, -"is_flexible": isFlexible, -"need_email": needEmail, -"need_name": needName, -"need_phone_number": needPhoneNumber, -"need_shipping_address": needShippingAddress, -"payload": payload, -"photo_height": photoHeight, -"photo_size": photoSize, -"photo_url": photoUrl, -"photo_width": photoWidth, -"prices": prices, -"provider_data": providerData, -"provider_token": providerToken, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"send_email_to_provider": sendEmailToProvider, -"send_phone_number_to_provider": sendPhoneNumberToProvider, -"start_parameter": startParameter, -"title": title], + completion: DeleteWebhookCompletion? = nil) { + return requestAsync("deleteWebhook", defaultParameters["deleteWebhook"], parameters, [ + :], queue: queue, completion: completion) } - typealias SendLocationCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias EditMessageLiveLocationCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () @discardableResult - func sendLocationSync( - chatId: ChatId, - disableNotification: Bool? = nil, + func editMessageLiveLocationSync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, latitude: Float, - livePeriod: Int? = nil, longitude: Float, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendLocation", defaultParameters["sendLocation"], parameters, [ + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("editMessageLiveLocation", defaultParameters["editMessageLiveLocation"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, +"inline_message_id": inlineMessageId, "latitude": latitude, -"live_period": livePeriod, "longitude": longitude, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId]) +"message_id": messageId, +"reply_markup": replyMarkup]) } - func sendLocationAsync( - chatId: ChatId, - disableNotification: Bool? = nil, + func editMessageLiveLocationAsync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, latitude: Float, - livePeriod: Int? = nil, longitude: Float, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendLocationCompletion? = nil) { - return requestAsync("sendLocation", defaultParameters["sendLocation"], parameters, [ + completion: EditMessageLiveLocationCompletion? = nil) { + return requestAsync("editMessageLiveLocation", defaultParameters["editMessageLiveLocation"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, +"inline_message_id": inlineMessageId, "latitude": latitude, -"live_period": livePeriod, "longitude": longitude, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId], +"message_id": messageId, +"reply_markup": replyMarkup], queue: queue, completion: completion) } - typealias GetChatAdministratorsCompletion = (_ result: [ChatMember]?, _ error: DataTaskError?) -> () + typealias SetCharStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func getChatAdministratorsSync( + func setCharStickerSetSync( chatId: ChatId, - _ parameters: [String: Any?] = [:]) -> [ChatMember]? { - return requestSync("getChatAdministrators", defaultParameters["getChatAdministrators"], parameters, [ - "chat_id": chatId]) + stickerSetName: String, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("setCharStickerSet", defaultParameters["setCharStickerSet"], parameters, [ + "chat_id": chatId, +"sticker_set_name": stickerSetName]) } - func getChatAdministratorsAsync( + func setCharStickerSetAsync( chatId: ChatId, + stickerSetName: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetChatAdministratorsCompletion? = nil) { - return requestAsync("getChatAdministrators", defaultParameters["getChatAdministrators"], parameters, [ - "chat_id": chatId], + completion: SetCharStickerSetCompletion? = nil) { + return requestAsync("setCharStickerSet", defaultParameters["setCharStickerSet"], parameters, [ + "chat_id": chatId, +"sticker_set_name": stickerSetName], queue: queue, completion: completion) } - typealias GetUpdatesCompletion = (_ result: [Update]?, _ error: DataTaskError?) -> () + typealias GetChatMemberCompletion = (_ result: ChatMember?, _ error: DataTaskError?) -> () @discardableResult - func getUpdatesSync( - allowedUpdates: [String]? = nil, - limit: Int? = nil, - offset: Int64? = nil, - timeout: Int? = nil, - _ parameters: [String: Any?] = [:]) -> [Update]? { - return requestSync("getUpdates", defaultParameters["getUpdates"], parameters, [ - "allowed_updates": allowedUpdates, -"limit": limit, -"offset": offset, -"timeout": timeout]) + func getChatMemberSync( + chatId: ChatId, + userId: Int, + _ parameters: [String: Any?] = [:]) -> ChatMember? { + return requestSync("getChatMember", defaultParameters["getChatMember"], parameters, [ + "chat_id": chatId, +"user_id": userId]) } - func getUpdatesAsync( - allowedUpdates: [String]? = nil, - limit: Int? = nil, - offset: Int64? = nil, - timeout: Int? = nil, + func getChatMemberAsync( + chatId: ChatId, + userId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetUpdatesCompletion? = nil) { - return requestAsync("getUpdates", defaultParameters["getUpdates"], parameters, [ - "allowed_updates": allowedUpdates, -"limit": limit, -"offset": offset, -"timeout": timeout], + completion: GetChatMemberCompletion? = nil) { + return requestAsync("getChatMember", defaultParameters["getChatMember"], parameters, [ + "chat_id": chatId, +"user_id": userId], queue: queue, completion: completion) } - typealias ExportChatInviteLinkCompletion = (_ result: String?, _ error: DataTaskError?) -> () + typealias SendPhotoCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func exportChatInviteLinkSync( + func sendPhotoSync( + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + parseMode: String? = nil, + photo: FileInfo, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendPhoto", defaultParameters["sendPhoto"], parameters, [ + "caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"parse_mode": parseMode, +"photo": photo, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId]) + } + + func sendPhotoAsync( + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + parseMode: String? = nil, + photo: FileInfo, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: SendPhotoCompletion? = nil) { + return requestAsync("sendPhoto", defaultParameters["sendPhoto"], parameters, [ + "caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"parse_mode": parseMode, +"photo": photo, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId], + queue: queue, completion: completion) + } + typealias DeleteChatPhotoCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + + @discardableResult + func deleteChatPhotoSync( chatId: ChatId, - _ parameters: [String: Any?] = [:]) -> String? { - return requestSync("exportChatInviteLink", defaultParameters["exportChatInviteLink"], parameters, [ + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("deleteChatPhoto", defaultParameters["deleteChatPhoto"], parameters, [ "chat_id": chatId]) } - func exportChatInviteLinkAsync( + func deleteChatPhotoAsync( chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: ExportChatInviteLinkCompletion? = nil) { - return requestAsync("exportChatInviteLink", defaultParameters["exportChatInviteLink"], parameters, [ + completion: DeleteChatPhotoCompletion? = nil) { + return requestAsync("deleteChatPhoto", defaultParameters["deleteChatPhoto"], parameters, [ "chat_id": chatId], queue: queue, completion: completion) } - typealias SetChatPhotoCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SendAudioCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func setChatPhotoSync( - chatId: ChatId, - photo: FileInfo, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setChatPhoto", defaultParameters["setChatPhoto"], parameters, [ + func sendAudioSync( + audio: FileInfo, + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + parseMode: String? = nil, + performer: String? = nil, + replyMarkup: InlineKeyboardMarkup, + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, + title: String? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendAudio", defaultParameters["sendAudio"], parameters, [ + "audio": audio, +"caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"duration": duration, +"parse_mode": parseMode, +"performer": performer, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb, +"title": title]) + } + + func sendAudioAsync( + audio: FileInfo, + caption: String? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + parseMode: String? = nil, + performer: String? = nil, + replyMarkup: InlineKeyboardMarkup, + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, + title: String? = nil, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: SendAudioCompletion? = nil) { + return requestAsync("sendAudio", defaultParameters["sendAudio"], parameters, [ + "audio": audio, +"caption": caption, +"chat_id": chatId, +"disable_notification": disableNotification, +"duration": duration, +"parse_mode": parseMode, +"performer": performer, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb, +"title": title], + queue: queue, completion: completion) + } + typealias EditMessageTextCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + + @discardableResult + func editMessageTextSync( + chatId: ChatId? = nil, + disableWebPagePreview: Bool? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, + parseMode: String? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + text: String, + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("editMessageText", defaultParameters["editMessageText"], parameters, [ "chat_id": chatId, -"photo": photo]) +"disable_web_page_preview": disableWebPagePreview, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"parse_mode": parseMode, +"reply_markup": replyMarkup, +"text": text]) } - func setChatPhotoAsync( - chatId: ChatId, - photo: FileInfo, + func editMessageTextAsync( + chatId: ChatId? = nil, + disableWebPagePreview: Bool? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, + parseMode: String? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + text: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SetChatPhotoCompletion? = nil) { - return requestAsync("setChatPhoto", defaultParameters["setChatPhoto"], parameters, [ + completion: EditMessageTextCompletion? = nil) { + return requestAsync("editMessageText", defaultParameters["editMessageText"], parameters, [ "chat_id": chatId, -"photo": photo], +"disable_web_page_preview": disableWebPagePreview, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"parse_mode": parseMode, +"reply_markup": replyMarkup, +"text": text], queue: queue, completion: completion) } - typealias DeleteMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias GetChatMembersCountCompletion = (_ result: Int?, _ error: DataTaskError?) -> () @discardableResult - func deleteMessageSync( + func getChatMembersCountSync( chatId: ChatId, - messageId: Int, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("deleteMessage", defaultParameters["deleteMessage"], parameters, [ - "chat_id": chatId, -"message_id": messageId]) + _ parameters: [String: Any?] = [:]) -> Int? { + return requestSync("getChatMembersCount", defaultParameters["getChatMembersCount"], parameters, [ + "chat_id": chatId]) } - func deleteMessageAsync( + func getChatMembersCountAsync( chatId: ChatId, - messageId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: DeleteMessageCompletion? = nil) { - return requestAsync("deleteMessage", defaultParameters["deleteMessage"], parameters, [ - "chat_id": chatId, -"message_id": messageId], + completion: GetChatMembersCountCompletion? = nil) { + return requestAsync("getChatMembersCount", defaultParameters["getChatMembersCount"], parameters, [ + "chat_id": chatId], queue: queue, completion: completion) } - typealias SendVideoCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendStickerCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendVideoSync( - caption: String? = nil, - chatId: ChatId, + func sendStickerSync( + chatId: ChatId, disableNotification: Bool? = nil, - duration: Int? = nil, - height: Int? = nil, - parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - supportsStreaming: Bool? = nil, - thumb: InputFileOrString? = nil, - video: FileInfo, - width: Int? = nil, + sticker: FileInfo, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendVideo", defaultParameters["sendVideo"], parameters, [ - "caption": caption, -"chat_id": chatId, + return requestSync("sendSticker", defaultParameters["sendSticker"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"height": height, -"parse_mode": parseMode, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"supports_streaming": supportsStreaming, -"thumb": thumb, -"video": video, -"width": width]) +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"sticker": sticker]) } - func sendVideoAsync( - caption: String? = nil, - chatId: ChatId, + func sendStickerAsync( + chatId: ChatId, disableNotification: Bool? = nil, - duration: Int? = nil, - height: Int? = nil, - parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - supportsStreaming: Bool? = nil, - thumb: InputFileOrString? = nil, - video: FileInfo, - width: Int? = nil, + sticker: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendVideoCompletion? = nil) { - return requestAsync("sendVideo", defaultParameters["sendVideo"], parameters, [ - "caption": caption, -"chat_id": chatId, + completion: SendStickerCompletion? = nil) { + return requestAsync("sendSticker", defaultParameters["sendSticker"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"height": height, -"parse_mode": parseMode, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"supports_streaming": supportsStreaming, -"thumb": thumb, -"video": video, -"width": width], +"sticker": sticker], queue: queue, completion: completion) } - typealias AnswerInlineQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias ForwardMessageCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func answerInlineQuerySync( - cacheTime: Int? = nil, - inlineQueryId: String, - isPersonal: Bool? = nil, - nextOffset: String? = nil, - results: [InlineQueryResult], - switchPmParameter: String? = nil, - switchPmText: String? = nil, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("answerInlineQuery", defaultParameters["answerInlineQuery"], parameters, [ - "cache_time": cacheTime, -"inline_query_id": inlineQueryId, -"is_personal": isPersonal, -"next_offset": nextOffset, -"results": results, -"switch_pm_parameter": switchPmParameter, -"switch_pm_text": switchPmText]) + func forwardMessageSync( + chatId: ChatId, + disableNotification: Bool? = nil, + fromChatId: ChatId, + messageId: Int, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("forwardMessage", defaultParameters["forwardMessage"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"from_chat_id": fromChatId, +"message_id": messageId]) } - func answerInlineQueryAsync( - cacheTime: Int? = nil, - inlineQueryId: String, - isPersonal: Bool? = nil, - nextOffset: String? = nil, - results: [InlineQueryResult], - switchPmParameter: String? = nil, - switchPmText: String? = nil, + func forwardMessageAsync( + chatId: ChatId, + disableNotification: Bool? = nil, + fromChatId: ChatId, + messageId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: AnswerInlineQueryCompletion? = nil) { - return requestAsync("answerInlineQuery", defaultParameters["answerInlineQuery"], parameters, [ - "cache_time": cacheTime, -"inline_query_id": inlineQueryId, -"is_personal": isPersonal, -"next_offset": nextOffset, -"results": results, -"switch_pm_parameter": switchPmParameter, -"switch_pm_text": switchPmText], + completion: ForwardMessageCompletion? = nil) { + return requestAsync("forwardMessage", defaultParameters["forwardMessage"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"from_chat_id": fromChatId, +"message_id": messageId], queue: queue, completion: completion) } - typealias EditMessageLiveLocationCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias UnpinChatMessageCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func editMessageLiveLocationSync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - latitude: Float, - longitude: Float, - messageId: Int? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("editMessageLiveLocation", defaultParameters["editMessageLiveLocation"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"latitude": latitude, -"longitude": longitude, -"message_id": messageId, -"reply_markup": replyMarkup]) + func unpinChatMessageSync( + chatId: ChatId, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("unpinChatMessage", defaultParameters["unpinChatMessage"], parameters, [ + "chat_id": chatId]) } - func editMessageLiveLocationAsync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - latitude: Float, - longitude: Float, - messageId: Int? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, + func unpinChatMessageAsync( + chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: EditMessageLiveLocationCompletion? = nil) { - return requestAsync("editMessageLiveLocation", defaultParameters["editMessageLiveLocation"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"latitude": latitude, -"longitude": longitude, -"message_id": messageId, -"reply_markup": replyMarkup], + completion: UnpinChatMessageCompletion? = nil) { + return requestAsync("unpinChatMessage", defaultParameters["unpinChatMessage"], parameters, [ + "chat_id": chatId], queue: queue, completion: completion) } - typealias SendChatActionCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias DeleteStickerFromSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func sendChatActionSync( - action: String, - chatId: ChatId, + func deleteStickerFromSetSync( + sticker: String, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("sendChatAction", defaultParameters["sendChatAction"], parameters, [ - "action": action, -"chat_id": chatId]) + return requestSync("deleteStickerFromSet", defaultParameters["deleteStickerFromSet"], parameters, [ + "sticker": sticker]) } - func sendChatActionAsync( - action: String, - chatId: ChatId, + func deleteStickerFromSetAsync( + sticker: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendChatActionCompletion? = nil) { - return requestAsync("sendChatAction", defaultParameters["sendChatAction"], parameters, [ - "action": action, -"chat_id": chatId], + completion: DeleteStickerFromSetCompletion? = nil) { + return requestAsync("deleteStickerFromSet", defaultParameters["deleteStickerFromSet"], parameters, [ + "sticker": sticker], queue: queue, completion: completion) } - typealias GetWebhookInfoCompletion = (_ result: WebhookInfo?, _ error: DataTaskError?) -> () + typealias GetUpdatesCompletion = (_ result: [Update]?, _ error: DataTaskError?) -> () @discardableResult - func getWebhookInfoSync( - - _ parameters: [String: Any?] = [:]) -> WebhookInfo? { - return requestSync("getWebhookInfo", defaultParameters["getWebhookInfo"], parameters, [ - :]) + func getUpdatesSync( + allowedUpdates: [String]? = nil, + limit: Int? = nil, + offset: Int64? = nil, + timeout: Int? = nil, + _ parameters: [String: Any?] = [:]) -> [Update]? { + return requestSync("getUpdates", defaultParameters["getUpdates"], parameters, [ + "allowed_updates": allowedUpdates, +"limit": limit, +"offset": offset, +"timeout": timeout]) } - func getWebhookInfoAsync( - + func getUpdatesAsync( + allowedUpdates: [String]? = nil, + limit: Int? = nil, + offset: Int64? = nil, + timeout: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetWebhookInfoCompletion? = nil) { - return requestAsync("getWebhookInfo", defaultParameters["getWebhookInfo"], parameters, [ - :], + completion: GetUpdatesCompletion? = nil) { + return requestAsync("getUpdates", defaultParameters["getUpdates"], parameters, [ + "allowed_updates": allowedUpdates, +"limit": limit, +"offset": offset, +"timeout": timeout], queue: queue, completion: completion) } - typealias SetCharStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias StopPollCompletion = (_ result: Poll?, _ error: DataTaskError?) -> () @discardableResult - func setCharStickerSetSync( + func stopPollSync( chatId: ChatId, - stickerSetName: String, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setCharStickerSet", defaultParameters["setCharStickerSet"], parameters, [ + messageId: Int, + replyMarkup: InlineKeyboardMarkup? = nil, + _ parameters: [String: Any?] = [:]) -> Poll? { + return requestSync("stopPoll", defaultParameters["stopPoll"], parameters, [ "chat_id": chatId, -"sticker_set_name": stickerSetName]) +"message_id": messageId, +"reply_markup": replyMarkup]) } - func setCharStickerSetAsync( + func stopPollAsync( chatId: ChatId, - stickerSetName: String, + messageId: Int, + replyMarkup: InlineKeyboardMarkup? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SetCharStickerSetCompletion? = nil) { - return requestAsync("setCharStickerSet", defaultParameters["setCharStickerSet"], parameters, [ + completion: StopPollCompletion? = nil) { + return requestAsync("stopPoll", defaultParameters["stopPoll"], parameters, [ "chat_id": chatId, -"sticker_set_name": stickerSetName], +"message_id": messageId, +"reply_markup": replyMarkup], queue: queue, completion: completion) } - typealias GetChatMembersCountCompletion = (_ result: Int?, _ error: DataTaskError?) -> () + typealias GetChatCompletion = (_ result: Chat?, _ error: DataTaskError?) -> () @discardableResult - func getChatMembersCountSync( + func getChatSync( chatId: ChatId, - _ parameters: [String: Any?] = [:]) -> Int? { - return requestSync("getChatMembersCount", defaultParameters["getChatMembersCount"], parameters, [ + _ parameters: [String: Any?] = [:]) -> Chat? { + return requestSync("getChat", defaultParameters["getChat"], parameters, [ "chat_id": chatId]) } - func getChatMembersCountAsync( + func getChatAsync( chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetChatMembersCountCompletion? = nil) { - return requestAsync("getChatMembersCount", defaultParameters["getChatMembersCount"], parameters, [ + completion: GetChatCompletion? = nil) { + return requestAsync("getChat", defaultParameters["getChat"], parameters, [ "chat_id": chatId], queue: queue, completion: completion) } - typealias SendPollCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias ExportChatInviteLinkCompletion = (_ result: String?, _ error: DataTaskError?) -> () @discardableResult - func sendPollSync( + func exportChatInviteLinkSync( chatId: ChatId, - disableNotification: Bool? = nil, - options: [String], - question: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendPoll", defaultParameters["sendPoll"], parameters, [ + _ parameters: [String: Any?] = [:]) -> String? { + return requestSync("exportChatInviteLink", defaultParameters["exportChatInviteLink"], parameters, [ + "chat_id": chatId]) + } + + func exportChatInviteLinkAsync( + chatId: ChatId, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: ExportChatInviteLinkCompletion? = nil) { + return requestAsync("exportChatInviteLink", defaultParameters["exportChatInviteLink"], parameters, [ + "chat_id": chatId], + queue: queue, completion: completion) + } + typealias SetGameScoreCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + + @discardableResult + func setGameScoreSync( + chatId: Int64? = nil, + disableEditMessage: Bool? = nil, + force: Bool? = nil, + inlineMessageId: Int? = nil, + messageId: Int? = nil, + score: Int, + userId: Int64, + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("setGameScore", defaultParameters["setGameScore"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, -"options": options, -"question": question, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId]) +"disable_edit_message": disableEditMessage, +"force": force, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"score": score, +"user_id": userId]) } - func sendPollAsync( - chatId: ChatId, - disableNotification: Bool? = nil, - options: [String], - question: String, - replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, + func setGameScoreAsync( + chatId: Int64? = nil, + disableEditMessage: Bool? = nil, + force: Bool? = nil, + inlineMessageId: Int? = nil, + messageId: Int? = nil, + score: Int, + userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendPollCompletion? = nil) { - return requestAsync("sendPoll", defaultParameters["sendPoll"], parameters, [ + completion: SetGameScoreCompletion? = nil) { + return requestAsync("setGameScore", defaultParameters["setGameScore"], parameters, [ "chat_id": chatId, -"disable_notification": disableNotification, -"options": options, -"question": question, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId], +"disable_edit_message": disableEditMessage, +"force": force, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"score": score, +"user_id": userId], queue: queue, completion: completion) } - typealias SendVideoNoteCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendInvoiceCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendVideoNoteSync( - chatId: ChatId, + func sendInvoiceSync( + chatId: Int64, + currency: String, + description: String, disableNotification: Bool? = nil, - duration: Int? = nil, - length: Int? = nil, + isFlexible: Bool? = nil, + needEmail: Bool? = nil, + needName: Bool? = nil, + needPhoneNumber: Bool? = nil, + needShippingAddress: Bool? = nil, + payload: String, + photoHeight: Int? = nil, + photoSize: Int? = nil, + photoUrl: String? = nil, + photoWidth: Int? = nil, + prices: [LabeledPrice], + providerData: String? = nil, + providerToken: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - videoNote: FileInfo, + sendEmailToProvider: Bool? = nil, + sendPhoneNumberToProvider: Bool? = nil, + startParameter: String, + title: String, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendVideoNote", defaultParameters["sendVideoNote"], parameters, [ + return requestSync("sendInvoice", defaultParameters["sendInvoice"], parameters, [ "chat_id": chatId, +"currency": currency, +"description": description, "disable_notification": disableNotification, -"duration": duration, -"length": length, +"is_flexible": isFlexible, +"need_email": needEmail, +"need_name": needName, +"need_phone_number": needPhoneNumber, +"need_shipping_address": needShippingAddress, +"payload": payload, +"photo_height": photoHeight, +"photo_size": photoSize, +"photo_url": photoUrl, +"photo_width": photoWidth, +"prices": prices, +"provider_data": providerData, +"provider_token": providerToken, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"thumb": thumb, -"video_note": videoNote]) +"send_email_to_provider": sendEmailToProvider, +"send_phone_number_to_provider": sendPhoneNumberToProvider, +"start_parameter": startParameter, +"title": title]) } - func sendVideoNoteAsync( - chatId: ChatId, + func sendInvoiceAsync( + chatId: Int64, + currency: String, + description: String, disableNotification: Bool? = nil, - duration: Int? = nil, - length: Int? = nil, + isFlexible: Bool? = nil, + needEmail: Bool? = nil, + needName: Bool? = nil, + needPhoneNumber: Bool? = nil, + needShippingAddress: Bool? = nil, + payload: String, + photoHeight: Int? = nil, + photoSize: Int? = nil, + photoUrl: String? = nil, + photoWidth: Int? = nil, + prices: [LabeledPrice], + providerData: String? = nil, + providerToken: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - videoNote: FileInfo, + sendEmailToProvider: Bool? = nil, + sendPhoneNumberToProvider: Bool? = nil, + startParameter: String, + title: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendVideoNoteCompletion? = nil) { - return requestAsync("sendVideoNote", defaultParameters["sendVideoNote"], parameters, [ + completion: SendInvoiceCompletion? = nil) { + return requestAsync("sendInvoice", defaultParameters["sendInvoice"], parameters, [ "chat_id": chatId, +"currency": currency, +"description": description, "disable_notification": disableNotification, -"duration": duration, -"length": length, +"is_flexible": isFlexible, +"need_email": needEmail, +"need_name": needName, +"need_phone_number": needPhoneNumber, +"need_shipping_address": needShippingAddress, +"payload": payload, +"photo_height": photoHeight, +"photo_size": photoSize, +"photo_url": photoUrl, +"photo_width": photoWidth, +"prices": prices, +"provider_data": providerData, +"provider_token": providerToken, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"thumb": thumb, -"video_note": videoNote], - queue: queue, completion: completion) - } - typealias GetChatMemberCompletion = (_ result: ChatMember?, _ error: DataTaskError?) -> () - - @discardableResult - func getChatMemberSync( - chatId: ChatId, - userId: Int, - _ parameters: [String: Any?] = [:]) -> ChatMember? { - return requestSync("getChatMember", defaultParameters["getChatMember"], parameters, [ - "chat_id": chatId, -"user_id": userId]) - } - - func getChatMemberAsync( - chatId: ChatId, - userId: Int, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: GetChatMemberCompletion? = nil) { - return requestAsync("getChatMember", defaultParameters["getChatMember"], parameters, [ - "chat_id": chatId, -"user_id": userId], +"send_email_to_provider": sendEmailToProvider, +"send_phone_number_to_provider": sendPhoneNumberToProvider, +"start_parameter": startParameter, +"title": title], queue: queue, completion: completion) } - typealias SendAnimationCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendGameCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendAnimationSync( - animation: FileInfo, - caption: String? = nil, - chatId: ChatId, + func sendGameSync( + chatId: Int64, disableNotification: Bool? = nil, - duration: Int? = nil, - height: Int? = nil, - parseMode: String? = nil, + gameShortName: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - width: Int? = nil, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendAnimation", defaultParameters["sendAnimation"], parameters, [ - "animation": animation, -"caption": caption, -"chat_id": chatId, + return requestSync("sendGame", defaultParameters["sendGame"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"height": height, -"parse_mode": parseMode, +"game_short_name": gameShortName, "reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"thumb": thumb, -"width": width]) +"reply_to_message_id": replyToMessageId]) } - func sendAnimationAsync( - animation: FileInfo, - caption: String? = nil, - chatId: ChatId, + func sendGameAsync( + chatId: Int64, disableNotification: Bool? = nil, - duration: Int? = nil, - height: Int? = nil, - parseMode: String? = nil, + gameShortName: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, - width: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendAnimationCompletion? = nil) { - return requestAsync("sendAnimation", defaultParameters["sendAnimation"], parameters, [ - "animation": animation, -"caption": caption, -"chat_id": chatId, + completion: SendGameCompletion? = nil) { + return requestAsync("sendGame", defaultParameters["sendGame"], parameters, [ + "chat_id": chatId, "disable_notification": disableNotification, -"duration": duration, -"height": height, -"parse_mode": parseMode, +"game_short_name": gameShortName, "reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"thumb": thumb, -"width": width], +"reply_to_message_id": replyToMessageId], queue: queue, completion: completion) } - typealias LeaveChatCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SendMediaGroupCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func leaveChatSync( + func sendMediaGroupSync( chatId: ChatId, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("leaveChat", defaultParameters["leaveChat"], parameters, [ - "chat_id": chatId]) + disableNotification: Bool? = nil, + media: [InputMedia], + replyToMessageId: Int? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendMediaGroup", defaultParameters["sendMediaGroup"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"media": media, +"reply_to_message_id": replyToMessageId]) } - func leaveChatAsync( + func sendMediaGroupAsync( chatId: ChatId, + disableNotification: Bool? = nil, + media: [InputMedia], + replyToMessageId: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: LeaveChatCompletion? = nil) { - return requestAsync("leaveChat", defaultParameters["leaveChat"], parameters, [ - "chat_id": chatId], + completion: SendMediaGroupCompletion? = nil) { + return requestAsync("sendMediaGroup", defaultParameters["sendMediaGroup"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"media": media, +"reply_to_message_id": replyToMessageId], queue: queue, completion: completion) } - typealias SendVoiceCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias EditMessageCaptionCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () @discardableResult - func sendVoiceSync( + func editMessageCaptionSync( caption: String? = nil, - chatId: ChatId, - disableNotification: Bool? = nil, - duration: Int? = nil, + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Bool? = nil, - voice: FileInfo, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendVoice", defaultParameters["sendVoice"], parameters, [ + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("editMessageCaption", defaultParameters["editMessageCaption"], parameters, [ "caption": caption, "chat_id": chatId, -"disable_notification": disableNotification, -"duration": duration, +"inline_message_id": inlineMessageId, +"message_id": messageId, "parse_mode": parseMode, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"voice": voice]) +"reply_markup": replyMarkup]) } - func sendVoiceAsync( + func editMessageCaptionAsync( caption: String? = nil, - chatId: ChatId, - disableNotification: Bool? = nil, - duration: Int? = nil, + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Bool? = nil, - voice: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendVoiceCompletion? = nil) { - return requestAsync("sendVoice", defaultParameters["sendVoice"], parameters, [ + completion: EditMessageCaptionCompletion? = nil) { + return requestAsync("editMessageCaption", defaultParameters["editMessageCaption"], parameters, [ "caption": caption, "chat_id": chatId, -"disable_notification": disableNotification, -"duration": duration, +"inline_message_id": inlineMessageId, +"message_id": messageId, "parse_mode": parseMode, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"voice": voice], +"reply_markup": replyMarkup], queue: queue, completion: completion) } - typealias GetFileCompletion = (_ result: File?, _ error: DataTaskError?) -> () + typealias LeaveChatCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func getFileSync( - fileId: String, - _ parameters: [String: Any?] = [:]) -> File? { - return requestSync("getFile", defaultParameters["getFile"], parameters, [ - "file_id": fileId]) + func leaveChatSync( + chatId: ChatId, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("leaveChat", defaultParameters["leaveChat"], parameters, [ + "chat_id": chatId]) } - func getFileAsync( - fileId: String, + func leaveChatAsync( + chatId: ChatId, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetFileCompletion? = nil) { - return requestAsync("getFile", defaultParameters["getFile"], parameters, [ - "file_id": fileId], + completion: LeaveChatCompletion? = nil) { + return requestAsync("leaveChat", defaultParameters["leaveChat"], parameters, [ + "chat_id": chatId], queue: queue, completion: completion) } - typealias SendPhotoCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias StopMessageLiveLocationCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () @discardableResult - func sendPhotoSync( - caption: String? = nil, - chatId: ChatId, - disableNotification: Bool? = nil, - parseMode: String? = nil, - photo: FileInfo, + func stopMessageLiveLocationSync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendPhoto", defaultParameters["sendPhoto"], parameters, [ - "caption": caption, -"chat_id": chatId, -"disable_notification": disableNotification, -"parse_mode": parseMode, -"photo": photo, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId]) + _ parameters: [String: Any?] = [:]) -> MessageOrBool? { + return requestSync("stopMessageLiveLocation", defaultParameters["stopMessageLiveLocation"], parameters, [ + "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"reply_markup": replyMarkup]) } - func sendPhotoAsync( - caption: String? = nil, - chatId: ChatId, - disableNotification: Bool? = nil, - parseMode: String? = nil, - photo: FileInfo, + func stopMessageLiveLocationAsync( + chatId: ChatId? = nil, + inlineMessageId: String? = nil, + messageId: Int? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendPhotoCompletion? = nil) { - return requestAsync("sendPhoto", defaultParameters["sendPhoto"], parameters, [ - "caption": caption, -"chat_id": chatId, -"disable_notification": disableNotification, -"parse_mode": parseMode, -"photo": photo, -"reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId], + completion: StopMessageLiveLocationCompletion? = nil) { + return requestAsync("stopMessageLiveLocation", defaultParameters["stopMessageLiveLocation"], parameters, [ + "chat_id": chatId, +"inline_message_id": inlineMessageId, +"message_id": messageId, +"reply_markup": replyMarkup], queue: queue, completion: completion) } - typealias DeleteWebhookCompletion = (_ result: WebhookInfo?, _ error: DataTaskError?) -> () + typealias AnswerCallbackQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func deleteWebhookSync( - - _ parameters: [String: Any?] = [:]) -> WebhookInfo? { - return requestSync("deleteWebhook", defaultParameters["deleteWebhook"], parameters, [ - :]) + func answerCallbackQuerySync( + cacheTime: Int? = nil, + callbackQueryId: String, + showAlert: Bool? = nil, + text: String? = nil, + url: String? = nil, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("answerCallbackQuery", defaultParameters["answerCallbackQuery"], parameters, [ + "cache_time": cacheTime, +"callback_query_id": callbackQueryId, +"show_alert": showAlert, +"text": text, +"url": url]) } - func deleteWebhookAsync( - + func answerCallbackQueryAsync( + cacheTime: Int? = nil, + callbackQueryId: String, + showAlert: Bool? = nil, + text: String? = nil, + url: String? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: DeleteWebhookCompletion? = nil) { - return requestAsync("deleteWebhook", defaultParameters["deleteWebhook"], parameters, [ - :], + completion: AnswerCallbackQueryCompletion? = nil) { + return requestAsync("answerCallbackQuery", defaultParameters["answerCallbackQuery"], parameters, [ + "cache_time": cacheTime, +"callback_query_id": callbackQueryId, +"show_alert": showAlert, +"text": text, +"url": url], queue: queue, completion: completion) } - typealias AnswerShippingQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias AnswerPreCheckoutQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func answerShippingQuerySync( + func answerPreCheckoutQuerySync( errorMessage: String? = nil, ok: Bool, - shippingOptions: [ShippingOption]? = nil, - shippingQueryId: String, + preCheckoutQueryId: String, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("answerShippingQuery", defaultParameters["answerShippingQuery"], parameters, [ + return requestSync("answerPreCheckoutQuery", defaultParameters["answerPreCheckoutQuery"], parameters, [ "error_message": errorMessage, "ok": ok, -"shipping_options": shippingOptions, -"shipping_query_id": shippingQueryId]) +"pre_checkout_query_id": preCheckoutQueryId]) } - func answerShippingQueryAsync( + func answerPreCheckoutQueryAsync( errorMessage: String? = nil, ok: Bool, - shippingOptions: [ShippingOption]? = nil, - shippingQueryId: String, + preCheckoutQueryId: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: AnswerShippingQueryCompletion? = nil) { - return requestAsync("answerShippingQuery", defaultParameters["answerShippingQuery"], parameters, [ + completion: AnswerPreCheckoutQueryCompletion? = nil) { + return requestAsync("answerPreCheckoutQuery", defaultParameters["answerPreCheckoutQuery"], parameters, [ "error_message": errorMessage, "ok": ok, -"shipping_options": shippingOptions, -"shipping_query_id": shippingQueryId], +"pre_checkout_query_id": preCheckoutQueryId], queue: queue, completion: completion) } - typealias EditMessageMediaCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias SendVenueCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func editMessageMediaSync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - media: InputMedia, - messageId: Int? = nil, + func sendVenueSync( + address: String, + chatId: ChatId, + disableNotification: Bool? = nil, + foursquareId: String? = nil, + foursquareType: String? = nil, + latitude: Float, + longitude: Float, replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("editMessageMedia", defaultParameters["editMessageMedia"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"media": media, -"message_id": messageId, -"reply_markup": replyMarkup]) + replyToMessageId: Int? = nil, + title: String, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendVenue", defaultParameters["sendVenue"], parameters, [ + "address": address, +"chat_id": chatId, +"disable_notification": disableNotification, +"foursquare_id": foursquareId, +"foursquare_type": foursquareType, +"latitude": latitude, +"longitude": longitude, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"title": title]) } - func editMessageMediaAsync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - media: InputMedia, - messageId: Int? = nil, + func sendVenueAsync( + address: String, + chatId: ChatId, + disableNotification: Bool? = nil, + foursquareId: String? = nil, + foursquareType: String? = nil, + latitude: Float, + longitude: Float, replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + title: String, _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: EditMessageMediaCompletion? = nil) { - return requestAsync("editMessageMedia", defaultParameters["editMessageMedia"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"media": media, -"message_id": messageId, -"reply_markup": replyMarkup], + queue: DispatchQueue = .main, + completion: SendVenueCompletion? = nil) { + return requestAsync("sendVenue", defaultParameters["sendVenue"], parameters, [ + "address": address, +"chat_id": chatId, +"disable_notification": disableNotification, +"foursquare_id": foursquareId, +"foursquare_type": foursquareType, +"latitude": latitude, +"longitude": longitude, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"title": title], queue: queue, completion: completion) } - typealias EditMessageTextCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias SetChatPhotoCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func editMessageTextSync( - chatId: ChatId? = nil, - disableWebPagePreview: Bool? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, - parseMode: String? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, - text: String, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("editMessageText", defaultParameters["editMessageText"], parameters, [ + func setChatPhotoSync( + chatId: ChatId, + photo: FileInfo, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("setChatPhoto", defaultParameters["setChatPhoto"], parameters, [ "chat_id": chatId, -"disable_web_page_preview": disableWebPagePreview, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"parse_mode": parseMode, -"reply_markup": replyMarkup, -"text": text]) +"photo": photo]) } - func editMessageTextAsync( - chatId: ChatId? = nil, - disableWebPagePreview: Bool? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, - parseMode: String? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, - text: String, + func setChatPhotoAsync( + chatId: ChatId, + photo: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: EditMessageTextCompletion? = nil) { - return requestAsync("editMessageText", defaultParameters["editMessageText"], parameters, [ + completion: SetChatPhotoCompletion? = nil) { + return requestAsync("setChatPhoto", defaultParameters["setChatPhoto"], parameters, [ "chat_id": chatId, -"disable_web_page_preview": disableWebPagePreview, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"parse_mode": parseMode, -"reply_markup": replyMarkup, -"text": text], +"photo": photo], queue: queue, completion: completion) } typealias RestrictChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @@ -1590,532 +1622,527 @@ public extension TelegramBot { "user_id": userId], queue: queue, completion: completion) } - typealias EditMessageCaptionCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () + typealias SendVideoCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func editMessageCaptionSync( + func sendVideoSync( caption: String? = nil, - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + height: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("editMessageCaption", defaultParameters["editMessageCaption"], parameters, [ + replyToMessageId: Int? = nil, + supportsStreaming: Bool? = nil, + thumb: InputFileOrString? = nil, + video: FileInfo, + width: Int? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendVideo", defaultParameters["sendVideo"], parameters, [ "caption": caption, "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, +"disable_notification": disableNotification, +"duration": duration, +"height": height, "parse_mode": parseMode, -"reply_markup": replyMarkup]) +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"supports_streaming": supportsStreaming, +"thumb": thumb, +"video": video, +"width": width]) } - func editMessageCaptionAsync( + func sendVideoAsync( caption: String? = nil, - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + height: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + supportsStreaming: Bool? = nil, + thumb: InputFileOrString? = nil, + video: FileInfo, + width: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: EditMessageCaptionCompletion? = nil) { - return requestAsync("editMessageCaption", defaultParameters["editMessageCaption"], parameters, [ + completion: SendVideoCompletion? = nil) { + return requestAsync("sendVideo", defaultParameters["sendVideo"], parameters, [ "caption": caption, "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"parse_mode": parseMode, -"reply_markup": replyMarkup], - queue: queue, completion: completion) - } - typealias ForwardMessageCompletion = (_ result: Message?, _ error: DataTaskError?) -> () - - @discardableResult - func forwardMessageSync( - chatId: ChatId, - disableNotification: Bool? = nil, - fromChatId: ChatId, - messageId: Int, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("forwardMessage", defaultParameters["forwardMessage"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"from_chat_id": fromChatId, -"message_id": messageId]) - } - - func forwardMessageAsync( - chatId: ChatId, - disableNotification: Bool? = nil, - fromChatId: ChatId, - messageId: Int, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: ForwardMessageCompletion? = nil) { - return requestAsync("forwardMessage", defaultParameters["forwardMessage"], parameters, [ - "chat_id": chatId, "disable_notification": disableNotification, -"from_chat_id": fromChatId, -"message_id": messageId], - queue: queue, completion: completion) - } - typealias EditMessageReplyMarkupCompletion = (_ result: MessageOrBool?, _ error: DataTaskError?) -> () - - @discardableResult - func editMessageReplyMarkupSync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:]) -> MessageOrBool? { - return requestSync("editMessageReplyMarkup", defaultParameters["editMessageReplyMarkup"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"reply_markup": replyMarkup]) - } - - func editMessageReplyMarkupAsync( - chatId: ChatId? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, - replyMarkup: InlineKeyboardMarkup? = nil, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: EditMessageReplyMarkupCompletion? = nil) { - return requestAsync("editMessageReplyMarkup", defaultParameters["editMessageReplyMarkup"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, -"reply_markup": replyMarkup], +"duration": duration, +"height": height, +"parse_mode": parseMode, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"supports_streaming": supportsStreaming, +"thumb": thumb, +"video": video, +"width": width], queue: queue, completion: completion) } - typealias SetChatTitleCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias CreateNewStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func setChatTitleSync( - chatId: ChatId, - title: String, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setChatTitle", defaultParameters["setChatTitle"], parameters, [ - "chat_id": chatId, -"title": title]) - } - - func setChatTitleAsync( - chatId: ChatId, + func createNewStickerSetSync( + containsMasks: Bool? = nil, + emojis: String, + maskPosition: Bool? = nil, + name: String, + pngSticker: FileInfo, title: String, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: SetChatTitleCompletion? = nil) { - return requestAsync("setChatTitle", defaultParameters["setChatTitle"], parameters, [ - "chat_id": chatId, -"title": title], - queue: queue, completion: completion) - } - typealias DeleteChatPhotoCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () - - @discardableResult - func deleteChatPhotoSync( - chatId: ChatId, + userId: Int64, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("deleteChatPhoto", defaultParameters["deleteChatPhoto"], parameters, [ - "chat_id": chatId]) - } - - func deleteChatPhotoAsync( - chatId: ChatId, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: DeleteChatPhotoCompletion? = nil) { - return requestAsync("deleteChatPhoto", defaultParameters["deleteChatPhoto"], parameters, [ - "chat_id": chatId], - queue: queue, completion: completion) - } - typealias SendMediaGroupCompletion = (_ result: Message?, _ error: DataTaskError?) -> () - - @discardableResult - func sendMediaGroupSync( - chatId: ChatId, - disableNotification: Bool? = nil, - media: [InputMedia], - replyToMessageId: Int? = nil, - _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendMediaGroup", defaultParameters["sendMediaGroup"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"media": media, -"reply_to_message_id": replyToMessageId]) + return requestSync("createNewStickerSet", defaultParameters["createNewStickerSet"], parameters, [ + "contains_masks": containsMasks, +"emojis": emojis, +"mask_position": maskPosition, +"name": name, +"png_sticker": pngSticker, +"title": title, +"user_id": userId]) } - func sendMediaGroupAsync( - chatId: ChatId, - disableNotification: Bool? = nil, - media: [InputMedia], - replyToMessageId: Int? = nil, + func createNewStickerSetAsync( + containsMasks: Bool? = nil, + emojis: String, + maskPosition: Bool? = nil, + name: String, + pngSticker: FileInfo, + title: String, + userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendMediaGroupCompletion? = nil) { - return requestAsync("sendMediaGroup", defaultParameters["sendMediaGroup"], parameters, [ - "chat_id": chatId, -"disable_notification": disableNotification, -"media": media, -"reply_to_message_id": replyToMessageId], + completion: CreateNewStickerSetCompletion? = nil) { + return requestAsync("createNewStickerSet", defaultParameters["createNewStickerSet"], parameters, [ + "contains_masks": containsMasks, +"emojis": emojis, +"mask_position": maskPosition, +"name": name, +"png_sticker": pngSticker, +"title": title, +"user_id": userId], queue: queue, completion: completion) } - typealias SendDocumentCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendVoiceCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendDocumentSync( + func sendVoiceSync( caption: String? = nil, chatId: ChatId, disableNotification: Bool? = nil, - document: FileInfo, + duration: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, + replyToMessageId: Bool? = nil, + voice: FileInfo, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendDocument", defaultParameters["sendDocument"], parameters, [ + return requestSync("sendVoice", defaultParameters["sendVoice"], parameters, [ "caption": caption, "chat_id": chatId, "disable_notification": disableNotification, -"document": document, +"duration": duration, "parse_mode": parseMode, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"thumb": thumb]) +"voice": voice]) } - func sendDocumentAsync( + func sendVoiceAsync( caption: String? = nil, chatId: ChatId, disableNotification: Bool? = nil, - document: FileInfo, + duration: Int? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, - replyToMessageId: Int? = nil, - thumb: FileInfo? = nil, + replyToMessageId: Bool? = nil, + voice: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendDocumentCompletion? = nil) { - return requestAsync("sendDocument", defaultParameters["sendDocument"], parameters, [ + completion: SendVoiceCompletion? = nil) { + return requestAsync("sendVoice", defaultParameters["sendVoice"], parameters, [ "caption": caption, "chat_id": chatId, "disable_notification": disableNotification, -"document": document, +"duration": duration, "parse_mode": parseMode, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"thumb": thumb], - queue: queue, completion: completion) - } - typealias SetChatPermissionsCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () - - @discardableResult - func setChatPermissionsSync( - chatId: ChatId, - permissions: ChatPermissions, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("setChatPermissions", defaultParameters["setChatPermissions"], parameters, [ - "chat_id": chatId, -"permissions": permissions]) - } - - func setChatPermissionsAsync( - chatId: ChatId, - permissions: ChatPermissions, - _ parameters: [String: Any?] = [:], - queue: DispatchQueue = .main, - completion: SetChatPermissionsCompletion? = nil) { - return requestAsync("setChatPermissions", defaultParameters["setChatPermissions"], parameters, [ - "chat_id": chatId, -"permissions": permissions], +"voice": voice], queue: queue, completion: completion) } - typealias KickChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias PromoteChatMemberCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func kickChatMemberSync( - chatId: ChatId, - untilDate: Int? = nil, - userId: Int64, + func promoteChatMemberSync( + canChangeInfo: Bool? = nil, + canDeleteMessages: Bool? = nil, + canEditMessages: Bool? = nil, + canInviteUsers: Bool? = nil, + canPinMessages: Bool? = nil, + canPostMessages: Bool? = nil, + canPromoteMembers: Bool? = nil, + canRestrictMembers: Bool? = nil, + chatId: ChatId, + userId: Int, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("kickChatMember", defaultParameters["kickChatMember"], parameters, [ - "chat_id": chatId, -"until_date": untilDate, + return requestSync("promoteChatMember", defaultParameters["promoteChatMember"], parameters, [ + "can_change_info": canChangeInfo, +"can_delete_messages": canDeleteMessages, +"can_edit_messages": canEditMessages, +"can_invite_users": canInviteUsers, +"can_pin_messages": canPinMessages, +"can_post_messages": canPostMessages, +"can_promote_members": canPromoteMembers, +"can_restrict_members": canRestrictMembers, +"chat_id": chatId, "user_id": userId]) } - func kickChatMemberAsync( - chatId: ChatId, - untilDate: Int? = nil, - userId: Int64, + func promoteChatMemberAsync( + canChangeInfo: Bool? = nil, + canDeleteMessages: Bool? = nil, + canEditMessages: Bool? = nil, + canInviteUsers: Bool? = nil, + canPinMessages: Bool? = nil, + canPostMessages: Bool? = nil, + canPromoteMembers: Bool? = nil, + canRestrictMembers: Bool? = nil, + chatId: ChatId, + userId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: KickChatMemberCompletion? = nil) { - return requestAsync("kickChatMember", defaultParameters["kickChatMember"], parameters, [ - "chat_id": chatId, -"until_date": untilDate, + completion: PromoteChatMemberCompletion? = nil) { + return requestAsync("promoteChatMember", defaultParameters["promoteChatMember"], parameters, [ + "can_change_info": canChangeInfo, +"can_delete_messages": canDeleteMessages, +"can_edit_messages": canEditMessages, +"can_invite_users": canInviteUsers, +"can_pin_messages": canPinMessages, +"can_post_messages": canPostMessages, +"can_promote_members": canPromoteMembers, +"can_restrict_members": canRestrictMembers, +"chat_id": chatId, "user_id": userId], queue: queue, completion: completion) } - typealias GetGameHighScoresCompletion = (_ result: [GameHighScore]?, _ error: DataTaskError?) -> () + typealias GetUserProfilePhotosCompletion = (_ result: UserProfilePhotos?, _ error: DataTaskError?) -> () @discardableResult - func getGameHighScoresSync( - chatId: Int64? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + func getUserProfilePhotosSync( + limit: Int? = nil, + offset: Int? = nil, userId: Int64, - _ parameters: [String: Any?] = [:]) -> [GameHighScore]? { - return requestSync("getGameHighScores", defaultParameters["getGameHighScores"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, + _ parameters: [String: Any?] = [:]) -> UserProfilePhotos? { + return requestSync("getUserProfilePhotos", defaultParameters["getUserProfilePhotos"], parameters, [ + "limit": limit, +"offset": offset, "user_id": userId]) } - func getGameHighScoresAsync( - chatId: Int64? = nil, - inlineMessageId: String? = nil, - messageId: Int? = nil, + func getUserProfilePhotosAsync( + limit: Int? = nil, + offset: Int? = nil, userId: Int64, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: GetGameHighScoresCompletion? = nil) { - return requestAsync("getGameHighScores", defaultParameters["getGameHighScores"], parameters, [ - "chat_id": chatId, -"inline_message_id": inlineMessageId, -"message_id": messageId, + completion: GetUserProfilePhotosCompletion? = nil) { + return requestAsync("getUserProfilePhotos", defaultParameters["getUserProfilePhotos"], parameters, [ + "limit": limit, +"offset": offset, "user_id": userId], queue: queue, completion: completion) } - typealias DeleteStickerFromSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SendVideoNoteCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func deleteStickerFromSetSync( - sticker: String, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("deleteStickerFromSet", defaultParameters["deleteStickerFromSet"], parameters, [ - "sticker": sticker]) + func sendVideoNoteSync( + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + length: Int? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, + videoNote: FileInfo, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendVideoNote", defaultParameters["sendVideoNote"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"duration": duration, +"length": length, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb, +"video_note": videoNote]) } - func deleteStickerFromSetAsync( - sticker: String, + func sendVideoNoteAsync( + chatId: ChatId, + disableNotification: Bool? = nil, + duration: Int? = nil, + length: Int? = nil, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + thumb: FileInfo? = nil, + videoNote: FileInfo, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: DeleteStickerFromSetCompletion? = nil) { - return requestAsync("deleteStickerFromSet", defaultParameters["deleteStickerFromSet"], parameters, [ - "sticker": sticker], + completion: SendVideoNoteCompletion? = nil) { + return requestAsync("sendVideoNote", defaultParameters["sendVideoNote"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"duration": duration, +"length": length, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId, +"thumb": thumb, +"video_note": videoNote], queue: queue, completion: completion) } - typealias AnswerPreCheckoutQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SendLocationCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func answerPreCheckoutQuerySync( - errorMessage: String? = nil, - ok: Bool, - preCheckoutQueryId: String, - _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("answerPreCheckoutQuery", defaultParameters["answerPreCheckoutQuery"], parameters, [ - "error_message": errorMessage, -"ok": ok, -"pre_checkout_query_id": preCheckoutQueryId]) - } - - func answerPreCheckoutQueryAsync( - errorMessage: String? = nil, - ok: Bool, - preCheckoutQueryId: String, + func sendLocationSync( + chatId: ChatId, + disableNotification: Bool? = nil, + latitude: Float, + livePeriod: Int? = nil, + longitude: Float, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, + _ parameters: [String: Any?] = [:]) -> Message? { + return requestSync("sendLocation", defaultParameters["sendLocation"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"latitude": latitude, +"live_period": livePeriod, +"longitude": longitude, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId]) + } + + func sendLocationAsync( + chatId: ChatId, + disableNotification: Bool? = nil, + latitude: Float, + livePeriod: Int? = nil, + longitude: Float, + replyMarkup: InlineKeyboardMarkup? = nil, + replyToMessageId: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: AnswerPreCheckoutQueryCompletion? = nil) { - return requestAsync("answerPreCheckoutQuery", defaultParameters["answerPreCheckoutQuery"], parameters, [ - "error_message": errorMessage, -"ok": ok, -"pre_checkout_query_id": preCheckoutQueryId], + completion: SendLocationCompletion? = nil) { + return requestAsync("sendLocation", defaultParameters["sendLocation"], parameters, [ + "chat_id": chatId, +"disable_notification": disableNotification, +"latitude": latitude, +"live_period": livePeriod, +"longitude": longitude, +"reply_markup": replyMarkup, +"reply_to_message_id": replyToMessageId], queue: queue, completion: completion) } - typealias SendContactCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendPollCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendContactSync( + func sendPollSync( chatId: ChatId, disableNotification: Bool? = nil, - firstName: String, - lastName: String? = nil, - phoneNumber: String, + options: [String], + question: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - vcard: String? = nil, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendContact", defaultParameters["sendContact"], parameters, [ + return requestSync("sendPoll", defaultParameters["sendPoll"], parameters, [ "chat_id": chatId, "disable_notification": disableNotification, -"first_name": firstName, -"last_name": lastName, -"phone_number": phoneNumber, +"options": options, +"question": question, "reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"vcard": vcard]) +"reply_to_message_id": replyToMessageId]) } - func sendContactAsync( + func sendPollAsync( chatId: ChatId, disableNotification: Bool? = nil, - firstName: String, - lastName: String? = nil, - phoneNumber: String, + options: [String], + question: String, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - vcard: String? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendContactCompletion? = nil) { - return requestAsync("sendContact", defaultParameters["sendContact"], parameters, [ + completion: SendPollCompletion? = nil) { + return requestAsync("sendPoll", defaultParameters["sendPoll"], parameters, [ "chat_id": chatId, "disable_notification": disableNotification, -"first_name": firstName, -"last_name": lastName, -"phone_number": phoneNumber, +"options": options, +"question": question, "reply_markup": replyMarkup, -"reply_to_message_id": replyToMessageId, -"vcard": vcard], +"reply_to_message_id": replyToMessageId], queue: queue, completion: completion) } - typealias SendVenueCompletion = (_ result: Message?, _ error: DataTaskError?) -> () + typealias SendAnimationCompletion = (_ result: Message?, _ error: DataTaskError?) -> () @discardableResult - func sendVenueSync( - address: String, + func sendAnimationSync( + animation: FileInfo, + caption: String? = nil, chatId: ChatId, disableNotification: Bool? = nil, - foursquareId: String? = nil, - foursquareType: String? = nil, - latitude: Float, - longitude: Float, + duration: Int? = nil, + height: Int? = nil, + parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - title: String, + thumb: FileInfo? = nil, + width: Int? = nil, _ parameters: [String: Any?] = [:]) -> Message? { - return requestSync("sendVenue", defaultParameters["sendVenue"], parameters, [ - "address": address, + return requestSync("sendAnimation", defaultParameters["sendAnimation"], parameters, [ + "animation": animation, +"caption": caption, "chat_id": chatId, "disable_notification": disableNotification, -"foursquare_id": foursquareId, -"foursquare_type": foursquareType, -"latitude": latitude, -"longitude": longitude, +"duration": duration, +"height": height, +"parse_mode": parseMode, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"title": title]) +"thumb": thumb, +"width": width]) } - func sendVenueAsync( - address: String, + func sendAnimationAsync( + animation: FileInfo, + caption: String? = nil, chatId: ChatId, disableNotification: Bool? = nil, - foursquareId: String? = nil, - foursquareType: String? = nil, - latitude: Float, - longitude: Float, + duration: Int? = nil, + height: Int? = nil, + parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, replyToMessageId: Int? = nil, - title: String, + thumb: FileInfo? = nil, + width: Int? = nil, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: SendVenueCompletion? = nil) { - return requestAsync("sendVenue", defaultParameters["sendVenue"], parameters, [ - "address": address, + completion: SendAnimationCompletion? = nil) { + return requestAsync("sendAnimation", defaultParameters["sendAnimation"], parameters, [ + "animation": animation, +"caption": caption, "chat_id": chatId, "disable_notification": disableNotification, -"foursquare_id": foursquareId, -"foursquare_type": foursquareType, -"latitude": latitude, -"longitude": longitude, +"duration": duration, +"height": height, +"parse_mode": parseMode, "reply_markup": replyMarkup, "reply_to_message_id": replyToMessageId, -"title": title], +"thumb": thumb, +"width": width], queue: queue, completion: completion) } - typealias CreateNewStickerSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias SetChatAdministratorCustomTitleCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () @discardableResult - func createNewStickerSetSync( - containsMasks: Bool? = nil, - emojis: String, - maskPosition: Bool? = nil, - name: String, - pngSticker: FileInfo, - title: String, - userId: Int64, + func setChatAdministratorCustomTitleSync( + chatId: ChatId, + customTitle: String, + userId: Int, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("createNewStickerSet", defaultParameters["createNewStickerSet"], parameters, [ - "contains_masks": containsMasks, -"emojis": emojis, -"mask_position": maskPosition, -"name": name, -"png_sticker": pngSticker, -"title": title, + return requestSync("setChatAdministratorCustomTitle", defaultParameters["setChatAdministratorCustomTitle"], parameters, [ + "chat_id": chatId, +"custom_title": customTitle, "user_id": userId]) } - func createNewStickerSetAsync( - containsMasks: Bool? = nil, - emojis: String, - maskPosition: Bool? = nil, - name: String, - pngSticker: FileInfo, - title: String, - userId: Int64, + func setChatAdministratorCustomTitleAsync( + chatId: ChatId, + customTitle: String, + userId: Int, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: CreateNewStickerSetCompletion? = nil) { - return requestAsync("createNewStickerSet", defaultParameters["createNewStickerSet"], parameters, [ - "contains_masks": containsMasks, -"emojis": emojis, -"mask_position": maskPosition, -"name": name, -"png_sticker": pngSticker, -"title": title, + completion: SetChatAdministratorCustomTitleCompletion? = nil) { + return requestAsync("setChatAdministratorCustomTitle", defaultParameters["setChatAdministratorCustomTitle"], parameters, [ + "chat_id": chatId, +"custom_title": customTitle, "user_id": userId], queue: queue, completion: completion) } - typealias AddStickerToSetCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + typealias GetMeCompletion = (_ result: User?, _ error: DataTaskError?) -> () @discardableResult - func addStickerToSetSync( - emojis: String, - maskPosition: MaskPosition? = nil, - name: String, - pngSticker: FileInfo, - userId: Int, + func getMeSync( + + _ parameters: [String: Any?] = [:]) -> User? { + return requestSync("getMe", defaultParameters["getMe"], parameters, [ + :]) + } + + func getMeAsync( + + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: GetMeCompletion? = nil) { + return requestAsync("getMe", defaultParameters["getMe"], parameters, [ + :], + queue: queue, completion: completion) + } + typealias SetChatTitleCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + + @discardableResult + func setChatTitleSync( + chatId: ChatId, + title: String, _ parameters: [String: Any?] = [:]) -> Bool? { - return requestSync("addStickerToSet", defaultParameters["addStickerToSet"], parameters, [ - "emojis": emojis, -"mask_position": maskPosition, -"name": name, -"png_sticker": pngSticker, -"user_id": userId]) + return requestSync("setChatTitle", defaultParameters["setChatTitle"], parameters, [ + "chat_id": chatId, +"title": title]) } - func addStickerToSetAsync( - emojis: String, - maskPosition: MaskPosition? = nil, - name: String, - pngSticker: FileInfo, - userId: Int, + func setChatTitleAsync( + chatId: ChatId, + title: String, _ parameters: [String: Any?] = [:], queue: DispatchQueue = .main, - completion: AddStickerToSetCompletion? = nil) { - return requestAsync("addStickerToSet", defaultParameters["addStickerToSet"], parameters, [ - "emojis": emojis, -"mask_position": maskPosition, -"name": name, -"png_sticker": pngSticker, -"user_id": userId], + completion: SetChatTitleCompletion? = nil) { + return requestAsync("setChatTitle", defaultParameters["setChatTitle"], parameters, [ + "chat_id": chatId, +"title": title], + queue: queue, completion: completion) + } + typealias AnswerShippingQueryCompletion = (_ result: Bool?, _ error: DataTaskError?) -> () + + @discardableResult + func answerShippingQuerySync( + errorMessage: String? = nil, + ok: Bool, + shippingOptions: [ShippingOption]? = nil, + shippingQueryId: String, + _ parameters: [String: Any?] = [:]) -> Bool? { + return requestSync("answerShippingQuery", defaultParameters["answerShippingQuery"], parameters, [ + "error_message": errorMessage, +"ok": ok, +"shipping_options": shippingOptions, +"shipping_query_id": shippingQueryId]) + } + + func answerShippingQueryAsync( + errorMessage: String? = nil, + ok: Bool, + shippingOptions: [ShippingOption]? = nil, + shippingQueryId: String, + _ parameters: [String: Any?] = [:], + queue: DispatchQueue = .main, + completion: AnswerShippingQueryCompletion? = nil) { + return requestAsync("answerShippingQuery", defaultParameters["answerShippingQuery"], parameters, [ + "error_message": errorMessage, +"ok": ok, +"shipping_options": shippingOptions, +"shipping_query_id": shippingQueryId], queue: queue, completion: completion) } diff --git a/Sources/TelegramBotSDK/Generated/Types.swift b/Sources/TelegramBotSDK/Generated/Types.swift index 58344c2..070722f 100644 --- a/Sources/TelegramBotSDK/Generated/Types.swift +++ b/Sources/TelegramBotSDK/Generated/Types.swift @@ -2,44 +2,7 @@ import Foundation -public struct GameHighScore: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var position: Int { - get { return internalJson["position"].intValue } - set { internalJson["position"].intValue = newValue } - } - - public var score: Int { - get { return internalJson["score"].intValue } - set { internalJson["score"].intValue = newValue } - } - - public var user: User { - get { return User(internalJson: internalJson["user"]) } - set { internalJson["user"] = JSON(newValue.json) } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct InlineQueryResultPhoto: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultMpeg4Gif: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -51,11 +14,6 @@ public struct InlineQueryResultPhoto: JsonConvertible, InternalJsonConvertible { set { internalJson["caption"].string = newValue } } - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } - } - public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } @@ -70,24 +28,29 @@ public struct InlineQueryResultPhoto: JsonConvertible, InternalJsonConvertible { } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var mpeg4Duration: Int? { + get { return internalJson["mpeg4_duration"].int } + set { internalJson["mpeg4_duration"].int = newValue } } - public var photoHeight: Int? { - get { return internalJson["photo_height"].int } - set { internalJson["photo_height"].int = newValue } + public var mpeg4Height: Int? { + get { return internalJson["mpeg4_height"].int } + set { internalJson["mpeg4_height"].int = newValue } } - public var photoUrl: String { - get { return internalJson["photo_url"].stringValue } - set { internalJson["photo_url"].stringValue = newValue } + public var mpeg4Url: String { + get { return internalJson["mpeg4_url"].stringValue } + set { internalJson["mpeg4_url"].stringValue = newValue } } - public var photoWidth: Int? { - get { return internalJson["photo_width"].int } - set { internalJson["photo_width"].int = newValue } + public var mpeg4Width: Int? { + get { return internalJson["mpeg4_width"].int } + set { internalJson["mpeg4_width"].int = newValue } + } + + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } public var replyMarkup: InlineKeyboardMarkup? { @@ -130,31 +93,21 @@ public struct InlineQueryResultPhoto: JsonConvertible, InternalJsonConvertible { } -public struct PhotoSize: JsonConvertible, InternalJsonConvertible { +public struct Location: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } - } - - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } - } - - public var height: Int { - get { return internalJson["height"].intValue } - set { internalJson["height"].intValue = newValue } + public var latitude: Float { + get { return internalJson["latitude"].floatValue } + set { internalJson["latitude"].floatValue = newValue } } - public var width: Int { - get { return internalJson["width"].intValue } - set { internalJson["width"].intValue = newValue } + public var longitude: Float { + get { return internalJson["longitude"].floatValue } + set { internalJson["longitude"].floatValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -253,59 +206,7 @@ public struct InlineQueryResultAudio: JsonConvertible, InternalJsonConvertible { } -public struct ShippingAddress: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var city: String { - get { return internalJson["city"].stringValue } - set { internalJson["city"].stringValue = newValue } - } - - public var countryCode: String { - get { return internalJson["country_code"].stringValue } - set { internalJson["country_code"].stringValue = newValue } - } - - public var postCode: String { - get { return internalJson["post_code"].stringValue } - set { internalJson["post_code"].stringValue = newValue } - } - - public var state: String { - get { return internalJson["state"].stringValue } - set { internalJson["state"].stringValue = newValue } - } - - public var streetLine1: String { - get { return internalJson["street_line1"].stringValue } - set { internalJson["street_line1"].stringValue = newValue } - } - - public var streetLine2: String { - get { return internalJson["street_line2"].stringValue } - set { internalJson["street_line2"].stringValue = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedVoice: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -317,26 +218,6 @@ public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { set { internalJson["caption"].string = newValue } } - public var gifDuration: Int? { - get { return internalJson["gif_duration"].int } - set { internalJson["gif_duration"].int = newValue } - } - - public var gifHeight: Int? { - get { return internalJson["gif_height"].int } - set { internalJson["gif_height"].int = newValue } - } - - public var gifUrl: String { - get { return internalJson["gif_url"].stringValue } - set { internalJson["gif_url"].stringValue = newValue } - } - - public var gifWidth: Int? { - get { return internalJson["gif_width"].int } - set { internalJson["gif_width"].int = newValue } - } - public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } @@ -366,14 +247,9 @@ public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { } } - public var thumbUrl: String { - get { return internalJson["thumb_url"].stringValue } - set { internalJson["thumb_url"].stringValue = newValue } - } - - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } public var typeString: String { @@ -381,6 +257,11 @@ public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { set { internalJson["type"].stringValue = newValue } } + public var voiceFileId: String { + get { return internalJson["voice_file_id"].stringValue } + set { internalJson["voice_file_id"].stringValue = newValue } + } + internal init(internalJson: JSON = [:]) { self.internalJson = internalJson } @@ -396,26 +277,26 @@ public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { } -public struct File: JsonConvertible, InternalJsonConvertible { +public struct ShippingOption: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var fileId: String { - get { return internalJson["file_id"].stringValue } - set { internalJson["file_id"].stringValue = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var filePath: String? { - get { return internalJson["file_path"].string } - set { internalJson["file_path"].string = newValue } + public var prices: [LabeledPrice] { + get { return internalJson["prices"].customArrayValue() } + set { internalJson["prices"] = JSON.initFrom(newValue) } } - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -433,26 +314,36 @@ public struct File: JsonConvertible, InternalJsonConvertible { } -public struct InputTextMessageContent: JsonConvertible, InternalJsonConvertible { +public struct StickerSet: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var disableWebPagePreview: Bool? { - get { return internalJson["disable_web_page_preview"].bool } - set { internalJson["disable_web_page_preview"].bool = newValue } + public var containsMasks: Bool { + get { return internalJson["contains_masks"].boolValue } + set { internalJson["contains_masks"].boolValue = newValue } } - public var messageText: String { - get { return internalJson["message_text"].stringValue } - set { internalJson["message_text"].stringValue = newValue } + public var isAnimated: Bool { + get { return internalJson["is_animated"].boolValue } + set { internalJson["is_animated"].boolValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var name: String { + get { return internalJson["name"].stringValue } + set { internalJson["name"].stringValue = newValue } + } + + public var stickers: [Sticker] { + get { return internalJson["stickers"].customArrayValue() } + set { internalJson["stickers"] = JSON.initFrom(newValue) } + } + + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -470,63 +361,41 @@ public struct InputTextMessageContent: JsonConvertible, InternalJsonConvertible } -public struct ForceReply: JsonConvertible, InternalJsonConvertible { +public struct MessageEntity: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var forceReply: Bool { - get { return internalJson["force_reply"].boolValue } - set { internalJson["force_reply"].boolValue = newValue } + public var length: Int { + get { return internalJson["length"].intValue } + set { internalJson["length"].intValue = newValue } } - public var selective: Bool? { - get { return internalJson["selective"].bool } - set { internalJson["selective"].bool = newValue } + public var offset: Int { + get { return internalJson["offset"].intValue } + set { internalJson["offset"].intValue = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct Voice: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var duration: Int { - get { return internalJson["duration"].intValue } - set { internalJson["duration"].intValue = newValue } + public var typeString: String? { + get { return internalJson["type"].string } + set { internalJson["type"].string = newValue } } - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } - } - - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public var url: String? { + get { return internalJson["url"].string } + set { internalJson["url"].string = newValue } } - public var mimeType: String? { - get { return internalJson["mime_type"].string } - set { internalJson["mime_type"].string = newValue } + public var user: User? { + get { + let value = internalJson["user"] + return value.isNullOrUnknown ? nil : User(internalJson: value) + } + set { + internalJson["user"] = newValue?.internalJson ?? JSON.null + } } internal init(internalJson: JSON = [:]) { @@ -544,36 +413,31 @@ public struct Voice: JsonConvertible, InternalJsonConvertible { } -public struct Contact: JsonConvertible, InternalJsonConvertible { +public struct Poll: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var firstName: String { - get { return internalJson["first_name"].stringValue } - set { internalJson["first_name"].stringValue = newValue } - } - - public var lastName: String? { - get { return internalJson["last_name"].string } - set { internalJson["last_name"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var phoneNumber: String { - get { return internalJson["phone_number"].stringValue } - set { internalJson["phone_number"].stringValue = newValue } + public var isClosed: Bool { + get { return internalJson["is_closed"].boolValue } + set { internalJson["is_closed"].boolValue = newValue } } - public var userId: Int64? { - get { return internalJson["user_id"].int64 } - set { internalJson["user_id"].int64 = newValue } + public var options: [PollOption] { + get { return internalJson["options"].customArrayValue() } + set { internalJson["options"] = JSON.initFrom(newValue) } } - public var vcard: String? { - get { return internalJson["vcard"].string } - set { internalJson["vcard"].string = newValue } + public var question: String { + get { return internalJson["question"].stringValue } + set { internalJson["question"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -591,236 +455,355 @@ public struct Contact: JsonConvertible, InternalJsonConvertible { } -public struct Audio: JsonConvertible, InternalJsonConvertible { +public struct Message: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var duration: Int { - get { return internalJson["duration"].intValue } - set { internalJson["duration"].intValue = newValue } + public var animation: Animation? { + get { + let value = internalJson["animation"] + return value.isNullOrUnknown ? nil : Animation(internalJson: value) + } + set { + internalJson["animation"] = newValue?.internalJson ?? JSON.null + } } - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } + public var audio: Audio? { + get { + let value = internalJson["audio"] + return value.isNullOrUnknown ? nil : Audio(internalJson: value) + } + set { + internalJson["audio"] = newValue?.internalJson ?? JSON.null + } } - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public var authorSignature: String? { + get { return internalJson["author_signature"].string } + set { internalJson["author_signature"].string = newValue } } - public var mimeType: String? { - get { return internalJson["mime_type"].string } - set { internalJson["mime_type"].string = newValue } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var performer: String? { - get { return internalJson["performer"].string } - set { internalJson["performer"].string = newValue } + public var captionEntities: [MessageEntity] { + get { return internalJson["caption_entities"].customArrayValue() } + set { internalJson["caption_entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } } - public var thumb: PhotoSize? { + public var channelChatCreated: Bool? { + get { return internalJson["channel_chat_created"].bool } + set { internalJson["channel_chat_created"].bool = newValue } + } + + public var chat: Chat { + get { return Chat(internalJson: internalJson["chat"]) } + set { internalJson["chat"] = JSON(newValue.json) } + } + + public var connectedWebsite: String? { + get { return internalJson["connected_website"].string } + set { internalJson["connected_website"].string = newValue } + } + + public var contact: Contact? { get { - let value = internalJson["thumb"] - return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) + let value = internalJson["contact"] + return value.isNullOrUnknown ? nil : Contact(internalJson: value) } set { - internalJson["thumb"] = newValue?.internalJson ?? JSON.null + internalJson["contact"] = newValue?.internalJson ?? JSON.null } } - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } +public var date: Date { + get { return Date(timeIntervalSince1970: internalJson["date"].doubleValue) } + set { internalJson["date"].double = newValue.timeIntervalSince1970 } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() + public var deleteChatPhoto: Bool? { + get { return internalJson["delete_chat_photo"].bool } + set { internalJson["delete_chat_photo"].bool = newValue } } - public init(json: Any) { - self.internalJson = JSON(json) + + public var document: Document? { + get { + let value = internalJson["document"] + return value.isNullOrUnknown ? nil : Document(internalJson: value) + } + set { + internalJson["document"] = newValue?.internalJson ?? JSON.null + } } - public init(data: Data) { - self.internalJson = JSON(data: data) + + public var editDate: Date? { + get { + guard let date = internalJson["edit_date"].double else { return nil } + return Date(timeIntervalSince1970: date) + } + set { + internalJson["edit_date"].double = newValue?.timeIntervalSince1970 + } } -} + public var entities: [MessageEntity] { + get { return internalJson["entities"].customArrayValue() } + set { internalJson["entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + } -public struct KeyboardButton: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } + public var forwardDate: Date? { + get { + guard let date = internalJson["forward_date"].double else { return nil } + return Date(timeIntervalSince1970: date) + } + set { + internalJson["forward_date"].double = newValue?.timeIntervalSince1970 + } } - internal var internalJson: JSON - public var requestContact: Bool? { - get { return internalJson["request_contact"].bool } - set { internalJson["request_contact"].bool = newValue } + + public var forwardFrom: User? { + get { + let value = internalJson["forward_from"] + return value.isNullOrUnknown ? nil : User(internalJson: value) + } + set { + internalJson["forward_from"] = newValue?.internalJson ?? JSON.null + } } - public var requestLocation: Bool? { - get { return internalJson["request_location"].bool } - set { internalJson["request_location"].bool = newValue } + public var forwardFromChat: Chat? { + get { + let value = internalJson["forward_from_chat"] + return value.isNullOrUnknown ? nil : Chat(internalJson: value) + } + set { + internalJson["forward_from_chat"] = newValue?.internalJson ?? JSON.null + } } - public var text: String { - get { return internalJson["text"].stringValue } - set { internalJson["text"].stringValue = newValue } + public var forwardFromMessageId: Int? { + get { return internalJson["forward_from_message_id"].int } + set { internalJson["forward_from_message_id"].int = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson + public var forwardSenderName: String? { + get { return internalJson["forward_sender_name"].string } + set { internalJson["forward_sender_name"].string = newValue } } - public init() { - self.internalJson = JSON() + + public var forwardSignature: String? { + get { return internalJson["forward_signature"].string } + set { internalJson["forward_signature"].string = newValue } } - public init(json: Any) { - self.internalJson = JSON(json) + + public var from: User? { + get { + let value = internalJson["from"] + return value.isNullOrUnknown ? nil : User(internalJson: value) + } + set { + internalJson["from"] = newValue?.internalJson ?? JSON.null + } } - public init(data: Data) { - self.internalJson = JSON(data: data) + + public var game: Game? { + get { + let value = internalJson["game"] + return value.isNullOrUnknown ? nil : Game(internalJson: value) + } + set { + internalJson["game"] = newValue?.internalJson ?? JSON.null + } } -} + public var groupChatCreated: Bool? { + get { return internalJson["group_chat_created"].bool } + set { internalJson["group_chat_created"].bool = newValue } + } -public struct InlineKeyboardMarkup: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } + public var invoice: Invoice? { + get { + let value = internalJson["invoice"] + return value.isNullOrUnknown ? nil : Invoice(internalJson: value) + } + set { + internalJson["invoice"] = newValue?.internalJson ?? JSON.null + } } - internal var internalJson: JSON - public var inlineKeyboard: [[InlineKeyboardButton]] { - get { return internalJson["inline_keyboard"].twoDArrayValue() } + + public var leftChatMember: User? { + get { + let value = internalJson["left_chat_member"] + return value.isNullOrUnknown ? nil : User(internalJson: value) + } set { - var rowsJson = [JSON]() - rowsJson.reserveCapacity(newValue.count) - for row in newValue { - var colsJson = [JSON]() - colsJson.reserveCapacity(row.count) - for col in row { - let json = col.internalJson - colsJson.append(json) - } - rowsJson.append(JSON(colsJson)) - } - internalJson["inline_keyboard"] = JSON(rowsJson) + internalJson["left_chat_member"] = newValue?.internalJson ?? JSON.null } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson + public var location: Location? { + get { + let value = internalJson["location"] + return value.isNullOrUnknown ? nil : Location(internalJson: value) + } + set { + internalJson["location"] = newValue?.internalJson ?? JSON.null + } } - public init() { - self.internalJson = JSON() + + public var mediaGroupId: String? { + get { return internalJson["media_group_id"].string } + set { internalJson["media_group_id"].string = newValue } } - public init(json: Any) { - self.internalJson = JSON(json) + + public var messageId: Int { + get { return internalJson["message_id"].intValue } + set { internalJson["message_id"].intValue = newValue } } - public init(data: Data) { - self.internalJson = JSON(data: data) + + public var migrateFromChatId: Int64? { + get { return internalJson["migrate_from_chat_id"].int64 } + set { internalJson["migrate_from_chat_id"].int64 = newValue } } -} + public var migrateToChatId: Int64? { + get { return internalJson["migrate_to_chat_id"].int64 } + set { internalJson["migrate_to_chat_id"].int64 = newValue } + } -public struct CallbackQuery: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } + public var newChatMembers: [User] { + get { return internalJson["new_chat_members"].customArrayValue() } + set { internalJson["new_chat_members"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } } - internal var internalJson: JSON - public var chatInstance: String { - get { return internalJson["chat_instance"].stringValue } - set { internalJson["chat_instance"].stringValue = newValue } + + public var newChatPhoto: [PhotoSize] { + get { return internalJson["new_chat_photo"].customArrayValue() } + set { internalJson["new_chat_photo"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } } - public var data: String? { - get { return internalJson["data"].string } - set { internalJson["data"].string = newValue } + public var newChatTitle: String? { + get { return internalJson["new_chat_title"].string } + set { internalJson["new_chat_title"].string = newValue } } - public var from: User { - get { return User(internalJson: internalJson["from"]) } - set { internalJson["from"] = JSON(newValue.json) } + public var photo: [PhotoSize] { + get { return internalJson["photo"].customArrayValue() } + set { internalJson["photo"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } } - public var gameShortName: String? { - get { return internalJson["game_short_name"].string } - set { internalJson["game_short_name"].string = newValue } + public var pinnedMessage: Message? { + get { + let value = internalJson["pinned_message"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["pinned_message"] = newValue?.internalJson ?? JSON.null + } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var poll: Poll? { + get { + let value = internalJson["poll"] + return value.isNullOrUnknown ? nil : Poll(internalJson: value) + } + set { + internalJson["poll"] = newValue?.internalJson ?? JSON.null + } } - public var inlineMessageId: String? { - get { return internalJson["inline_message_id"].string } - set { internalJson["inline_message_id"].string = newValue } + public var replyMarkup: InlineKeyboardMarkup? { + get { + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + } + set { + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + } } - public var message: Message? { + public var replyToMessage: Message? { get { - let value = internalJson["message"] + let value = internalJson["reply_to_message"] return value.isNullOrUnknown ? nil : Message(internalJson: value) } set { - internalJson["message"] = newValue?.internalJson ?? JSON.null + internalJson["reply_to_message"] = newValue?.internalJson ?? JSON.null } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) + public var sticker: Sticker? { + get { + let value = internalJson["sticker"] + return value.isNullOrUnknown ? nil : Sticker(internalJson: value) + } + set { + internalJson["sticker"] = newValue?.internalJson ?? JSON.null + } } - public init(data: Data) { - self.internalJson = JSON(data: data) + + public var successfulPayment: SuccessfulPayment? { + get { + let value = internalJson["successful_payment"] + return value.isNullOrUnknown ? nil : SuccessfulPayment(internalJson: value) + } + set { + internalJson["successful_payment"] = newValue?.internalJson ?? JSON.null + } } -} + public var supergroupChatCreated: Bool? { + get { return internalJson["supergroup_chat_created"].bool } + set { internalJson["supergroup_chat_created"].bool = newValue } + } -public struct OrderInfo: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } + public var text: String? { + get { return internalJson["text"].string } + set { internalJson["text"].string = newValue } } - internal var internalJson: JSON - public var email: String? { - get { return internalJson["email"].string } - set { internalJson["email"].string = newValue } + + public var venue: Venue? { + get { + let value = internalJson["venue"] + return value.isNullOrUnknown ? nil : Venue(internalJson: value) + } + set { + internalJson["venue"] = newValue?.internalJson ?? JSON.null + } } - public var name: String? { - get { return internalJson["name"].string } - set { internalJson["name"].string = newValue } + public var video: Video? { + get { + let value = internalJson["video"] + return value.isNullOrUnknown ? nil : Video(internalJson: value) + } + set { + internalJson["video"] = newValue?.internalJson ?? JSON.null + } } - public var phoneNumber: String? { - get { return internalJson["phone_number"].string } - set { internalJson["phone_number"].string = newValue } + public var videoNote: VideoNote? { + get { + let value = internalJson["video_note"] + return value.isNullOrUnknown ? nil : VideoNote(internalJson: value) + } + set { + internalJson["video_note"] = newValue?.internalJson ?? JSON.null + } } - public var shippingAddress: ShippingAddress? { + public var voice: Voice? { get { - let value = internalJson["shipping_address"] - return value.isNullOrUnknown ? nil : ShippingAddress(internalJson: value) + let value = internalJson["voice"] + return value.isNullOrUnknown ? nil : Voice(internalJson: value) } set { - internalJson["shipping_address"] = newValue?.internalJson ?? JSON.null + internalJson["voice"] = newValue?.internalJson ?? JSON.null } } @@ -839,7 +822,7 @@ public struct OrderInfo: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultMpeg4Gif: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultPhoto: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -851,6 +834,11 @@ public struct InlineQueryResultMpeg4Gif: JsonConvertible, InternalJsonConvertibl set { internalJson["caption"].string = newValue } } + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } + } + public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } @@ -865,29 +853,24 @@ public struct InlineQueryResultMpeg4Gif: JsonConvertible, InternalJsonConvertibl } } - public var mpeg4Duration: Int? { - get { return internalJson["mpeg4_duration"].int } - set { internalJson["mpeg4_duration"].int = newValue } - } - - public var mpeg4Height: Int? { - get { return internalJson["mpeg4_height"].int } - set { internalJson["mpeg4_height"].int = newValue } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } - public var mpeg4Url: String { - get { return internalJson["mpeg4_url"].stringValue } - set { internalJson["mpeg4_url"].stringValue = newValue } + public var photoHeight: Int? { + get { return internalJson["photo_height"].int } + set { internalJson["photo_height"].int = newValue } } - public var mpeg4Width: Int? { - get { return internalJson["mpeg4_width"].int } - set { internalJson["mpeg4_width"].int = newValue } + public var photoUrl: String { + get { return internalJson["photo_url"].stringValue } + set { internalJson["photo_url"].stringValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var photoWidth: Int? { + get { return internalJson["photo_width"].int } + set { internalJson["photo_width"].int = newValue } } public var replyMarkup: InlineKeyboardMarkup? { @@ -930,51 +913,65 @@ public struct InlineQueryResultMpeg4Gif: JsonConvertible, InternalJsonConvertibl } -public struct Video: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedPhoto: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var duration: Int { - get { return internalJson["duration"].intValue } - set { internalJson["duration"].intValue = newValue } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } } - public var fileSize: String? { - get { return internalJson["file_size"].string } - set { internalJson["file_size"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var height: Int { - get { return internalJson["height"].intValue } - set { internalJson["height"].intValue = newValue } + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } } - public var mimeType: String? { - get { return internalJson["mime_type"].string } - set { internalJson["mime_type"].string = newValue } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } - public var thumb: PhotoSize? { + public var photoFileId: String { + get { return internalJson["photo_file_id"].stringValue } + set { internalJson["photo_file_id"].stringValue = newValue } + } + + public var replyMarkup: InlineKeyboardMarkup? { get { - let value = internalJson["thumb"] - return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) } set { - internalJson["thumb"] = newValue?.internalJson ?? JSON.null + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null } } - public var width: Int { - get { return internalJson["width"].intValue } - set { internalJson["width"].intValue = newValue } + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } + } + + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -992,61 +989,96 @@ public struct Video: JsonConvertible, InternalJsonConvertible { } -public struct InlineKeyboardButton: JsonConvertible, InternalJsonConvertible { +public struct Chat: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var callbackData: String? { - get { return internalJson["callback_data"].string } - set { internalJson["callback_data"].string = newValue } + public var canSetStickerSet: Bool? { + get { return internalJson["can_set_sticker_set"].bool } + set { internalJson["can_set_sticker_set"].bool = newValue } } - public var callbackGame: CallbackGame? { + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } + } + + public var firstName: String? { + get { return internalJson["first_name"].string } + set { internalJson["first_name"].string = newValue } + } + + public var id: Int64 { + get { return internalJson["id"].int64Value } + set { internalJson["id"].int64Value = newValue } + } + + public var inviteLink: String? { + get { return internalJson["invite_link"].string } + set { internalJson["invite_link"].string = newValue } + } + + public var lastName: String? { + get { return internalJson["last_name"].string } + set { internalJson["last_name"].string = newValue } + } + + public var permissions: ChatPermissions? { get { - let value = internalJson["callback_game"] - return value.isNullOrUnknown ? nil : CallbackGame(internalJson: value) + let value = internalJson["permissions"] + return value.isNullOrUnknown ? nil : ChatPermissions(internalJson: value) } set { - internalJson["callback_game"] = newValue?.internalJson ?? JSON.null + internalJson["permissions"] = newValue?.internalJson ?? JSON.null } } - public var loginUrl: LoginUrl? { + public var photo: ChatPhoto? { get { - let value = internalJson["login_url"] - return value.isNullOrUnknown ? nil : LoginUrl(internalJson: value) + let value = internalJson["photo"] + return value.isNullOrUnknown ? nil : ChatPhoto(internalJson: value) } set { - internalJson["login_url"] = newValue?.internalJson ?? JSON.null + internalJson["photo"] = newValue?.internalJson ?? JSON.null } } - public var pay: Bool? { - get { return internalJson["pay"].bool } - set { internalJson["pay"].bool = newValue } + public var pinnedMessage: Message? { + get { + let value = internalJson["pinned_message"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["pinned_message"] = newValue?.internalJson ?? JSON.null + } } - public var switchInlineQuery: String? { - get { return internalJson["switch_inline_query"].string } - set { internalJson["switch_inline_query"].string = newValue } + public var slowModeDelay: Int? { + get { return internalJson["slow_mode_delay"].int } + set { internalJson["slow_mode_delay"].int = newValue } } - public var switchInlineQueryCurrentChat: String? { - get { return internalJson["switch_inline_query_current_chat"].string } - set { internalJson["switch_inline_query_current_chat"].string = newValue } + public var stickerSetName: String? { + get { return internalJson["sticker_set_name"].string } + set { internalJson["sticker_set_name"].string = newValue } } - public var text: String { - get { return internalJson["text"].stringValue } - set { internalJson["text"].stringValue = newValue } + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } } - public var url: String? { - get { return internalJson["url"].string } - set { internalJson["url"].string = newValue } + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } + } + + public var username: String? { + get { return internalJson["username"].string } + set { internalJson["username"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -1064,90 +1096,93 @@ public struct InlineKeyboardButton: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultVideo: JsonConvertible, InternalJsonConvertible { +public struct Document: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } - } - - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var fileName: String? { + get { return internalJson["file_name"].string } + set { internalJson["file_name"].string = newValue } } - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var mimeType: String { - get { return internalJson["mime_type"].stringValue } - set { internalJson["mime_type"].stringValue = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var mimeType: String? { + get { return internalJson["mime_type"].string } + set { internalJson["mime_type"].string = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { + public var thumb: PhotoSize? { get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + let value = internalJson["thumb"] + return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) } set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + internalJson["thumb"] = newValue?.internalJson ?? JSON.null } } - public var thumbUrl: String { - get { return internalJson["thumb_url"].stringValue } - set { internalJson["thumb_url"].stringValue = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) } +} - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + +public struct Venue: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var address: String { + get { return internalJson["address"].stringValue } + set { internalJson["address"].stringValue = newValue } } - public var videoDuration: Int? { - get { return internalJson["video_duration"].int } - set { internalJson["video_duration"].int = newValue } + public var foursquareId: String? { + get { return internalJson["foursquare_id"].string } + set { internalJson["foursquare_id"].string = newValue } } - public var videoHeight: Int? { - get { return internalJson["video_height"].int } - set { internalJson["video_height"].int = newValue } + public var foursquareType: String? { + get { return internalJson["foursquare_type"].string } + set { internalJson["foursquare_type"].string = newValue } } - public var videoUrl: String { - get { return internalJson["video_url"].stringValue } - set { internalJson["video_url"].stringValue = newValue } + public var location: Location { + get { return Location(internalJson: internalJson["location"]) } + set { internalJson["location"] = JSON(newValue.json) } } - public var videoWidth: Int? { - get { return internalJson["video_width"].int } - set { internalJson["video_width"].int = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -1165,115 +1200,21 @@ public struct InlineQueryResultVideo: JsonConvertible, InternalJsonConvertible { } -public struct ChatPermissions: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var canAddWebPagePreviews: Bool? { - get { return internalJson["can_add_web_page_previews"].bool } - set { internalJson["can_add_web_page_previews"].bool = newValue } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var canChangeInfo: Bool? { - get { return internalJson["can_change_info"].bool } - set { internalJson["can_change_info"].bool = newValue } - } - - public var canInviteUsers: Bool? { - get { return internalJson["can_invite_users"].bool } - set { internalJson["can_invite_users"].bool = newValue } - } - - public var canPinMessages: Bool? { - get { return internalJson["can_pin_messages"].bool } - set { internalJson["can_pin_messages"].bool = newValue } - } - - public var canSendMediaMessages: Bool? { - get { return internalJson["can_send_media_messages"].bool } - set { internalJson["can_send_media_messages"].bool = newValue } - } - - public var canSendMessages: Bool? { - get { return internalJson["can_send_messages"].bool } - set { internalJson["can_send_messages"].bool = newValue } - } - - public var canSendOtherMessages: Bool? { - get { return internalJson["can_send_other_messages"].bool } - set { internalJson["can_send_other_messages"].bool = newValue } - } - - public var canSendPolls: Bool? { - get { return internalJson["can_send_polls"].bool } - set { internalJson["can_send_polls"].bool = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct ShippingOption: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } - } - - public var prices: [LabeledPrice] { - get { return internalJson["prices"].customArrayValue() } - set { internalJson["prices"] = JSON.initFrom(newValue) } - } - - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var firstName: String { - get { return internalJson["first_name"].stringValue } - set { internalJson["first_name"].stringValue = newValue } + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } } public var id: String { @@ -1290,14 +1231,9 @@ public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible } } - public var lastName: String? { - get { return internalJson["last_name"].string } - set { internalJson["last_name"].string = newValue } - } - - public var phoneNumber: String { - get { return internalJson["phone_number"].stringValue } - set { internalJson["phone_number"].stringValue = newValue } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } public var replyMarkup: InlineKeyboardMarkup? { @@ -1310,19 +1246,9 @@ public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible } } - public var thumbHeight: Int? { - get { return internalJson["thumb_height"].int } - set { internalJson["thumb_height"].int = newValue } - } - - public var thumbUrl: String? { - get { return internalJson["thumb_url"].string } - set { internalJson["thumb_url"].string = newValue } - } - - public var thumbWidth: Int? { - get { return internalJson["thumb_width"].int } - set { internalJson["thumb_width"].int = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } public var typeString: String { @@ -1330,9 +1256,9 @@ public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible set { internalJson["type"].stringValue = newValue } } - public var vcard: String? { - get { return internalJson["vcard"].string } - set { internalJson["vcard"].string = newValue } + public var videoFileId: String { + get { return internalJson["video_file_id"].stringValue } + set { internalJson["video_file_id"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -1350,26 +1276,41 @@ public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible } -public struct InputLocationMessageContent: JsonConvertible, InternalJsonConvertible { +public struct ShippingAddress: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var latitude: Float { - get { return internalJson["latitude"].floatValue } - set { internalJson["latitude"].floatValue = newValue } + public var city: String { + get { return internalJson["city"].stringValue } + set { internalJson["city"].stringValue = newValue } } - public var livePeriod: Int? { - get { return internalJson["live_period"].int } - set { internalJson["live_period"].int = newValue } + public var countryCode: String { + get { return internalJson["country_code"].stringValue } + set { internalJson["country_code"].stringValue = newValue } } - public var longitude: Float { - get { return internalJson["longitude"].floatValue } - set { internalJson["longitude"].floatValue = newValue } + public var postCode: String { + get { return internalJson["post_code"].stringValue } + set { internalJson["post_code"].stringValue = newValue } + } + + public var state: String { + get { return internalJson["state"].stringValue } + set { internalJson["state"].stringValue = newValue } + } + + public var streetLine1: String { + get { return internalJson["street_line1"].stringValue } + set { internalJson["street_line1"].stringValue = newValue } + } + + public var streetLine2: String { + get { return internalJson["street_line2"].stringValue } + set { internalJson["street_line2"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -1387,48 +1328,56 @@ public struct InputLocationMessageContent: JsonConvertible, InternalJsonConverti } -public struct InputMediaAnimation: JsonConvertible, InternalJsonConvertible { +public struct Audio: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + public var duration: Int { + get { return internalJson["duration"].intValue } + set { internalJson["duration"].intValue = newValue } } - public var duration: Int? { - get { return internalJson["duration"].int } - set { internalJson["duration"].int = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var height: Int? { - get { return internalJson["height"].int } - set { internalJson["height"].int = newValue } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var media: String { - get { return internalJson["media"].stringValue } - set { internalJson["media"].stringValue = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var mimeType: String? { + get { return internalJson["mime_type"].string } + set { internalJson["mime_type"].string = newValue } } -public var thumb: InputFileOrString? = nil + public var performer: String? { + get { return internalJson["performer"].string } + set { internalJson["performer"].string = newValue } + } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var thumb: PhotoSize? { + get { + let value = internalJson["thumb"] + return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) + } + set { + internalJson["thumb"] = newValue?.internalJson ?? JSON.null + } } - public var width: Int? { - get { return internalJson["width"].int } - set { internalJson["width"].int = newValue } + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -1446,21 +1395,21 @@ public var thumb: InputFileOrString? = nil } -public struct Document: JsonConvertible, InternalJsonConvertible { +public struct VideoNote: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } + public var duration: Int { + get { return internalJson["duration"].intValue } + set { internalJson["duration"].intValue = newValue } } - public var fileName: String? { - get { return internalJson["file_name"].string } - set { internalJson["file_name"].string = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } public var fileSize: Int? { @@ -1468,9 +1417,14 @@ public struct Document: JsonConvertible, InternalJsonConvertible { set { internalJson["file_size"].int = newValue } } - public var mimeType: String? { - get { return internalJson["mime_type"].string } - set { internalJson["mime_type"].string = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } + } + + public var length: Int { + get { return internalJson["length"].intValue } + set { internalJson["length"].intValue = newValue } } public var thumb: PhotoSize? { @@ -1498,31 +1452,157 @@ public struct Document: JsonConvertible, InternalJsonConvertible { } -public struct ChatMember: JsonConvertible, InternalJsonConvertible { +public struct PollOption: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var canAddWebPagePreviews: Bool? { - get { return internalJson["can_add_web_page_previews"].bool } - set { internalJson["can_add_web_page_previews"].bool = newValue } + public var text: String { + get { return internalJson["text"].stringValue } + set { internalJson["text"].stringValue = newValue } } - public var canBeEdited: Bool? { - get { return internalJson["can_be_edited"].bool } - set { internalJson["can_be_edited"].bool = newValue } + public var voterCount: Int { + get { return internalJson["voter_count"].intValue } + set { internalJson["voter_count"].intValue = newValue } } - public var canChangeInfo: Bool? { - get { return internalJson["can_change_info"].bool } - set { internalJson["can_change_info"].bool = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var canDeleteMessages: Bool? { - get { return internalJson["can_delete_messages"].bool } - set { internalJson["can_delete_messages"].bool = newValue } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct ResponseParameters: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var migrateToChatId: Int64? { + get { return internalJson["migrate_to_chat_id"].int64 } + set { internalJson["migrate_to_chat_id"].int64 = newValue } + } + + public var retryAfter: Int? { + get { return internalJson["retry_after"].int } + set { internalJson["retry_after"].int = newValue } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct CallbackQuery: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var chatInstance: String { + get { return internalJson["chat_instance"].stringValue } + set { internalJson["chat_instance"].stringValue = newValue } + } + + public var data: String? { + get { return internalJson["data"].string } + set { internalJson["data"].string = newValue } + } + + public var from: User { + get { return User(internalJson: internalJson["from"]) } + set { internalJson["from"] = JSON(newValue.json) } + } + + public var gameShortName: String? { + get { return internalJson["game_short_name"].string } + set { internalJson["game_short_name"].string = newValue } + } + + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } + } + + public var inlineMessageId: String? { + get { return internalJson["inline_message_id"].string } + set { internalJson["inline_message_id"].string = newValue } + } + + public var message: Message? { + get { + let value = internalJson["message"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["message"] = newValue?.internalJson ?? JSON.null + } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct ChatMember: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var canAddWebPagePreviews: Bool? { + get { return internalJson["can_add_web_page_previews"].bool } + set { internalJson["can_add_web_page_previews"].bool = newValue } + } + + public var canBeEdited: Bool? { + get { return internalJson["can_be_edited"].bool } + set { internalJson["can_be_edited"].bool = newValue } + } + + public var canChangeInfo: Bool? { + get { return internalJson["can_change_info"].bool } + set { internalJson["can_change_info"].bool = newValue } + } + + public var canDeleteMessages: Bool? { + get { return internalJson["can_delete_messages"].bool } + set { internalJson["can_delete_messages"].bool = newValue } } public var canEditMessages: Bool? { @@ -1575,6 +1655,11 @@ public struct ChatMember: JsonConvertible, InternalJsonConvertible { set { internalJson["can_send_polls"].bool = newValue } } + public var customTitle: String? { + get { return internalJson["custom_title"].string } + set { internalJson["custom_title"].string = newValue } + } + public var isMember: Bool? { get { return internalJson["is_member"].bool } set { internalJson["is_member"].bool = newValue } @@ -1615,36 +1700,31 @@ public struct ChatMember: JsonConvertible, InternalJsonConvertible { } -public struct StickerSet: JsonConvertible, InternalJsonConvertible { +public struct ChatPhoto: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var containsMasks: Bool { - get { return internalJson["contains_masks"].boolValue } - set { internalJson["contains_masks"].boolValue = newValue } - } - - public var isAnimated: Bool { - get { return internalJson["is_animated"].boolValue } - set { internalJson["is_animated"].boolValue = newValue } + public var bigFileId: String { + get { return internalJson["big_file_id"].stringValue } + set { internalJson["big_file_id"].stringValue = newValue } } - public var name: String { - get { return internalJson["name"].stringValue } - set { internalJson["name"].stringValue = newValue } + public var bigFileUniqueId: String { + get { return internalJson["big_file_unique_id"].stringValue } + set { internalJson["big_file_unique_id"].stringValue = newValue } } - public var stickers: [Sticker] { - get { return internalJson["stickers"].customArrayValue() } - set { internalJson["stickers"] = JSON.initFrom(newValue) } + public var smallFileId: String { + get { return internalJson["small_file_id"].stringValue } + set { internalJson["small_file_id"].stringValue = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var smallFileUniqueId: String { + get { return internalJson["small_file_unique_id"].stringValue } + set { internalJson["small_file_unique_id"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -1662,31 +1742,65 @@ public struct StickerSet: JsonConvertible, InternalJsonConvertible { } -public struct InputContactMessageContent: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedDocument: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var firstName: String { - get { return internalJson["first_name"].stringValue } - set { internalJson["first_name"].stringValue = newValue } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var lastName: String? { - get { return internalJson["last_name"].string } - set { internalJson["last_name"].string = newValue } + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } } - public var phoneNumber: String { - get { return internalJson["phone_number"].stringValue } - set { internalJson["phone_number"].stringValue = newValue } + public var documentFileId: String { + get { return internalJson["document_file_id"].stringValue } + set { internalJson["document_file_id"].stringValue = newValue } } - public var vcard: String? { - get { return internalJson["vcard"].string } - set { internalJson["vcard"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } + } + + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } + } + + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } + } + + public var replyMarkup: InlineKeyboardMarkup? { + get { + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + } + set { + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + } + } + + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } + } + + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -1704,103 +1818,36 @@ public struct InputContactMessageContent: JsonConvertible, InternalJsonConvertib } -public struct Animation: JsonConvertible, InternalJsonConvertible { +public struct LabeledPrice: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var duration: Int { - get { return internalJson["duration"].intValue } - set { internalJson["duration"].intValue = newValue } + public var amount: Int { + get { return internalJson["amount"].intValue } + set { internalJson["amount"].intValue = newValue } } - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } + public var label: String { + get { return internalJson["label"].stringValue } + set { internalJson["label"].stringValue = newValue } } - public var fileName: String? { - get { return internalJson["file_name"].string } - set { internalJson["file_name"].string = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public init() { + self.internalJson = JSON() } - - public var height: Int { - get { return internalJson["height"].intValue } - set { internalJson["height"].intValue = newValue } + public init(json: Any) { + self.internalJson = JSON(json) } - - public var mimeType: String? { - get { return internalJson["mime_type"].string } - set { internalJson["mime_type"].string = newValue } + public init(data: Data) { + self.internalJson = JSON(data: data) } - - public var thumb: PhotoSize? { - get { - let value = internalJson["thumb"] - return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) - } - set { - internalJson["thumb"] = newValue?.internalJson ?? JSON.null - } - } - - public var width: Int { - get { return internalJson["width"].intValue } - set { internalJson["width"].intValue = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct ChatPhoto: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var bigFileId: String { - get { return internalJson["big_file_id"].stringValue } - set { internalJson["big_file_id"].stringValue = newValue } - } - - public var smallFileId: String { - get { return internalJson["small_file_id"].stringValue } - set { internalJson["small_file_id"].stringValue = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} +} public struct ChosenInlineResult: JsonConvertible, InternalJsonConvertible { @@ -1850,15 +1897,15 @@ public struct ChosenInlineResult: JsonConvertible, InternalJsonConvertible { } -public struct ReplyKeyboardMarkup: JsonConvertible, InternalJsonConvertible { +public struct InlineKeyboardMarkup: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var keyboard: [[KeyboardButton]] { - get { return internalJson["keyboard"].twoDArrayValue() } + public var inlineKeyboard: [[InlineKeyboardButton]] { + get { return internalJson["inline_keyboard"].twoDArrayValue() } set { var rowsJson = [JSON]() rowsJson.reserveCapacity(newValue.count) @@ -1871,25 +1918,10 @@ public struct ReplyKeyboardMarkup: JsonConvertible, InternalJsonConvertible { } rowsJson.append(JSON(colsJson)) } - internalJson["keyboard"] = JSON(rowsJson) + internalJson["inline_keyboard"] = JSON(rowsJson) } } - public var oneTimeKeyboard: Bool? { - get { return internalJson["one_time_keyboard"].bool } - set { internalJson["one_time_keyboard"].bool = newValue } - } - - public var resizeKeyboard: Bool? { - get { return internalJson["resize_keyboard"].bool } - set { internalJson["resize_keyboard"].bool = newValue } - } - - public var selective: Bool? { - get { return internalJson["selective"].bool } - set { internalJson["selective"].bool = newValue } - } - internal init(internalJson: JSON = [:]) { self.internalJson = internalJson } @@ -1905,13 +1937,23 @@ public struct ReplyKeyboardMarkup: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedSticker: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedAudio: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON + public var audioFileId: String { + get { return internalJson["audio_file_id"].stringValue } + set { internalJson["audio_file_id"].stringValue = newValue } + } + + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } + } + public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } @@ -1926,6 +1968,11 @@ public struct InlineQueryResultCachedSticker: JsonConvertible, InternalJsonConve } } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } + } + public var replyMarkup: InlineKeyboardMarkup? { get { let value = internalJson["reply_markup"] @@ -1936,11 +1983,6 @@ public struct InlineQueryResultCachedSticker: JsonConvertible, InternalJsonConve } } - public var stickerFileId: String { - get { return internalJson["sticker_file_id"].stringValue } - set { internalJson["sticker_file_id"].stringValue = newValue } - } - public var typeString: String { get { return internalJson["type"].stringValue } set { internalJson["type"].stringValue = newValue } @@ -1961,41 +2003,111 @@ public struct InlineQueryResultCachedSticker: JsonConvertible, InternalJsonConve } -public struct InlineQuery: JsonConvertible, InternalJsonConvertible { +public struct Update: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var from: User { - get { return User(internalJson: internalJson["from"]) } - set { internalJson["from"] = JSON(newValue.json) } + public var callbackQuery: CallbackQuery? { + get { + let value = internalJson["callback_query"] + return value.isNullOrUnknown ? nil : CallbackQuery(internalJson: value) + } + set { + internalJson["callback_query"] = newValue?.internalJson ?? JSON.null + } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var channelPost: Message? { + get { + let value = internalJson["channel_post"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["channel_post"] = newValue?.internalJson ?? JSON.null + } } - public var location: Location? { + public var chosenInlineResult: ChosenInlineResult? { get { - let value = internalJson["location"] - return value.isNullOrUnknown ? nil : Location(internalJson: value) + let value = internalJson["chosen_inline_result"] + return value.isNullOrUnknown ? nil : ChosenInlineResult(internalJson: value) } set { - internalJson["location"] = newValue?.internalJson ?? JSON.null + internalJson["chosen_inline_result"] = newValue?.internalJson ?? JSON.null } } - public var offset: String { - get { return internalJson["offset"].stringValue } - set { internalJson["offset"].stringValue = newValue } + public var editedChannelPost: Message? { + get { + let value = internalJson["edited_channel_post"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["edited_channel_post"] = newValue?.internalJson ?? JSON.null + } } - public var query: String { - get { return internalJson["query"].stringValue } - set { internalJson["query"].stringValue = newValue } + public var editedMessage: Message? { + get { + let value = internalJson["edited_message"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["edited_message"] = newValue?.internalJson ?? JSON.null + } + } + + public var inlineQuery: InlineQuery? { + get { + let value = internalJson["inline_query"] + return value.isNullOrUnknown ? nil : InlineQuery(internalJson: value) + } + set { + internalJson["inline_query"] = newValue?.internalJson ?? JSON.null + } + } + + public var message: Message? { + get { + let value = internalJson["message"] + return value.isNullOrUnknown ? nil : Message(internalJson: value) + } + set { + internalJson["message"] = newValue?.internalJson ?? JSON.null + } + } + + public var poll: Poll { + get { return Poll(internalJson: internalJson["poll"]) } + set { internalJson["poll"] = JSON(newValue.json) } + } + + public var preCheckoutQuery: PreCheckoutQuery? { + get { + let value = internalJson["pre_checkout_query"] + return value.isNullOrUnknown ? nil : PreCheckoutQuery(internalJson: value) + } + set { + internalJson["pre_checkout_query"] = newValue?.internalJson ?? JSON.null + } + } + + public var shippingQuery: ShippingQuery? { + get { + let value = internalJson["shipping_query"] + return value.isNullOrUnknown ? nil : ShippingQuery(internalJson: value) + } + set { + internalJson["shipping_query"] = newValue?.internalJson ?? JSON.null + } + } + + public var updateId: Int64 { + get { return internalJson["update_id"].int64Value } + set { internalJson["update_id"].int64Value = newValue } } internal init(internalJson: JSON = [:]) { @@ -2013,21 +2125,48 @@ public struct InlineQuery: JsonConvertible, InternalJsonConvertible { } -public struct PollOption: JsonConvertible, InternalJsonConvertible { +public struct InputMediaAnimation: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var text: String { - get { return internalJson["text"].stringValue } - set { internalJson["text"].stringValue = newValue } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var voterCount: Int { - get { return internalJson["voter_count"].intValue } - set { internalJson["voter_count"].intValue = newValue } + public var duration: Int? { + get { return internalJson["duration"].int } + set { internalJson["duration"].int = newValue } + } + + public var height: Int? { + get { return internalJson["height"].int } + set { internalJson["height"].int = newValue } + } + + public var media: String { + get { return internalJson["media"].stringValue } + set { internalJson["media"].stringValue = newValue } + } + + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } + } + +public var thumb: InputFileOrString? = nil + + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } + } + + public var width: Int? { + get { return internalJson["width"].int } + set { internalJson["width"].int = newValue } } internal init(internalJson: JSON = [:]) { @@ -2045,23 +2184,52 @@ public struct PollOption: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultGame: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultVenue: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var gameShortName: String { - get { return internalJson["game_short_name"].stringValue } - set { internalJson["game_short_name"].stringValue = newValue } + public var address: String { + get { return internalJson["address"].stringValue } + set { internalJson["address"].stringValue = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } + public var foursquareId: String? { + get { return internalJson["foursquare_id"].string } + set { internalJson["foursquare_id"].string = newValue } + } + + public var foursquareType: String? { + get { return internalJson["foursquare_type"].string } + set { internalJson["foursquare_type"].string = newValue } + } + + public var id: String { + get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } } + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } + } + + public var latitude: Float { + get { return internalJson["latitude"].floatValue } + set { internalJson["latitude"].floatValue = newValue } + } + + public var longitude: Float { + get { return internalJson["longitude"].floatValue } + set { internalJson["longitude"].floatValue = newValue } + } + public var replyMarkup: InlineKeyboardMarkup? { get { let value = internalJson["reply_markup"] @@ -2072,6 +2240,26 @@ public struct InlineQueryResultGame: JsonConvertible, InternalJsonConvertible { } } + public var thumbHeight: Int? { + get { return internalJson["thumb_height"].int } + set { internalJson["thumb_height"].int = newValue } + } + + public var thumbUrl: String? { + get { return internalJson["thumb_url"].string } + set { internalJson["thumb_url"].string = newValue } + } + + public var thumbWidth: Int? { + get { return internalJson["thumb_width"].int } + set { internalJson["thumb_width"].int = newValue } + } + + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } + } + public var typeString: String { get { return internalJson["type"].stringValue } set { internalJson["type"].stringValue = newValue } @@ -2092,55 +2280,51 @@ public struct InlineQueryResultGame: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedAudio: JsonConvertible, InternalJsonConvertible { +public struct WebhookInfo: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var audioFileId: String { - get { return internalJson["audio_file_id"].stringValue } - set { internalJson["audio_file_id"].stringValue = newValue } - } - - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + public var allowedUpdates: String? { + get { return internalJson["allowed_updates"].string } + set { internalJson["allowed_updates"].string = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var hasCustomCertificate: Bool { + get { return internalJson["has_custom_certificate"].boolValue } + set { internalJson["has_custom_certificate"].boolValue = newValue } } - public var inputMessageContent: InputMessageContent? { + public var lastErrorDate: Date? { get { - fatalError("Not implemented") + guard let date = internalJson["last_error_date"].double else { return nil } + return Date(timeIntervalSince1970: date) } set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + internalJson["last_error_date"].double = newValue?.timeIntervalSince1970 } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var lastErrorMessage: String? { + get { return internalJson["last_error_message"].string } + set { internalJson["last_error_message"].string = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { - get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) - } - set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null - } + public var maxConnections: Int? { + get { return internalJson["max_connections"].int } + set { internalJson["max_connections"].int = newValue } } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var pendingUpdateCount: Int { + get { return internalJson["pending_update_count"].intValue } + set { internalJson["pending_update_count"].intValue = newValue } + } + + public var url: String { + get { return internalJson["url"].stringValue } + set { internalJson["url"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -2158,31 +2342,46 @@ public struct InlineQueryResultCachedAudio: JsonConvertible, InternalJsonConvert } -public struct Poll: JsonConvertible, InternalJsonConvertible { +public struct PreCheckoutQuery: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON + public var currency: Int { + get { return internalJson["currency"].intValue } + set { internalJson["currency"].intValue = newValue } + } + + public var from: User { + get { return User(internalJson: internalJson["from"]) } + set { internalJson["from"] = JSON(newValue.json) } + } + public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } } - public var isClosed: Bool { - get { return internalJson["is_closed"].boolValue } - set { internalJson["is_closed"].boolValue = newValue } + public var invoicePayload: String { + get { return internalJson["invoice_payload"].stringValue } + set { internalJson["invoice_payload"].stringValue = newValue } } - public var options: [PollOption] { - get { return internalJson["options"].customArrayValue() } - set { internalJson["options"] = JSON.initFrom(newValue) } + public var orderInfo: OrderInfo? { + get { + let value = internalJson["order_info"] + return value.isNullOrUnknown ? nil : OrderInfo(internalJson: value) + } + set { + internalJson["order_info"] = newValue?.internalJson ?? JSON.null + } } - public var question: String { - get { return internalJson["question"].stringValue } - set { internalJson["question"].stringValue = newValue } + public var shippingOptionId: String? { + get { return internalJson["shipping_option_id"].string } + set { internalJson["shipping_option_id"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -2200,60 +2399,31 @@ public struct Poll: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedVoice: JsonConvertible, InternalJsonConvertible { +public struct File: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } - } - - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } - } - - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } - } - - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } - } - - public var replyMarkup: InlineKeyboardMarkup? { - get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) - } - set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null - } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var filePath: String? { + get { return internalJson["file_path"].string } + set { internalJson["file_path"].string = newValue } } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var voiceFileId: String { - get { return internalJson["voice_file_id"].stringValue } - set { internalJson["voice_file_id"].stringValue = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -2271,65 +2441,139 @@ public struct InlineQueryResultCachedVoice: JsonConvertible, InternalJsonConvert } -public struct InlineQueryResultLocation: JsonConvertible, InternalJsonConvertible { +public struct SuccessfulPayment: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var currency: String { + get { return internalJson["currency"].stringValue } + set { internalJson["currency"].stringValue = newValue } } - public var inputMessageContent: InputMessageContent? { + public var invoicePayload: String { + get { return internalJson["invoice_payload"].stringValue } + set { internalJson["invoice_payload"].stringValue = newValue } + } + + public var orderInfo: OrderInfo? { get { - fatalError("Not implemented") + let value = internalJson["order_info"] + return value.isNullOrUnknown ? nil : OrderInfo(internalJson: value) } set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + internalJson["order_info"] = newValue?.internalJson ?? JSON.null } } - public var latitude: Float { - get { return internalJson["latitude"].floatValue } - set { internalJson["latitude"].floatValue = newValue } + public var providerPaymentChargeId: String { + get { return internalJson["provider_payment_charge_id"].stringValue } + set { internalJson["provider_payment_charge_id"].stringValue = newValue } } - public var livePeriod: Int? { - get { return internalJson["live_period"].int } - set { internalJson["live_period"].int = newValue } + public var shippingOptionId: String? { + get { return internalJson["shipping_option_id"].string } + set { internalJson["shipping_option_id"].string = newValue } } - public var longitude: Float { - get { return internalJson["longitude"].floatValue } - set { internalJson["longitude"].floatValue = newValue } + public var telegramPaymentChargeId: String { + get { return internalJson["telegram_payment_charge_id"].stringValue } + set { internalJson["telegram_payment_charge_id"].stringValue = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { - get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) - } - set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null - } + public var totalAmount: Int { + get { return internalJson["total_amount"].intValue } + set { internalJson["total_amount"].intValue = newValue } } - public var thumbHeight: Int? { - get { return internalJson["thumb_height"].int } - set { internalJson["thumb_height"].int = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var thumbUrl: String? { - get { return internalJson["thumb_url"].string } - set { internalJson["thumb_url"].string = newValue } + public init() { + self.internalJson = JSON() } - - public var thumbWidth: Int? { - get { return internalJson["thumb_width"].int } - set { internalJson["thumb_width"].int = newValue } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct ForceReply: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var forceReply: Bool { + get { return internalJson["force_reply"].boolValue } + set { internalJson["force_reply"].boolValue = newValue } + } + + public var selective: Bool? { + get { return internalJson["selective"].bool } + set { internalJson["selective"].bool = newValue } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } + } + + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } + } + + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } + } + + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } + } + + public var replyMarkup: InlineKeyboardMarkup? { + get { + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + } + set { + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + } } public var title: String { @@ -2342,6 +2586,16 @@ public struct InlineQueryResultLocation: JsonConvertible, InternalJsonConvertibl set { internalJson["type"].stringValue = newValue } } + public var voiceDuration: Int? { + get { return internalJson["voice_duration"].int } + set { internalJson["voice_duration"].int = newValue } + } + + public var voiceUrl: String { + get { return internalJson["voice_url"].stringValue } + set { internalJson["voice_url"].stringValue = newValue } + } + internal init(internalJson: JSON = [:]) { self.internalJson = internalJson } @@ -2357,41 +2611,41 @@ public struct InlineQueryResultLocation: JsonConvertible, InternalJsonConvertibl } -public struct VideoNote: JsonConvertible, InternalJsonConvertible { +public struct InputVenueMessageContent: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var duration: Int { - get { return internalJson["duration"].intValue } - set { internalJson["duration"].intValue = newValue } + public var address: String { + get { return internalJson["address"].stringValue } + set { internalJson["address"].stringValue = newValue } } - public var fileId: Int { - get { return internalJson["file_id"].intValue } - set { internalJson["file_id"].intValue = newValue } + public var foursquareId: String? { + get { return internalJson["foursquare_id"].string } + set { internalJson["foursquare_id"].string = newValue } } - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public var foursquareType: String? { + get { return internalJson["foursquare_type"].string } + set { internalJson["foursquare_type"].string = newValue } } - public var length: Int { - get { return internalJson["length"].intValue } - set { internalJson["length"].intValue = newValue } + public var latitude: Float { + get { return internalJson["latitude"].floatValue } + set { internalJson["latitude"].floatValue = newValue } } - public var thumb: PhotoSize? { - get { - let value = internalJson["thumb"] - return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) - } - set { - internalJson["thumb"] = newValue?.internalJson ?? JSON.null - } + public var longitude: Float { + get { return internalJson["longitude"].floatValue } + set { internalJson["longitude"].floatValue = newValue } + } + + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -2409,16 +2663,16 @@ public struct VideoNote: JsonConvertible, InternalJsonConvertible { } -public struct Sticker: JsonConvertible, InternalJsonConvertible { +public struct Video: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var emoji: String? { - get { return internalJson["emoji"].string } - set { internalJson["emoji"].string = newValue } + public var duration: Int { + get { return internalJson["duration"].intValue } + set { internalJson["duration"].intValue = newValue } } public var fileId: String { @@ -2426,9 +2680,14 @@ public struct Sticker: JsonConvertible, InternalJsonConvertible { set { internalJson["file_id"].stringValue = newValue } } - public var fileSize: Int? { - get { return internalJson["file_size"].int } - set { internalJson["file_size"].int = newValue } + public var fileSize: String? { + get { return internalJson["file_size"].string } + set { internalJson["file_size"].string = newValue } + } + + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } public var height: Int { @@ -2436,24 +2695,9 @@ public struct Sticker: JsonConvertible, InternalJsonConvertible { set { internalJson["height"].intValue = newValue } } - public var isAnimated: Bool { - get { return internalJson["is_animated"].boolValue } - set { internalJson["is_animated"].boolValue = newValue } - } - - public var maskPosition: MaskPosition? { - get { - let value = internalJson["mask_position"] - return value.isNullOrUnknown ? nil : MaskPosition(internalJson: value) - } - set { - internalJson["mask_position"] = newValue?.internalJson ?? JSON.null - } - } - - public var setName: String? { - get { return internalJson["set_name"].string } - set { internalJson["set_name"].string = newValue } + public var mimeType: String? { + get { return internalJson["mime_type"].string } + set { internalJson["mime_type"].string = newValue } } public var thumb: PhotoSize? { @@ -2486,34 +2730,36 @@ public struct Sticker: JsonConvertible, InternalJsonConvertible { } -public struct UserProfilePhotos: JsonConvertible, InternalJsonConvertible { +public struct OrderInfo: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var photos: [[PhotoSize]] { - get { return internalJson["photos"].twoDArrayValue() } - set { - var rowsJson = [JSON]() - rowsJson.reserveCapacity(newValue.count) - for row in newValue { - var colsJson = [JSON]() - colsJson.reserveCapacity(row.count) - for col in row { - let json = col.internalJson - colsJson.append(json) - } - rowsJson.append(JSON(colsJson)) - } - internalJson["photos"] = JSON(rowsJson) - } + public var email: String? { + get { return internalJson["email"].string } + set { internalJson["email"].string = newValue } } - public var totalCount: Int { - get { return internalJson["total_count"].intValue } - set { internalJson["total_count"].intValue = newValue } + public var name: String? { + get { return internalJson["name"].string } + set { internalJson["name"].string = newValue } + } + + public var phoneNumber: String? { + get { return internalJson["phone_number"].string } + set { internalJson["phone_number"].string = newValue } + } + + public var shippingAddress: ShippingAddress? { + get { + let value = internalJson["shipping_address"] + return value.isNullOrUnknown ? nil : ShippingAddress(internalJson: value) + } + set { + internalJson["shipping_address"] = newValue?.internalJson ?? JSON.null + } } internal init(internalJson: JSON = [:]) { @@ -2531,7 +2777,7 @@ public struct UserProfilePhotos: JsonConvertible, InternalJsonConvertible { } -public struct InputMediaPhoto: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedGif: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -2543,9 +2789,23 @@ public struct InputMediaPhoto: JsonConvertible, InternalJsonConvertible { set { internalJson["caption"].string = newValue } } - public var media: String { - get { return internalJson["media"].stringValue } - set { internalJson["media"].stringValue = newValue } + public var gifFileId: String { + get { return internalJson["gif_file_id"].stringValue } + set { internalJson["gif_file_id"].stringValue = newValue } + } + + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } + } + + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } } public var parseModeString: String? { @@ -2553,6 +2813,21 @@ public struct InputMediaPhoto: JsonConvertible, InternalJsonConvertible { set { internalJson["parse_mode"].string = newValue } } + public var replyMarkup: InlineKeyboardMarkup? { + get { + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + } + set { + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + } + } + + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } + } + public var typeString: String { get { return internalJson["type"].stringValue } set { internalJson["type"].stringValue = newValue } @@ -2573,31 +2848,16 @@ public struct InputMediaPhoto: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultVenue: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedSticker: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var address: String { - get { return internalJson["address"].stringValue } - set { internalJson["address"].stringValue = newValue } - } - - public var foursquareId: String? { - get { return internalJson["foursquare_id"].string } - set { internalJson["foursquare_id"].string = newValue } - } - - public var foursquareType: String? { - get { return internalJson["foursquare_type"].string } - set { internalJson["foursquare_type"].string = newValue } - } - - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } public var inputMessageContent: InputMessageContent? { @@ -2609,16 +2869,6 @@ public struct InlineQueryResultVenue: JsonConvertible, InternalJsonConvertible { } } - public var latitude: Float { - get { return internalJson["latitude"].floatValue } - set { internalJson["latitude"].floatValue = newValue } - } - - public var longitude: Float { - get { return internalJson["longitude"].floatValue } - set { internalJson["longitude"].floatValue = newValue } - } - public var replyMarkup: InlineKeyboardMarkup? { get { let value = internalJson["reply_markup"] @@ -2629,24 +2879,9 @@ public struct InlineQueryResultVenue: JsonConvertible, InternalJsonConvertible { } } - public var thumbHeight: Int? { - get { return internalJson["thumb_height"].int } - set { internalJson["thumb_height"].int = newValue } - } - - public var thumbUrl: String? { - get { return internalJson["thumb_url"].string } - set { internalJson["thumb_url"].string = newValue } - } - - public var thumbWidth: Int? { - get { return internalJson["thumb_width"].int } - set { internalJson["thumb_width"].int = newValue } - } - - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var stickerFileId: String { + get { return internalJson["sticker_file_id"].stringValue } + set { internalJson["sticker_file_id"].stringValue = newValue } } public var typeString: String { @@ -2669,31 +2904,26 @@ public struct InlineQueryResultVenue: JsonConvertible, InternalJsonConvertible { } -public struct ShippingQuery: JsonConvertible, InternalJsonConvertible { +public struct InputTextMessageContent: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var from: User { - get { return User(internalJson: internalJson["from"]) } - set { internalJson["from"] = JSON(newValue.json) } - } - - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var disableWebPagePreview: Bool? { + get { return internalJson["disable_web_page_preview"].bool } + set { internalJson["disable_web_page_preview"].bool = newValue } } - public var invoicePayload: String { - get { return internalJson["invoice_payload"].stringValue } - set { internalJson["invoice_payload"].stringValue = newValue } + public var messageText: String { + get { return internalJson["message_text"].stringValue } + set { internalJson["message_text"].stringValue = newValue } } - public var shippingAddress: ShippingAddress { - get { return ShippingAddress(internalJson: internalJson["shipping_address"]) } - set { internalJson["shipping_address"] = JSON(newValue.json) } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -2711,33 +2941,41 @@ public struct ShippingQuery: JsonConvertible, InternalJsonConvertible { } -public struct InputMediaDocument: JsonConvertible, InternalJsonConvertible { +public struct User: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + public var firstName: String { + get { return internalJson["first_name"].stringValue } + set { internalJson["first_name"].stringValue = newValue } } - public var media: String { - get { return internalJson["media"].stringValue } - set { internalJson["media"].stringValue = newValue } + public var id: Int64 { + get { return internalJson["id"].int64Value } + set { internalJson["id"].int64Value = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var isBot: Bool { + get { return internalJson["is_bot"].boolValue } + set { internalJson["is_bot"].boolValue = newValue } } -public var thumb: InputFileOrString? = nil + public var languageCode: String? { + get { return internalJson["language_code"].string } + set { internalJson["language_code"].string = newValue } + } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var lastName: String? { + get { return internalJson["last_name"].string } + set { internalJson["last_name"].string = newValue } + } + + public var username: String? { + get { return internalJson["username"].string } + set { internalJson["username"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -2755,46 +2993,61 @@ public var thumb: InputFileOrString? = nil } -public struct PreCheckoutQuery: JsonConvertible, InternalJsonConvertible { +public struct InlineKeyboardButton: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var currency: Int { - get { return internalJson["currency"].intValue } - set { internalJson["currency"].intValue = newValue } - } - - public var from: User { - get { return User(internalJson: internalJson["from"]) } - set { internalJson["from"] = JSON(newValue.json) } - } - - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var callbackData: String? { + get { return internalJson["callback_data"].string } + set { internalJson["callback_data"].string = newValue } } - public var invoicePayload: String { - get { return internalJson["invoice_payload"].stringValue } - set { internalJson["invoice_payload"].stringValue = newValue } + public var callbackGame: CallbackGame? { + get { + let value = internalJson["callback_game"] + return value.isNullOrUnknown ? nil : CallbackGame(internalJson: value) + } + set { + internalJson["callback_game"] = newValue?.internalJson ?? JSON.null + } } - public var orderInfo: OrderInfo? { + public var loginUrl: LoginUrl? { get { - let value = internalJson["order_info"] - return value.isNullOrUnknown ? nil : OrderInfo(internalJson: value) + let value = internalJson["login_url"] + return value.isNullOrUnknown ? nil : LoginUrl(internalJson: value) } set { - internalJson["order_info"] = newValue?.internalJson ?? JSON.null + internalJson["login_url"] = newValue?.internalJson ?? JSON.null } } - public var shippingOptionId: String? { - get { return internalJson["shipping_option_id"].string } - set { internalJson["shipping_option_id"].string = newValue } + public var pay: Bool? { + get { return internalJson["pay"].bool } + set { internalJson["pay"].bool = newValue } + } + + public var switchInlineQuery: String? { + get { return internalJson["switch_inline_query"].string } + set { internalJson["switch_inline_query"].string = newValue } + } + + public var switchInlineQueryCurrentChat: String? { + get { return internalJson["switch_inline_query_current_chat"].string } + set { internalJson["switch_inline_query_current_chat"].string = newValue } + } + + public var text: String { + get { return internalJson["text"].stringValue } + set { internalJson["text"].stringValue = newValue } + } + + public var url: String? { + get { return internalJson["url"].string } + set { internalJson["url"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -2812,356 +3065,463 @@ public struct PreCheckoutQuery: JsonConvertible, InternalJsonConvertible { } -public struct Message: JsonConvertible, InternalJsonConvertible { +public struct KeyboardButton: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var animation: Animation? { - get { - let value = internalJson["animation"] - return value.isNullOrUnknown ? nil : Animation(internalJson: value) - } - set { - internalJson["animation"] = newValue?.internalJson ?? JSON.null - } + public var requestContact: Bool? { + get { return internalJson["request_contact"].bool } + set { internalJson["request_contact"].bool = newValue } } - public var audio: Audio? { - get { - let value = internalJson["audio"] - return value.isNullOrUnknown ? nil : Audio(internalJson: value) - } - set { - internalJson["audio"] = newValue?.internalJson ?? JSON.null - } + public var requestLocation: Bool? { + get { return internalJson["request_location"].bool } + set { internalJson["request_location"].bool = newValue } } - public var authorSignature: String? { - get { return internalJson["author_signature"].string } - set { internalJson["author_signature"].string = newValue } + public var text: String { + get { return internalJson["text"].stringValue } + set { internalJson["text"].stringValue = newValue } } - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var captionEntities: [MessageEntity] { - get { return internalJson["caption_entities"].customArrayValue() } - set { internalJson["caption_entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + public init() { + self.internalJson = JSON() } - - public var channelChatCreated: Bool? { - get { return internalJson["channel_chat_created"].bool } - set { internalJson["channel_chat_created"].bool = newValue } + public init(json: Any) { + self.internalJson = JSON(json) } - - public var chat: Chat { - get { return Chat(internalJson: internalJson["chat"]) } - set { internalJson["chat"] = JSON(newValue.json) } + public init(data: Data) { + self.internalJson = JSON(data: data) } +} - public var connectedWebsite: String? { - get { return internalJson["connected_website"].string } - set { internalJson["connected_website"].string = newValue } - } - public var contact: Contact? { - get { - let value = internalJson["contact"] - return value.isNullOrUnknown ? nil : Contact(internalJson: value) - } - set { - internalJson["contact"] = newValue?.internalJson ?? JSON.null - } +public struct CallbackGame: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } } - -public var date: Date { - get { return Date(timeIntervalSince1970: internalJson["date"].doubleValue) } - set { internalJson["date"].double = newValue.timeIntervalSince1970 } + internal var internalJson: JSON + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } - - public var deleteChatPhoto: Bool? { - get { return internalJson["delete_chat_photo"].bool } - set { internalJson["delete_chat_photo"].bool = newValue } + public init() { + self.internalJson = JSON() } - - public var document: Document? { - get { - let value = internalJson["document"] - return value.isNullOrUnknown ? nil : Document(internalJson: value) - } - set { - internalJson["document"] = newValue?.internalJson ?? JSON.null - } + public init(json: Any) { + self.internalJson = JSON(json) } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} - public var editDate: Date? { - get { - guard let date = internalJson["edit_date"].double else { return nil } - return Date(timeIntervalSince1970: date) - } + +public struct ReplyKeyboardMarkup: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var keyboard: [[KeyboardButton]] { + get { return internalJson["keyboard"].twoDArrayValue() } set { - internalJson["edit_date"].double = newValue?.timeIntervalSince1970 + var rowsJson = [JSON]() + rowsJson.reserveCapacity(newValue.count) + for row in newValue { + var colsJson = [JSON]() + colsJson.reserveCapacity(row.count) + for col in row { + let json = col.internalJson + colsJson.append(json) + } + rowsJson.append(JSON(colsJson)) + } + internalJson["keyboard"] = JSON(rowsJson) } } - public var entities: [MessageEntity] { - get { return internalJson["entities"].customArrayValue() } - set { internalJson["entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + public var oneTimeKeyboard: Bool? { + get { return internalJson["one_time_keyboard"].bool } + set { internalJson["one_time_keyboard"].bool = newValue } } - public var forwardDate: Date? { - get { - guard let date = internalJson["forward_date"].double else { return nil } - return Date(timeIntervalSince1970: date) - } - set { - internalJson["forward_date"].double = newValue?.timeIntervalSince1970 - } + public var resizeKeyboard: Bool? { + get { return internalJson["resize_keyboard"].bool } + set { internalJson["resize_keyboard"].bool = newValue } } - public var forwardFrom: User? { - get { - let value = internalJson["forward_from"] - return value.isNullOrUnknown ? nil : User(internalJson: value) - } - set { - internalJson["forward_from"] = newValue?.internalJson ?? JSON.null - } + public var selective: Bool? { + get { return internalJson["selective"].bool } + set { internalJson["selective"].bool = newValue } } - public var forwardFromChat: Chat? { - get { - let value = internalJson["forward_from_chat"] - return value.isNullOrUnknown ? nil : Chat(internalJson: value) - } - set { - internalJson["forward_from_chat"] = newValue?.internalJson ?? JSON.null - } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} - public var forwardFromMessageId: Int? { - get { return internalJson["forward_from_message_id"].int } - set { internalJson["forward_from_message_id"].int = newValue } + +public struct InlineQueryResultArticle: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var description: String? { + get { return internalJson["description"].string } + set { internalJson["description"].string = newValue } } - public var forwardSenderName: String? { - get { return internalJson["forward_sender_name"].string } - set { internalJson["forward_sender_name"].string = newValue } + public var hideUrl: Bool? { + get { return internalJson["hide_url"].bool } + set { internalJson["hide_url"].bool = newValue } } - public var forwardSignature: String? { - get { return internalJson["forward_signature"].string } - set { internalJson["forward_signature"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var from: User? { + public var inputMessageContent: InputMessageContent { get { - let value = internalJson["from"] - return value.isNullOrUnknown ? nil : User(internalJson: value) + fatalError("Not implemented") } set { - internalJson["from"] = newValue?.internalJson ?? JSON.null + internalJson["input_message_content"] = JSON(newValue.json) } } - public var game: Game? { + public var replyMarkup: InlineKeyboardMarkup? { get { - let value = internalJson["game"] - return value.isNullOrUnknown ? nil : Game(internalJson: value) + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) } set { - internalJson["game"] = newValue?.internalJson ?? JSON.null + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null } } - public var groupChatCreated: Bool? { - get { return internalJson["group_chat_created"].bool } - set { internalJson["group_chat_created"].bool = newValue } + public var thumbHeight: Int? { + get { return internalJson["thumb_height"].int } + set { internalJson["thumb_height"].int = newValue } } - public var invoice: Invoice? { - get { - let value = internalJson["invoice"] - return value.isNullOrUnknown ? nil : Invoice(internalJson: value) - } - set { - internalJson["invoice"] = newValue?.internalJson ?? JSON.null - } + public var thumbUrl: String? { + get { return internalJson["thumb_url"].string } + set { internalJson["thumb_url"].string = newValue } } - public var leftChatMember: User? { - get { - let value = internalJson["left_chat_member"] - return value.isNullOrUnknown ? nil : User(internalJson: value) - } - set { - internalJson["left_chat_member"] = newValue?.internalJson ?? JSON.null - } + public var thumbWidth: Int? { + get { return internalJson["thumb_width"].int } + set { internalJson["thumb_width"].int = newValue } } - public var location: Location? { - get { - let value = internalJson["location"] - return value.isNullOrUnknown ? nil : Location(internalJson: value) - } - set { - internalJson["location"] = newValue?.internalJson ?? JSON.null - } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } - public var mediaGroupId: String? { - get { return internalJson["media_group_id"].string } - set { internalJson["media_group_id"].string = newValue } + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } - public var messageId: Int { - get { return internalJson["message_id"].intValue } - set { internalJson["message_id"].intValue = newValue } + public var url: String? { + get { return internalJson["url"].string } + set { internalJson["url"].string = newValue } } - public var migrateFromChatId: Int64? { - get { return internalJson["migrate_from_chat_id"].int64 } - set { internalJson["migrate_from_chat_id"].int64 = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} - public var migrateToChatId: Int64? { - get { return internalJson["migrate_to_chat_id"].int64 } - set { internalJson["migrate_to_chat_id"].int64 = newValue } + +public struct InputMediaDocument: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var newChatMembers: [User] { - get { return internalJson["new_chat_members"].customArrayValue() } - set { internalJson["new_chat_members"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + public var media: String { + get { return internalJson["media"].stringValue } + set { internalJson["media"].stringValue = newValue } } - public var newChatPhoto: [PhotoSize] { - get { return internalJson["new_chat_photo"].customArrayValue() } - set { internalJson["new_chat_photo"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } - public var newChatTitle: String? { - get { return internalJson["new_chat_title"].string } - set { internalJson["new_chat_title"].string = newValue } +public var thumb: InputFileOrString? = nil + + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } - public var photo: [PhotoSize] { - get { return internalJson["photo"].customArrayValue() } - set { internalJson["photo"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} - public var pinnedMessage: Message? { - get { - let value = internalJson["pinned_message"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["pinned_message"] = newValue?.internalJson ?? JSON.null - } + +public struct InputMediaPhoto: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var poll: Poll? { - get { - let value = internalJson["poll"] - return value.isNullOrUnknown ? nil : Poll(internalJson: value) - } - set { - internalJson["poll"] = newValue?.internalJson ?? JSON.null - } + public var media: String { + get { return internalJson["media"].stringValue } + set { internalJson["media"].stringValue = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } + } + + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct Game: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var animation: Animation? { get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + let value = internalJson["animation"] + return value.isNullOrUnknown ? nil : Animation(internalJson: value) } set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + internalJson["animation"] = newValue?.internalJson ?? JSON.null } } - public var replyToMessage: Message? { - get { - let value = internalJson["reply_to_message"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["reply_to_message"] = newValue?.internalJson ?? JSON.null - } + public var description: String { + get { return internalJson["description"].stringValue } + set { internalJson["description"].stringValue = newValue } + } + + public var photo: [PhotoSize] { + get { return internalJson["photo"].customArrayValue() } + set { internalJson["photo"] = JSON.initFrom(newValue) } + } + + public var text: String? { + get { return internalJson["text"].string } + set { internalJson["text"].string = newValue } + } + + public var textEntities: [MessageEntity] { + get { return internalJson["text_entities"].customArrayValue() } + set { internalJson["text_entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + } + + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct ReplyKeyboardRemove: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var removeKeyboard: Bool { + get { return internalJson["remove_keyboard"].boolValue } + set { internalJson["remove_keyboard"].boolValue = newValue } + } + + public var selective: Bool? { + get { return internalJson["selective"].bool } + set { internalJson["selective"].bool = newValue } + } + + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} + + +public struct Voice: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var duration: Int { + get { return internalJson["duration"].intValue } + set { internalJson["duration"].intValue = newValue } + } + + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } + } + + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var sticker: Sticker? { - get { - let value = internalJson["sticker"] - return value.isNullOrUnknown ? nil : Sticker(internalJson: value) - } - set { - internalJson["sticker"] = newValue?.internalJson ?? JSON.null - } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var successfulPayment: SuccessfulPayment? { - get { - let value = internalJson["successful_payment"] - return value.isNullOrUnknown ? nil : SuccessfulPayment(internalJson: value) - } - set { - internalJson["successful_payment"] = newValue?.internalJson ?? JSON.null - } + public var mimeType: String? { + get { return internalJson["mime_type"].string } + set { internalJson["mime_type"].string = newValue } } - public var supergroupChatCreated: Bool? { - get { return internalJson["supergroup_chat_created"].bool } - set { internalJson["supergroup_chat_created"].bool = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) + } + public init(data: Data) { + self.internalJson = JSON(data: data) } +} - public var text: String? { - get { return internalJson["text"].string } - set { internalJson["text"].string = newValue } + +public struct InlineQuery: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var from: User { + get { return User(internalJson: internalJson["from"]) } + set { internalJson["from"] = JSON(newValue.json) } } - public var venue: Venue? { - get { - let value = internalJson["venue"] - return value.isNullOrUnknown ? nil : Venue(internalJson: value) - } - set { - internalJson["venue"] = newValue?.internalJson ?? JSON.null - } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var video: Video? { + public var location: Location? { get { - let value = internalJson["video"] - return value.isNullOrUnknown ? nil : Video(internalJson: value) + let value = internalJson["location"] + return value.isNullOrUnknown ? nil : Location(internalJson: value) } set { - internalJson["video"] = newValue?.internalJson ?? JSON.null + internalJson["location"] = newValue?.internalJson ?? JSON.null } } - public var videoNote: VideoNote? { - get { - let value = internalJson["video_note"] - return value.isNullOrUnknown ? nil : VideoNote(internalJson: value) - } - set { - internalJson["video_note"] = newValue?.internalJson ?? JSON.null - } + public var offset: String { + get { return internalJson["offset"].stringValue } + set { internalJson["offset"].stringValue = newValue } } - public var voice: Voice? { - get { - let value = internalJson["voice"] - return value.isNullOrUnknown ? nil : Voice(internalJson: value) - } - set { - internalJson["voice"] = newValue?.internalJson ?? JSON.null - } + public var query: String { + get { return internalJson["query"].stringValue } + set { internalJson["query"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3179,21 +3539,16 @@ public var date: Date { } -public struct InlineQueryResultArticle: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultContact: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } - } - - public var hideUrl: Bool? { - get { return internalJson["hide_url"].bool } - set { internalJson["hide_url"].bool = newValue } + public var firstName: String { + get { return internalJson["first_name"].stringValue } + set { internalJson["first_name"].stringValue = newValue } } public var id: String { @@ -3201,15 +3556,25 @@ public struct InlineQueryResultArticle: JsonConvertible, InternalJsonConvertible set { internalJson["id"].stringValue = newValue } } - public var inputMessageContent: InputMessageContent { + public var inputMessageContent: InputMessageContent? { get { fatalError("Not implemented") } set { - internalJson["input_message_content"] = JSON(newValue.json) + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) } } + public var lastName: String? { + get { return internalJson["last_name"].string } + set { internalJson["last_name"].string = newValue } + } + + public var phoneNumber: String { + get { return internalJson["phone_number"].stringValue } + set { internalJson["phone_number"].stringValue = newValue } + } + public var replyMarkup: InlineKeyboardMarkup? { get { let value = internalJson["reply_markup"] @@ -3235,19 +3600,14 @@ public struct InlineQueryResultArticle: JsonConvertible, InternalJsonConvertible set { internalJson["thumb_width"].int = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } - } - public var typeString: String { get { return internalJson["type"].stringValue } set { internalJson["type"].stringValue = newValue } } - public var url: String? { - get { return internalJson["url"].string } - set { internalJson["url"].string = newValue } + public var vcard: String? { + get { return internalJson["vcard"].string } + set { internalJson["vcard"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -3265,7 +3625,7 @@ public struct InlineQueryResultArticle: JsonConvertible, InternalJsonConvertible } -public struct InputMediaVideo: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultGif: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -3277,120 +3637,68 @@ public struct InputMediaVideo: JsonConvertible, InternalJsonConvertible { set { internalJson["caption"].string = newValue } } - public var duration: Int? { - get { return internalJson["duration"].int } - set { internalJson["duration"].int = newValue } - } - - public var height: Int? { - get { return internalJson["height"].int } - set { internalJson["height"].int = newValue } - } - - public var media: String { - get { return internalJson["media"].stringValue } - set { internalJson["media"].stringValue = newValue } - } - - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } - } - - public var supportsStreaming: Bool? { - get { return internalJson["supports_streaming"].bool } - set { internalJson["supports_streaming"].bool = newValue } - } - -public var thumb: InputFileOrString? = nil - - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } - } - - public var width: Int? { - get { return internalJson["width"].int } - set { internalJson["width"].int = newValue } + public var gifDuration: Int? { + get { return internalJson["gif_duration"].int } + set { internalJson["gif_duration"].int = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) + public var gifHeight: Int? { + get { return internalJson["gif_height"].int } + set { internalJson["gif_height"].int = newValue } } -} - -public struct Venue: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var address: String { - get { return internalJson["address"].stringValue } - set { internalJson["address"].stringValue = newValue } + public var gifUrl: String { + get { return internalJson["gif_url"].stringValue } + set { internalJson["gif_url"].stringValue = newValue } } - public var foursquareId: String? { - get { return internalJson["foursquare_id"].string } - set { internalJson["foursquare_id"].string = newValue } + public var gifWidth: Int? { + get { return internalJson["gif_width"].int } + set { internalJson["gif_width"].int = newValue } } - public var foursquareType: String? { - get { return internalJson["foursquare_type"].string } - set { internalJson["foursquare_type"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var location: Location { - get { return Location(internalJson: internalJson["location"]) } - set { internalJson["location"] = JSON(newValue.json) } + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) + public var replyMarkup: InlineKeyboardMarkup? { + get { + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + } + set { + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + } } -} - -public struct Location: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } + public var thumbUrl: String { + get { return internalJson["thumb_url"].stringValue } + set { internalJson["thumb_url"].stringValue = newValue } } - internal var internalJson: JSON - public var latitude: Float { - get { return internalJson["latitude"].floatValue } - set { internalJson["latitude"].floatValue = newValue } + + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } } - public var longitude: Float { - get { return internalJson["longitude"].floatValue } - set { internalJson["longitude"].floatValue = newValue } + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3408,75 +3716,53 @@ public struct Location: JsonConvertible, InternalJsonConvertible { } -public struct WebhookInfo: JsonConvertible, InternalJsonConvertible { +public struct ChatPermissions: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var allowedUpdates: String? { - get { return internalJson["allowed_updates"].string } - set { internalJson["allowed_updates"].string = newValue } + public var canAddWebPagePreviews: Bool? { + get { return internalJson["can_add_web_page_previews"].bool } + set { internalJson["can_add_web_page_previews"].bool = newValue } } - public var hasCustomCertificate: Bool { - get { return internalJson["has_custom_certificate"].boolValue } - set { internalJson["has_custom_certificate"].boolValue = newValue } + public var canChangeInfo: Bool? { + get { return internalJson["can_change_info"].bool } + set { internalJson["can_change_info"].bool = newValue } } - public var lastErrorDate: Date? { - get { - guard let date = internalJson["last_error_date"].double else { return nil } - return Date(timeIntervalSince1970: date) - } - set { - internalJson["last_error_date"].double = newValue?.timeIntervalSince1970 - } + public var canInviteUsers: Bool? { + get { return internalJson["can_invite_users"].bool } + set { internalJson["can_invite_users"].bool = newValue } } - public var lastErrorMessage: String? { - get { return internalJson["last_error_message"].string } - set { internalJson["last_error_message"].string = newValue } + public var canPinMessages: Bool? { + get { return internalJson["can_pin_messages"].bool } + set { internalJson["can_pin_messages"].bool = newValue } } - public var maxConnections: Int? { - get { return internalJson["max_connections"].int } - set { internalJson["max_connections"].int = newValue } + public var canSendMediaMessages: Bool? { + get { return internalJson["can_send_media_messages"].bool } + set { internalJson["can_send_media_messages"].bool = newValue } } - public var pendingUpdateCount: Int { - get { return internalJson["pending_update_count"].intValue } - set { internalJson["pending_update_count"].intValue = newValue } + public var canSendMessages: Bool? { + get { return internalJson["can_send_messages"].bool } + set { internalJson["can_send_messages"].bool = newValue } } - public var url: String { - get { return internalJson["url"].stringValue } - set { internalJson["url"].stringValue = newValue } + public var canSendOtherMessages: Bool? { + get { return internalJson["can_send_other_messages"].bool } + set { internalJson["can_send_other_messages"].bool = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) + public var canSendPolls: Bool? { + get { return internalJson["can_send_polls"].bool } + set { internalJson["can_send_polls"].bool = newValue } } -} - -public struct CallbackGame: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON internal init(internalJson: JSON = [:]) { self.internalJson = internalJson } @@ -3492,7 +3778,7 @@ public struct CallbackGame: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultVideo: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -3523,6 +3809,11 @@ public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvert } } + public var mimeType: String { + get { return internalJson["mime_type"].stringValue } + set { internalJson["mime_type"].stringValue = newValue } + } + public var parseModeString: String? { get { return internalJson["parse_mode"].string } set { internalJson["parse_mode"].string = newValue } @@ -3538,6 +3829,11 @@ public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvert } } + public var thumbUrl: String { + get { return internalJson["thumb_url"].stringValue } + set { internalJson["thumb_url"].stringValue = newValue } + } + public var title: String { get { return internalJson["title"].stringValue } set { internalJson["title"].stringValue = newValue } @@ -3548,9 +3844,24 @@ public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvert set { internalJson["type"].stringValue = newValue } } - public var videoFileId: String { - get { return internalJson["video_file_id"].stringValue } - set { internalJson["video_file_id"].stringValue = newValue } + public var videoDuration: Int? { + get { return internalJson["video_duration"].int } + set { internalJson["video_duration"].int = newValue } + } + + public var videoHeight: Int? { + get { return internalJson["video_height"].int } + set { internalJson["video_height"].int = newValue } + } + + public var videoUrl: String { + get { return internalJson["video_url"].stringValue } + set { internalJson["video_url"].stringValue = newValue } + } + + public var videoWidth: Int? { + get { return internalJson["video_width"].int } + set { internalJson["video_width"].int = newValue } } internal init(internalJson: JSON = [:]) { @@ -3568,88 +3879,53 @@ public struct InlineQueryResultCachedVideo: JsonConvertible, InternalJsonConvert } -public struct Game: JsonConvertible, InternalJsonConvertible { +public struct InputMediaVideo: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var animation: Animation? { - get { - let value = internalJson["animation"] - return value.isNullOrUnknown ? nil : Animation(internalJson: value) - } - set { - internalJson["animation"] = newValue?.internalJson ?? JSON.null - } - } - - public var description: String { - get { return internalJson["description"].stringValue } - set { internalJson["description"].stringValue = newValue } - } - - public var photo: [PhotoSize] { - get { return internalJson["photo"].customArrayValue() } - set { internalJson["photo"] = JSON.initFrom(newValue) } + public var caption: String? { + get { return internalJson["caption"].string } + set { internalJson["caption"].string = newValue } } - public var text: String? { - get { return internalJson["text"].string } - set { internalJson["text"].string = newValue } + public var duration: Int? { + get { return internalJson["duration"].int } + set { internalJson["duration"].int = newValue } } - public var textEntities: [MessageEntity] { - get { return internalJson["text_entities"].customArrayValue() } - set { internalJson["text_entities"] = newValue.isEmpty ? JSON.null : JSON.initFrom(newValue) } + public var height: Int? { + get { return internalJson["height"].int } + set { internalJson["height"].int = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var media: String { + get { return internalJson["media"].stringValue } + set { internalJson["media"].stringValue = newValue } } - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) + public var parseModeString: String? { + get { return internalJson["parse_mode"].string } + set { internalJson["parse_mode"].string = newValue } } -} - -public struct MaskPosition: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var point: String { - get { return internalJson["point"].stringValue } - set { internalJson["point"].stringValue = newValue } + public var supportsStreaming: Bool? { + get { return internalJson["supports_streaming"].bool } + set { internalJson["supports_streaming"].bool = newValue } } - public var scale: Float { - get { return internalJson["scale"].floatValue } - set { internalJson["scale"].floatValue = newValue } - } +public var thumb: InputFileOrString? = nil - public var xShift: Float { - get { return internalJson["x_shift"].floatValue } - set { internalJson["x_shift"].floatValue = newValue } + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } - public var yShift: Float { - get { return internalJson["y_shift"].floatValue } - set { internalJson["y_shift"].floatValue = newValue } + public var width: Int? { + get { return internalJson["width"].int } + set { internalJson["width"].int = newValue } } internal init(internalJson: JSON = [:]) { @@ -3667,7 +3943,7 @@ public struct MaskPosition: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedPhoto: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultCachedMpeg4Gif: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -3679,11 +3955,6 @@ public struct InlineQueryResultCachedPhoto: JsonConvertible, InternalJsonConvert set { internalJson["caption"].string = newValue } } - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } - } - public var id: String { get { return internalJson["id"].stringValue } set { internalJson["id"].stringValue = newValue } @@ -3698,16 +3969,16 @@ public struct InlineQueryResultCachedPhoto: JsonConvertible, InternalJsonConvert } } + public var mpeg4FileId: String { + get { return internalJson["mpeg4_file_id"].stringValue } + set { internalJson["mpeg4_file_id"].stringValue = newValue } + } + public var parseModeString: String? { get { return internalJson["parse_mode"].string } set { internalJson["parse_mode"].string = newValue } } - public var photoFileId: String { - get { return internalJson["photo_file_id"].stringValue } - set { internalJson["photo_file_id"].stringValue = newValue } - } - public var replyMarkup: InlineKeyboardMarkup? { get { let value = internalJson["reply_markup"] @@ -3743,21 +4014,34 @@ public struct InlineQueryResultCachedPhoto: JsonConvertible, InternalJsonConvert } -public struct ResponseParameters: JsonConvertible, InternalJsonConvertible { +public struct UserProfilePhotos: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var migrateToChatId: Int64? { - get { return internalJson["migrate_to_chat_id"].int64 } - set { internalJson["migrate_to_chat_id"].int64 = newValue } + public var photos: [[PhotoSize]] { + get { return internalJson["photos"].twoDArrayValue() } + set { + var rowsJson = [JSON]() + rowsJson.reserveCapacity(newValue.count) + for row in newValue { + var colsJson = [JSON]() + colsJson.reserveCapacity(row.count) + for col in row { + let json = col.internalJson + colsJson.append(json) + } + rowsJson.append(JSON(colsJson)) + } + internalJson["photos"] = JSON(rowsJson) + } } - public var retryAfter: Int? { - get { return internalJson["retry_after"].int } - set { internalJson["retry_after"].int = newValue } + public var totalCount: Int { + get { return internalJson["total_count"].intValue } + set { internalJson["total_count"].intValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3775,41 +4059,36 @@ public struct ResponseParameters: JsonConvertible, InternalJsonConvertible { } -public struct User: JsonConvertible, InternalJsonConvertible { +public struct PhotoSize: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var firstName: String { - get { return internalJson["first_name"].stringValue } - set { internalJson["first_name"].stringValue = newValue } - } - - public var id: Int64 { - get { return internalJson["id"].int64Value } - set { internalJson["id"].int64Value = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var isBot: Bool { - get { return internalJson["is_bot"].boolValue } - set { internalJson["is_bot"].boolValue = newValue } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var languageCode: String? { - get { return internalJson["language_code"].string } - set { internalJson["language_code"].string = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var lastName: String? { - get { return internalJson["last_name"].string } - set { internalJson["last_name"].string = newValue } + public var height: Int { + get { return internalJson["height"].intValue } + set { internalJson["height"].intValue = newValue } } - public var username: String? { - get { return internalJson["username"].string } - set { internalJson["username"].string = newValue } + public var width: Int { + get { return internalJson["width"].intValue } + set { internalJson["width"].intValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3827,7 +4106,7 @@ public struct User: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { +public struct InputMediaAudio: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -3839,18 +4118,14 @@ public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { set { internalJson["caption"].string = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var duration: Int? { + get { return internalJson["duration"].int } + set { internalJson["duration"].int = newValue } } - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } + public var media: String { + get { return internalJson["media"].stringValue } + set { internalJson["media"].stringValue = newValue } } public var parseModeString: String? { @@ -3858,19 +4133,16 @@ public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { set { internalJson["parse_mode"].string = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { - get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) - } - set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null - } + public var performer: String? { + get { return internalJson["performer"].string } + set { internalJson["performer"].string = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } +public var thumb: InputFileOrString? = nil + + public var title: String? { + get { return internalJson["title"].string } + set { internalJson["title"].string = newValue } } public var typeString: String { @@ -3878,14 +4150,41 @@ public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { set { internalJson["type"].stringValue = newValue } } - public var voiceDuration: Int? { - get { return internalJson["voice_duration"].int } - set { internalJson["voice_duration"].int = newValue } + internal init(internalJson: JSON = [:]) { + self.internalJson = internalJson + } + public init() { + self.internalJson = JSON() + } + public init(json: Any) { + self.internalJson = JSON(json) } + public init(data: Data) { + self.internalJson = JSON(data: data) + } +} - public var voiceUrl: String { - get { return internalJson["voice_url"].stringValue } - set { internalJson["voice_url"].stringValue = newValue } + +public struct InputLocationMessageContent: JsonConvertible, InternalJsonConvertible { + /// Original JSON for fields not yet added to Swift structures. + public var json: Any { + get { return internalJson.object } + set { internalJson = JSON(newValue) } + } + internal var internalJson: JSON + public var latitude: Float { + get { return internalJson["latitude"].floatValue } + set { internalJson["latitude"].floatValue = newValue } + } + + public var livePeriod: Int? { + get { return internalJson["live_period"].int } + set { internalJson["live_period"].int = newValue } + } + + public var longitude: Float { + get { return internalJson["longitude"].floatValue } + set { internalJson["longitude"].floatValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3903,60 +4202,71 @@ public struct InlineQueryResultVoice: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedMpeg4Gif: JsonConvertible, InternalJsonConvertible { +public struct Sticker: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + public var emoji: String? { + get { return internalJson["emoji"].string } + set { internalJson["emoji"].string = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var mpeg4FileId: String { - get { return internalJson["mpeg4_file_id"].stringValue } - set { internalJson["mpeg4_file_id"].stringValue = newValue } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var height: Int { + get { return internalJson["height"].intValue } + set { internalJson["height"].intValue = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { + public var isAnimated: Bool { + get { return internalJson["is_animated"].boolValue } + set { internalJson["is_animated"].boolValue = newValue } + } + + public var maskPosition: MaskPosition? { get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + let value = internalJson["mask_position"] + return value.isNullOrUnknown ? nil : MaskPosition(internalJson: value) } set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + internalJson["mask_position"] = newValue?.internalJson ?? JSON.null } } - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } + public var setName: String? { + get { return internalJson["set_name"].string } + set { internalJson["set_name"].string = newValue } } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var thumb: PhotoSize? { + get { + let value = internalJson["thumb"] + return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) + } + set { + internalJson["thumb"] = newValue?.internalJson ?? JSON.null + } + } + + public var width: Int { + get { return internalJson["width"].intValue } + set { internalJson["width"].intValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -3974,81 +4284,70 @@ public struct InlineQueryResultCachedMpeg4Gif: JsonConvertible, InternalJsonConv } -public struct Chat: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultLocation: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var canSetStickerSet: Bool? { - get { return internalJson["can_set_sticker_set"].bool } - set { internalJson["can_set_sticker_set"].bool = newValue } - } - - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var firstName: String? { - get { return internalJson["first_name"].string } - set { internalJson["first_name"].string = newValue } + public var inputMessageContent: InputMessageContent? { + get { + fatalError("Not implemented") + } + set { + internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) + } } - public var id: Int64 { - get { return internalJson["id"].int64Value } - set { internalJson["id"].int64Value = newValue } + public var latitude: Float { + get { return internalJson["latitude"].floatValue } + set { internalJson["latitude"].floatValue = newValue } } - public var inviteLink: String? { - get { return internalJson["invite_link"].string } - set { internalJson["invite_link"].string = newValue } + public var livePeriod: Int? { + get { return internalJson["live_period"].int } + set { internalJson["live_period"].int = newValue } } - public var lastName: String? { - get { return internalJson["last_name"].string } - set { internalJson["last_name"].string = newValue } + public var longitude: Float { + get { return internalJson["longitude"].floatValue } + set { internalJson["longitude"].floatValue = newValue } } - public var permissions: ChatPermissions? { + public var replyMarkup: InlineKeyboardMarkup? { get { - let value = internalJson["permissions"] - return value.isNullOrUnknown ? nil : ChatPermissions(internalJson: value) + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) } set { - internalJson["permissions"] = newValue?.internalJson ?? JSON.null + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null } } - public var photo: ChatPhoto? { - get { - let value = internalJson["photo"] - return value.isNullOrUnknown ? nil : ChatPhoto(internalJson: value) - } - set { - internalJson["photo"] = newValue?.internalJson ?? JSON.null - } + public var thumbHeight: Int? { + get { return internalJson["thumb_height"].int } + set { internalJson["thumb_height"].int = newValue } } - public var pinnedMessage: Message? { - get { - let value = internalJson["pinned_message"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["pinned_message"] = newValue?.internalJson ?? JSON.null - } + public var thumbUrl: String? { + get { return internalJson["thumb_url"].string } + set { internalJson["thumb_url"].string = newValue } } - public var stickerSetName: String? { - get { return internalJson["sticker_set_name"].string } - set { internalJson["sticker_set_name"].string = newValue } + public var thumbWidth: Int? { + get { return internalJson["thumb_width"].int } + set { internalJson["thumb_width"].int = newValue } } - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } public var typeString: String { @@ -4056,11 +4355,6 @@ public struct Chat: JsonConvertible, InternalJsonConvertible { set { internalJson["type"].stringValue = newValue } } - public var username: String? { - get { return internalJson["username"].string } - set { internalJson["username"].string = newValue } - } - internal init(internalJson: JSON = [:]) { self.internalJson = internalJson } @@ -4172,163 +4466,36 @@ public struct InlineQueryResultDocument: JsonConvertible, InternalJsonConvertibl } -public struct InputVenueMessageContent: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var address: String { - get { return internalJson["address"].stringValue } - set { internalJson["address"].stringValue = newValue } - } - - public var foursquareId: String? { - get { return internalJson["foursquare_id"].string } - set { internalJson["foursquare_id"].string = newValue } - } - - public var foursquareType: String? { - get { return internalJson["foursquare_type"].string } - set { internalJson["foursquare_type"].string = newValue } - } - - public var latitude: Float { - get { return internalJson["latitude"].floatValue } - set { internalJson["latitude"].floatValue = newValue } - } - - public var longitude: Float { - get { return internalJson["longitude"].floatValue } - set { internalJson["longitude"].floatValue = newValue } - } - - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct Update: JsonConvertible, InternalJsonConvertible { +public struct InlineQueryResultGame: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var callbackQuery: CallbackQuery? { - get { - let value = internalJson["callback_query"] - return value.isNullOrUnknown ? nil : CallbackQuery(internalJson: value) - } - set { - internalJson["callback_query"] = newValue?.internalJson ?? JSON.null - } - } - - public var channelPost: Message? { - get { - let value = internalJson["channel_post"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["channel_post"] = newValue?.internalJson ?? JSON.null - } - } - - public var chosenInlineResult: ChosenInlineResult? { - get { - let value = internalJson["chosen_inline_result"] - return value.isNullOrUnknown ? nil : ChosenInlineResult(internalJson: value) - } - set { - internalJson["chosen_inline_result"] = newValue?.internalJson ?? JSON.null - } - } - - public var editedChannelPost: Message? { - get { - let value = internalJson["edited_channel_post"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["edited_channel_post"] = newValue?.internalJson ?? JSON.null - } - } - - public var editedMessage: Message? { - get { - let value = internalJson["edited_message"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["edited_message"] = newValue?.internalJson ?? JSON.null - } - } - - public var inlineQuery: InlineQuery? { - get { - let value = internalJson["inline_query"] - return value.isNullOrUnknown ? nil : InlineQuery(internalJson: value) - } - set { - internalJson["inline_query"] = newValue?.internalJson ?? JSON.null - } - } - - public var message: Message? { - get { - let value = internalJson["message"] - return value.isNullOrUnknown ? nil : Message(internalJson: value) - } - set { - internalJson["message"] = newValue?.internalJson ?? JSON.null - } - } - - public var poll: Poll { - get { return Poll(internalJson: internalJson["poll"]) } - set { internalJson["poll"] = JSON(newValue.json) } + public var gameShortName: String { + get { return internalJson["game_short_name"].stringValue } + set { internalJson["game_short_name"].stringValue = newValue } } - public var preCheckoutQuery: PreCheckoutQuery? { - get { - let value = internalJson["pre_checkout_query"] - return value.isNullOrUnknown ? nil : PreCheckoutQuery(internalJson: value) - } - set { - internalJson["pre_checkout_query"] = newValue?.internalJson ?? JSON.null - } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var shippingQuery: ShippingQuery? { + public var replyMarkup: InlineKeyboardMarkup? { get { - let value = internalJson["shipping_query"] - return value.isNullOrUnknown ? nil : ShippingQuery(internalJson: value) + let value = internalJson["reply_markup"] + return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) } set { - internalJson["shipping_query"] = newValue?.internalJson ?? JSON.null + internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null } } - public var updateId: Int64 { - get { return internalJson["update_id"].int64Value } - set { internalJson["update_id"].int64Value = newValue } + public var typeString: String { + get { return internalJson["type"].stringValue } + set { internalJson["type"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -4346,60 +4513,31 @@ public struct Update: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedGif: JsonConvertible, InternalJsonConvertible { +public struct LoginUrl: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } - } - - public var gifFileId: String { - get { return internalJson["gif_file_id"].stringValue } - set { internalJson["gif_file_id"].stringValue = newValue } - } - - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } - } - - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } - } - - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var botUsername: String? { + get { return internalJson["bot_username"].string } + set { internalJson["bot_username"].string = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { - get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) - } - set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null - } + public var forwardText: String? { + get { return internalJson["forward_text"].string } + set { internalJson["forward_text"].string = newValue } } - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } + public var requestWriteAccess: Bool? { + get { return internalJson["request_write_access"].bool } + set { internalJson["request_write_access"].bool = newValue } } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var url: String { + get { return internalJson["url"].stringValue } + set { internalJson["url"].stringValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -4417,36 +4555,36 @@ public struct InlineQueryResultCachedGif: JsonConvertible, InternalJsonConvertib } -public struct Invoice: JsonConvertible, InternalJsonConvertible { +public struct Contact: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var currency: String { - get { return internalJson["currency"].stringValue } - set { internalJson["currency"].stringValue = newValue } + public var firstName: String { + get { return internalJson["first_name"].stringValue } + set { internalJson["first_name"].stringValue = newValue } } - public var description: String { - get { return internalJson["description"].stringValue } - set { internalJson["description"].stringValue = newValue } + public var lastName: String? { + get { return internalJson["last_name"].string } + set { internalJson["last_name"].string = newValue } } - public var startParameter: String { - get { return internalJson["start_parameter"].stringValue } - set { internalJson["start_parameter"].stringValue = newValue } + public var phoneNumber: String { + get { return internalJson["phone_number"].stringValue } + set { internalJson["phone_number"].stringValue = newValue } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } + public var userId: Int64? { + get { return internalJson["user_id"].int64 } + set { internalJson["user_id"].int64 = newValue } } - public var totalAmount: Int { - get { return internalJson["total_amount"].intValue } - set { internalJson["total_amount"].intValue = newValue } + public var vcard: String? { + get { return internalJson["vcard"].string } + set { internalJson["vcard"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -4464,31 +4602,31 @@ public struct Invoice: JsonConvertible, InternalJsonConvertible { } -public struct LoginUrl: JsonConvertible, InternalJsonConvertible { +public struct ShippingQuery: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var botUsername: String? { - get { return internalJson["bot_username"].string } - set { internalJson["bot_username"].string = newValue } + public var from: User { + get { return User(internalJson: internalJson["from"]) } + set { internalJson["from"] = JSON(newValue.json) } } - public var forwardText: String? { - get { return internalJson["forward_text"].string } - set { internalJson["forward_text"].string = newValue } + public var id: String { + get { return internalJson["id"].stringValue } + set { internalJson["id"].stringValue = newValue } } - public var requestWriteAccess: Bool? { - get { return internalJson["request_write_access"].bool } - set { internalJson["request_write_access"].bool = newValue } + public var invoicePayload: String { + get { return internalJson["invoice_payload"].stringValue } + set { internalJson["invoice_payload"].stringValue = newValue } } - public var url: String { - get { return internalJson["url"].stringValue } - set { internalJson["url"].stringValue = newValue } + public var shippingAddress: ShippingAddress { + get { return ShippingAddress(internalJson: internalJson["shipping_address"]) } + set { internalJson["shipping_address"] = JSON(newValue.json) } } internal init(internalJson: JSON = [:]) { @@ -4506,41 +4644,31 @@ public struct LoginUrl: JsonConvertible, InternalJsonConvertible { } -public struct MessageEntity: JsonConvertible, InternalJsonConvertible { +public struct InputContactMessageContent: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var length: Int { - get { return internalJson["length"].intValue } - set { internalJson["length"].intValue = newValue } - } - - public var offset: Int { - get { return internalJson["offset"].intValue } - set { internalJson["offset"].intValue = newValue } + public var firstName: String { + get { return internalJson["first_name"].stringValue } + set { internalJson["first_name"].stringValue = newValue } } - public var typeString: String? { - get { return internalJson["type"].string } - set { internalJson["type"].string = newValue } + public var lastName: String? { + get { return internalJson["last_name"].string } + set { internalJson["last_name"].string = newValue } } - public var url: String? { - get { return internalJson["url"].string } - set { internalJson["url"].string = newValue } + public var phoneNumber: String { + get { return internalJson["phone_number"].stringValue } + set { internalJson["phone_number"].stringValue = newValue } } - public var user: User? { - get { - let value = internalJson["user"] - return value.isNullOrUnknown ? nil : User(internalJson: value) - } - set { - internalJson["user"] = newValue?.internalJson ?? JSON.null - } + public var vcard: String? { + get { return internalJson["vcard"].string } + set { internalJson["vcard"].string = newValue } } internal init(internalJson: JSON = [:]) { @@ -4558,65 +4686,61 @@ public struct MessageEntity: JsonConvertible, InternalJsonConvertible { } -public struct InlineQueryResultCachedDocument: JsonConvertible, InternalJsonConvertible { +public struct Animation: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } + public var duration: Int { + get { return internalJson["duration"].intValue } + set { internalJson["duration"].intValue = newValue } } - public var description: String? { - get { return internalJson["description"].string } - set { internalJson["description"].string = newValue } + public var fileId: String { + get { return internalJson["file_id"].stringValue } + set { internalJson["file_id"].stringValue = newValue } } - public var documentFileId: String { - get { return internalJson["document_file_id"].stringValue } - set { internalJson["document_file_id"].stringValue = newValue } + public var fileName: String? { + get { return internalJson["file_name"].string } + set { internalJson["file_name"].string = newValue } } - public var id: String { - get { return internalJson["id"].stringValue } - set { internalJson["id"].stringValue = newValue } + public var fileSize: Int? { + get { return internalJson["file_size"].int } + set { internalJson["file_size"].int = newValue } } - public var inputMessageContent: InputMessageContent? { - get { - fatalError("Not implemented") - } - set { - internalJson["input_message_content"] = JSON(newValue?.json ?? JSON.null) - } + public var fileUniqueId: String { + get { return internalJson["file_unique_id"].stringValue } + set { internalJson["file_unique_id"].stringValue = newValue } } - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } + public var height: Int { + get { return internalJson["height"].intValue } + set { internalJson["height"].intValue = newValue } } - public var replyMarkup: InlineKeyboardMarkup? { + public var mimeType: String? { + get { return internalJson["mime_type"].string } + set { internalJson["mime_type"].string = newValue } + } + + public var thumb: PhotoSize? { get { - let value = internalJson["reply_markup"] - return value.isNullOrUnknown ? nil : InlineKeyboardMarkup(internalJson: value) + let value = internalJson["thumb"] + return value.isNullOrUnknown ? nil : PhotoSize(internalJson: value) } set { - internalJson["reply_markup"] = newValue?.internalJson ?? JSON.null + internalJson["thumb"] = newValue?.internalJson ?? JSON.null } } - public var title: String { - get { return internalJson["title"].stringValue } - set { internalJson["title"].stringValue = newValue } - } - - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var width: Int { + get { return internalJson["width"].intValue } + set { internalJson["width"].intValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -4634,21 +4758,31 @@ public struct InlineQueryResultCachedDocument: JsonConvertible, InternalJsonConv } -public struct LabeledPrice: JsonConvertible, InternalJsonConvertible { +public struct MaskPosition: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var amount: Int { - get { return internalJson["amount"].intValue } - set { internalJson["amount"].intValue = newValue } + public var point: String { + get { return internalJson["point"].stringValue } + set { internalJson["point"].stringValue = newValue } } - public var label: String { - get { return internalJson["label"].stringValue } - set { internalJson["label"].stringValue = newValue } + public var scale: Float { + get { return internalJson["scale"].floatValue } + set { internalJson["scale"].floatValue = newValue } + } + + public var xShift: Float { + get { return internalJson["x_shift"].floatValue } + set { internalJson["x_shift"].floatValue = newValue } + } + + public var yShift: Float { + get { return internalJson["y_shift"].floatValue } + set { internalJson["y_shift"].floatValue = newValue } } internal init(internalJson: JSON = [:]) { @@ -4666,7 +4800,7 @@ public struct LabeledPrice: JsonConvertible, InternalJsonConvertible { } -public struct SuccessfulPayment: JsonConvertible, InternalJsonConvertible { +public struct Invoice: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } @@ -4678,34 +4812,19 @@ public struct SuccessfulPayment: JsonConvertible, InternalJsonConvertible { set { internalJson["currency"].stringValue = newValue } } - public var invoicePayload: String { - get { return internalJson["invoice_payload"].stringValue } - set { internalJson["invoice_payload"].stringValue = newValue } - } - - public var orderInfo: OrderInfo? { - get { - let value = internalJson["order_info"] - return value.isNullOrUnknown ? nil : OrderInfo(internalJson: value) - } - set { - internalJson["order_info"] = newValue?.internalJson ?? JSON.null - } - } - - public var providerPaymentChargeId: String { - get { return internalJson["provider_payment_charge_id"].stringValue } - set { internalJson["provider_payment_charge_id"].stringValue = newValue } + public var description: String { + get { return internalJson["description"].stringValue } + set { internalJson["description"].stringValue = newValue } } - public var shippingOptionId: String? { - get { return internalJson["shipping_option_id"].string } - set { internalJson["shipping_option_id"].string = newValue } + public var startParameter: String { + get { return internalJson["start_parameter"].stringValue } + set { internalJson["start_parameter"].stringValue = newValue } } - public var telegramPaymentChargeId: String { - get { return internalJson["telegram_payment_charge_id"].stringValue } - set { internalJson["telegram_payment_charge_id"].stringValue = newValue } + public var title: String { + get { return internalJson["title"].stringValue } + set { internalJson["title"].stringValue = newValue } } public var totalAmount: Int { @@ -4728,80 +4847,26 @@ public struct SuccessfulPayment: JsonConvertible, InternalJsonConvertible { } -public struct ReplyKeyboardRemove: JsonConvertible, InternalJsonConvertible { - /// Original JSON for fields not yet added to Swift structures. - public var json: Any { - get { return internalJson.object } - set { internalJson = JSON(newValue) } - } - internal var internalJson: JSON - public var removeKeyboard: Bool { - get { return internalJson["remove_keyboard"].boolValue } - set { internalJson["remove_keyboard"].boolValue = newValue } - } - - public var selective: Bool? { - get { return internalJson["selective"].bool } - set { internalJson["selective"].bool = newValue } - } - - internal init(internalJson: JSON = [:]) { - self.internalJson = internalJson - } - public init() { - self.internalJson = JSON() - } - public init(json: Any) { - self.internalJson = JSON(json) - } - public init(data: Data) { - self.internalJson = JSON(data: data) - } -} - - -public struct InputMediaAudio: JsonConvertible, InternalJsonConvertible { +public struct GameHighScore: JsonConvertible, InternalJsonConvertible { /// Original JSON for fields not yet added to Swift structures. public var json: Any { get { return internalJson.object } set { internalJson = JSON(newValue) } } internal var internalJson: JSON - public var caption: String? { - get { return internalJson["caption"].string } - set { internalJson["caption"].string = newValue } - } - - public var duration: Int? { - get { return internalJson["duration"].int } - set { internalJson["duration"].int = newValue } - } - - public var media: String { - get { return internalJson["media"].stringValue } - set { internalJson["media"].stringValue = newValue } - } - - public var parseModeString: String? { - get { return internalJson["parse_mode"].string } - set { internalJson["parse_mode"].string = newValue } - } - - public var performer: String? { - get { return internalJson["performer"].string } - set { internalJson["performer"].string = newValue } + public var position: Int { + get { return internalJson["position"].intValue } + set { internalJson["position"].intValue = newValue } } -public var thumb: InputFileOrString? = nil - - public var title: String? { - get { return internalJson["title"].string } - set { internalJson["title"].string = newValue } + public var score: Int { + get { return internalJson["score"].intValue } + set { internalJson["score"].intValue = newValue } } - public var typeString: String { - get { return internalJson["type"].stringValue } - set { internalJson["type"].stringValue = newValue } + public var user: User { + get { return User(internalJson: internalJson["user"]) } + set { internalJson["user"] = JSON(newValue.json) } } internal init(internalJson: JSON = [:]) {