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