Skip to main content

nominal_api/proto/
buf.validate.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Rule {
4    #[prost(string, optional, tag = "1")]
5    pub id: ::core::option::Option<::prost::alloc::string::String>,
6    #[prost(string, optional, tag = "2")]
7    pub message: ::core::option::Option<::prost::alloc::string::String>,
8    #[prost(string, optional, tag = "3")]
9    pub expression: ::core::option::Option<::prost::alloc::string::String>,
10}
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct MessageRules {
13    #[prost(string, repeated, tag = "5")]
14    pub cel_expression: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
15    #[prost(message, repeated, tag = "3")]
16    pub cel: ::prost::alloc::vec::Vec<Rule>,
17    #[prost(message, repeated, tag = "4")]
18    pub oneof: ::prost::alloc::vec::Vec<MessageOneofRule>,
19}
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct MessageOneofRule {
22    #[prost(string, repeated, tag = "1")]
23    pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
24    #[prost(bool, optional, tag = "2")]
25    pub required: ::core::option::Option<bool>,
26}
27#[derive(Clone, Copy, PartialEq, ::prost::Message)]
28pub struct OneofRules {
29    #[prost(bool, optional, tag = "1")]
30    pub required: ::core::option::Option<bool>,
31}
32#[derive(Clone, PartialEq, ::prost::Message)]
33pub struct FieldRules {
34    #[prost(string, repeated, tag = "29")]
35    pub cel_expression: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
36    #[prost(message, repeated, tag = "23")]
37    pub cel: ::prost::alloc::vec::Vec<Rule>,
38    #[prost(bool, optional, tag = "25")]
39    pub required: ::core::option::Option<bool>,
40    #[prost(enumeration = "Ignore", optional, tag = "27")]
41    pub ignore: ::core::option::Option<i32>,
42    #[prost(
43        oneof = "field_rules::Type",
44        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 28, 22"
45    )]
46    pub r#type: ::core::option::Option<field_rules::Type>,
47}
48/// Nested message and enum types in `FieldRules`.
49pub mod field_rules {
50    #[derive(Clone, PartialEq, ::prost::Oneof)]
51    pub enum Type {
52        #[prost(message, tag = "1")]
53        Float(super::FloatRules),
54        #[prost(message, tag = "2")]
55        Double(super::DoubleRules),
56        #[prost(message, tag = "3")]
57        Int32(super::Int32Rules),
58        #[prost(message, tag = "4")]
59        Int64(super::Int64Rules),
60        #[prost(message, tag = "5")]
61        Uint32(super::UInt32Rules),
62        #[prost(message, tag = "6")]
63        Uint64(super::UInt64Rules),
64        #[prost(message, tag = "7")]
65        Sint32(super::SInt32Rules),
66        #[prost(message, tag = "8")]
67        Sint64(super::SInt64Rules),
68        #[prost(message, tag = "9")]
69        Fixed32(super::Fixed32Rules),
70        #[prost(message, tag = "10")]
71        Fixed64(super::Fixed64Rules),
72        #[prost(message, tag = "11")]
73        Sfixed32(super::SFixed32Rules),
74        #[prost(message, tag = "12")]
75        Sfixed64(super::SFixed64Rules),
76        #[prost(message, tag = "13")]
77        Bool(super::BoolRules),
78        #[prost(message, tag = "14")]
79        String(super::StringRules),
80        #[prost(message, tag = "15")]
81        Bytes(super::BytesRules),
82        #[prost(message, tag = "16")]
83        Enum(super::EnumRules),
84        #[prost(message, tag = "18")]
85        Repeated(::prost::alloc::boxed::Box<super::RepeatedRules>),
86        #[prost(message, tag = "19")]
87        Map(::prost::alloc::boxed::Box<super::MapRules>),
88        #[prost(message, tag = "20")]
89        Any(super::AnyRules),
90        #[prost(message, tag = "21")]
91        Duration(super::DurationRules),
92        #[prost(message, tag = "28")]
93        FieldMask(super::FieldMaskRules),
94        #[prost(message, tag = "22")]
95        Timestamp(super::TimestampRules),
96    }
97}
98#[derive(Clone, PartialEq, ::prost::Message)]
99pub struct PredefinedRules {
100    #[prost(message, repeated, tag = "1")]
101    pub cel: ::prost::alloc::vec::Vec<Rule>,
102}
103#[derive(Clone, PartialEq, ::prost::Message)]
104pub struct FloatRules {
105    #[prost(float, optional, tag = "1")]
106    pub r#const: ::core::option::Option<f32>,
107    #[prost(float, repeated, packed = "false", tag = "6")]
108    pub r#in: ::prost::alloc::vec::Vec<f32>,
109    #[prost(float, repeated, packed = "false", tag = "7")]
110    pub not_in: ::prost::alloc::vec::Vec<f32>,
111    #[prost(bool, optional, tag = "8")]
112    pub finite: ::core::option::Option<bool>,
113    #[prost(float, repeated, packed = "false", tag = "9")]
114    pub example: ::prost::alloc::vec::Vec<f32>,
115    #[prost(oneof = "float_rules::LessThan", tags = "2, 3")]
116    pub less_than: ::core::option::Option<float_rules::LessThan>,
117    #[prost(oneof = "float_rules::GreaterThan", tags = "4, 5")]
118    pub greater_than: ::core::option::Option<float_rules::GreaterThan>,
119}
120/// Nested message and enum types in `FloatRules`.
121pub mod float_rules {
122    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
123    pub enum LessThan {
124        #[prost(float, tag = "2")]
125        Lt(f32),
126        #[prost(float, tag = "3")]
127        Lte(f32),
128    }
129    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
130    pub enum GreaterThan {
131        #[prost(float, tag = "4")]
132        Gt(f32),
133        #[prost(float, tag = "5")]
134        Gte(f32),
135    }
136}
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct DoubleRules {
139    #[prost(double, optional, tag = "1")]
140    pub r#const: ::core::option::Option<f64>,
141    #[prost(double, repeated, packed = "false", tag = "6")]
142    pub r#in: ::prost::alloc::vec::Vec<f64>,
143    #[prost(double, repeated, packed = "false", tag = "7")]
144    pub not_in: ::prost::alloc::vec::Vec<f64>,
145    #[prost(bool, optional, tag = "8")]
146    pub finite: ::core::option::Option<bool>,
147    #[prost(double, repeated, packed = "false", tag = "9")]
148    pub example: ::prost::alloc::vec::Vec<f64>,
149    #[prost(oneof = "double_rules::LessThan", tags = "2, 3")]
150    pub less_than: ::core::option::Option<double_rules::LessThan>,
151    #[prost(oneof = "double_rules::GreaterThan", tags = "4, 5")]
152    pub greater_than: ::core::option::Option<double_rules::GreaterThan>,
153}
154/// Nested message and enum types in `DoubleRules`.
155pub mod double_rules {
156    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
157    pub enum LessThan {
158        #[prost(double, tag = "2")]
159        Lt(f64),
160        #[prost(double, tag = "3")]
161        Lte(f64),
162    }
163    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
164    pub enum GreaterThan {
165        #[prost(double, tag = "4")]
166        Gt(f64),
167        #[prost(double, tag = "5")]
168        Gte(f64),
169    }
170}
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct Int32Rules {
173    #[prost(int32, optional, tag = "1")]
174    pub r#const: ::core::option::Option<i32>,
175    #[prost(int32, repeated, packed = "false", tag = "6")]
176    pub r#in: ::prost::alloc::vec::Vec<i32>,
177    #[prost(int32, repeated, packed = "false", tag = "7")]
178    pub not_in: ::prost::alloc::vec::Vec<i32>,
179    #[prost(int32, repeated, packed = "false", tag = "8")]
180    pub example: ::prost::alloc::vec::Vec<i32>,
181    #[prost(oneof = "int32_rules::LessThan", tags = "2, 3")]
182    pub less_than: ::core::option::Option<int32_rules::LessThan>,
183    #[prost(oneof = "int32_rules::GreaterThan", tags = "4, 5")]
184    pub greater_than: ::core::option::Option<int32_rules::GreaterThan>,
185}
186/// Nested message and enum types in `Int32Rules`.
187pub mod int32_rules {
188    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
189    pub enum LessThan {
190        #[prost(int32, tag = "2")]
191        Lt(i32),
192        #[prost(int32, tag = "3")]
193        Lte(i32),
194    }
195    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
196    pub enum GreaterThan {
197        #[prost(int32, tag = "4")]
198        Gt(i32),
199        #[prost(int32, tag = "5")]
200        Gte(i32),
201    }
202}
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct Int64Rules {
205    #[prost(int64, optional, tag = "1")]
206    pub r#const: ::core::option::Option<i64>,
207    #[prost(int64, repeated, packed = "false", tag = "6")]
208    pub r#in: ::prost::alloc::vec::Vec<i64>,
209    #[prost(int64, repeated, packed = "false", tag = "7")]
210    pub not_in: ::prost::alloc::vec::Vec<i64>,
211    #[prost(int64, repeated, packed = "false", tag = "9")]
212    pub example: ::prost::alloc::vec::Vec<i64>,
213    #[prost(oneof = "int64_rules::LessThan", tags = "2, 3")]
214    pub less_than: ::core::option::Option<int64_rules::LessThan>,
215    #[prost(oneof = "int64_rules::GreaterThan", tags = "4, 5")]
216    pub greater_than: ::core::option::Option<int64_rules::GreaterThan>,
217}
218/// Nested message and enum types in `Int64Rules`.
219pub mod int64_rules {
220    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
221    pub enum LessThan {
222        #[prost(int64, tag = "2")]
223        Lt(i64),
224        #[prost(int64, tag = "3")]
225        Lte(i64),
226    }
227    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
228    pub enum GreaterThan {
229        #[prost(int64, tag = "4")]
230        Gt(i64),
231        #[prost(int64, tag = "5")]
232        Gte(i64),
233    }
234}
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct UInt32Rules {
237    #[prost(uint32, optional, tag = "1")]
238    pub r#const: ::core::option::Option<u32>,
239    #[prost(uint32, repeated, packed = "false", tag = "6")]
240    pub r#in: ::prost::alloc::vec::Vec<u32>,
241    #[prost(uint32, repeated, packed = "false", tag = "7")]
242    pub not_in: ::prost::alloc::vec::Vec<u32>,
243    #[prost(uint32, repeated, packed = "false", tag = "8")]
244    pub example: ::prost::alloc::vec::Vec<u32>,
245    #[prost(oneof = "u_int32_rules::LessThan", tags = "2, 3")]
246    pub less_than: ::core::option::Option<u_int32_rules::LessThan>,
247    #[prost(oneof = "u_int32_rules::GreaterThan", tags = "4, 5")]
248    pub greater_than: ::core::option::Option<u_int32_rules::GreaterThan>,
249}
250/// Nested message and enum types in `UInt32Rules`.
251pub mod u_int32_rules {
252    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
253    pub enum LessThan {
254        #[prost(uint32, tag = "2")]
255        Lt(u32),
256        #[prost(uint32, tag = "3")]
257        Lte(u32),
258    }
259    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
260    pub enum GreaterThan {
261        #[prost(uint32, tag = "4")]
262        Gt(u32),
263        #[prost(uint32, tag = "5")]
264        Gte(u32),
265    }
266}
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct UInt64Rules {
269    #[prost(uint64, optional, tag = "1")]
270    pub r#const: ::core::option::Option<u64>,
271    #[prost(uint64, repeated, packed = "false", tag = "6")]
272    pub r#in: ::prost::alloc::vec::Vec<u64>,
273    #[prost(uint64, repeated, packed = "false", tag = "7")]
274    pub not_in: ::prost::alloc::vec::Vec<u64>,
275    #[prost(uint64, repeated, packed = "false", tag = "8")]
276    pub example: ::prost::alloc::vec::Vec<u64>,
277    #[prost(oneof = "u_int64_rules::LessThan", tags = "2, 3")]
278    pub less_than: ::core::option::Option<u_int64_rules::LessThan>,
279    #[prost(oneof = "u_int64_rules::GreaterThan", tags = "4, 5")]
280    pub greater_than: ::core::option::Option<u_int64_rules::GreaterThan>,
281}
282/// Nested message and enum types in `UInt64Rules`.
283pub mod u_int64_rules {
284    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
285    pub enum LessThan {
286        #[prost(uint64, tag = "2")]
287        Lt(u64),
288        #[prost(uint64, tag = "3")]
289        Lte(u64),
290    }
291    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
292    pub enum GreaterThan {
293        #[prost(uint64, tag = "4")]
294        Gt(u64),
295        #[prost(uint64, tag = "5")]
296        Gte(u64),
297    }
298}
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct SInt32Rules {
301    #[prost(sint32, optional, tag = "1")]
302    pub r#const: ::core::option::Option<i32>,
303    #[prost(sint32, repeated, packed = "false", tag = "6")]
304    pub r#in: ::prost::alloc::vec::Vec<i32>,
305    #[prost(sint32, repeated, packed = "false", tag = "7")]
306    pub not_in: ::prost::alloc::vec::Vec<i32>,
307    #[prost(sint32, repeated, packed = "false", tag = "8")]
308    pub example: ::prost::alloc::vec::Vec<i32>,
309    #[prost(oneof = "s_int32_rules::LessThan", tags = "2, 3")]
310    pub less_than: ::core::option::Option<s_int32_rules::LessThan>,
311    #[prost(oneof = "s_int32_rules::GreaterThan", tags = "4, 5")]
312    pub greater_than: ::core::option::Option<s_int32_rules::GreaterThan>,
313}
314/// Nested message and enum types in `SInt32Rules`.
315pub mod s_int32_rules {
316    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
317    pub enum LessThan {
318        #[prost(sint32, tag = "2")]
319        Lt(i32),
320        #[prost(sint32, tag = "3")]
321        Lte(i32),
322    }
323    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
324    pub enum GreaterThan {
325        #[prost(sint32, tag = "4")]
326        Gt(i32),
327        #[prost(sint32, tag = "5")]
328        Gte(i32),
329    }
330}
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct SInt64Rules {
333    #[prost(sint64, optional, tag = "1")]
334    pub r#const: ::core::option::Option<i64>,
335    #[prost(sint64, repeated, packed = "false", tag = "6")]
336    pub r#in: ::prost::alloc::vec::Vec<i64>,
337    #[prost(sint64, repeated, packed = "false", tag = "7")]
338    pub not_in: ::prost::alloc::vec::Vec<i64>,
339    #[prost(sint64, repeated, packed = "false", tag = "8")]
340    pub example: ::prost::alloc::vec::Vec<i64>,
341    #[prost(oneof = "s_int64_rules::LessThan", tags = "2, 3")]
342    pub less_than: ::core::option::Option<s_int64_rules::LessThan>,
343    #[prost(oneof = "s_int64_rules::GreaterThan", tags = "4, 5")]
344    pub greater_than: ::core::option::Option<s_int64_rules::GreaterThan>,
345}
346/// Nested message and enum types in `SInt64Rules`.
347pub mod s_int64_rules {
348    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
349    pub enum LessThan {
350        #[prost(sint64, tag = "2")]
351        Lt(i64),
352        #[prost(sint64, tag = "3")]
353        Lte(i64),
354    }
355    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
356    pub enum GreaterThan {
357        #[prost(sint64, tag = "4")]
358        Gt(i64),
359        #[prost(sint64, tag = "5")]
360        Gte(i64),
361    }
362}
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct Fixed32Rules {
365    #[prost(fixed32, optional, tag = "1")]
366    pub r#const: ::core::option::Option<u32>,
367    #[prost(fixed32, repeated, packed = "false", tag = "6")]
368    pub r#in: ::prost::alloc::vec::Vec<u32>,
369    #[prost(fixed32, repeated, packed = "false", tag = "7")]
370    pub not_in: ::prost::alloc::vec::Vec<u32>,
371    #[prost(fixed32, repeated, packed = "false", tag = "8")]
372    pub example: ::prost::alloc::vec::Vec<u32>,
373    #[prost(oneof = "fixed32_rules::LessThan", tags = "2, 3")]
374    pub less_than: ::core::option::Option<fixed32_rules::LessThan>,
375    #[prost(oneof = "fixed32_rules::GreaterThan", tags = "4, 5")]
376    pub greater_than: ::core::option::Option<fixed32_rules::GreaterThan>,
377}
378/// Nested message and enum types in `Fixed32Rules`.
379pub mod fixed32_rules {
380    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
381    pub enum LessThan {
382        #[prost(fixed32, tag = "2")]
383        Lt(u32),
384        #[prost(fixed32, tag = "3")]
385        Lte(u32),
386    }
387    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
388    pub enum GreaterThan {
389        #[prost(fixed32, tag = "4")]
390        Gt(u32),
391        #[prost(fixed32, tag = "5")]
392        Gte(u32),
393    }
394}
395#[derive(Clone, PartialEq, ::prost::Message)]
396pub struct Fixed64Rules {
397    #[prost(fixed64, optional, tag = "1")]
398    pub r#const: ::core::option::Option<u64>,
399    #[prost(fixed64, repeated, packed = "false", tag = "6")]
400    pub r#in: ::prost::alloc::vec::Vec<u64>,
401    #[prost(fixed64, repeated, packed = "false", tag = "7")]
402    pub not_in: ::prost::alloc::vec::Vec<u64>,
403    #[prost(fixed64, repeated, packed = "false", tag = "8")]
404    pub example: ::prost::alloc::vec::Vec<u64>,
405    #[prost(oneof = "fixed64_rules::LessThan", tags = "2, 3")]
406    pub less_than: ::core::option::Option<fixed64_rules::LessThan>,
407    #[prost(oneof = "fixed64_rules::GreaterThan", tags = "4, 5")]
408    pub greater_than: ::core::option::Option<fixed64_rules::GreaterThan>,
409}
410/// Nested message and enum types in `Fixed64Rules`.
411pub mod fixed64_rules {
412    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
413    pub enum LessThan {
414        #[prost(fixed64, tag = "2")]
415        Lt(u64),
416        #[prost(fixed64, tag = "3")]
417        Lte(u64),
418    }
419    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
420    pub enum GreaterThan {
421        #[prost(fixed64, tag = "4")]
422        Gt(u64),
423        #[prost(fixed64, tag = "5")]
424        Gte(u64),
425    }
426}
427#[derive(Clone, PartialEq, ::prost::Message)]
428pub struct SFixed32Rules {
429    #[prost(sfixed32, optional, tag = "1")]
430    pub r#const: ::core::option::Option<i32>,
431    #[prost(sfixed32, repeated, packed = "false", tag = "6")]
432    pub r#in: ::prost::alloc::vec::Vec<i32>,
433    #[prost(sfixed32, repeated, packed = "false", tag = "7")]
434    pub not_in: ::prost::alloc::vec::Vec<i32>,
435    #[prost(sfixed32, repeated, packed = "false", tag = "8")]
436    pub example: ::prost::alloc::vec::Vec<i32>,
437    #[prost(oneof = "s_fixed32_rules::LessThan", tags = "2, 3")]
438    pub less_than: ::core::option::Option<s_fixed32_rules::LessThan>,
439    #[prost(oneof = "s_fixed32_rules::GreaterThan", tags = "4, 5")]
440    pub greater_than: ::core::option::Option<s_fixed32_rules::GreaterThan>,
441}
442/// Nested message and enum types in `SFixed32Rules`.
443pub mod s_fixed32_rules {
444    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
445    pub enum LessThan {
446        #[prost(sfixed32, tag = "2")]
447        Lt(i32),
448        #[prost(sfixed32, tag = "3")]
449        Lte(i32),
450    }
451    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
452    pub enum GreaterThan {
453        #[prost(sfixed32, tag = "4")]
454        Gt(i32),
455        #[prost(sfixed32, tag = "5")]
456        Gte(i32),
457    }
458}
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct SFixed64Rules {
461    #[prost(sfixed64, optional, tag = "1")]
462    pub r#const: ::core::option::Option<i64>,
463    #[prost(sfixed64, repeated, packed = "false", tag = "6")]
464    pub r#in: ::prost::alloc::vec::Vec<i64>,
465    #[prost(sfixed64, repeated, packed = "false", tag = "7")]
466    pub not_in: ::prost::alloc::vec::Vec<i64>,
467    #[prost(sfixed64, repeated, packed = "false", tag = "8")]
468    pub example: ::prost::alloc::vec::Vec<i64>,
469    #[prost(oneof = "s_fixed64_rules::LessThan", tags = "2, 3")]
470    pub less_than: ::core::option::Option<s_fixed64_rules::LessThan>,
471    #[prost(oneof = "s_fixed64_rules::GreaterThan", tags = "4, 5")]
472    pub greater_than: ::core::option::Option<s_fixed64_rules::GreaterThan>,
473}
474/// Nested message and enum types in `SFixed64Rules`.
475pub mod s_fixed64_rules {
476    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
477    pub enum LessThan {
478        #[prost(sfixed64, tag = "2")]
479        Lt(i64),
480        #[prost(sfixed64, tag = "3")]
481        Lte(i64),
482    }
483    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
484    pub enum GreaterThan {
485        #[prost(sfixed64, tag = "4")]
486        Gt(i64),
487        #[prost(sfixed64, tag = "5")]
488        Gte(i64),
489    }
490}
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct BoolRules {
493    #[prost(bool, optional, tag = "1")]
494    pub r#const: ::core::option::Option<bool>,
495    #[prost(bool, repeated, packed = "false", tag = "2")]
496    pub example: ::prost::alloc::vec::Vec<bool>,
497}
498#[derive(Clone, PartialEq, ::prost::Message)]
499pub struct StringRules {
500    #[prost(string, optional, tag = "1")]
501    pub r#const: ::core::option::Option<::prost::alloc::string::String>,
502    #[prost(uint64, optional, tag = "19")]
503    pub len: ::core::option::Option<u64>,
504    #[prost(uint64, optional, tag = "2")]
505    pub min_len: ::core::option::Option<u64>,
506    #[prost(uint64, optional, tag = "3")]
507    pub max_len: ::core::option::Option<u64>,
508    #[prost(uint64, optional, tag = "20")]
509    pub len_bytes: ::core::option::Option<u64>,
510    #[prost(uint64, optional, tag = "4")]
511    pub min_bytes: ::core::option::Option<u64>,
512    #[prost(uint64, optional, tag = "5")]
513    pub max_bytes: ::core::option::Option<u64>,
514    #[prost(string, optional, tag = "6")]
515    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
516    #[prost(string, optional, tag = "7")]
517    pub prefix: ::core::option::Option<::prost::alloc::string::String>,
518    #[prost(string, optional, tag = "8")]
519    pub suffix: ::core::option::Option<::prost::alloc::string::String>,
520    #[prost(string, optional, tag = "9")]
521    pub contains: ::core::option::Option<::prost::alloc::string::String>,
522    #[prost(string, optional, tag = "23")]
523    pub not_contains: ::core::option::Option<::prost::alloc::string::String>,
524    #[prost(string, repeated, tag = "10")]
525    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
526    #[prost(string, repeated, tag = "11")]
527    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
528    #[prost(bool, optional, tag = "25")]
529    pub strict: ::core::option::Option<bool>,
530    #[prost(string, repeated, tag = "34")]
531    pub example: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
532    #[prost(
533        oneof = "string_rules::WellKnown",
534        tags = "12, 13, 14, 15, 16, 17, 18, 21, 22, 33, 26, 27, 28, 29, 30, 31, 32, 35, 37, 38, 24"
535    )]
536    pub well_known: ::core::option::Option<string_rules::WellKnown>,
537}
538/// Nested message and enum types in `StringRules`.
539pub mod string_rules {
540    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
541    pub enum WellKnown {
542        #[prost(bool, tag = "12")]
543        Email(bool),
544        #[prost(bool, tag = "13")]
545        Hostname(bool),
546        #[prost(bool, tag = "14")]
547        Ip(bool),
548        #[prost(bool, tag = "15")]
549        Ipv4(bool),
550        #[prost(bool, tag = "16")]
551        Ipv6(bool),
552        #[prost(bool, tag = "17")]
553        Uri(bool),
554        #[prost(bool, tag = "18")]
555        UriRef(bool),
556        #[prost(bool, tag = "21")]
557        Address(bool),
558        #[prost(bool, tag = "22")]
559        Uuid(bool),
560        #[prost(bool, tag = "33")]
561        Tuuid(bool),
562        #[prost(bool, tag = "26")]
563        IpWithPrefixlen(bool),
564        #[prost(bool, tag = "27")]
565        Ipv4WithPrefixlen(bool),
566        #[prost(bool, tag = "28")]
567        Ipv6WithPrefixlen(bool),
568        #[prost(bool, tag = "29")]
569        IpPrefix(bool),
570        #[prost(bool, tag = "30")]
571        Ipv4Prefix(bool),
572        #[prost(bool, tag = "31")]
573        Ipv6Prefix(bool),
574        #[prost(bool, tag = "32")]
575        HostAndPort(bool),
576        #[prost(bool, tag = "35")]
577        Ulid(bool),
578        #[prost(bool, tag = "37")]
579        ProtobufFqn(bool),
580        #[prost(bool, tag = "38")]
581        ProtobufDotFqn(bool),
582        #[prost(enumeration = "super::KnownRegex", tag = "24")]
583        WellKnownRegex(i32),
584    }
585}
586#[derive(Clone, PartialEq, ::prost::Message)]
587pub struct BytesRules {
588    #[prost(bytes = "vec", optional, tag = "1")]
589    pub r#const: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
590    #[prost(uint64, optional, tag = "13")]
591    pub len: ::core::option::Option<u64>,
592    #[prost(uint64, optional, tag = "2")]
593    pub min_len: ::core::option::Option<u64>,
594    #[prost(uint64, optional, tag = "3")]
595    pub max_len: ::core::option::Option<u64>,
596    #[prost(string, optional, tag = "4")]
597    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
598    #[prost(bytes = "vec", optional, tag = "5")]
599    pub prefix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
600    #[prost(bytes = "vec", optional, tag = "6")]
601    pub suffix: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
602    #[prost(bytes = "vec", optional, tag = "7")]
603    pub contains: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
604    #[prost(bytes = "vec", repeated, tag = "8")]
605    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
606    #[prost(bytes = "vec", repeated, tag = "9")]
607    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
608    #[prost(bytes = "vec", repeated, tag = "14")]
609    pub example: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
610    #[prost(oneof = "bytes_rules::WellKnown", tags = "10, 11, 12, 15")]
611    pub well_known: ::core::option::Option<bytes_rules::WellKnown>,
612}
613/// Nested message and enum types in `BytesRules`.
614pub mod bytes_rules {
615    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
616    pub enum WellKnown {
617        #[prost(bool, tag = "10")]
618        Ip(bool),
619        #[prost(bool, tag = "11")]
620        Ipv4(bool),
621        #[prost(bool, tag = "12")]
622        Ipv6(bool),
623        #[prost(bool, tag = "15")]
624        Uuid(bool),
625    }
626}
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct EnumRules {
629    #[prost(int32, optional, tag = "1")]
630    pub r#const: ::core::option::Option<i32>,
631    #[prost(bool, optional, tag = "2")]
632    pub defined_only: ::core::option::Option<bool>,
633    #[prost(int32, repeated, packed = "false", tag = "3")]
634    pub r#in: ::prost::alloc::vec::Vec<i32>,
635    #[prost(int32, repeated, packed = "false", tag = "4")]
636    pub not_in: ::prost::alloc::vec::Vec<i32>,
637    #[prost(int32, repeated, packed = "false", tag = "5")]
638    pub example: ::prost::alloc::vec::Vec<i32>,
639}
640#[derive(Clone, PartialEq, ::prost::Message)]
641pub struct RepeatedRules {
642    #[prost(uint64, optional, tag = "1")]
643    pub min_items: ::core::option::Option<u64>,
644    #[prost(uint64, optional, tag = "2")]
645    pub max_items: ::core::option::Option<u64>,
646    #[prost(bool, optional, tag = "3")]
647    pub unique: ::core::option::Option<bool>,
648    #[prost(message, optional, boxed, tag = "4")]
649    pub items: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
650}
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct MapRules {
653    #[prost(uint64, optional, tag = "1")]
654    pub min_pairs: ::core::option::Option<u64>,
655    #[prost(uint64, optional, tag = "2")]
656    pub max_pairs: ::core::option::Option<u64>,
657    #[prost(message, optional, boxed, tag = "4")]
658    pub keys: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
659    #[prost(message, optional, boxed, tag = "5")]
660    pub values: ::core::option::Option<::prost::alloc::boxed::Box<FieldRules>>,
661}
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct AnyRules {
664    #[prost(string, repeated, tag = "2")]
665    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
666    #[prost(string, repeated, tag = "3")]
667    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
668}
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct DurationRules {
671    #[prost(message, optional, tag = "2")]
672    pub r#const: ::core::option::Option<super::super::google::protobuf::Duration>,
673    #[prost(message, repeated, tag = "7")]
674    pub r#in: ::prost::alloc::vec::Vec<super::super::google::protobuf::Duration>,
675    #[prost(message, repeated, tag = "8")]
676    pub not_in: ::prost::alloc::vec::Vec<super::super::google::protobuf::Duration>,
677    #[prost(message, repeated, tag = "9")]
678    pub example: ::prost::alloc::vec::Vec<super::super::google::protobuf::Duration>,
679    #[prost(oneof = "duration_rules::LessThan", tags = "3, 4")]
680    pub less_than: ::core::option::Option<duration_rules::LessThan>,
681    #[prost(oneof = "duration_rules::GreaterThan", tags = "5, 6")]
682    pub greater_than: ::core::option::Option<duration_rules::GreaterThan>,
683}
684/// Nested message and enum types in `DurationRules`.
685pub mod duration_rules {
686    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
687    pub enum LessThan {
688        #[prost(message, tag = "3")]
689        Lt(super::super::super::google::protobuf::Duration),
690        #[prost(message, tag = "4")]
691        Lte(super::super::super::google::protobuf::Duration),
692    }
693    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
694    pub enum GreaterThan {
695        #[prost(message, tag = "5")]
696        Gt(super::super::super::google::protobuf::Duration),
697        #[prost(message, tag = "6")]
698        Gte(super::super::super::google::protobuf::Duration),
699    }
700}
701#[derive(Clone, PartialEq, ::prost::Message)]
702pub struct FieldMaskRules {
703    #[prost(message, optional, tag = "1")]
704    pub r#const: ::core::option::Option<super::super::google::protobuf::FieldMask>,
705    #[prost(string, repeated, tag = "2")]
706    pub r#in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
707    #[prost(string, repeated, tag = "3")]
708    pub not_in: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
709    #[prost(message, repeated, tag = "4")]
710    pub example: ::prost::alloc::vec::Vec<super::super::google::protobuf::FieldMask>,
711}
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct TimestampRules {
714    #[prost(message, optional, tag = "2")]
715    pub r#const: ::core::option::Option<super::super::google::protobuf::Timestamp>,
716    #[prost(message, optional, tag = "9")]
717    pub within: ::core::option::Option<super::super::google::protobuf::Duration>,
718    #[prost(message, repeated, tag = "10")]
719    pub example: ::prost::alloc::vec::Vec<super::super::google::protobuf::Timestamp>,
720    #[prost(oneof = "timestamp_rules::LessThan", tags = "3, 4, 7")]
721    pub less_than: ::core::option::Option<timestamp_rules::LessThan>,
722    #[prost(oneof = "timestamp_rules::GreaterThan", tags = "5, 6, 8")]
723    pub greater_than: ::core::option::Option<timestamp_rules::GreaterThan>,
724}
725/// Nested message and enum types in `TimestampRules`.
726pub mod timestamp_rules {
727    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
728    pub enum LessThan {
729        #[prost(message, tag = "3")]
730        Lt(super::super::super::google::protobuf::Timestamp),
731        #[prost(message, tag = "4")]
732        Lte(super::super::super::google::protobuf::Timestamp),
733        #[prost(bool, tag = "7")]
734        LtNow(bool),
735    }
736    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
737    pub enum GreaterThan {
738        #[prost(message, tag = "5")]
739        Gt(super::super::super::google::protobuf::Timestamp),
740        #[prost(message, tag = "6")]
741        Gte(super::super::super::google::protobuf::Timestamp),
742        #[prost(bool, tag = "8")]
743        GtNow(bool),
744    }
745}
746#[derive(Clone, PartialEq, ::prost::Message)]
747pub struct Violations {
748    #[prost(message, repeated, tag = "1")]
749    pub violations: ::prost::alloc::vec::Vec<Violation>,
750}
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct Violation {
753    #[prost(message, optional, tag = "5")]
754    pub field: ::core::option::Option<FieldPath>,
755    #[prost(message, optional, tag = "6")]
756    pub rule: ::core::option::Option<FieldPath>,
757    #[prost(string, optional, tag = "2")]
758    pub rule_id: ::core::option::Option<::prost::alloc::string::String>,
759    #[prost(string, optional, tag = "3")]
760    pub message: ::core::option::Option<::prost::alloc::string::String>,
761    #[prost(bool, optional, tag = "4")]
762    pub for_key: ::core::option::Option<bool>,
763}
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct FieldPath {
766    #[prost(message, repeated, tag = "1")]
767    pub elements: ::prost::alloc::vec::Vec<FieldPathElement>,
768}
769#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct FieldPathElement {
771    #[prost(int32, optional, tag = "1")]
772    pub field_number: ::core::option::Option<i32>,
773    #[prost(string, optional, tag = "2")]
774    pub field_name: ::core::option::Option<::prost::alloc::string::String>,
775    #[prost(
776        enumeration = "super::super::google::protobuf::field_descriptor_proto::Type",
777        optional,
778        tag = "3"
779    )]
780    pub field_type: ::core::option::Option<i32>,
781    #[prost(
782        enumeration = "super::super::google::protobuf::field_descriptor_proto::Type",
783        optional,
784        tag = "4"
785    )]
786    pub key_type: ::core::option::Option<i32>,
787    #[prost(
788        enumeration = "super::super::google::protobuf::field_descriptor_proto::Type",
789        optional,
790        tag = "5"
791    )]
792    pub value_type: ::core::option::Option<i32>,
793    #[prost(oneof = "field_path_element::Subscript", tags = "6, 7, 8, 9, 10")]
794    pub subscript: ::core::option::Option<field_path_element::Subscript>,
795}
796/// Nested message and enum types in `FieldPathElement`.
797pub mod field_path_element {
798    #[derive(Clone, PartialEq, ::prost::Oneof)]
799    pub enum Subscript {
800        #[prost(uint64, tag = "6")]
801        Index(u64),
802        #[prost(bool, tag = "7")]
803        BoolKey(bool),
804        #[prost(int64, tag = "8")]
805        IntKey(i64),
806        #[prost(uint64, tag = "9")]
807        UintKey(u64),
808        #[prost(string, tag = "10")]
809        StringKey(::prost::alloc::string::String),
810    }
811}
812#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
813#[repr(i32)]
814pub enum Ignore {
815    Unspecified = 0,
816    IfZeroValue = 1,
817    Always = 3,
818}
819impl Ignore {
820    /// String value of the enum field names used in the ProtoBuf definition.
821    ///
822    /// The values are not transformed in any way and thus are considered stable
823    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
824    pub fn as_str_name(&self) -> &'static str {
825        match self {
826            Self::Unspecified => "IGNORE_UNSPECIFIED",
827            Self::IfZeroValue => "IGNORE_IF_ZERO_VALUE",
828            Self::Always => "IGNORE_ALWAYS",
829        }
830    }
831    /// Creates an enum from field names used in the ProtoBuf definition.
832    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
833        match value {
834            "IGNORE_UNSPECIFIED" => Some(Self::Unspecified),
835            "IGNORE_IF_ZERO_VALUE" => Some(Self::IfZeroValue),
836            "IGNORE_ALWAYS" => Some(Self::Always),
837            _ => None,
838        }
839    }
840}
841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
842#[repr(i32)]
843pub enum KnownRegex {
844    Unspecified = 0,
845    HttpHeaderName = 1,
846    HttpHeaderValue = 2,
847}
848impl KnownRegex {
849    /// String value of the enum field names used in the ProtoBuf definition.
850    ///
851    /// The values are not transformed in any way and thus are considered stable
852    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
853    pub fn as_str_name(&self) -> &'static str {
854        match self {
855            Self::Unspecified => "KNOWN_REGEX_UNSPECIFIED",
856            Self::HttpHeaderName => "KNOWN_REGEX_HTTP_HEADER_NAME",
857            Self::HttpHeaderValue => "KNOWN_REGEX_HTTP_HEADER_VALUE",
858        }
859    }
860    /// Creates an enum from field names used in the ProtoBuf definition.
861    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
862        match value {
863            "KNOWN_REGEX_UNSPECIFIED" => Some(Self::Unspecified),
864            "KNOWN_REGEX_HTTP_HEADER_NAME" => Some(Self::HttpHeaderName),
865            "KNOWN_REGEX_HTTP_HEADER_VALUE" => Some(Self::HttpHeaderValue),
866            _ => None,
867        }
868    }
869}