code: def data(self):
          
          if self._data_type == int:
              if self._pb.HasField("int64_data"):
                  return self._pb.int64_data
              if self._pb.HasField("int32_data"):
                  return self._pb.int32_data
              if self._pb.HasField("uint64_data"):
                  return self._pb.uint64_data
              if self._pb.HasField("uint32_data"):
                  return self._pb.uint32_data
          elif self._data_type == float:
              if self._pb.HasField("float32_data"):
                  return self._pb.float32_data
              if self._pb.HasField("float64_data"):
                  return self._pb.float64_data
          elif self._data_type == str:
              return self._pb.string_data
          elif self._data_type == bool:
              return self._pb.bool_data
          elif self._data_type == bytes:
              return self._pb.bytes_data
          return None
docs: Metric data
  
          Args:
              value (:obj:`bool` or :obj:`int` or :obj:`long` or :obj:`float`
                  or :obj:`basestring` or :obj:`bytes`)
  
          Returns:
              value
  
          Raises:
              :obj:`TypeError`