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