Skip to content

Repeated rules

RepeatedRules describe the constraints applied to repeated values.

min_items

min_items requires that this field must contain at least the specified minimum number of items.

Note that min_items = 1 is equivalent to setting a field as required.

repeated.min_items example
message MyRepeated {
  // value must contain at least  2 items
  repeated string value = 1 [(buf.validate.field).repeated.min_items = 2];
}

max_items

max_items denotes that this field must not exceed a certain number of items as the upper limit. If the field contains more items than specified, an error message will be generated, requiring the field to maintain no more than the specified number of items.

repeated.max_items example
message MyRepeated {
  // value must contain no more than 3 item(s)
  repeated string value = 1 [(buf.validate.field).repeated.max_items = 3];
}

unique

unique indicates that all elements in this field must be unique. This constraint is strictly applicable to scalar and enum types, with message types not being supported.

repeated.unique example
message MyRepeated {
  // repeated value must contain unique items
  repeated string value = 1 [(buf.validate.field).repeated.unique = true];
}

items

items details the constraints to be applied to each item in the field. Even for repeated message fields, validation is executed against each item unless skip is explicitly specified.

repeated.items example
message MyRepeated {
  // The items in the field `value` must follow the specified constraints.
  repeated string value = 1 [(buf.validate.field).repeated.items = {
    string: {
      min_len: 3
      max_len: 10
    }
  }];
}