quilkin_proto/generated/
validate.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct FieldRules {
4    #[prost(message, optional, tag = "17")]
5    pub message: ::core::option::Option<MessageRules>,
6    #[prost(
7        oneof = "field_rules::Type",
8        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22"
9    )]
10    pub r#type: ::core::option::Option<field_rules::Type>,
11}
12/// Nested message and enum types in `FieldRules`.
13pub mod field_rules {
14    #[derive(Clone, PartialEq, ::prost::Oneof)]
15    pub enum Type {
16        #[prost(message, tag = "1")]
17        Float(super::FloatRules),
18        #[prost(message, tag = "2")]
19        Double(super::DoubleRules),
20        #[prost(message, tag = "3")]
21        Int32(super::Int32Rules),
22        #[prost(message, tag = "4")]
23        Int64(super::Int64Rules),
24        #[prost(message, tag = "5")]
25        Uint32(super::UInt32Rules),
26        #[prost(message, tag = "6")]
27        Uint64(super::UInt64Rules),
28        #[prost(message, tag = "7")]
29        Sint32(super::SInt32Rules),
30        #[prost(message, tag = "8")]
31        Sint64(super::SInt64Rules),
32        #[prost(message, tag = "9")]
33        Fixed32(super::Fixed32Rules),
34        #[prost(message, tag = "10")]
35        Fixed64(super::Fixed64Rules),
36        #[prost(message, tag = "11")]
37        Sfixed32(super::SFixed32Rules),
38        #[prost(message, tag = "12")]
39        Sfixed64(super::SFixed64Rules),
40        #[prost(message, tag = "13")]
41        Bool(super::BoolRules),
42        #[prost(message, tag = "14")]
43        String(super::StringRules),
44        #[prost(message, tag = "15")]
45        Bytes(super::BytesRules),
46        #[prost(message, tag = "16")]
47        Enum(super::EnumRules),
48        #[prost(message, tag = "18")]
49        Repeated(::prost::alloc::boxed::Box<super::RepeatedRules>),
50        #[prost(message, tag = "19")]
51        Map(::prost::alloc::boxed::Box<super::MapRules>),
52        #[prost(message, tag = "20")]
53        Any(super::AnyRules),
54        #[prost(message, tag = "21")]
55        Duration(super::DurationRules),
56        #[prost(message, tag = "22")]
57        Timestamp(super::TimestampRules),
58    }
59}
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct FloatRules {
62    #[prost(float, optional, tag = "1")]
63    pub r#const: ::core::option::Option<f32>,
64    #[prost(float, optional, tag = "2")]
65    pub lt: ::core::option::Option<f32>,
66    #[prost(float, optional, tag = "3")]
67    pub lte: ::core::option::Option<f32>,
68    #[prost(float, optional, tag = "4")]
69    pub gt: ::core::option::Option<f32>,
70    #[prost(float, optional, tag = "5")]
71    pub gte: ::core::option::Option<f32>,
72    #[prost(float, repeated, packed = "false", tag = "6")]
73    pub r#in: ::prost::alloc::vec::Vec<f32>,
74    #[prost(float, repeated, packed = "false", tag = "7")]
75    pub not_in: ::prost::alloc::vec::Vec<f32>,
76    #[prost(bool, optional, tag = "8")]
77    pub ignore_empty: ::core::option::Option<bool>,
78}
79#[derive(Clone, PartialEq, ::prost::Message)]
80pub struct DoubleRules {
81    #[prost(double, optional, tag = "1")]
82    pub r#const: ::core::option::Option<f64>,
83    #[prost(double, optional, tag = "2")]
84    pub lt: ::core::option::Option<f64>,
85    #[prost(double, optional, tag = "3")]
86    pub lte: ::core::option::Option<f64>,
87    #[prost(double, optional, tag = "4")]
88    pub gt: ::core::option::Option<f64>,
89    #[prost(double, optional, tag = "5")]
90    pub gte: ::core::option::Option<f64>,
91    #[prost(double, repeated, packed = "false", tag = "6")]
92    pub r#in: ::prost::alloc::vec::Vec<f64>,
93    #[prost(double, repeated, packed = "false", tag = "7")]
94    pub not_in: ::prost::alloc::vec::Vec<f64>,
95    #[prost(bool, optional, tag = "8")]
96    pub ignore_empty: ::core::option::Option<bool>,
97}
98#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
99pub struct Int32Rules {
100    #[prost(int32, optional, tag = "1")]
101    pub r#const: ::core::option::Option<i32>,
102    #[prost(int32, optional, tag = "2")]
103    pub lt: ::core::option::Option<i32>,
104    #[prost(int32, optional, tag = "3")]
105    pub lte: ::core::option::Option<i32>,
106    #[prost(int32, optional, tag = "4")]
107    pub gt: ::core::option::Option<i32>,
108    #[prost(int32, optional, tag = "5")]
109    pub gte: ::core::option::Option<i32>,
110    #[prost(int32, repeated, packed = "false", tag = "6")]
111    pub r#in: ::prost::alloc::vec::Vec<i32>,
112    #[prost(int32, repeated, packed = "false", tag = "7")]
113    pub not_in: ::prost::alloc::vec::Vec<i32>,
114    #[prost(bool, optional, tag = "8")]
115    pub ignore_empty: ::core::option::Option<bool>,
116}
117#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
118pub struct Int64Rules {
119    #[prost(int64, optional, tag = "1")]
120    pub r#const: ::core::option::Option<i64>,
121    #[prost(int64, optional, tag = "2")]
122    pub lt: ::core::option::Option<i64>,
123    #[prost(int64, optional, tag = "3")]
124    pub lte: ::core::option::Option<i64>,
125    #[prost(int64, optional, tag = "4")]
126    pub gt: ::core::option::Option<i64>,
127    #[prost(int64, optional, tag = "5")]
128    pub gte: ::core::option::Option<i64>,
129    #[prost(int64, repeated, packed = "false", tag = "6")]
130    pub r#in: ::prost::alloc::vec::Vec<i64>,
131    #[prost(int64, repeated, packed = "false", tag = "7")]
132    pub not_in: ::prost::alloc::vec::Vec<i64>,
133    #[prost(bool, optional, tag = "8")]
134    pub ignore_empty: ::core::option::Option<bool>,
135}
136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
137pub struct UInt32Rules {
138    #[prost(uint32, optional, tag = "1")]
139    pub r#const: ::core::option::Option<u32>,
140    #[prost(uint32, optional, tag = "2")]
141    pub lt: ::core::option::Option<u32>,
142    #[prost(uint32, optional, tag = "3")]
143    pub lte: ::core::option::Option<u32>,
144    #[prost(uint32, optional, tag = "4")]
145    pub gt: ::core::option::Option<u32>,
146    #[prost(uint32, optional, tag = "5")]
147    pub gte: ::core::option::Option<u32>,
148    #[prost(uint32, repeated, packed = "false", tag = "6")]
149    pub r#in: ::prost::alloc::vec::Vec<u32>,
150    #[prost(uint32, repeated, packed = "false", tag = "7")]
151    pub not_in: ::prost::alloc::vec::Vec<u32>,
152    #[prost(bool, optional, tag = "8")]
153    pub ignore_empty: ::core::option::Option<bool>,
154}
155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
156pub struct UInt64Rules {
157    #[prost(uint64, optional, tag = "1")]
158    pub r#const: ::core::option::Option<u64>,
159    #[prost(uint64, optional, tag = "2")]
160    pub lt: ::core::option::Option<u64>,
161    #[prost(uint64, optional, tag = "3")]
162    pub lte: ::core::option::Option<u64>,
163    #[prost(uint64, optional, tag = "4")]
164    pub gt: ::core::option::Option<u64>,
165    #[prost(uint64, optional, tag = "5")]
166    pub gte: ::core::option::Option<u64>,
167    #[prost(uint64, repeated, packed = "false", tag = "6")]
168    pub r#in: ::prost::alloc::vec::Vec<u64>,
169    #[prost(uint64, repeated, packed = "false", tag = "7")]
170    pub not_in: ::prost::alloc::vec::Vec<u64>,
171    #[prost(bool, optional, tag = "8")]
172    pub ignore_empty: ::core::option::Option<bool>,
173}
174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
175pub struct SInt32Rules {
176    #[prost(sint32, optional, tag = "1")]
177    pub r#const: ::core::option::Option<i32>,
178    #[prost(sint32, optional, tag = "2")]
179    pub lt: ::core::option::Option<i32>,
180    #[prost(sint32, optional, tag = "3")]
181    pub lte: ::core::option::Option<i32>,
182    #[prost(sint32, optional, tag = "4")]
183    pub gt: ::core::option::Option<i32>,
184    #[prost(sint32, optional, tag = "5")]
185    pub gte: ::core::option::Option<i32>,
186    #[prost(sint32, repeated, packed = "false", tag = "6")]
187    pub r#in: ::prost::alloc::vec::Vec<i32>,
188    #[prost(sint32, repeated, packed = "false", tag = "7")]
189    pub not_in: ::prost::alloc::vec::Vec<i32>,
190    #[prost(bool, optional, tag = "8")]
191    pub ignore_empty: ::core::option::Option<bool>,
192}
193#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
194pub struct SInt64Rules {
195    #[prost(sint64, optional, tag = "1")]
196    pub r#const: ::core::option::Option<i64>,
197    #[prost(sint64, optional, tag = "2")]
198    pub lt: ::core::option::Option<i64>,
199    #[prost(sint64, optional, tag = "3")]
200    pub lte: ::core::option::Option<i64>,
201    #[prost(sint64, optional, tag = "4")]
202    pub gt: ::core::option::Option<i64>,
203    #[prost(sint64, optional, tag = "5")]
204    pub gte: ::core::option::Option<i64>,
205    #[prost(sint64, repeated, packed = "false", tag = "6")]
206    pub r#in: ::prost::alloc::vec::Vec<i64>,
207    #[prost(sint64, repeated, packed = "false", tag = "7")]
208    pub not_in: ::prost::alloc::vec::Vec<i64>,
209    #[prost(bool, optional, tag = "8")]
210    pub ignore_empty: ::core::option::Option<bool>,
211}
212#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
213pub struct Fixed32Rules {
214    #[prost(fixed32, optional, tag = "1")]
215    pub r#const: ::core::option::Option<u32>,
216    #[prost(fixed32, optional, tag = "2")]
217    pub lt: ::core::option::Option<u32>,
218    #[prost(fixed32, optional, tag = "3")]
219    pub lte: ::core::option::Option<u32>,
220    #[prost(fixed32, optional, tag = "4")]
221    pub gt: ::core::option::Option<u32>,
222    #[prost(fixed32, optional, tag = "5")]
223    pub gte: ::core::option::Option<u32>,
224    #[prost(fixed32, repeated, packed = "false", tag = "6")]
225    pub r#in: ::prost::alloc::vec::Vec<u32>,
226    #[prost(fixed32, repeated, packed = "false", tag = "7")]
227    pub not_in: ::prost::alloc::vec::Vec<u32>,
228    #[prost(bool, optional, tag = "8")]
229    pub ignore_empty: ::core::option::Option<bool>,
230}
231#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
232pub struct Fixed64Rules {
233    #[prost(fixed64, optional, tag = "1")]
234    pub r#const: ::core::option::Option<u64>,
235    #[prost(fixed64, optional, tag = "2")]
236    pub lt: ::core::option::Option<u64>,
237    #[prost(fixed64, optional, tag = "3")]
238    pub lte: ::core::option::Option<u64>,
239    #[prost(fixed64, optional, tag = "4")]
240    pub gt: ::core::option::Option<u64>,
241    #[prost(fixed64, optional, tag = "5")]
242    pub gte: ::core::option::Option<u64>,
243    #[prost(fixed64, repeated, packed = "false", tag = "6")]
244    pub r#in: ::prost::alloc::vec::Vec<u64>,
245    #[prost(fixed64, repeated, packed = "false", tag = "7")]
246    pub not_in: ::prost::alloc::vec::Vec<u64>,
247    #[prost(bool, optional, tag = "8")]
248    pub ignore_empty: ::core::option::Option<bool>,
249}
250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
251pub struct SFixed32Rules {
252    #[prost(sfixed32, optional, tag = "1")]
253    pub r#const: ::core::option::Option<i32>,
254    #[prost(sfixed32, optional, tag = "2")]
255    pub lt: ::core::option::Option<i32>,
256    #[prost(sfixed32, optional, tag = "3")]
257    pub lte: ::core::option::Option<i32>,
258    #[prost(sfixed32, optional, tag = "4")]
259    pub gt: ::core::option::Option<i32>,
260    #[prost(sfixed32, optional, tag = "5")]
261    pub gte: ::core::option::Option<i32>,
262    #[prost(sfixed32, repeated, packed = "false", tag = "6")]
263    pub r#in: ::prost::alloc::vec::Vec<i32>,
264    #[prost(sfixed32, repeated, packed = "false", tag = "7")]
265    pub not_in: ::prost::alloc::vec::Vec<i32>,
266    #[prost(bool, optional, tag = "8")]
267    pub ignore_empty: ::core::option::Option<bool>,
268}
269#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
270pub struct SFixed64Rules {
271    #[prost(sfixed64, optional, tag = "1")]
272    pub r#const: ::core::option::Option<i64>,
273    #[prost(sfixed64, optional, tag = "2")]
274    pub lt: ::core::option::Option<i64>,
275    #[prost(sfixed64, optional, tag = "3")]
276    pub lte: ::core::option::Option<i64>,
277    #[prost(sfixed64, optional, tag = "4")]
278    pub gt: ::core::option::Option<i64>,
279    #[prost(sfixed64, optional, tag = "5")]
280    pub gte: ::core::option::Option<i64>,
281    #[prost(sfixed64, repeated, packed = "false", tag = "6")]
282    pub r#in: ::prost::alloc::vec::Vec<i64>,
283    #[prost(sfixed64, repeated, packed = "false", tag = "7")]
284    pub not_in: ::prost::alloc::vec::Vec<i64>,
285    #[prost(bool, optional, tag = "8")]
286    pub ignore_empty: ::core::option::Option<bool>,
287}
288#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
289pub struct BoolRules {
290    #[prost(bool, optional, tag = "1")]
291    pub r#const: ::core::option::Option<bool>,
292}
293#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
294pub struct StringRules {
295    #[prost(string, optional, tag = "1")]
296    pub r#const: ::core::option::Option<::prost::alloc::string::String>,
297    #[prost(uint64, optional, tag = "19")]
298    pub len: ::core::option::Option<u64>,
299    #[prost(uint64, optional, tag = "2")]
300    pub min_len: ::core::option::Option<u64>,
301    #[prost(uint64, optional, tag = "3")]
302    pub max_len: ::core::option::Option<u64>,
303    #[prost(uint64, optional, tag = "20")]
304    pub len_bytes: ::core::option::Option<u64>,
305    #[prost(uint64, optional, tag = "4")]
306    pub min_bytes: ::core::option::Option<u64>,
307    #[prost(uint64, optional, tag = "5")]
308    pub max_bytes: ::core::option::Option<u64>,
309    #[prost(string, optional, tag = "6")]
310    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
311    #[prost(string, optional, tag = "7")]
312    pub prefix: ::core::option::Option<::prost::alloc::string::String>,
313    #[prost(string, optional, tag = "8")]
314    pub suffix: ::core::option::Option<::prost::alloc::string::String>,
315    #[prost(string, optional, tag = "9")]
316    pub contains: ::core::option::Option<::prost::alloc::string::String>,
317    #[prost(string, optional, tag = "23")]
318    pub not_contains: ::core::option::Option<::prost::alloc::string::String>,
319    #[prost(string, repeated, tag = "10")]
320    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
321    #[prost(string, repeated, tag = "11")]
322    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
323    #[prost(bool, optional, tag = "25", default = "true")]
324    pub strict: ::core::option::Option<bool>,
325    #[prost(bool, optional, tag = "26")]
326    pub ignore_empty: ::core::option::Option<bool>,
327    #[prost(
328        oneof = "string_rules::WellKnown",
329        tags = "12, 13, 14, 15, 16, 17, 18, 21, 22, 24"
330    )]
331    pub well_known: ::core::option::Option<string_rules::WellKnown>,
332}
333/// Nested message and enum types in `StringRules`.
334pub mod string_rules {
335    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
336    pub enum WellKnown {
337        #[prost(bool, tag = "12")]
338        Email(bool),
339        #[prost(bool, tag = "13")]
340        Hostname(bool),
341        #[prost(bool, tag = "14")]
342        Ip(bool),
343        #[prost(bool, tag = "15")]
344        Ipv4(bool),
345        #[prost(bool, tag = "16")]
346        Ipv6(bool),
347        #[prost(bool, tag = "17")]
348        Uri(bool),
349        #[prost(bool, tag = "18")]
350        UriRef(bool),
351        #[prost(bool, tag = "21")]
352        Address(bool),
353        #[prost(bool, tag = "22")]
354        Uuid(bool),
355        #[prost(enumeration = "super::KnownRegex", tag = "24")]
356        WellKnownRegex(i32),
357    }
358}
359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
360pub struct BytesRules {
361    #[prost(bytes = "vec", optional, tag = "1")]
362    pub r#const: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
363    #[prost(uint64, optional, tag = "13")]
364    pub len: ::core::option::Option<u64>,
365    #[prost(uint64, optional, tag = "2")]
366    pub min_len: ::core::option::Option<u64>,
367    #[prost(uint64, optional, tag = "3")]
368    pub max_len: ::core::option::Option<u64>,
369    #[prost(string, optional, tag = "4")]
370    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
371    #[prost(bytes = "vec", optional, tag = "5")]
372    pub prefix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
373    #[prost(bytes = "vec", optional, tag = "6")]
374    pub suffix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
375    #[prost(bytes = "vec", optional, tag = "7")]
376    pub contains: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
377    #[prost(bytes = "vec", repeated, tag = "8")]
378    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
379    #[prost(bytes = "vec", repeated, tag = "9")]
380    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
381    #[prost(bool, optional, tag = "14")]
382    pub ignore_empty: ::core::option::Option<bool>,
383    #[prost(oneof = "bytes_rules::WellKnown", tags = "10, 11, 12")]
384    pub well_known: ::core::option::Option<bytes_rules::WellKnown>,
385}
386/// Nested message and enum types in `BytesRules`.
387pub mod bytes_rules {
388    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
389    pub enum WellKnown {
390        #[prost(bool, tag = "10")]
391        Ip(bool),
392        #[prost(bool, tag = "11")]
393        Ipv4(bool),
394        #[prost(bool, tag = "12")]
395        Ipv6(bool),
396    }
397}
398#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
399pub struct EnumRules {
400    #[prost(int32, optional, tag = "1")]
401    pub r#const: ::core::option::Option<i32>,
402    #[prost(bool, optional, tag = "2")]
403    pub defined_only: ::core::option::Option<bool>,
404    #[prost(int32, repeated, packed = "false", tag = "3")]
405    pub r#in: ::prost::alloc::vec::Vec<i32>,
406    #[prost(int32, repeated, packed = "false", tag = "4")]
407    pub not_in: ::prost::alloc::vec::Vec<i32>,
408}
409#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
410pub struct MessageRules {
411    #[prost(bool, optional, tag = "1")]
412    pub skip: ::core::option::Option<bool>,
413    #[prost(bool, optional, tag = "2")]
414    pub required: ::core::option::Option<bool>,
415}
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct RepeatedRules {
418    #[prost(uint64, optional, tag = "1")]
419    pub min_items: ::core::option::Option<u64>,
420    #[prost(uint64, optional, tag = "2")]
421    pub max_items: ::core::option::Option<u64>,
422    #[prost(bool, optional, tag = "3")]
423    pub unique: ::core::option::Option<bool>,
424    #[prost(message, optional, boxed, tag = "4")]
425    pub items: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
426    #[prost(bool, optional, tag = "5")]
427    pub ignore_empty: ::core::option::Option<bool>,
428}
429#[derive(Clone, PartialEq, ::prost::Message)]
430pub struct MapRules {
431    #[prost(uint64, optional, tag = "1")]
432    pub min_pairs: ::core::option::Option<u64>,
433    #[prost(uint64, optional, tag = "2")]
434    pub max_pairs: ::core::option::Option<u64>,
435    #[prost(bool, optional, tag = "3")]
436    pub no_sparse: ::core::option::Option<bool>,
437    #[prost(message, optional, boxed, tag = "4")]
438    pub keys: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
439    #[prost(message, optional, boxed, tag = "5")]
440    pub values: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
441    #[prost(bool, optional, tag = "6")]
442    pub ignore_empty: ::core::option::Option<bool>,
443}
444#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
445pub struct AnyRules {
446    #[prost(bool, optional, tag = "1")]
447    pub required: ::core::option::Option<bool>,
448    #[prost(string, repeated, tag = "2")]
449    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
450    #[prost(string, repeated, tag = "3")]
451    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
452}
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct DurationRules {
455    #[prost(bool, optional, tag = "1")]
456    pub required: ::core::option::Option<bool>,
457    #[prost(message, optional, tag = "2")]
458    pub r#const: ::core::option::Option<::prost_types::Duration>,
459    #[prost(message, optional, tag = "3")]
460    pub lt: ::core::option::Option<::prost_types::Duration>,
461    #[prost(message, optional, tag = "4")]
462    pub lte: ::core::option::Option<::prost_types::Duration>,
463    #[prost(message, optional, tag = "5")]
464    pub gt: ::core::option::Option<::prost_types::Duration>,
465    #[prost(message, optional, tag = "6")]
466    pub gte: ::core::option::Option<::prost_types::Duration>,
467    #[prost(message, repeated, tag = "7")]
468    pub r#in: ::prost::alloc::vec::Vec<::prost_types::Duration>,
469    #[prost(message, repeated, tag = "8")]
470    pub not_in: ::prost::alloc::vec::Vec<::prost_types::Duration>,
471}
472#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
473pub struct TimestampRules {
474    #[prost(bool, optional, tag = "1")]
475    pub required: ::core::option::Option<bool>,
476    #[prost(message, optional, tag = "2")]
477    pub r#const: ::core::option::Option<::prost_types::Timestamp>,
478    #[prost(message, optional, tag = "3")]
479    pub lt: ::core::option::Option<::prost_types::Timestamp>,
480    #[prost(message, optional, tag = "4")]
481    pub lte: ::core::option::Option<::prost_types::Timestamp>,
482    #[prost(message, optional, tag = "5")]
483    pub gt: ::core::option::Option<::prost_types::Timestamp>,
484    #[prost(message, optional, tag = "6")]
485    pub gte: ::core::option::Option<::prost_types::Timestamp>,
486    #[prost(bool, optional, tag = "7")]
487    pub lt_now: ::core::option::Option<bool>,
488    #[prost(bool, optional, tag = "8")]
489    pub gt_now: ::core::option::Option<bool>,
490    #[prost(message, optional, tag = "9")]
491    pub within: ::core::option::Option<::prost_types::Duration>,
492}
493#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
494#[repr(i32)]
495pub enum KnownRegex {
496    Unknown = 0,
497    HttpHeaderName = 1,
498    HttpHeaderValue = 2,
499}
500impl KnownRegex {
501    /// String value of the enum field names used in the ProtoBuf definition.
502    ///
503    /// The values are not transformed in any way and thus are considered stable
504    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
505    pub fn as_str_name(&self) -> &'static str {
506        match self {
507            Self::Unknown => "UNKNOWN",
508            Self::HttpHeaderName => "HTTP_HEADER_NAME",
509            Self::HttpHeaderValue => "HTTP_HEADER_VALUE",
510        }
511    }
512    /// Creates an enum from field names used in the ProtoBuf definition.
513    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
514        match value {
515            "UNKNOWN" => Some(Self::Unknown),
516            "HTTP_HEADER_NAME" => Some(Self::HttpHeaderName),
517            "HTTP_HEADER_VALUE" => Some(Self::HttpHeaderValue),
518            _ => None,
519        }
520    }
521}