1// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.23.0
18// 	protoc        v3.13.0
19// source: google/firestore/v1beta1/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_v1beta1_query_proto_enumTypes[0].Descriptor()
83}
84
85func (StructuredQuery_Direction) Type() protoreflect.EnumType {
86	return &file_google_firestore_v1beta1_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_v1beta1_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_v1beta1_query_proto_enumTypes[1].Descriptor()
132}
133
134func (StructuredQuery_CompositeFilter_Operator) Type() protoreflect.EnumType {
135	return &file_google_firestore_v1beta1_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_v1beta1_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_v1beta1_query_proto_enumTypes[2].Descriptor()
256}
257
258func (StructuredQuery_FieldFilter_Operator) Type() protoreflect.EnumType {
259	return &file_google_firestore_v1beta1_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_v1beta1_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_v1beta1_query_proto_enumTypes[3].Descriptor()
327}
328
329func (StructuredQuery_UnaryFilter_Operator) Type() protoreflect.EnumType {
330	return &file_google_firestore_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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// A reference to a field, such as `max(messages.time) as max_time`.
906type StructuredQuery_FieldReference struct {
907	state         protoimpl.MessageState
908	sizeCache     protoimpl.SizeCache
909	unknownFields protoimpl.UnknownFields
910
911	FieldPath string `protobuf:"bytes,2,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"`
912}
913
914func (x *StructuredQuery_FieldReference) Reset() {
915	*x = StructuredQuery_FieldReference{}
916	if protoimpl.UnsafeEnabled {
917		mi := &file_google_firestore_v1beta1_query_proto_msgTypes[7]
918		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
919		ms.StoreMessageInfo(mi)
920	}
921}
922
923func (x *StructuredQuery_FieldReference) String() string {
924	return protoimpl.X.MessageStringOf(x)
925}
926
927func (*StructuredQuery_FieldReference) ProtoMessage() {}
928
929func (x *StructuredQuery_FieldReference) ProtoReflect() protoreflect.Message {
930	mi := &file_google_firestore_v1beta1_query_proto_msgTypes[7]
931	if protoimpl.UnsafeEnabled && x != nil {
932		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
933		if ms.LoadMessageInfo() == nil {
934			ms.StoreMessageInfo(mi)
935		}
936		return ms
937	}
938	return mi.MessageOf(x)
939}
940
941// Deprecated: Use StructuredQuery_FieldReference.ProtoReflect.Descriptor instead.
942func (*StructuredQuery_FieldReference) Descriptor() ([]byte, []int) {
943	return file_google_firestore_v1beta1_query_proto_rawDescGZIP(), []int{0, 5}
944}
945
946func (x *StructuredQuery_FieldReference) GetFieldPath() string {
947	if x != nil {
948		return x.FieldPath
949	}
950	return ""
951}
952
953// An order on a field.
954type StructuredQuery_Order struct {
955	state         protoimpl.MessageState
956	sizeCache     protoimpl.SizeCache
957	unknownFields protoimpl.UnknownFields
958
959	// The field to order by.
960	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
961	// The direction to order by. Defaults to `ASCENDING`.
962	Direction StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.firestore.v1beta1.StructuredQuery_Direction" json:"direction,omitempty"`
963}
964
965func (x *StructuredQuery_Order) Reset() {
966	*x = StructuredQuery_Order{}
967	if protoimpl.UnsafeEnabled {
968		mi := &file_google_firestore_v1beta1_query_proto_msgTypes[8]
969		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
970		ms.StoreMessageInfo(mi)
971	}
972}
973
974func (x *StructuredQuery_Order) String() string {
975	return protoimpl.X.MessageStringOf(x)
976}
977
978func (*StructuredQuery_Order) ProtoMessage() {}
979
980func (x *StructuredQuery_Order) ProtoReflect() protoreflect.Message {
981	mi := &file_google_firestore_v1beta1_query_proto_msgTypes[8]
982	if protoimpl.UnsafeEnabled && x != nil {
983		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
984		if ms.LoadMessageInfo() == nil {
985			ms.StoreMessageInfo(mi)
986		}
987		return ms
988	}
989	return mi.MessageOf(x)
990}
991
992// Deprecated: Use StructuredQuery_Order.ProtoReflect.Descriptor instead.
993func (*StructuredQuery_Order) Descriptor() ([]byte, []int) {
994	return file_google_firestore_v1beta1_query_proto_rawDescGZIP(), []int{0, 6}
995}
996
997func (x *StructuredQuery_Order) GetField() *StructuredQuery_FieldReference {
998	if x != nil {
999		return x.Field
1000	}
1001	return nil
1002}
1003
1004func (x *StructuredQuery_Order) GetDirection() StructuredQuery_Direction {
1005	if x != nil {
1006		return x.Direction
1007	}
1008	return StructuredQuery_DIRECTION_UNSPECIFIED
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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_query_proto protoreflect.FileDescriptor
1064
1065var file_google_firestore_v1beta1_query_proto_rawDesc = []byte{
1066	0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
1067	0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79,
1068	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
1069	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1070	0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
1071	0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d,
1072	0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1073	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
1074	0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1075	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1076	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xea, 0x11, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x75,
1077	0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4c, 0x0a, 0x06, 0x73,
1078	0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f,
1079	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
1080	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65,
1081	0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f,
1082	0x6e, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x66, 0x72, 0x6f,
1083	0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1084	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1085	0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65,
1086	0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6c,
1087	0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x05, 0x77,
1088	0x68, 0x65, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
1089	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
1090	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
1091	0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x05, 0x77, 0x68,
1092	0x65, 0x72, 0x65, 0x12, 0x4a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18,
1093	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
1094	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1095	0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79,
1096	0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12,
1097	0x3b, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
1098	0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
1099	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x72,
1100	0x73, 0x6f, 0x72, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x06,
1101	0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67,
1102	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
1103	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x05,
1104	0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
1105	0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a,
1106	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
1107	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
1108	0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
1109	0x1a, 0x62, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
1110	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
1111	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63,
1112	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61,
1113	0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03,
1114	0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64,
1115	0x61, 0x6e, 0x74, 0x73, 0x1a, 0xb7, 0x02, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
1116	0x66, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c,
1117	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1118	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62,
1119	0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51,
1120	0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69,
1121	0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74,
1122	0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64,
1123	0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e,
1124	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
1125	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
1126	0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69,
1127	0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c,
1128	0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x0c, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c,
1129	0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1130	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62,
1131	0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51,
1132	0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
1133	0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42,
1134	0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xe0,
1135	0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74,
1136	0x65, 0x72, 0x12, 0x52, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42,
1137	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
1138	0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
1139	0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
1140	0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
1141	0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x4a, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
1142	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1143	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1144	0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65,
1145	0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
1146	0x72, 0x73, 0x22, 0x2d, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18,
1147	0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
1148	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10,
1149	0x01, 0x1a, 0xb9, 0x03, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65,
1150	0x72, 0x12, 0x4e, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
1151	0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74,
1152	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75,
1153	0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c,
1154	0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c,
1155	0x64, 0x12, 0x4e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e,
1156	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
1157	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
1158	0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69,
1159	0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f,
1160	0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
1161	0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74,
1162	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75,
1163	0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x65,
1164	0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f,
1165	0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
1166	0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16,
1167	0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45,
1168	0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45,
1169	0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41,
1170	0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41,
1171	0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d,
1172	0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x12, 0x0a,
1173	0x0e, 0x41, 0x52, 0x52, 0x41, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10,
1174	0x07, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x52, 0x52,
1175	0x41, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x41, 0x4e, 0x59, 0x10,
1176	0x09, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x10, 0x0a, 0x1a, 0x9f, 0x02,
1177	0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a,
1178	0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1179	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62,
1180	0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51,
1181	0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
1182	0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x50, 0x0a,
1183	0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67,
1184	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
1185	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72,
1186	0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66,
1187	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22,
1188	0x5e, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f,
1189	0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
1190	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x53, 0x5f, 0x4e, 0x41, 0x4e, 0x10,
1191	0x02, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x53, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0e,
1192	0x0a, 0x0a, 0x49, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x0f,
1193	0x0a, 0x0b, 0x49, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x05, 0x42,
1194	0x0e, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a,
1195	0x2f, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
1196	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
1197	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68,
1198	0x1a, 0xaa, 0x01, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x05, 0x66, 0x69,
1199	0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1200	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62,
1201	0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51,
1202	0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
1203	0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x69,
1204	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e,
1205	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
1206	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
1207	0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
1208	0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5e, 0x0a,
1209	0x0a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x06, 0x66,
1210	0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f,
1211	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
1212	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65,
1213	0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65,
1214	0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x45, 0x0a,
1215	0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49,
1216	0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
1217	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49,
1218	0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49,
1219	0x4e, 0x47, 0x10, 0x02, 0x22, 0x59, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x37,
1220	0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
1221	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
1222	0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
1223	0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72,
1224	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x42,
1225	0xdc, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
1226	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1227	0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41,
1228	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
1229	0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1230	0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f,
1231	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
1232	0x65, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
1233	0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
1234	0x65, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67,
1235	0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
1236	0x72, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x21, 0x47, 0x6f, 0x6f,
1237	0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65,
1238	0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06,
1239	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1240}
1241
1242var (
1243	file_google_firestore_v1beta1_query_proto_rawDescOnce sync.Once
1244	file_google_firestore_v1beta1_query_proto_rawDescData = file_google_firestore_v1beta1_query_proto_rawDesc
1245)
1246
1247func file_google_firestore_v1beta1_query_proto_rawDescGZIP() []byte {
1248	file_google_firestore_v1beta1_query_proto_rawDescOnce.Do(func() {
1249		file_google_firestore_v1beta1_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_firestore_v1beta1_query_proto_rawDescData)
1250	})
1251	return file_google_firestore_v1beta1_query_proto_rawDescData
1252}
1253
1254var file_google_firestore_v1beta1_query_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
1255var file_google_firestore_v1beta1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
1256var file_google_firestore_v1beta1_query_proto_goTypes = []interface{}{
1257	(StructuredQuery_Direction)(0),                // 0: google.firestore.v1beta1.StructuredQuery.Direction
1258	(StructuredQuery_CompositeFilter_Operator)(0), // 1: google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator
1259	(StructuredQuery_FieldFilter_Operator)(0),     // 2: google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator
1260	(StructuredQuery_UnaryFilter_Operator)(0),     // 3: google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator
1261	(*StructuredQuery)(nil),                       // 4: google.firestore.v1beta1.StructuredQuery
1262	(*Cursor)(nil),                                // 5: google.firestore.v1beta1.Cursor
1263	(*StructuredQuery_CollectionSelector)(nil),    // 6: google.firestore.v1beta1.StructuredQuery.CollectionSelector
1264	(*StructuredQuery_Filter)(nil),                // 7: google.firestore.v1beta1.StructuredQuery.Filter
1265	(*StructuredQuery_CompositeFilter)(nil),       // 8: google.firestore.v1beta1.StructuredQuery.CompositeFilter
1266	(*StructuredQuery_FieldFilter)(nil),           // 9: google.firestore.v1beta1.StructuredQuery.FieldFilter
1267	(*StructuredQuery_UnaryFilter)(nil),           // 10: google.firestore.v1beta1.StructuredQuery.UnaryFilter
1268	(*StructuredQuery_FieldReference)(nil),        // 11: google.firestore.v1beta1.StructuredQuery.FieldReference
1269	(*StructuredQuery_Order)(nil),                 // 12: google.firestore.v1beta1.StructuredQuery.Order
1270	(*StructuredQuery_Projection)(nil),            // 13: google.firestore.v1beta1.StructuredQuery.Projection
1271	(*wrapperspb.Int32Value)(nil),                 // 14: google.protobuf.Int32Value
1272	(*Value)(nil),                                 // 15: google.firestore.v1beta1.Value
1273}
1274var file_google_firestore_v1beta1_query_proto_depIdxs = []int32{
1275	13, // 0: google.firestore.v1beta1.StructuredQuery.select:type_name -> google.firestore.v1beta1.StructuredQuery.Projection
1276	6,  // 1: google.firestore.v1beta1.StructuredQuery.from:type_name -> google.firestore.v1beta1.StructuredQuery.CollectionSelector
1277	7,  // 2: google.firestore.v1beta1.StructuredQuery.where:type_name -> google.firestore.v1beta1.StructuredQuery.Filter
1278	12, // 3: google.firestore.v1beta1.StructuredQuery.order_by:type_name -> google.firestore.v1beta1.StructuredQuery.Order
1279	5,  // 4: google.firestore.v1beta1.StructuredQuery.start_at:type_name -> google.firestore.v1beta1.Cursor
1280	5,  // 5: google.firestore.v1beta1.StructuredQuery.end_at:type_name -> google.firestore.v1beta1.Cursor
1281	14, // 6: google.firestore.v1beta1.StructuredQuery.limit:type_name -> google.protobuf.Int32Value
1282	15, // 7: google.firestore.v1beta1.Cursor.values:type_name -> google.firestore.v1beta1.Value
1283	8,  // 8: google.firestore.v1beta1.StructuredQuery.Filter.composite_filter:type_name -> google.firestore.v1beta1.StructuredQuery.CompositeFilter
1284	9,  // 9: google.firestore.v1beta1.StructuredQuery.Filter.field_filter:type_name -> google.firestore.v1beta1.StructuredQuery.FieldFilter
1285	10, // 10: google.firestore.v1beta1.StructuredQuery.Filter.unary_filter:type_name -> google.firestore.v1beta1.StructuredQuery.UnaryFilter
1286	1,  // 11: google.firestore.v1beta1.StructuredQuery.CompositeFilter.op:type_name -> google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator
1287	7,  // 12: google.firestore.v1beta1.StructuredQuery.CompositeFilter.filters:type_name -> google.firestore.v1beta1.StructuredQuery.Filter
1288	11, // 13: google.firestore.v1beta1.StructuredQuery.FieldFilter.field:type_name -> google.firestore.v1beta1.StructuredQuery.FieldReference
1289	2,  // 14: google.firestore.v1beta1.StructuredQuery.FieldFilter.op:type_name -> google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator
1290	15, // 15: google.firestore.v1beta1.StructuredQuery.FieldFilter.value:type_name -> google.firestore.v1beta1.Value
1291	3,  // 16: google.firestore.v1beta1.StructuredQuery.UnaryFilter.op:type_name -> google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator
1292	11, // 17: google.firestore.v1beta1.StructuredQuery.UnaryFilter.field:type_name -> google.firestore.v1beta1.StructuredQuery.FieldReference
1293	11, // 18: google.firestore.v1beta1.StructuredQuery.Order.field:type_name -> google.firestore.v1beta1.StructuredQuery.FieldReference
1294	0,  // 19: google.firestore.v1beta1.StructuredQuery.Order.direction:type_name -> google.firestore.v1beta1.StructuredQuery.Direction
1295	11, // 20: google.firestore.v1beta1.StructuredQuery.Projection.fields:type_name -> google.firestore.v1beta1.StructuredQuery.FieldReference
1296	21, // [21:21] is the sub-list for method output_type
1297	21, // [21:21] is the sub-list for method input_type
1298	21, // [21:21] is the sub-list for extension type_name
1299	21, // [21:21] is the sub-list for extension extendee
1300	0,  // [0:21] is the sub-list for field type_name
1301}
1302
1303func init() { file_google_firestore_v1beta1_query_proto_init() }
1304func file_google_firestore_v1beta1_query_proto_init() {
1305	if File_google_firestore_v1beta1_query_proto != nil {
1306		return
1307	}
1308	file_google_firestore_v1beta1_document_proto_init()
1309	if !protoimpl.UnsafeEnabled {
1310		file_google_firestore_v1beta1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1311			switch v := v.(*StructuredQuery); i {
1312			case 0:
1313				return &v.state
1314			case 1:
1315				return &v.sizeCache
1316			case 2:
1317				return &v.unknownFields
1318			default:
1319				return nil
1320			}
1321		}
1322		file_google_firestore_v1beta1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1323			switch v := v.(*Cursor); i {
1324			case 0:
1325				return &v.state
1326			case 1:
1327				return &v.sizeCache
1328			case 2:
1329				return &v.unknownFields
1330			default:
1331				return nil
1332			}
1333		}
1334		file_google_firestore_v1beta1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1335			switch v := v.(*StructuredQuery_CollectionSelector); i {
1336			case 0:
1337				return &v.state
1338			case 1:
1339				return &v.sizeCache
1340			case 2:
1341				return &v.unknownFields
1342			default:
1343				return nil
1344			}
1345		}
1346		file_google_firestore_v1beta1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1347			switch v := v.(*StructuredQuery_Filter); i {
1348			case 0:
1349				return &v.state
1350			case 1:
1351				return &v.sizeCache
1352			case 2:
1353				return &v.unknownFields
1354			default:
1355				return nil
1356			}
1357		}
1358		file_google_firestore_v1beta1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1359			switch v := v.(*StructuredQuery_CompositeFilter); i {
1360			case 0:
1361				return &v.state
1362			case 1:
1363				return &v.sizeCache
1364			case 2:
1365				return &v.unknownFields
1366			default:
1367				return nil
1368			}
1369		}
1370		file_google_firestore_v1beta1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1371			switch v := v.(*StructuredQuery_FieldFilter); i {
1372			case 0:
1373				return &v.state
1374			case 1:
1375				return &v.sizeCache
1376			case 2:
1377				return &v.unknownFields
1378			default:
1379				return nil
1380			}
1381		}
1382		file_google_firestore_v1beta1_query_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1383			switch v := v.(*StructuredQuery_UnaryFilter); i {
1384			case 0:
1385				return &v.state
1386			case 1:
1387				return &v.sizeCache
1388			case 2:
1389				return &v.unknownFields
1390			default:
1391				return nil
1392			}
1393		}
1394		file_google_firestore_v1beta1_query_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1395			switch v := v.(*StructuredQuery_FieldReference); i {
1396			case 0:
1397				return &v.state
1398			case 1:
1399				return &v.sizeCache
1400			case 2:
1401				return &v.unknownFields
1402			default:
1403				return nil
1404			}
1405		}
1406		file_google_firestore_v1beta1_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1407			switch v := v.(*StructuredQuery_Order); i {
1408			case 0:
1409				return &v.state
1410			case 1:
1411				return &v.sizeCache
1412			case 2:
1413				return &v.unknownFields
1414			default:
1415				return nil
1416			}
1417		}
1418		file_google_firestore_v1beta1_query_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1419			switch v := v.(*StructuredQuery_Projection); i {
1420			case 0:
1421				return &v.state
1422			case 1:
1423				return &v.sizeCache
1424			case 2:
1425				return &v.unknownFields
1426			default:
1427				return nil
1428			}
1429		}
1430	}
1431	file_google_firestore_v1beta1_query_proto_msgTypes[3].OneofWrappers = []interface{}{
1432		(*StructuredQuery_Filter_CompositeFilter)(nil),
1433		(*StructuredQuery_Filter_FieldFilter)(nil),
1434		(*StructuredQuery_Filter_UnaryFilter)(nil),
1435	}
1436	file_google_firestore_v1beta1_query_proto_msgTypes[6].OneofWrappers = []interface{}{
1437		(*StructuredQuery_UnaryFilter_Field)(nil),
1438	}
1439	type x struct{}
1440	out := protoimpl.TypeBuilder{
1441		File: protoimpl.DescBuilder{
1442			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1443			RawDescriptor: file_google_firestore_v1beta1_query_proto_rawDesc,
1444			NumEnums:      4,
1445			NumMessages:   10,
1446			NumExtensions: 0,
1447			NumServices:   0,
1448		},
1449		GoTypes:           file_google_firestore_v1beta1_query_proto_goTypes,
1450		DependencyIndexes: file_google_firestore_v1beta1_query_proto_depIdxs,
1451		EnumInfos:         file_google_firestore_v1beta1_query_proto_enumTypes,
1452		MessageInfos:      file_google_firestore_v1beta1_query_proto_msgTypes,
1453	}.Build()
1454	File_google_firestore_v1beta1_query_proto = out.File
1455	file_google_firestore_v1beta1_query_proto_rawDesc = nil
1456	file_google_firestore_v1beta1_query_proto_goTypes = nil
1457	file_google_firestore_v1beta1_query_proto_depIdxs = nil
1458}
1459