OptionalboolBoolValue is a true/false value.
OptionalintIntValue is a number.
OptionalstringStringValue is a string. Must not be longer than 64 characters.
OptionalversionVersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
DeviceAttribute must have exactly one field set.