1#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct FieldRules {
6 #[prost(message, optional, tag = "17")]
7 pub message: ::core::option::Option<MessageRules>,
8 #[prost(
9 oneof = "field_rules::Type",
10 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22"
11 )]
12 pub r#type: ::core::option::Option<field_rules::Type>,
13}
14pub mod field_rules {
16 #[derive(Clone, PartialEq, ::prost::Oneof)]
17 pub enum Type {
18 #[prost(message, tag = "1")]
20 Float(super::FloatRules),
21 #[prost(message, tag = "2")]
22 Double(super::DoubleRules),
23 #[prost(message, tag = "3")]
24 Int32(super::Int32Rules),
25 #[prost(message, tag = "4")]
26 Int64(super::Int64Rules),
27 #[prost(message, tag = "5")]
28 Uint32(super::UInt32Rules),
29 #[prost(message, tag = "6")]
30 Uint64(super::UInt64Rules),
31 #[prost(message, tag = "7")]
32 Sint32(super::SInt32Rules),
33 #[prost(message, tag = "8")]
34 Sint64(super::SInt64Rules),
35 #[prost(message, tag = "9")]
36 Fixed32(super::Fixed32Rules),
37 #[prost(message, tag = "10")]
38 Fixed64(super::Fixed64Rules),
39 #[prost(message, tag = "11")]
40 Sfixed32(super::SFixed32Rules),
41 #[prost(message, tag = "12")]
42 Sfixed64(super::SFixed64Rules),
43 #[prost(message, tag = "13")]
44 Bool(super::BoolRules),
45 #[prost(message, tag = "14")]
46 String(super::StringRules),
47 #[prost(message, tag = "15")]
48 Bytes(super::BytesRules),
49 #[prost(message, tag = "16")]
51 Enum(super::EnumRules),
52 #[prost(message, tag = "18")]
53 Repeated(::prost::alloc::boxed::Box<super::RepeatedRules>),
54 #[prost(message, tag = "19")]
55 Map(::prost::alloc::boxed::Box<super::MapRules>),
56 #[prost(message, tag = "20")]
58 Any(super::AnyRules),
59 #[prost(message, tag = "21")]
60 Duration(super::DurationRules),
61 #[prost(message, tag = "22")]
62 Timestamp(super::TimestampRules),
63 }
64}
65impl ::prost::Name for FieldRules {
66 const NAME: &'static str = "FieldRules";
67 const PACKAGE: &'static str = "validate";
68 fn full_name() -> ::prost::alloc::string::String {
69 "validate.FieldRules".into()
70 }
71 fn type_url() -> ::prost::alloc::string::String {
72 "/validate.FieldRules".into()
73 }
74}
75#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct FloatRules {
78 #[prost(float, optional, tag = "1")]
80 pub r#const: ::core::option::Option<f32>,
81 #[prost(float, optional, tag = "2")]
84 pub lt: ::core::option::Option<f32>,
85 #[prost(float, optional, tag = "3")]
88 pub lte: ::core::option::Option<f32>,
89 #[prost(float, optional, tag = "4")]
93 pub gt: ::core::option::Option<f32>,
94 #[prost(float, optional, tag = "5")]
98 pub gte: ::core::option::Option<f32>,
99 #[prost(float, repeated, packed = "false", tag = "6")]
102 pub r#in: ::prost::alloc::vec::Vec<f32>,
103 #[prost(float, repeated, packed = "false", tag = "7")]
106 pub not_in: ::prost::alloc::vec::Vec<f32>,
107 #[prost(bool, optional, tag = "8")]
110 pub ignore_empty: ::core::option::Option<bool>,
111}
112impl ::prost::Name for FloatRules {
113 const NAME: &'static str = "FloatRules";
114 const PACKAGE: &'static str = "validate";
115 fn full_name() -> ::prost::alloc::string::String {
116 "validate.FloatRules".into()
117 }
118 fn type_url() -> ::prost::alloc::string::String {
119 "/validate.FloatRules".into()
120 }
121}
122#[derive(Clone, PartialEq, ::prost::Message)]
124pub struct DoubleRules {
125 #[prost(double, optional, tag = "1")]
127 pub r#const: ::core::option::Option<f64>,
128 #[prost(double, optional, tag = "2")]
131 pub lt: ::core::option::Option<f64>,
132 #[prost(double, optional, tag = "3")]
135 pub lte: ::core::option::Option<f64>,
136 #[prost(double, optional, tag = "4")]
140 pub gt: ::core::option::Option<f64>,
141 #[prost(double, optional, tag = "5")]
145 pub gte: ::core::option::Option<f64>,
146 #[prost(double, repeated, packed = "false", tag = "6")]
149 pub r#in: ::prost::alloc::vec::Vec<f64>,
150 #[prost(double, repeated, packed = "false", tag = "7")]
153 pub not_in: ::prost::alloc::vec::Vec<f64>,
154 #[prost(bool, optional, tag = "8")]
157 pub ignore_empty: ::core::option::Option<bool>,
158}
159impl ::prost::Name for DoubleRules {
160 const NAME: &'static str = "DoubleRules";
161 const PACKAGE: &'static str = "validate";
162 fn full_name() -> ::prost::alloc::string::String {
163 "validate.DoubleRules".into()
164 }
165 fn type_url() -> ::prost::alloc::string::String {
166 "/validate.DoubleRules".into()
167 }
168}
169#[derive(Clone, PartialEq, ::prost::Message)]
171pub struct Int32Rules {
172 #[prost(int32, optional, tag = "1")]
174 pub r#const: ::core::option::Option<i32>,
175 #[prost(int32, optional, tag = "2")]
178 pub lt: ::core::option::Option<i32>,
179 #[prost(int32, optional, tag = "3")]
182 pub lte: ::core::option::Option<i32>,
183 #[prost(int32, optional, tag = "4")]
187 pub gt: ::core::option::Option<i32>,
188 #[prost(int32, optional, tag = "5")]
192 pub gte: ::core::option::Option<i32>,
193 #[prost(int32, repeated, packed = "false", tag = "6")]
196 pub r#in: ::prost::alloc::vec::Vec<i32>,
197 #[prost(int32, repeated, packed = "false", tag = "7")]
200 pub not_in: ::prost::alloc::vec::Vec<i32>,
201 #[prost(bool, optional, tag = "8")]
204 pub ignore_empty: ::core::option::Option<bool>,
205}
206impl ::prost::Name for Int32Rules {
207 const NAME: &'static str = "Int32Rules";
208 const PACKAGE: &'static str = "validate";
209 fn full_name() -> ::prost::alloc::string::String {
210 "validate.Int32Rules".into()
211 }
212 fn type_url() -> ::prost::alloc::string::String {
213 "/validate.Int32Rules".into()
214 }
215}
216#[derive(Clone, PartialEq, ::prost::Message)]
218pub struct Int64Rules {
219 #[prost(int64, optional, tag = "1")]
221 pub r#const: ::core::option::Option<i64>,
222 #[prost(int64, optional, tag = "2")]
225 pub lt: ::core::option::Option<i64>,
226 #[prost(int64, optional, tag = "3")]
229 pub lte: ::core::option::Option<i64>,
230 #[prost(int64, optional, tag = "4")]
234 pub gt: ::core::option::Option<i64>,
235 #[prost(int64, optional, tag = "5")]
239 pub gte: ::core::option::Option<i64>,
240 #[prost(int64, repeated, packed = "false", tag = "6")]
243 pub r#in: ::prost::alloc::vec::Vec<i64>,
244 #[prost(int64, repeated, packed = "false", tag = "7")]
247 pub not_in: ::prost::alloc::vec::Vec<i64>,
248 #[prost(bool, optional, tag = "8")]
251 pub ignore_empty: ::core::option::Option<bool>,
252}
253impl ::prost::Name for Int64Rules {
254 const NAME: &'static str = "Int64Rules";
255 const PACKAGE: &'static str = "validate";
256 fn full_name() -> ::prost::alloc::string::String {
257 "validate.Int64Rules".into()
258 }
259 fn type_url() -> ::prost::alloc::string::String {
260 "/validate.Int64Rules".into()
261 }
262}
263#[derive(Clone, PartialEq, ::prost::Message)]
265pub struct UInt32Rules {
266 #[prost(uint32, optional, tag = "1")]
268 pub r#const: ::core::option::Option<u32>,
269 #[prost(uint32, optional, tag = "2")]
272 pub lt: ::core::option::Option<u32>,
273 #[prost(uint32, optional, tag = "3")]
276 pub lte: ::core::option::Option<u32>,
277 #[prost(uint32, optional, tag = "4")]
281 pub gt: ::core::option::Option<u32>,
282 #[prost(uint32, optional, tag = "5")]
286 pub gte: ::core::option::Option<u32>,
287 #[prost(uint32, repeated, packed = "false", tag = "6")]
290 pub r#in: ::prost::alloc::vec::Vec<u32>,
291 #[prost(uint32, repeated, packed = "false", tag = "7")]
294 pub not_in: ::prost::alloc::vec::Vec<u32>,
295 #[prost(bool, optional, tag = "8")]
298 pub ignore_empty: ::core::option::Option<bool>,
299}
300impl ::prost::Name for UInt32Rules {
301 const NAME: &'static str = "UInt32Rules";
302 const PACKAGE: &'static str = "validate";
303 fn full_name() -> ::prost::alloc::string::String {
304 "validate.UInt32Rules".into()
305 }
306 fn type_url() -> ::prost::alloc::string::String {
307 "/validate.UInt32Rules".into()
308 }
309}
310#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct UInt64Rules {
313 #[prost(uint64, optional, tag = "1")]
315 pub r#const: ::core::option::Option<u64>,
316 #[prost(uint64, optional, tag = "2")]
319 pub lt: ::core::option::Option<u64>,
320 #[prost(uint64, optional, tag = "3")]
323 pub lte: ::core::option::Option<u64>,
324 #[prost(uint64, optional, tag = "4")]
328 pub gt: ::core::option::Option<u64>,
329 #[prost(uint64, optional, tag = "5")]
333 pub gte: ::core::option::Option<u64>,
334 #[prost(uint64, repeated, packed = "false", tag = "6")]
337 pub r#in: ::prost::alloc::vec::Vec<u64>,
338 #[prost(uint64, repeated, packed = "false", tag = "7")]
341 pub not_in: ::prost::alloc::vec::Vec<u64>,
342 #[prost(bool, optional, tag = "8")]
345 pub ignore_empty: ::core::option::Option<bool>,
346}
347impl ::prost::Name for UInt64Rules {
348 const NAME: &'static str = "UInt64Rules";
349 const PACKAGE: &'static str = "validate";
350 fn full_name() -> ::prost::alloc::string::String {
351 "validate.UInt64Rules".into()
352 }
353 fn type_url() -> ::prost::alloc::string::String {
354 "/validate.UInt64Rules".into()
355 }
356}
357#[derive(Clone, PartialEq, ::prost::Message)]
359pub struct SInt32Rules {
360 #[prost(sint32, optional, tag = "1")]
362 pub r#const: ::core::option::Option<i32>,
363 #[prost(sint32, optional, tag = "2")]
366 pub lt: ::core::option::Option<i32>,
367 #[prost(sint32, optional, tag = "3")]
370 pub lte: ::core::option::Option<i32>,
371 #[prost(sint32, optional, tag = "4")]
375 pub gt: ::core::option::Option<i32>,
376 #[prost(sint32, optional, tag = "5")]
380 pub gte: ::core::option::Option<i32>,
381 #[prost(sint32, repeated, packed = "false", tag = "6")]
384 pub r#in: ::prost::alloc::vec::Vec<i32>,
385 #[prost(sint32, repeated, packed = "false", tag = "7")]
388 pub not_in: ::prost::alloc::vec::Vec<i32>,
389 #[prost(bool, optional, tag = "8")]
392 pub ignore_empty: ::core::option::Option<bool>,
393}
394impl ::prost::Name for SInt32Rules {
395 const NAME: &'static str = "SInt32Rules";
396 const PACKAGE: &'static str = "validate";
397 fn full_name() -> ::prost::alloc::string::String {
398 "validate.SInt32Rules".into()
399 }
400 fn type_url() -> ::prost::alloc::string::String {
401 "/validate.SInt32Rules".into()
402 }
403}
404#[derive(Clone, PartialEq, ::prost::Message)]
406pub struct SInt64Rules {
407 #[prost(sint64, optional, tag = "1")]
409 pub r#const: ::core::option::Option<i64>,
410 #[prost(sint64, optional, tag = "2")]
413 pub lt: ::core::option::Option<i64>,
414 #[prost(sint64, optional, tag = "3")]
417 pub lte: ::core::option::Option<i64>,
418 #[prost(sint64, optional, tag = "4")]
422 pub gt: ::core::option::Option<i64>,
423 #[prost(sint64, optional, tag = "5")]
427 pub gte: ::core::option::Option<i64>,
428 #[prost(sint64, repeated, packed = "false", tag = "6")]
431 pub r#in: ::prost::alloc::vec::Vec<i64>,
432 #[prost(sint64, repeated, packed = "false", tag = "7")]
435 pub not_in: ::prost::alloc::vec::Vec<i64>,
436 #[prost(bool, optional, tag = "8")]
439 pub ignore_empty: ::core::option::Option<bool>,
440}
441impl ::prost::Name for SInt64Rules {
442 const NAME: &'static str = "SInt64Rules";
443 const PACKAGE: &'static str = "validate";
444 fn full_name() -> ::prost::alloc::string::String {
445 "validate.SInt64Rules".into()
446 }
447 fn type_url() -> ::prost::alloc::string::String {
448 "/validate.SInt64Rules".into()
449 }
450}
451#[derive(Clone, PartialEq, ::prost::Message)]
453pub struct Fixed32Rules {
454 #[prost(fixed32, optional, tag = "1")]
456 pub r#const: ::core::option::Option<u32>,
457 #[prost(fixed32, optional, tag = "2")]
460 pub lt: ::core::option::Option<u32>,
461 #[prost(fixed32, optional, tag = "3")]
464 pub lte: ::core::option::Option<u32>,
465 #[prost(fixed32, optional, tag = "4")]
469 pub gt: ::core::option::Option<u32>,
470 #[prost(fixed32, optional, tag = "5")]
474 pub gte: ::core::option::Option<u32>,
475 #[prost(fixed32, repeated, packed = "false", tag = "6")]
478 pub r#in: ::prost::alloc::vec::Vec<u32>,
479 #[prost(fixed32, repeated, packed = "false", tag = "7")]
482 pub not_in: ::prost::alloc::vec::Vec<u32>,
483 #[prost(bool, optional, tag = "8")]
486 pub ignore_empty: ::core::option::Option<bool>,
487}
488impl ::prost::Name for Fixed32Rules {
489 const NAME: &'static str = "Fixed32Rules";
490 const PACKAGE: &'static str = "validate";
491 fn full_name() -> ::prost::alloc::string::String {
492 "validate.Fixed32Rules".into()
493 }
494 fn type_url() -> ::prost::alloc::string::String {
495 "/validate.Fixed32Rules".into()
496 }
497}
498#[derive(Clone, PartialEq, ::prost::Message)]
500pub struct Fixed64Rules {
501 #[prost(fixed64, optional, tag = "1")]
503 pub r#const: ::core::option::Option<u64>,
504 #[prost(fixed64, optional, tag = "2")]
507 pub lt: ::core::option::Option<u64>,
508 #[prost(fixed64, optional, tag = "3")]
511 pub lte: ::core::option::Option<u64>,
512 #[prost(fixed64, optional, tag = "4")]
516 pub gt: ::core::option::Option<u64>,
517 #[prost(fixed64, optional, tag = "5")]
521 pub gte: ::core::option::Option<u64>,
522 #[prost(fixed64, repeated, packed = "false", tag = "6")]
525 pub r#in: ::prost::alloc::vec::Vec<u64>,
526 #[prost(fixed64, repeated, packed = "false", tag = "7")]
529 pub not_in: ::prost::alloc::vec::Vec<u64>,
530 #[prost(bool, optional, tag = "8")]
533 pub ignore_empty: ::core::option::Option<bool>,
534}
535impl ::prost::Name for Fixed64Rules {
536 const NAME: &'static str = "Fixed64Rules";
537 const PACKAGE: &'static str = "validate";
538 fn full_name() -> ::prost::alloc::string::String {
539 "validate.Fixed64Rules".into()
540 }
541 fn type_url() -> ::prost::alloc::string::String {
542 "/validate.Fixed64Rules".into()
543 }
544}
545#[derive(Clone, PartialEq, ::prost::Message)]
547pub struct SFixed32Rules {
548 #[prost(sfixed32, optional, tag = "1")]
550 pub r#const: ::core::option::Option<i32>,
551 #[prost(sfixed32, optional, tag = "2")]
554 pub lt: ::core::option::Option<i32>,
555 #[prost(sfixed32, optional, tag = "3")]
558 pub lte: ::core::option::Option<i32>,
559 #[prost(sfixed32, optional, tag = "4")]
563 pub gt: ::core::option::Option<i32>,
564 #[prost(sfixed32, optional, tag = "5")]
568 pub gte: ::core::option::Option<i32>,
569 #[prost(sfixed32, repeated, packed = "false", tag = "6")]
572 pub r#in: ::prost::alloc::vec::Vec<i32>,
573 #[prost(sfixed32, repeated, packed = "false", tag = "7")]
576 pub not_in: ::prost::alloc::vec::Vec<i32>,
577 #[prost(bool, optional, tag = "8")]
580 pub ignore_empty: ::core::option::Option<bool>,
581}
582impl ::prost::Name for SFixed32Rules {
583 const NAME: &'static str = "SFixed32Rules";
584 const PACKAGE: &'static str = "validate";
585 fn full_name() -> ::prost::alloc::string::String {
586 "validate.SFixed32Rules".into()
587 }
588 fn type_url() -> ::prost::alloc::string::String {
589 "/validate.SFixed32Rules".into()
590 }
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct SFixed64Rules {
595 #[prost(sfixed64, optional, tag = "1")]
597 pub r#const: ::core::option::Option<i64>,
598 #[prost(sfixed64, optional, tag = "2")]
601 pub lt: ::core::option::Option<i64>,
602 #[prost(sfixed64, optional, tag = "3")]
605 pub lte: ::core::option::Option<i64>,
606 #[prost(sfixed64, optional, tag = "4")]
610 pub gt: ::core::option::Option<i64>,
611 #[prost(sfixed64, optional, tag = "5")]
615 pub gte: ::core::option::Option<i64>,
616 #[prost(sfixed64, repeated, packed = "false", tag = "6")]
619 pub r#in: ::prost::alloc::vec::Vec<i64>,
620 #[prost(sfixed64, repeated, packed = "false", tag = "7")]
623 pub not_in: ::prost::alloc::vec::Vec<i64>,
624 #[prost(bool, optional, tag = "8")]
627 pub ignore_empty: ::core::option::Option<bool>,
628}
629impl ::prost::Name for SFixed64Rules {
630 const NAME: &'static str = "SFixed64Rules";
631 const PACKAGE: &'static str = "validate";
632 fn full_name() -> ::prost::alloc::string::String {
633 "validate.SFixed64Rules".into()
634 }
635 fn type_url() -> ::prost::alloc::string::String {
636 "/validate.SFixed64Rules".into()
637 }
638}
639#[derive(Clone, Copy, PartialEq, ::prost::Message)]
641pub struct BoolRules {
642 #[prost(bool, optional, tag = "1")]
644 pub r#const: ::core::option::Option<bool>,
645}
646impl ::prost::Name for BoolRules {
647 const NAME: &'static str = "BoolRules";
648 const PACKAGE: &'static str = "validate";
649 fn full_name() -> ::prost::alloc::string::String {
650 "validate.BoolRules".into()
651 }
652 fn type_url() -> ::prost::alloc::string::String {
653 "/validate.BoolRules".into()
654 }
655}
656#[derive(Clone, PartialEq, ::prost::Message)]
658pub struct StringRules {
659 #[prost(string, optional, tag = "1")]
661 pub r#const: ::core::option::Option<::prost::alloc::string::String>,
662 #[prost(uint64, optional, tag = "19")]
666 pub len: ::core::option::Option<u64>,
667 #[prost(uint64, optional, tag = "2")]
671 pub min_len: ::core::option::Option<u64>,
672 #[prost(uint64, optional, tag = "3")]
676 pub max_len: ::core::option::Option<u64>,
677 #[prost(uint64, optional, tag = "20")]
679 pub len_bytes: ::core::option::Option<u64>,
680 #[prost(uint64, optional, tag = "4")]
683 pub min_bytes: ::core::option::Option<u64>,
684 #[prost(uint64, optional, tag = "5")]
687 pub max_bytes: ::core::option::Option<u64>,
688 #[prost(string, optional, tag = "6")]
692 pub pattern: ::core::option::Option<::prost::alloc::string::String>,
693 #[prost(string, optional, tag = "7")]
696 pub prefix: ::core::option::Option<::prost::alloc::string::String>,
697 #[prost(string, optional, tag = "8")]
700 pub suffix: ::core::option::Option<::prost::alloc::string::String>,
701 #[prost(string, optional, tag = "9")]
704 pub contains: ::core::option::Option<::prost::alloc::string::String>,
705 #[prost(string, optional, tag = "23")]
708 pub not_contains: ::core::option::Option<::prost::alloc::string::String>,
709 #[prost(string, repeated, tag = "10")]
712 pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
713 #[prost(string, repeated, tag = "11")]
716 pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
717 #[prost(bool, optional, tag = "25", default = "true")]
723 pub strict: ::core::option::Option<bool>,
724 #[prost(bool, optional, tag = "26")]
727 pub ignore_empty: ::core::option::Option<bool>,
728 #[prost(
731 oneof = "string_rules::WellKnown",
732 tags = "12, 13, 14, 15, 16, 17, 18, 21, 22, 24"
733 )]
734 pub well_known: ::core::option::Option<string_rules::WellKnown>,
735}
736pub mod string_rules {
738 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
741 pub enum WellKnown {
742 #[prost(bool, tag = "12")]
745 Email(bool),
746 #[prost(bool, tag = "13")]
750 Hostname(bool),
751 #[prost(bool, tag = "14")]
754 Ip(bool),
755 #[prost(bool, tag = "15")]
757 Ipv4(bool),
758 #[prost(bool, tag = "16")]
761 Ipv6(bool),
762 #[prost(bool, tag = "17")]
765 Uri(bool),
766 #[prost(bool, tag = "18")]
769 UriRef(bool),
770 #[prost(bool, tag = "21")]
774 Address(bool),
775 #[prost(bool, tag = "22")]
778 Uuid(bool),
779 #[prost(enumeration = "super::KnownRegex", tag = "24")]
781 WellKnownRegex(i32),
782 }
783}
784impl ::prost::Name for StringRules {
785 const NAME: &'static str = "StringRules";
786 const PACKAGE: &'static str = "validate";
787 fn full_name() -> ::prost::alloc::string::String {
788 "validate.StringRules".into()
789 }
790 fn type_url() -> ::prost::alloc::string::String {
791 "/validate.StringRules".into()
792 }
793}
794#[derive(Clone, PartialEq, ::prost::Message)]
796pub struct BytesRules {
797 #[prost(bytes = "vec", optional, tag = "1")]
799 pub r#const: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
800 #[prost(uint64, optional, tag = "13")]
802 pub len: ::core::option::Option<u64>,
803 #[prost(uint64, optional, tag = "2")]
806 pub min_len: ::core::option::Option<u64>,
807 #[prost(uint64, optional, tag = "3")]
810 pub max_len: ::core::option::Option<u64>,
811 #[prost(string, optional, tag = "4")]
815 pub pattern: ::core::option::Option<::prost::alloc::string::String>,
816 #[prost(bytes = "vec", optional, tag = "5")]
819 pub prefix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
820 #[prost(bytes = "vec", optional, tag = "6")]
823 pub suffix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
824 #[prost(bytes = "vec", optional, tag = "7")]
827 pub contains: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
828 #[prost(bytes = "vec", repeated, tag = "8")]
831 pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
832 #[prost(bytes = "vec", repeated, tag = "9")]
835 pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
836 #[prost(bool, optional, tag = "14")]
839 pub ignore_empty: ::core::option::Option<bool>,
840 #[prost(oneof = "bytes_rules::WellKnown", tags = "10, 11, 12")]
843 pub well_known: ::core::option::Option<bytes_rules::WellKnown>,
844}
845pub mod bytes_rules {
847 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
850 pub enum WellKnown {
851 #[prost(bool, tag = "10")]
854 Ip(bool),
855 #[prost(bool, tag = "11")]
858 Ipv4(bool),
859 #[prost(bool, tag = "12")]
862 Ipv6(bool),
863 }
864}
865impl ::prost::Name for BytesRules {
866 const NAME: &'static str = "BytesRules";
867 const PACKAGE: &'static str = "validate";
868 fn full_name() -> ::prost::alloc::string::String {
869 "validate.BytesRules".into()
870 }
871 fn type_url() -> ::prost::alloc::string::String {
872 "/validate.BytesRules".into()
873 }
874}
875#[derive(Clone, PartialEq, ::prost::Message)]
877pub struct EnumRules {
878 #[prost(int32, optional, tag = "1")]
880 pub r#const: ::core::option::Option<i32>,
881 #[prost(bool, optional, tag = "2")]
884 pub defined_only: ::core::option::Option<bool>,
885 #[prost(int32, repeated, packed = "false", tag = "3")]
888 pub r#in: ::prost::alloc::vec::Vec<i32>,
889 #[prost(int32, repeated, packed = "false", tag = "4")]
892 pub not_in: ::prost::alloc::vec::Vec<i32>,
893}
894impl ::prost::Name for EnumRules {
895 const NAME: &'static str = "EnumRules";
896 const PACKAGE: &'static str = "validate";
897 fn full_name() -> ::prost::alloc::string::String {
898 "validate.EnumRules".into()
899 }
900 fn type_url() -> ::prost::alloc::string::String {
901 "/validate.EnumRules".into()
902 }
903}
904#[derive(Clone, Copy, PartialEq, ::prost::Message)]
907pub struct MessageRules {
908 #[prost(bool, optional, tag = "1")]
911 pub skip: ::core::option::Option<bool>,
912 #[prost(bool, optional, tag = "2")]
914 pub required: ::core::option::Option<bool>,
915}
916impl ::prost::Name for MessageRules {
917 const NAME: &'static str = "MessageRules";
918 const PACKAGE: &'static str = "validate";
919 fn full_name() -> ::prost::alloc::string::String {
920 "validate.MessageRules".into()
921 }
922 fn type_url() -> ::prost::alloc::string::String {
923 "/validate.MessageRules".into()
924 }
925}
926#[derive(Clone, PartialEq, ::prost::Message)]
928pub struct RepeatedRules {
929 #[prost(uint64, optional, tag = "1")]
932 pub min_items: ::core::option::Option<u64>,
933 #[prost(uint64, optional, tag = "2")]
936 pub max_items: ::core::option::Option<u64>,
937 #[prost(bool, optional, tag = "3")]
941 pub unique: ::core::option::Option<bool>,
942 #[prost(message, optional, boxed, tag = "4")]
946 pub items: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
947 #[prost(bool, optional, tag = "5")]
950 pub ignore_empty: ::core::option::Option<bool>,
951}
952impl ::prost::Name for RepeatedRules {
953 const NAME: &'static str = "RepeatedRules";
954 const PACKAGE: &'static str = "validate";
955 fn full_name() -> ::prost::alloc::string::String {
956 "validate.RepeatedRules".into()
957 }
958 fn type_url() -> ::prost::alloc::string::String {
959 "/validate.RepeatedRules".into()
960 }
961}
962#[derive(Clone, PartialEq, ::prost::Message)]
964pub struct MapRules {
965 #[prost(uint64, optional, tag = "1")]
968 pub min_pairs: ::core::option::Option<u64>,
969 #[prost(uint64, optional, tag = "2")]
972 pub max_pairs: ::core::option::Option<u64>,
973 #[prost(bool, optional, tag = "3")]
976 pub no_sparse: ::core::option::Option<bool>,
977 #[prost(message, optional, boxed, tag = "4")]
979 pub keys: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
980 #[prost(message, optional, boxed, tag = "5")]
984 pub values: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
985 #[prost(bool, optional, tag = "6")]
988 pub ignore_empty: ::core::option::Option<bool>,
989}
990impl ::prost::Name for MapRules {
991 const NAME: &'static str = "MapRules";
992 const PACKAGE: &'static str = "validate";
993 fn full_name() -> ::prost::alloc::string::String {
994 "validate.MapRules".into()
995 }
996 fn type_url() -> ::prost::alloc::string::String {
997 "/validate.MapRules".into()
998 }
999}
1000#[derive(Clone, PartialEq, ::prost::Message)]
1003pub struct AnyRules {
1004 #[prost(bool, optional, tag = "1")]
1006 pub required: ::core::option::Option<bool>,
1007 #[prost(string, repeated, tag = "2")]
1010 pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1011 #[prost(string, repeated, tag = "3")]
1014 pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1015}
1016impl ::prost::Name for AnyRules {
1017 const NAME: &'static str = "AnyRules";
1018 const PACKAGE: &'static str = "validate";
1019 fn full_name() -> ::prost::alloc::string::String {
1020 "validate.AnyRules".into()
1021 }
1022 fn type_url() -> ::prost::alloc::string::String {
1023 "/validate.AnyRules".into()
1024 }
1025}
1026#[derive(Clone, PartialEq, ::prost::Message)]
1029pub struct DurationRules {
1030 #[prost(bool, optional, tag = "1")]
1032 pub required: ::core::option::Option<bool>,
1033 #[prost(message, optional, tag = "2")]
1035 pub r#const: ::core::option::Option<super::google::protobuf::Duration>,
1036 #[prost(message, optional, tag = "3")]
1039 pub lt: ::core::option::Option<super::google::protobuf::Duration>,
1040 #[prost(message, optional, tag = "4")]
1043 pub lte: ::core::option::Option<super::google::protobuf::Duration>,
1044 #[prost(message, optional, tag = "5")]
1047 pub gt: ::core::option::Option<super::google::protobuf::Duration>,
1048 #[prost(message, optional, tag = "6")]
1051 pub gte: ::core::option::Option<super::google::protobuf::Duration>,
1052 #[prost(message, repeated, tag = "7")]
1055 pub r#in: ::prost::alloc::vec::Vec<super::google::protobuf::Duration>,
1056 #[prost(message, repeated, tag = "8")]
1059 pub not_in: ::prost::alloc::vec::Vec<super::google::protobuf::Duration>,
1060}
1061impl ::prost::Name for DurationRules {
1062 const NAME: &'static str = "DurationRules";
1063 const PACKAGE: &'static str = "validate";
1064 fn full_name() -> ::prost::alloc::string::String {
1065 "validate.DurationRules".into()
1066 }
1067 fn type_url() -> ::prost::alloc::string::String {
1068 "/validate.DurationRules".into()
1069 }
1070}
1071#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1074pub struct TimestampRules {
1075 #[prost(bool, optional, tag = "1")]
1077 pub required: ::core::option::Option<bool>,
1078 #[prost(message, optional, tag = "2")]
1080 pub r#const: ::core::option::Option<super::google::protobuf::Timestamp>,
1081 #[prost(message, optional, tag = "3")]
1084 pub lt: ::core::option::Option<super::google::protobuf::Timestamp>,
1085 #[prost(message, optional, tag = "4")]
1088 pub lte: ::core::option::Option<super::google::protobuf::Timestamp>,
1089 #[prost(message, optional, tag = "5")]
1092 pub gt: ::core::option::Option<super::google::protobuf::Timestamp>,
1093 #[prost(message, optional, tag = "6")]
1096 pub gte: ::core::option::Option<super::google::protobuf::Timestamp>,
1097 #[prost(bool, optional, tag = "7")]
1100 pub lt_now: ::core::option::Option<bool>,
1101 #[prost(bool, optional, tag = "8")]
1104 pub gt_now: ::core::option::Option<bool>,
1105 #[prost(message, optional, tag = "9")]
1109 pub within: ::core::option::Option<super::google::protobuf::Duration>,
1110}
1111impl ::prost::Name for TimestampRules {
1112 const NAME: &'static str = "TimestampRules";
1113 const PACKAGE: &'static str = "validate";
1114 fn full_name() -> ::prost::alloc::string::String {
1115 "validate.TimestampRules".into()
1116 }
1117 fn type_url() -> ::prost::alloc::string::String {
1118 "/validate.TimestampRules".into()
1119 }
1120}
1121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1123#[repr(i32)]
1124pub enum KnownRegex {
1125 Unknown = 0,
1126 HttpHeaderName = 1,
1128 HttpHeaderValue = 2,
1130}
1131impl KnownRegex {
1132 pub fn as_str_name(&self) -> &'static str {
1137 match self {
1138 Self::Unknown => "UNKNOWN",
1139 Self::HttpHeaderName => "HTTP_HEADER_NAME",
1140 Self::HttpHeaderValue => "HTTP_HEADER_VALUE",
1141 }
1142 }
1143 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1145 match value {
1146 "UNKNOWN" => Some(Self::Unknown),
1147 "HTTP_HEADER_NAME" => Some(Self::HttpHeaderName),
1148 "HTTP_HEADER_VALUE" => Some(Self::HttpHeaderValue),
1149 _ => None,
1150 }
1151 }
1152}