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