ValueType
The KeyValue message defines a key and value pair. The key is always a string. The value for the field is determined by the ValueType. If the ValueType is STRING the field v_str should be set, for BOOL v_bool is used etc.. Only the type of valueType is used. Rest of the fields are ignored even if they are set. So, of v_type is ValueType.STRING, only the value v_str is used. Rest of the fields are ignored. We chose not to use OneOf field, since it's JSON encoding is not as straight forward.