diff --git a/src/types/chat.rs b/src/types/chat.rs
index 0fccb5e7..082866bc 100644
--- a/src/types/chat.rs
+++ b/src/types/chat.rs
@@ -28,18 +28,18 @@ pub struct Chat {
 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum ChatKind {
-    NonPrivate(ChatNonPrivate),
+    Public(ChatPublic),
     Private(ChatPrivate),
 }
 
 #[serde_with_macros::skip_serializing_none]
 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
-pub struct ChatNonPrivate {
+pub struct ChatPublic {
     /// A title, for supergroups, channels and group chats.
     pub title: Option<String>,
 
     #[serde(flatten)]
-    pub kind: NonPrivateChatKind,
+    pub kind: PublicChatKind,
 
     /// A description, for groups, supergroups and channel chats. Returned
     /// only in [`Bot::get_chat`].
@@ -90,22 +90,22 @@ pub struct ChatPrivate {
 #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
 #[serde(rename_all = "snake_case")]
 #[serde(tag = "type")]
-pub enum NonPrivateChatKind {
-    Channel(NonPrivateChatChannel),
-    Group(NonPrivateChatGroup),
-    Supergroup(NonPrivateChatSupergroup),
+pub enum PublicChatKind {
+    Channel(PublicChatChannel),
+    Group(PublicChatGroup),
+    Supergroup(PublicChatSupergroup),
 }
 
 #[serde_with_macros::skip_serializing_none]
 #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
-pub struct NonPrivateChatChannel {
+pub struct PublicChatChannel {
     /// A username, for private chats, supergroups and channels if available.
     pub username: Option<String>,
 }
 
 #[serde_with_macros::skip_serializing_none]
 #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
-pub struct NonPrivateChatGroup {
+pub struct PublicChatGroup {
     /// A default chat member permissions, for groups and supergroups. Returned
     /// only from [`Bot::get_chat`].
     ///
@@ -115,7 +115,7 @@ pub struct NonPrivateChatGroup {
 
 #[serde_with_macros::skip_serializing_none]
 #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
-pub struct NonPrivateChatSupergroup {
+pub struct PublicChatSupergroup {
     /// A username, for private chats, supergroups and channels if
     /// available.
     pub username: Option<String>,
@@ -182,17 +182,16 @@ impl Chat {
     pub fn is_group(&self) -> bool {
         matches!(
             self.kind,
-            ChatKind::NonPrivate(ChatNonPrivate {
-                kind: NonPrivateChatKind::Group(_),
-                ..
+            ChatKind::Public(ChatPublic {
+                kind: PublicChatKind::Group(_), ..
             })
         )
     }
     pub fn is_supergroup(&self) -> bool {
         matches!(
             self.kind,
-            ChatKind::NonPrivate(ChatNonPrivate {
-                kind: NonPrivateChatKind::Supergroup(_),
+            ChatKind::Public(ChatPublic {
+                kind: PublicChatKind::Supergroup(_),
                 ..
             })
         )
@@ -200,8 +199,8 @@ impl Chat {
     pub fn is_channel(&self) -> bool {
         matches!(
             self.kind,
-            ChatKind::NonPrivate(ChatNonPrivate {
-                kind: NonPrivateChatKind::Channel(_),
+            ChatKind::Public(ChatPublic {
+                kind: PublicChatKind::Channel(_),
                 ..
             })
         )
@@ -222,9 +221,9 @@ mod tests {
     fn channel_de() {
         let expected = Chat {
             id: -1,
-            kind: ChatKind::NonPrivate(ChatNonPrivate {
+            kind: ChatKind::Public(ChatPublic {
                 title: None,
-                kind: NonPrivateChatKind::Channel(NonPrivateChatChannel {
+                kind: PublicChatKind::Channel(PublicChatChannel {
                     username: Some("channelname".into()),
                 }),
                 description: None,
diff --git a/src/types/message.rs b/src/types/message.rs
index 4e7722d9..774f2784 100644
--- a/src/types/message.rs
+++ b/src/types/message.rs
@@ -3,12 +3,11 @@
 use serde::{Deserialize, Serialize};
 
 use crate::types::{
-    chat::{ChatKind, NonPrivateChatKind},
-    Animation, Audio, Chat, ChatNonPrivate, Contact, Document, Game,
-    InlineKeyboardMarkup, Invoice, Location, MessageEntity,
-    NonPrivateChatChannel, NonPrivateChatSupergroup, PassportData, PhotoSize,
-    Poll, Sticker, SuccessfulPayment, True, User, Venue, Video, VideoNote,
-    Voice,
+    chat::{ChatKind, PublicChatKind},
+    Animation, Audio, Chat, ChatPublic, Contact, Document, Game,
+    InlineKeyboardMarkup, Invoice, Location, MessageEntity, PassportData,
+    PhotoSize, Poll, PublicChatChannel, PublicChatSupergroup, Sticker,
+    SuccessfulPayment, True, User, Venue, Video, VideoNote, Voice,
 };
 
 /// This object represents a message.
@@ -924,16 +923,16 @@ mod getters {
 impl Message {
     pub fn url(&self) -> Option<reqwest::Url> {
         match &self.chat.kind {
-            ChatKind::NonPrivate(ChatNonPrivate {
+            ChatKind::Public(ChatPublic {
                 kind:
-                    NonPrivateChatKind::Channel(NonPrivateChatChannel {
+                    PublicChatKind::Channel(PublicChatChannel {
                         username: Some(username),
                     }),
                 ..
             })
-            | ChatKind::NonPrivate(ChatNonPrivate {
+            | ChatKind::Public(ChatPublic {
                 kind:
-                    NonPrivateChatKind::Supergroup(NonPrivateChatSupergroup {
+                    PublicChatKind::Supergroup(PublicChatSupergroup {
                         username: Some(username),
                         ..
                     }),