1// Copyright 2019 Google LLC.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16// Code generated by protoc-gen-go. DO NOT EDIT.
17// versions:
18// 	protoc-gen-go v1.26.0
19// 	protoc        v3.12.2
20// source: google/api/expr/v1beta1/expr.proto
21
22package expr
23
24import (
25	reflect "reflect"
26	sync "sync"
27
28	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
29	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
30	structpb "google.golang.org/protobuf/types/known/structpb"
31)
32
33const (
34	// Verify that this generated code is sufficiently up-to-date.
35	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
36	// Verify that runtime/protoimpl is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
38)
39
40// An expression together with source information as returned by the parser.
41type ParsedExpr struct {
42	state         protoimpl.MessageState
43	sizeCache     protoimpl.SizeCache
44	unknownFields protoimpl.UnknownFields
45
46	// The parsed expression.
47	Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"`
48	// The source info derived from input that generated the parsed `expr`.
49	SourceInfo *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
50	// The syntax version of the source, e.g. `cel1`.
51	SyntaxVersion string `protobuf:"bytes,4,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"`
52}
53
54func (x *ParsedExpr) Reset() {
55	*x = ParsedExpr{}
56	if protoimpl.UnsafeEnabled {
57		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[0]
58		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
59		ms.StoreMessageInfo(mi)
60	}
61}
62
63func (x *ParsedExpr) String() string {
64	return protoimpl.X.MessageStringOf(x)
65}
66
67func (*ParsedExpr) ProtoMessage() {}
68
69func (x *ParsedExpr) ProtoReflect() protoreflect.Message {
70	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[0]
71	if protoimpl.UnsafeEnabled && x != nil {
72		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
73		if ms.LoadMessageInfo() == nil {
74			ms.StoreMessageInfo(mi)
75		}
76		return ms
77	}
78	return mi.MessageOf(x)
79}
80
81// Deprecated: Use ParsedExpr.ProtoReflect.Descriptor instead.
82func (*ParsedExpr) Descriptor() ([]byte, []int) {
83	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{0}
84}
85
86func (x *ParsedExpr) GetExpr() *Expr {
87	if x != nil {
88		return x.Expr
89	}
90	return nil
91}
92
93func (x *ParsedExpr) GetSourceInfo() *SourceInfo {
94	if x != nil {
95		return x.SourceInfo
96	}
97	return nil
98}
99
100func (x *ParsedExpr) GetSyntaxVersion() string {
101	if x != nil {
102		return x.SyntaxVersion
103	}
104	return ""
105}
106
107// An abstract representation of a common expression.
108//
109// Expressions are abstractly represented as a collection of identifiers,
110// select statements, function calls, literals, and comprehensions. All
111// operators with the exception of the '.' operator are modelled as function
112// calls. This makes it easy to represent new operators into the existing AST.
113//
114// All references within expressions must resolve to a [Decl][google.api.expr.v1beta1.Decl] provided at
115// type-check for an expression to be valid. A reference may either be a bare
116// identifier `name` or a qualified identifier `google.api.name`. References
117// may either refer to a value or a function declaration.
118//
119// For example, the expression `google.api.name.startsWith('expr')` references
120// the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression, and
121// the function declaration `startsWith`.
122type Expr struct {
123	state         protoimpl.MessageState
124	sizeCache     protoimpl.SizeCache
125	unknownFields protoimpl.UnknownFields
126
127	// Required. An id assigned to this node by the parser which is unique in a
128	// given expression tree. This is used to associate type information and other
129	// attributes to a node in the parse tree.
130	Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
131	// Required. Variants of expressions.
132	//
133	// Types that are assignable to ExprKind:
134	//	*Expr_LiteralExpr
135	//	*Expr_IdentExpr
136	//	*Expr_SelectExpr
137	//	*Expr_CallExpr
138	//	*Expr_ListExpr
139	//	*Expr_StructExpr
140	//	*Expr_ComprehensionExpr
141	ExprKind isExpr_ExprKind `protobuf_oneof:"expr_kind"`
142}
143
144func (x *Expr) Reset() {
145	*x = Expr{}
146	if protoimpl.UnsafeEnabled {
147		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[1]
148		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
149		ms.StoreMessageInfo(mi)
150	}
151}
152
153func (x *Expr) String() string {
154	return protoimpl.X.MessageStringOf(x)
155}
156
157func (*Expr) ProtoMessage() {}
158
159func (x *Expr) ProtoReflect() protoreflect.Message {
160	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[1]
161	if protoimpl.UnsafeEnabled && x != nil {
162		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
163		if ms.LoadMessageInfo() == nil {
164			ms.StoreMessageInfo(mi)
165		}
166		return ms
167	}
168	return mi.MessageOf(x)
169}
170
171// Deprecated: Use Expr.ProtoReflect.Descriptor instead.
172func (*Expr) Descriptor() ([]byte, []int) {
173	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1}
174}
175
176func (x *Expr) GetId() int32 {
177	if x != nil {
178		return x.Id
179	}
180	return 0
181}
182
183func (m *Expr) GetExprKind() isExpr_ExprKind {
184	if m != nil {
185		return m.ExprKind
186	}
187	return nil
188}
189
190func (x *Expr) GetLiteralExpr() *Literal {
191	if x, ok := x.GetExprKind().(*Expr_LiteralExpr); ok {
192		return x.LiteralExpr
193	}
194	return nil
195}
196
197func (x *Expr) GetIdentExpr() *Expr_Ident {
198	if x, ok := x.GetExprKind().(*Expr_IdentExpr); ok {
199		return x.IdentExpr
200	}
201	return nil
202}
203
204func (x *Expr) GetSelectExpr() *Expr_Select {
205	if x, ok := x.GetExprKind().(*Expr_SelectExpr); ok {
206		return x.SelectExpr
207	}
208	return nil
209}
210
211func (x *Expr) GetCallExpr() *Expr_Call {
212	if x, ok := x.GetExprKind().(*Expr_CallExpr); ok {
213		return x.CallExpr
214	}
215	return nil
216}
217
218func (x *Expr) GetListExpr() *Expr_CreateList {
219	if x, ok := x.GetExprKind().(*Expr_ListExpr); ok {
220		return x.ListExpr
221	}
222	return nil
223}
224
225func (x *Expr) GetStructExpr() *Expr_CreateStruct {
226	if x, ok := x.GetExprKind().(*Expr_StructExpr); ok {
227		return x.StructExpr
228	}
229	return nil
230}
231
232func (x *Expr) GetComprehensionExpr() *Expr_Comprehension {
233	if x, ok := x.GetExprKind().(*Expr_ComprehensionExpr); ok {
234		return x.ComprehensionExpr
235	}
236	return nil
237}
238
239type isExpr_ExprKind interface {
240	isExpr_ExprKind()
241}
242
243type Expr_LiteralExpr struct {
244	// A literal expression.
245	LiteralExpr *Literal `protobuf:"bytes,3,opt,name=literal_expr,json=literalExpr,proto3,oneof"`
246}
247
248type Expr_IdentExpr struct {
249	// An identifier expression.
250	IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"`
251}
252
253type Expr_SelectExpr struct {
254	// A field selection expression, e.g. `request.auth`.
255	SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"`
256}
257
258type Expr_CallExpr struct {
259	// A call expression, including calls to predefined functions and operators.
260	CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"`
261}
262
263type Expr_ListExpr struct {
264	// A list creation expression.
265	ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"`
266}
267
268type Expr_StructExpr struct {
269	// A map or object creation expression.
270	StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"`
271}
272
273type Expr_ComprehensionExpr struct {
274	// A comprehension expression.
275	ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"`
276}
277
278func (*Expr_LiteralExpr) isExpr_ExprKind() {}
279
280func (*Expr_IdentExpr) isExpr_ExprKind() {}
281
282func (*Expr_SelectExpr) isExpr_ExprKind() {}
283
284func (*Expr_CallExpr) isExpr_ExprKind() {}
285
286func (*Expr_ListExpr) isExpr_ExprKind() {}
287
288func (*Expr_StructExpr) isExpr_ExprKind() {}
289
290func (*Expr_ComprehensionExpr) isExpr_ExprKind() {}
291
292// Represents a primitive literal.
293//
294// This is similar to the primitives supported in the well-known type
295// `google.protobuf.Value`, but richer so it can represent CEL's full range of
296// primitives.
297//
298// Lists and structs are not included as constants as these aggregate types may
299// contain [Expr][google.api.expr.v1beta1.Expr] elements which require evaluation and are thus not constant.
300//
301// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`,
302// `true`, `null`.
303type Literal struct {
304	state         protoimpl.MessageState
305	sizeCache     protoimpl.SizeCache
306	unknownFields protoimpl.UnknownFields
307
308	// Required. The valid constant kinds.
309	//
310	// Types that are assignable to ConstantKind:
311	//	*Literal_NullValue
312	//	*Literal_BoolValue
313	//	*Literal_Int64Value
314	//	*Literal_Uint64Value
315	//	*Literal_DoubleValue
316	//	*Literal_StringValue
317	//	*Literal_BytesValue
318	ConstantKind isLiteral_ConstantKind `protobuf_oneof:"constant_kind"`
319}
320
321func (x *Literal) Reset() {
322	*x = Literal{}
323	if protoimpl.UnsafeEnabled {
324		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[2]
325		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
326		ms.StoreMessageInfo(mi)
327	}
328}
329
330func (x *Literal) String() string {
331	return protoimpl.X.MessageStringOf(x)
332}
333
334func (*Literal) ProtoMessage() {}
335
336func (x *Literal) ProtoReflect() protoreflect.Message {
337	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[2]
338	if protoimpl.UnsafeEnabled && x != nil {
339		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
340		if ms.LoadMessageInfo() == nil {
341			ms.StoreMessageInfo(mi)
342		}
343		return ms
344	}
345	return mi.MessageOf(x)
346}
347
348// Deprecated: Use Literal.ProtoReflect.Descriptor instead.
349func (*Literal) Descriptor() ([]byte, []int) {
350	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{2}
351}
352
353func (m *Literal) GetConstantKind() isLiteral_ConstantKind {
354	if m != nil {
355		return m.ConstantKind
356	}
357	return nil
358}
359
360func (x *Literal) GetNullValue() structpb.NullValue {
361	if x, ok := x.GetConstantKind().(*Literal_NullValue); ok {
362		return x.NullValue
363	}
364	return structpb.NullValue_NULL_VALUE
365}
366
367func (x *Literal) GetBoolValue() bool {
368	if x, ok := x.GetConstantKind().(*Literal_BoolValue); ok {
369		return x.BoolValue
370	}
371	return false
372}
373
374func (x *Literal) GetInt64Value() int64 {
375	if x, ok := x.GetConstantKind().(*Literal_Int64Value); ok {
376		return x.Int64Value
377	}
378	return 0
379}
380
381func (x *Literal) GetUint64Value() uint64 {
382	if x, ok := x.GetConstantKind().(*Literal_Uint64Value); ok {
383		return x.Uint64Value
384	}
385	return 0
386}
387
388func (x *Literal) GetDoubleValue() float64 {
389	if x, ok := x.GetConstantKind().(*Literal_DoubleValue); ok {
390		return x.DoubleValue
391	}
392	return 0
393}
394
395func (x *Literal) GetStringValue() string {
396	if x, ok := x.GetConstantKind().(*Literal_StringValue); ok {
397		return x.StringValue
398	}
399	return ""
400}
401
402func (x *Literal) GetBytesValue() []byte {
403	if x, ok := x.GetConstantKind().(*Literal_BytesValue); ok {
404		return x.BytesValue
405	}
406	return nil
407}
408
409type isLiteral_ConstantKind interface {
410	isLiteral_ConstantKind()
411}
412
413type Literal_NullValue struct {
414	// null value.
415	NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
416}
417
418type Literal_BoolValue struct {
419	// boolean value.
420	BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
421}
422
423type Literal_Int64Value struct {
424	// int64 value.
425	Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
426}
427
428type Literal_Uint64Value struct {
429	// uint64 value.
430	Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
431}
432
433type Literal_DoubleValue struct {
434	// double value.
435	DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
436}
437
438type Literal_StringValue struct {
439	// string value.
440	StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
441}
442
443type Literal_BytesValue struct {
444	// bytes value.
445	BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
446}
447
448func (*Literal_NullValue) isLiteral_ConstantKind() {}
449
450func (*Literal_BoolValue) isLiteral_ConstantKind() {}
451
452func (*Literal_Int64Value) isLiteral_ConstantKind() {}
453
454func (*Literal_Uint64Value) isLiteral_ConstantKind() {}
455
456func (*Literal_DoubleValue) isLiteral_ConstantKind() {}
457
458func (*Literal_StringValue) isLiteral_ConstantKind() {}
459
460func (*Literal_BytesValue) isLiteral_ConstantKind() {}
461
462// An identifier expression. e.g. `request`.
463type Expr_Ident struct {
464	state         protoimpl.MessageState
465	sizeCache     protoimpl.SizeCache
466	unknownFields protoimpl.UnknownFields
467
468	// Required. Holds a single, unqualified identifier, possibly preceded by a
469	// '.'.
470	//
471	// Qualified names are represented by the [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression.
472	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
473}
474
475func (x *Expr_Ident) Reset() {
476	*x = Expr_Ident{}
477	if protoimpl.UnsafeEnabled {
478		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[3]
479		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
480		ms.StoreMessageInfo(mi)
481	}
482}
483
484func (x *Expr_Ident) String() string {
485	return protoimpl.X.MessageStringOf(x)
486}
487
488func (*Expr_Ident) ProtoMessage() {}
489
490func (x *Expr_Ident) ProtoReflect() protoreflect.Message {
491	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[3]
492	if protoimpl.UnsafeEnabled && x != nil {
493		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
494		if ms.LoadMessageInfo() == nil {
495			ms.StoreMessageInfo(mi)
496		}
497		return ms
498	}
499	return mi.MessageOf(x)
500}
501
502// Deprecated: Use Expr_Ident.ProtoReflect.Descriptor instead.
503func (*Expr_Ident) Descriptor() ([]byte, []int) {
504	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 0}
505}
506
507func (x *Expr_Ident) GetName() string {
508	if x != nil {
509		return x.Name
510	}
511	return ""
512}
513
514// A field selection expression. e.g. `request.auth`.
515type Expr_Select struct {
516	state         protoimpl.MessageState
517	sizeCache     protoimpl.SizeCache
518	unknownFields protoimpl.UnknownFields
519
520	// Required. The target of the selection expression.
521	//
522	// For example, in the select expression `request.auth`, the `request`
523	// portion of the expression is the `operand`.
524	Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"`
525	// Required. The name of the field to select.
526	//
527	// For example, in the select expression `request.auth`, the `auth` portion
528	// of the expression would be the `field`.
529	Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
530	// Whether the select is to be interpreted as a field presence test.
531	//
532	// This results from the macro `has(request.auth)`.
533	TestOnly bool `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"`
534}
535
536func (x *Expr_Select) Reset() {
537	*x = Expr_Select{}
538	if protoimpl.UnsafeEnabled {
539		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[4]
540		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
541		ms.StoreMessageInfo(mi)
542	}
543}
544
545func (x *Expr_Select) String() string {
546	return protoimpl.X.MessageStringOf(x)
547}
548
549func (*Expr_Select) ProtoMessage() {}
550
551func (x *Expr_Select) ProtoReflect() protoreflect.Message {
552	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[4]
553	if protoimpl.UnsafeEnabled && x != nil {
554		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
555		if ms.LoadMessageInfo() == nil {
556			ms.StoreMessageInfo(mi)
557		}
558		return ms
559	}
560	return mi.MessageOf(x)
561}
562
563// Deprecated: Use Expr_Select.ProtoReflect.Descriptor instead.
564func (*Expr_Select) Descriptor() ([]byte, []int) {
565	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 1}
566}
567
568func (x *Expr_Select) GetOperand() *Expr {
569	if x != nil {
570		return x.Operand
571	}
572	return nil
573}
574
575func (x *Expr_Select) GetField() string {
576	if x != nil {
577		return x.Field
578	}
579	return ""
580}
581
582func (x *Expr_Select) GetTestOnly() bool {
583	if x != nil {
584		return x.TestOnly
585	}
586	return false
587}
588
589// A call expression, including calls to predefined functions and operators.
590//
591// For example, `value == 10`, `size(map_value)`.
592type Expr_Call struct {
593	state         protoimpl.MessageState
594	sizeCache     protoimpl.SizeCache
595	unknownFields protoimpl.UnknownFields
596
597	// The target of an method call-style expression. For example, `x` in
598	// `x.f()`.
599	Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
600	// Required. The name of the function or method being called.
601	Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
602	// The arguments.
603	Args []*Expr `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
604}
605
606func (x *Expr_Call) Reset() {
607	*x = Expr_Call{}
608	if protoimpl.UnsafeEnabled {
609		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[5]
610		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
611		ms.StoreMessageInfo(mi)
612	}
613}
614
615func (x *Expr_Call) String() string {
616	return protoimpl.X.MessageStringOf(x)
617}
618
619func (*Expr_Call) ProtoMessage() {}
620
621func (x *Expr_Call) ProtoReflect() protoreflect.Message {
622	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[5]
623	if protoimpl.UnsafeEnabled && x != nil {
624		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
625		if ms.LoadMessageInfo() == nil {
626			ms.StoreMessageInfo(mi)
627		}
628		return ms
629	}
630	return mi.MessageOf(x)
631}
632
633// Deprecated: Use Expr_Call.ProtoReflect.Descriptor instead.
634func (*Expr_Call) Descriptor() ([]byte, []int) {
635	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 2}
636}
637
638func (x *Expr_Call) GetTarget() *Expr {
639	if x != nil {
640		return x.Target
641	}
642	return nil
643}
644
645func (x *Expr_Call) GetFunction() string {
646	if x != nil {
647		return x.Function
648	}
649	return ""
650}
651
652func (x *Expr_Call) GetArgs() []*Expr {
653	if x != nil {
654		return x.Args
655	}
656	return nil
657}
658
659// A list creation expression.
660//
661// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g.
662// `dyn([1, 'hello', 2.0])`
663type Expr_CreateList struct {
664	state         protoimpl.MessageState
665	sizeCache     protoimpl.SizeCache
666	unknownFields protoimpl.UnknownFields
667
668	// The elements part of the list.
669	Elements []*Expr `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
670}
671
672func (x *Expr_CreateList) Reset() {
673	*x = Expr_CreateList{}
674	if protoimpl.UnsafeEnabled {
675		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[6]
676		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
677		ms.StoreMessageInfo(mi)
678	}
679}
680
681func (x *Expr_CreateList) String() string {
682	return protoimpl.X.MessageStringOf(x)
683}
684
685func (*Expr_CreateList) ProtoMessage() {}
686
687func (x *Expr_CreateList) ProtoReflect() protoreflect.Message {
688	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[6]
689	if protoimpl.UnsafeEnabled && x != nil {
690		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
691		if ms.LoadMessageInfo() == nil {
692			ms.StoreMessageInfo(mi)
693		}
694		return ms
695	}
696	return mi.MessageOf(x)
697}
698
699// Deprecated: Use Expr_CreateList.ProtoReflect.Descriptor instead.
700func (*Expr_CreateList) Descriptor() ([]byte, []int) {
701	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 3}
702}
703
704func (x *Expr_CreateList) GetElements() []*Expr {
705	if x != nil {
706		return x.Elements
707	}
708	return nil
709}
710
711// A map or message creation expression.
712//
713// Maps are constructed as `{'key_name': 'value'}`. Message construction is
714// similar, but prefixed with a type name and composed of field ids:
715// `types.MyType{field_id: 'value'}`.
716type Expr_CreateStruct struct {
717	state         protoimpl.MessageState
718	sizeCache     protoimpl.SizeCache
719	unknownFields protoimpl.UnknownFields
720
721	// The type name of the message to be created, empty when creating map
722	// literals.
723	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
724	// The entries in the creation expression.
725	Entries []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
726}
727
728func (x *Expr_CreateStruct) Reset() {
729	*x = Expr_CreateStruct{}
730	if protoimpl.UnsafeEnabled {
731		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[7]
732		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
733		ms.StoreMessageInfo(mi)
734	}
735}
736
737func (x *Expr_CreateStruct) String() string {
738	return protoimpl.X.MessageStringOf(x)
739}
740
741func (*Expr_CreateStruct) ProtoMessage() {}
742
743func (x *Expr_CreateStruct) ProtoReflect() protoreflect.Message {
744	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[7]
745	if protoimpl.UnsafeEnabled && x != nil {
746		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
747		if ms.LoadMessageInfo() == nil {
748			ms.StoreMessageInfo(mi)
749		}
750		return ms
751	}
752	return mi.MessageOf(x)
753}
754
755// Deprecated: Use Expr_CreateStruct.ProtoReflect.Descriptor instead.
756func (*Expr_CreateStruct) Descriptor() ([]byte, []int) {
757	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 4}
758}
759
760func (x *Expr_CreateStruct) GetType() string {
761	if x != nil {
762		return x.Type
763	}
764	return ""
765}
766
767func (x *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry {
768	if x != nil {
769		return x.Entries
770	}
771	return nil
772}
773
774// A comprehension expression applied to a list or map.
775//
776// Comprehensions are not part of the core syntax, but enabled with macros.
777// A macro matches a specific call signature within a parsed AST and replaces
778// the call with an alternate AST block. Macro expansion happens at parse
779// time.
780//
781// The following macros are supported within CEL:
782//
783// Aggregate type macros may be applied to all elements in a list or all keys
784// in a map:
785//
786// *  `all`, `exists`, `exists_one` -  test a predicate expression against
787//    the inputs and return `true` if the predicate is satisfied for all,
788//    any, or only one value `list.all(x, x < 10)`.
789// *  `filter` - test a predicate expression against the inputs and return
790//    the subset of elements which satisfy the predicate:
791//    `payments.filter(p, p > 1000)`.
792// *  `map` - apply an expression to all elements in the input and return the
793//    output aggregate type: `[1, 2, 3].map(i, i * i)`.
794//
795// The `has(m.x)` macro tests whether the property `x` is present in struct
796// `m`. The semantics of this macro depend on the type of `m`. For proto2
797// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the
798// macro tests whether the property is set to its default. For map and struct
799// types, the macro tests whether the property `x` is defined on `m`.
800type Expr_Comprehension struct {
801	state         protoimpl.MessageState
802	sizeCache     protoimpl.SizeCache
803	unknownFields protoimpl.UnknownFields
804
805	// The name of the iteration variable.
806	IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"`
807	// The range over which var iterates.
808	IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"`
809	// The name of the variable used for accumulation of the result.
810	AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"`
811	// The initial value of the accumulator.
812	AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"`
813	// An expression which can contain iter_var and accu_var.
814	//
815	// Returns false when the result has been computed and may be used as
816	// a hint to short-circuit the remainder of the comprehension.
817	LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"`
818	// An expression which can contain iter_var and accu_var.
819	//
820	// Computes the next value of accu_var.
821	LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"`
822	// An expression which can contain accu_var.
823	//
824	// Computes the result.
825	Result *Expr `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"`
826}
827
828func (x *Expr_Comprehension) Reset() {
829	*x = Expr_Comprehension{}
830	if protoimpl.UnsafeEnabled {
831		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[8]
832		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
833		ms.StoreMessageInfo(mi)
834	}
835}
836
837func (x *Expr_Comprehension) String() string {
838	return protoimpl.X.MessageStringOf(x)
839}
840
841func (*Expr_Comprehension) ProtoMessage() {}
842
843func (x *Expr_Comprehension) ProtoReflect() protoreflect.Message {
844	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[8]
845	if protoimpl.UnsafeEnabled && x != nil {
846		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
847		if ms.LoadMessageInfo() == nil {
848			ms.StoreMessageInfo(mi)
849		}
850		return ms
851	}
852	return mi.MessageOf(x)
853}
854
855// Deprecated: Use Expr_Comprehension.ProtoReflect.Descriptor instead.
856func (*Expr_Comprehension) Descriptor() ([]byte, []int) {
857	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 5}
858}
859
860func (x *Expr_Comprehension) GetIterVar() string {
861	if x != nil {
862		return x.IterVar
863	}
864	return ""
865}
866
867func (x *Expr_Comprehension) GetIterRange() *Expr {
868	if x != nil {
869		return x.IterRange
870	}
871	return nil
872}
873
874func (x *Expr_Comprehension) GetAccuVar() string {
875	if x != nil {
876		return x.AccuVar
877	}
878	return ""
879}
880
881func (x *Expr_Comprehension) GetAccuInit() *Expr {
882	if x != nil {
883		return x.AccuInit
884	}
885	return nil
886}
887
888func (x *Expr_Comprehension) GetLoopCondition() *Expr {
889	if x != nil {
890		return x.LoopCondition
891	}
892	return nil
893}
894
895func (x *Expr_Comprehension) GetLoopStep() *Expr {
896	if x != nil {
897		return x.LoopStep
898	}
899	return nil
900}
901
902func (x *Expr_Comprehension) GetResult() *Expr {
903	if x != nil {
904		return x.Result
905	}
906	return nil
907}
908
909// Represents an entry.
910type Expr_CreateStruct_Entry struct {
911	state         protoimpl.MessageState
912	sizeCache     protoimpl.SizeCache
913	unknownFields protoimpl.UnknownFields
914
915	// Required. An id assigned to this node by the parser which is unique
916	// in a given expression tree. This is used to associate type
917	// information and other attributes to the node.
918	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
919	// The `Entry` key kinds.
920	//
921	// Types that are assignable to KeyKind:
922	//	*Expr_CreateStruct_Entry_FieldKey
923	//	*Expr_CreateStruct_Entry_MapKey
924	KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"`
925	// Required. The value assigned to the key.
926	Value *Expr `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
927}
928
929func (x *Expr_CreateStruct_Entry) Reset() {
930	*x = Expr_CreateStruct_Entry{}
931	if protoimpl.UnsafeEnabled {
932		mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[9]
933		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
934		ms.StoreMessageInfo(mi)
935	}
936}
937
938func (x *Expr_CreateStruct_Entry) String() string {
939	return protoimpl.X.MessageStringOf(x)
940}
941
942func (*Expr_CreateStruct_Entry) ProtoMessage() {}
943
944func (x *Expr_CreateStruct_Entry) ProtoReflect() protoreflect.Message {
945	mi := &file_google_api_expr_v1beta1_expr_proto_msgTypes[9]
946	if protoimpl.UnsafeEnabled && x != nil {
947		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
948		if ms.LoadMessageInfo() == nil {
949			ms.StoreMessageInfo(mi)
950		}
951		return ms
952	}
953	return mi.MessageOf(x)
954}
955
956// Deprecated: Use Expr_CreateStruct_Entry.ProtoReflect.Descriptor instead.
957func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) {
958	return file_google_api_expr_v1beta1_expr_proto_rawDescGZIP(), []int{1, 4, 0}
959}
960
961func (x *Expr_CreateStruct_Entry) GetId() int32 {
962	if x != nil {
963		return x.Id
964	}
965	return 0
966}
967
968func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind {
969	if m != nil {
970		return m.KeyKind
971	}
972	return nil
973}
974
975func (x *Expr_CreateStruct_Entry) GetFieldKey() string {
976	if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok {
977		return x.FieldKey
978	}
979	return ""
980}
981
982func (x *Expr_CreateStruct_Entry) GetMapKey() *Expr {
983	if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok {
984		return x.MapKey
985	}
986	return nil
987}
988
989func (x *Expr_CreateStruct_Entry) GetValue() *Expr {
990	if x != nil {
991		return x.Value
992	}
993	return nil
994}
995
996type isExpr_CreateStruct_Entry_KeyKind interface {
997	isExpr_CreateStruct_Entry_KeyKind()
998}
999
1000type Expr_CreateStruct_Entry_FieldKey struct {
1001	// The field key for a message creator statement.
1002	FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"`
1003}
1004
1005type Expr_CreateStruct_Entry_MapKey struct {
1006	// The key expression for a map creation statement.
1007	MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"`
1008}
1009
1010func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {}
1011
1012func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {}
1013
1014var File_google_api_expr_v1beta1_expr_proto protoreflect.FileDescriptor
1015
1016var file_google_api_expr_v1beta1_expr_proto_rawDesc = []byte{
1017	0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70,
1018	0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x70,
1019	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
1020	0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x24, 0x67,
1021	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76,
1022	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72,
1023	0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
1024	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
1025	0x6f, 0x22, 0xac, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72,
1026	0x12, 0x31, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
1027	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72,
1028	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65,
1029	0x78, 0x70, 0x72, 0x12, 0x44, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e,
1030	0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1031	0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1032	0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73,
1033	0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x79, 0x6e,
1034	0x74, 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
1035	0x09, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
1036	0x22, 0xbd, 0x0c, 0x0a, 0x04, 0x45, 0x78, 0x70, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
1037	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x6c, 0x69, 0x74,
1038	0x65, 0x72, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
1039	0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70,
1040	0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61,
1041	0x6c, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x72,
1042	0x12, 0x44, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04,
1043	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70,
1044	0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45,
1045	0x78, 0x70, 0x72, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x64, 0x65,
1046	0x6e, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x47, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
1047	0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f,
1048	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31,
1049	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63,
1050	0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12,
1051	0x41, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x06, 0x20, 0x01,
1052	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
1053	0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70,
1054	0x72, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x45, 0x78,
1055	0x70, 0x72, 0x12, 0x47, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
1056	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
1057	0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
1058	0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48,
1059	0x00, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x0b, 0x73,
1060	0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
1061	0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78,
1062	0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e,
1063	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a,
1064	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x5c, 0x0a, 0x12, 0x63, 0x6f,
1065	0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72,
1066	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1067	0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1068	0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73,
1069	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e,
1070	0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x1b, 0x0a, 0x05, 0x49, 0x64, 0x65, 0x6e,
1071	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
1072	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x74, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12,
1073	0x37, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
1074	0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78,
1075	0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52,
1076	0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c,
1077	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b,
1078	0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
1079	0x08, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0x8c, 0x01, 0x0a, 0x04,
1080	0x43, 0x61, 0x6c, 0x6c, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01,
1081	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70,
1082	0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45,
1083	0x78, 0x70, 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66,
1084	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
1085	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18,
1086	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
1087	0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
1088	0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x47, 0x0a, 0x0a, 0x43, 0x72,
1089	0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d,
1090	0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f,
1091	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62,
1092	0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65,
1093	0x6e, 0x74, 0x73, 0x1a, 0xa2, 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74,
1094	0x72, 0x75, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
1095	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72,
1096	0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1097	0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
1098	0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
1099	0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74,
1100	0x72, 0x69, 0x65, 0x73, 0x1a, 0xb1, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e,
1101	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d,
1102	0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
1103	0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a,
1104	0x07, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
1105	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72,
1106	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52,
1107	0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
1108	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1109	0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1110	0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08,
1111	0x6b, 0x65, 0x79, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xf8, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6d,
1112	0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74,
1113	0x65, 0x72, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x74,
1114	0x65, 0x72, 0x56, 0x61, 0x72, 0x12, 0x3c, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x61,
1115	0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1116	0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65,
1117	0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x69, 0x74, 0x65, 0x72, 0x52, 0x61,
1118	0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75, 0x5f, 0x76, 0x61, 0x72, 0x18,
1119	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x75, 0x56, 0x61, 0x72, 0x12, 0x3a,
1120	0x0a, 0x09, 0x61, 0x63, 0x63, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
1121	0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65,
1122	0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72,
1123	0x52, 0x08, 0x61, 0x63, 0x63, 0x75, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x6c, 0x6f,
1124	0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
1125	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
1126	0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70,
1127	0x72, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
1128	0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20,
1129	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
1130	0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78,
1131	0x70, 0x72, 0x52, 0x08, 0x6c, 0x6f, 0x6f, 0x70, 0x53, 0x74, 0x65, 0x70, 0x12, 0x35, 0x0a, 0x06,
1132	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67,
1133	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76,
1134	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x72, 0x65, 0x73,
1135	0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64,
1136	0x22, 0xad, 0x02, 0x0a, 0x07, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x0a,
1137	0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
1138	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
1139	0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09,
1140	0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f,
1141	0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,
1142	0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e,
1143	0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48,
1144	0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a,
1145	0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20,
1146	0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c,
1147	0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c,
1148	0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62,
1149	0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e,
1150	0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
1151	0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b,
1152	0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
1153	0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
1154	0x0f, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64,
1155	0x42, 0x6a, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
1156	0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42,
1157	0x09, 0x45, 0x78, 0x70, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x6f,
1158	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
1159	0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
1160	0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x31, 0x62,
1161	0x65, 0x74, 0x61, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72,
1162	0x6f, 0x74, 0x6f, 0x33,
1163}
1164
1165var (
1166	file_google_api_expr_v1beta1_expr_proto_rawDescOnce sync.Once
1167	file_google_api_expr_v1beta1_expr_proto_rawDescData = file_google_api_expr_v1beta1_expr_proto_rawDesc
1168)
1169
1170func file_google_api_expr_v1beta1_expr_proto_rawDescGZIP() []byte {
1171	file_google_api_expr_v1beta1_expr_proto_rawDescOnce.Do(func() {
1172		file_google_api_expr_v1beta1_expr_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_expr_v1beta1_expr_proto_rawDescData)
1173	})
1174	return file_google_api_expr_v1beta1_expr_proto_rawDescData
1175}
1176
1177var file_google_api_expr_v1beta1_expr_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
1178var file_google_api_expr_v1beta1_expr_proto_goTypes = []interface{}{
1179	(*ParsedExpr)(nil),              // 0: google.api.expr.v1beta1.ParsedExpr
1180	(*Expr)(nil),                    // 1: google.api.expr.v1beta1.Expr
1181	(*Literal)(nil),                 // 2: google.api.expr.v1beta1.Literal
1182	(*Expr_Ident)(nil),              // 3: google.api.expr.v1beta1.Expr.Ident
1183	(*Expr_Select)(nil),             // 4: google.api.expr.v1beta1.Expr.Select
1184	(*Expr_Call)(nil),               // 5: google.api.expr.v1beta1.Expr.Call
1185	(*Expr_CreateList)(nil),         // 6: google.api.expr.v1beta1.Expr.CreateList
1186	(*Expr_CreateStruct)(nil),       // 7: google.api.expr.v1beta1.Expr.CreateStruct
1187	(*Expr_Comprehension)(nil),      // 8: google.api.expr.v1beta1.Expr.Comprehension
1188	(*Expr_CreateStruct_Entry)(nil), // 9: google.api.expr.v1beta1.Expr.CreateStruct.Entry
1189	(*SourceInfo)(nil),              // 10: google.api.expr.v1beta1.SourceInfo
1190	(structpb.NullValue)(0),         // 11: google.protobuf.NullValue
1191}
1192var file_google_api_expr_v1beta1_expr_proto_depIdxs = []int32{
1193	1,  // 0: google.api.expr.v1beta1.ParsedExpr.expr:type_name -> google.api.expr.v1beta1.Expr
1194	10, // 1: google.api.expr.v1beta1.ParsedExpr.source_info:type_name -> google.api.expr.v1beta1.SourceInfo
1195	2,  // 2: google.api.expr.v1beta1.Expr.literal_expr:type_name -> google.api.expr.v1beta1.Literal
1196	3,  // 3: google.api.expr.v1beta1.Expr.ident_expr:type_name -> google.api.expr.v1beta1.Expr.Ident
1197	4,  // 4: google.api.expr.v1beta1.Expr.select_expr:type_name -> google.api.expr.v1beta1.Expr.Select
1198	5,  // 5: google.api.expr.v1beta1.Expr.call_expr:type_name -> google.api.expr.v1beta1.Expr.Call
1199	6,  // 6: google.api.expr.v1beta1.Expr.list_expr:type_name -> google.api.expr.v1beta1.Expr.CreateList
1200	7,  // 7: google.api.expr.v1beta1.Expr.struct_expr:type_name -> google.api.expr.v1beta1.Expr.CreateStruct
1201	8,  // 8: google.api.expr.v1beta1.Expr.comprehension_expr:type_name -> google.api.expr.v1beta1.Expr.Comprehension
1202	11, // 9: google.api.expr.v1beta1.Literal.null_value:type_name -> google.protobuf.NullValue
1203	1,  // 10: google.api.expr.v1beta1.Expr.Select.operand:type_name -> google.api.expr.v1beta1.Expr
1204	1,  // 11: google.api.expr.v1beta1.Expr.Call.target:type_name -> google.api.expr.v1beta1.Expr
1205	1,  // 12: google.api.expr.v1beta1.Expr.Call.args:type_name -> google.api.expr.v1beta1.Expr
1206	1,  // 13: google.api.expr.v1beta1.Expr.CreateList.elements:type_name -> google.api.expr.v1beta1.Expr
1207	9,  // 14: google.api.expr.v1beta1.Expr.CreateStruct.entries:type_name -> google.api.expr.v1beta1.Expr.CreateStruct.Entry
1208	1,  // 15: google.api.expr.v1beta1.Expr.Comprehension.iter_range:type_name -> google.api.expr.v1beta1.Expr
1209	1,  // 16: google.api.expr.v1beta1.Expr.Comprehension.accu_init:type_name -> google.api.expr.v1beta1.Expr
1210	1,  // 17: google.api.expr.v1beta1.Expr.Comprehension.loop_condition:type_name -> google.api.expr.v1beta1.Expr
1211	1,  // 18: google.api.expr.v1beta1.Expr.Comprehension.loop_step:type_name -> google.api.expr.v1beta1.Expr
1212	1,  // 19: google.api.expr.v1beta1.Expr.Comprehension.result:type_name -> google.api.expr.v1beta1.Expr
1213	1,  // 20: google.api.expr.v1beta1.Expr.CreateStruct.Entry.map_key:type_name -> google.api.expr.v1beta1.Expr
1214	1,  // 21: google.api.expr.v1beta1.Expr.CreateStruct.Entry.value:type_name -> google.api.expr.v1beta1.Expr
1215	22, // [22:22] is the sub-list for method output_type
1216	22, // [22:22] is the sub-list for method input_type
1217	22, // [22:22] is the sub-list for extension type_name
1218	22, // [22:22] is the sub-list for extension extendee
1219	0,  // [0:22] is the sub-list for field type_name
1220}
1221
1222func init() { file_google_api_expr_v1beta1_expr_proto_init() }
1223func file_google_api_expr_v1beta1_expr_proto_init() {
1224	if File_google_api_expr_v1beta1_expr_proto != nil {
1225		return
1226	}
1227	file_google_api_expr_v1beta1_source_proto_init()
1228	if !protoimpl.UnsafeEnabled {
1229		file_google_api_expr_v1beta1_expr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1230			switch v := v.(*ParsedExpr); i {
1231			case 0:
1232				return &v.state
1233			case 1:
1234				return &v.sizeCache
1235			case 2:
1236				return &v.unknownFields
1237			default:
1238				return nil
1239			}
1240		}
1241		file_google_api_expr_v1beta1_expr_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1242			switch v := v.(*Expr); i {
1243			case 0:
1244				return &v.state
1245			case 1:
1246				return &v.sizeCache
1247			case 2:
1248				return &v.unknownFields
1249			default:
1250				return nil
1251			}
1252		}
1253		file_google_api_expr_v1beta1_expr_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1254			switch v := v.(*Literal); i {
1255			case 0:
1256				return &v.state
1257			case 1:
1258				return &v.sizeCache
1259			case 2:
1260				return &v.unknownFields
1261			default:
1262				return nil
1263			}
1264		}
1265		file_google_api_expr_v1beta1_expr_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1266			switch v := v.(*Expr_Ident); i {
1267			case 0:
1268				return &v.state
1269			case 1:
1270				return &v.sizeCache
1271			case 2:
1272				return &v.unknownFields
1273			default:
1274				return nil
1275			}
1276		}
1277		file_google_api_expr_v1beta1_expr_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1278			switch v := v.(*Expr_Select); i {
1279			case 0:
1280				return &v.state
1281			case 1:
1282				return &v.sizeCache
1283			case 2:
1284				return &v.unknownFields
1285			default:
1286				return nil
1287			}
1288		}
1289		file_google_api_expr_v1beta1_expr_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1290			switch v := v.(*Expr_Call); i {
1291			case 0:
1292				return &v.state
1293			case 1:
1294				return &v.sizeCache
1295			case 2:
1296				return &v.unknownFields
1297			default:
1298				return nil
1299			}
1300		}
1301		file_google_api_expr_v1beta1_expr_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1302			switch v := v.(*Expr_CreateList); i {
1303			case 0:
1304				return &v.state
1305			case 1:
1306				return &v.sizeCache
1307			case 2:
1308				return &v.unknownFields
1309			default:
1310				return nil
1311			}
1312		}
1313		file_google_api_expr_v1beta1_expr_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1314			switch v := v.(*Expr_CreateStruct); i {
1315			case 0:
1316				return &v.state
1317			case 1:
1318				return &v.sizeCache
1319			case 2:
1320				return &v.unknownFields
1321			default:
1322				return nil
1323			}
1324		}
1325		file_google_api_expr_v1beta1_expr_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1326			switch v := v.(*Expr_Comprehension); i {
1327			case 0:
1328				return &v.state
1329			case 1:
1330				return &v.sizeCache
1331			case 2:
1332				return &v.unknownFields
1333			default:
1334				return nil
1335			}
1336		}
1337		file_google_api_expr_v1beta1_expr_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1338			switch v := v.(*Expr_CreateStruct_Entry); i {
1339			case 0:
1340				return &v.state
1341			case 1:
1342				return &v.sizeCache
1343			case 2:
1344				return &v.unknownFields
1345			default:
1346				return nil
1347			}
1348		}
1349	}
1350	file_google_api_expr_v1beta1_expr_proto_msgTypes[1].OneofWrappers = []interface{}{
1351		(*Expr_LiteralExpr)(nil),
1352		(*Expr_IdentExpr)(nil),
1353		(*Expr_SelectExpr)(nil),
1354		(*Expr_CallExpr)(nil),
1355		(*Expr_ListExpr)(nil),
1356		(*Expr_StructExpr)(nil),
1357		(*Expr_ComprehensionExpr)(nil),
1358	}
1359	file_google_api_expr_v1beta1_expr_proto_msgTypes[2].OneofWrappers = []interface{}{
1360		(*Literal_NullValue)(nil),
1361		(*Literal_BoolValue)(nil),
1362		(*Literal_Int64Value)(nil),
1363		(*Literal_Uint64Value)(nil),
1364		(*Literal_DoubleValue)(nil),
1365		(*Literal_StringValue)(nil),
1366		(*Literal_BytesValue)(nil),
1367	}
1368	file_google_api_expr_v1beta1_expr_proto_msgTypes[9].OneofWrappers = []interface{}{
1369		(*Expr_CreateStruct_Entry_FieldKey)(nil),
1370		(*Expr_CreateStruct_Entry_MapKey)(nil),
1371	}
1372	type x struct{}
1373	out := protoimpl.TypeBuilder{
1374		File: protoimpl.DescBuilder{
1375			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1376			RawDescriptor: file_google_api_expr_v1beta1_expr_proto_rawDesc,
1377			NumEnums:      0,
1378			NumMessages:   10,
1379			NumExtensions: 0,
1380			NumServices:   0,
1381		},
1382		GoTypes:           file_google_api_expr_v1beta1_expr_proto_goTypes,
1383		DependencyIndexes: file_google_api_expr_v1beta1_expr_proto_depIdxs,
1384		MessageInfos:      file_google_api_expr_v1beta1_expr_proto_msgTypes,
1385	}.Build()
1386	File_google_api_expr_v1beta1_expr_proto = out.File
1387	file_google_api_expr_v1beta1_expr_proto_rawDesc = nil
1388	file_google_api_expr_v1beta1_expr_proto_goTypes = nil
1389	file_google_api_expr_v1beta1_expr_proto_depIdxs = nil
1390}
1391