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