1// Copyright 2021 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// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/api/expr/v1alpha1/syntax.proto 20 21package expr 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 28 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 29 durationpb "google.golang.org/protobuf/types/known/durationpb" 30 structpb "google.golang.org/protobuf/types/known/structpb" 31 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 32) 33 34const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39) 40 41// An expression together with source information as returned by the parser. 42type ParsedExpr struct { 43 state protoimpl.MessageState 44 sizeCache protoimpl.SizeCache 45 unknownFields protoimpl.UnknownFields 46 47 // The parsed expression. 48 Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"` 49 // The source info derived from input that generated the parsed `expr`. 50 SourceInfo *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"` 51} 52 53func (x *ParsedExpr) Reset() { 54 *x = ParsedExpr{} 55 if protoimpl.UnsafeEnabled { 56 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[0] 57 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 58 ms.StoreMessageInfo(mi) 59 } 60} 61 62func (x *ParsedExpr) String() string { 63 return protoimpl.X.MessageStringOf(x) 64} 65 66func (*ParsedExpr) ProtoMessage() {} 67 68func (x *ParsedExpr) ProtoReflect() protoreflect.Message { 69 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[0] 70 if protoimpl.UnsafeEnabled && x != nil { 71 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 72 if ms.LoadMessageInfo() == nil { 73 ms.StoreMessageInfo(mi) 74 } 75 return ms 76 } 77 return mi.MessageOf(x) 78} 79 80// Deprecated: Use ParsedExpr.ProtoReflect.Descriptor instead. 81func (*ParsedExpr) Descriptor() ([]byte, []int) { 82 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{0} 83} 84 85func (x *ParsedExpr) GetExpr() *Expr { 86 if x != nil { 87 return x.Expr 88 } 89 return nil 90} 91 92func (x *ParsedExpr) GetSourceInfo() *SourceInfo { 93 if x != nil { 94 return x.SourceInfo 95 } 96 return nil 97} 98 99// An abstract representation of a common expression. 100// 101// Expressions are abstractly represented as a collection of identifiers, 102// select statements, function calls, literals, and comprehensions. All 103// operators with the exception of the '.' operator are modelled as function 104// calls. This makes it easy to represent new operators into the existing AST. 105// 106// All references within expressions must resolve to a [Decl][google.api.expr.v1alpha1.Decl] provided at 107// type-check for an expression to be valid. A reference may either be a bare 108// identifier `name` or a qualified identifier `google.api.name`. References 109// may either refer to a value or a function declaration. 110// 111// For example, the expression `google.api.name.startsWith('expr')` references 112// the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and 113// the function declaration `startsWith`. 114type Expr struct { 115 state protoimpl.MessageState 116 sizeCache protoimpl.SizeCache 117 unknownFields protoimpl.UnknownFields 118 119 // Required. An id assigned to this node by the parser which is unique in a 120 // given expression tree. This is used to associate type information and other 121 // attributes to a node in the parse tree. 122 Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` 123 // Required. Variants of expressions. 124 // 125 // Types that are assignable to ExprKind: 126 // *Expr_ConstExpr 127 // *Expr_IdentExpr 128 // *Expr_SelectExpr 129 // *Expr_CallExpr 130 // *Expr_ListExpr 131 // *Expr_StructExpr 132 // *Expr_ComprehensionExpr 133 ExprKind isExpr_ExprKind `protobuf_oneof:"expr_kind"` 134} 135 136func (x *Expr) Reset() { 137 *x = Expr{} 138 if protoimpl.UnsafeEnabled { 139 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[1] 140 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 141 ms.StoreMessageInfo(mi) 142 } 143} 144 145func (x *Expr) String() string { 146 return protoimpl.X.MessageStringOf(x) 147} 148 149func (*Expr) ProtoMessage() {} 150 151func (x *Expr) ProtoReflect() protoreflect.Message { 152 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[1] 153 if protoimpl.UnsafeEnabled && x != nil { 154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 155 if ms.LoadMessageInfo() == nil { 156 ms.StoreMessageInfo(mi) 157 } 158 return ms 159 } 160 return mi.MessageOf(x) 161} 162 163// Deprecated: Use Expr.ProtoReflect.Descriptor instead. 164func (*Expr) Descriptor() ([]byte, []int) { 165 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1} 166} 167 168func (x *Expr) GetId() int64 { 169 if x != nil { 170 return x.Id 171 } 172 return 0 173} 174 175func (m *Expr) GetExprKind() isExpr_ExprKind { 176 if m != nil { 177 return m.ExprKind 178 } 179 return nil 180} 181 182func (x *Expr) GetConstExpr() *Constant { 183 if x, ok := x.GetExprKind().(*Expr_ConstExpr); ok { 184 return x.ConstExpr 185 } 186 return nil 187} 188 189func (x *Expr) GetIdentExpr() *Expr_Ident { 190 if x, ok := x.GetExprKind().(*Expr_IdentExpr); ok { 191 return x.IdentExpr 192 } 193 return nil 194} 195 196func (x *Expr) GetSelectExpr() *Expr_Select { 197 if x, ok := x.GetExprKind().(*Expr_SelectExpr); ok { 198 return x.SelectExpr 199 } 200 return nil 201} 202 203func (x *Expr) GetCallExpr() *Expr_Call { 204 if x, ok := x.GetExprKind().(*Expr_CallExpr); ok { 205 return x.CallExpr 206 } 207 return nil 208} 209 210func (x *Expr) GetListExpr() *Expr_CreateList { 211 if x, ok := x.GetExprKind().(*Expr_ListExpr); ok { 212 return x.ListExpr 213 } 214 return nil 215} 216 217func (x *Expr) GetStructExpr() *Expr_CreateStruct { 218 if x, ok := x.GetExprKind().(*Expr_StructExpr); ok { 219 return x.StructExpr 220 } 221 return nil 222} 223 224func (x *Expr) GetComprehensionExpr() *Expr_Comprehension { 225 if x, ok := x.GetExprKind().(*Expr_ComprehensionExpr); ok { 226 return x.ComprehensionExpr 227 } 228 return nil 229} 230 231type isExpr_ExprKind interface { 232 isExpr_ExprKind() 233} 234 235type Expr_ConstExpr struct { 236 // A literal expression. 237 ConstExpr *Constant `protobuf:"bytes,3,opt,name=const_expr,json=constExpr,proto3,oneof"` 238} 239 240type Expr_IdentExpr struct { 241 // An identifier expression. 242 IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"` 243} 244 245type Expr_SelectExpr struct { 246 // A field selection expression, e.g. `request.auth`. 247 SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"` 248} 249 250type Expr_CallExpr struct { 251 // A call expression, including calls to predefined functions and operators. 252 CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"` 253} 254 255type Expr_ListExpr struct { 256 // A list creation expression. 257 ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"` 258} 259 260type Expr_StructExpr struct { 261 // A map or message creation expression. 262 StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"` 263} 264 265type Expr_ComprehensionExpr struct { 266 // A comprehension expression. 267 ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"` 268} 269 270func (*Expr_ConstExpr) isExpr_ExprKind() {} 271 272func (*Expr_IdentExpr) isExpr_ExprKind() {} 273 274func (*Expr_SelectExpr) isExpr_ExprKind() {} 275 276func (*Expr_CallExpr) isExpr_ExprKind() {} 277 278func (*Expr_ListExpr) isExpr_ExprKind() {} 279 280func (*Expr_StructExpr) isExpr_ExprKind() {} 281 282func (*Expr_ComprehensionExpr) isExpr_ExprKind() {} 283 284// Represents a primitive literal. 285// 286// Named 'Constant' here for backwards compatibility. 287// 288// This is similar as the primitives supported in the well-known type 289// `google.protobuf.Value`, but richer so it can represent CEL's full range of 290// primitives. 291// 292// Lists and structs are not included as constants as these aggregate types may 293// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require evaluation and are thus not constant. 294// 295// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, 296// `true`, `null`. 297type Constant struct { 298 state protoimpl.MessageState 299 sizeCache protoimpl.SizeCache 300 unknownFields protoimpl.UnknownFields 301 302 // Required. The valid constant kinds. 303 // 304 // Types that are assignable to ConstantKind: 305 // *Constant_NullValue 306 // *Constant_BoolValue 307 // *Constant_Int64Value 308 // *Constant_Uint64Value 309 // *Constant_DoubleValue 310 // *Constant_StringValue 311 // *Constant_BytesValue 312 // *Constant_DurationValue 313 // *Constant_TimestampValue 314 ConstantKind isConstant_ConstantKind `protobuf_oneof:"constant_kind"` 315} 316 317func (x *Constant) Reset() { 318 *x = Constant{} 319 if protoimpl.UnsafeEnabled { 320 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[2] 321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 322 ms.StoreMessageInfo(mi) 323 } 324} 325 326func (x *Constant) String() string { 327 return protoimpl.X.MessageStringOf(x) 328} 329 330func (*Constant) ProtoMessage() {} 331 332func (x *Constant) ProtoReflect() protoreflect.Message { 333 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[2] 334 if protoimpl.UnsafeEnabled && x != nil { 335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 336 if ms.LoadMessageInfo() == nil { 337 ms.StoreMessageInfo(mi) 338 } 339 return ms 340 } 341 return mi.MessageOf(x) 342} 343 344// Deprecated: Use Constant.ProtoReflect.Descriptor instead. 345func (*Constant) Descriptor() ([]byte, []int) { 346 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{2} 347} 348 349func (m *Constant) GetConstantKind() isConstant_ConstantKind { 350 if m != nil { 351 return m.ConstantKind 352 } 353 return nil 354} 355 356func (x *Constant) GetNullValue() structpb.NullValue { 357 if x, ok := x.GetConstantKind().(*Constant_NullValue); ok { 358 return x.NullValue 359 } 360 return structpb.NullValue_NULL_VALUE 361} 362 363func (x *Constant) GetBoolValue() bool { 364 if x, ok := x.GetConstantKind().(*Constant_BoolValue); ok { 365 return x.BoolValue 366 } 367 return false 368} 369 370func (x *Constant) GetInt64Value() int64 { 371 if x, ok := x.GetConstantKind().(*Constant_Int64Value); ok { 372 return x.Int64Value 373 } 374 return 0 375} 376 377func (x *Constant) GetUint64Value() uint64 { 378 if x, ok := x.GetConstantKind().(*Constant_Uint64Value); ok { 379 return x.Uint64Value 380 } 381 return 0 382} 383 384func (x *Constant) GetDoubleValue() float64 { 385 if x, ok := x.GetConstantKind().(*Constant_DoubleValue); ok { 386 return x.DoubleValue 387 } 388 return 0 389} 390 391func (x *Constant) GetStringValue() string { 392 if x, ok := x.GetConstantKind().(*Constant_StringValue); ok { 393 return x.StringValue 394 } 395 return "" 396} 397 398func (x *Constant) GetBytesValue() []byte { 399 if x, ok := x.GetConstantKind().(*Constant_BytesValue); ok { 400 return x.BytesValue 401 } 402 return nil 403} 404 405// Deprecated: Do not use. 406func (x *Constant) GetDurationValue() *durationpb.Duration { 407 if x, ok := x.GetConstantKind().(*Constant_DurationValue); ok { 408 return x.DurationValue 409 } 410 return nil 411} 412 413// Deprecated: Do not use. 414func (x *Constant) GetTimestampValue() *timestamppb.Timestamp { 415 if x, ok := x.GetConstantKind().(*Constant_TimestampValue); ok { 416 return x.TimestampValue 417 } 418 return nil 419} 420 421type isConstant_ConstantKind interface { 422 isConstant_ConstantKind() 423} 424 425type Constant_NullValue struct { 426 // null value. 427 NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` 428} 429 430type Constant_BoolValue struct { 431 // boolean value. 432 BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"` 433} 434 435type Constant_Int64Value struct { 436 // int64 value. 437 Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"` 438} 439 440type Constant_Uint64Value struct { 441 // uint64 value. 442 Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"` 443} 444 445type Constant_DoubleValue struct { 446 // double value. 447 DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"` 448} 449 450type Constant_StringValue struct { 451 // string value. 452 StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` 453} 454 455type Constant_BytesValue struct { 456 // bytes value. 457 BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"` 458} 459 460type Constant_DurationValue struct { 461 // protobuf.Duration value. 462 // 463 // Deprecated: duration is no longer considered a builtin cel type. 464 // 465 // Deprecated: Do not use. 466 DurationValue *durationpb.Duration `protobuf:"bytes,8,opt,name=duration_value,json=durationValue,proto3,oneof"` 467} 468 469type Constant_TimestampValue struct { 470 // protobuf.Timestamp value. 471 // 472 // Deprecated: timestamp is no longer considered a builtin cel type. 473 // 474 // Deprecated: Do not use. 475 TimestampValue *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` 476} 477 478func (*Constant_NullValue) isConstant_ConstantKind() {} 479 480func (*Constant_BoolValue) isConstant_ConstantKind() {} 481 482func (*Constant_Int64Value) isConstant_ConstantKind() {} 483 484func (*Constant_Uint64Value) isConstant_ConstantKind() {} 485 486func (*Constant_DoubleValue) isConstant_ConstantKind() {} 487 488func (*Constant_StringValue) isConstant_ConstantKind() {} 489 490func (*Constant_BytesValue) isConstant_ConstantKind() {} 491 492func (*Constant_DurationValue) isConstant_ConstantKind() {} 493 494func (*Constant_TimestampValue) isConstant_ConstantKind() {} 495 496// Source information collected at parse time. 497type SourceInfo struct { 498 state protoimpl.MessageState 499 sizeCache protoimpl.SizeCache 500 unknownFields protoimpl.UnknownFields 501 502 // The syntax version of the source, e.g. `cel1`. 503 SyntaxVersion string `protobuf:"bytes,1,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"` 504 // The location name. All position information attached to an expression is 505 // relative to this location. 506 // 507 // The location could be a file, UI element, or similar. For example, 508 // `acme/app/AnvilPolicy.cel`. 509 Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` 510 // Monotonically increasing list of code point offsets where newlines 511 // `\n` appear. 512 // 513 // The line number of a given position is the index `i` where for a given 514 // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The 515 // column may be derivd from `id_positions[id] - line_offsets[i]`. 516 LineOffsets []int32 `protobuf:"varint,3,rep,packed,name=line_offsets,json=lineOffsets,proto3" json:"line_offsets,omitempty"` 517 // A map from the parse node id (e.g. `Expr.id`) to the code point offset 518 // within the source. 519 Positions map[int64]int32 `protobuf:"bytes,4,rep,name=positions,proto3" json:"positions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 520 // A map from the parse node id where a macro replacement was made to the 521 // call `Expr` that resulted in a macro expansion. 522 // 523 // For example, `has(value.field)` is a function call that is replaced by a 524 // `test_only` field selection in the AST. Likewise, the call 525 // `list.exists(e, e > 10)` translates to a comprehension expression. The key 526 // in the map corresponds to the expression id of the expanded macro, and the 527 // value is the call `Expr` that was replaced. 528 MacroCalls map[int64]*Expr `protobuf:"bytes,5,rep,name=macro_calls,json=macroCalls,proto3" json:"macro_calls,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 529} 530 531func (x *SourceInfo) Reset() { 532 *x = SourceInfo{} 533 if protoimpl.UnsafeEnabled { 534 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[3] 535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 536 ms.StoreMessageInfo(mi) 537 } 538} 539 540func (x *SourceInfo) String() string { 541 return protoimpl.X.MessageStringOf(x) 542} 543 544func (*SourceInfo) ProtoMessage() {} 545 546func (x *SourceInfo) ProtoReflect() protoreflect.Message { 547 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[3] 548 if protoimpl.UnsafeEnabled && x != nil { 549 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 550 if ms.LoadMessageInfo() == nil { 551 ms.StoreMessageInfo(mi) 552 } 553 return ms 554 } 555 return mi.MessageOf(x) 556} 557 558// Deprecated: Use SourceInfo.ProtoReflect.Descriptor instead. 559func (*SourceInfo) Descriptor() ([]byte, []int) { 560 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{3} 561} 562 563func (x *SourceInfo) GetSyntaxVersion() string { 564 if x != nil { 565 return x.SyntaxVersion 566 } 567 return "" 568} 569 570func (x *SourceInfo) GetLocation() string { 571 if x != nil { 572 return x.Location 573 } 574 return "" 575} 576 577func (x *SourceInfo) GetLineOffsets() []int32 { 578 if x != nil { 579 return x.LineOffsets 580 } 581 return nil 582} 583 584func (x *SourceInfo) GetPositions() map[int64]int32 { 585 if x != nil { 586 return x.Positions 587 } 588 return nil 589} 590 591func (x *SourceInfo) GetMacroCalls() map[int64]*Expr { 592 if x != nil { 593 return x.MacroCalls 594 } 595 return nil 596} 597 598// A specific position in source. 599type SourcePosition struct { 600 state protoimpl.MessageState 601 sizeCache protoimpl.SizeCache 602 unknownFields protoimpl.UnknownFields 603 604 // The soucre location name (e.g. file name). 605 Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` 606 // The UTF-8 code unit offset. 607 Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 608 // The 1-based index of the starting line in the source text 609 // where the issue occurs, or 0 if unknown. 610 Line int32 `protobuf:"varint,3,opt,name=line,proto3" json:"line,omitempty"` 611 // The 0-based index of the starting position within the line of source text 612 // where the issue occurs. Only meaningful if line is nonzero. 613 Column int32 `protobuf:"varint,4,opt,name=column,proto3" json:"column,omitempty"` 614} 615 616func (x *SourcePosition) Reset() { 617 *x = SourcePosition{} 618 if protoimpl.UnsafeEnabled { 619 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[4] 620 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 621 ms.StoreMessageInfo(mi) 622 } 623} 624 625func (x *SourcePosition) String() string { 626 return protoimpl.X.MessageStringOf(x) 627} 628 629func (*SourcePosition) ProtoMessage() {} 630 631func (x *SourcePosition) ProtoReflect() protoreflect.Message { 632 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[4] 633 if protoimpl.UnsafeEnabled && x != nil { 634 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 635 if ms.LoadMessageInfo() == nil { 636 ms.StoreMessageInfo(mi) 637 } 638 return ms 639 } 640 return mi.MessageOf(x) 641} 642 643// Deprecated: Use SourcePosition.ProtoReflect.Descriptor instead. 644func (*SourcePosition) Descriptor() ([]byte, []int) { 645 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{4} 646} 647 648func (x *SourcePosition) GetLocation() string { 649 if x != nil { 650 return x.Location 651 } 652 return "" 653} 654 655func (x *SourcePosition) GetOffset() int32 { 656 if x != nil { 657 return x.Offset 658 } 659 return 0 660} 661 662func (x *SourcePosition) GetLine() int32 { 663 if x != nil { 664 return x.Line 665 } 666 return 0 667} 668 669func (x *SourcePosition) GetColumn() int32 { 670 if x != nil { 671 return x.Column 672 } 673 return 0 674} 675 676// An identifier expression. e.g. `request`. 677type Expr_Ident struct { 678 state protoimpl.MessageState 679 sizeCache protoimpl.SizeCache 680 unknownFields protoimpl.UnknownFields 681 682 // Required. Holds a single, unqualified identifier, possibly preceded by a 683 // '.'. 684 // 685 // Qualified names are represented by the [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. 686 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 687} 688 689func (x *Expr_Ident) Reset() { 690 *x = Expr_Ident{} 691 if protoimpl.UnsafeEnabled { 692 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[5] 693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 694 ms.StoreMessageInfo(mi) 695 } 696} 697 698func (x *Expr_Ident) String() string { 699 return protoimpl.X.MessageStringOf(x) 700} 701 702func (*Expr_Ident) ProtoMessage() {} 703 704func (x *Expr_Ident) ProtoReflect() protoreflect.Message { 705 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[5] 706 if protoimpl.UnsafeEnabled && x != nil { 707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 708 if ms.LoadMessageInfo() == nil { 709 ms.StoreMessageInfo(mi) 710 } 711 return ms 712 } 713 return mi.MessageOf(x) 714} 715 716// Deprecated: Use Expr_Ident.ProtoReflect.Descriptor instead. 717func (*Expr_Ident) Descriptor() ([]byte, []int) { 718 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 0} 719} 720 721func (x *Expr_Ident) GetName() string { 722 if x != nil { 723 return x.Name 724 } 725 return "" 726} 727 728// A field selection expression. e.g. `request.auth`. 729type Expr_Select struct { 730 state protoimpl.MessageState 731 sizeCache protoimpl.SizeCache 732 unknownFields protoimpl.UnknownFields 733 734 // Required. The target of the selection expression. 735 // 736 // For example, in the select expression `request.auth`, the `request` 737 // portion of the expression is the `operand`. 738 Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"` 739 // Required. The name of the field to select. 740 // 741 // For example, in the select expression `request.auth`, the `auth` portion 742 // of the expression would be the `field`. 743 Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"` 744 // Whether the select is to be interpreted as a field presence test. 745 // 746 // This results from the macro `has(request.auth)`. 747 TestOnly bool `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"` 748} 749 750func (x *Expr_Select) Reset() { 751 *x = Expr_Select{} 752 if protoimpl.UnsafeEnabled { 753 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[6] 754 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 755 ms.StoreMessageInfo(mi) 756 } 757} 758 759func (x *Expr_Select) String() string { 760 return protoimpl.X.MessageStringOf(x) 761} 762 763func (*Expr_Select) ProtoMessage() {} 764 765func (x *Expr_Select) ProtoReflect() protoreflect.Message { 766 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[6] 767 if protoimpl.UnsafeEnabled && x != nil { 768 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 769 if ms.LoadMessageInfo() == nil { 770 ms.StoreMessageInfo(mi) 771 } 772 return ms 773 } 774 return mi.MessageOf(x) 775} 776 777// Deprecated: Use Expr_Select.ProtoReflect.Descriptor instead. 778func (*Expr_Select) Descriptor() ([]byte, []int) { 779 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 1} 780} 781 782func (x *Expr_Select) GetOperand() *Expr { 783 if x != nil { 784 return x.Operand 785 } 786 return nil 787} 788 789func (x *Expr_Select) GetField() string { 790 if x != nil { 791 return x.Field 792 } 793 return "" 794} 795 796func (x *Expr_Select) GetTestOnly() bool { 797 if x != nil { 798 return x.TestOnly 799 } 800 return false 801} 802 803// A call expression, including calls to predefined functions and operators. 804// 805// For example, `value == 10`, `size(map_value)`. 806type Expr_Call struct { 807 state protoimpl.MessageState 808 sizeCache protoimpl.SizeCache 809 unknownFields protoimpl.UnknownFields 810 811 // The target of an method call-style expression. For example, `x` in 812 // `x.f()`. 813 Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"` 814 // Required. The name of the function or method being called. 815 Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"` 816 // The arguments. 817 Args []*Expr `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` 818} 819 820func (x *Expr_Call) Reset() { 821 *x = Expr_Call{} 822 if protoimpl.UnsafeEnabled { 823 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[7] 824 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 825 ms.StoreMessageInfo(mi) 826 } 827} 828 829func (x *Expr_Call) String() string { 830 return protoimpl.X.MessageStringOf(x) 831} 832 833func (*Expr_Call) ProtoMessage() {} 834 835func (x *Expr_Call) ProtoReflect() protoreflect.Message { 836 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[7] 837 if protoimpl.UnsafeEnabled && x != nil { 838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 839 if ms.LoadMessageInfo() == nil { 840 ms.StoreMessageInfo(mi) 841 } 842 return ms 843 } 844 return mi.MessageOf(x) 845} 846 847// Deprecated: Use Expr_Call.ProtoReflect.Descriptor instead. 848func (*Expr_Call) Descriptor() ([]byte, []int) { 849 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 2} 850} 851 852func (x *Expr_Call) GetTarget() *Expr { 853 if x != nil { 854 return x.Target 855 } 856 return nil 857} 858 859func (x *Expr_Call) GetFunction() string { 860 if x != nil { 861 return x.Function 862 } 863 return "" 864} 865 866func (x *Expr_Call) GetArgs() []*Expr { 867 if x != nil { 868 return x.Args 869 } 870 return nil 871} 872 873// A list creation expression. 874// 875// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g. 876// `dyn([1, 'hello', 2.0])` 877type Expr_CreateList struct { 878 state protoimpl.MessageState 879 sizeCache protoimpl.SizeCache 880 unknownFields protoimpl.UnknownFields 881 882 // The elements part of the list. 883 Elements []*Expr `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"` 884} 885 886func (x *Expr_CreateList) Reset() { 887 *x = Expr_CreateList{} 888 if protoimpl.UnsafeEnabled { 889 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[8] 890 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 891 ms.StoreMessageInfo(mi) 892 } 893} 894 895func (x *Expr_CreateList) String() string { 896 return protoimpl.X.MessageStringOf(x) 897} 898 899func (*Expr_CreateList) ProtoMessage() {} 900 901func (x *Expr_CreateList) ProtoReflect() protoreflect.Message { 902 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[8] 903 if protoimpl.UnsafeEnabled && x != nil { 904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 905 if ms.LoadMessageInfo() == nil { 906 ms.StoreMessageInfo(mi) 907 } 908 return ms 909 } 910 return mi.MessageOf(x) 911} 912 913// Deprecated: Use Expr_CreateList.ProtoReflect.Descriptor instead. 914func (*Expr_CreateList) Descriptor() ([]byte, []int) { 915 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 3} 916} 917 918func (x *Expr_CreateList) GetElements() []*Expr { 919 if x != nil { 920 return x.Elements 921 } 922 return nil 923} 924 925// A map or message creation expression. 926// 927// Maps are constructed as `{'key_name': 'value'}`. Message construction is 928// similar, but prefixed with a type name and composed of field ids: 929// `types.MyType{field_id: 'value'}`. 930type Expr_CreateStruct struct { 931 state protoimpl.MessageState 932 sizeCache protoimpl.SizeCache 933 unknownFields protoimpl.UnknownFields 934 935 // The type name of the message to be created, empty when creating map 936 // literals. 937 MessageName string `protobuf:"bytes,1,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"` 938 // The entries in the creation expression. 939 Entries []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"` 940} 941 942func (x *Expr_CreateStruct) Reset() { 943 *x = Expr_CreateStruct{} 944 if protoimpl.UnsafeEnabled { 945 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[9] 946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 947 ms.StoreMessageInfo(mi) 948 } 949} 950 951func (x *Expr_CreateStruct) String() string { 952 return protoimpl.X.MessageStringOf(x) 953} 954 955func (*Expr_CreateStruct) ProtoMessage() {} 956 957func (x *Expr_CreateStruct) ProtoReflect() protoreflect.Message { 958 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[9] 959 if protoimpl.UnsafeEnabled && x != nil { 960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 961 if ms.LoadMessageInfo() == nil { 962 ms.StoreMessageInfo(mi) 963 } 964 return ms 965 } 966 return mi.MessageOf(x) 967} 968 969// Deprecated: Use Expr_CreateStruct.ProtoReflect.Descriptor instead. 970func (*Expr_CreateStruct) Descriptor() ([]byte, []int) { 971 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 4} 972} 973 974func (x *Expr_CreateStruct) GetMessageName() string { 975 if x != nil { 976 return x.MessageName 977 } 978 return "" 979} 980 981func (x *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry { 982 if x != nil { 983 return x.Entries 984 } 985 return nil 986} 987 988// A comprehension expression applied to a list or map. 989// 990// Comprehensions are not part of the core syntax, but enabled with macros. 991// A macro matches a specific call signature within a parsed AST and replaces 992// the call with an alternate AST block. Macro expansion happens at parse 993// time. 994// 995// The following macros are supported within CEL: 996// 997// Aggregate type macros may be applied to all elements in a list or all keys 998// in a map: 999// 1000// * `all`, `exists`, `exists_one` - test a predicate expression against 1001// the inputs and return `true` if the predicate is satisfied for all, 1002// any, or only one value `list.all(x, x < 10)`. 1003// * `filter` - test a predicate expression against the inputs and return 1004// the subset of elements which satisfy the predicate: 1005// `payments.filter(p, p > 1000)`. 1006// * `map` - apply an expression to all elements in the input and return the 1007// output aggregate type: `[1, 2, 3].map(i, i * i)`. 1008// 1009// The `has(m.x)` macro tests whether the property `x` is present in struct 1010// `m`. The semantics of this macro depend on the type of `m`. For proto2 1011// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the 1012// macro tests whether the property is set to its default. For map and struct 1013// types, the macro tests whether the property `x` is defined on `m`. 1014type Expr_Comprehension struct { 1015 state protoimpl.MessageState 1016 sizeCache protoimpl.SizeCache 1017 unknownFields protoimpl.UnknownFields 1018 1019 // The name of the iteration variable. 1020 IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"` 1021 // The range over which var iterates. 1022 IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"` 1023 // The name of the variable used for accumulation of the result. 1024 AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"` 1025 // The initial value of the accumulator. 1026 AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"` 1027 // An expression which can contain iter_var and accu_var. 1028 // 1029 // Returns false when the result has been computed and may be used as 1030 // a hint to short-circuit the remainder of the comprehension. 1031 LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"` 1032 // An expression which can contain iter_var and accu_var. 1033 // 1034 // Computes the next value of accu_var. 1035 LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"` 1036 // An expression which can contain accu_var. 1037 // 1038 // Computes the result. 1039 Result *Expr `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"` 1040} 1041 1042func (x *Expr_Comprehension) Reset() { 1043 *x = Expr_Comprehension{} 1044 if protoimpl.UnsafeEnabled { 1045 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[10] 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 ms.StoreMessageInfo(mi) 1048 } 1049} 1050 1051func (x *Expr_Comprehension) String() string { 1052 return protoimpl.X.MessageStringOf(x) 1053} 1054 1055func (*Expr_Comprehension) ProtoMessage() {} 1056 1057func (x *Expr_Comprehension) ProtoReflect() protoreflect.Message { 1058 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[10] 1059 if protoimpl.UnsafeEnabled && x != nil { 1060 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1061 if ms.LoadMessageInfo() == nil { 1062 ms.StoreMessageInfo(mi) 1063 } 1064 return ms 1065 } 1066 return mi.MessageOf(x) 1067} 1068 1069// Deprecated: Use Expr_Comprehension.ProtoReflect.Descriptor instead. 1070func (*Expr_Comprehension) Descriptor() ([]byte, []int) { 1071 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 5} 1072} 1073 1074func (x *Expr_Comprehension) GetIterVar() string { 1075 if x != nil { 1076 return x.IterVar 1077 } 1078 return "" 1079} 1080 1081func (x *Expr_Comprehension) GetIterRange() *Expr { 1082 if x != nil { 1083 return x.IterRange 1084 } 1085 return nil 1086} 1087 1088func (x *Expr_Comprehension) GetAccuVar() string { 1089 if x != nil { 1090 return x.AccuVar 1091 } 1092 return "" 1093} 1094 1095func (x *Expr_Comprehension) GetAccuInit() *Expr { 1096 if x != nil { 1097 return x.AccuInit 1098 } 1099 return nil 1100} 1101 1102func (x *Expr_Comprehension) GetLoopCondition() *Expr { 1103 if x != nil { 1104 return x.LoopCondition 1105 } 1106 return nil 1107} 1108 1109func (x *Expr_Comprehension) GetLoopStep() *Expr { 1110 if x != nil { 1111 return x.LoopStep 1112 } 1113 return nil 1114} 1115 1116func (x *Expr_Comprehension) GetResult() *Expr { 1117 if x != nil { 1118 return x.Result 1119 } 1120 return nil 1121} 1122 1123// Represents an entry. 1124type Expr_CreateStruct_Entry struct { 1125 state protoimpl.MessageState 1126 sizeCache protoimpl.SizeCache 1127 unknownFields protoimpl.UnknownFields 1128 1129 // Required. An id assigned to this node by the parser which is unique 1130 // in a given expression tree. This is used to associate type 1131 // information and other attributes to the node. 1132 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 1133 // The `Entry` key kinds. 1134 // 1135 // Types that are assignable to KeyKind: 1136 // *Expr_CreateStruct_Entry_FieldKey 1137 // *Expr_CreateStruct_Entry_MapKey 1138 KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"` 1139 // Required. The value assigned to the key. 1140 Value *Expr `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` 1141} 1142 1143func (x *Expr_CreateStruct_Entry) Reset() { 1144 *x = Expr_CreateStruct_Entry{} 1145 if protoimpl.UnsafeEnabled { 1146 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[11] 1147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1148 ms.StoreMessageInfo(mi) 1149 } 1150} 1151 1152func (x *Expr_CreateStruct_Entry) String() string { 1153 return protoimpl.X.MessageStringOf(x) 1154} 1155 1156func (*Expr_CreateStruct_Entry) ProtoMessage() {} 1157 1158func (x *Expr_CreateStruct_Entry) ProtoReflect() protoreflect.Message { 1159 mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[11] 1160 if protoimpl.UnsafeEnabled && x != nil { 1161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1162 if ms.LoadMessageInfo() == nil { 1163 ms.StoreMessageInfo(mi) 1164 } 1165 return ms 1166 } 1167 return mi.MessageOf(x) 1168} 1169 1170// Deprecated: Use Expr_CreateStruct_Entry.ProtoReflect.Descriptor instead. 1171func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) { 1172 return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{1, 4, 0} 1173} 1174 1175func (x *Expr_CreateStruct_Entry) GetId() int64 { 1176 if x != nil { 1177 return x.Id 1178 } 1179 return 0 1180} 1181 1182func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind { 1183 if m != nil { 1184 return m.KeyKind 1185 } 1186 return nil 1187} 1188 1189func (x *Expr_CreateStruct_Entry) GetFieldKey() string { 1190 if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok { 1191 return x.FieldKey 1192 } 1193 return "" 1194} 1195 1196func (x *Expr_CreateStruct_Entry) GetMapKey() *Expr { 1197 if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok { 1198 return x.MapKey 1199 } 1200 return nil 1201} 1202 1203func (x *Expr_CreateStruct_Entry) GetValue() *Expr { 1204 if x != nil { 1205 return x.Value 1206 } 1207 return nil 1208} 1209 1210type isExpr_CreateStruct_Entry_KeyKind interface { 1211 isExpr_CreateStruct_Entry_KeyKind() 1212} 1213 1214type Expr_CreateStruct_Entry_FieldKey struct { 1215 // The field key for a message creator statement. 1216 FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"` 1217} 1218 1219type Expr_CreateStruct_Entry_MapKey struct { 1220 // The key expression for a map creation statement. 1221 MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"` 1222} 1223 1224func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {} 1225 1226func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {} 1227 1228var File_google_api_expr_v1alpha1_syntax_proto protoreflect.FileDescriptor 1229 1230var file_google_api_expr_v1alpha1_syntax_proto_rawDesc = []byte{ 1231 0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 1232 0x72, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x79, 0x6e, 0x74, 0x61, 1233 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1234 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 1235 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1236 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1237 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1238 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1239 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1240 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1241 0x22, 0x87, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x12, 1242 0x32, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 1243 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 1244 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65, 1245 0x78, 0x70, 0x72, 0x12, 0x45, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 1246 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1247 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 1248 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 1249 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xdc, 0x0c, 0x0a, 0x04, 0x45, 1250 0x78, 0x70, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 1251 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 1252 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1253 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 1254 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 1255 0x6f, 0x6e, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 1256 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 1257 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 1258 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x49, 0x64, 0x65, 1259 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 1260 0x48, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 1261 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 1262 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 1263 0x45, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 1264 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x61, 0x6c, 1265 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 1266 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 1267 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x61, 0x6c, 1268 0x6c, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x48, 0x0a, 1269 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 1270 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 1271 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 1272 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6c, 1273 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 1274 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 1275 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 1276 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 1277 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x72, 1278 0x75, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x5d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x72, 1279 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x09, 0x20, 1280 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 1281 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 1282 0x78, 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 1283 0x6e, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 1284 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x1b, 0x0a, 0x05, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x12, 1285 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 1286 0x61, 0x6d, 0x65, 0x1a, 0x75, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 1287 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 1288 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 1289 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x07, 1290 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 1291 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 1292 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 1293 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x43, 1294 0x61, 0x6c, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 1295 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 1296 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 1297 0x78, 0x70, 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 1298 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 1299 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 1300 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 1301 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 1302 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x48, 0x0a, 0x0a, 0x43, 1303 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 1304 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 1305 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 1306 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x65, 0x6c, 0x65, 1307 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xb4, 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 1308 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 1309 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 1310 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 1311 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 1312 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 1313 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 1314 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 1315 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xb3, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 1316 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 1317 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 1318 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x12, 1319 0x39, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 1320 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 1321 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 1322 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 1323 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1324 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 1325 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 1326 0x42, 0x0a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xfd, 0x02, 0x0a, 1327 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 1328 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1329 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x56, 0x61, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 1330 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 1331 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 1332 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x69, 1333 0x74, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75, 1334 0x5f, 0x76, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x75, 1335 0x56, 0x61, 0x72, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74, 1336 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1337 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 1338 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x61, 0x63, 0x63, 0x75, 0x49, 0x6e, 0x69, 0x74, 1339 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 1340 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1341 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 1342 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x43, 0x6f, 1343 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 1344 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 1345 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 1346 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x6c, 0x6f, 0x6f, 0x70, 1347 0x53, 0x74, 0x65, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 1348 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 1349 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 1350 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 1351 0x65, 0x78, 0x70, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x08, 0x43, 0x6f, 1352 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 1353 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 1354 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 1355 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 1356 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 1357 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 1358 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 1359 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 1360 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 1361 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 1362 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 1363 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 1364 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 1365 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 1366 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 1367 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 1368 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62, 1369 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x64, 0x75, 0x72, 1370 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 1371 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1372 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 1373 0x48, 0x00, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 1374 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76, 1375 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 1376 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 1377 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 1378 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 1379 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xb9, 0x03, 1380 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 1381 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 1382 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x56, 0x65, 0x72, 0x73, 1383 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1384 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1385 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x18, 1386 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 1387 0x74, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 1388 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 1389 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 1390 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x73, 0x69, 1391 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 1392 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x5f, 0x63, 1393 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 1394 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 1395 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 1396 0x2e, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 1397 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 1398 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 1399 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 1400 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 1401 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x0f, 0x4d, 0x61, 1402 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 1403 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 1404 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 1405 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 1406 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 1407 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 1408 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 1409 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 1410 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 1411 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 1412 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 1413 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20, 1414 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x42, 0x6e, 0x0a, 0x1c, 0x63, 1415 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 1416 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0b, 0x53, 0x79, 0x6e, 1417 0x74, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 1418 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 1419 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1420 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 1421 0x68, 0x61, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 1422 0x74, 0x6f, 0x33, 1423} 1424 1425var ( 1426 file_google_api_expr_v1alpha1_syntax_proto_rawDescOnce sync.Once 1427 file_google_api_expr_v1alpha1_syntax_proto_rawDescData = file_google_api_expr_v1alpha1_syntax_proto_rawDesc 1428) 1429 1430func file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP() []byte { 1431 file_google_api_expr_v1alpha1_syntax_proto_rawDescOnce.Do(func() { 1432 file_google_api_expr_v1alpha1_syntax_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_expr_v1alpha1_syntax_proto_rawDescData) 1433 }) 1434 return file_google_api_expr_v1alpha1_syntax_proto_rawDescData 1435} 1436 1437var file_google_api_expr_v1alpha1_syntax_proto_msgTypes = make([]protoimpl.MessageInfo, 14) 1438var file_google_api_expr_v1alpha1_syntax_proto_goTypes = []interface{}{ 1439 (*ParsedExpr)(nil), // 0: google.api.expr.v1alpha1.ParsedExpr 1440 (*Expr)(nil), // 1: google.api.expr.v1alpha1.Expr 1441 (*Constant)(nil), // 2: google.api.expr.v1alpha1.Constant 1442 (*SourceInfo)(nil), // 3: google.api.expr.v1alpha1.SourceInfo 1443 (*SourcePosition)(nil), // 4: google.api.expr.v1alpha1.SourcePosition 1444 (*Expr_Ident)(nil), // 5: google.api.expr.v1alpha1.Expr.Ident 1445 (*Expr_Select)(nil), // 6: google.api.expr.v1alpha1.Expr.Select 1446 (*Expr_Call)(nil), // 7: google.api.expr.v1alpha1.Expr.Call 1447 (*Expr_CreateList)(nil), // 8: google.api.expr.v1alpha1.Expr.CreateList 1448 (*Expr_CreateStruct)(nil), // 9: google.api.expr.v1alpha1.Expr.CreateStruct 1449 (*Expr_Comprehension)(nil), // 10: google.api.expr.v1alpha1.Expr.Comprehension 1450 (*Expr_CreateStruct_Entry)(nil), // 11: google.api.expr.v1alpha1.Expr.CreateStruct.Entry 1451 nil, // 12: google.api.expr.v1alpha1.SourceInfo.PositionsEntry 1452 nil, // 13: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry 1453 (structpb.NullValue)(0), // 14: google.protobuf.NullValue 1454 (*durationpb.Duration)(nil), // 15: google.protobuf.Duration 1455 (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp 1456} 1457var file_google_api_expr_v1alpha1_syntax_proto_depIdxs = []int32{ 1458 1, // 0: google.api.expr.v1alpha1.ParsedExpr.expr:type_name -> google.api.expr.v1alpha1.Expr 1459 3, // 1: google.api.expr.v1alpha1.ParsedExpr.source_info:type_name -> google.api.expr.v1alpha1.SourceInfo 1460 2, // 2: google.api.expr.v1alpha1.Expr.const_expr:type_name -> google.api.expr.v1alpha1.Constant 1461 5, // 3: google.api.expr.v1alpha1.Expr.ident_expr:type_name -> google.api.expr.v1alpha1.Expr.Ident 1462 6, // 4: google.api.expr.v1alpha1.Expr.select_expr:type_name -> google.api.expr.v1alpha1.Expr.Select 1463 7, // 5: google.api.expr.v1alpha1.Expr.call_expr:type_name -> google.api.expr.v1alpha1.Expr.Call 1464 8, // 6: google.api.expr.v1alpha1.Expr.list_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateList 1465 9, // 7: google.api.expr.v1alpha1.Expr.struct_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct 1466 10, // 8: google.api.expr.v1alpha1.Expr.comprehension_expr:type_name -> google.api.expr.v1alpha1.Expr.Comprehension 1467 14, // 9: google.api.expr.v1alpha1.Constant.null_value:type_name -> google.protobuf.NullValue 1468 15, // 10: google.api.expr.v1alpha1.Constant.duration_value:type_name -> google.protobuf.Duration 1469 16, // 11: google.api.expr.v1alpha1.Constant.timestamp_value:type_name -> google.protobuf.Timestamp 1470 12, // 12: google.api.expr.v1alpha1.SourceInfo.positions:type_name -> google.api.expr.v1alpha1.SourceInfo.PositionsEntry 1471 13, // 13: google.api.expr.v1alpha1.SourceInfo.macro_calls:type_name -> google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry 1472 1, // 14: google.api.expr.v1alpha1.Expr.Select.operand:type_name -> google.api.expr.v1alpha1.Expr 1473 1, // 15: google.api.expr.v1alpha1.Expr.Call.target:type_name -> google.api.expr.v1alpha1.Expr 1474 1, // 16: google.api.expr.v1alpha1.Expr.Call.args:type_name -> google.api.expr.v1alpha1.Expr 1475 1, // 17: google.api.expr.v1alpha1.Expr.CreateList.elements:type_name -> google.api.expr.v1alpha1.Expr 1476 11, // 18: google.api.expr.v1alpha1.Expr.CreateStruct.entries:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct.Entry 1477 1, // 19: google.api.expr.v1alpha1.Expr.Comprehension.iter_range:type_name -> google.api.expr.v1alpha1.Expr 1478 1, // 20: google.api.expr.v1alpha1.Expr.Comprehension.accu_init:type_name -> google.api.expr.v1alpha1.Expr 1479 1, // 21: google.api.expr.v1alpha1.Expr.Comprehension.loop_condition:type_name -> google.api.expr.v1alpha1.Expr 1480 1, // 22: google.api.expr.v1alpha1.Expr.Comprehension.loop_step:type_name -> google.api.expr.v1alpha1.Expr 1481 1, // 23: google.api.expr.v1alpha1.Expr.Comprehension.result:type_name -> google.api.expr.v1alpha1.Expr 1482 1, // 24: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.map_key:type_name -> google.api.expr.v1alpha1.Expr 1483 1, // 25: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.value:type_name -> google.api.expr.v1alpha1.Expr 1484 1, // 26: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry.value:type_name -> google.api.expr.v1alpha1.Expr 1485 27, // [27:27] is the sub-list for method output_type 1486 27, // [27:27] is the sub-list for method input_type 1487 27, // [27:27] is the sub-list for extension type_name 1488 27, // [27:27] is the sub-list for extension extendee 1489 0, // [0:27] is the sub-list for field type_name 1490} 1491 1492func init() { file_google_api_expr_v1alpha1_syntax_proto_init() } 1493func file_google_api_expr_v1alpha1_syntax_proto_init() { 1494 if File_google_api_expr_v1alpha1_syntax_proto != nil { 1495 return 1496 } 1497 if !protoimpl.UnsafeEnabled { 1498 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1499 switch v := v.(*ParsedExpr); i { 1500 case 0: 1501 return &v.state 1502 case 1: 1503 return &v.sizeCache 1504 case 2: 1505 return &v.unknownFields 1506 default: 1507 return nil 1508 } 1509 } 1510 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1511 switch v := v.(*Expr); i { 1512 case 0: 1513 return &v.state 1514 case 1: 1515 return &v.sizeCache 1516 case 2: 1517 return &v.unknownFields 1518 default: 1519 return nil 1520 } 1521 } 1522 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1523 switch v := v.(*Constant); i { 1524 case 0: 1525 return &v.state 1526 case 1: 1527 return &v.sizeCache 1528 case 2: 1529 return &v.unknownFields 1530 default: 1531 return nil 1532 } 1533 } 1534 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1535 switch v := v.(*SourceInfo); i { 1536 case 0: 1537 return &v.state 1538 case 1: 1539 return &v.sizeCache 1540 case 2: 1541 return &v.unknownFields 1542 default: 1543 return nil 1544 } 1545 } 1546 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1547 switch v := v.(*SourcePosition); i { 1548 case 0: 1549 return &v.state 1550 case 1: 1551 return &v.sizeCache 1552 case 2: 1553 return &v.unknownFields 1554 default: 1555 return nil 1556 } 1557 } 1558 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1559 switch v := v.(*Expr_Ident); i { 1560 case 0: 1561 return &v.state 1562 case 1: 1563 return &v.sizeCache 1564 case 2: 1565 return &v.unknownFields 1566 default: 1567 return nil 1568 } 1569 } 1570 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1571 switch v := v.(*Expr_Select); i { 1572 case 0: 1573 return &v.state 1574 case 1: 1575 return &v.sizeCache 1576 case 2: 1577 return &v.unknownFields 1578 default: 1579 return nil 1580 } 1581 } 1582 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1583 switch v := v.(*Expr_Call); i { 1584 case 0: 1585 return &v.state 1586 case 1: 1587 return &v.sizeCache 1588 case 2: 1589 return &v.unknownFields 1590 default: 1591 return nil 1592 } 1593 } 1594 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1595 switch v := v.(*Expr_CreateList); i { 1596 case 0: 1597 return &v.state 1598 case 1: 1599 return &v.sizeCache 1600 case 2: 1601 return &v.unknownFields 1602 default: 1603 return nil 1604 } 1605 } 1606 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1607 switch v := v.(*Expr_CreateStruct); i { 1608 case 0: 1609 return &v.state 1610 case 1: 1611 return &v.sizeCache 1612 case 2: 1613 return &v.unknownFields 1614 default: 1615 return nil 1616 } 1617 } 1618 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1619 switch v := v.(*Expr_Comprehension); i { 1620 case 0: 1621 return &v.state 1622 case 1: 1623 return &v.sizeCache 1624 case 2: 1625 return &v.unknownFields 1626 default: 1627 return nil 1628 } 1629 } 1630 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1631 switch v := v.(*Expr_CreateStruct_Entry); i { 1632 case 0: 1633 return &v.state 1634 case 1: 1635 return &v.sizeCache 1636 case 2: 1637 return &v.unknownFields 1638 default: 1639 return nil 1640 } 1641 } 1642 } 1643 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[1].OneofWrappers = []interface{}{ 1644 (*Expr_ConstExpr)(nil), 1645 (*Expr_IdentExpr)(nil), 1646 (*Expr_SelectExpr)(nil), 1647 (*Expr_CallExpr)(nil), 1648 (*Expr_ListExpr)(nil), 1649 (*Expr_StructExpr)(nil), 1650 (*Expr_ComprehensionExpr)(nil), 1651 } 1652 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[2].OneofWrappers = []interface{}{ 1653 (*Constant_NullValue)(nil), 1654 (*Constant_BoolValue)(nil), 1655 (*Constant_Int64Value)(nil), 1656 (*Constant_Uint64Value)(nil), 1657 (*Constant_DoubleValue)(nil), 1658 (*Constant_StringValue)(nil), 1659 (*Constant_BytesValue)(nil), 1660 (*Constant_DurationValue)(nil), 1661 (*Constant_TimestampValue)(nil), 1662 } 1663 file_google_api_expr_v1alpha1_syntax_proto_msgTypes[11].OneofWrappers = []interface{}{ 1664 (*Expr_CreateStruct_Entry_FieldKey)(nil), 1665 (*Expr_CreateStruct_Entry_MapKey)(nil), 1666 } 1667 type x struct{} 1668 out := protoimpl.TypeBuilder{ 1669 File: protoimpl.DescBuilder{ 1670 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1671 RawDescriptor: file_google_api_expr_v1alpha1_syntax_proto_rawDesc, 1672 NumEnums: 0, 1673 NumMessages: 14, 1674 NumExtensions: 0, 1675 NumServices: 0, 1676 }, 1677 GoTypes: file_google_api_expr_v1alpha1_syntax_proto_goTypes, 1678 DependencyIndexes: file_google_api_expr_v1alpha1_syntax_proto_depIdxs, 1679 MessageInfos: file_google_api_expr_v1alpha1_syntax_proto_msgTypes, 1680 }.Build() 1681 File_google_api_expr_v1alpha1_syntax_proto = out.File 1682 file_google_api_expr_v1alpha1_syntax_proto_rawDesc = nil 1683 file_google_api_expr_v1alpha1_syntax_proto_goTypes = nil 1684 file_google_api_expr_v1alpha1_syntax_proto_depIdxs = nil 1685} 1686