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