add pgv proto (#752)
parent
50af5b2588
commit
11737f67b2
@ -0,0 +1,3 @@ |
||||
# protoc-gen-validate (PGV) |
||||
|
||||
* https://github.com/envoyproxy/protoc-gen-validate |
@ -0,0 +1,863 @@ |
||||
syntax = "proto2"; |
||||
package validate; |
||||
|
||||
option go_package = "github.com/envoyproxy/protoc-gen-validate/validate"; |
||||
option java_package = "io.envoyproxy.pgv.validate"; |
||||
|
||||
import "google/protobuf/descriptor.proto"; |
||||
import "google/protobuf/duration.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
// Validation rules applied at the message level |
||||
extend google.protobuf.MessageOptions { |
||||
// Disabled nullifies any validation rules for this message, including any |
||||
// message fields associated with it that do support validation. |
||||
optional bool disabled = 1071; |
||||
// Ignore skips generation of validation methods for this message. |
||||
optional bool ignored = 1072; |
||||
} |
||||
|
||||
// Validation rules applied at the oneof level |
||||
extend google.protobuf.OneofOptions { |
||||
// Required ensures that exactly one the field options in a oneof is set; |
||||
// validation fails if no fields in the oneof are set. |
||||
optional bool required = 1071; |
||||
} |
||||
|
||||
// Validation rules applied at the field level |
||||
extend google.protobuf.FieldOptions { |
||||
// Rules specify the validations to be performed on this field. By default, |
||||
// no validation is performed against a field. |
||||
optional FieldRules rules = 1071; |
||||
} |
||||
|
||||
// FieldRules encapsulates the rules for each type of field. Depending on the |
||||
// field, the correct set should be used to ensure proper validations. |
||||
message FieldRules { |
||||
optional MessageRules message = 17; |
||||
oneof type { |
||||
// Scalar Field Types |
||||
FloatRules float = 1; |
||||
DoubleRules double = 2; |
||||
Int32Rules int32 = 3; |
||||
Int64Rules int64 = 4; |
||||
UInt32Rules uint32 = 5; |
||||
UInt64Rules uint64 = 6; |
||||
SInt32Rules sint32 = 7; |
||||
SInt64Rules sint64 = 8; |
||||
Fixed32Rules fixed32 = 9; |
||||
Fixed64Rules fixed64 = 10; |
||||
SFixed32Rules sfixed32 = 11; |
||||
SFixed64Rules sfixed64 = 12; |
||||
BoolRules bool = 13; |
||||
StringRules string = 14; |
||||
BytesRules bytes = 15; |
||||
|
||||
// Complex Field Types |
||||
EnumRules enum = 16; |
||||
RepeatedRules repeated = 18; |
||||
MapRules map = 19; |
||||
|
||||
// Well-Known Field Types |
||||
AnyRules any = 20; |
||||
DurationRules duration = 21; |
||||
TimestampRules timestamp = 22; |
||||
} |
||||
} |
||||
|
||||
// FloatRules describes the constraints applied to `float` values |
||||
message FloatRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional float const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional float lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional float lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional float gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional float gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated float in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated float not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// DoubleRules describes the constraints applied to `double` values |
||||
message DoubleRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional double const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional double lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional double lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional double gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional double gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated double in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated double not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// Int32Rules describes the constraints applied to `int32` values |
||||
message Int32Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional int32 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional int32 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional int32 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional int32 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional int32 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated int32 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated int32 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// Int64Rules describes the constraints applied to `int64` values |
||||
message Int64Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional int64 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional int64 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional int64 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional int64 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional int64 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated int64 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated int64 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// UInt32Rules describes the constraints applied to `uint32` values |
||||
message UInt32Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional uint32 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional uint32 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional uint32 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional uint32 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional uint32 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated uint32 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated uint32 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// UInt64Rules describes the constraints applied to `uint64` values |
||||
message UInt64Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional uint64 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional uint64 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional uint64 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional uint64 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional uint64 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated uint64 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated uint64 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// SInt32Rules describes the constraints applied to `sint32` values |
||||
message SInt32Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional sint32 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional sint32 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional sint32 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional sint32 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional sint32 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated sint32 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated sint32 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// SInt64Rules describes the constraints applied to `sint64` values |
||||
message SInt64Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional sint64 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional sint64 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional sint64 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional sint64 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional sint64 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated sint64 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated sint64 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// Fixed32Rules describes the constraints applied to `fixed32` values |
||||
message Fixed32Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional fixed32 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional fixed32 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional fixed32 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional fixed32 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional fixed32 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated fixed32 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated fixed32 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// Fixed64Rules describes the constraints applied to `fixed64` values |
||||
message Fixed64Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional fixed64 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional fixed64 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional fixed64 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional fixed64 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional fixed64 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated fixed64 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated fixed64 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// SFixed32Rules describes the constraints applied to `sfixed32` values |
||||
message SFixed32Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional sfixed32 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional sfixed32 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional sfixed32 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional sfixed32 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional sfixed32 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated sfixed32 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated sfixed32 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// SFixed64Rules describes the constraints applied to `sfixed64` values |
||||
message SFixed64Rules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional sfixed64 const = 1; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional sfixed64 lt = 2; |
||||
|
||||
// Lte specifies that this field must be less than or equal to the |
||||
// specified value, inclusive |
||||
optional sfixed64 lte = 3; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the |
||||
// range is reversed. |
||||
optional sfixed64 gt = 4; |
||||
|
||||
// Gte specifies that this field must be greater than or equal to the |
||||
// specified value, inclusive. If the value of Gte is larger than a |
||||
// specified Lt or Lte, the range is reversed. |
||||
optional sfixed64 gte = 5; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated sfixed64 in = 6; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated sfixed64 not_in = 7; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 8; |
||||
} |
||||
|
||||
// BoolRules describes the constraints applied to `bool` values |
||||
message BoolRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional bool const = 1; |
||||
} |
||||
|
||||
// StringRules describe the constraints applied to `string` values |
||||
message StringRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional string const = 1; |
||||
|
||||
// Len specifies that this field must be the specified number of |
||||
// characters (Unicode code points). Note that the number of |
||||
// characters may differ from the number of bytes in the string. |
||||
optional uint64 len = 19; |
||||
|
||||
// MinLen specifies that this field must be the specified number of |
||||
// characters (Unicode code points) at a minimum. Note that the number of |
||||
// characters may differ from the number of bytes in the string. |
||||
optional uint64 min_len = 2; |
||||
|
||||
// MaxLen specifies that this field must be the specified number of |
||||
// characters (Unicode code points) at a maximum. Note that the number of |
||||
// characters may differ from the number of bytes in the string. |
||||
optional uint64 max_len = 3; |
||||
|
||||
// LenBytes specifies that this field must be the specified number of bytes |
||||
// at a minimum |
||||
optional uint64 len_bytes = 20; |
||||
|
||||
// MinBytes specifies that this field must be the specified number of bytes |
||||
// at a minimum |
||||
optional uint64 min_bytes = 4; |
||||
|
||||
// MaxBytes specifies that this field must be the specified number of bytes |
||||
// at a maximum |
||||
optional uint64 max_bytes = 5; |
||||
|
||||
// Pattern specifes that this field must match against the specified |
||||
// regular expression (RE2 syntax). The included expression should elide |
||||
// any delimiters. |
||||
optional string pattern = 6; |
||||
|
||||
// Prefix specifies that this field must have the specified substring at |
||||
// the beginning of the string. |
||||
optional string prefix = 7; |
||||
|
||||
// Suffix specifies that this field must have the specified substring at |
||||
// the end of the string. |
||||
optional string suffix = 8; |
||||
|
||||
// Contains specifies that this field must have the specified substring |
||||
// anywhere in the string. |
||||
optional string contains = 9; |
||||
|
||||
// NotContains specifies that this field cannot have the specified substring |
||||
// anywhere in the string. |
||||
optional string not_contains = 23; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated string in = 10; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated string not_in = 11; |
||||
|
||||
// WellKnown rules provide advanced constraints against common string |
||||
// patterns |
||||
oneof well_known { |
||||
// Email specifies that the field must be a valid email address as |
||||
// defined by RFC 5322 |
||||
bool email = 12; |
||||
|
||||
// Hostname specifies that the field must be a valid hostname as |
||||
// defined by RFC 1034. This constraint does not support |
||||
// internationalized domain names (IDNs). |
||||
bool hostname = 13; |
||||
|
||||
// Ip specifies that the field must be a valid IP (v4 or v6) address. |
||||
// Valid IPv6 addresses should not include surrounding square brackets. |
||||
bool ip = 14; |
||||
|
||||
// Ipv4 specifies that the field must be a valid IPv4 address. |
||||
bool ipv4 = 15; |
||||
|
||||
// Ipv6 specifies that the field must be a valid IPv6 address. Valid |
||||
// IPv6 addresses should not include surrounding square brackets. |
||||
bool ipv6 = 16; |
||||
|
||||
// Uri specifies that the field must be a valid, absolute URI as defined |
||||
// by RFC 3986 |
||||
bool uri = 17; |
||||
|
||||
// UriRef specifies that the field must be a valid URI as defined by RFC |
||||
// 3986 and may be relative or absolute. |
||||
bool uri_ref = 18; |
||||
|
||||
// Address specifies that the field must be either a valid hostname as |
||||
// defined by RFC 1034 (which does not support internationalized domain |
||||
// names or IDNs), or it can be a valid IP (v4 or v6). |
||||
bool address = 21; |
||||
|
||||
// Uuid specifies that the field must be a valid UUID as defined by |
||||
// RFC 4122 |
||||
bool uuid = 22; |
||||
|
||||
// WellKnownRegex specifies a common well known pattern defined as a regex. |
||||
KnownRegex well_known_regex = 24; |
||||
} |
||||
|
||||
// This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable |
||||
// strict header validation. |
||||
// By default, this is true, and HTTP header validations are RFC-compliant. |
||||
// Setting to false will enable a looser validations that only disallows |
||||
// \r\n\0 characters, which can be used to bypass header matching rules. |
||||
optional bool strict = 25 [default = true]; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 26; |
||||
} |
||||
|
||||
// WellKnownRegex contain some well-known patterns. |
||||
enum KnownRegex { |
||||
UNKNOWN = 0; |
||||
|
||||
// HTTP header name as defined by RFC 7230. |
||||
HTTP_HEADER_NAME = 1; |
||||
|
||||
// HTTP header value as defined by RFC 7230. |
||||
HTTP_HEADER_VALUE = 2; |
||||
} |
||||
|
||||
// BytesRules describe the constraints applied to `bytes` values |
||||
message BytesRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional bytes const = 1; |
||||
|
||||
// Len specifies that this field must be the specified number of bytes |
||||
optional uint64 len = 13; |
||||
|
||||
// MinLen specifies that this field must be the specified number of bytes |
||||
// at a minimum |
||||
optional uint64 min_len = 2; |
||||
|
||||
// MaxLen specifies that this field must be the specified number of bytes |
||||
// at a maximum |
||||
optional uint64 max_len = 3; |
||||
|
||||
// Pattern specifes that this field must match against the specified |
||||
// regular expression (RE2 syntax). The included expression should elide |
||||
// any delimiters. |
||||
optional string pattern = 4; |
||||
|
||||
// Prefix specifies that this field must have the specified bytes at the |
||||
// beginning of the string. |
||||
optional bytes prefix = 5; |
||||
|
||||
// Suffix specifies that this field must have the specified bytes at the |
||||
// end of the string. |
||||
optional bytes suffix = 6; |
||||
|
||||
// Contains specifies that this field must have the specified bytes |
||||
// anywhere in the string. |
||||
optional bytes contains = 7; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated bytes in = 8; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated bytes not_in = 9; |
||||
|
||||
// WellKnown rules provide advanced constraints against common byte |
||||
// patterns |
||||
oneof well_known { |
||||
// Ip specifies that the field must be a valid IP (v4 or v6) address in |
||||
// byte format |
||||
bool ip = 10; |
||||
|
||||
// Ipv4 specifies that the field must be a valid IPv4 address in byte |
||||
// format |
||||
bool ipv4 = 11; |
||||
|
||||
// Ipv6 specifies that the field must be a valid IPv6 address in byte |
||||
// format |
||||
bool ipv6 = 12; |
||||
} |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 14; |
||||
} |
||||
|
||||
// EnumRules describe the constraints applied to enum values |
||||
message EnumRules { |
||||
// Const specifies that this field must be exactly the specified value |
||||
optional int32 const = 1; |
||||
|
||||
// DefinedOnly specifies that this field must be only one of the defined |
||||
// values for this enum, failing on any undefined value. |
||||
optional bool defined_only = 2; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated int32 in = 3; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated int32 not_in = 4; |
||||
} |
||||
|
||||
// MessageRules describe the constraints applied to embedded message values. |
||||
// For message-type fields, validation is performed recursively. |
||||
message MessageRules { |
||||
// Skip specifies that the validation rules of this field should not be |
||||
// evaluated |
||||
optional bool skip = 1; |
||||
|
||||
// Required specifies that this field must be set |
||||
optional bool required = 2; |
||||
} |
||||
|
||||
// RepeatedRules describe the constraints applied to `repeated` values |
||||
message RepeatedRules { |
||||
// MinItems specifies that this field must have the specified number of |
||||
// items at a minimum |
||||
optional uint64 min_items = 1; |
||||
|
||||
// MaxItems specifies that this field must have the specified number of |
||||
// items at a maximum |
||||
optional uint64 max_items = 2; |
||||
|
||||
// Unique specifies that all elements in this field must be unique. This |
||||
// contraint is only applicable to scalar and enum types (messages are not |
||||
// supported). |
||||
optional bool unique = 3; |
||||
|
||||
// Items specifies the contraints to be applied to each item in the field. |
||||
// Repeated message fields will still execute validation against each item |
||||
// unless skip is specified here. |
||||
optional FieldRules items = 4; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 5; |
||||
} |
||||
|
||||
// MapRules describe the constraints applied to `map` values |
||||
message MapRules { |
||||
// MinPairs specifies that this field must have the specified number of |
||||
// KVs at a minimum |
||||
optional uint64 min_pairs = 1; |
||||
|
||||
// MaxPairs specifies that this field must have the specified number of |
||||
// KVs at a maximum |
||||
optional uint64 max_pairs = 2; |
||||
|
||||
// NoSparse specifies values in this field cannot be unset. This only |
||||
// applies to map's with message value types. |
||||
optional bool no_sparse = 3; |
||||
|
||||
// Keys specifies the constraints to be applied to each key in the field. |
||||
optional FieldRules keys = 4; |
||||
|
||||
// Values specifies the constraints to be applied to the value of each key |
||||
// in the field. Message values will still have their validations evaluated |
||||
// unless skip is specified here. |
||||
optional FieldRules values = 5; |
||||
|
||||
// IgnoreEmpty specifies that the validation rules of this field should be |
||||
// evaluated only if the field is not empty |
||||
optional bool ignore_empty = 6; |
||||
} |
||||
|
||||
// AnyRules describe constraints applied exclusively to the |
||||
// `google.protobuf.Any` well-known type |
||||
message AnyRules { |
||||
// Required specifies that this field must be set |
||||
optional bool required = 1; |
||||
|
||||
// In specifies that this field's `type_url` must be equal to one of the |
||||
// specified values. |
||||
repeated string in = 2; |
||||
|
||||
// NotIn specifies that this field's `type_url` must not be equal to any of |
||||
// the specified values. |
||||
repeated string not_in = 3; |
||||
} |
||||
|
||||
// DurationRules describe the constraints applied exclusively to the |
||||
// `google.protobuf.Duration` well-known type |
||||
message DurationRules { |
||||
// Required specifies that this field must be set |
||||
optional bool required = 1; |
||||
|
||||
// Const specifies that this field must be exactly the specified value |
||||
optional google.protobuf.Duration const = 2; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional google.protobuf.Duration lt = 3; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// inclusive |
||||
optional google.protobuf.Duration lte = 4; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive |
||||
optional google.protobuf.Duration gt = 5; |
||||
|
||||
// Gte specifies that this field must be greater than the specified value, |
||||
// inclusive |
||||
optional google.protobuf.Duration gte = 6; |
||||
|
||||
// In specifies that this field must be equal to one of the specified |
||||
// values |
||||
repeated google.protobuf.Duration in = 7; |
||||
|
||||
// NotIn specifies that this field cannot be equal to one of the specified |
||||
// values |
||||
repeated google.protobuf.Duration not_in = 8; |
||||
} |
||||
|
||||
// TimestampRules describe the constraints applied exclusively to the |
||||
// `google.protobuf.Timestamp` well-known type |
||||
message TimestampRules { |
||||
// Required specifies that this field must be set |
||||
optional bool required = 1; |
||||
|
||||
// Const specifies that this field must be exactly the specified value |
||||
optional google.protobuf.Timestamp const = 2; |
||||
|
||||
// Lt specifies that this field must be less than the specified value, |
||||
// exclusive |
||||
optional google.protobuf.Timestamp lt = 3; |
||||
|
||||
// Lte specifies that this field must be less than the specified value, |
||||
// inclusive |
||||
optional google.protobuf.Timestamp lte = 4; |
||||
|
||||
// Gt specifies that this field must be greater than the specified value, |
||||
// exclusive |
||||
optional google.protobuf.Timestamp gt = 5; |
||||
|
||||
// Gte specifies that this field must be greater than the specified value, |
||||
// inclusive |
||||
optional google.protobuf.Timestamp gte = 6; |
||||
|
||||
// LtNow specifies that this must be less than the current time. LtNow |
||||
// can only be used with the Within rule. |
||||
optional bool lt_now = 7; |
||||
|
||||
// GtNow specifies that this must be greater than the current time. GtNow |
||||
// can only be used with the Within rule. |
||||
optional bool gt_now = 8; |
||||
|
||||
// Within specifies that this field must be within this duration of the |
||||
// current time. This constraint can be used alone or with the LtNow and |
||||
// GtNow rules. |
||||
optional google.protobuf.Duration within = 9; |
||||
} |
Loading…
Reference in new issue