=============== Available Types =============== All the names of the types are exactly the same described in the `offical documentation `_. **Note**: * Attribute *from* of the types, has been changed to *from_user* because in python it causes conflict. * If the type :obj:`~apitele.types.Message` has not *text*, the *text* it's an empty string instead of :obj:`None`, so you can do as follows without getting an `AttributeError `_. .. code-block:: python3 import apitele from apitele.types import Message bot = apitele.Client('') @bot.manage_message() async def foo(msg: Message): if msg.text.startswith('/start'): ... # An error will never be raised # because the text is always of type string. * All other optional attributes are :obj:`None` if they are not in the received *JSON*. ----------------------------- .. automodule:: apitele.types :members: :undoc-members: