peridot/vendor/github.com/envoyproxy/protoc-gen-validate/validate/validate.pb.go

4107 lines
140 KiB
Go
Raw Permalink Normal View History

2022-07-07 20:11:50 +00:00
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.2
2022-07-07 20:11:50 +00:00
// source: validate/validate.proto
package validate
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
durationpb "google.golang.org/protobuf/types/known/durationpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// WellKnownRegex contain some well-known patterns.
type KnownRegex int32
const (
KnownRegex_UNKNOWN KnownRegex = 0
// HTTP header name as defined by RFC 7230.
KnownRegex_HTTP_HEADER_NAME KnownRegex = 1
// HTTP header value as defined by RFC 7230.
KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2
)
// Enum value maps for KnownRegex.
var (
KnownRegex_name = map[int32]string{
0: "UNKNOWN",
1: "HTTP_HEADER_NAME",
2: "HTTP_HEADER_VALUE",
}
KnownRegex_value = map[string]int32{
"UNKNOWN": 0,
"HTTP_HEADER_NAME": 1,
"HTTP_HEADER_VALUE": 2,
}
)
func (x KnownRegex) Enum() *KnownRegex {
p := new(KnownRegex)
*p = x
return p
}
func (x KnownRegex) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (KnownRegex) Descriptor() protoreflect.EnumDescriptor {
return file_validate_validate_proto_enumTypes[0].Descriptor()
}
func (KnownRegex) Type() protoreflect.EnumType {
return &file_validate_validate_proto_enumTypes[0]
}
func (x KnownRegex) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *KnownRegex) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = KnownRegex(num)
return nil
}
// Deprecated: Use KnownRegex.Descriptor instead.
func (KnownRegex) EnumDescriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{0}
}
// FieldRules encapsulates the rules for each type of field. Depending on the
// field, the correct set should be used to ensure proper validations.
type FieldRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"`
// Types that are assignable to Type:
//
2022-07-07 20:11:50 +00:00
// *FieldRules_Float
// *FieldRules_Double
// *FieldRules_Int32
// *FieldRules_Int64
// *FieldRules_Uint32
// *FieldRules_Uint64
// *FieldRules_Sint32
// *FieldRules_Sint64
// *FieldRules_Fixed32
// *FieldRules_Fixed64
// *FieldRules_Sfixed32
// *FieldRules_Sfixed64
// *FieldRules_Bool
// *FieldRules_String_
// *FieldRules_Bytes
// *FieldRules_Enum
// *FieldRules_Repeated
// *FieldRules_Map
// *FieldRules_Any
// *FieldRules_Duration
// *FieldRules_Timestamp
Type isFieldRules_Type `protobuf_oneof:"type"`
}
func (x *FieldRules) Reset() {
*x = FieldRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FieldRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FieldRules) ProtoMessage() {}
func (x *FieldRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FieldRules.ProtoReflect.Descriptor instead.
func (*FieldRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{0}
}
func (x *FieldRules) GetMessage() *MessageRules {
if x != nil {
return x.Message
}
return nil
}
func (m *FieldRules) GetType() isFieldRules_Type {
if m != nil {
return m.Type
}
return nil
}
func (x *FieldRules) GetFloat() *FloatRules {
if x, ok := x.GetType().(*FieldRules_Float); ok {
return x.Float
}
return nil
}
func (x *FieldRules) GetDouble() *DoubleRules {
if x, ok := x.GetType().(*FieldRules_Double); ok {
return x.Double
}
return nil
}
func (x *FieldRules) GetInt32() *Int32Rules {
if x, ok := x.GetType().(*FieldRules_Int32); ok {
return x.Int32
}
return nil
}
func (x *FieldRules) GetInt64() *Int64Rules {
if x, ok := x.GetType().(*FieldRules_Int64); ok {
return x.Int64
}
return nil
}
func (x *FieldRules) GetUint32() *UInt32Rules {
if x, ok := x.GetType().(*FieldRules_Uint32); ok {
return x.Uint32
}
return nil
}
func (x *FieldRules) GetUint64() *UInt64Rules {
if x, ok := x.GetType().(*FieldRules_Uint64); ok {
return x.Uint64
}
return nil
}
func (x *FieldRules) GetSint32() *SInt32Rules {
if x, ok := x.GetType().(*FieldRules_Sint32); ok {
return x.Sint32
}
return nil
}
func (x *FieldRules) GetSint64() *SInt64Rules {
if x, ok := x.GetType().(*FieldRules_Sint64); ok {
return x.Sint64
}
return nil
}
func (x *FieldRules) GetFixed32() *Fixed32Rules {
if x, ok := x.GetType().(*FieldRules_Fixed32); ok {
return x.Fixed32
}
return nil
}
func (x *FieldRules) GetFixed64() *Fixed64Rules {
if x, ok := x.GetType().(*FieldRules_Fixed64); ok {
return x.Fixed64
}
return nil
}
func (x *FieldRules) GetSfixed32() *SFixed32Rules {
if x, ok := x.GetType().(*FieldRules_Sfixed32); ok {
return x.Sfixed32
}
return nil
}
func (x *FieldRules) GetSfixed64() *SFixed64Rules {
if x, ok := x.GetType().(*FieldRules_Sfixed64); ok {
return x.Sfixed64
}
return nil
}
func (x *FieldRules) GetBool() *BoolRules {
if x, ok := x.GetType().(*FieldRules_Bool); ok {
return x.Bool
}
return nil
}
func (x *FieldRules) GetString_() *StringRules {
if x, ok := x.GetType().(*FieldRules_String_); ok {
return x.String_
}
return nil
}
func (x *FieldRules) GetBytes() *BytesRules {
if x, ok := x.GetType().(*FieldRules_Bytes); ok {
return x.Bytes
}
return nil
}
func (x *FieldRules) GetEnum() *EnumRules {
if x, ok := x.GetType().(*FieldRules_Enum); ok {
return x.Enum
}
return nil
}
func (x *FieldRules) GetRepeated() *RepeatedRules {
if x, ok := x.GetType().(*FieldRules_Repeated); ok {
return x.Repeated
}
return nil
}
func (x *FieldRules) GetMap() *MapRules {
if x, ok := x.GetType().(*FieldRules_Map); ok {
return x.Map
}
return nil
}
func (x *FieldRules) GetAny() *AnyRules {
if x, ok := x.GetType().(*FieldRules_Any); ok {
return x.Any
}
return nil
}
func (x *FieldRules) GetDuration() *DurationRules {
if x, ok := x.GetType().(*FieldRules_Duration); ok {
return x.Duration
}
return nil
}
func (x *FieldRules) GetTimestamp() *TimestampRules {
if x, ok := x.GetType().(*FieldRules_Timestamp); ok {
return x.Timestamp
}
return nil
}
type isFieldRules_Type interface {
isFieldRules_Type()
}
type FieldRules_Float struct {
// Scalar Field Types
Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"`
}
type FieldRules_Double struct {
Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"`
}
type FieldRules_Int32 struct {
Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"`
}
type FieldRules_Int64 struct {
Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"`
}
type FieldRules_Uint32 struct {
Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"`
}
type FieldRules_Uint64 struct {
Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"`
}
type FieldRules_Sint32 struct {
Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"`
}
type FieldRules_Sint64 struct {
Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"`
}
type FieldRules_Fixed32 struct {
Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"`
}
type FieldRules_Fixed64 struct {
Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"`
}
type FieldRules_Sfixed32 struct {
Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"`
}
type FieldRules_Sfixed64 struct {
Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"`
}
type FieldRules_Bool struct {
Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"`
}
type FieldRules_String_ struct {
String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"`
}
type FieldRules_Bytes struct {
Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"`
}
type FieldRules_Enum struct {
// Complex Field Types
Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"`
}
type FieldRules_Repeated struct {
Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"`
}
type FieldRules_Map struct {
Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"`
}
type FieldRules_Any struct {
// Well-Known Field Types
Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"`
}
type FieldRules_Duration struct {
Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"`
}
type FieldRules_Timestamp struct {
Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"`
}
func (*FieldRules_Float) isFieldRules_Type() {}
func (*FieldRules_Double) isFieldRules_Type() {}
func (*FieldRules_Int32) isFieldRules_Type() {}
func (*FieldRules_Int64) isFieldRules_Type() {}
func (*FieldRules_Uint32) isFieldRules_Type() {}
func (*FieldRules_Uint64) isFieldRules_Type() {}
func (*FieldRules_Sint32) isFieldRules_Type() {}
func (*FieldRules_Sint64) isFieldRules_Type() {}
func (*FieldRules_Fixed32) isFieldRules_Type() {}
func (*FieldRules_Fixed64) isFieldRules_Type() {}
func (*FieldRules_Sfixed32) isFieldRules_Type() {}
func (*FieldRules_Sfixed64) isFieldRules_Type() {}
func (*FieldRules_Bool) isFieldRules_Type() {}
func (*FieldRules_String_) isFieldRules_Type() {}
func (*FieldRules_Bytes) isFieldRules_Type() {}
func (*FieldRules_Enum) isFieldRules_Type() {}
func (*FieldRules_Repeated) isFieldRules_Type() {}
func (*FieldRules_Map) isFieldRules_Type() {}
func (*FieldRules_Any) isFieldRules_Type() {}
func (*FieldRules_Duration) isFieldRules_Type() {}
func (*FieldRules_Timestamp) isFieldRules_Type() {}
// FloatRules describes the constraints applied to `float` values
type FloatRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *FloatRules) Reset() {
*x = FloatRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FloatRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FloatRules) ProtoMessage() {}
func (x *FloatRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FloatRules.ProtoReflect.Descriptor instead.
func (*FloatRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{1}
}
func (x *FloatRules) GetConst() float32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *FloatRules) GetLt() float32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *FloatRules) GetLte() float32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *FloatRules) GetGt() float32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *FloatRules) GetGte() float32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *FloatRules) GetIn() []float32 {
if x != nil {
return x.In
}
return nil
}
func (x *FloatRules) GetNotIn() []float32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *FloatRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// DoubleRules describes the constraints applied to `double` values
type DoubleRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *DoubleRules) Reset() {
*x = DoubleRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DoubleRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DoubleRules) ProtoMessage() {}
func (x *DoubleRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead.
func (*DoubleRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{2}
}
func (x *DoubleRules) GetConst() float64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *DoubleRules) GetLt() float64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *DoubleRules) GetLte() float64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *DoubleRules) GetGt() float64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *DoubleRules) GetGte() float64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *DoubleRules) GetIn() []float64 {
if x != nil {
return x.In
}
return nil
}
func (x *DoubleRules) GetNotIn() []float64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *DoubleRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// Int32Rules describes the constraints applied to `int32` values
type Int32Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *Int32Rules) Reset() {
*x = Int32Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Int32Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Int32Rules) ProtoMessage() {}
func (x *Int32Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead.
func (*Int32Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{3}
}
func (x *Int32Rules) GetConst() int32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *Int32Rules) GetLt() int32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *Int32Rules) GetLte() int32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *Int32Rules) GetGt() int32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *Int32Rules) GetGte() int32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *Int32Rules) GetIn() []int32 {
if x != nil {
return x.In
}
return nil
}
func (x *Int32Rules) GetNotIn() []int32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *Int32Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// Int64Rules describes the constraints applied to `int64` values
type Int64Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *Int64Rules) Reset() {
*x = Int64Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Int64Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Int64Rules) ProtoMessage() {}
func (x *Int64Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead.
func (*Int64Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{4}
}
func (x *Int64Rules) GetConst() int64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *Int64Rules) GetLt() int64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *Int64Rules) GetLte() int64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *Int64Rules) GetGt() int64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *Int64Rules) GetGte() int64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *Int64Rules) GetIn() []int64 {
if x != nil {
return x.In
}
return nil
}
func (x *Int64Rules) GetNotIn() []int64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *Int64Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// UInt32Rules describes the constraints applied to `uint32` values
type UInt32Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *UInt32Rules) Reset() {
*x = UInt32Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UInt32Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UInt32Rules) ProtoMessage() {}
func (x *UInt32Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead.
func (*UInt32Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{5}
}
func (x *UInt32Rules) GetConst() uint32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *UInt32Rules) GetLt() uint32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *UInt32Rules) GetLte() uint32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *UInt32Rules) GetGt() uint32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *UInt32Rules) GetGte() uint32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *UInt32Rules) GetIn() []uint32 {
if x != nil {
return x.In
}
return nil
}
func (x *UInt32Rules) GetNotIn() []uint32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *UInt32Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// UInt64Rules describes the constraints applied to `uint64` values
type UInt64Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *UInt64Rules) Reset() {
*x = UInt64Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UInt64Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UInt64Rules) ProtoMessage() {}
func (x *UInt64Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead.
func (*UInt64Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{6}
}
func (x *UInt64Rules) GetConst() uint64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *UInt64Rules) GetLt() uint64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *UInt64Rules) GetLte() uint64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *UInt64Rules) GetGt() uint64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *UInt64Rules) GetGte() uint64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *UInt64Rules) GetIn() []uint64 {
if x != nil {
return x.In
}
return nil
}
func (x *UInt64Rules) GetNotIn() []uint64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *UInt64Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// SInt32Rules describes the constraints applied to `sint32` values
type SInt32Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *SInt32Rules) Reset() {
*x = SInt32Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SInt32Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SInt32Rules) ProtoMessage() {}
func (x *SInt32Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead.
func (*SInt32Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{7}
}
func (x *SInt32Rules) GetConst() int32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *SInt32Rules) GetLt() int32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *SInt32Rules) GetLte() int32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *SInt32Rules) GetGt() int32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *SInt32Rules) GetGte() int32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *SInt32Rules) GetIn() []int32 {
if x != nil {
return x.In
}
return nil
}
func (x *SInt32Rules) GetNotIn() []int32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *SInt32Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// SInt64Rules describes the constraints applied to `sint64` values
type SInt64Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *SInt64Rules) Reset() {
*x = SInt64Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SInt64Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SInt64Rules) ProtoMessage() {}
func (x *SInt64Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead.
func (*SInt64Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{8}
}
func (x *SInt64Rules) GetConst() int64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *SInt64Rules) GetLt() int64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *SInt64Rules) GetLte() int64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *SInt64Rules) GetGt() int64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *SInt64Rules) GetGte() int64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *SInt64Rules) GetIn() []int64 {
if x != nil {
return x.In
}
return nil
}
func (x *SInt64Rules) GetNotIn() []int64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *SInt64Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// Fixed32Rules describes the constraints applied to `fixed32` values
type Fixed32Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *Fixed32Rules) Reset() {
*x = Fixed32Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Fixed32Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Fixed32Rules) ProtoMessage() {}
func (x *Fixed32Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead.
func (*Fixed32Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{9}
}
func (x *Fixed32Rules) GetConst() uint32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *Fixed32Rules) GetLt() uint32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *Fixed32Rules) GetLte() uint32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *Fixed32Rules) GetGt() uint32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *Fixed32Rules) GetGte() uint32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *Fixed32Rules) GetIn() []uint32 {
if x != nil {
return x.In
}
return nil
}
func (x *Fixed32Rules) GetNotIn() []uint32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *Fixed32Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// Fixed64Rules describes the constraints applied to `fixed64` values
type Fixed64Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *Fixed64Rules) Reset() {
*x = Fixed64Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Fixed64Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Fixed64Rules) ProtoMessage() {}
func (x *Fixed64Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead.
func (*Fixed64Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{10}
}
func (x *Fixed64Rules) GetConst() uint64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *Fixed64Rules) GetLt() uint64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *Fixed64Rules) GetLte() uint64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *Fixed64Rules) GetGt() uint64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *Fixed64Rules) GetGte() uint64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *Fixed64Rules) GetIn() []uint64 {
if x != nil {
return x.In
}
return nil
}
func (x *Fixed64Rules) GetNotIn() []uint64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *Fixed64Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// SFixed32Rules describes the constraints applied to `sfixed32` values
type SFixed32Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *SFixed32Rules) Reset() {
*x = SFixed32Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SFixed32Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SFixed32Rules) ProtoMessage() {}
func (x *SFixed32Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead.
func (*SFixed32Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{11}
}
func (x *SFixed32Rules) GetConst() int32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *SFixed32Rules) GetLt() int32 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *SFixed32Rules) GetLte() int32 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *SFixed32Rules) GetGt() int32 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *SFixed32Rules) GetGte() int32 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *SFixed32Rules) GetIn() []int32 {
if x != nil {
return x.In
}
return nil
}
func (x *SFixed32Rules) GetNotIn() []int32 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *SFixed32Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// SFixed64Rules describes the constraints applied to `sfixed64` values
type SFixed64Rules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"`
// 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.
Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"`
// 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.
Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *SFixed64Rules) Reset() {
*x = SFixed64Rules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SFixed64Rules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SFixed64Rules) ProtoMessage() {}
func (x *SFixed64Rules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead.
func (*SFixed64Rules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{12}
}
func (x *SFixed64Rules) GetConst() int64 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *SFixed64Rules) GetLt() int64 {
if x != nil && x.Lt != nil {
return *x.Lt
}
return 0
}
func (x *SFixed64Rules) GetLte() int64 {
if x != nil && x.Lte != nil {
return *x.Lte
}
return 0
}
func (x *SFixed64Rules) GetGt() int64 {
if x != nil && x.Gt != nil {
return *x.Gt
}
return 0
}
func (x *SFixed64Rules) GetGte() int64 {
if x != nil && x.Gte != nil {
return *x.Gte
}
return 0
}
func (x *SFixed64Rules) GetIn() []int64 {
if x != nil {
return x.In
}
return nil
}
func (x *SFixed64Rules) GetNotIn() []int64 {
if x != nil {
return x.NotIn
}
return nil
}
func (x *SFixed64Rules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// BoolRules describes the constraints applied to `bool` values
type BoolRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
}
func (x *BoolRules) Reset() {
*x = BoolRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BoolRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BoolRules) ProtoMessage() {}
func (x *BoolRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BoolRules.ProtoReflect.Descriptor instead.
func (*BoolRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{13}
}
func (x *BoolRules) GetConst() bool {
if x != nil && x.Const != nil {
return *x.Const
}
return false
}
// StringRules describe the constraints applied to `string` values
type StringRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"`
// 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.
Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"`
// 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.
MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"`
// 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.
MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"`
// LenBytes specifies that this field must be the specified number of bytes
LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"`
// MinBytes specifies that this field must be the specified number of bytes
// at a minimum
MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"`
// MaxBytes specifies that this field must be the specified number of bytes
// at a maximum
MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"`
// Pattern specifes that this field must match against the specified
// regular expression (RE2 syntax). The included expression should elide
// any delimiters.
Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"`
// Prefix specifies that this field must have the specified substring at
// the beginning of the string.
Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"`
// Suffix specifies that this field must have the specified substring at
// the end of the string.
Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"`
// Contains specifies that this field must have the specified substring
// anywhere in the string.
Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"`
// NotContains specifies that this field cannot have the specified substring
// anywhere in the string.
NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// WellKnown rules provide advanced constraints against common string
// patterns
//
// Types that are assignable to WellKnown:
//
2022-07-07 20:11:50 +00:00
// *StringRules_Email
// *StringRules_Hostname
// *StringRules_Ip
// *StringRules_Ipv4
// *StringRules_Ipv6
// *StringRules_Uri
// *StringRules_UriRef
// *StringRules_Address
// *StringRules_Uuid
// *StringRules_WellKnownRegex
WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"`
// 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.
Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
// Default values for StringRules fields.
const (
Default_StringRules_Strict = bool(true)
)
func (x *StringRules) Reset() {
*x = StringRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StringRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StringRules) ProtoMessage() {}
func (x *StringRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StringRules.ProtoReflect.Descriptor instead.
func (*StringRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{14}
}
func (x *StringRules) GetConst() string {
if x != nil && x.Const != nil {
return *x.Const
}
return ""
}
func (x *StringRules) GetLen() uint64 {
if x != nil && x.Len != nil {
return *x.Len
}
return 0
}
func (x *StringRules) GetMinLen() uint64 {
if x != nil && x.MinLen != nil {
return *x.MinLen
}
return 0
}
func (x *StringRules) GetMaxLen() uint64 {
if x != nil && x.MaxLen != nil {
return *x.MaxLen
}
return 0
}
func (x *StringRules) GetLenBytes() uint64 {
if x != nil && x.LenBytes != nil {
return *x.LenBytes
}
return 0
}
func (x *StringRules) GetMinBytes() uint64 {
if x != nil && x.MinBytes != nil {
return *x.MinBytes
}
return 0
}
func (x *StringRules) GetMaxBytes() uint64 {
if x != nil && x.MaxBytes != nil {
return *x.MaxBytes
}
return 0
}
func (x *StringRules) GetPattern() string {
if x != nil && x.Pattern != nil {
return *x.Pattern
}
return ""
}
func (x *StringRules) GetPrefix() string {
if x != nil && x.Prefix != nil {
return *x.Prefix
}
return ""
}
func (x *StringRules) GetSuffix() string {
if x != nil && x.Suffix != nil {
return *x.Suffix
}
return ""
}
func (x *StringRules) GetContains() string {
if x != nil && x.Contains != nil {
return *x.Contains
}
return ""
}
func (x *StringRules) GetNotContains() string {
if x != nil && x.NotContains != nil {
return *x.NotContains
}
return ""
}
func (x *StringRules) GetIn() []string {
if x != nil {
return x.In
}
return nil
}
func (x *StringRules) GetNotIn() []string {
if x != nil {
return x.NotIn
}
return nil
}
func (m *StringRules) GetWellKnown() isStringRules_WellKnown {
if m != nil {
return m.WellKnown
}
return nil
}
func (x *StringRules) GetEmail() bool {
if x, ok := x.GetWellKnown().(*StringRules_Email); ok {
return x.Email
}
return false
}
func (x *StringRules) GetHostname() bool {
if x, ok := x.GetWellKnown().(*StringRules_Hostname); ok {
return x.Hostname
}
return false
}
func (x *StringRules) GetIp() bool {
if x, ok := x.GetWellKnown().(*StringRules_Ip); ok {
return x.Ip
}
return false
}
func (x *StringRules) GetIpv4() bool {
if x, ok := x.GetWellKnown().(*StringRules_Ipv4); ok {
return x.Ipv4
}
return false
}
func (x *StringRules) GetIpv6() bool {
if x, ok := x.GetWellKnown().(*StringRules_Ipv6); ok {
return x.Ipv6
}
return false
}
func (x *StringRules) GetUri() bool {
if x, ok := x.GetWellKnown().(*StringRules_Uri); ok {
return x.Uri
}
return false
}
func (x *StringRules) GetUriRef() bool {
if x, ok := x.GetWellKnown().(*StringRules_UriRef); ok {
return x.UriRef
}
return false
}
func (x *StringRules) GetAddress() bool {
if x, ok := x.GetWellKnown().(*StringRules_Address); ok {
return x.Address
}
return false
}
func (x *StringRules) GetUuid() bool {
if x, ok := x.GetWellKnown().(*StringRules_Uuid); ok {
return x.Uuid
}
return false
}
func (x *StringRules) GetWellKnownRegex() KnownRegex {
if x, ok := x.GetWellKnown().(*StringRules_WellKnownRegex); ok {
return x.WellKnownRegex
}
return KnownRegex_UNKNOWN
}
func (x *StringRules) GetStrict() bool {
if x != nil && x.Strict != nil {
return *x.Strict
}
return Default_StringRules_Strict
}
func (x *StringRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
type isStringRules_WellKnown interface {
isStringRules_WellKnown()
}
type StringRules_Email struct {
// Email specifies that the field must be a valid email address as
// defined by RFC 5322
Email bool `protobuf:"varint,12,opt,name=email,oneof"`
}
type StringRules_Hostname struct {
// Hostname specifies that the field must be a valid hostname as
// defined by RFC 1034. This constraint does not support
// internationalized domain names (IDNs).
Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"`
}
type StringRules_Ip struct {
// Ip specifies that the field must be a valid IP (v4 or v6) address.
// Valid IPv6 addresses should not include surrounding square brackets.
Ip bool `protobuf:"varint,14,opt,name=ip,oneof"`
}
type StringRules_Ipv4 struct {
// Ipv4 specifies that the field must be a valid IPv4 address.
Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"`
}
type StringRules_Ipv6 struct {
// Ipv6 specifies that the field must be a valid IPv6 address. Valid
// IPv6 addresses should not include surrounding square brackets.
Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"`
}
type StringRules_Uri struct {
// Uri specifies that the field must be a valid, absolute URI as defined
// by RFC 3986
Uri bool `protobuf:"varint,17,opt,name=uri,oneof"`
}
type StringRules_UriRef struct {
// UriRef specifies that the field must be a valid URI as defined by RFC
// 3986 and may be relative or absolute.
UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"`
}
type StringRules_Address struct {
// 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).
Address bool `protobuf:"varint,21,opt,name=address,oneof"`
}
type StringRules_Uuid struct {
// Uuid specifies that the field must be a valid UUID as defined by
// RFC 4122
Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"`
}
type StringRules_WellKnownRegex struct {
// WellKnownRegex specifies a common well known pattern defined as a regex.
WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=validate.KnownRegex,oneof"`
}
func (*StringRules_Email) isStringRules_WellKnown() {}
func (*StringRules_Hostname) isStringRules_WellKnown() {}
func (*StringRules_Ip) isStringRules_WellKnown() {}
func (*StringRules_Ipv4) isStringRules_WellKnown() {}
func (*StringRules_Ipv6) isStringRules_WellKnown() {}
func (*StringRules_Uri) isStringRules_WellKnown() {}
func (*StringRules_UriRef) isStringRules_WellKnown() {}
func (*StringRules_Address) isStringRules_WellKnown() {}
func (*StringRules_Uuid) isStringRules_WellKnown() {}
func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {}
// BytesRules describe the constraints applied to `bytes` values
type BytesRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"`
// Len specifies that this field must be the specified number of bytes
Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"`
// MinLen specifies that this field must be the specified number of bytes
// at a minimum
MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"`
// MaxLen specifies that this field must be the specified number of bytes
// at a maximum
MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"`
// Pattern specifes that this field must match against the specified
// regular expression (RE2 syntax). The included expression should elide
// any delimiters.
Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"`
// Prefix specifies that this field must have the specified bytes at the
// beginning of the string.
Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"`
// Suffix specifies that this field must have the specified bytes at the
// end of the string.
Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"`
// Contains specifies that this field must have the specified bytes
// anywhere in the string.
Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
// WellKnown rules provide advanced constraints against common byte
// patterns
//
// Types that are assignable to WellKnown:
//
2022-07-07 20:11:50 +00:00
// *BytesRules_Ip
// *BytesRules_Ipv4
// *BytesRules_Ipv6
WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *BytesRules) Reset() {
*x = BytesRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BytesRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BytesRules) ProtoMessage() {}
func (x *BytesRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BytesRules.ProtoReflect.Descriptor instead.
func (*BytesRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{15}
}
func (x *BytesRules) GetConst() []byte {
if x != nil {
return x.Const
}
return nil
}
func (x *BytesRules) GetLen() uint64 {
if x != nil && x.Len != nil {
return *x.Len
}
return 0
}
func (x *BytesRules) GetMinLen() uint64 {
if x != nil && x.MinLen != nil {
return *x.MinLen
}
return 0
}
func (x *BytesRules) GetMaxLen() uint64 {
if x != nil && x.MaxLen != nil {
return *x.MaxLen
}
return 0
}
func (x *BytesRules) GetPattern() string {
if x != nil && x.Pattern != nil {
return *x.Pattern
}
return ""
}
func (x *BytesRules) GetPrefix() []byte {
if x != nil {
return x.Prefix
}
return nil
}
func (x *BytesRules) GetSuffix() []byte {
if x != nil {
return x.Suffix
}
return nil
}
func (x *BytesRules) GetContains() []byte {
if x != nil {
return x.Contains
}
return nil
}
func (x *BytesRules) GetIn() [][]byte {
if x != nil {
return x.In
}
return nil
}
func (x *BytesRules) GetNotIn() [][]byte {
if x != nil {
return x.NotIn
}
return nil
}
func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown {
if m != nil {
return m.WellKnown
}
return nil
}
func (x *BytesRules) GetIp() bool {
if x, ok := x.GetWellKnown().(*BytesRules_Ip); ok {
return x.Ip
}
return false
}
func (x *BytesRules) GetIpv4() bool {
if x, ok := x.GetWellKnown().(*BytesRules_Ipv4); ok {
return x.Ipv4
}
return false
}
func (x *BytesRules) GetIpv6() bool {
if x, ok := x.GetWellKnown().(*BytesRules_Ipv6); ok {
return x.Ipv6
}
return false
}
func (x *BytesRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
type isBytesRules_WellKnown interface {
isBytesRules_WellKnown()
}
type BytesRules_Ip struct {
// Ip specifies that the field must be a valid IP (v4 or v6) address in
// byte format
Ip bool `protobuf:"varint,10,opt,name=ip,oneof"`
}
type BytesRules_Ipv4 struct {
// Ipv4 specifies that the field must be a valid IPv4 address in byte
// format
Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"`
}
type BytesRules_Ipv6 struct {
// Ipv6 specifies that the field must be a valid IPv6 address in byte
// format
Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"`
}
func (*BytesRules_Ip) isBytesRules_WellKnown() {}
func (*BytesRules_Ipv4) isBytesRules_WellKnown() {}
func (*BytesRules_Ipv6) isBytesRules_WellKnown() {}
// EnumRules describe the constraints applied to enum values
type EnumRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Const specifies that this field must be exactly the specified value
Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"`
// DefinedOnly specifies that this field must be only one of the defined
// values for this enum, failing on any undefined value.
DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
}
func (x *EnumRules) Reset() {
*x = EnumRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EnumRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnumRules) ProtoMessage() {}
func (x *EnumRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnumRules.ProtoReflect.Descriptor instead.
func (*EnumRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{16}
}
func (x *EnumRules) GetConst() int32 {
if x != nil && x.Const != nil {
return *x.Const
}
return 0
}
func (x *EnumRules) GetDefinedOnly() bool {
if x != nil && x.DefinedOnly != nil {
return *x.DefinedOnly
}
return false
}
func (x *EnumRules) GetIn() []int32 {
if x != nil {
return x.In
}
return nil
}
func (x *EnumRules) GetNotIn() []int32 {
if x != nil {
return x.NotIn
}
return nil
}
// MessageRules describe the constraints applied to embedded message values.
// For message-type fields, validation is performed recursively.
type MessageRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Skip specifies that the validation rules of this field should not be
// evaluated
Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"`
// Required specifies that this field must be set
Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"`
}
func (x *MessageRules) Reset() {
*x = MessageRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MessageRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MessageRules) ProtoMessage() {}
func (x *MessageRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MessageRules.ProtoReflect.Descriptor instead.
func (*MessageRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{17}
}
func (x *MessageRules) GetSkip() bool {
if x != nil && x.Skip != nil {
return *x.Skip
}
return false
}
func (x *MessageRules) GetRequired() bool {
if x != nil && x.Required != nil {
return *x.Required
}
return false
}
// RepeatedRules describe the constraints applied to `repeated` values
type RepeatedRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// MinItems specifies that this field must have the specified number of
// items at a minimum
MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"`
// MaxItems specifies that this field must have the specified number of
// items at a maximum
MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"`
// 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).
Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"`
// 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.
Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *RepeatedRules) Reset() {
*x = RepeatedRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RepeatedRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RepeatedRules) ProtoMessage() {}
func (x *RepeatedRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead.
func (*RepeatedRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{18}
}
func (x *RepeatedRules) GetMinItems() uint64 {
if x != nil && x.MinItems != nil {
return *x.MinItems
}
return 0
}
func (x *RepeatedRules) GetMaxItems() uint64 {
if x != nil && x.MaxItems != nil {
return *x.MaxItems
}
return 0
}
func (x *RepeatedRules) GetUnique() bool {
if x != nil && x.Unique != nil {
return *x.Unique
}
return false
}
func (x *RepeatedRules) GetItems() *FieldRules {
if x != nil {
return x.Items
}
return nil
}
func (x *RepeatedRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// MapRules describe the constraints applied to `map` values
type MapRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// MinPairs specifies that this field must have the specified number of
// KVs at a minimum
MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"`
// MaxPairs specifies that this field must have the specified number of
// KVs at a maximum
MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"`
// NoSparse specifies values in this field cannot be unset. This only
// applies to map's with message value types.
NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"`
// Keys specifies the constraints to be applied to each key in the field.
Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"`
// 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.
Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"`
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"`
}
func (x *MapRules) Reset() {
*x = MapRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MapRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MapRules) ProtoMessage() {}
func (x *MapRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MapRules.ProtoReflect.Descriptor instead.
func (*MapRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{19}
}
func (x *MapRules) GetMinPairs() uint64 {
if x != nil && x.MinPairs != nil {
return *x.MinPairs
}
return 0
}
func (x *MapRules) GetMaxPairs() uint64 {
if x != nil && x.MaxPairs != nil {
return *x.MaxPairs
}
return 0
}
func (x *MapRules) GetNoSparse() bool {
if x != nil && x.NoSparse != nil {
return *x.NoSparse
}
return false
}
func (x *MapRules) GetKeys() *FieldRules {
if x != nil {
return x.Keys
}
return nil
}
func (x *MapRules) GetValues() *FieldRules {
if x != nil {
return x.Values
}
return nil
}
func (x *MapRules) GetIgnoreEmpty() bool {
if x != nil && x.IgnoreEmpty != nil {
return *x.IgnoreEmpty
}
return false
}
// AnyRules describe constraints applied exclusively to the
// `google.protobuf.Any` well-known type
type AnyRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required specifies that this field must be set
Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"`
// In specifies that this field's `type_url` must be equal to one of the
// specified values.
In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field's `type_url` must not be equal to any of
// the specified values.
NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
}
func (x *AnyRules) Reset() {
*x = AnyRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AnyRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AnyRules) ProtoMessage() {}
func (x *AnyRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AnyRules.ProtoReflect.Descriptor instead.
func (*AnyRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{20}
}
func (x *AnyRules) GetRequired() bool {
if x != nil && x.Required != nil {
return *x.Required
}
return false
}
func (x *AnyRules) GetIn() []string {
if x != nil {
return x.In
}
return nil
}
func (x *AnyRules) GetNotIn() []string {
if x != nil {
return x.NotIn
}
return nil
}
// DurationRules describe the constraints applied exclusively to the
// `google.protobuf.Duration` well-known type
type DurationRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required specifies that this field must be set
Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"`
// Const specifies that this field must be exactly the specified value
Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"`
// Lt specifies that this field must be less than the specified value,
// inclusive
Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"`
// Gt specifies that this field must be greater than the specified value,
// exclusive
Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"`
// Gte specifies that this field must be greater than the specified value,
// inclusive
Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"`
// In specifies that this field must be equal to one of the specified
// values
In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"`
// NotIn specifies that this field cannot be equal to one of the specified
// values
NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"`
}
func (x *DurationRules) Reset() {
*x = DurationRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DurationRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DurationRules) ProtoMessage() {}
func (x *DurationRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DurationRules.ProtoReflect.Descriptor instead.
func (*DurationRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{21}
}
func (x *DurationRules) GetRequired() bool {
if x != nil && x.Required != nil {
return *x.Required
}
return false
}
func (x *DurationRules) GetConst() *durationpb.Duration {
if x != nil {
return x.Const
}
return nil
}
func (x *DurationRules) GetLt() *durationpb.Duration {
if x != nil {
return x.Lt
}
return nil
}
func (x *DurationRules) GetLte() *durationpb.Duration {
if x != nil {
return x.Lte
}
return nil
}
func (x *DurationRules) GetGt() *durationpb.Duration {
if x != nil {
return x.Gt
}
return nil
}
func (x *DurationRules) GetGte() *durationpb.Duration {
if x != nil {
return x.Gte
}
return nil
}
func (x *DurationRules) GetIn() []*durationpb.Duration {
if x != nil {
return x.In
}
return nil
}
func (x *DurationRules) GetNotIn() []*durationpb.Duration {
if x != nil {
return x.NotIn
}
return nil
}
// TimestampRules describe the constraints applied exclusively to the
// `google.protobuf.Timestamp` well-known type
type TimestampRules struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required specifies that this field must be set
Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"`
// Const specifies that this field must be exactly the specified value
Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"`
// Lt specifies that this field must be less than the specified value,
// exclusive
Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"`
// Lte specifies that this field must be less than the specified value,
// inclusive
Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"`
// Gt specifies that this field must be greater than the specified value,
// exclusive
Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"`
// Gte specifies that this field must be greater than the specified value,
// inclusive
Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"`
// LtNow specifies that this must be less than the current time. LtNow
// can only be used with the Within rule.
LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"`
// GtNow specifies that this must be greater than the current time. GtNow
// can only be used with the Within rule.
GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"`
// 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.
Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"`
}
func (x *TimestampRules) Reset() {
*x = TimestampRules{}
if protoimpl.UnsafeEnabled {
mi := &file_validate_validate_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TimestampRules) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TimestampRules) ProtoMessage() {}
func (x *TimestampRules) ProtoReflect() protoreflect.Message {
mi := &file_validate_validate_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead.
func (*TimestampRules) Descriptor() ([]byte, []int) {
return file_validate_validate_proto_rawDescGZIP(), []int{22}
}
func (x *TimestampRules) GetRequired() bool {
if x != nil && x.Required != nil {
return *x.Required
}
return false
}
func (x *TimestampRules) GetConst() *timestamppb.Timestamp {
if x != nil {
return x.Const
}
return nil
}
func (x *TimestampRules) GetLt() *timestamppb.Timestamp {
if x != nil {
return x.Lt
}
return nil
}
func (x *TimestampRules) GetLte() *timestamppb.Timestamp {
if x != nil {
return x.Lte
}
return nil
}
func (x *TimestampRules) GetGt() *timestamppb.Timestamp {
if x != nil {
return x.Gt
}
return nil
}
func (x *TimestampRules) GetGte() *timestamppb.Timestamp {
if x != nil {
return x.Gte
}
return nil
}
func (x *TimestampRules) GetLtNow() bool {
if x != nil && x.LtNow != nil {
return *x.LtNow
}
return false
}
func (x *TimestampRules) GetGtNow() bool {
if x != nil && x.GtNow != nil {
return *x.GtNow
}
return false
}
func (x *TimestampRules) GetWithin() *durationpb.Duration {
if x != nil {
return x.Within
}
return nil
}
var file_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{
{
ExtendedType: (*descriptorpb.MessageOptions)(nil),
ExtensionType: (*bool)(nil),
Field: 1071,
Name: "validate.disabled",
Tag: "varint,1071,opt,name=disabled",
Filename: "validate/validate.proto",
},
{
ExtendedType: (*descriptorpb.MessageOptions)(nil),
ExtensionType: (*bool)(nil),
Field: 1072,
Name: "validate.ignored",
Tag: "varint,1072,opt,name=ignored",
Filename: "validate/validate.proto",
},
{
ExtendedType: (*descriptorpb.OneofOptions)(nil),
ExtensionType: (*bool)(nil),
Field: 1071,
Name: "validate.required",
Tag: "varint,1071,opt,name=required",
Filename: "validate/validate.proto",
},
{
ExtendedType: (*descriptorpb.FieldOptions)(nil),
ExtensionType: (*FieldRules)(nil),
Field: 1071,
Name: "validate.rules",
Tag: "bytes,1071,opt,name=rules",
Filename: "validate/validate.proto",
},
}
// Extension fields to descriptorpb.MessageOptions.
var (
// Disabled nullifies any validation rules for this message, including any
// message fields associated with it that do support validation.
//
// optional bool disabled = 1071;
E_Disabled = &file_validate_validate_proto_extTypes[0]
// Ignore skips generation of validation methods for this message.
//
// optional bool ignored = 1072;
E_Ignored = &file_validate_validate_proto_extTypes[1]
)
// Extension fields to descriptorpb.OneofOptions.
var (
// 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;
E_Required = &file_validate_validate_proto_extTypes[2]
)
// Extension fields to descriptorpb.FieldOptions.
var (
// Rules specify the validations to be performed on this field. By default,
// no validation is performed against a field.
//
// optional validate.FieldRules rules = 1071;
E_Rules = &file_validate_validate_proto_extTypes[3]
)
var File_validate_validate_proto protoreflect.FileDescriptor
var file_validate_validate_proto_rawDesc = []byte{
0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc8, 0x08, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64,
0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05,
0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06,
0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69,
0x6e, 0x74, 0x33, 0x32, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49,
0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74,
0x36, 0x34, 0x12, 0x2f, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49,
0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e,
0x74, 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55,
0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69,
0x6e, 0x74, 0x36, 0x34, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e,
0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73,
0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06,
0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48,
0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69,
0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75,
0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x35,
0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78,
0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69,
0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x04,
0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c,
0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48,
0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00,
0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65,
0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52,
0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e,
0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75,
0x6d, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52,
0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08,
0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18,
0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70,
0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65,
0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c,
0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75,
0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52,
0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e,
0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f,
0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49,
0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74,
0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52,
0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03,
0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15,
0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05,
0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f,
0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e,
0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74,
0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a,
0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12,
0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12,
0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74,
0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69,
0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28,
0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f,
0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a,
0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c,
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03,
0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07,
0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69,
0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1,
0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14,
0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63,
0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06,
0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f,
0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12,
0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18,
0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c,
0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74,
0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06,
0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f,
0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d,
0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72,
0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33,
0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02,
0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03,
0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10,
0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e,
0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11,
0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72,
0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69,
0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53,
0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c,
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02,
0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52,
0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12,
0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07,
0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69,
0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2,
0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12,
0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05,
0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18,
0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74,
0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e,
0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79,
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52,
0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03,
0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15,
0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05,
0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f,
0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e,
0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69,
0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c,
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02,
0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52,
0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f,
0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07,
0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69,
0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3,
0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52,
0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e,
0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f,
0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49,
0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74,
0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65,
0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, 0xd4, 0x05, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12,
0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f,
0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65,
0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14,
0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b,
0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d,
0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74,
0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65,
0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75,
0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66,
0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21,
0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69,
0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28,
0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69,
0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10,
0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70,
0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10,
0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03,
0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69,
0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28,
0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18,
0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x40, 0x0a,
0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65,
0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52,
0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12,
0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a,
0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a,
0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2,
0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a,
0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f,
0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04,
0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17,
0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65,
0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,
0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66,
0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69,
0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a,
0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e,
0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b,
0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04,
0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70,
0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70,
0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e,
0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65,
0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18,
0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74,
0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e,
0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
0x22, 0xb0, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c,
0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,
0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06,
0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e,
0x69, 0x71, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46,
0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79,
0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0xdc, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a,
0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f,
0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e,
0x6f, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79,
0x73, 0x12, 0x2c, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65,
0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18,
0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a,
0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e,
0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f,
0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49,
0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75,
0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,
0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74,
0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c,
0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65,
0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e,
0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02,
0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05,
0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a,
0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67,
0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01,
0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f,
0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77,
0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74,
0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65,
0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14,
0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41,
0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41,
0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64,
0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e,
0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67,
0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
0x64, 0x3a, 0x4a, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c,
0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x50, 0x0a,
0x1a, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x70,
0x67, 0x76, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5a, 0x32, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f,
0x78, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
}
var (
file_validate_validate_proto_rawDescOnce sync.Once
file_validate_validate_proto_rawDescData = file_validate_validate_proto_rawDesc
)
func file_validate_validate_proto_rawDescGZIP() []byte {
file_validate_validate_proto_rawDescOnce.Do(func() {
file_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_validate_validate_proto_rawDescData)
})
return file_validate_validate_proto_rawDescData
}
var file_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_validate_validate_proto_goTypes = []interface{}{
(KnownRegex)(0), // 0: validate.KnownRegex
(*FieldRules)(nil), // 1: validate.FieldRules
(*FloatRules)(nil), // 2: validate.FloatRules
(*DoubleRules)(nil), // 3: validate.DoubleRules
(*Int32Rules)(nil), // 4: validate.Int32Rules
(*Int64Rules)(nil), // 5: validate.Int64Rules
(*UInt32Rules)(nil), // 6: validate.UInt32Rules
(*UInt64Rules)(nil), // 7: validate.UInt64Rules
(*SInt32Rules)(nil), // 8: validate.SInt32Rules
(*SInt64Rules)(nil), // 9: validate.SInt64Rules
(*Fixed32Rules)(nil), // 10: validate.Fixed32Rules
(*Fixed64Rules)(nil), // 11: validate.Fixed64Rules
(*SFixed32Rules)(nil), // 12: validate.SFixed32Rules
(*SFixed64Rules)(nil), // 13: validate.SFixed64Rules
(*BoolRules)(nil), // 14: validate.BoolRules
(*StringRules)(nil), // 15: validate.StringRules
(*BytesRules)(nil), // 16: validate.BytesRules
(*EnumRules)(nil), // 17: validate.EnumRules
(*MessageRules)(nil), // 18: validate.MessageRules
(*RepeatedRules)(nil), // 19: validate.RepeatedRules
(*MapRules)(nil), // 20: validate.MapRules
(*AnyRules)(nil), // 21: validate.AnyRules
(*DurationRules)(nil), // 22: validate.DurationRules
(*TimestampRules)(nil), // 23: validate.TimestampRules
(*durationpb.Duration)(nil), // 24: google.protobuf.Duration
(*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp
(*descriptorpb.MessageOptions)(nil), // 26: google.protobuf.MessageOptions
(*descriptorpb.OneofOptions)(nil), // 27: google.protobuf.OneofOptions
(*descriptorpb.FieldOptions)(nil), // 28: google.protobuf.FieldOptions
}
var file_validate_validate_proto_depIdxs = []int32{
18, // 0: validate.FieldRules.message:type_name -> validate.MessageRules
2, // 1: validate.FieldRules.float:type_name -> validate.FloatRules
3, // 2: validate.FieldRules.double:type_name -> validate.DoubleRules
4, // 3: validate.FieldRules.int32:type_name -> validate.Int32Rules
5, // 4: validate.FieldRules.int64:type_name -> validate.Int64Rules
6, // 5: validate.FieldRules.uint32:type_name -> validate.UInt32Rules
7, // 6: validate.FieldRules.uint64:type_name -> validate.UInt64Rules
8, // 7: validate.FieldRules.sint32:type_name -> validate.SInt32Rules
9, // 8: validate.FieldRules.sint64:type_name -> validate.SInt64Rules
10, // 9: validate.FieldRules.fixed32:type_name -> validate.Fixed32Rules
11, // 10: validate.FieldRules.fixed64:type_name -> validate.Fixed64Rules
12, // 11: validate.FieldRules.sfixed32:type_name -> validate.SFixed32Rules
13, // 12: validate.FieldRules.sfixed64:type_name -> validate.SFixed64Rules
14, // 13: validate.FieldRules.bool:type_name -> validate.BoolRules
15, // 14: validate.FieldRules.string:type_name -> validate.StringRules
16, // 15: validate.FieldRules.bytes:type_name -> validate.BytesRules
17, // 16: validate.FieldRules.enum:type_name -> validate.EnumRules
19, // 17: validate.FieldRules.repeated:type_name -> validate.RepeatedRules
20, // 18: validate.FieldRules.map:type_name -> validate.MapRules
21, // 19: validate.FieldRules.any:type_name -> validate.AnyRules
22, // 20: validate.FieldRules.duration:type_name -> validate.DurationRules
23, // 21: validate.FieldRules.timestamp:type_name -> validate.TimestampRules
0, // 22: validate.StringRules.well_known_regex:type_name -> validate.KnownRegex
1, // 23: validate.RepeatedRules.items:type_name -> validate.FieldRules
1, // 24: validate.MapRules.keys:type_name -> validate.FieldRules
1, // 25: validate.MapRules.values:type_name -> validate.FieldRules
24, // 26: validate.DurationRules.const:type_name -> google.protobuf.Duration
24, // 27: validate.DurationRules.lt:type_name -> google.protobuf.Duration
24, // 28: validate.DurationRules.lte:type_name -> google.protobuf.Duration
24, // 29: validate.DurationRules.gt:type_name -> google.protobuf.Duration
24, // 30: validate.DurationRules.gte:type_name -> google.protobuf.Duration
24, // 31: validate.DurationRules.in:type_name -> google.protobuf.Duration
24, // 32: validate.DurationRules.not_in:type_name -> google.protobuf.Duration
25, // 33: validate.TimestampRules.const:type_name -> google.protobuf.Timestamp
25, // 34: validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp
25, // 35: validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp
25, // 36: validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp
25, // 37: validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp
24, // 38: validate.TimestampRules.within:type_name -> google.protobuf.Duration
26, // 39: validate.disabled:extendee -> google.protobuf.MessageOptions
26, // 40: validate.ignored:extendee -> google.protobuf.MessageOptions
27, // 41: validate.required:extendee -> google.protobuf.OneofOptions
28, // 42: validate.rules:extendee -> google.protobuf.FieldOptions
1, // 43: validate.rules:type_name -> validate.FieldRules
44, // [44:44] is the sub-list for method output_type
44, // [44:44] is the sub-list for method input_type
43, // [43:44] is the sub-list for extension type_name
39, // [39:43] is the sub-list for extension extendee
0, // [0:39] is the sub-list for field type_name
}
func init() { file_validate_validate_proto_init() }
func file_validate_validate_proto_init() {
if File_validate_validate_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FieldRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FloatRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DoubleRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Int32Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Int64Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UInt32Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UInt64Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SInt32Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SInt64Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Fixed32Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Fixed64Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SFixed32Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SFixed64Rules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BoolRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StringRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BytesRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EnumRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MessageRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RepeatedRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MapRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AnyRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DurationRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TimestampRules); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{
(*FieldRules_Float)(nil),
(*FieldRules_Double)(nil),
(*FieldRules_Int32)(nil),
(*FieldRules_Int64)(nil),
(*FieldRules_Uint32)(nil),
(*FieldRules_Uint64)(nil),
(*FieldRules_Sint32)(nil),
(*FieldRules_Sint64)(nil),
(*FieldRules_Fixed32)(nil),
(*FieldRules_Fixed64)(nil),
(*FieldRules_Sfixed32)(nil),
(*FieldRules_Sfixed64)(nil),
(*FieldRules_Bool)(nil),
(*FieldRules_String_)(nil),
(*FieldRules_Bytes)(nil),
(*FieldRules_Enum)(nil),
(*FieldRules_Repeated)(nil),
(*FieldRules_Map)(nil),
(*FieldRules_Any)(nil),
(*FieldRules_Duration)(nil),
(*FieldRules_Timestamp)(nil),
}
file_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{
(*StringRules_Email)(nil),
(*StringRules_Hostname)(nil),
(*StringRules_Ip)(nil),
(*StringRules_Ipv4)(nil),
(*StringRules_Ipv6)(nil),
(*StringRules_Uri)(nil),
(*StringRules_UriRef)(nil),
(*StringRules_Address)(nil),
(*StringRules_Uuid)(nil),
(*StringRules_WellKnownRegex)(nil),
}
file_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{
(*BytesRules_Ip)(nil),
(*BytesRules_Ipv4)(nil),
(*BytesRules_Ipv6)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_validate_validate_proto_rawDesc,
NumEnums: 1,
NumMessages: 23,
NumExtensions: 4,
NumServices: 0,
},
GoTypes: file_validate_validate_proto_goTypes,
DependencyIndexes: file_validate_validate_proto_depIdxs,
EnumInfos: file_validate_validate_proto_enumTypes,
MessageInfos: file_validate_validate_proto_msgTypes,
ExtensionInfos: file_validate_validate_proto_extTypes,
}.Build()
File_validate_validate_proto = out.File
file_validate_validate_proto_rawDesc = nil
file_validate_validate_proto_goTypes = nil
file_validate_validate_proto_depIdxs = nil
}