Skip to content

Oneof rules#

The OneofRules message type enables you to manage rules for oneof fields in your protobuf messages.

required#

If required is true, exactly one field of the oneof must be present. A validation error is returned if no fields in the oneof are present. The field itself may still be a default value; further rules should be placed on the fields themselves to ensure they are valid values, such as min_len or gt.

oneof.required example
message MyMessage {
  oneof value {
    // Either `a` or `b` must be set. If `a` is set, it must also be
    // non-empty; whereas if `b` is set, it can still be an empty string.
    option (buf.validate.oneof).required = true;
    string a = 1 [(buf.validate.field).string.min_len = 1];
    string b = 2;
  }
}