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