code: def ToJsonString(self):
      
      if self.seconds < 0 or self.nanos < 0:
        result = '-'
        seconds = - self.seconds + int((0 - self.nanos) // 1e9)
        nanos = (0 - self.nanos) % 1e9
      else:
        result = ''
        seconds = self.seconds + int(self.nanos // 1e9)
        nanos = self.nanos % 1e9
      result += '%d' % seconds
      if (nanos % 1e9) == 0:
        # If there are 0 fractional digits, the fractional
        # point '.' should be omitted when serializing.
        return result + 's'
      if (nanos % 1e6) == 0:
        # Serialize 3 fractional digits.
        return result + '.%03ds' % (nanos / 1e6)
      if (nanos % 1e3) == 0:
        # Serialize 6 fractional digits.
        return result + '.%06ds' % (nanos / 1e3)
      # Serialize 9 fractional digits.
      return result + '.%09ds' % nanos
docs: Converts Duration to string format.
  
      Returns:
        A string converted from self. The string format will contains
        3, 6, or 9 fractional digits depending on the precision required to
        represent the exact Duration value. For example: "1s", "1.010s",
        "1.000000100s", "-3.100s"