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