ListValue
is a wrapper around a repeated field of values.
Struct
represents a structured data value, consisting of fields
which map to dynamically typed values.
Value
represents a dynamically typed value which can be either
null, a number, a string, a boolean, a recursive struct value, or a
list of values.