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