1// Copyright 2020 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.22.0 18// protoc v3.11.2 19// source: google/firestore/v1/query.proto 20 21package firestore 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 wrappers "github.com/golang/protobuf/ptypes/wrappers" 29 _ "google.golang.org/genproto/googleapis/api/annotations" 30 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 31 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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// This is a compile-time assertion that a sufficiently up-to-date version 42// of the legacy proto package is being used. 43const _ = proto.ProtoPackageIsVersion4 44 45// A sort direction. 46type StructuredQuery_Direction int32 47 48const ( 49 // Unspecified. 50 StructuredQuery_DIRECTION_UNSPECIFIED StructuredQuery_Direction = 0 51 // Ascending. 52 StructuredQuery_ASCENDING StructuredQuery_Direction = 1 53 // Descending. 54 StructuredQuery_DESCENDING StructuredQuery_Direction = 2 55) 56 57// Enum value maps for StructuredQuery_Direction. 58var ( 59 StructuredQuery_Direction_name = map[int32]string{ 60 0: "DIRECTION_UNSPECIFIED", 61 1: "ASCENDING", 62 2: "DESCENDING", 63 } 64 StructuredQuery_Direction_value = map[string]int32{ 65 "DIRECTION_UNSPECIFIED": 0, 66 "ASCENDING": 1, 67 "DESCENDING": 2, 68 } 69) 70 71func (x StructuredQuery_Direction) Enum() *StructuredQuery_Direction { 72 p := new(StructuredQuery_Direction) 73 *p = x 74 return p 75} 76 77func (x StructuredQuery_Direction) String() string { 78 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 79} 80 81func (StructuredQuery_Direction) Descriptor() protoreflect.EnumDescriptor { 82 return file_google_firestore_v1_query_proto_enumTypes[0].Descriptor() 83} 84 85func (StructuredQuery_Direction) Type() protoreflect.EnumType { 86 return &file_google_firestore_v1_query_proto_enumTypes[0] 87} 88 89func (x StructuredQuery_Direction) Number() protoreflect.EnumNumber { 90 return protoreflect.EnumNumber(x) 91} 92 93// Deprecated: Use StructuredQuery_Direction.Descriptor instead. 94func (StructuredQuery_Direction) EnumDescriptor() ([]byte, []int) { 95 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 0} 96} 97 98// A composite filter operator. 99type StructuredQuery_CompositeFilter_Operator int32 100 101const ( 102 // Unspecified. This value must not be used. 103 StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED StructuredQuery_CompositeFilter_Operator = 0 104 // The results are required to satisfy each of the combined filters. 105 StructuredQuery_CompositeFilter_AND StructuredQuery_CompositeFilter_Operator = 1 106) 107 108// Enum value maps for StructuredQuery_CompositeFilter_Operator. 109var ( 110 StructuredQuery_CompositeFilter_Operator_name = map[int32]string{ 111 0: "OPERATOR_UNSPECIFIED", 112 1: "AND", 113 } 114 StructuredQuery_CompositeFilter_Operator_value = map[string]int32{ 115 "OPERATOR_UNSPECIFIED": 0, 116 "AND": 1, 117 } 118) 119 120func (x StructuredQuery_CompositeFilter_Operator) Enum() *StructuredQuery_CompositeFilter_Operator { 121 p := new(StructuredQuery_CompositeFilter_Operator) 122 *p = x 123 return p 124} 125 126func (x StructuredQuery_CompositeFilter_Operator) String() string { 127 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 128} 129 130func (StructuredQuery_CompositeFilter_Operator) Descriptor() protoreflect.EnumDescriptor { 131 return file_google_firestore_v1_query_proto_enumTypes[1].Descriptor() 132} 133 134func (StructuredQuery_CompositeFilter_Operator) Type() protoreflect.EnumType { 135 return &file_google_firestore_v1_query_proto_enumTypes[1] 136} 137 138func (x StructuredQuery_CompositeFilter_Operator) Number() protoreflect.EnumNumber { 139 return protoreflect.EnumNumber(x) 140} 141 142// Deprecated: Use StructuredQuery_CompositeFilter_Operator.Descriptor instead. 143func (StructuredQuery_CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) { 144 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 2, 0} 145} 146 147// A field filter operator. 148type StructuredQuery_FieldFilter_Operator int32 149 150const ( 151 // Unspecified. This value must not be used. 152 StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED StructuredQuery_FieldFilter_Operator = 0 153 // Less than. Requires that the field come first in `order_by`. 154 StructuredQuery_FieldFilter_LESS_THAN StructuredQuery_FieldFilter_Operator = 1 155 // Less than or equal. Requires that the field come first in `order_by`. 156 StructuredQuery_FieldFilter_LESS_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 2 157 // Greater than. Requires that the field come first in `order_by`. 158 StructuredQuery_FieldFilter_GREATER_THAN StructuredQuery_FieldFilter_Operator = 3 159 // Greater than or equal. Requires that the field come first in 160 // `order_by`. 161 StructuredQuery_FieldFilter_GREATER_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 4 162 // Equal. 163 StructuredQuery_FieldFilter_EQUAL StructuredQuery_FieldFilter_Operator = 5 164 // Contains. Requires that the field is an array. 165 StructuredQuery_FieldFilter_ARRAY_CONTAINS StructuredQuery_FieldFilter_Operator = 7 166 // In. Requires that `value` is a non-empty ArrayValue with at most 10 167 // values. 168 StructuredQuery_FieldFilter_IN StructuredQuery_FieldFilter_Operator = 8 169 // Contains any. Requires that the field is an array and 170 // `value` is a non-empty ArrayValue with at most 10 values. 171 StructuredQuery_FieldFilter_ARRAY_CONTAINS_ANY StructuredQuery_FieldFilter_Operator = 9 172) 173 174// Enum value maps for StructuredQuery_FieldFilter_Operator. 175var ( 176 StructuredQuery_FieldFilter_Operator_name = map[int32]string{ 177 0: "OPERATOR_UNSPECIFIED", 178 1: "LESS_THAN", 179 2: "LESS_THAN_OR_EQUAL", 180 3: "GREATER_THAN", 181 4: "GREATER_THAN_OR_EQUAL", 182 5: "EQUAL", 183 7: "ARRAY_CONTAINS", 184 8: "IN", 185 9: "ARRAY_CONTAINS_ANY", 186 } 187 StructuredQuery_FieldFilter_Operator_value = map[string]int32{ 188 "OPERATOR_UNSPECIFIED": 0, 189 "LESS_THAN": 1, 190 "LESS_THAN_OR_EQUAL": 2, 191 "GREATER_THAN": 3, 192 "GREATER_THAN_OR_EQUAL": 4, 193 "EQUAL": 5, 194 "ARRAY_CONTAINS": 7, 195 "IN": 8, 196 "ARRAY_CONTAINS_ANY": 9, 197 } 198) 199 200func (x StructuredQuery_FieldFilter_Operator) Enum() *StructuredQuery_FieldFilter_Operator { 201 p := new(StructuredQuery_FieldFilter_Operator) 202 *p = x 203 return p 204} 205 206func (x StructuredQuery_FieldFilter_Operator) String() string { 207 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 208} 209 210func (StructuredQuery_FieldFilter_Operator) Descriptor() protoreflect.EnumDescriptor { 211 return file_google_firestore_v1_query_proto_enumTypes[2].Descriptor() 212} 213 214func (StructuredQuery_FieldFilter_Operator) Type() protoreflect.EnumType { 215 return &file_google_firestore_v1_query_proto_enumTypes[2] 216} 217 218func (x StructuredQuery_FieldFilter_Operator) Number() protoreflect.EnumNumber { 219 return protoreflect.EnumNumber(x) 220} 221 222// Deprecated: Use StructuredQuery_FieldFilter_Operator.Descriptor instead. 223func (StructuredQuery_FieldFilter_Operator) EnumDescriptor() ([]byte, []int) { 224 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 3, 0} 225} 226 227// A unary operator. 228type StructuredQuery_UnaryFilter_Operator int32 229 230const ( 231 // Unspecified. This value must not be used. 232 StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED StructuredQuery_UnaryFilter_Operator = 0 233 // Test if a field is equal to NaN. 234 StructuredQuery_UnaryFilter_IS_NAN StructuredQuery_UnaryFilter_Operator = 2 235 // Test if an expression evaluates to Null. 236 StructuredQuery_UnaryFilter_IS_NULL StructuredQuery_UnaryFilter_Operator = 3 237) 238 239// Enum value maps for StructuredQuery_UnaryFilter_Operator. 240var ( 241 StructuredQuery_UnaryFilter_Operator_name = map[int32]string{ 242 0: "OPERATOR_UNSPECIFIED", 243 2: "IS_NAN", 244 3: "IS_NULL", 245 } 246 StructuredQuery_UnaryFilter_Operator_value = map[string]int32{ 247 "OPERATOR_UNSPECIFIED": 0, 248 "IS_NAN": 2, 249 "IS_NULL": 3, 250 } 251) 252 253func (x StructuredQuery_UnaryFilter_Operator) Enum() *StructuredQuery_UnaryFilter_Operator { 254 p := new(StructuredQuery_UnaryFilter_Operator) 255 *p = x 256 return p 257} 258 259func (x StructuredQuery_UnaryFilter_Operator) String() string { 260 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 261} 262 263func (StructuredQuery_UnaryFilter_Operator) Descriptor() protoreflect.EnumDescriptor { 264 return file_google_firestore_v1_query_proto_enumTypes[3].Descriptor() 265} 266 267func (StructuredQuery_UnaryFilter_Operator) Type() protoreflect.EnumType { 268 return &file_google_firestore_v1_query_proto_enumTypes[3] 269} 270 271func (x StructuredQuery_UnaryFilter_Operator) Number() protoreflect.EnumNumber { 272 return protoreflect.EnumNumber(x) 273} 274 275// Deprecated: Use StructuredQuery_UnaryFilter_Operator.Descriptor instead. 276func (StructuredQuery_UnaryFilter_Operator) EnumDescriptor() ([]byte, []int) { 277 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 5, 0} 278} 279 280// A Firestore query. 281type StructuredQuery struct { 282 state protoimpl.MessageState 283 sizeCache protoimpl.SizeCache 284 unknownFields protoimpl.UnknownFields 285 286 // The projection to return. 287 Select *StructuredQuery_Projection `protobuf:"bytes,1,opt,name=select,proto3" json:"select,omitempty"` 288 // The collections to query. 289 From []*StructuredQuery_CollectionSelector `protobuf:"bytes,2,rep,name=from,proto3" json:"from,omitempty"` 290 // The filter to apply. 291 Where *StructuredQuery_Filter `protobuf:"bytes,3,opt,name=where,proto3" json:"where,omitempty"` 292 // The order to apply to the query results. 293 // 294 // Firestore guarantees a stable ordering through the following rules: 295 // 296 // * Any field required to appear in `order_by`, that is not already 297 // specified in `order_by`, is appended to the order in field name order 298 // by default. 299 // * If an order on `__name__` is not specified, it is appended by default. 300 // 301 // Fields are appended with the same sort direction as the last order 302 // specified, or 'ASCENDING' if no order was specified. For example: 303 // 304 // * `SELECT * FROM Foo ORDER BY A` becomes 305 // `SELECT * FROM Foo ORDER BY A, __name__` 306 // * `SELECT * FROM Foo ORDER BY A DESC` becomes 307 // `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` 308 // * `SELECT * FROM Foo WHERE A > 1` becomes 309 // `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__` 310 OrderBy []*StructuredQuery_Order `protobuf:"bytes,4,rep,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 311 // A starting point for the query results. 312 StartAt *Cursor `protobuf:"bytes,7,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` 313 // A end point for the query results. 314 EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"` 315 // The number of results to skip. 316 // 317 // Applies before limit, but after all other constraints. Must be >= 0 if 318 // specified. 319 Offset int32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"` 320 // The maximum number of results to return. 321 // 322 // Applies after all other constraints. 323 // Must be >= 0 if specified. 324 Limit *wrappers.Int32Value `protobuf:"bytes,5,opt,name=limit,proto3" json:"limit,omitempty"` 325} 326 327func (x *StructuredQuery) Reset() { 328 *x = StructuredQuery{} 329 if protoimpl.UnsafeEnabled { 330 mi := &file_google_firestore_v1_query_proto_msgTypes[0] 331 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 332 ms.StoreMessageInfo(mi) 333 } 334} 335 336func (x *StructuredQuery) String() string { 337 return protoimpl.X.MessageStringOf(x) 338} 339 340func (*StructuredQuery) ProtoMessage() {} 341 342func (x *StructuredQuery) ProtoReflect() protoreflect.Message { 343 mi := &file_google_firestore_v1_query_proto_msgTypes[0] 344 if protoimpl.UnsafeEnabled && x != nil { 345 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 346 if ms.LoadMessageInfo() == nil { 347 ms.StoreMessageInfo(mi) 348 } 349 return ms 350 } 351 return mi.MessageOf(x) 352} 353 354// Deprecated: Use StructuredQuery.ProtoReflect.Descriptor instead. 355func (*StructuredQuery) Descriptor() ([]byte, []int) { 356 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0} 357} 358 359func (x *StructuredQuery) GetSelect() *StructuredQuery_Projection { 360 if x != nil { 361 return x.Select 362 } 363 return nil 364} 365 366func (x *StructuredQuery) GetFrom() []*StructuredQuery_CollectionSelector { 367 if x != nil { 368 return x.From 369 } 370 return nil 371} 372 373func (x *StructuredQuery) GetWhere() *StructuredQuery_Filter { 374 if x != nil { 375 return x.Where 376 } 377 return nil 378} 379 380func (x *StructuredQuery) GetOrderBy() []*StructuredQuery_Order { 381 if x != nil { 382 return x.OrderBy 383 } 384 return nil 385} 386 387func (x *StructuredQuery) GetStartAt() *Cursor { 388 if x != nil { 389 return x.StartAt 390 } 391 return nil 392} 393 394func (x *StructuredQuery) GetEndAt() *Cursor { 395 if x != nil { 396 return x.EndAt 397 } 398 return nil 399} 400 401func (x *StructuredQuery) GetOffset() int32 { 402 if x != nil { 403 return x.Offset 404 } 405 return 0 406} 407 408func (x *StructuredQuery) GetLimit() *wrappers.Int32Value { 409 if x != nil { 410 return x.Limit 411 } 412 return nil 413} 414 415// A position in a query result set. 416type Cursor struct { 417 state protoimpl.MessageState 418 sizeCache protoimpl.SizeCache 419 unknownFields protoimpl.UnknownFields 420 421 // The values that represent a position, in the order they appear in 422 // the order by clause of a query. 423 // 424 // Can contain fewer values than specified in the order by clause. 425 Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 426 // If the position is just before or just after the given values, relative 427 // to the sort order defined by the query. 428 Before bool `protobuf:"varint,2,opt,name=before,proto3" json:"before,omitempty"` 429} 430 431func (x *Cursor) Reset() { 432 *x = Cursor{} 433 if protoimpl.UnsafeEnabled { 434 mi := &file_google_firestore_v1_query_proto_msgTypes[1] 435 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 436 ms.StoreMessageInfo(mi) 437 } 438} 439 440func (x *Cursor) String() string { 441 return protoimpl.X.MessageStringOf(x) 442} 443 444func (*Cursor) ProtoMessage() {} 445 446func (x *Cursor) ProtoReflect() protoreflect.Message { 447 mi := &file_google_firestore_v1_query_proto_msgTypes[1] 448 if protoimpl.UnsafeEnabled && x != nil { 449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 450 if ms.LoadMessageInfo() == nil { 451 ms.StoreMessageInfo(mi) 452 } 453 return ms 454 } 455 return mi.MessageOf(x) 456} 457 458// Deprecated: Use Cursor.ProtoReflect.Descriptor instead. 459func (*Cursor) Descriptor() ([]byte, []int) { 460 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{1} 461} 462 463func (x *Cursor) GetValues() []*Value { 464 if x != nil { 465 return x.Values 466 } 467 return nil 468} 469 470func (x *Cursor) GetBefore() bool { 471 if x != nil { 472 return x.Before 473 } 474 return false 475} 476 477// A selection of a collection, such as `messages as m1`. 478type StructuredQuery_CollectionSelector struct { 479 state protoimpl.MessageState 480 sizeCache protoimpl.SizeCache 481 unknownFields protoimpl.UnknownFields 482 483 // The collection ID. 484 // When set, selects only collections with this ID. 485 CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` 486 // When false, selects only collections that are immediate children of 487 // the `parent` specified in the containing `RunQueryRequest`. 488 // When true, selects all descendant collections. 489 AllDescendants bool `protobuf:"varint,3,opt,name=all_descendants,json=allDescendants,proto3" json:"all_descendants,omitempty"` 490} 491 492func (x *StructuredQuery_CollectionSelector) Reset() { 493 *x = StructuredQuery_CollectionSelector{} 494 if protoimpl.UnsafeEnabled { 495 mi := &file_google_firestore_v1_query_proto_msgTypes[2] 496 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 497 ms.StoreMessageInfo(mi) 498 } 499} 500 501func (x *StructuredQuery_CollectionSelector) String() string { 502 return protoimpl.X.MessageStringOf(x) 503} 504 505func (*StructuredQuery_CollectionSelector) ProtoMessage() {} 506 507func (x *StructuredQuery_CollectionSelector) ProtoReflect() protoreflect.Message { 508 mi := &file_google_firestore_v1_query_proto_msgTypes[2] 509 if protoimpl.UnsafeEnabled && x != nil { 510 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 511 if ms.LoadMessageInfo() == nil { 512 ms.StoreMessageInfo(mi) 513 } 514 return ms 515 } 516 return mi.MessageOf(x) 517} 518 519// Deprecated: Use StructuredQuery_CollectionSelector.ProtoReflect.Descriptor instead. 520func (*StructuredQuery_CollectionSelector) Descriptor() ([]byte, []int) { 521 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 0} 522} 523 524func (x *StructuredQuery_CollectionSelector) GetCollectionId() string { 525 if x != nil { 526 return x.CollectionId 527 } 528 return "" 529} 530 531func (x *StructuredQuery_CollectionSelector) GetAllDescendants() bool { 532 if x != nil { 533 return x.AllDescendants 534 } 535 return false 536} 537 538// A filter. 539type StructuredQuery_Filter struct { 540 state protoimpl.MessageState 541 sizeCache protoimpl.SizeCache 542 unknownFields protoimpl.UnknownFields 543 544 // The type of filter. 545 // 546 // Types that are assignable to FilterType: 547 // *StructuredQuery_Filter_CompositeFilter 548 // *StructuredQuery_Filter_FieldFilter 549 // *StructuredQuery_Filter_UnaryFilter 550 FilterType isStructuredQuery_Filter_FilterType `protobuf_oneof:"filter_type"` 551} 552 553func (x *StructuredQuery_Filter) Reset() { 554 *x = StructuredQuery_Filter{} 555 if protoimpl.UnsafeEnabled { 556 mi := &file_google_firestore_v1_query_proto_msgTypes[3] 557 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 558 ms.StoreMessageInfo(mi) 559 } 560} 561 562func (x *StructuredQuery_Filter) String() string { 563 return protoimpl.X.MessageStringOf(x) 564} 565 566func (*StructuredQuery_Filter) ProtoMessage() {} 567 568func (x *StructuredQuery_Filter) ProtoReflect() protoreflect.Message { 569 mi := &file_google_firestore_v1_query_proto_msgTypes[3] 570 if protoimpl.UnsafeEnabled && x != nil { 571 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 572 if ms.LoadMessageInfo() == nil { 573 ms.StoreMessageInfo(mi) 574 } 575 return ms 576 } 577 return mi.MessageOf(x) 578} 579 580// Deprecated: Use StructuredQuery_Filter.ProtoReflect.Descriptor instead. 581func (*StructuredQuery_Filter) Descriptor() ([]byte, []int) { 582 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 1} 583} 584 585func (m *StructuredQuery_Filter) GetFilterType() isStructuredQuery_Filter_FilterType { 586 if m != nil { 587 return m.FilterType 588 } 589 return nil 590} 591 592func (x *StructuredQuery_Filter) GetCompositeFilter() *StructuredQuery_CompositeFilter { 593 if x, ok := x.GetFilterType().(*StructuredQuery_Filter_CompositeFilter); ok { 594 return x.CompositeFilter 595 } 596 return nil 597} 598 599func (x *StructuredQuery_Filter) GetFieldFilter() *StructuredQuery_FieldFilter { 600 if x, ok := x.GetFilterType().(*StructuredQuery_Filter_FieldFilter); ok { 601 return x.FieldFilter 602 } 603 return nil 604} 605 606func (x *StructuredQuery_Filter) GetUnaryFilter() *StructuredQuery_UnaryFilter { 607 if x, ok := x.GetFilterType().(*StructuredQuery_Filter_UnaryFilter); ok { 608 return x.UnaryFilter 609 } 610 return nil 611} 612 613type isStructuredQuery_Filter_FilterType interface { 614 isStructuredQuery_Filter_FilterType() 615} 616 617type StructuredQuery_Filter_CompositeFilter struct { 618 // A composite filter. 619 CompositeFilter *StructuredQuery_CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"` 620} 621 622type StructuredQuery_Filter_FieldFilter struct { 623 // A filter on a document field. 624 FieldFilter *StructuredQuery_FieldFilter `protobuf:"bytes,2,opt,name=field_filter,json=fieldFilter,proto3,oneof"` 625} 626 627type StructuredQuery_Filter_UnaryFilter struct { 628 // A filter that takes exactly one argument. 629 UnaryFilter *StructuredQuery_UnaryFilter `protobuf:"bytes,3,opt,name=unary_filter,json=unaryFilter,proto3,oneof"` 630} 631 632func (*StructuredQuery_Filter_CompositeFilter) isStructuredQuery_Filter_FilterType() {} 633 634func (*StructuredQuery_Filter_FieldFilter) isStructuredQuery_Filter_FilterType() {} 635 636func (*StructuredQuery_Filter_UnaryFilter) isStructuredQuery_Filter_FilterType() {} 637 638// A filter that merges multiple other filters using the given operator. 639type StructuredQuery_CompositeFilter struct { 640 state protoimpl.MessageState 641 sizeCache protoimpl.SizeCache 642 unknownFields protoimpl.UnknownFields 643 644 // The operator for combining multiple filters. 645 Op StructuredQuery_CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_CompositeFilter_Operator" json:"op,omitempty"` 646 // The list of filters to combine. 647 // Must contain at least one filter. 648 Filters []*StructuredQuery_Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` 649} 650 651func (x *StructuredQuery_CompositeFilter) Reset() { 652 *x = StructuredQuery_CompositeFilter{} 653 if protoimpl.UnsafeEnabled { 654 mi := &file_google_firestore_v1_query_proto_msgTypes[4] 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 ms.StoreMessageInfo(mi) 657 } 658} 659 660func (x *StructuredQuery_CompositeFilter) String() string { 661 return protoimpl.X.MessageStringOf(x) 662} 663 664func (*StructuredQuery_CompositeFilter) ProtoMessage() {} 665 666func (x *StructuredQuery_CompositeFilter) ProtoReflect() protoreflect.Message { 667 mi := &file_google_firestore_v1_query_proto_msgTypes[4] 668 if protoimpl.UnsafeEnabled && x != nil { 669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 670 if ms.LoadMessageInfo() == nil { 671 ms.StoreMessageInfo(mi) 672 } 673 return ms 674 } 675 return mi.MessageOf(x) 676} 677 678// Deprecated: Use StructuredQuery_CompositeFilter.ProtoReflect.Descriptor instead. 679func (*StructuredQuery_CompositeFilter) Descriptor() ([]byte, []int) { 680 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 2} 681} 682 683func (x *StructuredQuery_CompositeFilter) GetOp() StructuredQuery_CompositeFilter_Operator { 684 if x != nil { 685 return x.Op 686 } 687 return StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED 688} 689 690func (x *StructuredQuery_CompositeFilter) GetFilters() []*StructuredQuery_Filter { 691 if x != nil { 692 return x.Filters 693 } 694 return nil 695} 696 697// A filter on a specific field. 698type StructuredQuery_FieldFilter struct { 699 state protoimpl.MessageState 700 sizeCache protoimpl.SizeCache 701 unknownFields protoimpl.UnknownFields 702 703 // The field to filter by. 704 Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 705 // The operator to filter by. 706 Op StructuredQuery_FieldFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_FieldFilter_Operator" json:"op,omitempty"` 707 // The value to compare to. 708 Value *Value `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` 709} 710 711func (x *StructuredQuery_FieldFilter) Reset() { 712 *x = StructuredQuery_FieldFilter{} 713 if protoimpl.UnsafeEnabled { 714 mi := &file_google_firestore_v1_query_proto_msgTypes[5] 715 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 716 ms.StoreMessageInfo(mi) 717 } 718} 719 720func (x *StructuredQuery_FieldFilter) String() string { 721 return protoimpl.X.MessageStringOf(x) 722} 723 724func (*StructuredQuery_FieldFilter) ProtoMessage() {} 725 726func (x *StructuredQuery_FieldFilter) ProtoReflect() protoreflect.Message { 727 mi := &file_google_firestore_v1_query_proto_msgTypes[5] 728 if protoimpl.UnsafeEnabled && x != nil { 729 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 730 if ms.LoadMessageInfo() == nil { 731 ms.StoreMessageInfo(mi) 732 } 733 return ms 734 } 735 return mi.MessageOf(x) 736} 737 738// Deprecated: Use StructuredQuery_FieldFilter.ProtoReflect.Descriptor instead. 739func (*StructuredQuery_FieldFilter) Descriptor() ([]byte, []int) { 740 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 3} 741} 742 743func (x *StructuredQuery_FieldFilter) GetField() *StructuredQuery_FieldReference { 744 if x != nil { 745 return x.Field 746 } 747 return nil 748} 749 750func (x *StructuredQuery_FieldFilter) GetOp() StructuredQuery_FieldFilter_Operator { 751 if x != nil { 752 return x.Op 753 } 754 return StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED 755} 756 757func (x *StructuredQuery_FieldFilter) GetValue() *Value { 758 if x != nil { 759 return x.Value 760 } 761 return nil 762} 763 764// The projection of document's fields to return. 765type StructuredQuery_Projection struct { 766 state protoimpl.MessageState 767 sizeCache protoimpl.SizeCache 768 unknownFields protoimpl.UnknownFields 769 770 // The fields to return. 771 // 772 // If empty, all fields are returned. To only return the name 773 // of the document, use `['__name__']`. 774 Fields []*StructuredQuery_FieldReference `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"` 775} 776 777func (x *StructuredQuery_Projection) Reset() { 778 *x = StructuredQuery_Projection{} 779 if protoimpl.UnsafeEnabled { 780 mi := &file_google_firestore_v1_query_proto_msgTypes[6] 781 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 782 ms.StoreMessageInfo(mi) 783 } 784} 785 786func (x *StructuredQuery_Projection) String() string { 787 return protoimpl.X.MessageStringOf(x) 788} 789 790func (*StructuredQuery_Projection) ProtoMessage() {} 791 792func (x *StructuredQuery_Projection) ProtoReflect() protoreflect.Message { 793 mi := &file_google_firestore_v1_query_proto_msgTypes[6] 794 if protoimpl.UnsafeEnabled && x != nil { 795 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 796 if ms.LoadMessageInfo() == nil { 797 ms.StoreMessageInfo(mi) 798 } 799 return ms 800 } 801 return mi.MessageOf(x) 802} 803 804// Deprecated: Use StructuredQuery_Projection.ProtoReflect.Descriptor instead. 805func (*StructuredQuery_Projection) Descriptor() ([]byte, []int) { 806 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 4} 807} 808 809func (x *StructuredQuery_Projection) GetFields() []*StructuredQuery_FieldReference { 810 if x != nil { 811 return x.Fields 812 } 813 return nil 814} 815 816// A filter with a single operand. 817type StructuredQuery_UnaryFilter struct { 818 state protoimpl.MessageState 819 sizeCache protoimpl.SizeCache 820 unknownFields protoimpl.UnknownFields 821 822 // The unary operator to apply. 823 Op StructuredQuery_UnaryFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_UnaryFilter_Operator" json:"op,omitempty"` 824 // The argument to the filter. 825 // 826 // Types that are assignable to OperandType: 827 // *StructuredQuery_UnaryFilter_Field 828 OperandType isStructuredQuery_UnaryFilter_OperandType `protobuf_oneof:"operand_type"` 829} 830 831func (x *StructuredQuery_UnaryFilter) Reset() { 832 *x = StructuredQuery_UnaryFilter{} 833 if protoimpl.UnsafeEnabled { 834 mi := &file_google_firestore_v1_query_proto_msgTypes[7] 835 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 836 ms.StoreMessageInfo(mi) 837 } 838} 839 840func (x *StructuredQuery_UnaryFilter) String() string { 841 return protoimpl.X.MessageStringOf(x) 842} 843 844func (*StructuredQuery_UnaryFilter) ProtoMessage() {} 845 846func (x *StructuredQuery_UnaryFilter) ProtoReflect() protoreflect.Message { 847 mi := &file_google_firestore_v1_query_proto_msgTypes[7] 848 if protoimpl.UnsafeEnabled && x != nil { 849 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 850 if ms.LoadMessageInfo() == nil { 851 ms.StoreMessageInfo(mi) 852 } 853 return ms 854 } 855 return mi.MessageOf(x) 856} 857 858// Deprecated: Use StructuredQuery_UnaryFilter.ProtoReflect.Descriptor instead. 859func (*StructuredQuery_UnaryFilter) Descriptor() ([]byte, []int) { 860 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 5} 861} 862 863func (x *StructuredQuery_UnaryFilter) GetOp() StructuredQuery_UnaryFilter_Operator { 864 if x != nil { 865 return x.Op 866 } 867 return StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED 868} 869 870func (m *StructuredQuery_UnaryFilter) GetOperandType() isStructuredQuery_UnaryFilter_OperandType { 871 if m != nil { 872 return m.OperandType 873 } 874 return nil 875} 876 877func (x *StructuredQuery_UnaryFilter) GetField() *StructuredQuery_FieldReference { 878 if x, ok := x.GetOperandType().(*StructuredQuery_UnaryFilter_Field); ok { 879 return x.Field 880 } 881 return nil 882} 883 884type isStructuredQuery_UnaryFilter_OperandType interface { 885 isStructuredQuery_UnaryFilter_OperandType() 886} 887 888type StructuredQuery_UnaryFilter_Field struct { 889 // The field to which to apply the operator. 890 Field *StructuredQuery_FieldReference `protobuf:"bytes,2,opt,name=field,proto3,oneof"` 891} 892 893func (*StructuredQuery_UnaryFilter_Field) isStructuredQuery_UnaryFilter_OperandType() {} 894 895// A reference to a field, such as `max(messages.time) as max_time`. 896type StructuredQuery_FieldReference struct { 897 state protoimpl.MessageState 898 sizeCache protoimpl.SizeCache 899 unknownFields protoimpl.UnknownFields 900 901 FieldPath string `protobuf:"bytes,2,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"` 902} 903 904func (x *StructuredQuery_FieldReference) Reset() { 905 *x = StructuredQuery_FieldReference{} 906 if protoimpl.UnsafeEnabled { 907 mi := &file_google_firestore_v1_query_proto_msgTypes[8] 908 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 909 ms.StoreMessageInfo(mi) 910 } 911} 912 913func (x *StructuredQuery_FieldReference) String() string { 914 return protoimpl.X.MessageStringOf(x) 915} 916 917func (*StructuredQuery_FieldReference) ProtoMessage() {} 918 919func (x *StructuredQuery_FieldReference) ProtoReflect() protoreflect.Message { 920 mi := &file_google_firestore_v1_query_proto_msgTypes[8] 921 if protoimpl.UnsafeEnabled && x != nil { 922 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 923 if ms.LoadMessageInfo() == nil { 924 ms.StoreMessageInfo(mi) 925 } 926 return ms 927 } 928 return mi.MessageOf(x) 929} 930 931// Deprecated: Use StructuredQuery_FieldReference.ProtoReflect.Descriptor instead. 932func (*StructuredQuery_FieldReference) Descriptor() ([]byte, []int) { 933 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 6} 934} 935 936func (x *StructuredQuery_FieldReference) GetFieldPath() string { 937 if x != nil { 938 return x.FieldPath 939 } 940 return "" 941} 942 943// An order on a field. 944type StructuredQuery_Order struct { 945 state protoimpl.MessageState 946 sizeCache protoimpl.SizeCache 947 unknownFields protoimpl.UnknownFields 948 949 // The field to order by. 950 Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 951 // The direction to order by. Defaults to `ASCENDING`. 952 Direction StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.firestore.v1.StructuredQuery_Direction" json:"direction,omitempty"` 953} 954 955func (x *StructuredQuery_Order) Reset() { 956 *x = StructuredQuery_Order{} 957 if protoimpl.UnsafeEnabled { 958 mi := &file_google_firestore_v1_query_proto_msgTypes[9] 959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 960 ms.StoreMessageInfo(mi) 961 } 962} 963 964func (x *StructuredQuery_Order) String() string { 965 return protoimpl.X.MessageStringOf(x) 966} 967 968func (*StructuredQuery_Order) ProtoMessage() {} 969 970func (x *StructuredQuery_Order) ProtoReflect() protoreflect.Message { 971 mi := &file_google_firestore_v1_query_proto_msgTypes[9] 972 if protoimpl.UnsafeEnabled && x != nil { 973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 974 if ms.LoadMessageInfo() == nil { 975 ms.StoreMessageInfo(mi) 976 } 977 return ms 978 } 979 return mi.MessageOf(x) 980} 981 982// Deprecated: Use StructuredQuery_Order.ProtoReflect.Descriptor instead. 983func (*StructuredQuery_Order) Descriptor() ([]byte, []int) { 984 return file_google_firestore_v1_query_proto_rawDescGZIP(), []int{0, 7} 985} 986 987func (x *StructuredQuery_Order) GetField() *StructuredQuery_FieldReference { 988 if x != nil { 989 return x.Field 990 } 991 return nil 992} 993 994func (x *StructuredQuery_Order) GetDirection() StructuredQuery_Direction { 995 if x != nil { 996 return x.Direction 997 } 998 return StructuredQuery_DIRECTION_UNSPECIFIED 999} 1000 1001var File_google_firestore_v1_query_proto protoreflect.FileDescriptor 1002 1003var file_google_firestore_v1_query_proto_rawDesc = []byte{ 1004 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 1005 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1006 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 1007 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 1008 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 1009 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 1010 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 1011 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 1012 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 1013 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcf, 0x10, 0x0a, 0x0f, 0x53, 0x74, 0x72, 1014 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x47, 0x0a, 0x06, 1015 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 1016 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 1017 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 1018 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x73, 1019 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 1020 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 1021 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 1022 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 1023 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x66, 0x72, 1024 0x6f, 0x6d, 0x12, 0x41, 0x0a, 0x05, 0x77, 0x68, 0x65, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 1025 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 1026 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 1027 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x05, 1028 0x77, 0x68, 0x65, 0x72, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 1029 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1030 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 1031 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4f, 0x72, 1032 0x64, 0x65, 0x72, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x36, 0x0a, 0x08, 1033 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 1034 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 1035 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x07, 0x73, 0x74, 0x61, 1036 0x72, 0x74, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 1037 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 1038 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 1039 0x72, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 1040 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 1041 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 1042 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1043 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 1044 0x6d, 0x69, 0x74, 0x1a, 0x62, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 1045 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 1046 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 1047 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 1048 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 1049 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x63, 1050 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0xa8, 0x02, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 1051 0x65, 0x72, 0x12, 0x61, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 1052 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 1053 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 1054 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 1055 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 1056 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 1057 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 1058 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 1059 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1060 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 1061 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 1062 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0c, 1063 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 1064 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 1065 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 1066 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 1067 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 1068 0x74, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 1069 0x70, 0x65, 0x1a, 0xd6, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 1070 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 1071 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 1072 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 1073 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 1074 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 1075 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x45, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 1076 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1077 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 1078 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 1079 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x2d, 0x0a, 0x08, 1080 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 1081 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 1082 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x1a, 0x8f, 0x03, 0x0a, 0x0b, 1083 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x05, 0x66, 1084 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 1085 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 1086 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 1087 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 1088 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x49, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 1089 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 1090 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 1091 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 1092 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 1093 0x70, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 1094 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 1095 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 1096 0x6c, 0x75, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 1097 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 1098 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 1099 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 1100 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 1101 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 1102 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 1103 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 1104 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x52, 0x52, 1105 0x41, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x07, 0x12, 0x06, 0x0a, 1106 0x02, 0x49, 0x4e, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x52, 0x52, 0x41, 0x59, 0x5f, 0x43, 1107 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x09, 0x1a, 0x59, 0x0a, 1108 0x0a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x66, 1109 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 1110 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1111 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 1112 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 1113 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0xf4, 0x01, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 1114 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 1115 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 1116 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 1117 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 1118 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 1119 0x02, 0x6f, 0x70, 0x12, 0x4b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 1120 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 1121 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 1122 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 1123 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 1124 0x22, 0x3d, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 1125 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 1126 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x53, 0x5f, 0x4e, 0x41, 0x4e, 1127 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x53, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x03, 0x42, 1128 0x0e, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 1129 0x2f, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 1130 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 1131 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 1132 0x1a, 0xa0, 0x01, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x05, 0x66, 0x69, 1133 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1134 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 1135 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 1136 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 1137 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 1138 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1139 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 1140 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x44, 1141 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 1142 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1143 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 1144 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 1145 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 1146 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0x54, 0x0a, 0x06, 0x43, 0x75, 1147 0x72, 0x73, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 1148 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 1149 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 1150 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 1151 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 1152 0x42, 0xa4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1153 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 1154 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 1155 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 1156 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1157 0x73, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x66, 1158 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, 1159 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 1160 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, 0x6f, 1161 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 1162 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1163} 1164 1165var ( 1166 file_google_firestore_v1_query_proto_rawDescOnce sync.Once 1167 file_google_firestore_v1_query_proto_rawDescData = file_google_firestore_v1_query_proto_rawDesc 1168) 1169 1170func file_google_firestore_v1_query_proto_rawDescGZIP() []byte { 1171 file_google_firestore_v1_query_proto_rawDescOnce.Do(func() { 1172 file_google_firestore_v1_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_firestore_v1_query_proto_rawDescData) 1173 }) 1174 return file_google_firestore_v1_query_proto_rawDescData 1175} 1176 1177var file_google_firestore_v1_query_proto_enumTypes = make([]protoimpl.EnumInfo, 4) 1178var file_google_firestore_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 10) 1179var file_google_firestore_v1_query_proto_goTypes = []interface{}{ 1180 (StructuredQuery_Direction)(0), // 0: google.firestore.v1.StructuredQuery.Direction 1181 (StructuredQuery_CompositeFilter_Operator)(0), // 1: google.firestore.v1.StructuredQuery.CompositeFilter.Operator 1182 (StructuredQuery_FieldFilter_Operator)(0), // 2: google.firestore.v1.StructuredQuery.FieldFilter.Operator 1183 (StructuredQuery_UnaryFilter_Operator)(0), // 3: google.firestore.v1.StructuredQuery.UnaryFilter.Operator 1184 (*StructuredQuery)(nil), // 4: google.firestore.v1.StructuredQuery 1185 (*Cursor)(nil), // 5: google.firestore.v1.Cursor 1186 (*StructuredQuery_CollectionSelector)(nil), // 6: google.firestore.v1.StructuredQuery.CollectionSelector 1187 (*StructuredQuery_Filter)(nil), // 7: google.firestore.v1.StructuredQuery.Filter 1188 (*StructuredQuery_CompositeFilter)(nil), // 8: google.firestore.v1.StructuredQuery.CompositeFilter 1189 (*StructuredQuery_FieldFilter)(nil), // 9: google.firestore.v1.StructuredQuery.FieldFilter 1190 (*StructuredQuery_Projection)(nil), // 10: google.firestore.v1.StructuredQuery.Projection 1191 (*StructuredQuery_UnaryFilter)(nil), // 11: google.firestore.v1.StructuredQuery.UnaryFilter 1192 (*StructuredQuery_FieldReference)(nil), // 12: google.firestore.v1.StructuredQuery.FieldReference 1193 (*StructuredQuery_Order)(nil), // 13: google.firestore.v1.StructuredQuery.Order 1194 (*wrappers.Int32Value)(nil), // 14: google.protobuf.Int32Value 1195 (*Value)(nil), // 15: google.firestore.v1.Value 1196} 1197var file_google_firestore_v1_query_proto_depIdxs = []int32{ 1198 10, // 0: google.firestore.v1.StructuredQuery.select:type_name -> google.firestore.v1.StructuredQuery.Projection 1199 6, // 1: google.firestore.v1.StructuredQuery.from:type_name -> google.firestore.v1.StructuredQuery.CollectionSelector 1200 7, // 2: google.firestore.v1.StructuredQuery.where:type_name -> google.firestore.v1.StructuredQuery.Filter 1201 13, // 3: google.firestore.v1.StructuredQuery.order_by:type_name -> google.firestore.v1.StructuredQuery.Order 1202 5, // 4: google.firestore.v1.StructuredQuery.start_at:type_name -> google.firestore.v1.Cursor 1203 5, // 5: google.firestore.v1.StructuredQuery.end_at:type_name -> google.firestore.v1.Cursor 1204 14, // 6: google.firestore.v1.StructuredQuery.limit:type_name -> google.protobuf.Int32Value 1205 15, // 7: google.firestore.v1.Cursor.values:type_name -> google.firestore.v1.Value 1206 8, // 8: google.firestore.v1.StructuredQuery.Filter.composite_filter:type_name -> google.firestore.v1.StructuredQuery.CompositeFilter 1207 9, // 9: google.firestore.v1.StructuredQuery.Filter.field_filter:type_name -> google.firestore.v1.StructuredQuery.FieldFilter 1208 11, // 10: google.firestore.v1.StructuredQuery.Filter.unary_filter:type_name -> google.firestore.v1.StructuredQuery.UnaryFilter 1209 1, // 11: google.firestore.v1.StructuredQuery.CompositeFilter.op:type_name -> google.firestore.v1.StructuredQuery.CompositeFilter.Operator 1210 7, // 12: google.firestore.v1.StructuredQuery.CompositeFilter.filters:type_name -> google.firestore.v1.StructuredQuery.Filter 1211 12, // 13: google.firestore.v1.StructuredQuery.FieldFilter.field:type_name -> google.firestore.v1.StructuredQuery.FieldReference 1212 2, // 14: google.firestore.v1.StructuredQuery.FieldFilter.op:type_name -> google.firestore.v1.StructuredQuery.FieldFilter.Operator 1213 15, // 15: google.firestore.v1.StructuredQuery.FieldFilter.value:type_name -> google.firestore.v1.Value 1214 12, // 16: google.firestore.v1.StructuredQuery.Projection.fields:type_name -> google.firestore.v1.StructuredQuery.FieldReference 1215 3, // 17: google.firestore.v1.StructuredQuery.UnaryFilter.op:type_name -> google.firestore.v1.StructuredQuery.UnaryFilter.Operator 1216 12, // 18: google.firestore.v1.StructuredQuery.UnaryFilter.field:type_name -> google.firestore.v1.StructuredQuery.FieldReference 1217 12, // 19: google.firestore.v1.StructuredQuery.Order.field:type_name -> google.firestore.v1.StructuredQuery.FieldReference 1218 0, // 20: google.firestore.v1.StructuredQuery.Order.direction:type_name -> google.firestore.v1.StructuredQuery.Direction 1219 21, // [21:21] is the sub-list for method output_type 1220 21, // [21:21] is the sub-list for method input_type 1221 21, // [21:21] is the sub-list for extension type_name 1222 21, // [21:21] is the sub-list for extension extendee 1223 0, // [0:21] is the sub-list for field type_name 1224} 1225 1226func init() { file_google_firestore_v1_query_proto_init() } 1227func file_google_firestore_v1_query_proto_init() { 1228 if File_google_firestore_v1_query_proto != nil { 1229 return 1230 } 1231 file_google_firestore_v1_document_proto_init() 1232 if !protoimpl.UnsafeEnabled { 1233 file_google_firestore_v1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1234 switch v := v.(*StructuredQuery); i { 1235 case 0: 1236 return &v.state 1237 case 1: 1238 return &v.sizeCache 1239 case 2: 1240 return &v.unknownFields 1241 default: 1242 return nil 1243 } 1244 } 1245 file_google_firestore_v1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1246 switch v := v.(*Cursor); i { 1247 case 0: 1248 return &v.state 1249 case 1: 1250 return &v.sizeCache 1251 case 2: 1252 return &v.unknownFields 1253 default: 1254 return nil 1255 } 1256 } 1257 file_google_firestore_v1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1258 switch v := v.(*StructuredQuery_CollectionSelector); i { 1259 case 0: 1260 return &v.state 1261 case 1: 1262 return &v.sizeCache 1263 case 2: 1264 return &v.unknownFields 1265 default: 1266 return nil 1267 } 1268 } 1269 file_google_firestore_v1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1270 switch v := v.(*StructuredQuery_Filter); i { 1271 case 0: 1272 return &v.state 1273 case 1: 1274 return &v.sizeCache 1275 case 2: 1276 return &v.unknownFields 1277 default: 1278 return nil 1279 } 1280 } 1281 file_google_firestore_v1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1282 switch v := v.(*StructuredQuery_CompositeFilter); i { 1283 case 0: 1284 return &v.state 1285 case 1: 1286 return &v.sizeCache 1287 case 2: 1288 return &v.unknownFields 1289 default: 1290 return nil 1291 } 1292 } 1293 file_google_firestore_v1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1294 switch v := v.(*StructuredQuery_FieldFilter); i { 1295 case 0: 1296 return &v.state 1297 case 1: 1298 return &v.sizeCache 1299 case 2: 1300 return &v.unknownFields 1301 default: 1302 return nil 1303 } 1304 } 1305 file_google_firestore_v1_query_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1306 switch v := v.(*StructuredQuery_Projection); i { 1307 case 0: 1308 return &v.state 1309 case 1: 1310 return &v.sizeCache 1311 case 2: 1312 return &v.unknownFields 1313 default: 1314 return nil 1315 } 1316 } 1317 file_google_firestore_v1_query_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1318 switch v := v.(*StructuredQuery_UnaryFilter); i { 1319 case 0: 1320 return &v.state 1321 case 1: 1322 return &v.sizeCache 1323 case 2: 1324 return &v.unknownFields 1325 default: 1326 return nil 1327 } 1328 } 1329 file_google_firestore_v1_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1330 switch v := v.(*StructuredQuery_FieldReference); i { 1331 case 0: 1332 return &v.state 1333 case 1: 1334 return &v.sizeCache 1335 case 2: 1336 return &v.unknownFields 1337 default: 1338 return nil 1339 } 1340 } 1341 file_google_firestore_v1_query_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1342 switch v := v.(*StructuredQuery_Order); i { 1343 case 0: 1344 return &v.state 1345 case 1: 1346 return &v.sizeCache 1347 case 2: 1348 return &v.unknownFields 1349 default: 1350 return nil 1351 } 1352 } 1353 } 1354 file_google_firestore_v1_query_proto_msgTypes[3].OneofWrappers = []interface{}{ 1355 (*StructuredQuery_Filter_CompositeFilter)(nil), 1356 (*StructuredQuery_Filter_FieldFilter)(nil), 1357 (*StructuredQuery_Filter_UnaryFilter)(nil), 1358 } 1359 file_google_firestore_v1_query_proto_msgTypes[7].OneofWrappers = []interface{}{ 1360 (*StructuredQuery_UnaryFilter_Field)(nil), 1361 } 1362 type x struct{} 1363 out := protoimpl.TypeBuilder{ 1364 File: protoimpl.DescBuilder{ 1365 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1366 RawDescriptor: file_google_firestore_v1_query_proto_rawDesc, 1367 NumEnums: 4, 1368 NumMessages: 10, 1369 NumExtensions: 0, 1370 NumServices: 0, 1371 }, 1372 GoTypes: file_google_firestore_v1_query_proto_goTypes, 1373 DependencyIndexes: file_google_firestore_v1_query_proto_depIdxs, 1374 EnumInfos: file_google_firestore_v1_query_proto_enumTypes, 1375 MessageInfos: file_google_firestore_v1_query_proto_msgTypes, 1376 }.Build() 1377 File_google_firestore_v1_query_proto = out.File 1378 file_google_firestore_v1_query_proto_rawDesc = nil 1379 file_google_firestore_v1_query_proto_goTypes = nil 1380 file_google_firestore_v1_query_proto_depIdxs = nil 1381} 1382