1// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.26.0
18// 	protoc        v3.12.2
19// source: google/firestore/v1/firestore.proto
20
21package firestore
22
23import (
24	context "context"
25	reflect "reflect"
26	sync "sync"
27
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	status "google.golang.org/genproto/googleapis/rpc/status"
30	grpc "google.golang.org/grpc"
31	codes "google.golang.org/grpc/codes"
32	status1 "google.golang.org/grpc/status"
33	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
34	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
35	emptypb "google.golang.org/protobuf/types/known/emptypb"
36	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
37)
38
39const (
40	// Verify that this generated code is sufficiently up-to-date.
41	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
42	// Verify that runtime/protoimpl is sufficiently up-to-date.
43	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
44)
45
46// The type of change.
47type TargetChange_TargetChangeType int32
48
49const (
50	// No change has occurred. Used only to send an updated `resume_token`.
51	TargetChange_NO_CHANGE TargetChange_TargetChangeType = 0
52	// The targets have been added.
53	TargetChange_ADD TargetChange_TargetChangeType = 1
54	// The targets have been removed.
55	TargetChange_REMOVE TargetChange_TargetChangeType = 2
56	// The targets reflect all changes committed before the targets were added
57	// to the stream.
58	//
59	// This will be sent after or with a `read_time` that is greater than or
60	// equal to the time at which the targets were added.
61	//
62	// Listeners can wait for this change if read-after-write semantics
63	// are desired.
64	TargetChange_CURRENT TargetChange_TargetChangeType = 3
65	// The targets have been reset, and a new initial state for the targets
66	// will be returned in subsequent changes.
67	//
68	// After the initial state is complete, `CURRENT` will be returned even
69	// if the target was previously indicated to be `CURRENT`.
70	TargetChange_RESET TargetChange_TargetChangeType = 4
71)
72
73// Enum value maps for TargetChange_TargetChangeType.
74var (
75	TargetChange_TargetChangeType_name = map[int32]string{
76		0: "NO_CHANGE",
77		1: "ADD",
78		2: "REMOVE",
79		3: "CURRENT",
80		4: "RESET",
81	}
82	TargetChange_TargetChangeType_value = map[string]int32{
83		"NO_CHANGE": 0,
84		"ADD":       1,
85		"REMOVE":    2,
86		"CURRENT":   3,
87		"RESET":     4,
88	}
89)
90
91func (x TargetChange_TargetChangeType) Enum() *TargetChange_TargetChangeType {
92	p := new(TargetChange_TargetChangeType)
93	*p = x
94	return p
95}
96
97func (x TargetChange_TargetChangeType) String() string {
98	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
99}
100
101func (TargetChange_TargetChangeType) Descriptor() protoreflect.EnumDescriptor {
102	return file_google_firestore_v1_firestore_proto_enumTypes[0].Descriptor()
103}
104
105func (TargetChange_TargetChangeType) Type() protoreflect.EnumType {
106	return &file_google_firestore_v1_firestore_proto_enumTypes[0]
107}
108
109func (x TargetChange_TargetChangeType) Number() protoreflect.EnumNumber {
110	return protoreflect.EnumNumber(x)
111}
112
113// Deprecated: Use TargetChange_TargetChangeType.Descriptor instead.
114func (TargetChange_TargetChangeType) EnumDescriptor() ([]byte, []int) {
115	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{22, 0}
116}
117
118// The request for [Firestore.GetDocument][google.firestore.v1.Firestore.GetDocument].
119type GetDocumentRequest struct {
120	state         protoimpl.MessageState
121	sizeCache     protoimpl.SizeCache
122	unknownFields protoimpl.UnknownFields
123
124	// Required. The resource name of the Document to get. In the format:
125	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
126	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
127	// The fields to return. If not set, returns all fields.
128	//
129	// If the document has a field that is not present in this mask, that field
130	// will not be returned in the response.
131	Mask *DocumentMask `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"`
132	// The consistency mode for this transaction.
133	// If not set, defaults to strong consistency.
134	//
135	// Types that are assignable to ConsistencySelector:
136	//	*GetDocumentRequest_Transaction
137	//	*GetDocumentRequest_ReadTime
138	ConsistencySelector isGetDocumentRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"`
139}
140
141func (x *GetDocumentRequest) Reset() {
142	*x = GetDocumentRequest{}
143	if protoimpl.UnsafeEnabled {
144		mi := &file_google_firestore_v1_firestore_proto_msgTypes[0]
145		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
146		ms.StoreMessageInfo(mi)
147	}
148}
149
150func (x *GetDocumentRequest) String() string {
151	return protoimpl.X.MessageStringOf(x)
152}
153
154func (*GetDocumentRequest) ProtoMessage() {}
155
156func (x *GetDocumentRequest) ProtoReflect() protoreflect.Message {
157	mi := &file_google_firestore_v1_firestore_proto_msgTypes[0]
158	if protoimpl.UnsafeEnabled && x != nil {
159		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
160		if ms.LoadMessageInfo() == nil {
161			ms.StoreMessageInfo(mi)
162		}
163		return ms
164	}
165	return mi.MessageOf(x)
166}
167
168// Deprecated: Use GetDocumentRequest.ProtoReflect.Descriptor instead.
169func (*GetDocumentRequest) Descriptor() ([]byte, []int) {
170	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{0}
171}
172
173func (x *GetDocumentRequest) GetName() string {
174	if x != nil {
175		return x.Name
176	}
177	return ""
178}
179
180func (x *GetDocumentRequest) GetMask() *DocumentMask {
181	if x != nil {
182		return x.Mask
183	}
184	return nil
185}
186
187func (m *GetDocumentRequest) GetConsistencySelector() isGetDocumentRequest_ConsistencySelector {
188	if m != nil {
189		return m.ConsistencySelector
190	}
191	return nil
192}
193
194func (x *GetDocumentRequest) GetTransaction() []byte {
195	if x, ok := x.GetConsistencySelector().(*GetDocumentRequest_Transaction); ok {
196		return x.Transaction
197	}
198	return nil
199}
200
201func (x *GetDocumentRequest) GetReadTime() *timestamppb.Timestamp {
202	if x, ok := x.GetConsistencySelector().(*GetDocumentRequest_ReadTime); ok {
203		return x.ReadTime
204	}
205	return nil
206}
207
208type isGetDocumentRequest_ConsistencySelector interface {
209	isGetDocumentRequest_ConsistencySelector()
210}
211
212type GetDocumentRequest_Transaction struct {
213	// Reads the document in a transaction.
214	Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3,oneof"`
215}
216
217type GetDocumentRequest_ReadTime struct {
218	// Reads the version of the document at the given time.
219	// This may not be older than 270 seconds.
220	ReadTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=read_time,json=readTime,proto3,oneof"`
221}
222
223func (*GetDocumentRequest_Transaction) isGetDocumentRequest_ConsistencySelector() {}
224
225func (*GetDocumentRequest_ReadTime) isGetDocumentRequest_ConsistencySelector() {}
226
227// The request for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments].
228type ListDocumentsRequest struct {
229	state         protoimpl.MessageState
230	sizeCache     protoimpl.SizeCache
231	unknownFields protoimpl.UnknownFields
232
233	// Required. The parent resource name. In the format:
234	// `projects/{project_id}/databases/{database_id}/documents` or
235	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
236	// For example:
237	// `projects/my-project/databases/my-database/documents` or
238	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
239	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
240	// Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`
241	// or `messages`.
242	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
243	// The maximum number of documents to return.
244	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
245	// The `next_page_token` value returned from a previous List request, if any.
246	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
247	// The order to sort results by. For example: `priority desc, name`.
248	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
249	// The fields to return. If not set, returns all fields.
250	//
251	// If a document has a field that is not present in this mask, that field
252	// will not be returned in the response.
253	Mask *DocumentMask `protobuf:"bytes,7,opt,name=mask,proto3" json:"mask,omitempty"`
254	// The consistency mode for this transaction.
255	// If not set, defaults to strong consistency.
256	//
257	// Types that are assignable to ConsistencySelector:
258	//	*ListDocumentsRequest_Transaction
259	//	*ListDocumentsRequest_ReadTime
260	ConsistencySelector isListDocumentsRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"`
261	// If the list should show missing documents. A missing document is a
262	// document that does not exist but has sub-documents. These documents will
263	// be returned with a key but will not have fields, [Document.create_time][google.firestore.v1.Document.create_time],
264	// or [Document.update_time][google.firestore.v1.Document.update_time] set.
265	//
266	// Requests with `show_missing` may not specify `where` or
267	// `order_by`.
268	ShowMissing bool `protobuf:"varint,12,opt,name=show_missing,json=showMissing,proto3" json:"show_missing,omitempty"`
269}
270
271func (x *ListDocumentsRequest) Reset() {
272	*x = ListDocumentsRequest{}
273	if protoimpl.UnsafeEnabled {
274		mi := &file_google_firestore_v1_firestore_proto_msgTypes[1]
275		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
276		ms.StoreMessageInfo(mi)
277	}
278}
279
280func (x *ListDocumentsRequest) String() string {
281	return protoimpl.X.MessageStringOf(x)
282}
283
284func (*ListDocumentsRequest) ProtoMessage() {}
285
286func (x *ListDocumentsRequest) ProtoReflect() protoreflect.Message {
287	mi := &file_google_firestore_v1_firestore_proto_msgTypes[1]
288	if protoimpl.UnsafeEnabled && x != nil {
289		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
290		if ms.LoadMessageInfo() == nil {
291			ms.StoreMessageInfo(mi)
292		}
293		return ms
294	}
295	return mi.MessageOf(x)
296}
297
298// Deprecated: Use ListDocumentsRequest.ProtoReflect.Descriptor instead.
299func (*ListDocumentsRequest) Descriptor() ([]byte, []int) {
300	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{1}
301}
302
303func (x *ListDocumentsRequest) GetParent() string {
304	if x != nil {
305		return x.Parent
306	}
307	return ""
308}
309
310func (x *ListDocumentsRequest) GetCollectionId() string {
311	if x != nil {
312		return x.CollectionId
313	}
314	return ""
315}
316
317func (x *ListDocumentsRequest) GetPageSize() int32 {
318	if x != nil {
319		return x.PageSize
320	}
321	return 0
322}
323
324func (x *ListDocumentsRequest) GetPageToken() string {
325	if x != nil {
326		return x.PageToken
327	}
328	return ""
329}
330
331func (x *ListDocumentsRequest) GetOrderBy() string {
332	if x != nil {
333		return x.OrderBy
334	}
335	return ""
336}
337
338func (x *ListDocumentsRequest) GetMask() *DocumentMask {
339	if x != nil {
340		return x.Mask
341	}
342	return nil
343}
344
345func (m *ListDocumentsRequest) GetConsistencySelector() isListDocumentsRequest_ConsistencySelector {
346	if m != nil {
347		return m.ConsistencySelector
348	}
349	return nil
350}
351
352func (x *ListDocumentsRequest) GetTransaction() []byte {
353	if x, ok := x.GetConsistencySelector().(*ListDocumentsRequest_Transaction); ok {
354		return x.Transaction
355	}
356	return nil
357}
358
359func (x *ListDocumentsRequest) GetReadTime() *timestamppb.Timestamp {
360	if x, ok := x.GetConsistencySelector().(*ListDocumentsRequest_ReadTime); ok {
361		return x.ReadTime
362	}
363	return nil
364}
365
366func (x *ListDocumentsRequest) GetShowMissing() bool {
367	if x != nil {
368		return x.ShowMissing
369	}
370	return false
371}
372
373type isListDocumentsRequest_ConsistencySelector interface {
374	isListDocumentsRequest_ConsistencySelector()
375}
376
377type ListDocumentsRequest_Transaction struct {
378	// Reads documents in a transaction.
379	Transaction []byte `protobuf:"bytes,8,opt,name=transaction,proto3,oneof"`
380}
381
382type ListDocumentsRequest_ReadTime struct {
383	// Reads documents as they were at the given time.
384	// This may not be older than 270 seconds.
385	ReadTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=read_time,json=readTime,proto3,oneof"`
386}
387
388func (*ListDocumentsRequest_Transaction) isListDocumentsRequest_ConsistencySelector() {}
389
390func (*ListDocumentsRequest_ReadTime) isListDocumentsRequest_ConsistencySelector() {}
391
392// The response for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments].
393type ListDocumentsResponse struct {
394	state         protoimpl.MessageState
395	sizeCache     protoimpl.SizeCache
396	unknownFields protoimpl.UnknownFields
397
398	// The Documents found.
399	Documents []*Document `protobuf:"bytes,1,rep,name=documents,proto3" json:"documents,omitempty"`
400	// The next page token.
401	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
402}
403
404func (x *ListDocumentsResponse) Reset() {
405	*x = ListDocumentsResponse{}
406	if protoimpl.UnsafeEnabled {
407		mi := &file_google_firestore_v1_firestore_proto_msgTypes[2]
408		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
409		ms.StoreMessageInfo(mi)
410	}
411}
412
413func (x *ListDocumentsResponse) String() string {
414	return protoimpl.X.MessageStringOf(x)
415}
416
417func (*ListDocumentsResponse) ProtoMessage() {}
418
419func (x *ListDocumentsResponse) ProtoReflect() protoreflect.Message {
420	mi := &file_google_firestore_v1_firestore_proto_msgTypes[2]
421	if protoimpl.UnsafeEnabled && x != nil {
422		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
423		if ms.LoadMessageInfo() == nil {
424			ms.StoreMessageInfo(mi)
425		}
426		return ms
427	}
428	return mi.MessageOf(x)
429}
430
431// Deprecated: Use ListDocumentsResponse.ProtoReflect.Descriptor instead.
432func (*ListDocumentsResponse) Descriptor() ([]byte, []int) {
433	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{2}
434}
435
436func (x *ListDocumentsResponse) GetDocuments() []*Document {
437	if x != nil {
438		return x.Documents
439	}
440	return nil
441}
442
443func (x *ListDocumentsResponse) GetNextPageToken() string {
444	if x != nil {
445		return x.NextPageToken
446	}
447	return ""
448}
449
450// The request for [Firestore.CreateDocument][google.firestore.v1.Firestore.CreateDocument].
451type CreateDocumentRequest struct {
452	state         protoimpl.MessageState
453	sizeCache     protoimpl.SizeCache
454	unknownFields protoimpl.UnknownFields
455
456	// Required. The parent resource. For example:
457	// `projects/{project_id}/databases/{database_id}/documents` or
458	// `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
459	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
460	// Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`.
461	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
462	// The client-assigned document ID to use for this document.
463	//
464	// Optional. If not specified, an ID will be assigned by the service.
465	DocumentId string `protobuf:"bytes,3,opt,name=document_id,json=documentId,proto3" json:"document_id,omitempty"`
466	// Required. The document to create. `name` must not be set.
467	Document *Document `protobuf:"bytes,4,opt,name=document,proto3" json:"document,omitempty"`
468	// The fields to return. If not set, returns all fields.
469	//
470	// If the document has a field that is not present in this mask, that field
471	// will not be returned in the response.
472	Mask *DocumentMask `protobuf:"bytes,5,opt,name=mask,proto3" json:"mask,omitempty"`
473}
474
475func (x *CreateDocumentRequest) Reset() {
476	*x = CreateDocumentRequest{}
477	if protoimpl.UnsafeEnabled {
478		mi := &file_google_firestore_v1_firestore_proto_msgTypes[3]
479		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
480		ms.StoreMessageInfo(mi)
481	}
482}
483
484func (x *CreateDocumentRequest) String() string {
485	return protoimpl.X.MessageStringOf(x)
486}
487
488func (*CreateDocumentRequest) ProtoMessage() {}
489
490func (x *CreateDocumentRequest) ProtoReflect() protoreflect.Message {
491	mi := &file_google_firestore_v1_firestore_proto_msgTypes[3]
492	if protoimpl.UnsafeEnabled && x != nil {
493		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
494		if ms.LoadMessageInfo() == nil {
495			ms.StoreMessageInfo(mi)
496		}
497		return ms
498	}
499	return mi.MessageOf(x)
500}
501
502// Deprecated: Use CreateDocumentRequest.ProtoReflect.Descriptor instead.
503func (*CreateDocumentRequest) Descriptor() ([]byte, []int) {
504	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{3}
505}
506
507func (x *CreateDocumentRequest) GetParent() string {
508	if x != nil {
509		return x.Parent
510	}
511	return ""
512}
513
514func (x *CreateDocumentRequest) GetCollectionId() string {
515	if x != nil {
516		return x.CollectionId
517	}
518	return ""
519}
520
521func (x *CreateDocumentRequest) GetDocumentId() string {
522	if x != nil {
523		return x.DocumentId
524	}
525	return ""
526}
527
528func (x *CreateDocumentRequest) GetDocument() *Document {
529	if x != nil {
530		return x.Document
531	}
532	return nil
533}
534
535func (x *CreateDocumentRequest) GetMask() *DocumentMask {
536	if x != nil {
537		return x.Mask
538	}
539	return nil
540}
541
542// The request for [Firestore.UpdateDocument][google.firestore.v1.Firestore.UpdateDocument].
543type UpdateDocumentRequest struct {
544	state         protoimpl.MessageState
545	sizeCache     protoimpl.SizeCache
546	unknownFields protoimpl.UnknownFields
547
548	// Required. The updated document.
549	// Creates the document if it does not already exist.
550	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
551	// The fields to update.
552	// None of the field paths in the mask may contain a reserved name.
553	//
554	// If the document exists on the server and has fields not referenced in the
555	// mask, they are left unchanged.
556	// Fields referenced in the mask, but not present in the input document, are
557	// deleted from the document on the server.
558	UpdateMask *DocumentMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
559	// The fields to return. If not set, returns all fields.
560	//
561	// If the document has a field that is not present in this mask, that field
562	// will not be returned in the response.
563	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"`
564	// An optional precondition on the document.
565	// The request will fail if this is set and not met by the target document.
566	CurrentDocument *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"`
567}
568
569func (x *UpdateDocumentRequest) Reset() {
570	*x = UpdateDocumentRequest{}
571	if protoimpl.UnsafeEnabled {
572		mi := &file_google_firestore_v1_firestore_proto_msgTypes[4]
573		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
574		ms.StoreMessageInfo(mi)
575	}
576}
577
578func (x *UpdateDocumentRequest) String() string {
579	return protoimpl.X.MessageStringOf(x)
580}
581
582func (*UpdateDocumentRequest) ProtoMessage() {}
583
584func (x *UpdateDocumentRequest) ProtoReflect() protoreflect.Message {
585	mi := &file_google_firestore_v1_firestore_proto_msgTypes[4]
586	if protoimpl.UnsafeEnabled && x != nil {
587		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
588		if ms.LoadMessageInfo() == nil {
589			ms.StoreMessageInfo(mi)
590		}
591		return ms
592	}
593	return mi.MessageOf(x)
594}
595
596// Deprecated: Use UpdateDocumentRequest.ProtoReflect.Descriptor instead.
597func (*UpdateDocumentRequest) Descriptor() ([]byte, []int) {
598	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{4}
599}
600
601func (x *UpdateDocumentRequest) GetDocument() *Document {
602	if x != nil {
603		return x.Document
604	}
605	return nil
606}
607
608func (x *UpdateDocumentRequest) GetUpdateMask() *DocumentMask {
609	if x != nil {
610		return x.UpdateMask
611	}
612	return nil
613}
614
615func (x *UpdateDocumentRequest) GetMask() *DocumentMask {
616	if x != nil {
617		return x.Mask
618	}
619	return nil
620}
621
622func (x *UpdateDocumentRequest) GetCurrentDocument() *Precondition {
623	if x != nil {
624		return x.CurrentDocument
625	}
626	return nil
627}
628
629// The request for [Firestore.DeleteDocument][google.firestore.v1.Firestore.DeleteDocument].
630type DeleteDocumentRequest struct {
631	state         protoimpl.MessageState
632	sizeCache     protoimpl.SizeCache
633	unknownFields protoimpl.UnknownFields
634
635	// Required. The resource name of the Document to delete. In the format:
636	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
637	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
638	// An optional precondition on the document.
639	// The request will fail if this is set and not met by the target document.
640	CurrentDocument *Precondition `protobuf:"bytes,2,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"`
641}
642
643func (x *DeleteDocumentRequest) Reset() {
644	*x = DeleteDocumentRequest{}
645	if protoimpl.UnsafeEnabled {
646		mi := &file_google_firestore_v1_firestore_proto_msgTypes[5]
647		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
648		ms.StoreMessageInfo(mi)
649	}
650}
651
652func (x *DeleteDocumentRequest) String() string {
653	return protoimpl.X.MessageStringOf(x)
654}
655
656func (*DeleteDocumentRequest) ProtoMessage() {}
657
658func (x *DeleteDocumentRequest) ProtoReflect() protoreflect.Message {
659	mi := &file_google_firestore_v1_firestore_proto_msgTypes[5]
660	if protoimpl.UnsafeEnabled && x != nil {
661		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
662		if ms.LoadMessageInfo() == nil {
663			ms.StoreMessageInfo(mi)
664		}
665		return ms
666	}
667	return mi.MessageOf(x)
668}
669
670// Deprecated: Use DeleteDocumentRequest.ProtoReflect.Descriptor instead.
671func (*DeleteDocumentRequest) Descriptor() ([]byte, []int) {
672	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{5}
673}
674
675func (x *DeleteDocumentRequest) GetName() string {
676	if x != nil {
677		return x.Name
678	}
679	return ""
680}
681
682func (x *DeleteDocumentRequest) GetCurrentDocument() *Precondition {
683	if x != nil {
684		return x.CurrentDocument
685	}
686	return nil
687}
688
689// The request for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments].
690type BatchGetDocumentsRequest struct {
691	state         protoimpl.MessageState
692	sizeCache     protoimpl.SizeCache
693	unknownFields protoimpl.UnknownFields
694
695	// Required. The database name. In the format:
696	// `projects/{project_id}/databases/{database_id}`.
697	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
698	// The names of the documents to retrieve. In the format:
699	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
700	// The request will fail if any of the document is not a child resource of the
701	// given `database`. Duplicate names will be elided.
702	Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"`
703	// The fields to return. If not set, returns all fields.
704	//
705	// If a document has a field that is not present in this mask, that field will
706	// not be returned in the response.
707	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"`
708	// The consistency mode for this transaction.
709	// If not set, defaults to strong consistency.
710	//
711	// Types that are assignable to ConsistencySelector:
712	//	*BatchGetDocumentsRequest_Transaction
713	//	*BatchGetDocumentsRequest_NewTransaction
714	//	*BatchGetDocumentsRequest_ReadTime
715	ConsistencySelector isBatchGetDocumentsRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"`
716}
717
718func (x *BatchGetDocumentsRequest) Reset() {
719	*x = BatchGetDocumentsRequest{}
720	if protoimpl.UnsafeEnabled {
721		mi := &file_google_firestore_v1_firestore_proto_msgTypes[6]
722		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
723		ms.StoreMessageInfo(mi)
724	}
725}
726
727func (x *BatchGetDocumentsRequest) String() string {
728	return protoimpl.X.MessageStringOf(x)
729}
730
731func (*BatchGetDocumentsRequest) ProtoMessage() {}
732
733func (x *BatchGetDocumentsRequest) ProtoReflect() protoreflect.Message {
734	mi := &file_google_firestore_v1_firestore_proto_msgTypes[6]
735	if protoimpl.UnsafeEnabled && x != nil {
736		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
737		if ms.LoadMessageInfo() == nil {
738			ms.StoreMessageInfo(mi)
739		}
740		return ms
741	}
742	return mi.MessageOf(x)
743}
744
745// Deprecated: Use BatchGetDocumentsRequest.ProtoReflect.Descriptor instead.
746func (*BatchGetDocumentsRequest) Descriptor() ([]byte, []int) {
747	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{6}
748}
749
750func (x *BatchGetDocumentsRequest) GetDatabase() string {
751	if x != nil {
752		return x.Database
753	}
754	return ""
755}
756
757func (x *BatchGetDocumentsRequest) GetDocuments() []string {
758	if x != nil {
759		return x.Documents
760	}
761	return nil
762}
763
764func (x *BatchGetDocumentsRequest) GetMask() *DocumentMask {
765	if x != nil {
766		return x.Mask
767	}
768	return nil
769}
770
771func (m *BatchGetDocumentsRequest) GetConsistencySelector() isBatchGetDocumentsRequest_ConsistencySelector {
772	if m != nil {
773		return m.ConsistencySelector
774	}
775	return nil
776}
777
778func (x *BatchGetDocumentsRequest) GetTransaction() []byte {
779	if x, ok := x.GetConsistencySelector().(*BatchGetDocumentsRequest_Transaction); ok {
780		return x.Transaction
781	}
782	return nil
783}
784
785func (x *BatchGetDocumentsRequest) GetNewTransaction() *TransactionOptions {
786	if x, ok := x.GetConsistencySelector().(*BatchGetDocumentsRequest_NewTransaction); ok {
787		return x.NewTransaction
788	}
789	return nil
790}
791
792func (x *BatchGetDocumentsRequest) GetReadTime() *timestamppb.Timestamp {
793	if x, ok := x.GetConsistencySelector().(*BatchGetDocumentsRequest_ReadTime); ok {
794		return x.ReadTime
795	}
796	return nil
797}
798
799type isBatchGetDocumentsRequest_ConsistencySelector interface {
800	isBatchGetDocumentsRequest_ConsistencySelector()
801}
802
803type BatchGetDocumentsRequest_Transaction struct {
804	// Reads documents in a transaction.
805	Transaction []byte `protobuf:"bytes,4,opt,name=transaction,proto3,oneof"`
806}
807
808type BatchGetDocumentsRequest_NewTransaction struct {
809	// Starts a new transaction and reads the documents.
810	// Defaults to a read-only transaction.
811	// The new transaction ID will be returned as the first response in the
812	// stream.
813	NewTransaction *TransactionOptions `protobuf:"bytes,5,opt,name=new_transaction,json=newTransaction,proto3,oneof"`
814}
815
816type BatchGetDocumentsRequest_ReadTime struct {
817	// Reads documents as they were at the given time.
818	// This may not be older than 270 seconds.
819	ReadTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"`
820}
821
822func (*BatchGetDocumentsRequest_Transaction) isBatchGetDocumentsRequest_ConsistencySelector() {}
823
824func (*BatchGetDocumentsRequest_NewTransaction) isBatchGetDocumentsRequest_ConsistencySelector() {}
825
826func (*BatchGetDocumentsRequest_ReadTime) isBatchGetDocumentsRequest_ConsistencySelector() {}
827
828// The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments].
829type BatchGetDocumentsResponse struct {
830	state         protoimpl.MessageState
831	sizeCache     protoimpl.SizeCache
832	unknownFields protoimpl.UnknownFields
833
834	// A single result.
835	// This can be empty if the server is just returning a transaction.
836	//
837	// Types that are assignable to Result:
838	//	*BatchGetDocumentsResponse_Found
839	//	*BatchGetDocumentsResponse_Missing
840	Result isBatchGetDocumentsResponse_Result `protobuf_oneof:"result"`
841	// The transaction that was started as part of this request.
842	// Will only be set in the first response, and only if
843	// [BatchGetDocumentsRequest.new_transaction][google.firestore.v1.BatchGetDocumentsRequest.new_transaction] was set in the request.
844	Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"`
845	// The time at which the document was read.
846	// This may be monotically increasing, in this case the previous documents in
847	// the result stream are guaranteed not to have changed between their
848	// read_time and this one.
849	ReadTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
850}
851
852func (x *BatchGetDocumentsResponse) Reset() {
853	*x = BatchGetDocumentsResponse{}
854	if protoimpl.UnsafeEnabled {
855		mi := &file_google_firestore_v1_firestore_proto_msgTypes[7]
856		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
857		ms.StoreMessageInfo(mi)
858	}
859}
860
861func (x *BatchGetDocumentsResponse) String() string {
862	return protoimpl.X.MessageStringOf(x)
863}
864
865func (*BatchGetDocumentsResponse) ProtoMessage() {}
866
867func (x *BatchGetDocumentsResponse) ProtoReflect() protoreflect.Message {
868	mi := &file_google_firestore_v1_firestore_proto_msgTypes[7]
869	if protoimpl.UnsafeEnabled && x != nil {
870		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
871		if ms.LoadMessageInfo() == nil {
872			ms.StoreMessageInfo(mi)
873		}
874		return ms
875	}
876	return mi.MessageOf(x)
877}
878
879// Deprecated: Use BatchGetDocumentsResponse.ProtoReflect.Descriptor instead.
880func (*BatchGetDocumentsResponse) Descriptor() ([]byte, []int) {
881	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{7}
882}
883
884func (m *BatchGetDocumentsResponse) GetResult() isBatchGetDocumentsResponse_Result {
885	if m != nil {
886		return m.Result
887	}
888	return nil
889}
890
891func (x *BatchGetDocumentsResponse) GetFound() *Document {
892	if x, ok := x.GetResult().(*BatchGetDocumentsResponse_Found); ok {
893		return x.Found
894	}
895	return nil
896}
897
898func (x *BatchGetDocumentsResponse) GetMissing() string {
899	if x, ok := x.GetResult().(*BatchGetDocumentsResponse_Missing); ok {
900		return x.Missing
901	}
902	return ""
903}
904
905func (x *BatchGetDocumentsResponse) GetTransaction() []byte {
906	if x != nil {
907		return x.Transaction
908	}
909	return nil
910}
911
912func (x *BatchGetDocumentsResponse) GetReadTime() *timestamppb.Timestamp {
913	if x != nil {
914		return x.ReadTime
915	}
916	return nil
917}
918
919type isBatchGetDocumentsResponse_Result interface {
920	isBatchGetDocumentsResponse_Result()
921}
922
923type BatchGetDocumentsResponse_Found struct {
924	// A document that was requested.
925	Found *Document `protobuf:"bytes,1,opt,name=found,proto3,oneof"`
926}
927
928type BatchGetDocumentsResponse_Missing struct {
929	// A document name that was requested but does not exist. In the format:
930	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
931	Missing string `protobuf:"bytes,2,opt,name=missing,proto3,oneof"`
932}
933
934func (*BatchGetDocumentsResponse_Found) isBatchGetDocumentsResponse_Result() {}
935
936func (*BatchGetDocumentsResponse_Missing) isBatchGetDocumentsResponse_Result() {}
937
938// The request for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction].
939type BeginTransactionRequest struct {
940	state         protoimpl.MessageState
941	sizeCache     protoimpl.SizeCache
942	unknownFields protoimpl.UnknownFields
943
944	// Required. The database name. In the format:
945	// `projects/{project_id}/databases/{database_id}`.
946	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
947	// The options for the transaction.
948	// Defaults to a read-write transaction.
949	Options *TransactionOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
950}
951
952func (x *BeginTransactionRequest) Reset() {
953	*x = BeginTransactionRequest{}
954	if protoimpl.UnsafeEnabled {
955		mi := &file_google_firestore_v1_firestore_proto_msgTypes[8]
956		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
957		ms.StoreMessageInfo(mi)
958	}
959}
960
961func (x *BeginTransactionRequest) String() string {
962	return protoimpl.X.MessageStringOf(x)
963}
964
965func (*BeginTransactionRequest) ProtoMessage() {}
966
967func (x *BeginTransactionRequest) ProtoReflect() protoreflect.Message {
968	mi := &file_google_firestore_v1_firestore_proto_msgTypes[8]
969	if protoimpl.UnsafeEnabled && x != nil {
970		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
971		if ms.LoadMessageInfo() == nil {
972			ms.StoreMessageInfo(mi)
973		}
974		return ms
975	}
976	return mi.MessageOf(x)
977}
978
979// Deprecated: Use BeginTransactionRequest.ProtoReflect.Descriptor instead.
980func (*BeginTransactionRequest) Descriptor() ([]byte, []int) {
981	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{8}
982}
983
984func (x *BeginTransactionRequest) GetDatabase() string {
985	if x != nil {
986		return x.Database
987	}
988	return ""
989}
990
991func (x *BeginTransactionRequest) GetOptions() *TransactionOptions {
992	if x != nil {
993		return x.Options
994	}
995	return nil
996}
997
998// The response for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction].
999type BeginTransactionResponse struct {
1000	state         protoimpl.MessageState
1001	sizeCache     protoimpl.SizeCache
1002	unknownFields protoimpl.UnknownFields
1003
1004	// The transaction that was started.
1005	Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"`
1006}
1007
1008func (x *BeginTransactionResponse) Reset() {
1009	*x = BeginTransactionResponse{}
1010	if protoimpl.UnsafeEnabled {
1011		mi := &file_google_firestore_v1_firestore_proto_msgTypes[9]
1012		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1013		ms.StoreMessageInfo(mi)
1014	}
1015}
1016
1017func (x *BeginTransactionResponse) String() string {
1018	return protoimpl.X.MessageStringOf(x)
1019}
1020
1021func (*BeginTransactionResponse) ProtoMessage() {}
1022
1023func (x *BeginTransactionResponse) ProtoReflect() protoreflect.Message {
1024	mi := &file_google_firestore_v1_firestore_proto_msgTypes[9]
1025	if protoimpl.UnsafeEnabled && x != nil {
1026		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1027		if ms.LoadMessageInfo() == nil {
1028			ms.StoreMessageInfo(mi)
1029		}
1030		return ms
1031	}
1032	return mi.MessageOf(x)
1033}
1034
1035// Deprecated: Use BeginTransactionResponse.ProtoReflect.Descriptor instead.
1036func (*BeginTransactionResponse) Descriptor() ([]byte, []int) {
1037	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{9}
1038}
1039
1040func (x *BeginTransactionResponse) GetTransaction() []byte {
1041	if x != nil {
1042		return x.Transaction
1043	}
1044	return nil
1045}
1046
1047// The request for [Firestore.Commit][google.firestore.v1.Firestore.Commit].
1048type CommitRequest struct {
1049	state         protoimpl.MessageState
1050	sizeCache     protoimpl.SizeCache
1051	unknownFields protoimpl.UnknownFields
1052
1053	// Required. The database name. In the format:
1054	// `projects/{project_id}/databases/{database_id}`.
1055	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
1056	// The writes to apply.
1057	//
1058	// Always executed atomically and in order.
1059	Writes []*Write `protobuf:"bytes,2,rep,name=writes,proto3" json:"writes,omitempty"`
1060	// If set, applies all writes in this transaction, and commits it.
1061	Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"`
1062}
1063
1064func (x *CommitRequest) Reset() {
1065	*x = CommitRequest{}
1066	if protoimpl.UnsafeEnabled {
1067		mi := &file_google_firestore_v1_firestore_proto_msgTypes[10]
1068		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1069		ms.StoreMessageInfo(mi)
1070	}
1071}
1072
1073func (x *CommitRequest) String() string {
1074	return protoimpl.X.MessageStringOf(x)
1075}
1076
1077func (*CommitRequest) ProtoMessage() {}
1078
1079func (x *CommitRequest) ProtoReflect() protoreflect.Message {
1080	mi := &file_google_firestore_v1_firestore_proto_msgTypes[10]
1081	if protoimpl.UnsafeEnabled && x != nil {
1082		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1083		if ms.LoadMessageInfo() == nil {
1084			ms.StoreMessageInfo(mi)
1085		}
1086		return ms
1087	}
1088	return mi.MessageOf(x)
1089}
1090
1091// Deprecated: Use CommitRequest.ProtoReflect.Descriptor instead.
1092func (*CommitRequest) Descriptor() ([]byte, []int) {
1093	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{10}
1094}
1095
1096func (x *CommitRequest) GetDatabase() string {
1097	if x != nil {
1098		return x.Database
1099	}
1100	return ""
1101}
1102
1103func (x *CommitRequest) GetWrites() []*Write {
1104	if x != nil {
1105		return x.Writes
1106	}
1107	return nil
1108}
1109
1110func (x *CommitRequest) GetTransaction() []byte {
1111	if x != nil {
1112		return x.Transaction
1113	}
1114	return nil
1115}
1116
1117// The response for [Firestore.Commit][google.firestore.v1.Firestore.Commit].
1118type CommitResponse struct {
1119	state         protoimpl.MessageState
1120	sizeCache     protoimpl.SizeCache
1121	unknownFields protoimpl.UnknownFields
1122
1123	// The result of applying the writes.
1124	//
1125	// This i-th write result corresponds to the i-th write in the
1126	// request.
1127	WriteResults []*WriteResult `protobuf:"bytes,1,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"`
1128	// The time at which the commit occurred. Any read with an equal or greater
1129	// `read_time` is guaranteed to see the effects of the commit.
1130	CommitTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"`
1131}
1132
1133func (x *CommitResponse) Reset() {
1134	*x = CommitResponse{}
1135	if protoimpl.UnsafeEnabled {
1136		mi := &file_google_firestore_v1_firestore_proto_msgTypes[11]
1137		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1138		ms.StoreMessageInfo(mi)
1139	}
1140}
1141
1142func (x *CommitResponse) String() string {
1143	return protoimpl.X.MessageStringOf(x)
1144}
1145
1146func (*CommitResponse) ProtoMessage() {}
1147
1148func (x *CommitResponse) ProtoReflect() protoreflect.Message {
1149	mi := &file_google_firestore_v1_firestore_proto_msgTypes[11]
1150	if protoimpl.UnsafeEnabled && x != nil {
1151		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1152		if ms.LoadMessageInfo() == nil {
1153			ms.StoreMessageInfo(mi)
1154		}
1155		return ms
1156	}
1157	return mi.MessageOf(x)
1158}
1159
1160// Deprecated: Use CommitResponse.ProtoReflect.Descriptor instead.
1161func (*CommitResponse) Descriptor() ([]byte, []int) {
1162	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{11}
1163}
1164
1165func (x *CommitResponse) GetWriteResults() []*WriteResult {
1166	if x != nil {
1167		return x.WriteResults
1168	}
1169	return nil
1170}
1171
1172func (x *CommitResponse) GetCommitTime() *timestamppb.Timestamp {
1173	if x != nil {
1174		return x.CommitTime
1175	}
1176	return nil
1177}
1178
1179// The request for [Firestore.Rollback][google.firestore.v1.Firestore.Rollback].
1180type RollbackRequest struct {
1181	state         protoimpl.MessageState
1182	sizeCache     protoimpl.SizeCache
1183	unknownFields protoimpl.UnknownFields
1184
1185	// Required. The database name. In the format:
1186	// `projects/{project_id}/databases/{database_id}`.
1187	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
1188	// Required. The transaction to roll back.
1189	Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
1190}
1191
1192func (x *RollbackRequest) Reset() {
1193	*x = RollbackRequest{}
1194	if protoimpl.UnsafeEnabled {
1195		mi := &file_google_firestore_v1_firestore_proto_msgTypes[12]
1196		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1197		ms.StoreMessageInfo(mi)
1198	}
1199}
1200
1201func (x *RollbackRequest) String() string {
1202	return protoimpl.X.MessageStringOf(x)
1203}
1204
1205func (*RollbackRequest) ProtoMessage() {}
1206
1207func (x *RollbackRequest) ProtoReflect() protoreflect.Message {
1208	mi := &file_google_firestore_v1_firestore_proto_msgTypes[12]
1209	if protoimpl.UnsafeEnabled && x != nil {
1210		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1211		if ms.LoadMessageInfo() == nil {
1212			ms.StoreMessageInfo(mi)
1213		}
1214		return ms
1215	}
1216	return mi.MessageOf(x)
1217}
1218
1219// Deprecated: Use RollbackRequest.ProtoReflect.Descriptor instead.
1220func (*RollbackRequest) Descriptor() ([]byte, []int) {
1221	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{12}
1222}
1223
1224func (x *RollbackRequest) GetDatabase() string {
1225	if x != nil {
1226		return x.Database
1227	}
1228	return ""
1229}
1230
1231func (x *RollbackRequest) GetTransaction() []byte {
1232	if x != nil {
1233		return x.Transaction
1234	}
1235	return nil
1236}
1237
1238// The request for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery].
1239type RunQueryRequest struct {
1240	state         protoimpl.MessageState
1241	sizeCache     protoimpl.SizeCache
1242	unknownFields protoimpl.UnknownFields
1243
1244	// Required. The parent resource name. In the format:
1245	// `projects/{project_id}/databases/{database_id}/documents` or
1246	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
1247	// For example:
1248	// `projects/my-project/databases/my-database/documents` or
1249	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
1250	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1251	// The query to run.
1252	//
1253	// Types that are assignable to QueryType:
1254	//	*RunQueryRequest_StructuredQuery
1255	QueryType isRunQueryRequest_QueryType `protobuf_oneof:"query_type"`
1256	// The consistency mode for this transaction.
1257	// If not set, defaults to strong consistency.
1258	//
1259	// Types that are assignable to ConsistencySelector:
1260	//	*RunQueryRequest_Transaction
1261	//	*RunQueryRequest_NewTransaction
1262	//	*RunQueryRequest_ReadTime
1263	ConsistencySelector isRunQueryRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"`
1264}
1265
1266func (x *RunQueryRequest) Reset() {
1267	*x = RunQueryRequest{}
1268	if protoimpl.UnsafeEnabled {
1269		mi := &file_google_firestore_v1_firestore_proto_msgTypes[13]
1270		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1271		ms.StoreMessageInfo(mi)
1272	}
1273}
1274
1275func (x *RunQueryRequest) String() string {
1276	return protoimpl.X.MessageStringOf(x)
1277}
1278
1279func (*RunQueryRequest) ProtoMessage() {}
1280
1281func (x *RunQueryRequest) ProtoReflect() protoreflect.Message {
1282	mi := &file_google_firestore_v1_firestore_proto_msgTypes[13]
1283	if protoimpl.UnsafeEnabled && x != nil {
1284		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1285		if ms.LoadMessageInfo() == nil {
1286			ms.StoreMessageInfo(mi)
1287		}
1288		return ms
1289	}
1290	return mi.MessageOf(x)
1291}
1292
1293// Deprecated: Use RunQueryRequest.ProtoReflect.Descriptor instead.
1294func (*RunQueryRequest) Descriptor() ([]byte, []int) {
1295	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{13}
1296}
1297
1298func (x *RunQueryRequest) GetParent() string {
1299	if x != nil {
1300		return x.Parent
1301	}
1302	return ""
1303}
1304
1305func (m *RunQueryRequest) GetQueryType() isRunQueryRequest_QueryType {
1306	if m != nil {
1307		return m.QueryType
1308	}
1309	return nil
1310}
1311
1312func (x *RunQueryRequest) GetStructuredQuery() *StructuredQuery {
1313	if x, ok := x.GetQueryType().(*RunQueryRequest_StructuredQuery); ok {
1314		return x.StructuredQuery
1315	}
1316	return nil
1317}
1318
1319func (m *RunQueryRequest) GetConsistencySelector() isRunQueryRequest_ConsistencySelector {
1320	if m != nil {
1321		return m.ConsistencySelector
1322	}
1323	return nil
1324}
1325
1326func (x *RunQueryRequest) GetTransaction() []byte {
1327	if x, ok := x.GetConsistencySelector().(*RunQueryRequest_Transaction); ok {
1328		return x.Transaction
1329	}
1330	return nil
1331}
1332
1333func (x *RunQueryRequest) GetNewTransaction() *TransactionOptions {
1334	if x, ok := x.GetConsistencySelector().(*RunQueryRequest_NewTransaction); ok {
1335		return x.NewTransaction
1336	}
1337	return nil
1338}
1339
1340func (x *RunQueryRequest) GetReadTime() *timestamppb.Timestamp {
1341	if x, ok := x.GetConsistencySelector().(*RunQueryRequest_ReadTime); ok {
1342		return x.ReadTime
1343	}
1344	return nil
1345}
1346
1347type isRunQueryRequest_QueryType interface {
1348	isRunQueryRequest_QueryType()
1349}
1350
1351type RunQueryRequest_StructuredQuery struct {
1352	// A structured query.
1353	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"`
1354}
1355
1356func (*RunQueryRequest_StructuredQuery) isRunQueryRequest_QueryType() {}
1357
1358type isRunQueryRequest_ConsistencySelector interface {
1359	isRunQueryRequest_ConsistencySelector()
1360}
1361
1362type RunQueryRequest_Transaction struct {
1363	// Reads documents in a transaction.
1364	Transaction []byte `protobuf:"bytes,5,opt,name=transaction,proto3,oneof"`
1365}
1366
1367type RunQueryRequest_NewTransaction struct {
1368	// Starts a new transaction and reads the documents.
1369	// Defaults to a read-only transaction.
1370	// The new transaction ID will be returned as the first response in the
1371	// stream.
1372	NewTransaction *TransactionOptions `protobuf:"bytes,6,opt,name=new_transaction,json=newTransaction,proto3,oneof"`
1373}
1374
1375type RunQueryRequest_ReadTime struct {
1376	// Reads documents as they were at the given time.
1377	// This may not be older than 270 seconds.
1378	ReadTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"`
1379}
1380
1381func (*RunQueryRequest_Transaction) isRunQueryRequest_ConsistencySelector() {}
1382
1383func (*RunQueryRequest_NewTransaction) isRunQueryRequest_ConsistencySelector() {}
1384
1385func (*RunQueryRequest_ReadTime) isRunQueryRequest_ConsistencySelector() {}
1386
1387// The response for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery].
1388type RunQueryResponse struct {
1389	state         protoimpl.MessageState
1390	sizeCache     protoimpl.SizeCache
1391	unknownFields protoimpl.UnknownFields
1392
1393	// The transaction that was started as part of this request.
1394	// Can only be set in the first response, and only if
1395	// [RunQueryRequest.new_transaction][google.firestore.v1.RunQueryRequest.new_transaction] was set in the request.
1396	// If set, no other fields will be set in this response.
1397	Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
1398	// A query result.
1399	// Not set when reporting partial progress.
1400	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
1401	// The time at which the document was read. This may be monotonically
1402	// increasing; in this case, the previous documents in the result stream are
1403	// guaranteed not to have changed between their `read_time` and this one.
1404	//
1405	// If the query returns no results, a response with `read_time` and no
1406	// `document` will be sent, and this represents the time at which the query
1407	// was run.
1408	ReadTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
1409	// The number of results that have been skipped due to an offset between
1410	// the last response and the current response.
1411	SkippedResults int32 `protobuf:"varint,4,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"`
1412}
1413
1414func (x *RunQueryResponse) Reset() {
1415	*x = RunQueryResponse{}
1416	if protoimpl.UnsafeEnabled {
1417		mi := &file_google_firestore_v1_firestore_proto_msgTypes[14]
1418		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1419		ms.StoreMessageInfo(mi)
1420	}
1421}
1422
1423func (x *RunQueryResponse) String() string {
1424	return protoimpl.X.MessageStringOf(x)
1425}
1426
1427func (*RunQueryResponse) ProtoMessage() {}
1428
1429func (x *RunQueryResponse) ProtoReflect() protoreflect.Message {
1430	mi := &file_google_firestore_v1_firestore_proto_msgTypes[14]
1431	if protoimpl.UnsafeEnabled && x != nil {
1432		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1433		if ms.LoadMessageInfo() == nil {
1434			ms.StoreMessageInfo(mi)
1435		}
1436		return ms
1437	}
1438	return mi.MessageOf(x)
1439}
1440
1441// Deprecated: Use RunQueryResponse.ProtoReflect.Descriptor instead.
1442func (*RunQueryResponse) Descriptor() ([]byte, []int) {
1443	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{14}
1444}
1445
1446func (x *RunQueryResponse) GetTransaction() []byte {
1447	if x != nil {
1448		return x.Transaction
1449	}
1450	return nil
1451}
1452
1453func (x *RunQueryResponse) GetDocument() *Document {
1454	if x != nil {
1455		return x.Document
1456	}
1457	return nil
1458}
1459
1460func (x *RunQueryResponse) GetReadTime() *timestamppb.Timestamp {
1461	if x != nil {
1462		return x.ReadTime
1463	}
1464	return nil
1465}
1466
1467func (x *RunQueryResponse) GetSkippedResults() int32 {
1468	if x != nil {
1469		return x.SkippedResults
1470	}
1471	return 0
1472}
1473
1474// The request for [Firestore.PartitionQuery][google.firestore.v1.Firestore.PartitionQuery].
1475type PartitionQueryRequest struct {
1476	state         protoimpl.MessageState
1477	sizeCache     protoimpl.SizeCache
1478	unknownFields protoimpl.UnknownFields
1479
1480	// Required. The parent resource name. In the format:
1481	// `projects/{project_id}/databases/{database_id}/documents`.
1482	// Document resource names are not supported; only database resource names
1483	// can be specified.
1484	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1485	// The query to partition.
1486	//
1487	// Types that are assignable to QueryType:
1488	//	*PartitionQueryRequest_StructuredQuery
1489	QueryType isPartitionQueryRequest_QueryType `protobuf_oneof:"query_type"`
1490	// The desired maximum number of partition points.
1491	// The partitions may be returned across multiple pages of results.
1492	// The number must be positive. The actual number of partitions
1493	// returned may be fewer.
1494	//
1495	// For example, this may be set to one fewer than the number of parallel
1496	// queries to be run, or in running a data pipeline job, one fewer than the
1497	// number of workers or compute instances available.
1498	PartitionCount int64 `protobuf:"varint,3,opt,name=partition_count,json=partitionCount,proto3" json:"partition_count,omitempty"`
1499	// The `next_page_token` value returned from a previous call to
1500	// PartitionQuery that may be used to get an additional set of results.
1501	// There are no ordering guarantees between sets of results. Thus, using
1502	// multiple sets of results will require merging the different result sets.
1503	//
1504	// For example, two subsequent calls using a page_token may return:
1505	//
1506	//  * cursor B, cursor M, cursor Q
1507	//  * cursor A, cursor U, cursor W
1508	//
1509	// To obtain a complete result set ordered with respect to the results of the
1510	// query supplied to PartitionQuery, the results sets should be merged:
1511	// cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W
1512	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1513	// The maximum number of partitions to return in this call, subject to
1514	// `partition_count`.
1515	//
1516	// For example, if `partition_count` = 10 and `page_size` = 8, the first call
1517	// to PartitionQuery will return up to 8 partitions and a `next_page_token`
1518	// if more results exist. A second call to PartitionQuery will return up to
1519	// 2 partitions, to complete the total of 10 specified in `partition_count`.
1520	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1521}
1522
1523func (x *PartitionQueryRequest) Reset() {
1524	*x = PartitionQueryRequest{}
1525	if protoimpl.UnsafeEnabled {
1526		mi := &file_google_firestore_v1_firestore_proto_msgTypes[15]
1527		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1528		ms.StoreMessageInfo(mi)
1529	}
1530}
1531
1532func (x *PartitionQueryRequest) String() string {
1533	return protoimpl.X.MessageStringOf(x)
1534}
1535
1536func (*PartitionQueryRequest) ProtoMessage() {}
1537
1538func (x *PartitionQueryRequest) ProtoReflect() protoreflect.Message {
1539	mi := &file_google_firestore_v1_firestore_proto_msgTypes[15]
1540	if protoimpl.UnsafeEnabled && x != nil {
1541		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1542		if ms.LoadMessageInfo() == nil {
1543			ms.StoreMessageInfo(mi)
1544		}
1545		return ms
1546	}
1547	return mi.MessageOf(x)
1548}
1549
1550// Deprecated: Use PartitionQueryRequest.ProtoReflect.Descriptor instead.
1551func (*PartitionQueryRequest) Descriptor() ([]byte, []int) {
1552	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{15}
1553}
1554
1555func (x *PartitionQueryRequest) GetParent() string {
1556	if x != nil {
1557		return x.Parent
1558	}
1559	return ""
1560}
1561
1562func (m *PartitionQueryRequest) GetQueryType() isPartitionQueryRequest_QueryType {
1563	if m != nil {
1564		return m.QueryType
1565	}
1566	return nil
1567}
1568
1569func (x *PartitionQueryRequest) GetStructuredQuery() *StructuredQuery {
1570	if x, ok := x.GetQueryType().(*PartitionQueryRequest_StructuredQuery); ok {
1571		return x.StructuredQuery
1572	}
1573	return nil
1574}
1575
1576func (x *PartitionQueryRequest) GetPartitionCount() int64 {
1577	if x != nil {
1578		return x.PartitionCount
1579	}
1580	return 0
1581}
1582
1583func (x *PartitionQueryRequest) GetPageToken() string {
1584	if x != nil {
1585		return x.PageToken
1586	}
1587	return ""
1588}
1589
1590func (x *PartitionQueryRequest) GetPageSize() int32 {
1591	if x != nil {
1592		return x.PageSize
1593	}
1594	return 0
1595}
1596
1597type isPartitionQueryRequest_QueryType interface {
1598	isPartitionQueryRequest_QueryType()
1599}
1600
1601type PartitionQueryRequest_StructuredQuery struct {
1602	// A structured query.
1603	// Query must specify collection with all descendants and be ordered by name
1604	// ascending. Other filters, order bys, limits, offsets, and start/end
1605	// cursors are not supported.
1606	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"`
1607}
1608
1609func (*PartitionQueryRequest_StructuredQuery) isPartitionQueryRequest_QueryType() {}
1610
1611// The response for [Firestore.PartitionQuery][google.firestore.v1.Firestore.PartitionQuery].
1612type PartitionQueryResponse struct {
1613	state         protoimpl.MessageState
1614	sizeCache     protoimpl.SizeCache
1615	unknownFields protoimpl.UnknownFields
1616
1617	// Partition results.
1618	// Each partition is a split point that can be used by RunQuery as a starting
1619	// or end point for the query results. The RunQuery requests must be made with
1620	// the same query supplied to this PartitionQuery request. The partition
1621	// cursors will be ordered according to same ordering as the results of the
1622	// query supplied to PartitionQuery.
1623	//
1624	// For example, if a PartitionQuery request returns partition cursors A and B,
1625	// running the following three queries will return the entire result set of
1626	// the original query:
1627	//
1628	//  * query, end_at A
1629	//  * query, start_at A, end_at B
1630	//  * query, start_at B
1631	//
1632	// An empty result may indicate that the query has too few results to be
1633	// partitioned.
1634	Partitions []*Cursor `protobuf:"bytes,1,rep,name=partitions,proto3" json:"partitions,omitempty"`
1635	// A page token that may be used to request an additional set of results, up
1636	// to the number specified by `partition_count` in the PartitionQuery request.
1637	// If blank, there are no more results.
1638	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1639}
1640
1641func (x *PartitionQueryResponse) Reset() {
1642	*x = PartitionQueryResponse{}
1643	if protoimpl.UnsafeEnabled {
1644		mi := &file_google_firestore_v1_firestore_proto_msgTypes[16]
1645		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1646		ms.StoreMessageInfo(mi)
1647	}
1648}
1649
1650func (x *PartitionQueryResponse) String() string {
1651	return protoimpl.X.MessageStringOf(x)
1652}
1653
1654func (*PartitionQueryResponse) ProtoMessage() {}
1655
1656func (x *PartitionQueryResponse) ProtoReflect() protoreflect.Message {
1657	mi := &file_google_firestore_v1_firestore_proto_msgTypes[16]
1658	if protoimpl.UnsafeEnabled && x != nil {
1659		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1660		if ms.LoadMessageInfo() == nil {
1661			ms.StoreMessageInfo(mi)
1662		}
1663		return ms
1664	}
1665	return mi.MessageOf(x)
1666}
1667
1668// Deprecated: Use PartitionQueryResponse.ProtoReflect.Descriptor instead.
1669func (*PartitionQueryResponse) Descriptor() ([]byte, []int) {
1670	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{16}
1671}
1672
1673func (x *PartitionQueryResponse) GetPartitions() []*Cursor {
1674	if x != nil {
1675		return x.Partitions
1676	}
1677	return nil
1678}
1679
1680func (x *PartitionQueryResponse) GetNextPageToken() string {
1681	if x != nil {
1682		return x.NextPageToken
1683	}
1684	return ""
1685}
1686
1687// The request for [Firestore.Write][google.firestore.v1.Firestore.Write].
1688//
1689// The first request creates a stream, or resumes an existing one from a token.
1690//
1691// When creating a new stream, the server replies with a response containing
1692// only an ID and a token, to use in the next request.
1693//
1694// When resuming a stream, the server first streams any responses later than the
1695// given token, then a response containing only an up-to-date token, to use in
1696// the next request.
1697type WriteRequest struct {
1698	state         protoimpl.MessageState
1699	sizeCache     protoimpl.SizeCache
1700	unknownFields protoimpl.UnknownFields
1701
1702	// Required. The database name. In the format:
1703	// `projects/{project_id}/databases/{database_id}`.
1704	// This is only required in the first message.
1705	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
1706	// The ID of the write stream to resume.
1707	// This may only be set in the first message. When left empty, a new write
1708	// stream will be created.
1709	StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
1710	// The writes to apply.
1711	//
1712	// Always executed atomically and in order.
1713	// This must be empty on the first request.
1714	// This may be empty on the last request.
1715	// This must not be empty on all other requests.
1716	Writes []*Write `protobuf:"bytes,3,rep,name=writes,proto3" json:"writes,omitempty"`
1717	// A stream token that was previously sent by the server.
1718	//
1719	// The client should set this field to the token from the most recent
1720	// [WriteResponse][google.firestore.v1.WriteResponse] it has received. This acknowledges that the client has
1721	// received responses up to this token. After sending this token, earlier
1722	// tokens may not be used anymore.
1723	//
1724	// The server may close the stream if there are too many unacknowledged
1725	// responses.
1726	//
1727	// Leave this field unset when creating a new stream. To resume a stream at
1728	// a specific point, set this field and the `stream_id` field.
1729	//
1730	// Leave this field unset when creating a new stream.
1731	StreamToken []byte `protobuf:"bytes,4,opt,name=stream_token,json=streamToken,proto3" json:"stream_token,omitempty"`
1732	// Labels associated with this write request.
1733	Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
1734}
1735
1736func (x *WriteRequest) Reset() {
1737	*x = WriteRequest{}
1738	if protoimpl.UnsafeEnabled {
1739		mi := &file_google_firestore_v1_firestore_proto_msgTypes[17]
1740		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1741		ms.StoreMessageInfo(mi)
1742	}
1743}
1744
1745func (x *WriteRequest) String() string {
1746	return protoimpl.X.MessageStringOf(x)
1747}
1748
1749func (*WriteRequest) ProtoMessage() {}
1750
1751func (x *WriteRequest) ProtoReflect() protoreflect.Message {
1752	mi := &file_google_firestore_v1_firestore_proto_msgTypes[17]
1753	if protoimpl.UnsafeEnabled && x != nil {
1754		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1755		if ms.LoadMessageInfo() == nil {
1756			ms.StoreMessageInfo(mi)
1757		}
1758		return ms
1759	}
1760	return mi.MessageOf(x)
1761}
1762
1763// Deprecated: Use WriteRequest.ProtoReflect.Descriptor instead.
1764func (*WriteRequest) Descriptor() ([]byte, []int) {
1765	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{17}
1766}
1767
1768func (x *WriteRequest) GetDatabase() string {
1769	if x != nil {
1770		return x.Database
1771	}
1772	return ""
1773}
1774
1775func (x *WriteRequest) GetStreamId() string {
1776	if x != nil {
1777		return x.StreamId
1778	}
1779	return ""
1780}
1781
1782func (x *WriteRequest) GetWrites() []*Write {
1783	if x != nil {
1784		return x.Writes
1785	}
1786	return nil
1787}
1788
1789func (x *WriteRequest) GetStreamToken() []byte {
1790	if x != nil {
1791		return x.StreamToken
1792	}
1793	return nil
1794}
1795
1796func (x *WriteRequest) GetLabels() map[string]string {
1797	if x != nil {
1798		return x.Labels
1799	}
1800	return nil
1801}
1802
1803// The response for [Firestore.Write][google.firestore.v1.Firestore.Write].
1804type WriteResponse struct {
1805	state         protoimpl.MessageState
1806	sizeCache     protoimpl.SizeCache
1807	unknownFields protoimpl.UnknownFields
1808
1809	// The ID of the stream.
1810	// Only set on the first message, when a new stream was created.
1811	StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
1812	// A token that represents the position of this response in the stream.
1813	// This can be used by a client to resume the stream at this point.
1814	//
1815	// This field is always set.
1816	StreamToken []byte `protobuf:"bytes,2,opt,name=stream_token,json=streamToken,proto3" json:"stream_token,omitempty"`
1817	// The result of applying the writes.
1818	//
1819	// This i-th write result corresponds to the i-th write in the
1820	// request.
1821	WriteResults []*WriteResult `protobuf:"bytes,3,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"`
1822	// The time at which the commit occurred. Any read with an equal or greater
1823	// `read_time` is guaranteed to see the effects of the write.
1824	CommitTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"`
1825}
1826
1827func (x *WriteResponse) Reset() {
1828	*x = WriteResponse{}
1829	if protoimpl.UnsafeEnabled {
1830		mi := &file_google_firestore_v1_firestore_proto_msgTypes[18]
1831		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1832		ms.StoreMessageInfo(mi)
1833	}
1834}
1835
1836func (x *WriteResponse) String() string {
1837	return protoimpl.X.MessageStringOf(x)
1838}
1839
1840func (*WriteResponse) ProtoMessage() {}
1841
1842func (x *WriteResponse) ProtoReflect() protoreflect.Message {
1843	mi := &file_google_firestore_v1_firestore_proto_msgTypes[18]
1844	if protoimpl.UnsafeEnabled && x != nil {
1845		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1846		if ms.LoadMessageInfo() == nil {
1847			ms.StoreMessageInfo(mi)
1848		}
1849		return ms
1850	}
1851	return mi.MessageOf(x)
1852}
1853
1854// Deprecated: Use WriteResponse.ProtoReflect.Descriptor instead.
1855func (*WriteResponse) Descriptor() ([]byte, []int) {
1856	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{18}
1857}
1858
1859func (x *WriteResponse) GetStreamId() string {
1860	if x != nil {
1861		return x.StreamId
1862	}
1863	return ""
1864}
1865
1866func (x *WriteResponse) GetStreamToken() []byte {
1867	if x != nil {
1868		return x.StreamToken
1869	}
1870	return nil
1871}
1872
1873func (x *WriteResponse) GetWriteResults() []*WriteResult {
1874	if x != nil {
1875		return x.WriteResults
1876	}
1877	return nil
1878}
1879
1880func (x *WriteResponse) GetCommitTime() *timestamppb.Timestamp {
1881	if x != nil {
1882		return x.CommitTime
1883	}
1884	return nil
1885}
1886
1887// A request for [Firestore.Listen][google.firestore.v1.Firestore.Listen]
1888type ListenRequest struct {
1889	state         protoimpl.MessageState
1890	sizeCache     protoimpl.SizeCache
1891	unknownFields protoimpl.UnknownFields
1892
1893	// Required. The database name. In the format:
1894	// `projects/{project_id}/databases/{database_id}`.
1895	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
1896	// The supported target changes.
1897	//
1898	// Types that are assignable to TargetChange:
1899	//	*ListenRequest_AddTarget
1900	//	*ListenRequest_RemoveTarget
1901	TargetChange isListenRequest_TargetChange `protobuf_oneof:"target_change"`
1902	// Labels associated with this target change.
1903	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
1904}
1905
1906func (x *ListenRequest) Reset() {
1907	*x = ListenRequest{}
1908	if protoimpl.UnsafeEnabled {
1909		mi := &file_google_firestore_v1_firestore_proto_msgTypes[19]
1910		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1911		ms.StoreMessageInfo(mi)
1912	}
1913}
1914
1915func (x *ListenRequest) String() string {
1916	return protoimpl.X.MessageStringOf(x)
1917}
1918
1919func (*ListenRequest) ProtoMessage() {}
1920
1921func (x *ListenRequest) ProtoReflect() protoreflect.Message {
1922	mi := &file_google_firestore_v1_firestore_proto_msgTypes[19]
1923	if protoimpl.UnsafeEnabled && x != nil {
1924		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1925		if ms.LoadMessageInfo() == nil {
1926			ms.StoreMessageInfo(mi)
1927		}
1928		return ms
1929	}
1930	return mi.MessageOf(x)
1931}
1932
1933// Deprecated: Use ListenRequest.ProtoReflect.Descriptor instead.
1934func (*ListenRequest) Descriptor() ([]byte, []int) {
1935	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{19}
1936}
1937
1938func (x *ListenRequest) GetDatabase() string {
1939	if x != nil {
1940		return x.Database
1941	}
1942	return ""
1943}
1944
1945func (m *ListenRequest) GetTargetChange() isListenRequest_TargetChange {
1946	if m != nil {
1947		return m.TargetChange
1948	}
1949	return nil
1950}
1951
1952func (x *ListenRequest) GetAddTarget() *Target {
1953	if x, ok := x.GetTargetChange().(*ListenRequest_AddTarget); ok {
1954		return x.AddTarget
1955	}
1956	return nil
1957}
1958
1959func (x *ListenRequest) GetRemoveTarget() int32 {
1960	if x, ok := x.GetTargetChange().(*ListenRequest_RemoveTarget); ok {
1961		return x.RemoveTarget
1962	}
1963	return 0
1964}
1965
1966func (x *ListenRequest) GetLabels() map[string]string {
1967	if x != nil {
1968		return x.Labels
1969	}
1970	return nil
1971}
1972
1973type isListenRequest_TargetChange interface {
1974	isListenRequest_TargetChange()
1975}
1976
1977type ListenRequest_AddTarget struct {
1978	// A target to add to this stream.
1979	AddTarget *Target `protobuf:"bytes,2,opt,name=add_target,json=addTarget,proto3,oneof"`
1980}
1981
1982type ListenRequest_RemoveTarget struct {
1983	// The ID of a target to remove from this stream.
1984	RemoveTarget int32 `protobuf:"varint,3,opt,name=remove_target,json=removeTarget,proto3,oneof"`
1985}
1986
1987func (*ListenRequest_AddTarget) isListenRequest_TargetChange() {}
1988
1989func (*ListenRequest_RemoveTarget) isListenRequest_TargetChange() {}
1990
1991// The response for [Firestore.Listen][google.firestore.v1.Firestore.Listen].
1992type ListenResponse struct {
1993	state         protoimpl.MessageState
1994	sizeCache     protoimpl.SizeCache
1995	unknownFields protoimpl.UnknownFields
1996
1997	// The supported responses.
1998	//
1999	// Types that are assignable to ResponseType:
2000	//	*ListenResponse_TargetChange
2001	//	*ListenResponse_DocumentChange
2002	//	*ListenResponse_DocumentDelete
2003	//	*ListenResponse_DocumentRemove
2004	//	*ListenResponse_Filter
2005	ResponseType isListenResponse_ResponseType `protobuf_oneof:"response_type"`
2006}
2007
2008func (x *ListenResponse) Reset() {
2009	*x = ListenResponse{}
2010	if protoimpl.UnsafeEnabled {
2011		mi := &file_google_firestore_v1_firestore_proto_msgTypes[20]
2012		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2013		ms.StoreMessageInfo(mi)
2014	}
2015}
2016
2017func (x *ListenResponse) String() string {
2018	return protoimpl.X.MessageStringOf(x)
2019}
2020
2021func (*ListenResponse) ProtoMessage() {}
2022
2023func (x *ListenResponse) ProtoReflect() protoreflect.Message {
2024	mi := &file_google_firestore_v1_firestore_proto_msgTypes[20]
2025	if protoimpl.UnsafeEnabled && x != nil {
2026		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2027		if ms.LoadMessageInfo() == nil {
2028			ms.StoreMessageInfo(mi)
2029		}
2030		return ms
2031	}
2032	return mi.MessageOf(x)
2033}
2034
2035// Deprecated: Use ListenResponse.ProtoReflect.Descriptor instead.
2036func (*ListenResponse) Descriptor() ([]byte, []int) {
2037	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{20}
2038}
2039
2040func (m *ListenResponse) GetResponseType() isListenResponse_ResponseType {
2041	if m != nil {
2042		return m.ResponseType
2043	}
2044	return nil
2045}
2046
2047func (x *ListenResponse) GetTargetChange() *TargetChange {
2048	if x, ok := x.GetResponseType().(*ListenResponse_TargetChange); ok {
2049		return x.TargetChange
2050	}
2051	return nil
2052}
2053
2054func (x *ListenResponse) GetDocumentChange() *DocumentChange {
2055	if x, ok := x.GetResponseType().(*ListenResponse_DocumentChange); ok {
2056		return x.DocumentChange
2057	}
2058	return nil
2059}
2060
2061func (x *ListenResponse) GetDocumentDelete() *DocumentDelete {
2062	if x, ok := x.GetResponseType().(*ListenResponse_DocumentDelete); ok {
2063		return x.DocumentDelete
2064	}
2065	return nil
2066}
2067
2068func (x *ListenResponse) GetDocumentRemove() *DocumentRemove {
2069	if x, ok := x.GetResponseType().(*ListenResponse_DocumentRemove); ok {
2070		return x.DocumentRemove
2071	}
2072	return nil
2073}
2074
2075func (x *ListenResponse) GetFilter() *ExistenceFilter {
2076	if x, ok := x.GetResponseType().(*ListenResponse_Filter); ok {
2077		return x.Filter
2078	}
2079	return nil
2080}
2081
2082type isListenResponse_ResponseType interface {
2083	isListenResponse_ResponseType()
2084}
2085
2086type ListenResponse_TargetChange struct {
2087	// Targets have changed.
2088	TargetChange *TargetChange `protobuf:"bytes,2,opt,name=target_change,json=targetChange,proto3,oneof"`
2089}
2090
2091type ListenResponse_DocumentChange struct {
2092	// A [Document][google.firestore.v1.Document] has changed.
2093	DocumentChange *DocumentChange `protobuf:"bytes,3,opt,name=document_change,json=documentChange,proto3,oneof"`
2094}
2095
2096type ListenResponse_DocumentDelete struct {
2097	// A [Document][google.firestore.v1.Document] has been deleted.
2098	DocumentDelete *DocumentDelete `protobuf:"bytes,4,opt,name=document_delete,json=documentDelete,proto3,oneof"`
2099}
2100
2101type ListenResponse_DocumentRemove struct {
2102	// A [Document][google.firestore.v1.Document] has been removed from a target (because it is no longer
2103	// relevant to that target).
2104	DocumentRemove *DocumentRemove `protobuf:"bytes,6,opt,name=document_remove,json=documentRemove,proto3,oneof"`
2105}
2106
2107type ListenResponse_Filter struct {
2108	// A filter to apply to the set of documents previously returned for the
2109	// given target.
2110	//
2111	// Returned when documents may have been removed from the given target, but
2112	// the exact documents are unknown.
2113	Filter *ExistenceFilter `protobuf:"bytes,5,opt,name=filter,proto3,oneof"`
2114}
2115
2116func (*ListenResponse_TargetChange) isListenResponse_ResponseType() {}
2117
2118func (*ListenResponse_DocumentChange) isListenResponse_ResponseType() {}
2119
2120func (*ListenResponse_DocumentDelete) isListenResponse_ResponseType() {}
2121
2122func (*ListenResponse_DocumentRemove) isListenResponse_ResponseType() {}
2123
2124func (*ListenResponse_Filter) isListenResponse_ResponseType() {}
2125
2126// A specification of a set of documents to listen to.
2127type Target struct {
2128	state         protoimpl.MessageState
2129	sizeCache     protoimpl.SizeCache
2130	unknownFields protoimpl.UnknownFields
2131
2132	// The type of target to listen to.
2133	//
2134	// Types that are assignable to TargetType:
2135	//	*Target_Query
2136	//	*Target_Documents
2137	TargetType isTarget_TargetType `protobuf_oneof:"target_type"`
2138	// When to start listening.
2139	//
2140	// If not specified, all matching Documents are returned before any
2141	// subsequent changes.
2142	//
2143	// Types that are assignable to ResumeType:
2144	//	*Target_ResumeToken
2145	//	*Target_ReadTime
2146	ResumeType isTarget_ResumeType `protobuf_oneof:"resume_type"`
2147	// The target ID that identifies the target on the stream. Must be a positive
2148	// number and non-zero.
2149	TargetId int32 `protobuf:"varint,5,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
2150	// If the target should be removed once it is current and consistent.
2151	Once bool `protobuf:"varint,6,opt,name=once,proto3" json:"once,omitempty"`
2152}
2153
2154func (x *Target) Reset() {
2155	*x = Target{}
2156	if protoimpl.UnsafeEnabled {
2157		mi := &file_google_firestore_v1_firestore_proto_msgTypes[21]
2158		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2159		ms.StoreMessageInfo(mi)
2160	}
2161}
2162
2163func (x *Target) String() string {
2164	return protoimpl.X.MessageStringOf(x)
2165}
2166
2167func (*Target) ProtoMessage() {}
2168
2169func (x *Target) ProtoReflect() protoreflect.Message {
2170	mi := &file_google_firestore_v1_firestore_proto_msgTypes[21]
2171	if protoimpl.UnsafeEnabled && x != nil {
2172		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2173		if ms.LoadMessageInfo() == nil {
2174			ms.StoreMessageInfo(mi)
2175		}
2176		return ms
2177	}
2178	return mi.MessageOf(x)
2179}
2180
2181// Deprecated: Use Target.ProtoReflect.Descriptor instead.
2182func (*Target) Descriptor() ([]byte, []int) {
2183	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{21}
2184}
2185
2186func (m *Target) GetTargetType() isTarget_TargetType {
2187	if m != nil {
2188		return m.TargetType
2189	}
2190	return nil
2191}
2192
2193func (x *Target) GetQuery() *Target_QueryTarget {
2194	if x, ok := x.GetTargetType().(*Target_Query); ok {
2195		return x.Query
2196	}
2197	return nil
2198}
2199
2200func (x *Target) GetDocuments() *Target_DocumentsTarget {
2201	if x, ok := x.GetTargetType().(*Target_Documents); ok {
2202		return x.Documents
2203	}
2204	return nil
2205}
2206
2207func (m *Target) GetResumeType() isTarget_ResumeType {
2208	if m != nil {
2209		return m.ResumeType
2210	}
2211	return nil
2212}
2213
2214func (x *Target) GetResumeToken() []byte {
2215	if x, ok := x.GetResumeType().(*Target_ResumeToken); ok {
2216		return x.ResumeToken
2217	}
2218	return nil
2219}
2220
2221func (x *Target) GetReadTime() *timestamppb.Timestamp {
2222	if x, ok := x.GetResumeType().(*Target_ReadTime); ok {
2223		return x.ReadTime
2224	}
2225	return nil
2226}
2227
2228func (x *Target) GetTargetId() int32 {
2229	if x != nil {
2230		return x.TargetId
2231	}
2232	return 0
2233}
2234
2235func (x *Target) GetOnce() bool {
2236	if x != nil {
2237		return x.Once
2238	}
2239	return false
2240}
2241
2242type isTarget_TargetType interface {
2243	isTarget_TargetType()
2244}
2245
2246type Target_Query struct {
2247	// A target specified by a query.
2248	Query *Target_QueryTarget `protobuf:"bytes,2,opt,name=query,proto3,oneof"`
2249}
2250
2251type Target_Documents struct {
2252	// A target specified by a set of document names.
2253	Documents *Target_DocumentsTarget `protobuf:"bytes,3,opt,name=documents,proto3,oneof"`
2254}
2255
2256func (*Target_Query) isTarget_TargetType() {}
2257
2258func (*Target_Documents) isTarget_TargetType() {}
2259
2260type isTarget_ResumeType interface {
2261	isTarget_ResumeType()
2262}
2263
2264type Target_ResumeToken struct {
2265	// A resume token from a prior [TargetChange][google.firestore.v1.TargetChange] for an identical target.
2266	//
2267	// Using a resume token with a different target is unsupported and may fail.
2268	ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3,oneof"`
2269}
2270
2271type Target_ReadTime struct {
2272	// Start listening after a specific `read_time`.
2273	//
2274	// The client must know the state of matching documents at this time.
2275	ReadTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=read_time,json=readTime,proto3,oneof"`
2276}
2277
2278func (*Target_ResumeToken) isTarget_ResumeType() {}
2279
2280func (*Target_ReadTime) isTarget_ResumeType() {}
2281
2282// Targets being watched have changed.
2283type TargetChange struct {
2284	state         protoimpl.MessageState
2285	sizeCache     protoimpl.SizeCache
2286	unknownFields protoimpl.UnknownFields
2287
2288	// The type of change that occurred.
2289	TargetChangeType TargetChange_TargetChangeType `protobuf:"varint,1,opt,name=target_change_type,json=targetChangeType,proto3,enum=google.firestore.v1.TargetChange_TargetChangeType" json:"target_change_type,omitempty"`
2290	// The target IDs of targets that have changed.
2291	//
2292	// If empty, the change applies to all targets.
2293	//
2294	// The order of the target IDs is not defined.
2295	TargetIds []int32 `protobuf:"varint,2,rep,packed,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"`
2296	// The error that resulted in this change, if applicable.
2297	Cause *status.Status `protobuf:"bytes,3,opt,name=cause,proto3" json:"cause,omitempty"`
2298	// A token that can be used to resume the stream for the given `target_ids`,
2299	// or all targets if `target_ids` is empty.
2300	//
2301	// Not set on every target change.
2302	ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"`
2303	// The consistent `read_time` for the given `target_ids` (omitted when the
2304	// target_ids are not at a consistent snapshot).
2305	//
2306	// The stream is guaranteed to send a `read_time` with `target_ids` empty
2307	// whenever the entire stream reaches a new consistent snapshot. ADD,
2308	// CURRENT, and RESET messages are guaranteed to (eventually) result in a
2309	// new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
2310	//
2311	// For a given stream, `read_time` is guaranteed to be monotonically
2312	// increasing.
2313	ReadTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
2314}
2315
2316func (x *TargetChange) Reset() {
2317	*x = TargetChange{}
2318	if protoimpl.UnsafeEnabled {
2319		mi := &file_google_firestore_v1_firestore_proto_msgTypes[22]
2320		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2321		ms.StoreMessageInfo(mi)
2322	}
2323}
2324
2325func (x *TargetChange) String() string {
2326	return protoimpl.X.MessageStringOf(x)
2327}
2328
2329func (*TargetChange) ProtoMessage() {}
2330
2331func (x *TargetChange) ProtoReflect() protoreflect.Message {
2332	mi := &file_google_firestore_v1_firestore_proto_msgTypes[22]
2333	if protoimpl.UnsafeEnabled && x != nil {
2334		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2335		if ms.LoadMessageInfo() == nil {
2336			ms.StoreMessageInfo(mi)
2337		}
2338		return ms
2339	}
2340	return mi.MessageOf(x)
2341}
2342
2343// Deprecated: Use TargetChange.ProtoReflect.Descriptor instead.
2344func (*TargetChange) Descriptor() ([]byte, []int) {
2345	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{22}
2346}
2347
2348func (x *TargetChange) GetTargetChangeType() TargetChange_TargetChangeType {
2349	if x != nil {
2350		return x.TargetChangeType
2351	}
2352	return TargetChange_NO_CHANGE
2353}
2354
2355func (x *TargetChange) GetTargetIds() []int32 {
2356	if x != nil {
2357		return x.TargetIds
2358	}
2359	return nil
2360}
2361
2362func (x *TargetChange) GetCause() *status.Status {
2363	if x != nil {
2364		return x.Cause
2365	}
2366	return nil
2367}
2368
2369func (x *TargetChange) GetResumeToken() []byte {
2370	if x != nil {
2371		return x.ResumeToken
2372	}
2373	return nil
2374}
2375
2376func (x *TargetChange) GetReadTime() *timestamppb.Timestamp {
2377	if x != nil {
2378		return x.ReadTime
2379	}
2380	return nil
2381}
2382
2383// The request for [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds].
2384type ListCollectionIdsRequest struct {
2385	state         protoimpl.MessageState
2386	sizeCache     protoimpl.SizeCache
2387	unknownFields protoimpl.UnknownFields
2388
2389	// Required. The parent document. In the format:
2390	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
2391	// For example:
2392	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
2393	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
2394	// The maximum number of results to return.
2395	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
2396	// A page token. Must be a value from
2397	// [ListCollectionIdsResponse][google.firestore.v1.ListCollectionIdsResponse].
2398	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
2399}
2400
2401func (x *ListCollectionIdsRequest) Reset() {
2402	*x = ListCollectionIdsRequest{}
2403	if protoimpl.UnsafeEnabled {
2404		mi := &file_google_firestore_v1_firestore_proto_msgTypes[23]
2405		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2406		ms.StoreMessageInfo(mi)
2407	}
2408}
2409
2410func (x *ListCollectionIdsRequest) String() string {
2411	return protoimpl.X.MessageStringOf(x)
2412}
2413
2414func (*ListCollectionIdsRequest) ProtoMessage() {}
2415
2416func (x *ListCollectionIdsRequest) ProtoReflect() protoreflect.Message {
2417	mi := &file_google_firestore_v1_firestore_proto_msgTypes[23]
2418	if protoimpl.UnsafeEnabled && x != nil {
2419		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2420		if ms.LoadMessageInfo() == nil {
2421			ms.StoreMessageInfo(mi)
2422		}
2423		return ms
2424	}
2425	return mi.MessageOf(x)
2426}
2427
2428// Deprecated: Use ListCollectionIdsRequest.ProtoReflect.Descriptor instead.
2429func (*ListCollectionIdsRequest) Descriptor() ([]byte, []int) {
2430	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{23}
2431}
2432
2433func (x *ListCollectionIdsRequest) GetParent() string {
2434	if x != nil {
2435		return x.Parent
2436	}
2437	return ""
2438}
2439
2440func (x *ListCollectionIdsRequest) GetPageSize() int32 {
2441	if x != nil {
2442		return x.PageSize
2443	}
2444	return 0
2445}
2446
2447func (x *ListCollectionIdsRequest) GetPageToken() string {
2448	if x != nil {
2449		return x.PageToken
2450	}
2451	return ""
2452}
2453
2454// The response from [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds].
2455type ListCollectionIdsResponse struct {
2456	state         protoimpl.MessageState
2457	sizeCache     protoimpl.SizeCache
2458	unknownFields protoimpl.UnknownFields
2459
2460	// The collection ids.
2461	CollectionIds []string `protobuf:"bytes,1,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"`
2462	// A page token that may be used to continue the list.
2463	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
2464}
2465
2466func (x *ListCollectionIdsResponse) Reset() {
2467	*x = ListCollectionIdsResponse{}
2468	if protoimpl.UnsafeEnabled {
2469		mi := &file_google_firestore_v1_firestore_proto_msgTypes[24]
2470		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2471		ms.StoreMessageInfo(mi)
2472	}
2473}
2474
2475func (x *ListCollectionIdsResponse) String() string {
2476	return protoimpl.X.MessageStringOf(x)
2477}
2478
2479func (*ListCollectionIdsResponse) ProtoMessage() {}
2480
2481func (x *ListCollectionIdsResponse) ProtoReflect() protoreflect.Message {
2482	mi := &file_google_firestore_v1_firestore_proto_msgTypes[24]
2483	if protoimpl.UnsafeEnabled && x != nil {
2484		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2485		if ms.LoadMessageInfo() == nil {
2486			ms.StoreMessageInfo(mi)
2487		}
2488		return ms
2489	}
2490	return mi.MessageOf(x)
2491}
2492
2493// Deprecated: Use ListCollectionIdsResponse.ProtoReflect.Descriptor instead.
2494func (*ListCollectionIdsResponse) Descriptor() ([]byte, []int) {
2495	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{24}
2496}
2497
2498func (x *ListCollectionIdsResponse) GetCollectionIds() []string {
2499	if x != nil {
2500		return x.CollectionIds
2501	}
2502	return nil
2503}
2504
2505func (x *ListCollectionIdsResponse) GetNextPageToken() string {
2506	if x != nil {
2507		return x.NextPageToken
2508	}
2509	return ""
2510}
2511
2512// The request for [Firestore.BatchWrite][google.firestore.v1.Firestore.BatchWrite].
2513type BatchWriteRequest struct {
2514	state         protoimpl.MessageState
2515	sizeCache     protoimpl.SizeCache
2516	unknownFields protoimpl.UnknownFields
2517
2518	// Required. The database name. In the format:
2519	// `projects/{project_id}/databases/{database_id}`.
2520	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
2521	// The writes to apply.
2522	//
2523	// Method does not apply writes atomically and does not guarantee ordering.
2524	// Each write succeeds or fails independently. You cannot write to the same
2525	// document more than once per request.
2526	Writes []*Write `protobuf:"bytes,2,rep,name=writes,proto3" json:"writes,omitempty"`
2527	// Labels associated with this batch write.
2528	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
2529}
2530
2531func (x *BatchWriteRequest) Reset() {
2532	*x = BatchWriteRequest{}
2533	if protoimpl.UnsafeEnabled {
2534		mi := &file_google_firestore_v1_firestore_proto_msgTypes[25]
2535		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2536		ms.StoreMessageInfo(mi)
2537	}
2538}
2539
2540func (x *BatchWriteRequest) String() string {
2541	return protoimpl.X.MessageStringOf(x)
2542}
2543
2544func (*BatchWriteRequest) ProtoMessage() {}
2545
2546func (x *BatchWriteRequest) ProtoReflect() protoreflect.Message {
2547	mi := &file_google_firestore_v1_firestore_proto_msgTypes[25]
2548	if protoimpl.UnsafeEnabled && x != nil {
2549		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2550		if ms.LoadMessageInfo() == nil {
2551			ms.StoreMessageInfo(mi)
2552		}
2553		return ms
2554	}
2555	return mi.MessageOf(x)
2556}
2557
2558// Deprecated: Use BatchWriteRequest.ProtoReflect.Descriptor instead.
2559func (*BatchWriteRequest) Descriptor() ([]byte, []int) {
2560	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{25}
2561}
2562
2563func (x *BatchWriteRequest) GetDatabase() string {
2564	if x != nil {
2565		return x.Database
2566	}
2567	return ""
2568}
2569
2570func (x *BatchWriteRequest) GetWrites() []*Write {
2571	if x != nil {
2572		return x.Writes
2573	}
2574	return nil
2575}
2576
2577func (x *BatchWriteRequest) GetLabels() map[string]string {
2578	if x != nil {
2579		return x.Labels
2580	}
2581	return nil
2582}
2583
2584// The response from [Firestore.BatchWrite][google.firestore.v1.Firestore.BatchWrite].
2585type BatchWriteResponse struct {
2586	state         protoimpl.MessageState
2587	sizeCache     protoimpl.SizeCache
2588	unknownFields protoimpl.UnknownFields
2589
2590	// The result of applying the writes.
2591	//
2592	// This i-th write result corresponds to the i-th write in the
2593	// request.
2594	WriteResults []*WriteResult `protobuf:"bytes,1,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"`
2595	// The status of applying the writes.
2596	//
2597	// This i-th write status corresponds to the i-th write in the
2598	// request.
2599	Status []*status.Status `protobuf:"bytes,2,rep,name=status,proto3" json:"status,omitempty"`
2600}
2601
2602func (x *BatchWriteResponse) Reset() {
2603	*x = BatchWriteResponse{}
2604	if protoimpl.UnsafeEnabled {
2605		mi := &file_google_firestore_v1_firestore_proto_msgTypes[26]
2606		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2607		ms.StoreMessageInfo(mi)
2608	}
2609}
2610
2611func (x *BatchWriteResponse) String() string {
2612	return protoimpl.X.MessageStringOf(x)
2613}
2614
2615func (*BatchWriteResponse) ProtoMessage() {}
2616
2617func (x *BatchWriteResponse) ProtoReflect() protoreflect.Message {
2618	mi := &file_google_firestore_v1_firestore_proto_msgTypes[26]
2619	if protoimpl.UnsafeEnabled && x != nil {
2620		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2621		if ms.LoadMessageInfo() == nil {
2622			ms.StoreMessageInfo(mi)
2623		}
2624		return ms
2625	}
2626	return mi.MessageOf(x)
2627}
2628
2629// Deprecated: Use BatchWriteResponse.ProtoReflect.Descriptor instead.
2630func (*BatchWriteResponse) Descriptor() ([]byte, []int) {
2631	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{26}
2632}
2633
2634func (x *BatchWriteResponse) GetWriteResults() []*WriteResult {
2635	if x != nil {
2636		return x.WriteResults
2637	}
2638	return nil
2639}
2640
2641func (x *BatchWriteResponse) GetStatus() []*status.Status {
2642	if x != nil {
2643		return x.Status
2644	}
2645	return nil
2646}
2647
2648// A target specified by a set of documents names.
2649type Target_DocumentsTarget struct {
2650	state         protoimpl.MessageState
2651	sizeCache     protoimpl.SizeCache
2652	unknownFields protoimpl.UnknownFields
2653
2654	// The names of the documents to retrieve. In the format:
2655	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
2656	// The request will fail if any of the document is not a child resource of
2657	// the given `database`. Duplicate names will be elided.
2658	Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"`
2659}
2660
2661func (x *Target_DocumentsTarget) Reset() {
2662	*x = Target_DocumentsTarget{}
2663	if protoimpl.UnsafeEnabled {
2664		mi := &file_google_firestore_v1_firestore_proto_msgTypes[29]
2665		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2666		ms.StoreMessageInfo(mi)
2667	}
2668}
2669
2670func (x *Target_DocumentsTarget) String() string {
2671	return protoimpl.X.MessageStringOf(x)
2672}
2673
2674func (*Target_DocumentsTarget) ProtoMessage() {}
2675
2676func (x *Target_DocumentsTarget) ProtoReflect() protoreflect.Message {
2677	mi := &file_google_firestore_v1_firestore_proto_msgTypes[29]
2678	if protoimpl.UnsafeEnabled && x != nil {
2679		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2680		if ms.LoadMessageInfo() == nil {
2681			ms.StoreMessageInfo(mi)
2682		}
2683		return ms
2684	}
2685	return mi.MessageOf(x)
2686}
2687
2688// Deprecated: Use Target_DocumentsTarget.ProtoReflect.Descriptor instead.
2689func (*Target_DocumentsTarget) Descriptor() ([]byte, []int) {
2690	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{21, 0}
2691}
2692
2693func (x *Target_DocumentsTarget) GetDocuments() []string {
2694	if x != nil {
2695		return x.Documents
2696	}
2697	return nil
2698}
2699
2700// A target specified by a query.
2701type Target_QueryTarget struct {
2702	state         protoimpl.MessageState
2703	sizeCache     protoimpl.SizeCache
2704	unknownFields protoimpl.UnknownFields
2705
2706	// The parent resource name. In the format:
2707	// `projects/{project_id}/databases/{database_id}/documents` or
2708	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
2709	// For example:
2710	// `projects/my-project/databases/my-database/documents` or
2711	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
2712	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
2713	// The query to run.
2714	//
2715	// Types that are assignable to QueryType:
2716	//	*Target_QueryTarget_StructuredQuery
2717	QueryType isTarget_QueryTarget_QueryType `protobuf_oneof:"query_type"`
2718}
2719
2720func (x *Target_QueryTarget) Reset() {
2721	*x = Target_QueryTarget{}
2722	if protoimpl.UnsafeEnabled {
2723		mi := &file_google_firestore_v1_firestore_proto_msgTypes[30]
2724		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2725		ms.StoreMessageInfo(mi)
2726	}
2727}
2728
2729func (x *Target_QueryTarget) String() string {
2730	return protoimpl.X.MessageStringOf(x)
2731}
2732
2733func (*Target_QueryTarget) ProtoMessage() {}
2734
2735func (x *Target_QueryTarget) ProtoReflect() protoreflect.Message {
2736	mi := &file_google_firestore_v1_firestore_proto_msgTypes[30]
2737	if protoimpl.UnsafeEnabled && x != nil {
2738		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2739		if ms.LoadMessageInfo() == nil {
2740			ms.StoreMessageInfo(mi)
2741		}
2742		return ms
2743	}
2744	return mi.MessageOf(x)
2745}
2746
2747// Deprecated: Use Target_QueryTarget.ProtoReflect.Descriptor instead.
2748func (*Target_QueryTarget) Descriptor() ([]byte, []int) {
2749	return file_google_firestore_v1_firestore_proto_rawDescGZIP(), []int{21, 1}
2750}
2751
2752func (x *Target_QueryTarget) GetParent() string {
2753	if x != nil {
2754		return x.Parent
2755	}
2756	return ""
2757}
2758
2759func (m *Target_QueryTarget) GetQueryType() isTarget_QueryTarget_QueryType {
2760	if m != nil {
2761		return m.QueryType
2762	}
2763	return nil
2764}
2765
2766func (x *Target_QueryTarget) GetStructuredQuery() *StructuredQuery {
2767	if x, ok := x.GetQueryType().(*Target_QueryTarget_StructuredQuery); ok {
2768		return x.StructuredQuery
2769	}
2770	return nil
2771}
2772
2773type isTarget_QueryTarget_QueryType interface {
2774	isTarget_QueryTarget_QueryType()
2775}
2776
2777type Target_QueryTarget_StructuredQuery struct {
2778	// A structured query.
2779	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"`
2780}
2781
2782func (*Target_QueryTarget_StructuredQuery) isTarget_QueryTarget_QueryType() {}
2783
2784var File_google_firestore_v1_firestore_proto protoreflect.FileDescriptor
2785
2786var file_google_firestore_v1_firestore_proto_rawDesc = []byte{
2787	0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
2788	0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
2789	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69,
2790	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
2791	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
2792	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2793	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
2794	0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69,
2795	0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
2796	0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73,
2797	0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
2798	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x72,
2799	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
2800	0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2801	0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x75,
2802	0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2803	0x65, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x77,
2804	0x72, 0x69, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67,
2805	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74,
2806	0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
2807	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
2808	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2809	0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
2810	0x6f, 0x22, 0xdb, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
2811	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2812	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d,
2813	0x65, 0x12, 0x35, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
2814	0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
2815	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61,
2816	0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e,
2817	0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52,
2818	0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09,
2819	0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
2820	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
2821	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x08, 0x72,
2822	0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x69,
2823	0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22,
2824	0x85, 0x03, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
2825	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
2826	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70,
2827	0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
2828	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
2829	0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
2830	0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01,
2831	0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
2832	0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
2833	0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f,
2834	0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f,
2835	0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x35, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07,
2836	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69,
2837	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d,
2838	0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a,
2839	0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01,
2840	0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
2841	0x6e, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a,
2842	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
2843	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
2844	0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c,
2845	0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01,
2846	0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42,
2847	0x16, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73,
2848	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x7c, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44,
2849	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
2850	0x12, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20,
2851	0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72,
2852	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
2853	0x6e, 0x74, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a,
2854	0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
2855	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65,
2856	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf6, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
2857	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
2858	0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
2859	0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d,
2860	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
2861	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
2862	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
2863	0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x63,
2864	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d,
2865	0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2866	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
2867	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64,
2868	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18,
2869	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
2870	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75,
2871	0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xa0,
2872	0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
2873	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75,
2874	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f,
2875	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
2876	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08,
2877	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61,
2878	0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
2879	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
2880	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b,
2881	0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x35, 0x0a, 0x04,
2882	0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f,
2883	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
2884	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d,
2885	0x61, 0x73, 0x6b, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64,
2886	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
2887	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
2888	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
2889	0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
2890	0x74, 0x22, 0x7e, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d,
2891	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61,
2892	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e,
2893	0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64,
2894	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
2895	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
2896	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
2897	0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
2898	0x74, 0x22, 0xdb, 0x02, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x44, 0x6f,
2899	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f,
2900	0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2901	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12,
2902	0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
2903	0x28, 0x09, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x0a,
2904	0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f,
2905	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
2906	0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04,
2907	0x6d, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
2908	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61,
2909	0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f,
2910	0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
2911	0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
2912	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
2913	0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6e, 0x65,
2914	0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09,
2915	0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
2916	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
2917	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x08, 0x72,
2918	0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x69,
2919	0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22,
2920	0xd3, 0x01, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75,
2921	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a,
2922	0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67,
2923	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
2924	0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x66,
2925	0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x07, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18,
2926	0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
2927	0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
2928	0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
2929	0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
2930	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
2931	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
2932	0x70, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72,
2933	0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x7d, 0x0a, 0x17, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x72,
2934	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
2935	0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01,
2936	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
2937	0x65, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
2938	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65,
2939	0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
2940	0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74,
2941	0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x18, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x72, 0x61,
2942	0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
2943	0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
2944	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
2945	0x6f, 0x6e, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71,
2946	0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
2947	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74,
2948	0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18,
2949	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
2950	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74,
2951	0x65, 0x52, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61,
2952	0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b,
2953	0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x0e,
2954	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45,
2955	0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18,
2956	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
2957	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74,
2958	0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65,
2959	0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
2960	0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
2961	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
2962	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69,
2963	0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65,
2964	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
2965	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61,
2966	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61,
2967	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02,
2968	0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xda, 0x02,
2969	0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
2970	0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
2971	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x51,
2972	0x0a, 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65,
2973	0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2974	0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
2975	0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00,
2976	0x52, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72,
2977	0x79, 0x12, 0x22, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
2978	0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61,
2979	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x72, 0x61,
2980	0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
2981	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
2982	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
2983	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x54, 0x72,
2984	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x61,
2985	0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
2986	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
2987	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64,
2988	0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79,
2989	0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63,
2990	0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x52,
2991	0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
2992	0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
2993	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
2994	0x6e, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
2995	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72,
2996	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
2997	0x6e, 0x74, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09,
2998	0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
2999	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
3000	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x72, 0x65, 0x61,
3001	0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64,
3002	0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
3003	0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xfa,
3004	0x01, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72,
3005	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
3006	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70,
3007	0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
3008	0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
3009	0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3010	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
3011	0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
3012	0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74,
3013	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
3014	0x03, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
3015	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
3016	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
3017	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20,
3018	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a,
3019	0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x16, 0x50,
3020	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73,
3021	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
3022	0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3023	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3024	0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
3025	0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f,
3026	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78,
3027	0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa5, 0x02, 0x0a, 0x0c, 0x57,
3028	0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x64,
3029	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
3030	0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09,
3031	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
3032	0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x77, 0x72, 0x69,
3033	0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3034	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3035	0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a,
3036	0x0c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20,
3037	0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
3038	0x12, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
3039	0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74,
3040	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
3041	0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
3042	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
3043	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
3044	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
3045	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
3046	0x38, 0x01, 0x22, 0xd3, 0x01, 0x0a, 0x0d, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
3047	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69,
3048	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49,
3049	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
3050	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54,
3051	0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65,
3052	0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f,
3053	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
3054	0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x77,
3055	0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63,
3056	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
3057	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
3058	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x6f,
3059	0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73,
3060	0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61,
3061	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
3062	0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x61,
3063	0x64, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
3064	0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3065	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00, 0x52, 0x09,
3066	0x61, 0x64, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x72, 0x65, 0x6d,
3067	0x6f, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
3068	0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
3069	0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
3070	0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74,
3071	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71,
3072	0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
3073	0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
3074	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
3075	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
3076	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
3077	0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68,
3078	0x61, 0x6e, 0x67, 0x65, 0x22, 0x9b, 0x03, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52,
3079	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65,
3080	0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
3081	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
3082	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
3083	0x65, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
3084	0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68,
3085	0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
3086	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
3087	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48,
3088	0x00, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
3089	0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65,
3090	0x6c, 0x65, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
3091	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
3092	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48,
3093	0x00, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74,
3094	0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65,
3095	0x6d, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
3096	0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
3097	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48,
3098	0x00, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76,
3099	0x65, 0x12, 0x3e, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
3100	0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3101	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63,
3102	0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
3103	0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79,
3104	0x70, 0x65, 0x22, 0xff, 0x03, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3f, 0x0a,
3105	0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67,
3106	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
3107	0x76, 0x31, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54,
3108	0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4b,
3109	0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
3110	0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3111	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x44,
3112	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00,
3113	0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x72,
3114	0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
3115	0x0c, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
3116	0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20,
3117	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
3118	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48,
3119	0x01, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74,
3120	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
3121	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x6e, 0x63, 0x65,
3122	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x6e, 0x63, 0x65, 0x1a, 0x2f, 0x0a, 0x0f,
3123	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12,
3124	0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
3125	0x28, 0x09, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x86, 0x01,
3126	0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a,
3127	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
3128	0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
3129	0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
3130	0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3131	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
3132	0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
3133	0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72,
3134	0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
3135	0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f,
3136	0x74, 0x79, 0x70, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x0c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43,
3137	0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
3138	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
3139	0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3140	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68,
3141	0x61, 0x6e, 0x67, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
3142	0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61,
3143	0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65,
3144	0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x61, 0x72,
3145	0x67, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18,
3146	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
3147	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65,
3148	0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
3149	0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f,
3150	0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
3151	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
3152	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
3153	0x6d, 0x70, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x10,
3154	0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65,
3155	0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12,
3156	0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f,
3157	0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x10,
3158	0x03, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x04, 0x22, 0x73, 0x0a, 0x18,
3159	0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
3160	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
3161	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70,
3162	0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
3163	0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
3164	0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
3165	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
3166	0x6e, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
3167	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25,
3168	0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73,
3169	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
3170	0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61,
3171	0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
3172	0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xef, 0x01,
3173	0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
3174	0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18,
3175	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61,
3176	0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x02,
3177	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69,
3178	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65,
3179	0x52, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
3180	0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
3181	0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42,
3182	0x61, 0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
3183	0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61,
3184	0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
3185	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
3186	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
3187	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
3188	0x87, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65,
3189	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f,
3190	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
3191	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
3192	0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
3193	0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a, 0x0a,
3194	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
3195	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
3196	0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0xfd, 0x16, 0x0a, 0x09, 0x46, 0x69,
3197	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44,
3198	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
3199	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
3200	0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
3201	0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74,
3202	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22,
3203	0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
3204	0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61,
3205	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
3206	0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0d, 0x4c, 0x69,
3207	0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x67, 0x6f,
3208	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
3209	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52,
3210	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
3211	0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
3212	0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
3213	0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x76, 0x31, 0x2f,
3214	0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
3215	0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
3216	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a, 0x7d, 0x2f, 0x7b,
3217	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xbf,
3218	0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
3219	0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3220	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f,
3221	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
3222	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
3223	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x62, 0x82, 0xd3,
3224	0xe4, 0x93, 0x02, 0x45, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d,
3225	0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
3226	0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f,
3227	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a,
3228	0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x14, 0x64, 0x6f, 0x63, 0x75,
3229	0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
3230	0x12, 0x95, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d,
3231	0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72,
3232	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
3233	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
3234	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
3235	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a,
3236	0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65,
3237	0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f,
3238	0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a,
3239	0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74,
3240	0x63, 0x68, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d,
3241	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
3242	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63,
3243	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e,
3244	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
3245	0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75,
3246	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82,
3247	0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61,
3248	0x62, 0x61, 0x73, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f,
3249	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63,
3250	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x3a,
3251	0x01, 0x2a, 0x30, 0x01, 0x12, 0xc7, 0x01, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x72,
3252	0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3253	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3254	0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
3255	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
3256	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65,
3257	0x67, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
3258	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x22, 0x40,
3259	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x70, 0x72,
3260	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
3261	0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a,
3262	0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
3263	0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa6,
3264	0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3265	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3266	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e,
3267	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
3268	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
3269	0x73, 0x65, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x31, 0x2f,
3270	0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
3271	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a,
3272	0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x63, 0x6f, 0x6d, 0x6d,
3273	0x69, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
3274	0x2c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c,
3275	0x62, 0x61, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69,
3276	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62,
3277	0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
3278	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
3279	0x74, 0x79, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f,
3280	0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
3281	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a,
3282	0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x72, 0x6f, 0x6c, 0x6c,
3283	0x62, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x14, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
3284	0x73, 0x65, 0x2c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xdf,
3285	0x01, 0x0a, 0x08, 0x52, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x24, 0x2e, 0x67, 0x6f,
3286	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76,
3287	0x31, 0x2e, 0x52, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
3288	0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3289	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79,
3290	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02,
3291	0x7d, 0x22, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70,
3292	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
3293	0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d,
3294	0x3a, 0x72, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x40, 0x22, 0x3b,
3295	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
3296	0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73,
3297	0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a,
3298	0x2a, 0x7d, 0x3a, 0x72, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x30, 0x01,
3299	0x12, 0xfc, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75,
3300	0x65, 0x72, 0x79, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72,
3301	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74,
3302	0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
3303	0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3304	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51,
3305	0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x82,
3306	0xd3, 0xe4, 0x93, 0x02, 0x89, 0x01, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
3307	0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
3308	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d,
3309	0x65, 0x6e, 0x74, 0x73, 0x7d, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51,
3310	0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x46, 0x22, 0x41, 0x2f, 0x76, 0x31, 0x2f, 0x7b,
3311	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
3312	0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f,
3313	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x70, 0x61,
3314	0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x12,
3315	0x94, 0x01, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3316	0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3317	0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67,
3318	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
3319	0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
3320	0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64,
3321	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
3322	0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f,
3323	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x3a,
3324	0x01, 0x2a, 0x28, 0x01, 0x30, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x65,
3325	0x6e, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73,
3326	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65,
3327	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66,
3328	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
3329	0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93,
3330	0x02, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
3331	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74,
3332	0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
3333	0x6e, 0x74, 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x30,
3334	0x01, 0x12, 0x94, 0x02, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
3335	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
3336	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
3337	0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52,
3338	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
3339	0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
3340	0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65,
3341	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8f, 0x01,
3342	0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72,
3343	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
3344	0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, 0x3a,
3345	0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
3346	0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
3347	0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
3348	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d,
3349	0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x43,
3350	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0xda,
3351	0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x42, 0x61, 0x74,
3352	0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
3353	0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61,
3354	0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
3355	0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3356	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65,
3357	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f,
3358	0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x3d,
3359	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62,
3360	0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
3361	0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12,
3362	0xaf, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
3363	0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65,
3364	0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
3365	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
3366	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
3367	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x52, 0x82,
3368	0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x22, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65,
3369	0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61,
3370	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
3371	0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
3372	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
3373	0x74, 0x1a, 0x76, 0xca, 0x41, 0x18, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
3374	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41,
3375	0x58, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f,
3376	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68,
3377	0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c,
3378	0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
3379	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f,
3380	0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f,
3381	0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f,
3382	0x72, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
3383	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
3384	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
3385	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66,
3386	0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x69, 0x72, 0x65,
3387	0x73, 0x74, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, 0x02, 0x19, 0x47,
3388	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65,
3389	0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
3390	0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
3391	0x65, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43,
3392	0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a,
3393	0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
3394}
3395
3396var (
3397	file_google_firestore_v1_firestore_proto_rawDescOnce sync.Once
3398	file_google_firestore_v1_firestore_proto_rawDescData = file_google_firestore_v1_firestore_proto_rawDesc
3399)
3400
3401func file_google_firestore_v1_firestore_proto_rawDescGZIP() []byte {
3402	file_google_firestore_v1_firestore_proto_rawDescOnce.Do(func() {
3403		file_google_firestore_v1_firestore_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_firestore_v1_firestore_proto_rawDescData)
3404	})
3405	return file_google_firestore_v1_firestore_proto_rawDescData
3406}
3407
3408var file_google_firestore_v1_firestore_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
3409var file_google_firestore_v1_firestore_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
3410var file_google_firestore_v1_firestore_proto_goTypes = []interface{}{
3411	(TargetChange_TargetChangeType)(0), // 0: google.firestore.v1.TargetChange.TargetChangeType
3412	(*GetDocumentRequest)(nil),         // 1: google.firestore.v1.GetDocumentRequest
3413	(*ListDocumentsRequest)(nil),       // 2: google.firestore.v1.ListDocumentsRequest
3414	(*ListDocumentsResponse)(nil),      // 3: google.firestore.v1.ListDocumentsResponse
3415	(*CreateDocumentRequest)(nil),      // 4: google.firestore.v1.CreateDocumentRequest
3416	(*UpdateDocumentRequest)(nil),      // 5: google.firestore.v1.UpdateDocumentRequest
3417	(*DeleteDocumentRequest)(nil),      // 6: google.firestore.v1.DeleteDocumentRequest
3418	(*BatchGetDocumentsRequest)(nil),   // 7: google.firestore.v1.BatchGetDocumentsRequest
3419	(*BatchGetDocumentsResponse)(nil),  // 8: google.firestore.v1.BatchGetDocumentsResponse
3420	(*BeginTransactionRequest)(nil),    // 9: google.firestore.v1.BeginTransactionRequest
3421	(*BeginTransactionResponse)(nil),   // 10: google.firestore.v1.BeginTransactionResponse
3422	(*CommitRequest)(nil),              // 11: google.firestore.v1.CommitRequest
3423	(*CommitResponse)(nil),             // 12: google.firestore.v1.CommitResponse
3424	(*RollbackRequest)(nil),            // 13: google.firestore.v1.RollbackRequest
3425	(*RunQueryRequest)(nil),            // 14: google.firestore.v1.RunQueryRequest
3426	(*RunQueryResponse)(nil),           // 15: google.firestore.v1.RunQueryResponse
3427	(*PartitionQueryRequest)(nil),      // 16: google.firestore.v1.PartitionQueryRequest
3428	(*PartitionQueryResponse)(nil),     // 17: google.firestore.v1.PartitionQueryResponse
3429	(*WriteRequest)(nil),               // 18: google.firestore.v1.WriteRequest
3430	(*WriteResponse)(nil),              // 19: google.firestore.v1.WriteResponse
3431	(*ListenRequest)(nil),              // 20: google.firestore.v1.ListenRequest
3432	(*ListenResponse)(nil),             // 21: google.firestore.v1.ListenResponse
3433	(*Target)(nil),                     // 22: google.firestore.v1.Target
3434	(*TargetChange)(nil),               // 23: google.firestore.v1.TargetChange
3435	(*ListCollectionIdsRequest)(nil),   // 24: google.firestore.v1.ListCollectionIdsRequest
3436	(*ListCollectionIdsResponse)(nil),  // 25: google.firestore.v1.ListCollectionIdsResponse
3437	(*BatchWriteRequest)(nil),          // 26: google.firestore.v1.BatchWriteRequest
3438	(*BatchWriteResponse)(nil),         // 27: google.firestore.v1.BatchWriteResponse
3439	nil,                                // 28: google.firestore.v1.WriteRequest.LabelsEntry
3440	nil,                                // 29: google.firestore.v1.ListenRequest.LabelsEntry
3441	(*Target_DocumentsTarget)(nil),     // 30: google.firestore.v1.Target.DocumentsTarget
3442	(*Target_QueryTarget)(nil),         // 31: google.firestore.v1.Target.QueryTarget
3443	nil,                                // 32: google.firestore.v1.BatchWriteRequest.LabelsEntry
3444	(*DocumentMask)(nil),               // 33: google.firestore.v1.DocumentMask
3445	(*timestamppb.Timestamp)(nil),      // 34: google.protobuf.Timestamp
3446	(*Document)(nil),                   // 35: google.firestore.v1.Document
3447	(*Precondition)(nil),               // 36: google.firestore.v1.Precondition
3448	(*TransactionOptions)(nil),         // 37: google.firestore.v1.TransactionOptions
3449	(*Write)(nil),                      // 38: google.firestore.v1.Write
3450	(*WriteResult)(nil),                // 39: google.firestore.v1.WriteResult
3451	(*StructuredQuery)(nil),            // 40: google.firestore.v1.StructuredQuery
3452	(*Cursor)(nil),                     // 41: google.firestore.v1.Cursor
3453	(*DocumentChange)(nil),             // 42: google.firestore.v1.DocumentChange
3454	(*DocumentDelete)(nil),             // 43: google.firestore.v1.DocumentDelete
3455	(*DocumentRemove)(nil),             // 44: google.firestore.v1.DocumentRemove
3456	(*ExistenceFilter)(nil),            // 45: google.firestore.v1.ExistenceFilter
3457	(*status.Status)(nil),              // 46: google.rpc.Status
3458	(*emptypb.Empty)(nil),              // 47: google.protobuf.Empty
3459}
3460var file_google_firestore_v1_firestore_proto_depIdxs = []int32{
3461	33, // 0: google.firestore.v1.GetDocumentRequest.mask:type_name -> google.firestore.v1.DocumentMask
3462	34, // 1: google.firestore.v1.GetDocumentRequest.read_time:type_name -> google.protobuf.Timestamp
3463	33, // 2: google.firestore.v1.ListDocumentsRequest.mask:type_name -> google.firestore.v1.DocumentMask
3464	34, // 3: google.firestore.v1.ListDocumentsRequest.read_time:type_name -> google.protobuf.Timestamp
3465	35, // 4: google.firestore.v1.ListDocumentsResponse.documents:type_name -> google.firestore.v1.Document
3466	35, // 5: google.firestore.v1.CreateDocumentRequest.document:type_name -> google.firestore.v1.Document
3467	33, // 6: google.firestore.v1.CreateDocumentRequest.mask:type_name -> google.firestore.v1.DocumentMask
3468	35, // 7: google.firestore.v1.UpdateDocumentRequest.document:type_name -> google.firestore.v1.Document
3469	33, // 8: google.firestore.v1.UpdateDocumentRequest.update_mask:type_name -> google.firestore.v1.DocumentMask
3470	33, // 9: google.firestore.v1.UpdateDocumentRequest.mask:type_name -> google.firestore.v1.DocumentMask
3471	36, // 10: google.firestore.v1.UpdateDocumentRequest.current_document:type_name -> google.firestore.v1.Precondition
3472	36, // 11: google.firestore.v1.DeleteDocumentRequest.current_document:type_name -> google.firestore.v1.Precondition
3473	33, // 12: google.firestore.v1.BatchGetDocumentsRequest.mask:type_name -> google.firestore.v1.DocumentMask
3474	37, // 13: google.firestore.v1.BatchGetDocumentsRequest.new_transaction:type_name -> google.firestore.v1.TransactionOptions
3475	34, // 14: google.firestore.v1.BatchGetDocumentsRequest.read_time:type_name -> google.protobuf.Timestamp
3476	35, // 15: google.firestore.v1.BatchGetDocumentsResponse.found:type_name -> google.firestore.v1.Document
3477	34, // 16: google.firestore.v1.BatchGetDocumentsResponse.read_time:type_name -> google.protobuf.Timestamp
3478	37, // 17: google.firestore.v1.BeginTransactionRequest.options:type_name -> google.firestore.v1.TransactionOptions
3479	38, // 18: google.firestore.v1.CommitRequest.writes:type_name -> google.firestore.v1.Write
3480	39, // 19: google.firestore.v1.CommitResponse.write_results:type_name -> google.firestore.v1.WriteResult
3481	34, // 20: google.firestore.v1.CommitResponse.commit_time:type_name -> google.protobuf.Timestamp
3482	40, // 21: google.firestore.v1.RunQueryRequest.structured_query:type_name -> google.firestore.v1.StructuredQuery
3483	37, // 22: google.firestore.v1.RunQueryRequest.new_transaction:type_name -> google.firestore.v1.TransactionOptions
3484	34, // 23: google.firestore.v1.RunQueryRequest.read_time:type_name -> google.protobuf.Timestamp
3485	35, // 24: google.firestore.v1.RunQueryResponse.document:type_name -> google.firestore.v1.Document
3486	34, // 25: google.firestore.v1.RunQueryResponse.read_time:type_name -> google.protobuf.Timestamp
3487	40, // 26: google.firestore.v1.PartitionQueryRequest.structured_query:type_name -> google.firestore.v1.StructuredQuery
3488	41, // 27: google.firestore.v1.PartitionQueryResponse.partitions:type_name -> google.firestore.v1.Cursor
3489	38, // 28: google.firestore.v1.WriteRequest.writes:type_name -> google.firestore.v1.Write
3490	28, // 29: google.firestore.v1.WriteRequest.labels:type_name -> google.firestore.v1.WriteRequest.LabelsEntry
3491	39, // 30: google.firestore.v1.WriteResponse.write_results:type_name -> google.firestore.v1.WriteResult
3492	34, // 31: google.firestore.v1.WriteResponse.commit_time:type_name -> google.protobuf.Timestamp
3493	22, // 32: google.firestore.v1.ListenRequest.add_target:type_name -> google.firestore.v1.Target
3494	29, // 33: google.firestore.v1.ListenRequest.labels:type_name -> google.firestore.v1.ListenRequest.LabelsEntry
3495	23, // 34: google.firestore.v1.ListenResponse.target_change:type_name -> google.firestore.v1.TargetChange
3496	42, // 35: google.firestore.v1.ListenResponse.document_change:type_name -> google.firestore.v1.DocumentChange
3497	43, // 36: google.firestore.v1.ListenResponse.document_delete:type_name -> google.firestore.v1.DocumentDelete
3498	44, // 37: google.firestore.v1.ListenResponse.document_remove:type_name -> google.firestore.v1.DocumentRemove
3499	45, // 38: google.firestore.v1.ListenResponse.filter:type_name -> google.firestore.v1.ExistenceFilter
3500	31, // 39: google.firestore.v1.Target.query:type_name -> google.firestore.v1.Target.QueryTarget
3501	30, // 40: google.firestore.v1.Target.documents:type_name -> google.firestore.v1.Target.DocumentsTarget
3502	34, // 41: google.firestore.v1.Target.read_time:type_name -> google.protobuf.Timestamp
3503	0,  // 42: google.firestore.v1.TargetChange.target_change_type:type_name -> google.firestore.v1.TargetChange.TargetChangeType
3504	46, // 43: google.firestore.v1.TargetChange.cause:type_name -> google.rpc.Status
3505	34, // 44: google.firestore.v1.TargetChange.read_time:type_name -> google.protobuf.Timestamp
3506	38, // 45: google.firestore.v1.BatchWriteRequest.writes:type_name -> google.firestore.v1.Write
3507	32, // 46: google.firestore.v1.BatchWriteRequest.labels:type_name -> google.firestore.v1.BatchWriteRequest.LabelsEntry
3508	39, // 47: google.firestore.v1.BatchWriteResponse.write_results:type_name -> google.firestore.v1.WriteResult
3509	46, // 48: google.firestore.v1.BatchWriteResponse.status:type_name -> google.rpc.Status
3510	40, // 49: google.firestore.v1.Target.QueryTarget.structured_query:type_name -> google.firestore.v1.StructuredQuery
3511	1,  // 50: google.firestore.v1.Firestore.GetDocument:input_type -> google.firestore.v1.GetDocumentRequest
3512	2,  // 51: google.firestore.v1.Firestore.ListDocuments:input_type -> google.firestore.v1.ListDocumentsRequest
3513	5,  // 52: google.firestore.v1.Firestore.UpdateDocument:input_type -> google.firestore.v1.UpdateDocumentRequest
3514	6,  // 53: google.firestore.v1.Firestore.DeleteDocument:input_type -> google.firestore.v1.DeleteDocumentRequest
3515	7,  // 54: google.firestore.v1.Firestore.BatchGetDocuments:input_type -> google.firestore.v1.BatchGetDocumentsRequest
3516	9,  // 55: google.firestore.v1.Firestore.BeginTransaction:input_type -> google.firestore.v1.BeginTransactionRequest
3517	11, // 56: google.firestore.v1.Firestore.Commit:input_type -> google.firestore.v1.CommitRequest
3518	13, // 57: google.firestore.v1.Firestore.Rollback:input_type -> google.firestore.v1.RollbackRequest
3519	14, // 58: google.firestore.v1.Firestore.RunQuery:input_type -> google.firestore.v1.RunQueryRequest
3520	16, // 59: google.firestore.v1.Firestore.PartitionQuery:input_type -> google.firestore.v1.PartitionQueryRequest
3521	18, // 60: google.firestore.v1.Firestore.Write:input_type -> google.firestore.v1.WriteRequest
3522	20, // 61: google.firestore.v1.Firestore.Listen:input_type -> google.firestore.v1.ListenRequest
3523	24, // 62: google.firestore.v1.Firestore.ListCollectionIds:input_type -> google.firestore.v1.ListCollectionIdsRequest
3524	26, // 63: google.firestore.v1.Firestore.BatchWrite:input_type -> google.firestore.v1.BatchWriteRequest
3525	4,  // 64: google.firestore.v1.Firestore.CreateDocument:input_type -> google.firestore.v1.CreateDocumentRequest
3526	35, // 65: google.firestore.v1.Firestore.GetDocument:output_type -> google.firestore.v1.Document
3527	3,  // 66: google.firestore.v1.Firestore.ListDocuments:output_type -> google.firestore.v1.ListDocumentsResponse
3528	35, // 67: google.firestore.v1.Firestore.UpdateDocument:output_type -> google.firestore.v1.Document
3529	47, // 68: google.firestore.v1.Firestore.DeleteDocument:output_type -> google.protobuf.Empty
3530	8,  // 69: google.firestore.v1.Firestore.BatchGetDocuments:output_type -> google.firestore.v1.BatchGetDocumentsResponse
3531	10, // 70: google.firestore.v1.Firestore.BeginTransaction:output_type -> google.firestore.v1.BeginTransactionResponse
3532	12, // 71: google.firestore.v1.Firestore.Commit:output_type -> google.firestore.v1.CommitResponse
3533	47, // 72: google.firestore.v1.Firestore.Rollback:output_type -> google.protobuf.Empty
3534	15, // 73: google.firestore.v1.Firestore.RunQuery:output_type -> google.firestore.v1.RunQueryResponse
3535	17, // 74: google.firestore.v1.Firestore.PartitionQuery:output_type -> google.firestore.v1.PartitionQueryResponse
3536	19, // 75: google.firestore.v1.Firestore.Write:output_type -> google.firestore.v1.WriteResponse
3537	21, // 76: google.firestore.v1.Firestore.Listen:output_type -> google.firestore.v1.ListenResponse
3538	25, // 77: google.firestore.v1.Firestore.ListCollectionIds:output_type -> google.firestore.v1.ListCollectionIdsResponse
3539	27, // 78: google.firestore.v1.Firestore.BatchWrite:output_type -> google.firestore.v1.BatchWriteResponse
3540	35, // 79: google.firestore.v1.Firestore.CreateDocument:output_type -> google.firestore.v1.Document
3541	65, // [65:80] is the sub-list for method output_type
3542	50, // [50:65] is the sub-list for method input_type
3543	50, // [50:50] is the sub-list for extension type_name
3544	50, // [50:50] is the sub-list for extension extendee
3545	0,  // [0:50] is the sub-list for field type_name
3546}
3547
3548func init() { file_google_firestore_v1_firestore_proto_init() }
3549func file_google_firestore_v1_firestore_proto_init() {
3550	if File_google_firestore_v1_firestore_proto != nil {
3551		return
3552	}
3553	file_google_firestore_v1_common_proto_init()
3554	file_google_firestore_v1_document_proto_init()
3555	file_google_firestore_v1_query_proto_init()
3556	file_google_firestore_v1_write_proto_init()
3557	if !protoimpl.UnsafeEnabled {
3558		file_google_firestore_v1_firestore_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
3559			switch v := v.(*GetDocumentRequest); i {
3560			case 0:
3561				return &v.state
3562			case 1:
3563				return &v.sizeCache
3564			case 2:
3565				return &v.unknownFields
3566			default:
3567				return nil
3568			}
3569		}
3570		file_google_firestore_v1_firestore_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
3571			switch v := v.(*ListDocumentsRequest); i {
3572			case 0:
3573				return &v.state
3574			case 1:
3575				return &v.sizeCache
3576			case 2:
3577				return &v.unknownFields
3578			default:
3579				return nil
3580			}
3581		}
3582		file_google_firestore_v1_firestore_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
3583			switch v := v.(*ListDocumentsResponse); i {
3584			case 0:
3585				return &v.state
3586			case 1:
3587				return &v.sizeCache
3588			case 2:
3589				return &v.unknownFields
3590			default:
3591				return nil
3592			}
3593		}
3594		file_google_firestore_v1_firestore_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
3595			switch v := v.(*CreateDocumentRequest); i {
3596			case 0:
3597				return &v.state
3598			case 1:
3599				return &v.sizeCache
3600			case 2:
3601				return &v.unknownFields
3602			default:
3603				return nil
3604			}
3605		}
3606		file_google_firestore_v1_firestore_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
3607			switch v := v.(*UpdateDocumentRequest); i {
3608			case 0:
3609				return &v.state
3610			case 1:
3611				return &v.sizeCache
3612			case 2:
3613				return &v.unknownFields
3614			default:
3615				return nil
3616			}
3617		}
3618		file_google_firestore_v1_firestore_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
3619			switch v := v.(*DeleteDocumentRequest); i {
3620			case 0:
3621				return &v.state
3622			case 1:
3623				return &v.sizeCache
3624			case 2:
3625				return &v.unknownFields
3626			default:
3627				return nil
3628			}
3629		}
3630		file_google_firestore_v1_firestore_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
3631			switch v := v.(*BatchGetDocumentsRequest); i {
3632			case 0:
3633				return &v.state
3634			case 1:
3635				return &v.sizeCache
3636			case 2:
3637				return &v.unknownFields
3638			default:
3639				return nil
3640			}
3641		}
3642		file_google_firestore_v1_firestore_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
3643			switch v := v.(*BatchGetDocumentsResponse); i {
3644			case 0:
3645				return &v.state
3646			case 1:
3647				return &v.sizeCache
3648			case 2:
3649				return &v.unknownFields
3650			default:
3651				return nil
3652			}
3653		}
3654		file_google_firestore_v1_firestore_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
3655			switch v := v.(*BeginTransactionRequest); i {
3656			case 0:
3657				return &v.state
3658			case 1:
3659				return &v.sizeCache
3660			case 2:
3661				return &v.unknownFields
3662			default:
3663				return nil
3664			}
3665		}
3666		file_google_firestore_v1_firestore_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
3667			switch v := v.(*BeginTransactionResponse); i {
3668			case 0:
3669				return &v.state
3670			case 1:
3671				return &v.sizeCache
3672			case 2:
3673				return &v.unknownFields
3674			default:
3675				return nil
3676			}
3677		}
3678		file_google_firestore_v1_firestore_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
3679			switch v := v.(*CommitRequest); i {
3680			case 0:
3681				return &v.state
3682			case 1:
3683				return &v.sizeCache
3684			case 2:
3685				return &v.unknownFields
3686			default:
3687				return nil
3688			}
3689		}
3690		file_google_firestore_v1_firestore_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
3691			switch v := v.(*CommitResponse); i {
3692			case 0:
3693				return &v.state
3694			case 1:
3695				return &v.sizeCache
3696			case 2:
3697				return &v.unknownFields
3698			default:
3699				return nil
3700			}
3701		}
3702		file_google_firestore_v1_firestore_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
3703			switch v := v.(*RollbackRequest); i {
3704			case 0:
3705				return &v.state
3706			case 1:
3707				return &v.sizeCache
3708			case 2:
3709				return &v.unknownFields
3710			default:
3711				return nil
3712			}
3713		}
3714		file_google_firestore_v1_firestore_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
3715			switch v := v.(*RunQueryRequest); i {
3716			case 0:
3717				return &v.state
3718			case 1:
3719				return &v.sizeCache
3720			case 2:
3721				return &v.unknownFields
3722			default:
3723				return nil
3724			}
3725		}
3726		file_google_firestore_v1_firestore_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
3727			switch v := v.(*RunQueryResponse); i {
3728			case 0:
3729				return &v.state
3730			case 1:
3731				return &v.sizeCache
3732			case 2:
3733				return &v.unknownFields
3734			default:
3735				return nil
3736			}
3737		}
3738		file_google_firestore_v1_firestore_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
3739			switch v := v.(*PartitionQueryRequest); i {
3740			case 0:
3741				return &v.state
3742			case 1:
3743				return &v.sizeCache
3744			case 2:
3745				return &v.unknownFields
3746			default:
3747				return nil
3748			}
3749		}
3750		file_google_firestore_v1_firestore_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
3751			switch v := v.(*PartitionQueryResponse); i {
3752			case 0:
3753				return &v.state
3754			case 1:
3755				return &v.sizeCache
3756			case 2:
3757				return &v.unknownFields
3758			default:
3759				return nil
3760			}
3761		}
3762		file_google_firestore_v1_firestore_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
3763			switch v := v.(*WriteRequest); i {
3764			case 0:
3765				return &v.state
3766			case 1:
3767				return &v.sizeCache
3768			case 2:
3769				return &v.unknownFields
3770			default:
3771				return nil
3772			}
3773		}
3774		file_google_firestore_v1_firestore_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
3775			switch v := v.(*WriteResponse); i {
3776			case 0:
3777				return &v.state
3778			case 1:
3779				return &v.sizeCache
3780			case 2:
3781				return &v.unknownFields
3782			default:
3783				return nil
3784			}
3785		}
3786		file_google_firestore_v1_firestore_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
3787			switch v := v.(*ListenRequest); i {
3788			case 0:
3789				return &v.state
3790			case 1:
3791				return &v.sizeCache
3792			case 2:
3793				return &v.unknownFields
3794			default:
3795				return nil
3796			}
3797		}
3798		file_google_firestore_v1_firestore_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
3799			switch v := v.(*ListenResponse); i {
3800			case 0:
3801				return &v.state
3802			case 1:
3803				return &v.sizeCache
3804			case 2:
3805				return &v.unknownFields
3806			default:
3807				return nil
3808			}
3809		}
3810		file_google_firestore_v1_firestore_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
3811			switch v := v.(*Target); i {
3812			case 0:
3813				return &v.state
3814			case 1:
3815				return &v.sizeCache
3816			case 2:
3817				return &v.unknownFields
3818			default:
3819				return nil
3820			}
3821		}
3822		file_google_firestore_v1_firestore_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
3823			switch v := v.(*TargetChange); i {
3824			case 0:
3825				return &v.state
3826			case 1:
3827				return &v.sizeCache
3828			case 2:
3829				return &v.unknownFields
3830			default:
3831				return nil
3832			}
3833		}
3834		file_google_firestore_v1_firestore_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
3835			switch v := v.(*ListCollectionIdsRequest); i {
3836			case 0:
3837				return &v.state
3838			case 1:
3839				return &v.sizeCache
3840			case 2:
3841				return &v.unknownFields
3842			default:
3843				return nil
3844			}
3845		}
3846		file_google_firestore_v1_firestore_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
3847			switch v := v.(*ListCollectionIdsResponse); i {
3848			case 0:
3849				return &v.state
3850			case 1:
3851				return &v.sizeCache
3852			case 2:
3853				return &v.unknownFields
3854			default:
3855				return nil
3856			}
3857		}
3858		file_google_firestore_v1_firestore_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
3859			switch v := v.(*BatchWriteRequest); i {
3860			case 0:
3861				return &v.state
3862			case 1:
3863				return &v.sizeCache
3864			case 2:
3865				return &v.unknownFields
3866			default:
3867				return nil
3868			}
3869		}
3870		file_google_firestore_v1_firestore_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
3871			switch v := v.(*BatchWriteResponse); i {
3872			case 0:
3873				return &v.state
3874			case 1:
3875				return &v.sizeCache
3876			case 2:
3877				return &v.unknownFields
3878			default:
3879				return nil
3880			}
3881		}
3882		file_google_firestore_v1_firestore_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
3883			switch v := v.(*Target_DocumentsTarget); i {
3884			case 0:
3885				return &v.state
3886			case 1:
3887				return &v.sizeCache
3888			case 2:
3889				return &v.unknownFields
3890			default:
3891				return nil
3892			}
3893		}
3894		file_google_firestore_v1_firestore_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
3895			switch v := v.(*Target_QueryTarget); i {
3896			case 0:
3897				return &v.state
3898			case 1:
3899				return &v.sizeCache
3900			case 2:
3901				return &v.unknownFields
3902			default:
3903				return nil
3904			}
3905		}
3906	}
3907	file_google_firestore_v1_firestore_proto_msgTypes[0].OneofWrappers = []interface{}{
3908		(*GetDocumentRequest_Transaction)(nil),
3909		(*GetDocumentRequest_ReadTime)(nil),
3910	}
3911	file_google_firestore_v1_firestore_proto_msgTypes[1].OneofWrappers = []interface{}{
3912		(*ListDocumentsRequest_Transaction)(nil),
3913		(*ListDocumentsRequest_ReadTime)(nil),
3914	}
3915	file_google_firestore_v1_firestore_proto_msgTypes[6].OneofWrappers = []interface{}{
3916		(*BatchGetDocumentsRequest_Transaction)(nil),
3917		(*BatchGetDocumentsRequest_NewTransaction)(nil),
3918		(*BatchGetDocumentsRequest_ReadTime)(nil),
3919	}
3920	file_google_firestore_v1_firestore_proto_msgTypes[7].OneofWrappers = []interface{}{
3921		(*BatchGetDocumentsResponse_Found)(nil),
3922		(*BatchGetDocumentsResponse_Missing)(nil),
3923	}
3924	file_google_firestore_v1_firestore_proto_msgTypes[13].OneofWrappers = []interface{}{
3925		(*RunQueryRequest_StructuredQuery)(nil),
3926		(*RunQueryRequest_Transaction)(nil),
3927		(*RunQueryRequest_NewTransaction)(nil),
3928		(*RunQueryRequest_ReadTime)(nil),
3929	}
3930	file_google_firestore_v1_firestore_proto_msgTypes[15].OneofWrappers = []interface{}{
3931		(*PartitionQueryRequest_StructuredQuery)(nil),
3932	}
3933	file_google_firestore_v1_firestore_proto_msgTypes[19].OneofWrappers = []interface{}{
3934		(*ListenRequest_AddTarget)(nil),
3935		(*ListenRequest_RemoveTarget)(nil),
3936	}
3937	file_google_firestore_v1_firestore_proto_msgTypes[20].OneofWrappers = []interface{}{
3938		(*ListenResponse_TargetChange)(nil),
3939		(*ListenResponse_DocumentChange)(nil),
3940		(*ListenResponse_DocumentDelete)(nil),
3941		(*ListenResponse_DocumentRemove)(nil),
3942		(*ListenResponse_Filter)(nil),
3943	}
3944	file_google_firestore_v1_firestore_proto_msgTypes[21].OneofWrappers = []interface{}{
3945		(*Target_Query)(nil),
3946		(*Target_Documents)(nil),
3947		(*Target_ResumeToken)(nil),
3948		(*Target_ReadTime)(nil),
3949	}
3950	file_google_firestore_v1_firestore_proto_msgTypes[30].OneofWrappers = []interface{}{
3951		(*Target_QueryTarget_StructuredQuery)(nil),
3952	}
3953	type x struct{}
3954	out := protoimpl.TypeBuilder{
3955		File: protoimpl.DescBuilder{
3956			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
3957			RawDescriptor: file_google_firestore_v1_firestore_proto_rawDesc,
3958			NumEnums:      1,
3959			NumMessages:   32,
3960			NumExtensions: 0,
3961			NumServices:   1,
3962		},
3963		GoTypes:           file_google_firestore_v1_firestore_proto_goTypes,
3964		DependencyIndexes: file_google_firestore_v1_firestore_proto_depIdxs,
3965		EnumInfos:         file_google_firestore_v1_firestore_proto_enumTypes,
3966		MessageInfos:      file_google_firestore_v1_firestore_proto_msgTypes,
3967	}.Build()
3968	File_google_firestore_v1_firestore_proto = out.File
3969	file_google_firestore_v1_firestore_proto_rawDesc = nil
3970	file_google_firestore_v1_firestore_proto_goTypes = nil
3971	file_google_firestore_v1_firestore_proto_depIdxs = nil
3972}
3973
3974// Reference imports to suppress errors if they are not otherwise used.
3975var _ context.Context
3976var _ grpc.ClientConnInterface
3977
3978// This is a compile-time assertion to ensure that this generated file
3979// is compatible with the grpc package it is being compiled against.
3980const _ = grpc.SupportPackageIsVersion6
3981
3982// FirestoreClient is the client API for Firestore service.
3983//
3984// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
3985type FirestoreClient interface {
3986	// Gets a single document.
3987	GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*Document, error)
3988	// Lists documents.
3989	ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error)
3990	// Updates or inserts a document.
3991	UpdateDocument(ctx context.Context, in *UpdateDocumentRequest, opts ...grpc.CallOption) (*Document, error)
3992	// Deletes a document.
3993	DeleteDocument(ctx context.Context, in *DeleteDocumentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3994	// Gets multiple documents.
3995	//
3996	// Documents returned by this method are not guaranteed to be returned in the
3997	// same order that they were requested.
3998	BatchGetDocuments(ctx context.Context, in *BatchGetDocumentsRequest, opts ...grpc.CallOption) (Firestore_BatchGetDocumentsClient, error)
3999	// Starts a new transaction.
4000	BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error)
4001	// Commits a transaction, while optionally updating documents.
4002	Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error)
4003	// Rolls back a transaction.
4004	Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
4005	// Runs a query.
4006	RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (Firestore_RunQueryClient, error)
4007	// Partitions a query by returning partition cursors that can be used to run
4008	// the query in parallel. The returned partition cursors are split points that
4009	// can be used by RunQuery as starting/end points for the query results.
4010	PartitionQuery(ctx context.Context, in *PartitionQueryRequest, opts ...grpc.CallOption) (*PartitionQueryResponse, error)
4011	// Streams batches of document updates and deletes, in order.
4012	Write(ctx context.Context, opts ...grpc.CallOption) (Firestore_WriteClient, error)
4013	// Listens to changes.
4014	Listen(ctx context.Context, opts ...grpc.CallOption) (Firestore_ListenClient, error)
4015	// Lists all the collection IDs underneath a document.
4016	ListCollectionIds(ctx context.Context, in *ListCollectionIdsRequest, opts ...grpc.CallOption) (*ListCollectionIdsResponse, error)
4017	// Applies a batch of write operations.
4018	//
4019	// The BatchWrite method does not apply the write operations atomically
4020	// and can apply them out of order. Method does not allow more than one write
4021	// per document. Each write succeeds or fails independently. See the
4022	// [BatchWriteResponse][google.firestore.v1.BatchWriteResponse] for the success status of each write.
4023	//
4024	// If you require an atomically applied set of writes, use
4025	// [Commit][google.firestore.v1.Firestore.Commit] instead.
4026	BatchWrite(ctx context.Context, in *BatchWriteRequest, opts ...grpc.CallOption) (*BatchWriteResponse, error)
4027	// Creates a new document.
4028	CreateDocument(ctx context.Context, in *CreateDocumentRequest, opts ...grpc.CallOption) (*Document, error)
4029}
4030
4031type firestoreClient struct {
4032	cc grpc.ClientConnInterface
4033}
4034
4035func NewFirestoreClient(cc grpc.ClientConnInterface) FirestoreClient {
4036	return &firestoreClient{cc}
4037}
4038
4039func (c *firestoreClient) GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*Document, error) {
4040	out := new(Document)
4041	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/GetDocument", in, out, opts...)
4042	if err != nil {
4043		return nil, err
4044	}
4045	return out, nil
4046}
4047
4048func (c *firestoreClient) ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error) {
4049	out := new(ListDocumentsResponse)
4050	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/ListDocuments", in, out, opts...)
4051	if err != nil {
4052		return nil, err
4053	}
4054	return out, nil
4055}
4056
4057func (c *firestoreClient) UpdateDocument(ctx context.Context, in *UpdateDocumentRequest, opts ...grpc.CallOption) (*Document, error) {
4058	out := new(Document)
4059	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/UpdateDocument", in, out, opts...)
4060	if err != nil {
4061		return nil, err
4062	}
4063	return out, nil
4064}
4065
4066func (c *firestoreClient) DeleteDocument(ctx context.Context, in *DeleteDocumentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
4067	out := new(emptypb.Empty)
4068	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/DeleteDocument", in, out, opts...)
4069	if err != nil {
4070		return nil, err
4071	}
4072	return out, nil
4073}
4074
4075func (c *firestoreClient) BatchGetDocuments(ctx context.Context, in *BatchGetDocumentsRequest, opts ...grpc.CallOption) (Firestore_BatchGetDocumentsClient, error) {
4076	stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[0], "/google.firestore.v1.Firestore/BatchGetDocuments", opts...)
4077	if err != nil {
4078		return nil, err
4079	}
4080	x := &firestoreBatchGetDocumentsClient{stream}
4081	if err := x.ClientStream.SendMsg(in); err != nil {
4082		return nil, err
4083	}
4084	if err := x.ClientStream.CloseSend(); err != nil {
4085		return nil, err
4086	}
4087	return x, nil
4088}
4089
4090type Firestore_BatchGetDocumentsClient interface {
4091	Recv() (*BatchGetDocumentsResponse, error)
4092	grpc.ClientStream
4093}
4094
4095type firestoreBatchGetDocumentsClient struct {
4096	grpc.ClientStream
4097}
4098
4099func (x *firestoreBatchGetDocumentsClient) Recv() (*BatchGetDocumentsResponse, error) {
4100	m := new(BatchGetDocumentsResponse)
4101	if err := x.ClientStream.RecvMsg(m); err != nil {
4102		return nil, err
4103	}
4104	return m, nil
4105}
4106
4107func (c *firestoreClient) BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error) {
4108	out := new(BeginTransactionResponse)
4109	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/BeginTransaction", in, out, opts...)
4110	if err != nil {
4111		return nil, err
4112	}
4113	return out, nil
4114}
4115
4116func (c *firestoreClient) Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error) {
4117	out := new(CommitResponse)
4118	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/Commit", in, out, opts...)
4119	if err != nil {
4120		return nil, err
4121	}
4122	return out, nil
4123}
4124
4125func (c *firestoreClient) Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
4126	out := new(emptypb.Empty)
4127	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/Rollback", in, out, opts...)
4128	if err != nil {
4129		return nil, err
4130	}
4131	return out, nil
4132}
4133
4134func (c *firestoreClient) RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (Firestore_RunQueryClient, error) {
4135	stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[1], "/google.firestore.v1.Firestore/RunQuery", opts...)
4136	if err != nil {
4137		return nil, err
4138	}
4139	x := &firestoreRunQueryClient{stream}
4140	if err := x.ClientStream.SendMsg(in); err != nil {
4141		return nil, err
4142	}
4143	if err := x.ClientStream.CloseSend(); err != nil {
4144		return nil, err
4145	}
4146	return x, nil
4147}
4148
4149type Firestore_RunQueryClient interface {
4150	Recv() (*RunQueryResponse, error)
4151	grpc.ClientStream
4152}
4153
4154type firestoreRunQueryClient struct {
4155	grpc.ClientStream
4156}
4157
4158func (x *firestoreRunQueryClient) Recv() (*RunQueryResponse, error) {
4159	m := new(RunQueryResponse)
4160	if err := x.ClientStream.RecvMsg(m); err != nil {
4161		return nil, err
4162	}
4163	return m, nil
4164}
4165
4166func (c *firestoreClient) PartitionQuery(ctx context.Context, in *PartitionQueryRequest, opts ...grpc.CallOption) (*PartitionQueryResponse, error) {
4167	out := new(PartitionQueryResponse)
4168	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/PartitionQuery", in, out, opts...)
4169	if err != nil {
4170		return nil, err
4171	}
4172	return out, nil
4173}
4174
4175func (c *firestoreClient) Write(ctx context.Context, opts ...grpc.CallOption) (Firestore_WriteClient, error) {
4176	stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[2], "/google.firestore.v1.Firestore/Write", opts...)
4177	if err != nil {
4178		return nil, err
4179	}
4180	x := &firestoreWriteClient{stream}
4181	return x, nil
4182}
4183
4184type Firestore_WriteClient interface {
4185	Send(*WriteRequest) error
4186	Recv() (*WriteResponse, error)
4187	grpc.ClientStream
4188}
4189
4190type firestoreWriteClient struct {
4191	grpc.ClientStream
4192}
4193
4194func (x *firestoreWriteClient) Send(m *WriteRequest) error {
4195	return x.ClientStream.SendMsg(m)
4196}
4197
4198func (x *firestoreWriteClient) Recv() (*WriteResponse, error) {
4199	m := new(WriteResponse)
4200	if err := x.ClientStream.RecvMsg(m); err != nil {
4201		return nil, err
4202	}
4203	return m, nil
4204}
4205
4206func (c *firestoreClient) Listen(ctx context.Context, opts ...grpc.CallOption) (Firestore_ListenClient, error) {
4207	stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[3], "/google.firestore.v1.Firestore/Listen", opts...)
4208	if err != nil {
4209		return nil, err
4210	}
4211	x := &firestoreListenClient{stream}
4212	return x, nil
4213}
4214
4215type Firestore_ListenClient interface {
4216	Send(*ListenRequest) error
4217	Recv() (*ListenResponse, error)
4218	grpc.ClientStream
4219}
4220
4221type firestoreListenClient struct {
4222	grpc.ClientStream
4223}
4224
4225func (x *firestoreListenClient) Send(m *ListenRequest) error {
4226	return x.ClientStream.SendMsg(m)
4227}
4228
4229func (x *firestoreListenClient) Recv() (*ListenResponse, error) {
4230	m := new(ListenResponse)
4231	if err := x.ClientStream.RecvMsg(m); err != nil {
4232		return nil, err
4233	}
4234	return m, nil
4235}
4236
4237func (c *firestoreClient) ListCollectionIds(ctx context.Context, in *ListCollectionIdsRequest, opts ...grpc.CallOption) (*ListCollectionIdsResponse, error) {
4238	out := new(ListCollectionIdsResponse)
4239	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/ListCollectionIds", in, out, opts...)
4240	if err != nil {
4241		return nil, err
4242	}
4243	return out, nil
4244}
4245
4246func (c *firestoreClient) BatchWrite(ctx context.Context, in *BatchWriteRequest, opts ...grpc.CallOption) (*BatchWriteResponse, error) {
4247	out := new(BatchWriteResponse)
4248	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/BatchWrite", in, out, opts...)
4249	if err != nil {
4250		return nil, err
4251	}
4252	return out, nil
4253}
4254
4255func (c *firestoreClient) CreateDocument(ctx context.Context, in *CreateDocumentRequest, opts ...grpc.CallOption) (*Document, error) {
4256	out := new(Document)
4257	err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/CreateDocument", in, out, opts...)
4258	if err != nil {
4259		return nil, err
4260	}
4261	return out, nil
4262}
4263
4264// FirestoreServer is the server API for Firestore service.
4265type FirestoreServer interface {
4266	// Gets a single document.
4267	GetDocument(context.Context, *GetDocumentRequest) (*Document, error)
4268	// Lists documents.
4269	ListDocuments(context.Context, *ListDocumentsRequest) (*ListDocumentsResponse, error)
4270	// Updates or inserts a document.
4271	UpdateDocument(context.Context, *UpdateDocumentRequest) (*Document, error)
4272	// Deletes a document.
4273	DeleteDocument(context.Context, *DeleteDocumentRequest) (*emptypb.Empty, error)
4274	// Gets multiple documents.
4275	//
4276	// Documents returned by this method are not guaranteed to be returned in the
4277	// same order that they were requested.
4278	BatchGetDocuments(*BatchGetDocumentsRequest, Firestore_BatchGetDocumentsServer) error
4279	// Starts a new transaction.
4280	BeginTransaction(context.Context, *BeginTransactionRequest) (*BeginTransactionResponse, error)
4281	// Commits a transaction, while optionally updating documents.
4282	Commit(context.Context, *CommitRequest) (*CommitResponse, error)
4283	// Rolls back a transaction.
4284	Rollback(context.Context, *RollbackRequest) (*emptypb.Empty, error)
4285	// Runs a query.
4286	RunQuery(*RunQueryRequest, Firestore_RunQueryServer) error
4287	// Partitions a query by returning partition cursors that can be used to run
4288	// the query in parallel. The returned partition cursors are split points that
4289	// can be used by RunQuery as starting/end points for the query results.
4290	PartitionQuery(context.Context, *PartitionQueryRequest) (*PartitionQueryResponse, error)
4291	// Streams batches of document updates and deletes, in order.
4292	Write(Firestore_WriteServer) error
4293	// Listens to changes.
4294	Listen(Firestore_ListenServer) error
4295	// Lists all the collection IDs underneath a document.
4296	ListCollectionIds(context.Context, *ListCollectionIdsRequest) (*ListCollectionIdsResponse, error)
4297	// Applies a batch of write operations.
4298	//
4299	// The BatchWrite method does not apply the write operations atomically
4300	// and can apply them out of order. Method does not allow more than one write
4301	// per document. Each write succeeds or fails independently. See the
4302	// [BatchWriteResponse][google.firestore.v1.BatchWriteResponse] for the success status of each write.
4303	//
4304	// If you require an atomically applied set of writes, use
4305	// [Commit][google.firestore.v1.Firestore.Commit] instead.
4306	BatchWrite(context.Context, *BatchWriteRequest) (*BatchWriteResponse, error)
4307	// Creates a new document.
4308	CreateDocument(context.Context, *CreateDocumentRequest) (*Document, error)
4309}
4310
4311// UnimplementedFirestoreServer can be embedded to have forward compatible implementations.
4312type UnimplementedFirestoreServer struct {
4313}
4314
4315func (*UnimplementedFirestoreServer) GetDocument(context.Context, *GetDocumentRequest) (*Document, error) {
4316	return nil, status1.Errorf(codes.Unimplemented, "method GetDocument not implemented")
4317}
4318func (*UnimplementedFirestoreServer) ListDocuments(context.Context, *ListDocumentsRequest) (*ListDocumentsResponse, error) {
4319	return nil, status1.Errorf(codes.Unimplemented, "method ListDocuments not implemented")
4320}
4321func (*UnimplementedFirestoreServer) UpdateDocument(context.Context, *UpdateDocumentRequest) (*Document, error) {
4322	return nil, status1.Errorf(codes.Unimplemented, "method UpdateDocument not implemented")
4323}
4324func (*UnimplementedFirestoreServer) DeleteDocument(context.Context, *DeleteDocumentRequest) (*emptypb.Empty, error) {
4325	return nil, status1.Errorf(codes.Unimplemented, "method DeleteDocument not implemented")
4326}
4327func (*UnimplementedFirestoreServer) BatchGetDocuments(*BatchGetDocumentsRequest, Firestore_BatchGetDocumentsServer) error {
4328	return status1.Errorf(codes.Unimplemented, "method BatchGetDocuments not implemented")
4329}
4330func (*UnimplementedFirestoreServer) BeginTransaction(context.Context, *BeginTransactionRequest) (*BeginTransactionResponse, error) {
4331	return nil, status1.Errorf(codes.Unimplemented, "method BeginTransaction not implemented")
4332}
4333func (*UnimplementedFirestoreServer) Commit(context.Context, *CommitRequest) (*CommitResponse, error) {
4334	return nil, status1.Errorf(codes.Unimplemented, "method Commit not implemented")
4335}
4336func (*UnimplementedFirestoreServer) Rollback(context.Context, *RollbackRequest) (*emptypb.Empty, error) {
4337	return nil, status1.Errorf(codes.Unimplemented, "method Rollback not implemented")
4338}
4339func (*UnimplementedFirestoreServer) RunQuery(*RunQueryRequest, Firestore_RunQueryServer) error {
4340	return status1.Errorf(codes.Unimplemented, "method RunQuery not implemented")
4341}
4342func (*UnimplementedFirestoreServer) PartitionQuery(context.Context, *PartitionQueryRequest) (*PartitionQueryResponse, error) {
4343	return nil, status1.Errorf(codes.Unimplemented, "method PartitionQuery not implemented")
4344}
4345func (*UnimplementedFirestoreServer) Write(Firestore_WriteServer) error {
4346	return status1.Errorf(codes.Unimplemented, "method Write not implemented")
4347}
4348func (*UnimplementedFirestoreServer) Listen(Firestore_ListenServer) error {
4349	return status1.Errorf(codes.Unimplemented, "method Listen not implemented")
4350}
4351func (*UnimplementedFirestoreServer) ListCollectionIds(context.Context, *ListCollectionIdsRequest) (*ListCollectionIdsResponse, error) {
4352	return nil, status1.Errorf(codes.Unimplemented, "method ListCollectionIds not implemented")
4353}
4354func (*UnimplementedFirestoreServer) BatchWrite(context.Context, *BatchWriteRequest) (*BatchWriteResponse, error) {
4355	return nil, status1.Errorf(codes.Unimplemented, "method BatchWrite not implemented")
4356}
4357func (*UnimplementedFirestoreServer) CreateDocument(context.Context, *CreateDocumentRequest) (*Document, error) {
4358	return nil, status1.Errorf(codes.Unimplemented, "method CreateDocument not implemented")
4359}
4360
4361func RegisterFirestoreServer(s *grpc.Server, srv FirestoreServer) {
4362	s.RegisterService(&_Firestore_serviceDesc, srv)
4363}
4364
4365func _Firestore_GetDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4366	in := new(GetDocumentRequest)
4367	if err := dec(in); err != nil {
4368		return nil, err
4369	}
4370	if interceptor == nil {
4371		return srv.(FirestoreServer).GetDocument(ctx, in)
4372	}
4373	info := &grpc.UnaryServerInfo{
4374		Server:     srv,
4375		FullMethod: "/google.firestore.v1.Firestore/GetDocument",
4376	}
4377	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4378		return srv.(FirestoreServer).GetDocument(ctx, req.(*GetDocumentRequest))
4379	}
4380	return interceptor(ctx, in, info, handler)
4381}
4382
4383func _Firestore_ListDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4384	in := new(ListDocumentsRequest)
4385	if err := dec(in); err != nil {
4386		return nil, err
4387	}
4388	if interceptor == nil {
4389		return srv.(FirestoreServer).ListDocuments(ctx, in)
4390	}
4391	info := &grpc.UnaryServerInfo{
4392		Server:     srv,
4393		FullMethod: "/google.firestore.v1.Firestore/ListDocuments",
4394	}
4395	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4396		return srv.(FirestoreServer).ListDocuments(ctx, req.(*ListDocumentsRequest))
4397	}
4398	return interceptor(ctx, in, info, handler)
4399}
4400
4401func _Firestore_UpdateDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4402	in := new(UpdateDocumentRequest)
4403	if err := dec(in); err != nil {
4404		return nil, err
4405	}
4406	if interceptor == nil {
4407		return srv.(FirestoreServer).UpdateDocument(ctx, in)
4408	}
4409	info := &grpc.UnaryServerInfo{
4410		Server:     srv,
4411		FullMethod: "/google.firestore.v1.Firestore/UpdateDocument",
4412	}
4413	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4414		return srv.(FirestoreServer).UpdateDocument(ctx, req.(*UpdateDocumentRequest))
4415	}
4416	return interceptor(ctx, in, info, handler)
4417}
4418
4419func _Firestore_DeleteDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4420	in := new(DeleteDocumentRequest)
4421	if err := dec(in); err != nil {
4422		return nil, err
4423	}
4424	if interceptor == nil {
4425		return srv.(FirestoreServer).DeleteDocument(ctx, in)
4426	}
4427	info := &grpc.UnaryServerInfo{
4428		Server:     srv,
4429		FullMethod: "/google.firestore.v1.Firestore/DeleteDocument",
4430	}
4431	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4432		return srv.(FirestoreServer).DeleteDocument(ctx, req.(*DeleteDocumentRequest))
4433	}
4434	return interceptor(ctx, in, info, handler)
4435}
4436
4437func _Firestore_BatchGetDocuments_Handler(srv interface{}, stream grpc.ServerStream) error {
4438	m := new(BatchGetDocumentsRequest)
4439	if err := stream.RecvMsg(m); err != nil {
4440		return err
4441	}
4442	return srv.(FirestoreServer).BatchGetDocuments(m, &firestoreBatchGetDocumentsServer{stream})
4443}
4444
4445type Firestore_BatchGetDocumentsServer interface {
4446	Send(*BatchGetDocumentsResponse) error
4447	grpc.ServerStream
4448}
4449
4450type firestoreBatchGetDocumentsServer struct {
4451	grpc.ServerStream
4452}
4453
4454func (x *firestoreBatchGetDocumentsServer) Send(m *BatchGetDocumentsResponse) error {
4455	return x.ServerStream.SendMsg(m)
4456}
4457
4458func _Firestore_BeginTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4459	in := new(BeginTransactionRequest)
4460	if err := dec(in); err != nil {
4461		return nil, err
4462	}
4463	if interceptor == nil {
4464		return srv.(FirestoreServer).BeginTransaction(ctx, in)
4465	}
4466	info := &grpc.UnaryServerInfo{
4467		Server:     srv,
4468		FullMethod: "/google.firestore.v1.Firestore/BeginTransaction",
4469	}
4470	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4471		return srv.(FirestoreServer).BeginTransaction(ctx, req.(*BeginTransactionRequest))
4472	}
4473	return interceptor(ctx, in, info, handler)
4474}
4475
4476func _Firestore_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4477	in := new(CommitRequest)
4478	if err := dec(in); err != nil {
4479		return nil, err
4480	}
4481	if interceptor == nil {
4482		return srv.(FirestoreServer).Commit(ctx, in)
4483	}
4484	info := &grpc.UnaryServerInfo{
4485		Server:     srv,
4486		FullMethod: "/google.firestore.v1.Firestore/Commit",
4487	}
4488	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4489		return srv.(FirestoreServer).Commit(ctx, req.(*CommitRequest))
4490	}
4491	return interceptor(ctx, in, info, handler)
4492}
4493
4494func _Firestore_Rollback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4495	in := new(RollbackRequest)
4496	if err := dec(in); err != nil {
4497		return nil, err
4498	}
4499	if interceptor == nil {
4500		return srv.(FirestoreServer).Rollback(ctx, in)
4501	}
4502	info := &grpc.UnaryServerInfo{
4503		Server:     srv,
4504		FullMethod: "/google.firestore.v1.Firestore/Rollback",
4505	}
4506	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4507		return srv.(FirestoreServer).Rollback(ctx, req.(*RollbackRequest))
4508	}
4509	return interceptor(ctx, in, info, handler)
4510}
4511
4512func _Firestore_RunQuery_Handler(srv interface{}, stream grpc.ServerStream) error {
4513	m := new(RunQueryRequest)
4514	if err := stream.RecvMsg(m); err != nil {
4515		return err
4516	}
4517	return srv.(FirestoreServer).RunQuery(m, &firestoreRunQueryServer{stream})
4518}
4519
4520type Firestore_RunQueryServer interface {
4521	Send(*RunQueryResponse) error
4522	grpc.ServerStream
4523}
4524
4525type firestoreRunQueryServer struct {
4526	grpc.ServerStream
4527}
4528
4529func (x *firestoreRunQueryServer) Send(m *RunQueryResponse) error {
4530	return x.ServerStream.SendMsg(m)
4531}
4532
4533func _Firestore_PartitionQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4534	in := new(PartitionQueryRequest)
4535	if err := dec(in); err != nil {
4536		return nil, err
4537	}
4538	if interceptor == nil {
4539		return srv.(FirestoreServer).PartitionQuery(ctx, in)
4540	}
4541	info := &grpc.UnaryServerInfo{
4542		Server:     srv,
4543		FullMethod: "/google.firestore.v1.Firestore/PartitionQuery",
4544	}
4545	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4546		return srv.(FirestoreServer).PartitionQuery(ctx, req.(*PartitionQueryRequest))
4547	}
4548	return interceptor(ctx, in, info, handler)
4549}
4550
4551func _Firestore_Write_Handler(srv interface{}, stream grpc.ServerStream) error {
4552	return srv.(FirestoreServer).Write(&firestoreWriteServer{stream})
4553}
4554
4555type Firestore_WriteServer interface {
4556	Send(*WriteResponse) error
4557	Recv() (*WriteRequest, error)
4558	grpc.ServerStream
4559}
4560
4561type firestoreWriteServer struct {
4562	grpc.ServerStream
4563}
4564
4565func (x *firestoreWriteServer) Send(m *WriteResponse) error {
4566	return x.ServerStream.SendMsg(m)
4567}
4568
4569func (x *firestoreWriteServer) Recv() (*WriteRequest, error) {
4570	m := new(WriteRequest)
4571	if err := x.ServerStream.RecvMsg(m); err != nil {
4572		return nil, err
4573	}
4574	return m, nil
4575}
4576
4577func _Firestore_Listen_Handler(srv interface{}, stream grpc.ServerStream) error {
4578	return srv.(FirestoreServer).Listen(&firestoreListenServer{stream})
4579}
4580
4581type Firestore_ListenServer interface {
4582	Send(*ListenResponse) error
4583	Recv() (*ListenRequest, error)
4584	grpc.ServerStream
4585}
4586
4587type firestoreListenServer struct {
4588	grpc.ServerStream
4589}
4590
4591func (x *firestoreListenServer) Send(m *ListenResponse) error {
4592	return x.ServerStream.SendMsg(m)
4593}
4594
4595func (x *firestoreListenServer) Recv() (*ListenRequest, error) {
4596	m := new(ListenRequest)
4597	if err := x.ServerStream.RecvMsg(m); err != nil {
4598		return nil, err
4599	}
4600	return m, nil
4601}
4602
4603func _Firestore_ListCollectionIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4604	in := new(ListCollectionIdsRequest)
4605	if err := dec(in); err != nil {
4606		return nil, err
4607	}
4608	if interceptor == nil {
4609		return srv.(FirestoreServer).ListCollectionIds(ctx, in)
4610	}
4611	info := &grpc.UnaryServerInfo{
4612		Server:     srv,
4613		FullMethod: "/google.firestore.v1.Firestore/ListCollectionIds",
4614	}
4615	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4616		return srv.(FirestoreServer).ListCollectionIds(ctx, req.(*ListCollectionIdsRequest))
4617	}
4618	return interceptor(ctx, in, info, handler)
4619}
4620
4621func _Firestore_BatchWrite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4622	in := new(BatchWriteRequest)
4623	if err := dec(in); err != nil {
4624		return nil, err
4625	}
4626	if interceptor == nil {
4627		return srv.(FirestoreServer).BatchWrite(ctx, in)
4628	}
4629	info := &grpc.UnaryServerInfo{
4630		Server:     srv,
4631		FullMethod: "/google.firestore.v1.Firestore/BatchWrite",
4632	}
4633	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4634		return srv.(FirestoreServer).BatchWrite(ctx, req.(*BatchWriteRequest))
4635	}
4636	return interceptor(ctx, in, info, handler)
4637}
4638
4639func _Firestore_CreateDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4640	in := new(CreateDocumentRequest)
4641	if err := dec(in); err != nil {
4642		return nil, err
4643	}
4644	if interceptor == nil {
4645		return srv.(FirestoreServer).CreateDocument(ctx, in)
4646	}
4647	info := &grpc.UnaryServerInfo{
4648		Server:     srv,
4649		FullMethod: "/google.firestore.v1.Firestore/CreateDocument",
4650	}
4651	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4652		return srv.(FirestoreServer).CreateDocument(ctx, req.(*CreateDocumentRequest))
4653	}
4654	return interceptor(ctx, in, info, handler)
4655}
4656
4657var _Firestore_serviceDesc = grpc.ServiceDesc{
4658	ServiceName: "google.firestore.v1.Firestore",
4659	HandlerType: (*FirestoreServer)(nil),
4660	Methods: []grpc.MethodDesc{
4661		{
4662			MethodName: "GetDocument",
4663			Handler:    _Firestore_GetDocument_Handler,
4664		},
4665		{
4666			MethodName: "ListDocuments",
4667			Handler:    _Firestore_ListDocuments_Handler,
4668		},
4669		{
4670			MethodName: "UpdateDocument",
4671			Handler:    _Firestore_UpdateDocument_Handler,
4672		},
4673		{
4674			MethodName: "DeleteDocument",
4675			Handler:    _Firestore_DeleteDocument_Handler,
4676		},
4677		{
4678			MethodName: "BeginTransaction",
4679			Handler:    _Firestore_BeginTransaction_Handler,
4680		},
4681		{
4682			MethodName: "Commit",
4683			Handler:    _Firestore_Commit_Handler,
4684		},
4685		{
4686			MethodName: "Rollback",
4687			Handler:    _Firestore_Rollback_Handler,
4688		},
4689		{
4690			MethodName: "PartitionQuery",
4691			Handler:    _Firestore_PartitionQuery_Handler,
4692		},
4693		{
4694			MethodName: "ListCollectionIds",
4695			Handler:    _Firestore_ListCollectionIds_Handler,
4696		},
4697		{
4698			MethodName: "BatchWrite",
4699			Handler:    _Firestore_BatchWrite_Handler,
4700		},
4701		{
4702			MethodName: "CreateDocument",
4703			Handler:    _Firestore_CreateDocument_Handler,
4704		},
4705	},
4706	Streams: []grpc.StreamDesc{
4707		{
4708			StreamName:    "BatchGetDocuments",
4709			Handler:       _Firestore_BatchGetDocuments_Handler,
4710			ServerStreams: true,
4711		},
4712		{
4713			StreamName:    "RunQuery",
4714			Handler:       _Firestore_RunQuery_Handler,
4715			ServerStreams: true,
4716		},
4717		{
4718			StreamName:    "Write",
4719			Handler:       _Firestore_Write_Handler,
4720			ServerStreams: true,
4721			ClientStreams: true,
4722		},
4723		{
4724			StreamName:    "Listen",
4725			Handler:       _Firestore_Listen_Handler,
4726			ServerStreams: true,
4727			ClientStreams: true,
4728		},
4729	},
4730	Metadata: "google/firestore/v1/firestore.proto",
4731}
4732