def METHOD_NAME(msg: message.Message,
                 components: Optional[List[Text]] = None) -> pd.DataFrame:
  """Converts protobuf message to a dataframe.
  Args:
    msg: Protobuf message to convert.
    components: Prefixes for column names.
  Returns:
    Pandas dataframe representing given message.
  """
  if components is None:
    components = []
  data = {}
  for desc, value in msg.ListFields():
    if isinstance(value, message.Message):
      data.update(METHOD_NAME(value, components + [desc.name]))
    else:
      data.update(_get_pretty_value(value, desc, components))
  return pd.DataFrame(data=data)