1// Code generated by protoc-gen-go. DO NOT EDIT.
2// versions:
3// 	protoc-gen-go v1.25.0
4// 	protoc        v3.19.1
5// source: envoy/type/matcher/v3/regex.proto
6
7package envoy_type_matcher_v3
8
9import (
10	_ "github.com/cncf/xds/go/udpa/annotations"
11	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
12	_ "github.com/envoyproxy/protoc-gen-validate/validate"
13	proto "github.com/golang/protobuf/proto"
14	wrappers "github.com/golang/protobuf/ptypes/wrappers"
15	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
16	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
17	reflect "reflect"
18	sync "sync"
19)
20
21const (
22	// Verify that this generated code is sufficiently up-to-date.
23	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
24	// Verify that runtime/protoimpl is sufficiently up-to-date.
25	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
26)
27
28// This is a compile-time assertion that a sufficiently up-to-date version
29// of the legacy proto package is being used.
30const _ = proto.ProtoPackageIsVersion4
31
32// A regex matcher designed for safety when used with untrusted input.
33type RegexMatcher struct {
34	state         protoimpl.MessageState
35	sizeCache     protoimpl.SizeCache
36	unknownFields protoimpl.UnknownFields
37
38	// Types that are assignable to EngineType:
39	//	*RegexMatcher_GoogleRe2
40	EngineType isRegexMatcher_EngineType `protobuf_oneof:"engine_type"`
41	// The regex match string. The string must be supported by the configured engine.
42	Regex string `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"`
43}
44
45func (x *RegexMatcher) Reset() {
46	*x = RegexMatcher{}
47	if protoimpl.UnsafeEnabled {
48		mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[0]
49		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
50		ms.StoreMessageInfo(mi)
51	}
52}
53
54func (x *RegexMatcher) String() string {
55	return protoimpl.X.MessageStringOf(x)
56}
57
58func (*RegexMatcher) ProtoMessage() {}
59
60func (x *RegexMatcher) ProtoReflect() protoreflect.Message {
61	mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[0]
62	if protoimpl.UnsafeEnabled && x != nil {
63		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
64		if ms.LoadMessageInfo() == nil {
65			ms.StoreMessageInfo(mi)
66		}
67		return ms
68	}
69	return mi.MessageOf(x)
70}
71
72// Deprecated: Use RegexMatcher.ProtoReflect.Descriptor instead.
73func (*RegexMatcher) Descriptor() ([]byte, []int) {
74	return file_envoy_type_matcher_v3_regex_proto_rawDescGZIP(), []int{0}
75}
76
77func (m *RegexMatcher) GetEngineType() isRegexMatcher_EngineType {
78	if m != nil {
79		return m.EngineType
80	}
81	return nil
82}
83
84func (x *RegexMatcher) GetGoogleRe2() *RegexMatcher_GoogleRE2 {
85	if x, ok := x.GetEngineType().(*RegexMatcher_GoogleRe2); ok {
86		return x.GoogleRe2
87	}
88	return nil
89}
90
91func (x *RegexMatcher) GetRegex() string {
92	if x != nil {
93		return x.Regex
94	}
95	return ""
96}
97
98type isRegexMatcher_EngineType interface {
99	isRegexMatcher_EngineType()
100}
101
102type RegexMatcher_GoogleRe2 struct {
103	// Google's RE2 regex engine.
104	GoogleRe2 *RegexMatcher_GoogleRE2 `protobuf:"bytes,1,opt,name=google_re2,json=googleRe2,proto3,oneof"`
105}
106
107func (*RegexMatcher_GoogleRe2) isRegexMatcher_EngineType() {}
108
109// Describes how to match a string and then produce a new string using a regular
110// expression and a substitution string.
111type RegexMatchAndSubstitute struct {
112	state         protoimpl.MessageState
113	sizeCache     protoimpl.SizeCache
114	unknownFields protoimpl.UnknownFields
115
116	// The regular expression used to find portions of a string (hereafter called
117	// the "subject string") that should be replaced. When a new string is
118	// produced during the substitution operation, the new string is initially
119	// the same as the subject string, but then all matches in the subject string
120	// are replaced by the substitution string. If replacing all matches isn't
121	// desired, regular expression anchors can be used to ensure a single match,
122	// so as to replace just one occurrence of a pattern. Capture groups can be
123	// used in the pattern to extract portions of the subject string, and then
124	// referenced in the substitution string.
125	Pattern *RegexMatcher `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
126	// The string that should be substituted into matching portions of the
127	// subject string during a substitution operation to produce a new string.
128	// Capture groups in the pattern can be referenced in the substitution
129	// string. Note, however, that the syntax for referring to capture groups is
130	// defined by the chosen regular expression engine. Google's `RE2
131	// <https://github.com/google/re2>`_ regular expression engine uses a
132	// backslash followed by the capture group number to denote a numbered
133	// capture group. E.g., ``\1`` refers to capture group 1, and ``\2`` refers
134	// to capture group 2.
135	Substitution string `protobuf:"bytes,2,opt,name=substitution,proto3" json:"substitution,omitempty"`
136}
137
138func (x *RegexMatchAndSubstitute) Reset() {
139	*x = RegexMatchAndSubstitute{}
140	if protoimpl.UnsafeEnabled {
141		mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[1]
142		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
143		ms.StoreMessageInfo(mi)
144	}
145}
146
147func (x *RegexMatchAndSubstitute) String() string {
148	return protoimpl.X.MessageStringOf(x)
149}
150
151func (*RegexMatchAndSubstitute) ProtoMessage() {}
152
153func (x *RegexMatchAndSubstitute) ProtoReflect() protoreflect.Message {
154	mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[1]
155	if protoimpl.UnsafeEnabled && x != nil {
156		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
157		if ms.LoadMessageInfo() == nil {
158			ms.StoreMessageInfo(mi)
159		}
160		return ms
161	}
162	return mi.MessageOf(x)
163}
164
165// Deprecated: Use RegexMatchAndSubstitute.ProtoReflect.Descriptor instead.
166func (*RegexMatchAndSubstitute) Descriptor() ([]byte, []int) {
167	return file_envoy_type_matcher_v3_regex_proto_rawDescGZIP(), []int{1}
168}
169
170func (x *RegexMatchAndSubstitute) GetPattern() *RegexMatcher {
171	if x != nil {
172		return x.Pattern
173	}
174	return nil
175}
176
177func (x *RegexMatchAndSubstitute) GetSubstitution() string {
178	if x != nil {
179		return x.Substitution
180	}
181	return ""
182}
183
184// Google's `RE2 <https://github.com/google/re2>`_ regex engine. The regex string must adhere to
185// the documented `syntax <https://github.com/google/re2/wiki/Syntax>`_. The engine is designed
186// to complete execution in linear time as well as limit the amount of memory used.
187//
188// Envoy supports program size checking via runtime. The runtime keys `re2.max_program_size.error_level`
189// and `re2.max_program_size.warn_level` can be set to integers as the maximum program size or
190// complexity that a compiled regex can have before an exception is thrown or a warning is
191// logged, respectively. `re2.max_program_size.error_level` defaults to 100, and
192// `re2.max_program_size.warn_level` has no default if unset (will not check/log a warning).
193//
194// Envoy emits two stats for tracking the program size of regexes: the histogram `re2.program_size`,
195// which records the program size, and the counter `re2.exceeded_warn_level`, which is incremented
196// each time the program size exceeds the warn level threshold.
197type RegexMatcher_GoogleRE2 struct {
198	state         protoimpl.MessageState
199	sizeCache     protoimpl.SizeCache
200	unknownFields protoimpl.UnknownFields
201
202	// This field controls the RE2 "program size" which is a rough estimate of how complex a
203	// compiled regex is to evaluate. A regex that has a program size greater than the configured
204	// value will fail to compile. In this case, the configured max program size can be increased
205	// or the regex can be simplified. If not specified, the default is 100.
206	//
207	// This field is deprecated; regexp validation should be performed on the management server
208	// instead of being done by each individual client.
209	//
210	// Deprecated: Do not use.
211	MaxProgramSize *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=max_program_size,json=maxProgramSize,proto3" json:"max_program_size,omitempty"`
212}
213
214func (x *RegexMatcher_GoogleRE2) Reset() {
215	*x = RegexMatcher_GoogleRE2{}
216	if protoimpl.UnsafeEnabled {
217		mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[2]
218		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
219		ms.StoreMessageInfo(mi)
220	}
221}
222
223func (x *RegexMatcher_GoogleRE2) String() string {
224	return protoimpl.X.MessageStringOf(x)
225}
226
227func (*RegexMatcher_GoogleRE2) ProtoMessage() {}
228
229func (x *RegexMatcher_GoogleRE2) ProtoReflect() protoreflect.Message {
230	mi := &file_envoy_type_matcher_v3_regex_proto_msgTypes[2]
231	if protoimpl.UnsafeEnabled && x != nil {
232		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
233		if ms.LoadMessageInfo() == nil {
234			ms.StoreMessageInfo(mi)
235		}
236		return ms
237	}
238	return mi.MessageOf(x)
239}
240
241// Deprecated: Use RegexMatcher_GoogleRE2.ProtoReflect.Descriptor instead.
242func (*RegexMatcher_GoogleRE2) Descriptor() ([]byte, []int) {
243	return file_envoy_type_matcher_v3_regex_proto_rawDescGZIP(), []int{0, 0}
244}
245
246// Deprecated: Do not use.
247func (x *RegexMatcher_GoogleRE2) GetMaxProgramSize() *wrappers.UInt32Value {
248	if x != nil {
249		return x.MaxProgramSize
250	}
251	return nil
252}
253
254var File_envoy_type_matcher_v3_regex_proto protoreflect.FileDescriptor
255
256var file_envoy_type_matcher_v3_regex_proto_rawDesc = []byte{
257	0x0a, 0x21, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74,
258	0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x70, 0x72,
259	0x6f, 0x74, 0x6f, 0x12, 0x15, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
260	0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
261	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70,
262	0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x65, 0x6e, 0x76, 0x6f,
263	0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65,
264	0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
265	0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
266	0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21,
267	0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
268	0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
269	0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69,
270	0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x02, 0x0a, 0x0c, 0x52,
271	0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x0a, 0x67,
272	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
273	0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74,
274	0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74,
275	0x63, 0x68, 0x65, 0x72, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x52, 0x45, 0x32, 0x42, 0x08,
276	0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x09, 0x67, 0x6f, 0x6f, 0x67,
277	0x6c, 0x65, 0x52, 0x65, 0x32, 0x12, 0x1d, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02,
278	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x72,
279	0x65, 0x67, 0x65, 0x78, 0x1a, 0x92, 0x01, 0x0a, 0x09, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x52,
280	0x45, 0x32, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,
281	0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
282	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
283	0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7,
284	0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x67,
285	0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x9a, 0xc5, 0x88, 0x1e, 0x2b, 0x0a, 0x29,
286	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68,
287	0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e,
288	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x52, 0x45, 0x32, 0x3a, 0x26, 0x9a, 0xc5, 0x88, 0x1e, 0x21,
289	0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74,
290	0x63, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
291	0x72, 0x42, 0x12, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
292	0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d,
293	0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74,
294	0x65, 0x12, 0x47, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01,
295	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
296	0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78,
297	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10,
298	0x01, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75,
299	0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
300	0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x31,
301	0x9a, 0xc5, 0x88, 0x1e, 0x2c, 0x0a, 0x2a, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70,
302	0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d,
303	0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74,
304	0x65, 0x42, 0x3b, 0x0a, 0x23, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f,
305	0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61,
306	0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x42, 0x0a, 0x52, 0x65, 0x67, 0x65, 0x78, 0x50,
307	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06,
308	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
309}
310
311var (
312	file_envoy_type_matcher_v3_regex_proto_rawDescOnce sync.Once
313	file_envoy_type_matcher_v3_regex_proto_rawDescData = file_envoy_type_matcher_v3_regex_proto_rawDesc
314)
315
316func file_envoy_type_matcher_v3_regex_proto_rawDescGZIP() []byte {
317	file_envoy_type_matcher_v3_regex_proto_rawDescOnce.Do(func() {
318		file_envoy_type_matcher_v3_regex_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_type_matcher_v3_regex_proto_rawDescData)
319	})
320	return file_envoy_type_matcher_v3_regex_proto_rawDescData
321}
322
323var file_envoy_type_matcher_v3_regex_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
324var file_envoy_type_matcher_v3_regex_proto_goTypes = []interface{}{
325	(*RegexMatcher)(nil),            // 0: envoy.type.matcher.v3.RegexMatcher
326	(*RegexMatchAndSubstitute)(nil), // 1: envoy.type.matcher.v3.RegexMatchAndSubstitute
327	(*RegexMatcher_GoogleRE2)(nil),  // 2: envoy.type.matcher.v3.RegexMatcher.GoogleRE2
328	(*wrappers.UInt32Value)(nil),    // 3: google.protobuf.UInt32Value
329}
330var file_envoy_type_matcher_v3_regex_proto_depIdxs = []int32{
331	2, // 0: envoy.type.matcher.v3.RegexMatcher.google_re2:type_name -> envoy.type.matcher.v3.RegexMatcher.GoogleRE2
332	0, // 1: envoy.type.matcher.v3.RegexMatchAndSubstitute.pattern:type_name -> envoy.type.matcher.v3.RegexMatcher
333	3, // 2: envoy.type.matcher.v3.RegexMatcher.GoogleRE2.max_program_size:type_name -> google.protobuf.UInt32Value
334	3, // [3:3] is the sub-list for method output_type
335	3, // [3:3] is the sub-list for method input_type
336	3, // [3:3] is the sub-list for extension type_name
337	3, // [3:3] is the sub-list for extension extendee
338	0, // [0:3] is the sub-list for field type_name
339}
340
341func init() { file_envoy_type_matcher_v3_regex_proto_init() }
342func file_envoy_type_matcher_v3_regex_proto_init() {
343	if File_envoy_type_matcher_v3_regex_proto != nil {
344		return
345	}
346	if !protoimpl.UnsafeEnabled {
347		file_envoy_type_matcher_v3_regex_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
348			switch v := v.(*RegexMatcher); i {
349			case 0:
350				return &v.state
351			case 1:
352				return &v.sizeCache
353			case 2:
354				return &v.unknownFields
355			default:
356				return nil
357			}
358		}
359		file_envoy_type_matcher_v3_regex_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
360			switch v := v.(*RegexMatchAndSubstitute); i {
361			case 0:
362				return &v.state
363			case 1:
364				return &v.sizeCache
365			case 2:
366				return &v.unknownFields
367			default:
368				return nil
369			}
370		}
371		file_envoy_type_matcher_v3_regex_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
372			switch v := v.(*RegexMatcher_GoogleRE2); i {
373			case 0:
374				return &v.state
375			case 1:
376				return &v.sizeCache
377			case 2:
378				return &v.unknownFields
379			default:
380				return nil
381			}
382		}
383	}
384	file_envoy_type_matcher_v3_regex_proto_msgTypes[0].OneofWrappers = []interface{}{
385		(*RegexMatcher_GoogleRe2)(nil),
386	}
387	type x struct{}
388	out := protoimpl.TypeBuilder{
389		File: protoimpl.DescBuilder{
390			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
391			RawDescriptor: file_envoy_type_matcher_v3_regex_proto_rawDesc,
392			NumEnums:      0,
393			NumMessages:   3,
394			NumExtensions: 0,
395			NumServices:   0,
396		},
397		GoTypes:           file_envoy_type_matcher_v3_regex_proto_goTypes,
398		DependencyIndexes: file_envoy_type_matcher_v3_regex_proto_depIdxs,
399		MessageInfos:      file_envoy_type_matcher_v3_regex_proto_msgTypes,
400	}.Build()
401	File_envoy_type_matcher_v3_regex_proto = out.File
402	file_envoy_type_matcher_v3_regex_proto_rawDesc = nil
403	file_envoy_type_matcher_v3_regex_proto_goTypes = nil
404	file_envoy_type_matcher_v3_regex_proto_depIdxs = nil
405}
406