code: def update_chat_username(
          self,
          chat_id: Union[int, str],
          username: Union[str, None]
      ) -> bool:
          
  
          peer = self.resolve_peer(chat_id)
  
          if isinstance(peer, types.InputPeerChannel):
              return bool(
                  self.send(
                      functions.channels.UpdateUsername(
                          channel=peer,
                          username=username or ""
                      )
                  )
              )
          else:
              raise ValueError("The chat_id \"{}\" belongs to a user or chat".format(chat_id))
docs: Use this method to update a channel or a supergroup username.
          
          To update your own username (for users only, not bots) you can use :meth:`update_username`.
  
          Args:
              chat_id (``int`` | ``str``)
                  Unique identifier (int) or username (str) of the target chat.
              username (``str`` | ``None``):
                  Username to set. Pass "" (empty string) or None to remove the username.
  
          Returns:
              True on success.
  
          Raises:
              :class:`RPCError <pyrogram.RPCError>` in case of a Telegram RPC error.
              ``ValueError`` if a chat_id belongs to a user or chat.