code: def entry_from_resource(resource, client, loggers):
      
      if "textPayload" in resource:
          return TextEntry.from_api_repr(resource, client, loggers)
  
      if "jsonPayload" in resource:
          return StructEntry.from_api_repr(resource, client, loggers)
  
      if "protoPayload" in resource:
          return ProtobufEntry.from_api_repr(resource, client, loggers)
  
      return LogEntry.from_api_repr(resource, client, loggers)
docs: Detect correct entry type from resource and instantiate.
  
      :type resource: dict
      :param resource: One entry resource from API response.
  
      :type client: :class:`~google.cloud.logging.client.Client`
      :param client: Client that owns the log entry.
  
      :type loggers: dict
      :param loggers:
          A mapping of logger fullnames -> loggers.  If the logger
          that owns the entry is not in ``loggers``, the entry
          will have a newly-created logger.
  
      :rtype: :class:`~google.cloud.logging.entries._BaseEntry`
      :returns: The entry instance, constructed via the resource