1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.22.0 18// protoc v3.11.2 19// source: google/pubsub/v1/pubsub.proto 20 21package pubsub 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 proto "github.com/golang/protobuf/proto" 29 duration "github.com/golang/protobuf/ptypes/duration" 30 empty "github.com/golang/protobuf/ptypes/empty" 31 timestamp "github.com/golang/protobuf/ptypes/timestamp" 32 _ "google.golang.org/genproto/googleapis/api/annotations" 33 field_mask "google.golang.org/genproto/protobuf/field_mask" 34 grpc "google.golang.org/grpc" 35 codes "google.golang.org/grpc/codes" 36 status "google.golang.org/grpc/status" 37 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 38 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 39) 40 41const ( 42 // Verify that this generated code is sufficiently up-to-date. 43 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 44 // Verify that runtime/protoimpl is sufficiently up-to-date. 45 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 46) 47 48// This is a compile-time assertion that a sufficiently up-to-date version 49// of the legacy proto package is being used. 50const _ = proto.ProtoPackageIsVersion4 51 52type MessageStoragePolicy struct { 53 state protoimpl.MessageState 54 sizeCache protoimpl.SizeCache 55 unknownFields protoimpl.UnknownFields 56 57 // A list of IDs of GCP regions where messages that are published to the topic 58 // may be persisted in storage. Messages published by publishers running in 59 // non-allowed GCP regions (or running outside of GCP altogether) will be 60 // routed for storage in one of the allowed regions. An empty list means that 61 // no regions are allowed, and is not a valid configuration. 62 AllowedPersistenceRegions []string `protobuf:"bytes,1,rep,name=allowed_persistence_regions,json=allowedPersistenceRegions,proto3" json:"allowed_persistence_regions,omitempty"` 63} 64 65func (x *MessageStoragePolicy) Reset() { 66 *x = MessageStoragePolicy{} 67 if protoimpl.UnsafeEnabled { 68 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[0] 69 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 70 ms.StoreMessageInfo(mi) 71 } 72} 73 74func (x *MessageStoragePolicy) String() string { 75 return protoimpl.X.MessageStringOf(x) 76} 77 78func (*MessageStoragePolicy) ProtoMessage() {} 79 80func (x *MessageStoragePolicy) ProtoReflect() protoreflect.Message { 81 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[0] 82 if protoimpl.UnsafeEnabled && x != nil { 83 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 84 if ms.LoadMessageInfo() == nil { 85 ms.StoreMessageInfo(mi) 86 } 87 return ms 88 } 89 return mi.MessageOf(x) 90} 91 92// Deprecated: Use MessageStoragePolicy.ProtoReflect.Descriptor instead. 93func (*MessageStoragePolicy) Descriptor() ([]byte, []int) { 94 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{0} 95} 96 97func (x *MessageStoragePolicy) GetAllowedPersistenceRegions() []string { 98 if x != nil { 99 return x.AllowedPersistenceRegions 100 } 101 return nil 102} 103 104// A topic resource. 105type Topic struct { 106 state protoimpl.MessageState 107 sizeCache protoimpl.SizeCache 108 unknownFields protoimpl.UnknownFields 109 110 // Required. The name of the topic. It must have the format 111 // `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, 112 // and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), 113 // underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent 114 // signs (`%`). It must be between 3 and 255 characters in length, and it 115 // must not start with `"goog"`. 116 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 117 // See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and 118 // managing labels</a>. 119 Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 120 // Policy constraining the set of Google Cloud Platform regions where messages 121 // published to the topic may be stored. If not present, then no constraints 122 // are in effect. 123 MessageStoragePolicy *MessageStoragePolicy `protobuf:"bytes,3,opt,name=message_storage_policy,json=messageStoragePolicy,proto3" json:"message_storage_policy,omitempty"` 124 // The resource name of the Cloud KMS CryptoKey to be used to protect access 125 // to messages published on this topic. 126 // 127 // The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`. 128 KmsKeyName string `protobuf:"bytes,5,opt,name=kms_key_name,json=kmsKeyName,proto3" json:"kms_key_name,omitempty"` 129} 130 131func (x *Topic) Reset() { 132 *x = Topic{} 133 if protoimpl.UnsafeEnabled { 134 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[1] 135 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 136 ms.StoreMessageInfo(mi) 137 } 138} 139 140func (x *Topic) String() string { 141 return protoimpl.X.MessageStringOf(x) 142} 143 144func (*Topic) ProtoMessage() {} 145 146func (x *Topic) ProtoReflect() protoreflect.Message { 147 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[1] 148 if protoimpl.UnsafeEnabled && x != nil { 149 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 150 if ms.LoadMessageInfo() == nil { 151 ms.StoreMessageInfo(mi) 152 } 153 return ms 154 } 155 return mi.MessageOf(x) 156} 157 158// Deprecated: Use Topic.ProtoReflect.Descriptor instead. 159func (*Topic) Descriptor() ([]byte, []int) { 160 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{1} 161} 162 163func (x *Topic) GetName() string { 164 if x != nil { 165 return x.Name 166 } 167 return "" 168} 169 170func (x *Topic) GetLabels() map[string]string { 171 if x != nil { 172 return x.Labels 173 } 174 return nil 175} 176 177func (x *Topic) GetMessageStoragePolicy() *MessageStoragePolicy { 178 if x != nil { 179 return x.MessageStoragePolicy 180 } 181 return nil 182} 183 184func (x *Topic) GetKmsKeyName() string { 185 if x != nil { 186 return x.KmsKeyName 187 } 188 return "" 189} 190 191// A message that is published by publishers and consumed by subscribers. The 192// message must contain either a non-empty data field or at least one attribute. 193// Note that client libraries represent this object differently 194// depending on the language. See the corresponding 195// <a href="https://cloud.google.com/pubsub/docs/reference/libraries">client 196// library documentation</a> for more information. See 197// <a href="https://cloud.google.com/pubsub/quotas">Quotas and limits</a> 198// for more information about message limits. 199type PubsubMessage struct { 200 state protoimpl.MessageState 201 sizeCache protoimpl.SizeCache 202 unknownFields protoimpl.UnknownFields 203 204 // The message data field. If this field is empty, the message must contain 205 // at least one attribute. 206 Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` 207 // Attributes for this message. If this field is empty, the message must 208 // contain non-empty data. 209 Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 210 // ID of this message, assigned by the server when the message is published. 211 // Guaranteed to be unique within the topic. This value may be read by a 212 // subscriber that receives a `PubsubMessage` via a `Pull` call or a push 213 // delivery. It must not be populated by the publisher in a `Publish` call. 214 MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` 215 // The time at which the message was published, populated by the server when 216 // it receives the `Publish` call. It must not be populated by the 217 // publisher in a `Publish` call. 218 PublishTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"` 219 // If non-empty, identifies related messages for which publish order should be 220 // respected. If a `Subscription` has `enable_message_ordering` set to `true`, 221 // messages published with the same non-empty `ordering_key` value will be 222 // delivered to subscribers in the order in which they are received by the 223 // Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` 224 // must specify the same `ordering_key` value. 225 // <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This 226 // API might be changed in backward-incompatible ways and is not recommended 227 // for production use. It is not subject to any SLA or deprecation policy. 228 OrderingKey string `protobuf:"bytes,5,opt,name=ordering_key,json=orderingKey,proto3" json:"ordering_key,omitempty"` 229} 230 231func (x *PubsubMessage) Reset() { 232 *x = PubsubMessage{} 233 if protoimpl.UnsafeEnabled { 234 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[2] 235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 236 ms.StoreMessageInfo(mi) 237 } 238} 239 240func (x *PubsubMessage) String() string { 241 return protoimpl.X.MessageStringOf(x) 242} 243 244func (*PubsubMessage) ProtoMessage() {} 245 246func (x *PubsubMessage) ProtoReflect() protoreflect.Message { 247 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[2] 248 if protoimpl.UnsafeEnabled && x != nil { 249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 250 if ms.LoadMessageInfo() == nil { 251 ms.StoreMessageInfo(mi) 252 } 253 return ms 254 } 255 return mi.MessageOf(x) 256} 257 258// Deprecated: Use PubsubMessage.ProtoReflect.Descriptor instead. 259func (*PubsubMessage) Descriptor() ([]byte, []int) { 260 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{2} 261} 262 263func (x *PubsubMessage) GetData() []byte { 264 if x != nil { 265 return x.Data 266 } 267 return nil 268} 269 270func (x *PubsubMessage) GetAttributes() map[string]string { 271 if x != nil { 272 return x.Attributes 273 } 274 return nil 275} 276 277func (x *PubsubMessage) GetMessageId() string { 278 if x != nil { 279 return x.MessageId 280 } 281 return "" 282} 283 284func (x *PubsubMessage) GetPublishTime() *timestamp.Timestamp { 285 if x != nil { 286 return x.PublishTime 287 } 288 return nil 289} 290 291func (x *PubsubMessage) GetOrderingKey() string { 292 if x != nil { 293 return x.OrderingKey 294 } 295 return "" 296} 297 298// Request for the GetTopic method. 299type GetTopicRequest struct { 300 state protoimpl.MessageState 301 sizeCache protoimpl.SizeCache 302 unknownFields protoimpl.UnknownFields 303 304 // Required. The name of the topic to get. 305 // Format is `projects/{project}/topics/{topic}`. 306 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 307} 308 309func (x *GetTopicRequest) Reset() { 310 *x = GetTopicRequest{} 311 if protoimpl.UnsafeEnabled { 312 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[3] 313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 314 ms.StoreMessageInfo(mi) 315 } 316} 317 318func (x *GetTopicRequest) String() string { 319 return protoimpl.X.MessageStringOf(x) 320} 321 322func (*GetTopicRequest) ProtoMessage() {} 323 324func (x *GetTopicRequest) ProtoReflect() protoreflect.Message { 325 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[3] 326 if protoimpl.UnsafeEnabled && x != nil { 327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 328 if ms.LoadMessageInfo() == nil { 329 ms.StoreMessageInfo(mi) 330 } 331 return ms 332 } 333 return mi.MessageOf(x) 334} 335 336// Deprecated: Use GetTopicRequest.ProtoReflect.Descriptor instead. 337func (*GetTopicRequest) Descriptor() ([]byte, []int) { 338 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{3} 339} 340 341func (x *GetTopicRequest) GetTopic() string { 342 if x != nil { 343 return x.Topic 344 } 345 return "" 346} 347 348// Request for the UpdateTopic method. 349type UpdateTopicRequest struct { 350 state protoimpl.MessageState 351 sizeCache protoimpl.SizeCache 352 unknownFields protoimpl.UnknownFields 353 354 // Required. The updated topic object. 355 Topic *Topic `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 356 // Required. Indicates which fields in the provided topic to update. Must be 357 // specified and non-empty. Note that if `update_mask` contains 358 // "message_storage_policy" but the `message_storage_policy` is not set in 359 // the `topic` provided above, then the updated value is determined by the 360 // policy configured at the project or organization level. 361 UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 362} 363 364func (x *UpdateTopicRequest) Reset() { 365 *x = UpdateTopicRequest{} 366 if protoimpl.UnsafeEnabled { 367 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[4] 368 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 369 ms.StoreMessageInfo(mi) 370 } 371} 372 373func (x *UpdateTopicRequest) String() string { 374 return protoimpl.X.MessageStringOf(x) 375} 376 377func (*UpdateTopicRequest) ProtoMessage() {} 378 379func (x *UpdateTopicRequest) ProtoReflect() protoreflect.Message { 380 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[4] 381 if protoimpl.UnsafeEnabled && x != nil { 382 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 383 if ms.LoadMessageInfo() == nil { 384 ms.StoreMessageInfo(mi) 385 } 386 return ms 387 } 388 return mi.MessageOf(x) 389} 390 391// Deprecated: Use UpdateTopicRequest.ProtoReflect.Descriptor instead. 392func (*UpdateTopicRequest) Descriptor() ([]byte, []int) { 393 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{4} 394} 395 396func (x *UpdateTopicRequest) GetTopic() *Topic { 397 if x != nil { 398 return x.Topic 399 } 400 return nil 401} 402 403func (x *UpdateTopicRequest) GetUpdateMask() *field_mask.FieldMask { 404 if x != nil { 405 return x.UpdateMask 406 } 407 return nil 408} 409 410// Request for the Publish method. 411type PublishRequest struct { 412 state protoimpl.MessageState 413 sizeCache protoimpl.SizeCache 414 unknownFields protoimpl.UnknownFields 415 416 // Required. The messages in the request will be published on this topic. 417 // Format is `projects/{project}/topics/{topic}`. 418 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 419 // Required. The messages to publish. 420 Messages []*PubsubMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` 421} 422 423func (x *PublishRequest) Reset() { 424 *x = PublishRequest{} 425 if protoimpl.UnsafeEnabled { 426 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[5] 427 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 428 ms.StoreMessageInfo(mi) 429 } 430} 431 432func (x *PublishRequest) String() string { 433 return protoimpl.X.MessageStringOf(x) 434} 435 436func (*PublishRequest) ProtoMessage() {} 437 438func (x *PublishRequest) ProtoReflect() protoreflect.Message { 439 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[5] 440 if protoimpl.UnsafeEnabled && x != nil { 441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 442 if ms.LoadMessageInfo() == nil { 443 ms.StoreMessageInfo(mi) 444 } 445 return ms 446 } 447 return mi.MessageOf(x) 448} 449 450// Deprecated: Use PublishRequest.ProtoReflect.Descriptor instead. 451func (*PublishRequest) Descriptor() ([]byte, []int) { 452 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{5} 453} 454 455func (x *PublishRequest) GetTopic() string { 456 if x != nil { 457 return x.Topic 458 } 459 return "" 460} 461 462func (x *PublishRequest) GetMessages() []*PubsubMessage { 463 if x != nil { 464 return x.Messages 465 } 466 return nil 467} 468 469// Response for the `Publish` method. 470type PublishResponse struct { 471 state protoimpl.MessageState 472 sizeCache protoimpl.SizeCache 473 unknownFields protoimpl.UnknownFields 474 475 // The server-assigned ID of each published message, in the same order as 476 // the messages in the request. IDs are guaranteed to be unique within 477 // the topic. 478 MessageIds []string `protobuf:"bytes,1,rep,name=message_ids,json=messageIds,proto3" json:"message_ids,omitempty"` 479} 480 481func (x *PublishResponse) Reset() { 482 *x = PublishResponse{} 483 if protoimpl.UnsafeEnabled { 484 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[6] 485 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 486 ms.StoreMessageInfo(mi) 487 } 488} 489 490func (x *PublishResponse) String() string { 491 return protoimpl.X.MessageStringOf(x) 492} 493 494func (*PublishResponse) ProtoMessage() {} 495 496func (x *PublishResponse) ProtoReflect() protoreflect.Message { 497 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[6] 498 if protoimpl.UnsafeEnabled && x != nil { 499 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 500 if ms.LoadMessageInfo() == nil { 501 ms.StoreMessageInfo(mi) 502 } 503 return ms 504 } 505 return mi.MessageOf(x) 506} 507 508// Deprecated: Use PublishResponse.ProtoReflect.Descriptor instead. 509func (*PublishResponse) Descriptor() ([]byte, []int) { 510 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{6} 511} 512 513func (x *PublishResponse) GetMessageIds() []string { 514 if x != nil { 515 return x.MessageIds 516 } 517 return nil 518} 519 520// Request for the `ListTopics` method. 521type ListTopicsRequest struct { 522 state protoimpl.MessageState 523 sizeCache protoimpl.SizeCache 524 unknownFields protoimpl.UnknownFields 525 526 // Required. The name of the project in which to list topics. 527 // Format is `projects/{project-id}`. 528 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 529 // Maximum number of topics to return. 530 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 531 // The value returned by the last `ListTopicsResponse`; indicates that this is 532 // a continuation of a prior `ListTopics` call, and that the system should 533 // return the next page of data. 534 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 535} 536 537func (x *ListTopicsRequest) Reset() { 538 *x = ListTopicsRequest{} 539 if protoimpl.UnsafeEnabled { 540 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[7] 541 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 542 ms.StoreMessageInfo(mi) 543 } 544} 545 546func (x *ListTopicsRequest) String() string { 547 return protoimpl.X.MessageStringOf(x) 548} 549 550func (*ListTopicsRequest) ProtoMessage() {} 551 552func (x *ListTopicsRequest) ProtoReflect() protoreflect.Message { 553 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[7] 554 if protoimpl.UnsafeEnabled && x != nil { 555 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 556 if ms.LoadMessageInfo() == nil { 557 ms.StoreMessageInfo(mi) 558 } 559 return ms 560 } 561 return mi.MessageOf(x) 562} 563 564// Deprecated: Use ListTopicsRequest.ProtoReflect.Descriptor instead. 565func (*ListTopicsRequest) Descriptor() ([]byte, []int) { 566 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{7} 567} 568 569func (x *ListTopicsRequest) GetProject() string { 570 if x != nil { 571 return x.Project 572 } 573 return "" 574} 575 576func (x *ListTopicsRequest) GetPageSize() int32 { 577 if x != nil { 578 return x.PageSize 579 } 580 return 0 581} 582 583func (x *ListTopicsRequest) GetPageToken() string { 584 if x != nil { 585 return x.PageToken 586 } 587 return "" 588} 589 590// Response for the `ListTopics` method. 591type ListTopicsResponse struct { 592 state protoimpl.MessageState 593 sizeCache protoimpl.SizeCache 594 unknownFields protoimpl.UnknownFields 595 596 // The resulting topics. 597 Topics []*Topic `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"` 598 // If not empty, indicates that there may be more topics that match the 599 // request; this value should be passed in a new `ListTopicsRequest`. 600 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 601} 602 603func (x *ListTopicsResponse) Reset() { 604 *x = ListTopicsResponse{} 605 if protoimpl.UnsafeEnabled { 606 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[8] 607 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 608 ms.StoreMessageInfo(mi) 609 } 610} 611 612func (x *ListTopicsResponse) String() string { 613 return protoimpl.X.MessageStringOf(x) 614} 615 616func (*ListTopicsResponse) ProtoMessage() {} 617 618func (x *ListTopicsResponse) ProtoReflect() protoreflect.Message { 619 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[8] 620 if protoimpl.UnsafeEnabled && x != nil { 621 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 622 if ms.LoadMessageInfo() == nil { 623 ms.StoreMessageInfo(mi) 624 } 625 return ms 626 } 627 return mi.MessageOf(x) 628} 629 630// Deprecated: Use ListTopicsResponse.ProtoReflect.Descriptor instead. 631func (*ListTopicsResponse) Descriptor() ([]byte, []int) { 632 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{8} 633} 634 635func (x *ListTopicsResponse) GetTopics() []*Topic { 636 if x != nil { 637 return x.Topics 638 } 639 return nil 640} 641 642func (x *ListTopicsResponse) GetNextPageToken() string { 643 if x != nil { 644 return x.NextPageToken 645 } 646 return "" 647} 648 649// Request for the `ListTopicSubscriptions` method. 650type ListTopicSubscriptionsRequest struct { 651 state protoimpl.MessageState 652 sizeCache protoimpl.SizeCache 653 unknownFields protoimpl.UnknownFields 654 655 // Required. The name of the topic that subscriptions are attached to. 656 // Format is `projects/{project}/topics/{topic}`. 657 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 658 // Maximum number of subscription names to return. 659 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 660 // The value returned by the last `ListTopicSubscriptionsResponse`; indicates 661 // that this is a continuation of a prior `ListTopicSubscriptions` call, and 662 // that the system should return the next page of data. 663 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 664} 665 666func (x *ListTopicSubscriptionsRequest) Reset() { 667 *x = ListTopicSubscriptionsRequest{} 668 if protoimpl.UnsafeEnabled { 669 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[9] 670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 671 ms.StoreMessageInfo(mi) 672 } 673} 674 675func (x *ListTopicSubscriptionsRequest) String() string { 676 return protoimpl.X.MessageStringOf(x) 677} 678 679func (*ListTopicSubscriptionsRequest) ProtoMessage() {} 680 681func (x *ListTopicSubscriptionsRequest) ProtoReflect() protoreflect.Message { 682 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[9] 683 if protoimpl.UnsafeEnabled && x != nil { 684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 685 if ms.LoadMessageInfo() == nil { 686 ms.StoreMessageInfo(mi) 687 } 688 return ms 689 } 690 return mi.MessageOf(x) 691} 692 693// Deprecated: Use ListTopicSubscriptionsRequest.ProtoReflect.Descriptor instead. 694func (*ListTopicSubscriptionsRequest) Descriptor() ([]byte, []int) { 695 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{9} 696} 697 698func (x *ListTopicSubscriptionsRequest) GetTopic() string { 699 if x != nil { 700 return x.Topic 701 } 702 return "" 703} 704 705func (x *ListTopicSubscriptionsRequest) GetPageSize() int32 { 706 if x != nil { 707 return x.PageSize 708 } 709 return 0 710} 711 712func (x *ListTopicSubscriptionsRequest) GetPageToken() string { 713 if x != nil { 714 return x.PageToken 715 } 716 return "" 717} 718 719// Response for the `ListTopicSubscriptions` method. 720type ListTopicSubscriptionsResponse struct { 721 state protoimpl.MessageState 722 sizeCache protoimpl.SizeCache 723 unknownFields protoimpl.UnknownFields 724 725 // The names of the subscriptions that match the request. 726 Subscriptions []string `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"` 727 // If not empty, indicates that there may be more subscriptions that match 728 // the request; this value should be passed in a new 729 // `ListTopicSubscriptionsRequest` to get more subscriptions. 730 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 731} 732 733func (x *ListTopicSubscriptionsResponse) Reset() { 734 *x = ListTopicSubscriptionsResponse{} 735 if protoimpl.UnsafeEnabled { 736 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[10] 737 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 738 ms.StoreMessageInfo(mi) 739 } 740} 741 742func (x *ListTopicSubscriptionsResponse) String() string { 743 return protoimpl.X.MessageStringOf(x) 744} 745 746func (*ListTopicSubscriptionsResponse) ProtoMessage() {} 747 748func (x *ListTopicSubscriptionsResponse) ProtoReflect() protoreflect.Message { 749 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[10] 750 if protoimpl.UnsafeEnabled && x != nil { 751 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 752 if ms.LoadMessageInfo() == nil { 753 ms.StoreMessageInfo(mi) 754 } 755 return ms 756 } 757 return mi.MessageOf(x) 758} 759 760// Deprecated: Use ListTopicSubscriptionsResponse.ProtoReflect.Descriptor instead. 761func (*ListTopicSubscriptionsResponse) Descriptor() ([]byte, []int) { 762 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{10} 763} 764 765func (x *ListTopicSubscriptionsResponse) GetSubscriptions() []string { 766 if x != nil { 767 return x.Subscriptions 768 } 769 return nil 770} 771 772func (x *ListTopicSubscriptionsResponse) GetNextPageToken() string { 773 if x != nil { 774 return x.NextPageToken 775 } 776 return "" 777} 778 779// Request for the `ListTopicSnapshots` method. 780type ListTopicSnapshotsRequest struct { 781 state protoimpl.MessageState 782 sizeCache protoimpl.SizeCache 783 unknownFields protoimpl.UnknownFields 784 785 // Required. The name of the topic that snapshots are attached to. 786 // Format is `projects/{project}/topics/{topic}`. 787 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 788 // Maximum number of snapshot names to return. 789 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 790 // The value returned by the last `ListTopicSnapshotsResponse`; indicates 791 // that this is a continuation of a prior `ListTopicSnapshots` call, and 792 // that the system should return the next page of data. 793 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 794} 795 796func (x *ListTopicSnapshotsRequest) Reset() { 797 *x = ListTopicSnapshotsRequest{} 798 if protoimpl.UnsafeEnabled { 799 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[11] 800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 801 ms.StoreMessageInfo(mi) 802 } 803} 804 805func (x *ListTopicSnapshotsRequest) String() string { 806 return protoimpl.X.MessageStringOf(x) 807} 808 809func (*ListTopicSnapshotsRequest) ProtoMessage() {} 810 811func (x *ListTopicSnapshotsRequest) ProtoReflect() protoreflect.Message { 812 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[11] 813 if protoimpl.UnsafeEnabled && x != nil { 814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 815 if ms.LoadMessageInfo() == nil { 816 ms.StoreMessageInfo(mi) 817 } 818 return ms 819 } 820 return mi.MessageOf(x) 821} 822 823// Deprecated: Use ListTopicSnapshotsRequest.ProtoReflect.Descriptor instead. 824func (*ListTopicSnapshotsRequest) Descriptor() ([]byte, []int) { 825 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{11} 826} 827 828func (x *ListTopicSnapshotsRequest) GetTopic() string { 829 if x != nil { 830 return x.Topic 831 } 832 return "" 833} 834 835func (x *ListTopicSnapshotsRequest) GetPageSize() int32 { 836 if x != nil { 837 return x.PageSize 838 } 839 return 0 840} 841 842func (x *ListTopicSnapshotsRequest) GetPageToken() string { 843 if x != nil { 844 return x.PageToken 845 } 846 return "" 847} 848 849// Response for the `ListTopicSnapshots` method. 850type ListTopicSnapshotsResponse struct { 851 state protoimpl.MessageState 852 sizeCache protoimpl.SizeCache 853 unknownFields protoimpl.UnknownFields 854 855 // The names of the snapshots that match the request. 856 Snapshots []string `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` 857 // If not empty, indicates that there may be more snapshots that match 858 // the request; this value should be passed in a new 859 // `ListTopicSnapshotsRequest` to get more snapshots. 860 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 861} 862 863func (x *ListTopicSnapshotsResponse) Reset() { 864 *x = ListTopicSnapshotsResponse{} 865 if protoimpl.UnsafeEnabled { 866 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[12] 867 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 868 ms.StoreMessageInfo(mi) 869 } 870} 871 872func (x *ListTopicSnapshotsResponse) String() string { 873 return protoimpl.X.MessageStringOf(x) 874} 875 876func (*ListTopicSnapshotsResponse) ProtoMessage() {} 877 878func (x *ListTopicSnapshotsResponse) ProtoReflect() protoreflect.Message { 879 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[12] 880 if protoimpl.UnsafeEnabled && x != nil { 881 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 882 if ms.LoadMessageInfo() == nil { 883 ms.StoreMessageInfo(mi) 884 } 885 return ms 886 } 887 return mi.MessageOf(x) 888} 889 890// Deprecated: Use ListTopicSnapshotsResponse.ProtoReflect.Descriptor instead. 891func (*ListTopicSnapshotsResponse) Descriptor() ([]byte, []int) { 892 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{12} 893} 894 895func (x *ListTopicSnapshotsResponse) GetSnapshots() []string { 896 if x != nil { 897 return x.Snapshots 898 } 899 return nil 900} 901 902func (x *ListTopicSnapshotsResponse) GetNextPageToken() string { 903 if x != nil { 904 return x.NextPageToken 905 } 906 return "" 907} 908 909// Request for the `DeleteTopic` method. 910type DeleteTopicRequest struct { 911 state protoimpl.MessageState 912 sizeCache protoimpl.SizeCache 913 unknownFields protoimpl.UnknownFields 914 915 // Required. Name of the topic to delete. 916 // Format is `projects/{project}/topics/{topic}`. 917 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 918} 919 920func (x *DeleteTopicRequest) Reset() { 921 *x = DeleteTopicRequest{} 922 if protoimpl.UnsafeEnabled { 923 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[13] 924 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 925 ms.StoreMessageInfo(mi) 926 } 927} 928 929func (x *DeleteTopicRequest) String() string { 930 return protoimpl.X.MessageStringOf(x) 931} 932 933func (*DeleteTopicRequest) ProtoMessage() {} 934 935func (x *DeleteTopicRequest) ProtoReflect() protoreflect.Message { 936 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[13] 937 if protoimpl.UnsafeEnabled && x != nil { 938 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 939 if ms.LoadMessageInfo() == nil { 940 ms.StoreMessageInfo(mi) 941 } 942 return ms 943 } 944 return mi.MessageOf(x) 945} 946 947// Deprecated: Use DeleteTopicRequest.ProtoReflect.Descriptor instead. 948func (*DeleteTopicRequest) Descriptor() ([]byte, []int) { 949 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{13} 950} 951 952func (x *DeleteTopicRequest) GetTopic() string { 953 if x != nil { 954 return x.Topic 955 } 956 return "" 957} 958 959// A subscription resource. 960type Subscription struct { 961 state protoimpl.MessageState 962 sizeCache protoimpl.SizeCache 963 unknownFields protoimpl.UnknownFields 964 965 // Required. The name of the subscription. It must have the format 966 // `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must 967 // start with a letter, and contain only letters (`[A-Za-z]`), numbers 968 // (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), 969 // plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters 970 // in length, and it must not start with `"goog"`. 971 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 972 // Required. The name of the topic from which this subscription is receiving 973 // messages. Format is `projects/{project}/topics/{topic}`. The value of this 974 // field will be `_deleted-topic_` if the topic has been deleted. 975 Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` 976 // If push delivery is used with this subscription, this field is 977 // used to configure it. An empty `pushConfig` signifies that the subscriber 978 // will pull and ack messages using API methods. 979 PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"` 980 // The approximate amount of time (on a best-effort basis) Pub/Sub waits for 981 // the subscriber to acknowledge receipt before resending the message. In the 982 // interval after the message is delivered and before it is acknowledged, it 983 // is considered to be <i>outstanding</i>. During that time period, the 984 // message will not be redelivered (on a best-effort basis). 985 // 986 // For pull subscriptions, this value is used as the initial value for the ack 987 // deadline. To override this value for a given message, call 988 // `ModifyAckDeadline` with the corresponding `ack_id` if using 989 // non-streaming pull or send the `ack_id` in a 990 // `StreamingModifyAckDeadlineRequest` if using streaming pull. 991 // The minimum custom deadline you can specify is 10 seconds. 992 // The maximum custom deadline you can specify is 600 seconds (10 minutes). 993 // If this parameter is 0, a default value of 10 seconds is used. 994 // 995 // For push delivery, this value is also used to set the request timeout for 996 // the call to the push endpoint. 997 // 998 // If the subscriber never acknowledges the message, the Pub/Sub 999 // system will eventually redeliver the message. 1000 AckDeadlineSeconds int32 `protobuf:"varint,5,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"` 1001 // Indicates whether to retain acknowledged messages. If true, then 1002 // messages are not expunged from the subscription's backlog, even if they are 1003 // acknowledged, until they fall out of the `message_retention_duration` 1004 // window. This must be true if you would like to 1005 // <a 1006 // href="https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time"> 1007 // Seek to a timestamp</a>. 1008 RetainAckedMessages bool `protobuf:"varint,7,opt,name=retain_acked_messages,json=retainAckedMessages,proto3" json:"retain_acked_messages,omitempty"` 1009 // How long to retain unacknowledged messages in the subscription's backlog, 1010 // from the moment a message is published. 1011 // If `retain_acked_messages` is true, then this also configures the retention 1012 // of acknowledged messages, and thus configures how far back in time a `Seek` 1013 // can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 1014 // minutes. 1015 MessageRetentionDuration *duration.Duration `protobuf:"bytes,8,opt,name=message_retention_duration,json=messageRetentionDuration,proto3" json:"message_retention_duration,omitempty"` 1016 // See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and 1017 // managing labels</a>. 1018 Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1019 // If true, messages published with the same `ordering_key` in `PubsubMessage` 1020 // will be delivered to the subscribers in the order in which they 1021 // are received by the Pub/Sub system. Otherwise, they may be delivered in 1022 // any order. 1023 // <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This 1024 // API might be changed in backward-incompatible ways and is not recommended 1025 // for production use. It is not subject to any SLA or deprecation policy. 1026 EnableMessageOrdering bool `protobuf:"varint,10,opt,name=enable_message_ordering,json=enableMessageOrdering,proto3" json:"enable_message_ordering,omitempty"` 1027 // A policy that specifies the conditions for this subscription's expiration. 1028 // A subscription is considered active as long as any connected subscriber is 1029 // successfully consuming messages from the subscription or is issuing 1030 // operations on the subscription. If `expiration_policy` is not set, a 1031 // *default policy* with `ttl` of 31 days will be used. The minimum allowed 1032 // value for `expiration_policy.ttl` is 1 day. 1033 ExpirationPolicy *ExpirationPolicy `protobuf:"bytes,11,opt,name=expiration_policy,json=expirationPolicy,proto3" json:"expiration_policy,omitempty"` 1034 // An expression written in the Cloud Pub/Sub filter language. If non-empty, 1035 // then only `PubsubMessage`s whose `attributes` field matches the filter are 1036 // delivered on this subscription. If empty, then no messages are filtered 1037 // out. 1038 // <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This 1039 // API might be changed in backward-incompatible ways and is not recommended 1040 // for production use. It is not subject to any SLA or deprecation policy. 1041 Filter string `protobuf:"bytes,12,opt,name=filter,proto3" json:"filter,omitempty"` 1042 // A policy that specifies the conditions for dead lettering messages in 1043 // this subscription. If dead_letter_policy is not set, dead lettering 1044 // is disabled. 1045 // 1046 // The Cloud Pub/Sub service account associated with this subscriptions's 1047 // parent project (i.e., 1048 // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have 1049 // permission to Acknowledge() messages on this subscription. 1050 DeadLetterPolicy *DeadLetterPolicy `protobuf:"bytes,13,opt,name=dead_letter_policy,json=deadLetterPolicy,proto3" json:"dead_letter_policy,omitempty"` 1051 // A policy that specifies how Cloud Pub/Sub retries message delivery for this 1052 // subscription. 1053 // 1054 // If not set, the default retry policy is applied. This generally implies 1055 // that messages will be retried as soon as possible for healthy subscribers. 1056 // RetryPolicy will be triggered on NACKs or acknowledgement deadline 1057 // exceeded events for a given message. 1058 // <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible 1059 // ways and is not recommended for production use. It is not subject to any 1060 // SLA or deprecation policy. 1061 RetryPolicy *RetryPolicy `protobuf:"bytes,14,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` 1062} 1063 1064func (x *Subscription) Reset() { 1065 *x = Subscription{} 1066 if protoimpl.UnsafeEnabled { 1067 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[14] 1068 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1069 ms.StoreMessageInfo(mi) 1070 } 1071} 1072 1073func (x *Subscription) String() string { 1074 return protoimpl.X.MessageStringOf(x) 1075} 1076 1077func (*Subscription) ProtoMessage() {} 1078 1079func (x *Subscription) ProtoReflect() protoreflect.Message { 1080 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[14] 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 Subscription.ProtoReflect.Descriptor instead. 1092func (*Subscription) Descriptor() ([]byte, []int) { 1093 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{14} 1094} 1095 1096func (x *Subscription) GetName() string { 1097 if x != nil { 1098 return x.Name 1099 } 1100 return "" 1101} 1102 1103func (x *Subscription) GetTopic() string { 1104 if x != nil { 1105 return x.Topic 1106 } 1107 return "" 1108} 1109 1110func (x *Subscription) GetPushConfig() *PushConfig { 1111 if x != nil { 1112 return x.PushConfig 1113 } 1114 return nil 1115} 1116 1117func (x *Subscription) GetAckDeadlineSeconds() int32 { 1118 if x != nil { 1119 return x.AckDeadlineSeconds 1120 } 1121 return 0 1122} 1123 1124func (x *Subscription) GetRetainAckedMessages() bool { 1125 if x != nil { 1126 return x.RetainAckedMessages 1127 } 1128 return false 1129} 1130 1131func (x *Subscription) GetMessageRetentionDuration() *duration.Duration { 1132 if x != nil { 1133 return x.MessageRetentionDuration 1134 } 1135 return nil 1136} 1137 1138func (x *Subscription) GetLabels() map[string]string { 1139 if x != nil { 1140 return x.Labels 1141 } 1142 return nil 1143} 1144 1145func (x *Subscription) GetEnableMessageOrdering() bool { 1146 if x != nil { 1147 return x.EnableMessageOrdering 1148 } 1149 return false 1150} 1151 1152func (x *Subscription) GetExpirationPolicy() *ExpirationPolicy { 1153 if x != nil { 1154 return x.ExpirationPolicy 1155 } 1156 return nil 1157} 1158 1159func (x *Subscription) GetFilter() string { 1160 if x != nil { 1161 return x.Filter 1162 } 1163 return "" 1164} 1165 1166func (x *Subscription) GetDeadLetterPolicy() *DeadLetterPolicy { 1167 if x != nil { 1168 return x.DeadLetterPolicy 1169 } 1170 return nil 1171} 1172 1173func (x *Subscription) GetRetryPolicy() *RetryPolicy { 1174 if x != nil { 1175 return x.RetryPolicy 1176 } 1177 return nil 1178} 1179 1180// A policy that specifies how Cloud Pub/Sub retries message delivery. 1181// 1182// Retry delay will be exponential based on provided minimum and maximum 1183// backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. 1184// 1185// RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded 1186// events for a given message. 1187// 1188// Retry Policy is implemented on a best effort basis. At times, the delay 1189// between consecutive deliveries may not match the configuration. That is, 1190// delay can be more or less than configured backoff. 1191type RetryPolicy struct { 1192 state protoimpl.MessageState 1193 sizeCache protoimpl.SizeCache 1194 unknownFields protoimpl.UnknownFields 1195 1196 // The minimum delay between consecutive deliveries of a given message. 1197 // Value should be between 0 and 600 seconds. Defaults to 10 seconds. 1198 MinimumBackoff *duration.Duration `protobuf:"bytes,1,opt,name=minimum_backoff,json=minimumBackoff,proto3" json:"minimum_backoff,omitempty"` 1199 // The maximum delay between consecutive deliveries of a given message. 1200 // Value should be between 0 and 600 seconds. Defaults to 600 seconds. 1201 MaximumBackoff *duration.Duration `protobuf:"bytes,2,opt,name=maximum_backoff,json=maximumBackoff,proto3" json:"maximum_backoff,omitempty"` 1202} 1203 1204func (x *RetryPolicy) Reset() { 1205 *x = RetryPolicy{} 1206 if protoimpl.UnsafeEnabled { 1207 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[15] 1208 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1209 ms.StoreMessageInfo(mi) 1210 } 1211} 1212 1213func (x *RetryPolicy) String() string { 1214 return protoimpl.X.MessageStringOf(x) 1215} 1216 1217func (*RetryPolicy) ProtoMessage() {} 1218 1219func (x *RetryPolicy) ProtoReflect() protoreflect.Message { 1220 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[15] 1221 if protoimpl.UnsafeEnabled && x != nil { 1222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1223 if ms.LoadMessageInfo() == nil { 1224 ms.StoreMessageInfo(mi) 1225 } 1226 return ms 1227 } 1228 return mi.MessageOf(x) 1229} 1230 1231// Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead. 1232func (*RetryPolicy) Descriptor() ([]byte, []int) { 1233 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{15} 1234} 1235 1236func (x *RetryPolicy) GetMinimumBackoff() *duration.Duration { 1237 if x != nil { 1238 return x.MinimumBackoff 1239 } 1240 return nil 1241} 1242 1243func (x *RetryPolicy) GetMaximumBackoff() *duration.Duration { 1244 if x != nil { 1245 return x.MaximumBackoff 1246 } 1247 return nil 1248} 1249 1250// Dead lettering is done on a best effort basis. The same message might be 1251// dead lettered multiple times. 1252// 1253// If validation on any of the fields fails at subscription creation/updation, 1254// the create/update subscription request will fail. 1255type DeadLetterPolicy struct { 1256 state protoimpl.MessageState 1257 sizeCache protoimpl.SizeCache 1258 unknownFields protoimpl.UnknownFields 1259 1260 // The name of the topic to which dead letter messages should be published. 1261 // Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service 1262 // account associated with the enclosing subscription's parent project (i.e., 1263 // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have 1264 // permission to Publish() to this topic. 1265 // 1266 // The operation will fail if the topic does not exist. 1267 // Users should ensure that there is a subscription attached to this topic 1268 // since messages published to a topic with no subscriptions are lost. 1269 DeadLetterTopic string `protobuf:"bytes,1,opt,name=dead_letter_topic,json=deadLetterTopic,proto3" json:"dead_letter_topic,omitempty"` 1270 // The maximum number of delivery attempts for any message. The value must be 1271 // between 5 and 100. 1272 // 1273 // The number of delivery attempts is defined as 1 + (the sum of number of 1274 // NACKs and number of times the acknowledgement deadline has been exceeded 1275 // for the message). 1276 // 1277 // A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that 1278 // client libraries may automatically extend ack_deadlines. 1279 // 1280 // This field will be honored on a best effort basis. 1281 // 1282 // If this parameter is 0, a default value of 5 is used. 1283 MaxDeliveryAttempts int32 `protobuf:"varint,2,opt,name=max_delivery_attempts,json=maxDeliveryAttempts,proto3" json:"max_delivery_attempts,omitempty"` 1284} 1285 1286func (x *DeadLetterPolicy) Reset() { 1287 *x = DeadLetterPolicy{} 1288 if protoimpl.UnsafeEnabled { 1289 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[16] 1290 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1291 ms.StoreMessageInfo(mi) 1292 } 1293} 1294 1295func (x *DeadLetterPolicy) String() string { 1296 return protoimpl.X.MessageStringOf(x) 1297} 1298 1299func (*DeadLetterPolicy) ProtoMessage() {} 1300 1301func (x *DeadLetterPolicy) ProtoReflect() protoreflect.Message { 1302 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[16] 1303 if protoimpl.UnsafeEnabled && x != nil { 1304 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1305 if ms.LoadMessageInfo() == nil { 1306 ms.StoreMessageInfo(mi) 1307 } 1308 return ms 1309 } 1310 return mi.MessageOf(x) 1311} 1312 1313// Deprecated: Use DeadLetterPolicy.ProtoReflect.Descriptor instead. 1314func (*DeadLetterPolicy) Descriptor() ([]byte, []int) { 1315 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{16} 1316} 1317 1318func (x *DeadLetterPolicy) GetDeadLetterTopic() string { 1319 if x != nil { 1320 return x.DeadLetterTopic 1321 } 1322 return "" 1323} 1324 1325func (x *DeadLetterPolicy) GetMaxDeliveryAttempts() int32 { 1326 if x != nil { 1327 return x.MaxDeliveryAttempts 1328 } 1329 return 0 1330} 1331 1332// A policy that specifies the conditions for resource expiration (i.e., 1333// automatic resource deletion). 1334type ExpirationPolicy struct { 1335 state protoimpl.MessageState 1336 sizeCache protoimpl.SizeCache 1337 unknownFields protoimpl.UnknownFields 1338 1339 // Specifies the "time-to-live" duration for an associated resource. The 1340 // resource expires if it is not active for a period of `ttl`. The definition 1341 // of "activity" depends on the type of the associated resource. The minimum 1342 // and maximum allowed values for `ttl` depend on the type of the associated 1343 // resource, as well. If `ttl` is not set, the associated resource never 1344 // expires. 1345 Ttl *duration.Duration `protobuf:"bytes,1,opt,name=ttl,proto3" json:"ttl,omitempty"` 1346} 1347 1348func (x *ExpirationPolicy) Reset() { 1349 *x = ExpirationPolicy{} 1350 if protoimpl.UnsafeEnabled { 1351 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[17] 1352 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1353 ms.StoreMessageInfo(mi) 1354 } 1355} 1356 1357func (x *ExpirationPolicy) String() string { 1358 return protoimpl.X.MessageStringOf(x) 1359} 1360 1361func (*ExpirationPolicy) ProtoMessage() {} 1362 1363func (x *ExpirationPolicy) ProtoReflect() protoreflect.Message { 1364 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[17] 1365 if protoimpl.UnsafeEnabled && x != nil { 1366 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1367 if ms.LoadMessageInfo() == nil { 1368 ms.StoreMessageInfo(mi) 1369 } 1370 return ms 1371 } 1372 return mi.MessageOf(x) 1373} 1374 1375// Deprecated: Use ExpirationPolicy.ProtoReflect.Descriptor instead. 1376func (*ExpirationPolicy) Descriptor() ([]byte, []int) { 1377 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{17} 1378} 1379 1380func (x *ExpirationPolicy) GetTtl() *duration.Duration { 1381 if x != nil { 1382 return x.Ttl 1383 } 1384 return nil 1385} 1386 1387// Configuration for a push delivery endpoint. 1388type PushConfig struct { 1389 state protoimpl.MessageState 1390 sizeCache protoimpl.SizeCache 1391 unknownFields protoimpl.UnknownFields 1392 1393 // A URL locating the endpoint to which messages should be pushed. 1394 // For example, a Webhook endpoint might use `https://example.com/push`. 1395 PushEndpoint string `protobuf:"bytes,1,opt,name=push_endpoint,json=pushEndpoint,proto3" json:"push_endpoint,omitempty"` 1396 // Endpoint configuration attributes that can be used to control different 1397 // aspects of the message delivery. 1398 // 1399 // The only currently supported attribute is `x-goog-version`, which you can 1400 // use to change the format of the pushed message. This attribute 1401 // indicates the version of the data expected by the endpoint. This 1402 // controls the shape of the pushed message (i.e., its fields and metadata). 1403 // 1404 // If not present during the `CreateSubscription` call, it will default to 1405 // the version of the Pub/Sub API used to make such call. If not present in a 1406 // `ModifyPushConfig` call, its value will not be changed. `GetSubscription` 1407 // calls will always return a valid version, even if the subscription was 1408 // created without this attribute. 1409 // 1410 // The only supported values for the `x-goog-version` attribute are: 1411 // 1412 // * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. 1413 // * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. 1414 // 1415 // For example: 1416 // <pre><code>attributes { "x-goog-version": "v1" } </code></pre> 1417 Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1418 // An authentication method used by push endpoints to verify the source of 1419 // push requests. This can be used with push endpoints that are private by 1420 // default to allow requests only from the Cloud Pub/Sub system, for example. 1421 // This field is optional and should be set only by users interested in 1422 // authenticated push. 1423 // 1424 // Types that are assignable to AuthenticationMethod: 1425 // *PushConfig_OidcToken_ 1426 AuthenticationMethod isPushConfig_AuthenticationMethod `protobuf_oneof:"authentication_method"` 1427} 1428 1429func (x *PushConfig) Reset() { 1430 *x = PushConfig{} 1431 if protoimpl.UnsafeEnabled { 1432 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[18] 1433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1434 ms.StoreMessageInfo(mi) 1435 } 1436} 1437 1438func (x *PushConfig) String() string { 1439 return protoimpl.X.MessageStringOf(x) 1440} 1441 1442func (*PushConfig) ProtoMessage() {} 1443 1444func (x *PushConfig) ProtoReflect() protoreflect.Message { 1445 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[18] 1446 if protoimpl.UnsafeEnabled && x != nil { 1447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1448 if ms.LoadMessageInfo() == nil { 1449 ms.StoreMessageInfo(mi) 1450 } 1451 return ms 1452 } 1453 return mi.MessageOf(x) 1454} 1455 1456// Deprecated: Use PushConfig.ProtoReflect.Descriptor instead. 1457func (*PushConfig) Descriptor() ([]byte, []int) { 1458 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{18} 1459} 1460 1461func (x *PushConfig) GetPushEndpoint() string { 1462 if x != nil { 1463 return x.PushEndpoint 1464 } 1465 return "" 1466} 1467 1468func (x *PushConfig) GetAttributes() map[string]string { 1469 if x != nil { 1470 return x.Attributes 1471 } 1472 return nil 1473} 1474 1475func (m *PushConfig) GetAuthenticationMethod() isPushConfig_AuthenticationMethod { 1476 if m != nil { 1477 return m.AuthenticationMethod 1478 } 1479 return nil 1480} 1481 1482func (x *PushConfig) GetOidcToken() *PushConfig_OidcToken { 1483 if x, ok := x.GetAuthenticationMethod().(*PushConfig_OidcToken_); ok { 1484 return x.OidcToken 1485 } 1486 return nil 1487} 1488 1489type isPushConfig_AuthenticationMethod interface { 1490 isPushConfig_AuthenticationMethod() 1491} 1492 1493type PushConfig_OidcToken_ struct { 1494 // If specified, Pub/Sub will generate and attach an OIDC JWT token as an 1495 // `Authorization` header in the HTTP request for every pushed message. 1496 OidcToken *PushConfig_OidcToken `protobuf:"bytes,3,opt,name=oidc_token,json=oidcToken,proto3,oneof"` 1497} 1498 1499func (*PushConfig_OidcToken_) isPushConfig_AuthenticationMethod() {} 1500 1501// A message and its corresponding acknowledgment ID. 1502type ReceivedMessage struct { 1503 state protoimpl.MessageState 1504 sizeCache protoimpl.SizeCache 1505 unknownFields protoimpl.UnknownFields 1506 1507 // This ID can be used to acknowledge the received message. 1508 AckId string `protobuf:"bytes,1,opt,name=ack_id,json=ackId,proto3" json:"ack_id,omitempty"` 1509 // The message. 1510 Message *PubsubMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` 1511 // The approximate number of times that Cloud Pub/Sub has attempted to deliver 1512 // the associated message to a subscriber. 1513 // 1514 // More precisely, this is 1 + (number of NACKs) + 1515 // (number of ack_deadline exceeds) for this message. 1516 // 1517 // A NACK is any call to ModifyAckDeadline with a 0 deadline. An ack_deadline 1518 // exceeds event is whenever a message is not acknowledged within 1519 // ack_deadline. Note that ack_deadline is initially 1520 // Subscription.ackDeadlineSeconds, but may get extended automatically by 1521 // the client library. 1522 // 1523 // Upon the first delivery of a given message, `delivery_attempt` will have a 1524 // value of 1. The value is calculated at best effort and is approximate. 1525 // 1526 // If a DeadLetterPolicy is not set on the subscription, this will be 0. 1527 DeliveryAttempt int32 `protobuf:"varint,3,opt,name=delivery_attempt,json=deliveryAttempt,proto3" json:"delivery_attempt,omitempty"` 1528} 1529 1530func (x *ReceivedMessage) Reset() { 1531 *x = ReceivedMessage{} 1532 if protoimpl.UnsafeEnabled { 1533 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[19] 1534 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1535 ms.StoreMessageInfo(mi) 1536 } 1537} 1538 1539func (x *ReceivedMessage) String() string { 1540 return protoimpl.X.MessageStringOf(x) 1541} 1542 1543func (*ReceivedMessage) ProtoMessage() {} 1544 1545func (x *ReceivedMessage) ProtoReflect() protoreflect.Message { 1546 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[19] 1547 if protoimpl.UnsafeEnabled && x != nil { 1548 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1549 if ms.LoadMessageInfo() == nil { 1550 ms.StoreMessageInfo(mi) 1551 } 1552 return ms 1553 } 1554 return mi.MessageOf(x) 1555} 1556 1557// Deprecated: Use ReceivedMessage.ProtoReflect.Descriptor instead. 1558func (*ReceivedMessage) Descriptor() ([]byte, []int) { 1559 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{19} 1560} 1561 1562func (x *ReceivedMessage) GetAckId() string { 1563 if x != nil { 1564 return x.AckId 1565 } 1566 return "" 1567} 1568 1569func (x *ReceivedMessage) GetMessage() *PubsubMessage { 1570 if x != nil { 1571 return x.Message 1572 } 1573 return nil 1574} 1575 1576func (x *ReceivedMessage) GetDeliveryAttempt() int32 { 1577 if x != nil { 1578 return x.DeliveryAttempt 1579 } 1580 return 0 1581} 1582 1583// Request for the GetSubscription method. 1584type GetSubscriptionRequest struct { 1585 state protoimpl.MessageState 1586 sizeCache protoimpl.SizeCache 1587 unknownFields protoimpl.UnknownFields 1588 1589 // Required. The name of the subscription to get. 1590 // Format is `projects/{project}/subscriptions/{sub}`. 1591 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 1592} 1593 1594func (x *GetSubscriptionRequest) Reset() { 1595 *x = GetSubscriptionRequest{} 1596 if protoimpl.UnsafeEnabled { 1597 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[20] 1598 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1599 ms.StoreMessageInfo(mi) 1600 } 1601} 1602 1603func (x *GetSubscriptionRequest) String() string { 1604 return protoimpl.X.MessageStringOf(x) 1605} 1606 1607func (*GetSubscriptionRequest) ProtoMessage() {} 1608 1609func (x *GetSubscriptionRequest) ProtoReflect() protoreflect.Message { 1610 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[20] 1611 if protoimpl.UnsafeEnabled && x != nil { 1612 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1613 if ms.LoadMessageInfo() == nil { 1614 ms.StoreMessageInfo(mi) 1615 } 1616 return ms 1617 } 1618 return mi.MessageOf(x) 1619} 1620 1621// Deprecated: Use GetSubscriptionRequest.ProtoReflect.Descriptor instead. 1622func (*GetSubscriptionRequest) Descriptor() ([]byte, []int) { 1623 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{20} 1624} 1625 1626func (x *GetSubscriptionRequest) GetSubscription() string { 1627 if x != nil { 1628 return x.Subscription 1629 } 1630 return "" 1631} 1632 1633// Request for the UpdateSubscription method. 1634type UpdateSubscriptionRequest struct { 1635 state protoimpl.MessageState 1636 sizeCache protoimpl.SizeCache 1637 unknownFields protoimpl.UnknownFields 1638 1639 // Required. The updated subscription object. 1640 Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 1641 // Required. Indicates which fields in the provided subscription to update. 1642 // Must be specified and non-empty. 1643 UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 1644} 1645 1646func (x *UpdateSubscriptionRequest) Reset() { 1647 *x = UpdateSubscriptionRequest{} 1648 if protoimpl.UnsafeEnabled { 1649 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[21] 1650 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1651 ms.StoreMessageInfo(mi) 1652 } 1653} 1654 1655func (x *UpdateSubscriptionRequest) String() string { 1656 return protoimpl.X.MessageStringOf(x) 1657} 1658 1659func (*UpdateSubscriptionRequest) ProtoMessage() {} 1660 1661func (x *UpdateSubscriptionRequest) ProtoReflect() protoreflect.Message { 1662 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[21] 1663 if protoimpl.UnsafeEnabled && x != nil { 1664 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1665 if ms.LoadMessageInfo() == nil { 1666 ms.StoreMessageInfo(mi) 1667 } 1668 return ms 1669 } 1670 return mi.MessageOf(x) 1671} 1672 1673// Deprecated: Use UpdateSubscriptionRequest.ProtoReflect.Descriptor instead. 1674func (*UpdateSubscriptionRequest) Descriptor() ([]byte, []int) { 1675 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{21} 1676} 1677 1678func (x *UpdateSubscriptionRequest) GetSubscription() *Subscription { 1679 if x != nil { 1680 return x.Subscription 1681 } 1682 return nil 1683} 1684 1685func (x *UpdateSubscriptionRequest) GetUpdateMask() *field_mask.FieldMask { 1686 if x != nil { 1687 return x.UpdateMask 1688 } 1689 return nil 1690} 1691 1692// Request for the `ListSubscriptions` method. 1693type ListSubscriptionsRequest struct { 1694 state protoimpl.MessageState 1695 sizeCache protoimpl.SizeCache 1696 unknownFields protoimpl.UnknownFields 1697 1698 // Required. The name of the project in which to list subscriptions. 1699 // Format is `projects/{project-id}`. 1700 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 1701 // Maximum number of subscriptions to return. 1702 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1703 // The value returned by the last `ListSubscriptionsResponse`; indicates that 1704 // this is a continuation of a prior `ListSubscriptions` call, and that the 1705 // system should return the next page of data. 1706 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1707} 1708 1709func (x *ListSubscriptionsRequest) Reset() { 1710 *x = ListSubscriptionsRequest{} 1711 if protoimpl.UnsafeEnabled { 1712 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[22] 1713 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1714 ms.StoreMessageInfo(mi) 1715 } 1716} 1717 1718func (x *ListSubscriptionsRequest) String() string { 1719 return protoimpl.X.MessageStringOf(x) 1720} 1721 1722func (*ListSubscriptionsRequest) ProtoMessage() {} 1723 1724func (x *ListSubscriptionsRequest) ProtoReflect() protoreflect.Message { 1725 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[22] 1726 if protoimpl.UnsafeEnabled && x != nil { 1727 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1728 if ms.LoadMessageInfo() == nil { 1729 ms.StoreMessageInfo(mi) 1730 } 1731 return ms 1732 } 1733 return mi.MessageOf(x) 1734} 1735 1736// Deprecated: Use ListSubscriptionsRequest.ProtoReflect.Descriptor instead. 1737func (*ListSubscriptionsRequest) Descriptor() ([]byte, []int) { 1738 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{22} 1739} 1740 1741func (x *ListSubscriptionsRequest) GetProject() string { 1742 if x != nil { 1743 return x.Project 1744 } 1745 return "" 1746} 1747 1748func (x *ListSubscriptionsRequest) GetPageSize() int32 { 1749 if x != nil { 1750 return x.PageSize 1751 } 1752 return 0 1753} 1754 1755func (x *ListSubscriptionsRequest) GetPageToken() string { 1756 if x != nil { 1757 return x.PageToken 1758 } 1759 return "" 1760} 1761 1762// Response for the `ListSubscriptions` method. 1763type ListSubscriptionsResponse struct { 1764 state protoimpl.MessageState 1765 sizeCache protoimpl.SizeCache 1766 unknownFields protoimpl.UnknownFields 1767 1768 // The subscriptions that match the request. 1769 Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"` 1770 // If not empty, indicates that there may be more subscriptions that match 1771 // the request; this value should be passed in a new 1772 // `ListSubscriptionsRequest` to get more subscriptions. 1773 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1774} 1775 1776func (x *ListSubscriptionsResponse) Reset() { 1777 *x = ListSubscriptionsResponse{} 1778 if protoimpl.UnsafeEnabled { 1779 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[23] 1780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1781 ms.StoreMessageInfo(mi) 1782 } 1783} 1784 1785func (x *ListSubscriptionsResponse) String() string { 1786 return protoimpl.X.MessageStringOf(x) 1787} 1788 1789func (*ListSubscriptionsResponse) ProtoMessage() {} 1790 1791func (x *ListSubscriptionsResponse) ProtoReflect() protoreflect.Message { 1792 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[23] 1793 if protoimpl.UnsafeEnabled && x != nil { 1794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1795 if ms.LoadMessageInfo() == nil { 1796 ms.StoreMessageInfo(mi) 1797 } 1798 return ms 1799 } 1800 return mi.MessageOf(x) 1801} 1802 1803// Deprecated: Use ListSubscriptionsResponse.ProtoReflect.Descriptor instead. 1804func (*ListSubscriptionsResponse) Descriptor() ([]byte, []int) { 1805 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{23} 1806} 1807 1808func (x *ListSubscriptionsResponse) GetSubscriptions() []*Subscription { 1809 if x != nil { 1810 return x.Subscriptions 1811 } 1812 return nil 1813} 1814 1815func (x *ListSubscriptionsResponse) GetNextPageToken() string { 1816 if x != nil { 1817 return x.NextPageToken 1818 } 1819 return "" 1820} 1821 1822// Request for the DeleteSubscription method. 1823type DeleteSubscriptionRequest struct { 1824 state protoimpl.MessageState 1825 sizeCache protoimpl.SizeCache 1826 unknownFields protoimpl.UnknownFields 1827 1828 // Required. The subscription to delete. 1829 // Format is `projects/{project}/subscriptions/{sub}`. 1830 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 1831} 1832 1833func (x *DeleteSubscriptionRequest) Reset() { 1834 *x = DeleteSubscriptionRequest{} 1835 if protoimpl.UnsafeEnabled { 1836 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[24] 1837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1838 ms.StoreMessageInfo(mi) 1839 } 1840} 1841 1842func (x *DeleteSubscriptionRequest) String() string { 1843 return protoimpl.X.MessageStringOf(x) 1844} 1845 1846func (*DeleteSubscriptionRequest) ProtoMessage() {} 1847 1848func (x *DeleteSubscriptionRequest) ProtoReflect() protoreflect.Message { 1849 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[24] 1850 if protoimpl.UnsafeEnabled && x != nil { 1851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1852 if ms.LoadMessageInfo() == nil { 1853 ms.StoreMessageInfo(mi) 1854 } 1855 return ms 1856 } 1857 return mi.MessageOf(x) 1858} 1859 1860// Deprecated: Use DeleteSubscriptionRequest.ProtoReflect.Descriptor instead. 1861func (*DeleteSubscriptionRequest) Descriptor() ([]byte, []int) { 1862 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{24} 1863} 1864 1865func (x *DeleteSubscriptionRequest) GetSubscription() string { 1866 if x != nil { 1867 return x.Subscription 1868 } 1869 return "" 1870} 1871 1872// Request for the ModifyPushConfig method. 1873type ModifyPushConfigRequest struct { 1874 state protoimpl.MessageState 1875 sizeCache protoimpl.SizeCache 1876 unknownFields protoimpl.UnknownFields 1877 1878 // Required. The name of the subscription. 1879 // Format is `projects/{project}/subscriptions/{sub}`. 1880 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 1881 // Required. The push configuration for future deliveries. 1882 // 1883 // An empty `pushConfig` indicates that the Pub/Sub system should 1884 // stop pushing messages from the given subscription and allow 1885 // messages to be pulled and acknowledged - effectively pausing 1886 // the subscription if `Pull` or `StreamingPull` is not called. 1887 PushConfig *PushConfig `protobuf:"bytes,2,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"` 1888} 1889 1890func (x *ModifyPushConfigRequest) Reset() { 1891 *x = ModifyPushConfigRequest{} 1892 if protoimpl.UnsafeEnabled { 1893 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[25] 1894 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1895 ms.StoreMessageInfo(mi) 1896 } 1897} 1898 1899func (x *ModifyPushConfigRequest) String() string { 1900 return protoimpl.X.MessageStringOf(x) 1901} 1902 1903func (*ModifyPushConfigRequest) ProtoMessage() {} 1904 1905func (x *ModifyPushConfigRequest) ProtoReflect() protoreflect.Message { 1906 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[25] 1907 if protoimpl.UnsafeEnabled && x != nil { 1908 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1909 if ms.LoadMessageInfo() == nil { 1910 ms.StoreMessageInfo(mi) 1911 } 1912 return ms 1913 } 1914 return mi.MessageOf(x) 1915} 1916 1917// Deprecated: Use ModifyPushConfigRequest.ProtoReflect.Descriptor instead. 1918func (*ModifyPushConfigRequest) Descriptor() ([]byte, []int) { 1919 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{25} 1920} 1921 1922func (x *ModifyPushConfigRequest) GetSubscription() string { 1923 if x != nil { 1924 return x.Subscription 1925 } 1926 return "" 1927} 1928 1929func (x *ModifyPushConfigRequest) GetPushConfig() *PushConfig { 1930 if x != nil { 1931 return x.PushConfig 1932 } 1933 return nil 1934} 1935 1936// Request for the `Pull` method. 1937type PullRequest struct { 1938 state protoimpl.MessageState 1939 sizeCache protoimpl.SizeCache 1940 unknownFields protoimpl.UnknownFields 1941 1942 // Required. The subscription from which messages should be pulled. 1943 // Format is `projects/{project}/subscriptions/{sub}`. 1944 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 1945 // Optional. If this field set to true, the system will respond immediately 1946 // even if it there are no messages available to return in the `Pull` 1947 // response. Otherwise, the system may wait (for a bounded amount of time) 1948 // until at least one message is available, rather than returning no messages. 1949 // Warning: setting this field to `true` is discouraged because it adversely 1950 // impacts the performance of `Pull` operations. We recommend that users do 1951 // not set this field. 1952 // 1953 // Deprecated: Do not use. 1954 ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately,proto3" json:"return_immediately,omitempty"` 1955 // Required. The maximum number of messages to return for this request. Must 1956 // be a positive integer. The Pub/Sub system may return fewer than the number 1957 // specified. 1958 MaxMessages int32 `protobuf:"varint,3,opt,name=max_messages,json=maxMessages,proto3" json:"max_messages,omitempty"` 1959} 1960 1961func (x *PullRequest) Reset() { 1962 *x = PullRequest{} 1963 if protoimpl.UnsafeEnabled { 1964 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[26] 1965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1966 ms.StoreMessageInfo(mi) 1967 } 1968} 1969 1970func (x *PullRequest) String() string { 1971 return protoimpl.X.MessageStringOf(x) 1972} 1973 1974func (*PullRequest) ProtoMessage() {} 1975 1976func (x *PullRequest) ProtoReflect() protoreflect.Message { 1977 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[26] 1978 if protoimpl.UnsafeEnabled && x != nil { 1979 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1980 if ms.LoadMessageInfo() == nil { 1981 ms.StoreMessageInfo(mi) 1982 } 1983 return ms 1984 } 1985 return mi.MessageOf(x) 1986} 1987 1988// Deprecated: Use PullRequest.ProtoReflect.Descriptor instead. 1989func (*PullRequest) Descriptor() ([]byte, []int) { 1990 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{26} 1991} 1992 1993func (x *PullRequest) GetSubscription() string { 1994 if x != nil { 1995 return x.Subscription 1996 } 1997 return "" 1998} 1999 2000// Deprecated: Do not use. 2001func (x *PullRequest) GetReturnImmediately() bool { 2002 if x != nil { 2003 return x.ReturnImmediately 2004 } 2005 return false 2006} 2007 2008func (x *PullRequest) GetMaxMessages() int32 { 2009 if x != nil { 2010 return x.MaxMessages 2011 } 2012 return 0 2013} 2014 2015// Response for the `Pull` method. 2016type PullResponse struct { 2017 state protoimpl.MessageState 2018 sizeCache protoimpl.SizeCache 2019 unknownFields protoimpl.UnknownFields 2020 2021 // Received Pub/Sub messages. The list will be empty if there are no more 2022 // messages available in the backlog. For JSON, the response can be entirely 2023 // empty. The Pub/Sub system may return fewer than the `maxMessages` requested 2024 // even if there are more messages available in the backlog. 2025 ReceivedMessages []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages,proto3" json:"received_messages,omitempty"` 2026} 2027 2028func (x *PullResponse) Reset() { 2029 *x = PullResponse{} 2030 if protoimpl.UnsafeEnabled { 2031 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[27] 2032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2033 ms.StoreMessageInfo(mi) 2034 } 2035} 2036 2037func (x *PullResponse) String() string { 2038 return protoimpl.X.MessageStringOf(x) 2039} 2040 2041func (*PullResponse) ProtoMessage() {} 2042 2043func (x *PullResponse) ProtoReflect() protoreflect.Message { 2044 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[27] 2045 if protoimpl.UnsafeEnabled && x != nil { 2046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2047 if ms.LoadMessageInfo() == nil { 2048 ms.StoreMessageInfo(mi) 2049 } 2050 return ms 2051 } 2052 return mi.MessageOf(x) 2053} 2054 2055// Deprecated: Use PullResponse.ProtoReflect.Descriptor instead. 2056func (*PullResponse) Descriptor() ([]byte, []int) { 2057 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{27} 2058} 2059 2060func (x *PullResponse) GetReceivedMessages() []*ReceivedMessage { 2061 if x != nil { 2062 return x.ReceivedMessages 2063 } 2064 return nil 2065} 2066 2067// Request for the ModifyAckDeadline method. 2068type ModifyAckDeadlineRequest struct { 2069 state protoimpl.MessageState 2070 sizeCache protoimpl.SizeCache 2071 unknownFields protoimpl.UnknownFields 2072 2073 // Required. The name of the subscription. 2074 // Format is `projects/{project}/subscriptions/{sub}`. 2075 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 2076 // Required. List of acknowledgment IDs. 2077 AckIds []string `protobuf:"bytes,4,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"` 2078 // Required. The new ack deadline with respect to the time this request was 2079 // sent to the Pub/Sub system. For example, if the value is 10, the new ack 2080 // deadline will expire 10 seconds after the `ModifyAckDeadline` call was 2081 // made. Specifying zero might immediately make the message available for 2082 // delivery to another subscriber client. This typically results in an 2083 // increase in the rate of message redeliveries (that is, duplicates). 2084 // The minimum deadline you can specify is 0 seconds. 2085 // The maximum deadline you can specify is 600 seconds (10 minutes). 2086 AckDeadlineSeconds int32 `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"` 2087} 2088 2089func (x *ModifyAckDeadlineRequest) Reset() { 2090 *x = ModifyAckDeadlineRequest{} 2091 if protoimpl.UnsafeEnabled { 2092 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[28] 2093 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2094 ms.StoreMessageInfo(mi) 2095 } 2096} 2097 2098func (x *ModifyAckDeadlineRequest) String() string { 2099 return protoimpl.X.MessageStringOf(x) 2100} 2101 2102func (*ModifyAckDeadlineRequest) ProtoMessage() {} 2103 2104func (x *ModifyAckDeadlineRequest) ProtoReflect() protoreflect.Message { 2105 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[28] 2106 if protoimpl.UnsafeEnabled && x != nil { 2107 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2108 if ms.LoadMessageInfo() == nil { 2109 ms.StoreMessageInfo(mi) 2110 } 2111 return ms 2112 } 2113 return mi.MessageOf(x) 2114} 2115 2116// Deprecated: Use ModifyAckDeadlineRequest.ProtoReflect.Descriptor instead. 2117func (*ModifyAckDeadlineRequest) Descriptor() ([]byte, []int) { 2118 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{28} 2119} 2120 2121func (x *ModifyAckDeadlineRequest) GetSubscription() string { 2122 if x != nil { 2123 return x.Subscription 2124 } 2125 return "" 2126} 2127 2128func (x *ModifyAckDeadlineRequest) GetAckIds() []string { 2129 if x != nil { 2130 return x.AckIds 2131 } 2132 return nil 2133} 2134 2135func (x *ModifyAckDeadlineRequest) GetAckDeadlineSeconds() int32 { 2136 if x != nil { 2137 return x.AckDeadlineSeconds 2138 } 2139 return 0 2140} 2141 2142// Request for the Acknowledge method. 2143type AcknowledgeRequest struct { 2144 state protoimpl.MessageState 2145 sizeCache protoimpl.SizeCache 2146 unknownFields protoimpl.UnknownFields 2147 2148 // Required. The subscription whose message is being acknowledged. 2149 // Format is `projects/{project}/subscriptions/{sub}`. 2150 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 2151 // Required. The acknowledgment ID for the messages being acknowledged that 2152 // was returned by the Pub/Sub system in the `Pull` response. Must not be 2153 // empty. 2154 AckIds []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"` 2155} 2156 2157func (x *AcknowledgeRequest) Reset() { 2158 *x = AcknowledgeRequest{} 2159 if protoimpl.UnsafeEnabled { 2160 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[29] 2161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2162 ms.StoreMessageInfo(mi) 2163 } 2164} 2165 2166func (x *AcknowledgeRequest) String() string { 2167 return protoimpl.X.MessageStringOf(x) 2168} 2169 2170func (*AcknowledgeRequest) ProtoMessage() {} 2171 2172func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message { 2173 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[29] 2174 if protoimpl.UnsafeEnabled && x != nil { 2175 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2176 if ms.LoadMessageInfo() == nil { 2177 ms.StoreMessageInfo(mi) 2178 } 2179 return ms 2180 } 2181 return mi.MessageOf(x) 2182} 2183 2184// Deprecated: Use AcknowledgeRequest.ProtoReflect.Descriptor instead. 2185func (*AcknowledgeRequest) Descriptor() ([]byte, []int) { 2186 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{29} 2187} 2188 2189func (x *AcknowledgeRequest) GetSubscription() string { 2190 if x != nil { 2191 return x.Subscription 2192 } 2193 return "" 2194} 2195 2196func (x *AcknowledgeRequest) GetAckIds() []string { 2197 if x != nil { 2198 return x.AckIds 2199 } 2200 return nil 2201} 2202 2203// Request for the `StreamingPull` streaming RPC method. This request is used to 2204// establish the initial stream as well as to stream acknowledgements and ack 2205// deadline modifications from the client to the server. 2206type StreamingPullRequest struct { 2207 state protoimpl.MessageState 2208 sizeCache protoimpl.SizeCache 2209 unknownFields protoimpl.UnknownFields 2210 2211 // Required. The subscription for which to initialize the new stream. This 2212 // must be provided in the first request on the stream, and must not be set in 2213 // subsequent requests from client to server. 2214 // Format is `projects/{project}/subscriptions/{sub}`. 2215 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 2216 // List of acknowledgement IDs for acknowledging previously received messages 2217 // (received on this stream or a different stream). If an ack ID has expired, 2218 // the corresponding message may be redelivered later. Acknowledging a message 2219 // more than once will not result in an error. If the acknowledgement ID is 2220 // malformed, the stream will be aborted with status `INVALID_ARGUMENT`. 2221 AckIds []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"` 2222 // The list of new ack deadlines for the IDs listed in 2223 // `modify_deadline_ack_ids`. The size of this list must be the same as the 2224 // size of `modify_deadline_ack_ids`. If it differs the stream will be aborted 2225 // with `INVALID_ARGUMENT`. Each element in this list is applied to the 2226 // element in the same position in `modify_deadline_ack_ids`. The new ack 2227 // deadline is with respect to the time this request was sent to the Pub/Sub 2228 // system. Must be >= 0. For example, if the value is 10, the new ack deadline 2229 // will expire 10 seconds after this request is received. If the value is 0, 2230 // the message is immediately made available for another streaming or 2231 // non-streaming pull request. If the value is < 0 (an error), the stream will 2232 // be aborted with status `INVALID_ARGUMENT`. 2233 ModifyDeadlineSeconds []int32 `protobuf:"varint,3,rep,packed,name=modify_deadline_seconds,json=modifyDeadlineSeconds,proto3" json:"modify_deadline_seconds,omitempty"` 2234 // List of acknowledgement IDs whose deadline will be modified based on the 2235 // corresponding element in `modify_deadline_seconds`. This field can be used 2236 // to indicate that more time is needed to process a message by the 2237 // subscriber, or to make the message available for redelivery if the 2238 // processing was interrupted. 2239 ModifyDeadlineAckIds []string `protobuf:"bytes,4,rep,name=modify_deadline_ack_ids,json=modifyDeadlineAckIds,proto3" json:"modify_deadline_ack_ids,omitempty"` 2240 // Required. The ack deadline to use for the stream. This must be provided in 2241 // the first request on the stream, but it can also be updated on subsequent 2242 // requests from client to server. The minimum deadline you can specify is 10 2243 // seconds. The maximum deadline you can specify is 600 seconds (10 minutes). 2244 StreamAckDeadlineSeconds int32 `protobuf:"varint,5,opt,name=stream_ack_deadline_seconds,json=streamAckDeadlineSeconds,proto3" json:"stream_ack_deadline_seconds,omitempty"` 2245 // A unique identifier that is used to distinguish client instances from each 2246 // other. Only needs to be provided on the initial request. When a stream 2247 // disconnects and reconnects for the same stream, the client_id should be set 2248 // to the same value so that state associated with the old stream can be 2249 // transferred to the new stream. The same client_id should not be used for 2250 // different client instances. 2251 ClientId string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` 2252} 2253 2254func (x *StreamingPullRequest) Reset() { 2255 *x = StreamingPullRequest{} 2256 if protoimpl.UnsafeEnabled { 2257 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[30] 2258 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2259 ms.StoreMessageInfo(mi) 2260 } 2261} 2262 2263func (x *StreamingPullRequest) String() string { 2264 return protoimpl.X.MessageStringOf(x) 2265} 2266 2267func (*StreamingPullRequest) ProtoMessage() {} 2268 2269func (x *StreamingPullRequest) ProtoReflect() protoreflect.Message { 2270 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[30] 2271 if protoimpl.UnsafeEnabled && x != nil { 2272 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2273 if ms.LoadMessageInfo() == nil { 2274 ms.StoreMessageInfo(mi) 2275 } 2276 return ms 2277 } 2278 return mi.MessageOf(x) 2279} 2280 2281// Deprecated: Use StreamingPullRequest.ProtoReflect.Descriptor instead. 2282func (*StreamingPullRequest) Descriptor() ([]byte, []int) { 2283 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{30} 2284} 2285 2286func (x *StreamingPullRequest) GetSubscription() string { 2287 if x != nil { 2288 return x.Subscription 2289 } 2290 return "" 2291} 2292 2293func (x *StreamingPullRequest) GetAckIds() []string { 2294 if x != nil { 2295 return x.AckIds 2296 } 2297 return nil 2298} 2299 2300func (x *StreamingPullRequest) GetModifyDeadlineSeconds() []int32 { 2301 if x != nil { 2302 return x.ModifyDeadlineSeconds 2303 } 2304 return nil 2305} 2306 2307func (x *StreamingPullRequest) GetModifyDeadlineAckIds() []string { 2308 if x != nil { 2309 return x.ModifyDeadlineAckIds 2310 } 2311 return nil 2312} 2313 2314func (x *StreamingPullRequest) GetStreamAckDeadlineSeconds() int32 { 2315 if x != nil { 2316 return x.StreamAckDeadlineSeconds 2317 } 2318 return 0 2319} 2320 2321func (x *StreamingPullRequest) GetClientId() string { 2322 if x != nil { 2323 return x.ClientId 2324 } 2325 return "" 2326} 2327 2328// Response for the `StreamingPull` method. This response is used to stream 2329// messages from the server to the client. 2330type StreamingPullResponse struct { 2331 state protoimpl.MessageState 2332 sizeCache protoimpl.SizeCache 2333 unknownFields protoimpl.UnknownFields 2334 2335 // Received Pub/Sub messages. This will not be empty. 2336 ReceivedMessages []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages,proto3" json:"received_messages,omitempty"` 2337} 2338 2339func (x *StreamingPullResponse) Reset() { 2340 *x = StreamingPullResponse{} 2341 if protoimpl.UnsafeEnabled { 2342 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[31] 2343 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2344 ms.StoreMessageInfo(mi) 2345 } 2346} 2347 2348func (x *StreamingPullResponse) String() string { 2349 return protoimpl.X.MessageStringOf(x) 2350} 2351 2352func (*StreamingPullResponse) ProtoMessage() {} 2353 2354func (x *StreamingPullResponse) ProtoReflect() protoreflect.Message { 2355 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[31] 2356 if protoimpl.UnsafeEnabled && x != nil { 2357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2358 if ms.LoadMessageInfo() == nil { 2359 ms.StoreMessageInfo(mi) 2360 } 2361 return ms 2362 } 2363 return mi.MessageOf(x) 2364} 2365 2366// Deprecated: Use StreamingPullResponse.ProtoReflect.Descriptor instead. 2367func (*StreamingPullResponse) Descriptor() ([]byte, []int) { 2368 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{31} 2369} 2370 2371func (x *StreamingPullResponse) GetReceivedMessages() []*ReceivedMessage { 2372 if x != nil { 2373 return x.ReceivedMessages 2374 } 2375 return nil 2376} 2377 2378// Request for the `CreateSnapshot` method. 2379type CreateSnapshotRequest struct { 2380 state protoimpl.MessageState 2381 sizeCache protoimpl.SizeCache 2382 unknownFields protoimpl.UnknownFields 2383 2384 // Required. User-provided name for this snapshot. If the name is not provided 2385 // in the request, the server will assign a random name for this snapshot on 2386 // the same project as the subscription. Note that for REST API requests, you 2387 // must specify a name. See the <a 2388 // href="https://cloud.google.com/pubsub/docs/admin#resource_names"> resource 2389 // name rules</a>. Format is `projects/{project}/snapshots/{snap}`. 2390 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2391 // Required. The subscription whose backlog the snapshot retains. 2392 // Specifically, the created snapshot is guaranteed to retain: 2393 // (a) The existing backlog on the subscription. More precisely, this is 2394 // defined as the messages in the subscription's backlog that are 2395 // unacknowledged upon the successful completion of the 2396 // `CreateSnapshot` request; as well as: 2397 // (b) Any messages published to the subscription's topic following the 2398 // successful completion of the CreateSnapshot request. 2399 // Format is `projects/{project}/subscriptions/{sub}`. 2400 Subscription string `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` 2401 // See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and 2402 // managing labels</a>. 2403 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"` 2404} 2405 2406func (x *CreateSnapshotRequest) Reset() { 2407 *x = CreateSnapshotRequest{} 2408 if protoimpl.UnsafeEnabled { 2409 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[32] 2410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2411 ms.StoreMessageInfo(mi) 2412 } 2413} 2414 2415func (x *CreateSnapshotRequest) String() string { 2416 return protoimpl.X.MessageStringOf(x) 2417} 2418 2419func (*CreateSnapshotRequest) ProtoMessage() {} 2420 2421func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { 2422 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[32] 2423 if protoimpl.UnsafeEnabled && x != nil { 2424 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2425 if ms.LoadMessageInfo() == nil { 2426 ms.StoreMessageInfo(mi) 2427 } 2428 return ms 2429 } 2430 return mi.MessageOf(x) 2431} 2432 2433// Deprecated: Use CreateSnapshotRequest.ProtoReflect.Descriptor instead. 2434func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { 2435 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{32} 2436} 2437 2438func (x *CreateSnapshotRequest) GetName() string { 2439 if x != nil { 2440 return x.Name 2441 } 2442 return "" 2443} 2444 2445func (x *CreateSnapshotRequest) GetSubscription() string { 2446 if x != nil { 2447 return x.Subscription 2448 } 2449 return "" 2450} 2451 2452func (x *CreateSnapshotRequest) GetLabels() map[string]string { 2453 if x != nil { 2454 return x.Labels 2455 } 2456 return nil 2457} 2458 2459// Request for the UpdateSnapshot method. 2460type UpdateSnapshotRequest struct { 2461 state protoimpl.MessageState 2462 sizeCache protoimpl.SizeCache 2463 unknownFields protoimpl.UnknownFields 2464 2465 // Required. The updated snapshot object. 2466 Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` 2467 // Required. Indicates which fields in the provided snapshot to update. 2468 // Must be specified and non-empty. 2469 UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 2470} 2471 2472func (x *UpdateSnapshotRequest) Reset() { 2473 *x = UpdateSnapshotRequest{} 2474 if protoimpl.UnsafeEnabled { 2475 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[33] 2476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2477 ms.StoreMessageInfo(mi) 2478 } 2479} 2480 2481func (x *UpdateSnapshotRequest) String() string { 2482 return protoimpl.X.MessageStringOf(x) 2483} 2484 2485func (*UpdateSnapshotRequest) ProtoMessage() {} 2486 2487func (x *UpdateSnapshotRequest) ProtoReflect() protoreflect.Message { 2488 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[33] 2489 if protoimpl.UnsafeEnabled && x != nil { 2490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2491 if ms.LoadMessageInfo() == nil { 2492 ms.StoreMessageInfo(mi) 2493 } 2494 return ms 2495 } 2496 return mi.MessageOf(x) 2497} 2498 2499// Deprecated: Use UpdateSnapshotRequest.ProtoReflect.Descriptor instead. 2500func (*UpdateSnapshotRequest) Descriptor() ([]byte, []int) { 2501 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{33} 2502} 2503 2504func (x *UpdateSnapshotRequest) GetSnapshot() *Snapshot { 2505 if x != nil { 2506 return x.Snapshot 2507 } 2508 return nil 2509} 2510 2511func (x *UpdateSnapshotRequest) GetUpdateMask() *field_mask.FieldMask { 2512 if x != nil { 2513 return x.UpdateMask 2514 } 2515 return nil 2516} 2517 2518// A snapshot resource. Snapshots are used in 2519// <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 2520// operations, which allow 2521// you to manage message acknowledgments in bulk. That is, you can set the 2522// acknowledgment state of messages in an existing subscription to the state 2523// captured by a snapshot. 2524type Snapshot struct { 2525 state protoimpl.MessageState 2526 sizeCache protoimpl.SizeCache 2527 unknownFields protoimpl.UnknownFields 2528 2529 // The name of the snapshot. 2530 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2531 // The name of the topic from which this snapshot is retaining messages. 2532 Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` 2533 // The snapshot is guaranteed to exist up until this time. 2534 // A newly-created snapshot expires no later than 7 days from the time of its 2535 // creation. Its exact lifetime is determined at creation by the existing 2536 // backlog in the source subscription. Specifically, the lifetime of the 2537 // snapshot is `7 days - (age of oldest unacked message in the subscription)`. 2538 // For example, consider a subscription whose oldest unacked message is 3 days 2539 // old. If a snapshot is created from this subscription, the snapshot -- which 2540 // will always capture this 3-day-old backlog as long as the snapshot 2541 // exists -- will expire in 4 days. The service will refuse to create a 2542 // snapshot that would expire in less than 1 hour after creation. 2543 ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` 2544 // See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and 2545 // managing labels</a>. 2546 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"` 2547} 2548 2549func (x *Snapshot) Reset() { 2550 *x = Snapshot{} 2551 if protoimpl.UnsafeEnabled { 2552 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[34] 2553 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2554 ms.StoreMessageInfo(mi) 2555 } 2556} 2557 2558func (x *Snapshot) String() string { 2559 return protoimpl.X.MessageStringOf(x) 2560} 2561 2562func (*Snapshot) ProtoMessage() {} 2563 2564func (x *Snapshot) ProtoReflect() protoreflect.Message { 2565 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[34] 2566 if protoimpl.UnsafeEnabled && x != nil { 2567 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2568 if ms.LoadMessageInfo() == nil { 2569 ms.StoreMessageInfo(mi) 2570 } 2571 return ms 2572 } 2573 return mi.MessageOf(x) 2574} 2575 2576// Deprecated: Use Snapshot.ProtoReflect.Descriptor instead. 2577func (*Snapshot) Descriptor() ([]byte, []int) { 2578 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{34} 2579} 2580 2581func (x *Snapshot) GetName() string { 2582 if x != nil { 2583 return x.Name 2584 } 2585 return "" 2586} 2587 2588func (x *Snapshot) GetTopic() string { 2589 if x != nil { 2590 return x.Topic 2591 } 2592 return "" 2593} 2594 2595func (x *Snapshot) GetExpireTime() *timestamp.Timestamp { 2596 if x != nil { 2597 return x.ExpireTime 2598 } 2599 return nil 2600} 2601 2602func (x *Snapshot) GetLabels() map[string]string { 2603 if x != nil { 2604 return x.Labels 2605 } 2606 return nil 2607} 2608 2609// Request for the GetSnapshot method. 2610type GetSnapshotRequest struct { 2611 state protoimpl.MessageState 2612 sizeCache protoimpl.SizeCache 2613 unknownFields protoimpl.UnknownFields 2614 2615 // Required. The name of the snapshot to get. 2616 // Format is `projects/{project}/snapshots/{snap}`. 2617 Snapshot string `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` 2618} 2619 2620func (x *GetSnapshotRequest) Reset() { 2621 *x = GetSnapshotRequest{} 2622 if protoimpl.UnsafeEnabled { 2623 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[35] 2624 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2625 ms.StoreMessageInfo(mi) 2626 } 2627} 2628 2629func (x *GetSnapshotRequest) String() string { 2630 return protoimpl.X.MessageStringOf(x) 2631} 2632 2633func (*GetSnapshotRequest) ProtoMessage() {} 2634 2635func (x *GetSnapshotRequest) ProtoReflect() protoreflect.Message { 2636 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[35] 2637 if protoimpl.UnsafeEnabled && x != nil { 2638 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2639 if ms.LoadMessageInfo() == nil { 2640 ms.StoreMessageInfo(mi) 2641 } 2642 return ms 2643 } 2644 return mi.MessageOf(x) 2645} 2646 2647// Deprecated: Use GetSnapshotRequest.ProtoReflect.Descriptor instead. 2648func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { 2649 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{35} 2650} 2651 2652func (x *GetSnapshotRequest) GetSnapshot() string { 2653 if x != nil { 2654 return x.Snapshot 2655 } 2656 return "" 2657} 2658 2659// Request for the `ListSnapshots` method. 2660type ListSnapshotsRequest struct { 2661 state protoimpl.MessageState 2662 sizeCache protoimpl.SizeCache 2663 unknownFields protoimpl.UnknownFields 2664 2665 // Required. The name of the project in which to list snapshots. 2666 // Format is `projects/{project-id}`. 2667 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 2668 // Maximum number of snapshots to return. 2669 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2670 // The value returned by the last `ListSnapshotsResponse`; indicates that this 2671 // is a continuation of a prior `ListSnapshots` call, and that the system 2672 // should return the next page of data. 2673 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2674} 2675 2676func (x *ListSnapshotsRequest) Reset() { 2677 *x = ListSnapshotsRequest{} 2678 if protoimpl.UnsafeEnabled { 2679 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[36] 2680 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2681 ms.StoreMessageInfo(mi) 2682 } 2683} 2684 2685func (x *ListSnapshotsRequest) String() string { 2686 return protoimpl.X.MessageStringOf(x) 2687} 2688 2689func (*ListSnapshotsRequest) ProtoMessage() {} 2690 2691func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { 2692 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[36] 2693 if protoimpl.UnsafeEnabled && x != nil { 2694 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2695 if ms.LoadMessageInfo() == nil { 2696 ms.StoreMessageInfo(mi) 2697 } 2698 return ms 2699 } 2700 return mi.MessageOf(x) 2701} 2702 2703// Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead. 2704func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { 2705 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{36} 2706} 2707 2708func (x *ListSnapshotsRequest) GetProject() string { 2709 if x != nil { 2710 return x.Project 2711 } 2712 return "" 2713} 2714 2715func (x *ListSnapshotsRequest) GetPageSize() int32 { 2716 if x != nil { 2717 return x.PageSize 2718 } 2719 return 0 2720} 2721 2722func (x *ListSnapshotsRequest) GetPageToken() string { 2723 if x != nil { 2724 return x.PageToken 2725 } 2726 return "" 2727} 2728 2729// Response for the `ListSnapshots` method. 2730type ListSnapshotsResponse struct { 2731 state protoimpl.MessageState 2732 sizeCache protoimpl.SizeCache 2733 unknownFields protoimpl.UnknownFields 2734 2735 // The resulting snapshots. 2736 Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` 2737 // If not empty, indicates that there may be more snapshot that match the 2738 // request; this value should be passed in a new `ListSnapshotsRequest`. 2739 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2740} 2741 2742func (x *ListSnapshotsResponse) Reset() { 2743 *x = ListSnapshotsResponse{} 2744 if protoimpl.UnsafeEnabled { 2745 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[37] 2746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2747 ms.StoreMessageInfo(mi) 2748 } 2749} 2750 2751func (x *ListSnapshotsResponse) String() string { 2752 return protoimpl.X.MessageStringOf(x) 2753} 2754 2755func (*ListSnapshotsResponse) ProtoMessage() {} 2756 2757func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { 2758 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[37] 2759 if protoimpl.UnsafeEnabled && x != nil { 2760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2761 if ms.LoadMessageInfo() == nil { 2762 ms.StoreMessageInfo(mi) 2763 } 2764 return ms 2765 } 2766 return mi.MessageOf(x) 2767} 2768 2769// Deprecated: Use ListSnapshotsResponse.ProtoReflect.Descriptor instead. 2770func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { 2771 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{37} 2772} 2773 2774func (x *ListSnapshotsResponse) GetSnapshots() []*Snapshot { 2775 if x != nil { 2776 return x.Snapshots 2777 } 2778 return nil 2779} 2780 2781func (x *ListSnapshotsResponse) GetNextPageToken() string { 2782 if x != nil { 2783 return x.NextPageToken 2784 } 2785 return "" 2786} 2787 2788// Request for the `DeleteSnapshot` method. 2789type DeleteSnapshotRequest struct { 2790 state protoimpl.MessageState 2791 sizeCache protoimpl.SizeCache 2792 unknownFields protoimpl.UnknownFields 2793 2794 // Required. The name of the snapshot to delete. 2795 // Format is `projects/{project}/snapshots/{snap}`. 2796 Snapshot string `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` 2797} 2798 2799func (x *DeleteSnapshotRequest) Reset() { 2800 *x = DeleteSnapshotRequest{} 2801 if protoimpl.UnsafeEnabled { 2802 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[38] 2803 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2804 ms.StoreMessageInfo(mi) 2805 } 2806} 2807 2808func (x *DeleteSnapshotRequest) String() string { 2809 return protoimpl.X.MessageStringOf(x) 2810} 2811 2812func (*DeleteSnapshotRequest) ProtoMessage() {} 2813 2814func (x *DeleteSnapshotRequest) ProtoReflect() protoreflect.Message { 2815 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[38] 2816 if protoimpl.UnsafeEnabled && x != nil { 2817 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2818 if ms.LoadMessageInfo() == nil { 2819 ms.StoreMessageInfo(mi) 2820 } 2821 return ms 2822 } 2823 return mi.MessageOf(x) 2824} 2825 2826// Deprecated: Use DeleteSnapshotRequest.ProtoReflect.Descriptor instead. 2827func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { 2828 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{38} 2829} 2830 2831func (x *DeleteSnapshotRequest) GetSnapshot() string { 2832 if x != nil { 2833 return x.Snapshot 2834 } 2835 return "" 2836} 2837 2838// Request for the `Seek` method. 2839type SeekRequest struct { 2840 state protoimpl.MessageState 2841 sizeCache protoimpl.SizeCache 2842 unknownFields protoimpl.UnknownFields 2843 2844 // Required. The subscription to affect. 2845 Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` 2846 // Types that are assignable to Target: 2847 // *SeekRequest_Time 2848 // *SeekRequest_Snapshot 2849 Target isSeekRequest_Target `protobuf_oneof:"target"` 2850} 2851 2852func (x *SeekRequest) Reset() { 2853 *x = SeekRequest{} 2854 if protoimpl.UnsafeEnabled { 2855 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[39] 2856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2857 ms.StoreMessageInfo(mi) 2858 } 2859} 2860 2861func (x *SeekRequest) String() string { 2862 return protoimpl.X.MessageStringOf(x) 2863} 2864 2865func (*SeekRequest) ProtoMessage() {} 2866 2867func (x *SeekRequest) ProtoReflect() protoreflect.Message { 2868 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[39] 2869 if protoimpl.UnsafeEnabled && x != nil { 2870 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2871 if ms.LoadMessageInfo() == nil { 2872 ms.StoreMessageInfo(mi) 2873 } 2874 return ms 2875 } 2876 return mi.MessageOf(x) 2877} 2878 2879// Deprecated: Use SeekRequest.ProtoReflect.Descriptor instead. 2880func (*SeekRequest) Descriptor() ([]byte, []int) { 2881 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{39} 2882} 2883 2884func (x *SeekRequest) GetSubscription() string { 2885 if x != nil { 2886 return x.Subscription 2887 } 2888 return "" 2889} 2890 2891func (m *SeekRequest) GetTarget() isSeekRequest_Target { 2892 if m != nil { 2893 return m.Target 2894 } 2895 return nil 2896} 2897 2898func (x *SeekRequest) GetTime() *timestamp.Timestamp { 2899 if x, ok := x.GetTarget().(*SeekRequest_Time); ok { 2900 return x.Time 2901 } 2902 return nil 2903} 2904 2905func (x *SeekRequest) GetSnapshot() string { 2906 if x, ok := x.GetTarget().(*SeekRequest_Snapshot); ok { 2907 return x.Snapshot 2908 } 2909 return "" 2910} 2911 2912type isSeekRequest_Target interface { 2913 isSeekRequest_Target() 2914} 2915 2916type SeekRequest_Time struct { 2917 // The time to seek to. 2918 // Messages retained in the subscription that were published before this 2919 // time are marked as acknowledged, and messages retained in the 2920 // subscription that were published after this time are marked as 2921 // unacknowledged. Note that this operation affects only those messages 2922 // retained in the subscription (configured by the combination of 2923 // `message_retention_duration` and `retain_acked_messages`). For example, 2924 // if `time` corresponds to a point before the message retention 2925 // window (or to a point before the system's notion of the subscription 2926 // creation time), only retained messages will be marked as unacknowledged, 2927 // and already-expunged messages will not be restored. 2928 Time *timestamp.Timestamp `protobuf:"bytes,2,opt,name=time,proto3,oneof"` 2929} 2930 2931type SeekRequest_Snapshot struct { 2932 // The snapshot to seek to. The snapshot's topic must be the same as that of 2933 // the provided subscription. 2934 // Format is `projects/{project}/snapshots/{snap}`. 2935 Snapshot string `protobuf:"bytes,3,opt,name=snapshot,proto3,oneof"` 2936} 2937 2938func (*SeekRequest_Time) isSeekRequest_Target() {} 2939 2940func (*SeekRequest_Snapshot) isSeekRequest_Target() {} 2941 2942// Response for the `Seek` method (this response is empty). 2943type SeekResponse struct { 2944 state protoimpl.MessageState 2945 sizeCache protoimpl.SizeCache 2946 unknownFields protoimpl.UnknownFields 2947} 2948 2949func (x *SeekResponse) Reset() { 2950 *x = SeekResponse{} 2951 if protoimpl.UnsafeEnabled { 2952 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[40] 2953 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2954 ms.StoreMessageInfo(mi) 2955 } 2956} 2957 2958func (x *SeekResponse) String() string { 2959 return protoimpl.X.MessageStringOf(x) 2960} 2961 2962func (*SeekResponse) ProtoMessage() {} 2963 2964func (x *SeekResponse) ProtoReflect() protoreflect.Message { 2965 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[40] 2966 if protoimpl.UnsafeEnabled && x != nil { 2967 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2968 if ms.LoadMessageInfo() == nil { 2969 ms.StoreMessageInfo(mi) 2970 } 2971 return ms 2972 } 2973 return mi.MessageOf(x) 2974} 2975 2976// Deprecated: Use SeekResponse.ProtoReflect.Descriptor instead. 2977func (*SeekResponse) Descriptor() ([]byte, []int) { 2978 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{40} 2979} 2980 2981// Contains information needed for generating an 2982// [OpenID Connect 2983// token](https://developers.google.com/identity/protocols/OpenIDConnect). 2984type PushConfig_OidcToken struct { 2985 state protoimpl.MessageState 2986 sizeCache protoimpl.SizeCache 2987 unknownFields protoimpl.UnknownFields 2988 2989 // [Service account 2990 // email](https://cloud.google.com/iam/docs/service-accounts) 2991 // to be used for generating the OIDC token. The caller (for 2992 // CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must 2993 // have the iam.serviceAccounts.actAs permission for the service account. 2994 ServiceAccountEmail string `protobuf:"bytes,1,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` 2995 // Audience to be used when generating OIDC token. The audience claim 2996 // identifies the recipients that the JWT is intended for. The audience 2997 // value is a single case-sensitive string. Having multiple values (array) 2998 // for the audience field is not supported. More info about the OIDC JWT 2999 // token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 3000 // Note: if not specified, the Push endpoint URL will be used. 3001 Audience string `protobuf:"bytes,2,opt,name=audience,proto3" json:"audience,omitempty"` 3002} 3003 3004func (x *PushConfig_OidcToken) Reset() { 3005 *x = PushConfig_OidcToken{} 3006 if protoimpl.UnsafeEnabled { 3007 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[44] 3008 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3009 ms.StoreMessageInfo(mi) 3010 } 3011} 3012 3013func (x *PushConfig_OidcToken) String() string { 3014 return protoimpl.X.MessageStringOf(x) 3015} 3016 3017func (*PushConfig_OidcToken) ProtoMessage() {} 3018 3019func (x *PushConfig_OidcToken) ProtoReflect() protoreflect.Message { 3020 mi := &file_google_pubsub_v1_pubsub_proto_msgTypes[44] 3021 if protoimpl.UnsafeEnabled && x != nil { 3022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3023 if ms.LoadMessageInfo() == nil { 3024 ms.StoreMessageInfo(mi) 3025 } 3026 return ms 3027 } 3028 return mi.MessageOf(x) 3029} 3030 3031// Deprecated: Use PushConfig_OidcToken.ProtoReflect.Descriptor instead. 3032func (*PushConfig_OidcToken) Descriptor() ([]byte, []int) { 3033 return file_google_pubsub_v1_pubsub_proto_rawDescGZIP(), []int{18, 0} 3034} 3035 3036func (x *PushConfig_OidcToken) GetServiceAccountEmail() string { 3037 if x != nil { 3038 return x.ServiceAccountEmail 3039 } 3040 return "" 3041} 3042 3043func (x *PushConfig_OidcToken) GetAudience() string { 3044 if x != nil { 3045 return x.Audience 3046 } 3047 return "" 3048} 3049 3050var File_google_pubsub_v1_pubsub_proto protoreflect.FileDescriptor 3051 3052var file_google_pubsub_v1_pubsub_proto_rawDesc = []byte{ 3053 0x0a, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2f, 3054 0x76, 0x31, 0x2f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 3055 0x10, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3056 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 3057 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 3058 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 3059 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3060 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 3061 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3062 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 3063 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 3064 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 3065 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 3066 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3067 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3068 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 3069 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 3070 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 3071 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x56, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 3072 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x0a, 0x1b, 3073 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 3074 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3075 0x09, 0x52, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 3076 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x02, 0x0a, 3077 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 3078 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 3079 0x3b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 3080 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 3081 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 3082 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x16, 3083 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 3084 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 3085 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 3086 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 3087 0x6c, 0x69, 0x63, 0x79, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x6f, 3088 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x6b, 0x6d, 3089 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 3090 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 3091 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 3092 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 3093 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 3094 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x54, 0xea, 0x41, 0x51, 0x0a, 0x1b, 0x70, 0x75, 3095 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3096 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x21, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3097 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 3098 0x70, 0x69, 0x63, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x7d, 0x12, 0x0f, 0x5f, 0x64, 3099 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2d, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x22, 0xb4, 0x02, 3100 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 3101 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 3102 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 3103 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3104 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x73, 0x75, 3105 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 3106 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 3107 0x75, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 3108 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 3109 0x65, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 3110 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3111 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 3112 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x69, 3113 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 3114 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 3115 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 3116 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 3117 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 3118 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 3119 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 3120 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 3121 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 3122 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3123 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 3124 0x69, 0x63, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 3125 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 3126 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3127 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 3128 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 3129 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 3130 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3131 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 3132 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 3133 0x8d, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 3134 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 3135 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x70, 0x75, 0x62, 0x73, 0x75, 3136 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3137 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 3138 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 3139 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 3140 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 3141 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 3142 0x32, 0x0a, 0x0f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 3143 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 3144 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 3145 0x49, 0x64, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 3146 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 3147 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 3148 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 3149 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 3150 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 3151 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 3152 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 3153 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 3154 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 3155 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 3156 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x6f, 3157 0x70, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 3158 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 3159 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 3160 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 3161 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 3162 0x6b, 0x65, 0x6e, 0x22, 0x96, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 3163 0x63, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 3164 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 3165 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x70, 0x75, 3166 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3167 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 3168 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 3169 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 3170 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 3171 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, 3172 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 3173 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3174 0x4d, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3175 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 3176 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3177 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3178 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 3179 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 3180 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 3181 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x54, 3182 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 3183 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 3184 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x70, 0x75, 0x62, 3185 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3186 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 3187 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 3188 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 3189 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 3190 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x62, 0x0a, 0x1a, 0x4c, 3191 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 3192 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6e, 0x61, 3193 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6e, 3194 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 3195 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3196 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 3197 0x4f, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 3198 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 3199 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x70, 0x75, 3200 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3201 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 3202 0x22, 0xee, 0x06, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3203 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 3204 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 3205 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 3206 0x1d, 0x0a, 0x1b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3207 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 3208 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x3d, 0x0a, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x63, 0x6f, 3209 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 3210 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 3211 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x43, 0x6f, 3212 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x61, 0x64, 3213 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 3214 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 3215 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 3216 0x5f, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 3217 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x6b, 3218 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, 3219 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 3220 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3221 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3222 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x6d, 0x65, 0x73, 0x73, 0x61, 3223 0x67, 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 3224 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 3225 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3226 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3227 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 3228 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 3229 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 3230 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 3231 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 3232 0x4f, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 3233 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 3234 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 3235 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x10, 3236 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 3237 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 3238 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x12, 0x64, 0x65, 0x61, 0x64, 3239 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 3240 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 3241 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x74, 0x74, 3242 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x10, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x65, 3243 0x74, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 3244 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 3245 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3246 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 3247 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 3248 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 3249 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 3250 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 3251 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x58, 0xea, 0x41, 0x55, 0x0a, 0x22, 0x70, 0x75, 3252 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3253 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3254 0x12, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 3255 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3256 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3257 0x7d, 0x22, 0x95, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 3258 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x62, 0x61, 0x63, 3259 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 3260 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 3261 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x42, 0x61, 3262 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x42, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 3263 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3264 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3265 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 3266 0x75, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x22, 0x72, 0x0a, 0x10, 0x44, 0x65, 0x61, 3267 0x64, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2a, 0x0a, 3268 0x11, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x70, 3269 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x65, 3270 0x74, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 3271 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 3272 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x6c, 3273 0x69, 0x76, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x22, 0x3f, 0x0a, 3274 0x10, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 3275 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3276 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3277 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0xfd, 3278 0x02, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 3279 0x0d, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 3280 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 3281 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 3282 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3283 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 3284 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 3285 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 3286 0x12, 0x47, 0x0a, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 3287 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 3288 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 3289 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 3290 0x6f, 0x69, 0x64, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x5b, 0x0a, 0x09, 0x4f, 0x69, 0x64, 3291 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 3292 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 3293 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 3294 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 3295 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 3296 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 3297 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 3298 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 3299 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 3300 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 3301 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x8e, 3302 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 3303 0x67, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 3304 0x28, 0x09, 0x52, 0x05, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x73, 3305 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 3306 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 3307 0x62, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 3308 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 3309 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 3310 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x22, 3311 0x68, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3312 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 3313 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 3314 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 3315 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 3316 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 3317 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x19, 0x55, 0x70, 3318 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3319 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 3320 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 3321 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 3322 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 3323 0x41, 0x02, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3324 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 3325 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3326 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 3327 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 3328 0x73, 0x6b, 0x22, 0xa5, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 3329 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3330 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3331 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 3332 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 3333 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 3334 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 3335 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3336 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 3337 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 3338 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4c, 3339 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3340 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 3341 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3342 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 3343 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3344 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 3345 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 3346 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 3347 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 3348 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 3349 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3350 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 3351 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3352 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3353 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3354 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x17, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x75, 3355 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3356 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 3357 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 3358 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3359 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3360 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 3361 0x42, 0x0a, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 3362 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 3363 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 3364 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 3365 0x66, 0x69, 0x67, 0x22, 0xbb, 0x01, 0x0a, 0x0b, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 3366 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3367 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 3368 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3369 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3370 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3371 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x69, 0x6d, 3372 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 3373 0x05, 0x18, 0x01, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x49, 0x6d, 3374 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 3375 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 3376 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 3377 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3378 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x6d, 0x65, 3379 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 3380 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 3381 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 3382 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 3383 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x18, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x6b, 0x44, 3384 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 3385 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 3386 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 0x75, 3387 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3388 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3389 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 3390 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 3391 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x14, 3392 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x63, 3393 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 3394 0x12, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 3395 0x6e, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 3396 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 3397 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3398 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3399 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3400 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 3401 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 3402 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 3403 0x52, 0x06, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x73, 0x22, 0xcf, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 3404 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3405 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3406 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 3407 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3408 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3409 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3410 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 3411 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x6f, 3412 0x64, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 3413 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x6d, 0x6f, 0x64, 3414 0x69, 0x66, 0x79, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 3415 0x64, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x61, 3416 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 3417 0x03, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x44, 0x65, 0x61, 0x64, 0x6c, 3418 0x69, 0x6e, 0x65, 0x41, 0x63, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x1b, 0x73, 0x74, 0x72, 3419 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 3420 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 3421 0xe0, 0x41, 0x02, 0x52, 0x18, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x6b, 0x44, 0x65, 3422 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1b, 0x0a, 3423 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 3424 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x15, 0x53, 0x74, 3425 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 3426 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 3427 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 3428 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3429 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 3430 0x65, 0x52, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 3431 0x67, 0x65, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 3432 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 3433 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 3434 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3435 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 3436 0x68, 0x6f, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 3437 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 3438 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 3439 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 3440 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 3441 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 3442 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3443 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 3444 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 3445 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 3446 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 3447 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 3448 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 3449 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 3450 0x01, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 3451 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x73, 3452 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 3453 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 3454 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 3455 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 3456 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 3457 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 3458 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 3459 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xdc, 0x02, 0x0a, 0x08, 0x53, 3460 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 3461 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x74, 3462 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xfa, 0x41, 0x1d, 0x0a, 3463 0x1b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3464 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 3465 0x70, 0x69, 0x63, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 3466 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3467 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 3468 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 3469 0x12, 0x3e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 3470 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3471 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x4c, 0x61, 0x62, 3472 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 3473 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 3474 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 3475 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3476 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x4c, 0xea, 0x41, 0x49, 3477 0x0a, 0x1e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 3478 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 3479 0x12, 0x27, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 3480 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x7b, 3481 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x7d, 0x22, 0x58, 0x0a, 0x12, 0x47, 0x65, 0x74, 3482 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3483 0x42, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 3484 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x70, 0x75, 0x62, 0x73, 0x75, 3485 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3486 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 3487 0x68, 0x6f, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 3488 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x07, 3489 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 3490 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 3491 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3492 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 3493 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 3494 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 3495 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 3496 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 3497 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 3498 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3499 0x12, 0x38, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 3500 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3501 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 3502 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 3503 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 3504 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 3505 0x65, 0x6e, 0x22, 0x5b, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 3506 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x73, 3507 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 3508 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 3509 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 3510 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 3511 0xdc, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3512 0x4e, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 3513 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x70, 3514 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3515 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3516 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 3517 0x30, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 3518 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 3519 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 3520 0x65, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x03, 0x20, 3521 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3522 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3523 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x00, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 3524 0x73, 0x68, 0x6f, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x0e, 3525 0x0a, 0x0c, 0x53, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 3526 0x09, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x71, 0x0a, 0x0b, 3527 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x17, 0x2e, 0x67, 0x6f, 3528 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 3529 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 3530 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x30, 0x82, 3531 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x1a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 3532 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x6f, 0x70, 0x69, 3533 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 3534 0x7d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x24, 3535 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3536 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 3537 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 3538 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x2f, 0x82, 3539 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 3540 0x63, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 3541 0x2a, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x93, 3542 0x01, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 3543 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 3544 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 3545 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 3546 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 3547 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x6f, 3548 0x70, 0x69, 0x63, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 3549 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 3550 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0e, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2c, 0x6d, 0x65, 0x73, 0x73, 3551 0x61, 0x67, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 3552 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3553 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 3554 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3555 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x2f, 0x82, 0xd3, 3556 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 3557 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x6f, 0x70, 0x69, 3558 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x8a, 0x01, 3559 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x67, 3560 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 3561 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3562 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 3563 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x52, 3564 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 3565 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x70, 0x72, 3566 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 3567 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0xba, 0x01, 0x0a, 0x16, 0x4c, 3568 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 3569 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3570 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 3571 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 3572 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3573 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 3574 0x70, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3575 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 3576 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x3d, 0x70, 0x72, 0x6f, 3577 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 0x2a, 3578 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xda, 3579 0x41, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0xaa, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 3580 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2b, 3581 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3582 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 3583 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 3584 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 3585 0x69, 0x73, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 3586 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 3587 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x3d, 0x70, 0x72, 3588 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 3589 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0xda, 0x41, 0x05, 0x74, 3590 0x6f, 0x70, 0x69, 0x63, 0x12, 0x7c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 3591 0x70, 0x69, 0x63, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3592 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x70, 3593 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3594 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 3595 0x79, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 3596 0x74, 0x6f, 0x70, 0x69, 0x63, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 3597 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x05, 0x74, 0x6f, 0x70, 3598 0x69, 0x63, 0x1a, 0x70, 0xca, 0x41, 0x15, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 3599 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x55, 0x68, 3600 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3601 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 3602 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 3603 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3604 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x70, 0x75, 3605 0x62, 0x73, 0x75, 0x62, 0x32, 0x83, 0x15, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3606 0x62, 0x65, 0x72, 0x12, 0xb4, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 3607 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 3608 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 3609 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 3610 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 3611 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 3612 0x02, 0x2a, 0x1a, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 3613 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3614 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x2b, 0x6e, 3615 0x61, 0x6d, 0x65, 0x2c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x63, 3616 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 3617 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0f, 0x47, 3618 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 3619 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3620 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3621 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3622 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 3623 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 3624 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3625 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 3626 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 3627 0x41, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xa0, 3628 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3629 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3630 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 3631 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 3632 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 3633 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3634 0x6f, 0x6e, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x32, 0x32, 0x2f, 0x76, 0x31, 0x2f, 3635 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 3636 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 3637 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 3638 0x2a, 0x12, 0xa6, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 3639 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3640 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 3641 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 3642 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3643 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 3644 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3645 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 3646 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 3647 0x2a, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3648 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x12, 0x44, 3649 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3650 0x6e, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 3651 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 3652 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 3653 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3654 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 3655 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3656 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 3657 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x0c, 3658 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xcf, 0x01, 0x0a, 3659 0x11, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x6b, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 3660 0x6e, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 3661 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x6b, 0x44, 3662 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 3663 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3664 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 3665 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3666 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 3667 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x6f, 3668 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x6b, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 3669 0x01, 0x2a, 0xda, 0x41, 0x29, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3670 0x6e, 0x2c, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x2c, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 3671 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0xa8, 3672 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x12, 0x24, 3673 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 3674 0x31, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 3675 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 3676 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5b, 0x82, 0xd3, 3677 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 3678 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 3679 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3680 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x3a, 3681 0x01, 0x2a, 0xda, 0x41, 0x14, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3682 0x6e, 0x2c, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x12, 0xb3, 0x01, 0x0a, 0x04, 0x50, 0x75, 3683 0x6c, 0x6c, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 3684 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3685 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 3686 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3687 0x65, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 3688 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 3689 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 3690 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x75, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 3691 0xda, 0x41, 0x2c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 3692 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 3693 0x6c, 0x79, 0x2c, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 3694 0x66, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x6c, 0x6c, 3695 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3696 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x6c, 3697 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3698 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 3699 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3700 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xbb, 0x01, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, 3701 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x67, 3702 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 3703 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3704 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3705 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 3706 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 3707 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3708 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3709 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x75, 0x73, 3710 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x18, 0x73, 0x75, 0x62, 3711 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x63, 3712 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 3713 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3714 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 3715 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 3716 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 3717 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 3718 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3d, 0x70, 3719 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 3720 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 3721 0x74, 0x12, 0x96, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 3722 0x6f, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 3723 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 3724 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 3725 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 3726 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 3727 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 3728 0x31, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3729 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 3730 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x97, 0x01, 0x0a, 0x0e, 0x43, 3731 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x27, 0x2e, 3732 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 3733 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 3734 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3735 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 3736 0x6f, 0x74, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x1a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 3737 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 3738 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 3739 0xda, 0x41, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 3740 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x8c, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 3741 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3742 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 3743 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3744 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3745 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x35, 0x82, 0xd3, 3746 0xe4, 0x93, 0x02, 0x2f, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 3747 0x68, 0x6f, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 3748 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 3749 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 3750 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3751 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 3752 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 3753 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3754 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x2a, 3755 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3d, 0x70, 3756 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 3757 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 3758 0x74, 0x12, 0x84, 0x01, 0x0a, 0x04, 0x53, 0x65, 0x65, 0x6b, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 3759 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 3760 0x65, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3761 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x65, 3762 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 3763 0x37, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 3764 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 3765 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 3766 0x3a, 0x73, 0x65, 0x65, 0x6b, 0x3a, 0x01, 0x2a, 0x1a, 0x70, 0xca, 0x41, 0x15, 0x70, 0x75, 0x62, 3767 0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3768 0x6f, 0x6d, 0xd2, 0x41, 0x55, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 3769 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3770 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 3771 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 3772 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 3773 0x75, 0x74, 0x68, 0x2f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x42, 0xae, 0x01, 0x0a, 0x14, 0x63, 3774 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3775 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 3776 0x50, 0x01, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 3777 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 3778 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 3779 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x16, 3780 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x50, 0x75, 0x62, 3781 0x53, 0x75, 0x62, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 3782 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x5c, 0x56, 0x31, 0xea, 3783 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 3784 0x3a, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 3785 0x74, 0x6f, 0x33, 3786} 3787 3788var ( 3789 file_google_pubsub_v1_pubsub_proto_rawDescOnce sync.Once 3790 file_google_pubsub_v1_pubsub_proto_rawDescData = file_google_pubsub_v1_pubsub_proto_rawDesc 3791) 3792 3793func file_google_pubsub_v1_pubsub_proto_rawDescGZIP() []byte { 3794 file_google_pubsub_v1_pubsub_proto_rawDescOnce.Do(func() { 3795 file_google_pubsub_v1_pubsub_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_pubsub_v1_pubsub_proto_rawDescData) 3796 }) 3797 return file_google_pubsub_v1_pubsub_proto_rawDescData 3798} 3799 3800var file_google_pubsub_v1_pubsub_proto_msgTypes = make([]protoimpl.MessageInfo, 48) 3801var file_google_pubsub_v1_pubsub_proto_goTypes = []interface{}{ 3802 (*MessageStoragePolicy)(nil), // 0: google.pubsub.v1.MessageStoragePolicy 3803 (*Topic)(nil), // 1: google.pubsub.v1.Topic 3804 (*PubsubMessage)(nil), // 2: google.pubsub.v1.PubsubMessage 3805 (*GetTopicRequest)(nil), // 3: google.pubsub.v1.GetTopicRequest 3806 (*UpdateTopicRequest)(nil), // 4: google.pubsub.v1.UpdateTopicRequest 3807 (*PublishRequest)(nil), // 5: google.pubsub.v1.PublishRequest 3808 (*PublishResponse)(nil), // 6: google.pubsub.v1.PublishResponse 3809 (*ListTopicsRequest)(nil), // 7: google.pubsub.v1.ListTopicsRequest 3810 (*ListTopicsResponse)(nil), // 8: google.pubsub.v1.ListTopicsResponse 3811 (*ListTopicSubscriptionsRequest)(nil), // 9: google.pubsub.v1.ListTopicSubscriptionsRequest 3812 (*ListTopicSubscriptionsResponse)(nil), // 10: google.pubsub.v1.ListTopicSubscriptionsResponse 3813 (*ListTopicSnapshotsRequest)(nil), // 11: google.pubsub.v1.ListTopicSnapshotsRequest 3814 (*ListTopicSnapshotsResponse)(nil), // 12: google.pubsub.v1.ListTopicSnapshotsResponse 3815 (*DeleteTopicRequest)(nil), // 13: google.pubsub.v1.DeleteTopicRequest 3816 (*Subscription)(nil), // 14: google.pubsub.v1.Subscription 3817 (*RetryPolicy)(nil), // 15: google.pubsub.v1.RetryPolicy 3818 (*DeadLetterPolicy)(nil), // 16: google.pubsub.v1.DeadLetterPolicy 3819 (*ExpirationPolicy)(nil), // 17: google.pubsub.v1.ExpirationPolicy 3820 (*PushConfig)(nil), // 18: google.pubsub.v1.PushConfig 3821 (*ReceivedMessage)(nil), // 19: google.pubsub.v1.ReceivedMessage 3822 (*GetSubscriptionRequest)(nil), // 20: google.pubsub.v1.GetSubscriptionRequest 3823 (*UpdateSubscriptionRequest)(nil), // 21: google.pubsub.v1.UpdateSubscriptionRequest 3824 (*ListSubscriptionsRequest)(nil), // 22: google.pubsub.v1.ListSubscriptionsRequest 3825 (*ListSubscriptionsResponse)(nil), // 23: google.pubsub.v1.ListSubscriptionsResponse 3826 (*DeleteSubscriptionRequest)(nil), // 24: google.pubsub.v1.DeleteSubscriptionRequest 3827 (*ModifyPushConfigRequest)(nil), // 25: google.pubsub.v1.ModifyPushConfigRequest 3828 (*PullRequest)(nil), // 26: google.pubsub.v1.PullRequest 3829 (*PullResponse)(nil), // 27: google.pubsub.v1.PullResponse 3830 (*ModifyAckDeadlineRequest)(nil), // 28: google.pubsub.v1.ModifyAckDeadlineRequest 3831 (*AcknowledgeRequest)(nil), // 29: google.pubsub.v1.AcknowledgeRequest 3832 (*StreamingPullRequest)(nil), // 30: google.pubsub.v1.StreamingPullRequest 3833 (*StreamingPullResponse)(nil), // 31: google.pubsub.v1.StreamingPullResponse 3834 (*CreateSnapshotRequest)(nil), // 32: google.pubsub.v1.CreateSnapshotRequest 3835 (*UpdateSnapshotRequest)(nil), // 33: google.pubsub.v1.UpdateSnapshotRequest 3836 (*Snapshot)(nil), // 34: google.pubsub.v1.Snapshot 3837 (*GetSnapshotRequest)(nil), // 35: google.pubsub.v1.GetSnapshotRequest 3838 (*ListSnapshotsRequest)(nil), // 36: google.pubsub.v1.ListSnapshotsRequest 3839 (*ListSnapshotsResponse)(nil), // 37: google.pubsub.v1.ListSnapshotsResponse 3840 (*DeleteSnapshotRequest)(nil), // 38: google.pubsub.v1.DeleteSnapshotRequest 3841 (*SeekRequest)(nil), // 39: google.pubsub.v1.SeekRequest 3842 (*SeekResponse)(nil), // 40: google.pubsub.v1.SeekResponse 3843 nil, // 41: google.pubsub.v1.Topic.LabelsEntry 3844 nil, // 42: google.pubsub.v1.PubsubMessage.AttributesEntry 3845 nil, // 43: google.pubsub.v1.Subscription.LabelsEntry 3846 (*PushConfig_OidcToken)(nil), // 44: google.pubsub.v1.PushConfig.OidcToken 3847 nil, // 45: google.pubsub.v1.PushConfig.AttributesEntry 3848 nil, // 46: google.pubsub.v1.CreateSnapshotRequest.LabelsEntry 3849 nil, // 47: google.pubsub.v1.Snapshot.LabelsEntry 3850 (*timestamp.Timestamp)(nil), // 48: google.protobuf.Timestamp 3851 (*field_mask.FieldMask)(nil), // 49: google.protobuf.FieldMask 3852 (*duration.Duration)(nil), // 50: google.protobuf.Duration 3853 (*empty.Empty)(nil), // 51: google.protobuf.Empty 3854} 3855var file_google_pubsub_v1_pubsub_proto_depIdxs = []int32{ 3856 41, // 0: google.pubsub.v1.Topic.labels:type_name -> google.pubsub.v1.Topic.LabelsEntry 3857 0, // 1: google.pubsub.v1.Topic.message_storage_policy:type_name -> google.pubsub.v1.MessageStoragePolicy 3858 42, // 2: google.pubsub.v1.PubsubMessage.attributes:type_name -> google.pubsub.v1.PubsubMessage.AttributesEntry 3859 48, // 3: google.pubsub.v1.PubsubMessage.publish_time:type_name -> google.protobuf.Timestamp 3860 1, // 4: google.pubsub.v1.UpdateTopicRequest.topic:type_name -> google.pubsub.v1.Topic 3861 49, // 5: google.pubsub.v1.UpdateTopicRequest.update_mask:type_name -> google.protobuf.FieldMask 3862 2, // 6: google.pubsub.v1.PublishRequest.messages:type_name -> google.pubsub.v1.PubsubMessage 3863 1, // 7: google.pubsub.v1.ListTopicsResponse.topics:type_name -> google.pubsub.v1.Topic 3864 18, // 8: google.pubsub.v1.Subscription.push_config:type_name -> google.pubsub.v1.PushConfig 3865 50, // 9: google.pubsub.v1.Subscription.message_retention_duration:type_name -> google.protobuf.Duration 3866 43, // 10: google.pubsub.v1.Subscription.labels:type_name -> google.pubsub.v1.Subscription.LabelsEntry 3867 17, // 11: google.pubsub.v1.Subscription.expiration_policy:type_name -> google.pubsub.v1.ExpirationPolicy 3868 16, // 12: google.pubsub.v1.Subscription.dead_letter_policy:type_name -> google.pubsub.v1.DeadLetterPolicy 3869 15, // 13: google.pubsub.v1.Subscription.retry_policy:type_name -> google.pubsub.v1.RetryPolicy 3870 50, // 14: google.pubsub.v1.RetryPolicy.minimum_backoff:type_name -> google.protobuf.Duration 3871 50, // 15: google.pubsub.v1.RetryPolicy.maximum_backoff:type_name -> google.protobuf.Duration 3872 50, // 16: google.pubsub.v1.ExpirationPolicy.ttl:type_name -> google.protobuf.Duration 3873 45, // 17: google.pubsub.v1.PushConfig.attributes:type_name -> google.pubsub.v1.PushConfig.AttributesEntry 3874 44, // 18: google.pubsub.v1.PushConfig.oidc_token:type_name -> google.pubsub.v1.PushConfig.OidcToken 3875 2, // 19: google.pubsub.v1.ReceivedMessage.message:type_name -> google.pubsub.v1.PubsubMessage 3876 14, // 20: google.pubsub.v1.UpdateSubscriptionRequest.subscription:type_name -> google.pubsub.v1.Subscription 3877 49, // 21: google.pubsub.v1.UpdateSubscriptionRequest.update_mask:type_name -> google.protobuf.FieldMask 3878 14, // 22: google.pubsub.v1.ListSubscriptionsResponse.subscriptions:type_name -> google.pubsub.v1.Subscription 3879 18, // 23: google.pubsub.v1.ModifyPushConfigRequest.push_config:type_name -> google.pubsub.v1.PushConfig 3880 19, // 24: google.pubsub.v1.PullResponse.received_messages:type_name -> google.pubsub.v1.ReceivedMessage 3881 19, // 25: google.pubsub.v1.StreamingPullResponse.received_messages:type_name -> google.pubsub.v1.ReceivedMessage 3882 46, // 26: google.pubsub.v1.CreateSnapshotRequest.labels:type_name -> google.pubsub.v1.CreateSnapshotRequest.LabelsEntry 3883 34, // 27: google.pubsub.v1.UpdateSnapshotRequest.snapshot:type_name -> google.pubsub.v1.Snapshot 3884 49, // 28: google.pubsub.v1.UpdateSnapshotRequest.update_mask:type_name -> google.protobuf.FieldMask 3885 48, // 29: google.pubsub.v1.Snapshot.expire_time:type_name -> google.protobuf.Timestamp 3886 47, // 30: google.pubsub.v1.Snapshot.labels:type_name -> google.pubsub.v1.Snapshot.LabelsEntry 3887 34, // 31: google.pubsub.v1.ListSnapshotsResponse.snapshots:type_name -> google.pubsub.v1.Snapshot 3888 48, // 32: google.pubsub.v1.SeekRequest.time:type_name -> google.protobuf.Timestamp 3889 1, // 33: google.pubsub.v1.Publisher.CreateTopic:input_type -> google.pubsub.v1.Topic 3890 4, // 34: google.pubsub.v1.Publisher.UpdateTopic:input_type -> google.pubsub.v1.UpdateTopicRequest 3891 5, // 35: google.pubsub.v1.Publisher.Publish:input_type -> google.pubsub.v1.PublishRequest 3892 3, // 36: google.pubsub.v1.Publisher.GetTopic:input_type -> google.pubsub.v1.GetTopicRequest 3893 7, // 37: google.pubsub.v1.Publisher.ListTopics:input_type -> google.pubsub.v1.ListTopicsRequest 3894 9, // 38: google.pubsub.v1.Publisher.ListTopicSubscriptions:input_type -> google.pubsub.v1.ListTopicSubscriptionsRequest 3895 11, // 39: google.pubsub.v1.Publisher.ListTopicSnapshots:input_type -> google.pubsub.v1.ListTopicSnapshotsRequest 3896 13, // 40: google.pubsub.v1.Publisher.DeleteTopic:input_type -> google.pubsub.v1.DeleteTopicRequest 3897 14, // 41: google.pubsub.v1.Subscriber.CreateSubscription:input_type -> google.pubsub.v1.Subscription 3898 20, // 42: google.pubsub.v1.Subscriber.GetSubscription:input_type -> google.pubsub.v1.GetSubscriptionRequest 3899 21, // 43: google.pubsub.v1.Subscriber.UpdateSubscription:input_type -> google.pubsub.v1.UpdateSubscriptionRequest 3900 22, // 44: google.pubsub.v1.Subscriber.ListSubscriptions:input_type -> google.pubsub.v1.ListSubscriptionsRequest 3901 24, // 45: google.pubsub.v1.Subscriber.DeleteSubscription:input_type -> google.pubsub.v1.DeleteSubscriptionRequest 3902 28, // 46: google.pubsub.v1.Subscriber.ModifyAckDeadline:input_type -> google.pubsub.v1.ModifyAckDeadlineRequest 3903 29, // 47: google.pubsub.v1.Subscriber.Acknowledge:input_type -> google.pubsub.v1.AcknowledgeRequest 3904 26, // 48: google.pubsub.v1.Subscriber.Pull:input_type -> google.pubsub.v1.PullRequest 3905 30, // 49: google.pubsub.v1.Subscriber.StreamingPull:input_type -> google.pubsub.v1.StreamingPullRequest 3906 25, // 50: google.pubsub.v1.Subscriber.ModifyPushConfig:input_type -> google.pubsub.v1.ModifyPushConfigRequest 3907 35, // 51: google.pubsub.v1.Subscriber.GetSnapshot:input_type -> google.pubsub.v1.GetSnapshotRequest 3908 36, // 52: google.pubsub.v1.Subscriber.ListSnapshots:input_type -> google.pubsub.v1.ListSnapshotsRequest 3909 32, // 53: google.pubsub.v1.Subscriber.CreateSnapshot:input_type -> google.pubsub.v1.CreateSnapshotRequest 3910 33, // 54: google.pubsub.v1.Subscriber.UpdateSnapshot:input_type -> google.pubsub.v1.UpdateSnapshotRequest 3911 38, // 55: google.pubsub.v1.Subscriber.DeleteSnapshot:input_type -> google.pubsub.v1.DeleteSnapshotRequest 3912 39, // 56: google.pubsub.v1.Subscriber.Seek:input_type -> google.pubsub.v1.SeekRequest 3913 1, // 57: google.pubsub.v1.Publisher.CreateTopic:output_type -> google.pubsub.v1.Topic 3914 1, // 58: google.pubsub.v1.Publisher.UpdateTopic:output_type -> google.pubsub.v1.Topic 3915 6, // 59: google.pubsub.v1.Publisher.Publish:output_type -> google.pubsub.v1.PublishResponse 3916 1, // 60: google.pubsub.v1.Publisher.GetTopic:output_type -> google.pubsub.v1.Topic 3917 8, // 61: google.pubsub.v1.Publisher.ListTopics:output_type -> google.pubsub.v1.ListTopicsResponse 3918 10, // 62: google.pubsub.v1.Publisher.ListTopicSubscriptions:output_type -> google.pubsub.v1.ListTopicSubscriptionsResponse 3919 12, // 63: google.pubsub.v1.Publisher.ListTopicSnapshots:output_type -> google.pubsub.v1.ListTopicSnapshotsResponse 3920 51, // 64: google.pubsub.v1.Publisher.DeleteTopic:output_type -> google.protobuf.Empty 3921 14, // 65: google.pubsub.v1.Subscriber.CreateSubscription:output_type -> google.pubsub.v1.Subscription 3922 14, // 66: google.pubsub.v1.Subscriber.GetSubscription:output_type -> google.pubsub.v1.Subscription 3923 14, // 67: google.pubsub.v1.Subscriber.UpdateSubscription:output_type -> google.pubsub.v1.Subscription 3924 23, // 68: google.pubsub.v1.Subscriber.ListSubscriptions:output_type -> google.pubsub.v1.ListSubscriptionsResponse 3925 51, // 69: google.pubsub.v1.Subscriber.DeleteSubscription:output_type -> google.protobuf.Empty 3926 51, // 70: google.pubsub.v1.Subscriber.ModifyAckDeadline:output_type -> google.protobuf.Empty 3927 51, // 71: google.pubsub.v1.Subscriber.Acknowledge:output_type -> google.protobuf.Empty 3928 27, // 72: google.pubsub.v1.Subscriber.Pull:output_type -> google.pubsub.v1.PullResponse 3929 31, // 73: google.pubsub.v1.Subscriber.StreamingPull:output_type -> google.pubsub.v1.StreamingPullResponse 3930 51, // 74: google.pubsub.v1.Subscriber.ModifyPushConfig:output_type -> google.protobuf.Empty 3931 34, // 75: google.pubsub.v1.Subscriber.GetSnapshot:output_type -> google.pubsub.v1.Snapshot 3932 37, // 76: google.pubsub.v1.Subscriber.ListSnapshots:output_type -> google.pubsub.v1.ListSnapshotsResponse 3933 34, // 77: google.pubsub.v1.Subscriber.CreateSnapshot:output_type -> google.pubsub.v1.Snapshot 3934 34, // 78: google.pubsub.v1.Subscriber.UpdateSnapshot:output_type -> google.pubsub.v1.Snapshot 3935 51, // 79: google.pubsub.v1.Subscriber.DeleteSnapshot:output_type -> google.protobuf.Empty 3936 40, // 80: google.pubsub.v1.Subscriber.Seek:output_type -> google.pubsub.v1.SeekResponse 3937 57, // [57:81] is the sub-list for method output_type 3938 33, // [33:57] is the sub-list for method input_type 3939 33, // [33:33] is the sub-list for extension type_name 3940 33, // [33:33] is the sub-list for extension extendee 3941 0, // [0:33] is the sub-list for field type_name 3942} 3943 3944func init() { file_google_pubsub_v1_pubsub_proto_init() } 3945func file_google_pubsub_v1_pubsub_proto_init() { 3946 if File_google_pubsub_v1_pubsub_proto != nil { 3947 return 3948 } 3949 if !protoimpl.UnsafeEnabled { 3950 file_google_pubsub_v1_pubsub_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 3951 switch v := v.(*MessageStoragePolicy); i { 3952 case 0: 3953 return &v.state 3954 case 1: 3955 return &v.sizeCache 3956 case 2: 3957 return &v.unknownFields 3958 default: 3959 return nil 3960 } 3961 } 3962 file_google_pubsub_v1_pubsub_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 3963 switch v := v.(*Topic); i { 3964 case 0: 3965 return &v.state 3966 case 1: 3967 return &v.sizeCache 3968 case 2: 3969 return &v.unknownFields 3970 default: 3971 return nil 3972 } 3973 } 3974 file_google_pubsub_v1_pubsub_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3975 switch v := v.(*PubsubMessage); i { 3976 case 0: 3977 return &v.state 3978 case 1: 3979 return &v.sizeCache 3980 case 2: 3981 return &v.unknownFields 3982 default: 3983 return nil 3984 } 3985 } 3986 file_google_pubsub_v1_pubsub_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3987 switch v := v.(*GetTopicRequest); i { 3988 case 0: 3989 return &v.state 3990 case 1: 3991 return &v.sizeCache 3992 case 2: 3993 return &v.unknownFields 3994 default: 3995 return nil 3996 } 3997 } 3998 file_google_pubsub_v1_pubsub_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3999 switch v := v.(*UpdateTopicRequest); i { 4000 case 0: 4001 return &v.state 4002 case 1: 4003 return &v.sizeCache 4004 case 2: 4005 return &v.unknownFields 4006 default: 4007 return nil 4008 } 4009 } 4010 file_google_pubsub_v1_pubsub_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4011 switch v := v.(*PublishRequest); i { 4012 case 0: 4013 return &v.state 4014 case 1: 4015 return &v.sizeCache 4016 case 2: 4017 return &v.unknownFields 4018 default: 4019 return nil 4020 } 4021 } 4022 file_google_pubsub_v1_pubsub_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4023 switch v := v.(*PublishResponse); i { 4024 case 0: 4025 return &v.state 4026 case 1: 4027 return &v.sizeCache 4028 case 2: 4029 return &v.unknownFields 4030 default: 4031 return nil 4032 } 4033 } 4034 file_google_pubsub_v1_pubsub_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4035 switch v := v.(*ListTopicsRequest); i { 4036 case 0: 4037 return &v.state 4038 case 1: 4039 return &v.sizeCache 4040 case 2: 4041 return &v.unknownFields 4042 default: 4043 return nil 4044 } 4045 } 4046 file_google_pubsub_v1_pubsub_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4047 switch v := v.(*ListTopicsResponse); i { 4048 case 0: 4049 return &v.state 4050 case 1: 4051 return &v.sizeCache 4052 case 2: 4053 return &v.unknownFields 4054 default: 4055 return nil 4056 } 4057 } 4058 file_google_pubsub_v1_pubsub_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4059 switch v := v.(*ListTopicSubscriptionsRequest); i { 4060 case 0: 4061 return &v.state 4062 case 1: 4063 return &v.sizeCache 4064 case 2: 4065 return &v.unknownFields 4066 default: 4067 return nil 4068 } 4069 } 4070 file_google_pubsub_v1_pubsub_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4071 switch v := v.(*ListTopicSubscriptionsResponse); i { 4072 case 0: 4073 return &v.state 4074 case 1: 4075 return &v.sizeCache 4076 case 2: 4077 return &v.unknownFields 4078 default: 4079 return nil 4080 } 4081 } 4082 file_google_pubsub_v1_pubsub_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4083 switch v := v.(*ListTopicSnapshotsRequest); i { 4084 case 0: 4085 return &v.state 4086 case 1: 4087 return &v.sizeCache 4088 case 2: 4089 return &v.unknownFields 4090 default: 4091 return nil 4092 } 4093 } 4094 file_google_pubsub_v1_pubsub_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4095 switch v := v.(*ListTopicSnapshotsResponse); i { 4096 case 0: 4097 return &v.state 4098 case 1: 4099 return &v.sizeCache 4100 case 2: 4101 return &v.unknownFields 4102 default: 4103 return nil 4104 } 4105 } 4106 file_google_pubsub_v1_pubsub_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4107 switch v := v.(*DeleteTopicRequest); i { 4108 case 0: 4109 return &v.state 4110 case 1: 4111 return &v.sizeCache 4112 case 2: 4113 return &v.unknownFields 4114 default: 4115 return nil 4116 } 4117 } 4118 file_google_pubsub_v1_pubsub_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4119 switch v := v.(*Subscription); i { 4120 case 0: 4121 return &v.state 4122 case 1: 4123 return &v.sizeCache 4124 case 2: 4125 return &v.unknownFields 4126 default: 4127 return nil 4128 } 4129 } 4130 file_google_pubsub_v1_pubsub_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4131 switch v := v.(*RetryPolicy); i { 4132 case 0: 4133 return &v.state 4134 case 1: 4135 return &v.sizeCache 4136 case 2: 4137 return &v.unknownFields 4138 default: 4139 return nil 4140 } 4141 } 4142 file_google_pubsub_v1_pubsub_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4143 switch v := v.(*DeadLetterPolicy); i { 4144 case 0: 4145 return &v.state 4146 case 1: 4147 return &v.sizeCache 4148 case 2: 4149 return &v.unknownFields 4150 default: 4151 return nil 4152 } 4153 } 4154 file_google_pubsub_v1_pubsub_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4155 switch v := v.(*ExpirationPolicy); i { 4156 case 0: 4157 return &v.state 4158 case 1: 4159 return &v.sizeCache 4160 case 2: 4161 return &v.unknownFields 4162 default: 4163 return nil 4164 } 4165 } 4166 file_google_pubsub_v1_pubsub_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4167 switch v := v.(*PushConfig); i { 4168 case 0: 4169 return &v.state 4170 case 1: 4171 return &v.sizeCache 4172 case 2: 4173 return &v.unknownFields 4174 default: 4175 return nil 4176 } 4177 } 4178 file_google_pubsub_v1_pubsub_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4179 switch v := v.(*ReceivedMessage); i { 4180 case 0: 4181 return &v.state 4182 case 1: 4183 return &v.sizeCache 4184 case 2: 4185 return &v.unknownFields 4186 default: 4187 return nil 4188 } 4189 } 4190 file_google_pubsub_v1_pubsub_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4191 switch v := v.(*GetSubscriptionRequest); i { 4192 case 0: 4193 return &v.state 4194 case 1: 4195 return &v.sizeCache 4196 case 2: 4197 return &v.unknownFields 4198 default: 4199 return nil 4200 } 4201 } 4202 file_google_pubsub_v1_pubsub_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4203 switch v := v.(*UpdateSubscriptionRequest); i { 4204 case 0: 4205 return &v.state 4206 case 1: 4207 return &v.sizeCache 4208 case 2: 4209 return &v.unknownFields 4210 default: 4211 return nil 4212 } 4213 } 4214 file_google_pubsub_v1_pubsub_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4215 switch v := v.(*ListSubscriptionsRequest); i { 4216 case 0: 4217 return &v.state 4218 case 1: 4219 return &v.sizeCache 4220 case 2: 4221 return &v.unknownFields 4222 default: 4223 return nil 4224 } 4225 } 4226 file_google_pubsub_v1_pubsub_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4227 switch v := v.(*ListSubscriptionsResponse); i { 4228 case 0: 4229 return &v.state 4230 case 1: 4231 return &v.sizeCache 4232 case 2: 4233 return &v.unknownFields 4234 default: 4235 return nil 4236 } 4237 } 4238 file_google_pubsub_v1_pubsub_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4239 switch v := v.(*DeleteSubscriptionRequest); i { 4240 case 0: 4241 return &v.state 4242 case 1: 4243 return &v.sizeCache 4244 case 2: 4245 return &v.unknownFields 4246 default: 4247 return nil 4248 } 4249 } 4250 file_google_pubsub_v1_pubsub_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4251 switch v := v.(*ModifyPushConfigRequest); i { 4252 case 0: 4253 return &v.state 4254 case 1: 4255 return &v.sizeCache 4256 case 2: 4257 return &v.unknownFields 4258 default: 4259 return nil 4260 } 4261 } 4262 file_google_pubsub_v1_pubsub_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4263 switch v := v.(*PullRequest); i { 4264 case 0: 4265 return &v.state 4266 case 1: 4267 return &v.sizeCache 4268 case 2: 4269 return &v.unknownFields 4270 default: 4271 return nil 4272 } 4273 } 4274 file_google_pubsub_v1_pubsub_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4275 switch v := v.(*PullResponse); i { 4276 case 0: 4277 return &v.state 4278 case 1: 4279 return &v.sizeCache 4280 case 2: 4281 return &v.unknownFields 4282 default: 4283 return nil 4284 } 4285 } 4286 file_google_pubsub_v1_pubsub_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4287 switch v := v.(*ModifyAckDeadlineRequest); i { 4288 case 0: 4289 return &v.state 4290 case 1: 4291 return &v.sizeCache 4292 case 2: 4293 return &v.unknownFields 4294 default: 4295 return nil 4296 } 4297 } 4298 file_google_pubsub_v1_pubsub_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4299 switch v := v.(*AcknowledgeRequest); i { 4300 case 0: 4301 return &v.state 4302 case 1: 4303 return &v.sizeCache 4304 case 2: 4305 return &v.unknownFields 4306 default: 4307 return nil 4308 } 4309 } 4310 file_google_pubsub_v1_pubsub_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4311 switch v := v.(*StreamingPullRequest); i { 4312 case 0: 4313 return &v.state 4314 case 1: 4315 return &v.sizeCache 4316 case 2: 4317 return &v.unknownFields 4318 default: 4319 return nil 4320 } 4321 } 4322 file_google_pubsub_v1_pubsub_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4323 switch v := v.(*StreamingPullResponse); i { 4324 case 0: 4325 return &v.state 4326 case 1: 4327 return &v.sizeCache 4328 case 2: 4329 return &v.unknownFields 4330 default: 4331 return nil 4332 } 4333 } 4334 file_google_pubsub_v1_pubsub_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4335 switch v := v.(*CreateSnapshotRequest); i { 4336 case 0: 4337 return &v.state 4338 case 1: 4339 return &v.sizeCache 4340 case 2: 4341 return &v.unknownFields 4342 default: 4343 return nil 4344 } 4345 } 4346 file_google_pubsub_v1_pubsub_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4347 switch v := v.(*UpdateSnapshotRequest); i { 4348 case 0: 4349 return &v.state 4350 case 1: 4351 return &v.sizeCache 4352 case 2: 4353 return &v.unknownFields 4354 default: 4355 return nil 4356 } 4357 } 4358 file_google_pubsub_v1_pubsub_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4359 switch v := v.(*Snapshot); i { 4360 case 0: 4361 return &v.state 4362 case 1: 4363 return &v.sizeCache 4364 case 2: 4365 return &v.unknownFields 4366 default: 4367 return nil 4368 } 4369 } 4370 file_google_pubsub_v1_pubsub_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4371 switch v := v.(*GetSnapshotRequest); i { 4372 case 0: 4373 return &v.state 4374 case 1: 4375 return &v.sizeCache 4376 case 2: 4377 return &v.unknownFields 4378 default: 4379 return nil 4380 } 4381 } 4382 file_google_pubsub_v1_pubsub_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4383 switch v := v.(*ListSnapshotsRequest); i { 4384 case 0: 4385 return &v.state 4386 case 1: 4387 return &v.sizeCache 4388 case 2: 4389 return &v.unknownFields 4390 default: 4391 return nil 4392 } 4393 } 4394 file_google_pubsub_v1_pubsub_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4395 switch v := v.(*ListSnapshotsResponse); i { 4396 case 0: 4397 return &v.state 4398 case 1: 4399 return &v.sizeCache 4400 case 2: 4401 return &v.unknownFields 4402 default: 4403 return nil 4404 } 4405 } 4406 file_google_pubsub_v1_pubsub_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4407 switch v := v.(*DeleteSnapshotRequest); i { 4408 case 0: 4409 return &v.state 4410 case 1: 4411 return &v.sizeCache 4412 case 2: 4413 return &v.unknownFields 4414 default: 4415 return nil 4416 } 4417 } 4418 file_google_pubsub_v1_pubsub_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 4419 switch v := v.(*SeekRequest); i { 4420 case 0: 4421 return &v.state 4422 case 1: 4423 return &v.sizeCache 4424 case 2: 4425 return &v.unknownFields 4426 default: 4427 return nil 4428 } 4429 } 4430 file_google_pubsub_v1_pubsub_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 4431 switch v := v.(*SeekResponse); i { 4432 case 0: 4433 return &v.state 4434 case 1: 4435 return &v.sizeCache 4436 case 2: 4437 return &v.unknownFields 4438 default: 4439 return nil 4440 } 4441 } 4442 file_google_pubsub_v1_pubsub_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 4443 switch v := v.(*PushConfig_OidcToken); i { 4444 case 0: 4445 return &v.state 4446 case 1: 4447 return &v.sizeCache 4448 case 2: 4449 return &v.unknownFields 4450 default: 4451 return nil 4452 } 4453 } 4454 } 4455 file_google_pubsub_v1_pubsub_proto_msgTypes[18].OneofWrappers = []interface{}{ 4456 (*PushConfig_OidcToken_)(nil), 4457 } 4458 file_google_pubsub_v1_pubsub_proto_msgTypes[39].OneofWrappers = []interface{}{ 4459 (*SeekRequest_Time)(nil), 4460 (*SeekRequest_Snapshot)(nil), 4461 } 4462 type x struct{} 4463 out := protoimpl.TypeBuilder{ 4464 File: protoimpl.DescBuilder{ 4465 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4466 RawDescriptor: file_google_pubsub_v1_pubsub_proto_rawDesc, 4467 NumEnums: 0, 4468 NumMessages: 48, 4469 NumExtensions: 0, 4470 NumServices: 2, 4471 }, 4472 GoTypes: file_google_pubsub_v1_pubsub_proto_goTypes, 4473 DependencyIndexes: file_google_pubsub_v1_pubsub_proto_depIdxs, 4474 MessageInfos: file_google_pubsub_v1_pubsub_proto_msgTypes, 4475 }.Build() 4476 File_google_pubsub_v1_pubsub_proto = out.File 4477 file_google_pubsub_v1_pubsub_proto_rawDesc = nil 4478 file_google_pubsub_v1_pubsub_proto_goTypes = nil 4479 file_google_pubsub_v1_pubsub_proto_depIdxs = nil 4480} 4481 4482// Reference imports to suppress errors if they are not otherwise used. 4483var _ context.Context 4484var _ grpc.ClientConnInterface 4485 4486// This is a compile-time assertion to ensure that this generated file 4487// is compatible with the grpc package it is being compiled against. 4488const _ = grpc.SupportPackageIsVersion6 4489 4490// PublisherClient is the client API for Publisher service. 4491// 4492// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4493type PublisherClient interface { 4494 // Creates the given topic with the given name. See the 4495 // <a href="https://cloud.google.com/pubsub/docs/admin#resource_names"> 4496 // resource name rules</a>. 4497 CreateTopic(ctx context.Context, in *Topic, opts ...grpc.CallOption) (*Topic, error) 4498 // Updates an existing topic. Note that certain properties of a 4499 // topic are not modifiable. 4500 UpdateTopic(ctx context.Context, in *UpdateTopicRequest, opts ...grpc.CallOption) (*Topic, error) 4501 // Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic 4502 // does not exist. 4503 Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*PublishResponse, error) 4504 // Gets the configuration of a topic. 4505 GetTopic(ctx context.Context, in *GetTopicRequest, opts ...grpc.CallOption) (*Topic, error) 4506 // Lists matching topics. 4507 ListTopics(ctx context.Context, in *ListTopicsRequest, opts ...grpc.CallOption) (*ListTopicsResponse, error) 4508 // Lists the names of the subscriptions on this topic. 4509 ListTopicSubscriptions(ctx context.Context, in *ListTopicSubscriptionsRequest, opts ...grpc.CallOption) (*ListTopicSubscriptionsResponse, error) 4510 // Lists the names of the snapshots on this topic. Snapshots are used in 4511 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4512 // operations, which allow 4513 // you to manage message acknowledgments in bulk. That is, you can set the 4514 // acknowledgment state of messages in an existing subscription to the state 4515 // captured by a snapshot. 4516 ListTopicSnapshots(ctx context.Context, in *ListTopicSnapshotsRequest, opts ...grpc.CallOption) (*ListTopicSnapshotsResponse, error) 4517 // Deletes the topic with the given name. Returns `NOT_FOUND` if the topic 4518 // does not exist. After a topic is deleted, a new topic may be created with 4519 // the same name; this is an entirely new topic with none of the old 4520 // configuration or subscriptions. Existing subscriptions to this topic are 4521 // not deleted, but their `topic` field is set to `_deleted-topic_`. 4522 DeleteTopic(ctx context.Context, in *DeleteTopicRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4523} 4524 4525type publisherClient struct { 4526 cc grpc.ClientConnInterface 4527} 4528 4529func NewPublisherClient(cc grpc.ClientConnInterface) PublisherClient { 4530 return &publisherClient{cc} 4531} 4532 4533func (c *publisherClient) CreateTopic(ctx context.Context, in *Topic, opts ...grpc.CallOption) (*Topic, error) { 4534 out := new(Topic) 4535 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/CreateTopic", in, out, opts...) 4536 if err != nil { 4537 return nil, err 4538 } 4539 return out, nil 4540} 4541 4542func (c *publisherClient) UpdateTopic(ctx context.Context, in *UpdateTopicRequest, opts ...grpc.CallOption) (*Topic, error) { 4543 out := new(Topic) 4544 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/UpdateTopic", in, out, opts...) 4545 if err != nil { 4546 return nil, err 4547 } 4548 return out, nil 4549} 4550 4551func (c *publisherClient) Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*PublishResponse, error) { 4552 out := new(PublishResponse) 4553 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/Publish", in, out, opts...) 4554 if err != nil { 4555 return nil, err 4556 } 4557 return out, nil 4558} 4559 4560func (c *publisherClient) GetTopic(ctx context.Context, in *GetTopicRequest, opts ...grpc.CallOption) (*Topic, error) { 4561 out := new(Topic) 4562 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/GetTopic", in, out, opts...) 4563 if err != nil { 4564 return nil, err 4565 } 4566 return out, nil 4567} 4568 4569func (c *publisherClient) ListTopics(ctx context.Context, in *ListTopicsRequest, opts ...grpc.CallOption) (*ListTopicsResponse, error) { 4570 out := new(ListTopicsResponse) 4571 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/ListTopics", in, out, opts...) 4572 if err != nil { 4573 return nil, err 4574 } 4575 return out, nil 4576} 4577 4578func (c *publisherClient) ListTopicSubscriptions(ctx context.Context, in *ListTopicSubscriptionsRequest, opts ...grpc.CallOption) (*ListTopicSubscriptionsResponse, error) { 4579 out := new(ListTopicSubscriptionsResponse) 4580 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/ListTopicSubscriptions", in, out, opts...) 4581 if err != nil { 4582 return nil, err 4583 } 4584 return out, nil 4585} 4586 4587func (c *publisherClient) ListTopicSnapshots(ctx context.Context, in *ListTopicSnapshotsRequest, opts ...grpc.CallOption) (*ListTopicSnapshotsResponse, error) { 4588 out := new(ListTopicSnapshotsResponse) 4589 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/ListTopicSnapshots", in, out, opts...) 4590 if err != nil { 4591 return nil, err 4592 } 4593 return out, nil 4594} 4595 4596func (c *publisherClient) DeleteTopic(ctx context.Context, in *DeleteTopicRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 4597 out := new(empty.Empty) 4598 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Publisher/DeleteTopic", in, out, opts...) 4599 if err != nil { 4600 return nil, err 4601 } 4602 return out, nil 4603} 4604 4605// PublisherServer is the server API for Publisher service. 4606type PublisherServer interface { 4607 // Creates the given topic with the given name. See the 4608 // <a href="https://cloud.google.com/pubsub/docs/admin#resource_names"> 4609 // resource name rules</a>. 4610 CreateTopic(context.Context, *Topic) (*Topic, error) 4611 // Updates an existing topic. Note that certain properties of a 4612 // topic are not modifiable. 4613 UpdateTopic(context.Context, *UpdateTopicRequest) (*Topic, error) 4614 // Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic 4615 // does not exist. 4616 Publish(context.Context, *PublishRequest) (*PublishResponse, error) 4617 // Gets the configuration of a topic. 4618 GetTopic(context.Context, *GetTopicRequest) (*Topic, error) 4619 // Lists matching topics. 4620 ListTopics(context.Context, *ListTopicsRequest) (*ListTopicsResponse, error) 4621 // Lists the names of the subscriptions on this topic. 4622 ListTopicSubscriptions(context.Context, *ListTopicSubscriptionsRequest) (*ListTopicSubscriptionsResponse, error) 4623 // Lists the names of the snapshots on this topic. Snapshots are used in 4624 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4625 // operations, which allow 4626 // you to manage message acknowledgments in bulk. That is, you can set the 4627 // acknowledgment state of messages in an existing subscription to the state 4628 // captured by a snapshot. 4629 ListTopicSnapshots(context.Context, *ListTopicSnapshotsRequest) (*ListTopicSnapshotsResponse, error) 4630 // Deletes the topic with the given name. Returns `NOT_FOUND` if the topic 4631 // does not exist. After a topic is deleted, a new topic may be created with 4632 // the same name; this is an entirely new topic with none of the old 4633 // configuration or subscriptions. Existing subscriptions to this topic are 4634 // not deleted, but their `topic` field is set to `_deleted-topic_`. 4635 DeleteTopic(context.Context, *DeleteTopicRequest) (*empty.Empty, error) 4636} 4637 4638// UnimplementedPublisherServer can be embedded to have forward compatible implementations. 4639type UnimplementedPublisherServer struct { 4640} 4641 4642func (*UnimplementedPublisherServer) CreateTopic(context.Context, *Topic) (*Topic, error) { 4643 return nil, status.Errorf(codes.Unimplemented, "method CreateTopic not implemented") 4644} 4645func (*UnimplementedPublisherServer) UpdateTopic(context.Context, *UpdateTopicRequest) (*Topic, error) { 4646 return nil, status.Errorf(codes.Unimplemented, "method UpdateTopic not implemented") 4647} 4648func (*UnimplementedPublisherServer) Publish(context.Context, *PublishRequest) (*PublishResponse, error) { 4649 return nil, status.Errorf(codes.Unimplemented, "method Publish not implemented") 4650} 4651func (*UnimplementedPublisherServer) GetTopic(context.Context, *GetTopicRequest) (*Topic, error) { 4652 return nil, status.Errorf(codes.Unimplemented, "method GetTopic not implemented") 4653} 4654func (*UnimplementedPublisherServer) ListTopics(context.Context, *ListTopicsRequest) (*ListTopicsResponse, error) { 4655 return nil, status.Errorf(codes.Unimplemented, "method ListTopics not implemented") 4656} 4657func (*UnimplementedPublisherServer) ListTopicSubscriptions(context.Context, *ListTopicSubscriptionsRequest) (*ListTopicSubscriptionsResponse, error) { 4658 return nil, status.Errorf(codes.Unimplemented, "method ListTopicSubscriptions not implemented") 4659} 4660func (*UnimplementedPublisherServer) ListTopicSnapshots(context.Context, *ListTopicSnapshotsRequest) (*ListTopicSnapshotsResponse, error) { 4661 return nil, status.Errorf(codes.Unimplemented, "method ListTopicSnapshots not implemented") 4662} 4663func (*UnimplementedPublisherServer) DeleteTopic(context.Context, *DeleteTopicRequest) (*empty.Empty, error) { 4664 return nil, status.Errorf(codes.Unimplemented, "method DeleteTopic not implemented") 4665} 4666 4667func RegisterPublisherServer(s *grpc.Server, srv PublisherServer) { 4668 s.RegisterService(&_Publisher_serviceDesc, srv) 4669} 4670 4671func _Publisher_CreateTopic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4672 in := new(Topic) 4673 if err := dec(in); err != nil { 4674 return nil, err 4675 } 4676 if interceptor == nil { 4677 return srv.(PublisherServer).CreateTopic(ctx, in) 4678 } 4679 info := &grpc.UnaryServerInfo{ 4680 Server: srv, 4681 FullMethod: "/google.pubsub.v1.Publisher/CreateTopic", 4682 } 4683 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4684 return srv.(PublisherServer).CreateTopic(ctx, req.(*Topic)) 4685 } 4686 return interceptor(ctx, in, info, handler) 4687} 4688 4689func _Publisher_UpdateTopic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4690 in := new(UpdateTopicRequest) 4691 if err := dec(in); err != nil { 4692 return nil, err 4693 } 4694 if interceptor == nil { 4695 return srv.(PublisherServer).UpdateTopic(ctx, in) 4696 } 4697 info := &grpc.UnaryServerInfo{ 4698 Server: srv, 4699 FullMethod: "/google.pubsub.v1.Publisher/UpdateTopic", 4700 } 4701 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4702 return srv.(PublisherServer).UpdateTopic(ctx, req.(*UpdateTopicRequest)) 4703 } 4704 return interceptor(ctx, in, info, handler) 4705} 4706 4707func _Publisher_Publish_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4708 in := new(PublishRequest) 4709 if err := dec(in); err != nil { 4710 return nil, err 4711 } 4712 if interceptor == nil { 4713 return srv.(PublisherServer).Publish(ctx, in) 4714 } 4715 info := &grpc.UnaryServerInfo{ 4716 Server: srv, 4717 FullMethod: "/google.pubsub.v1.Publisher/Publish", 4718 } 4719 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4720 return srv.(PublisherServer).Publish(ctx, req.(*PublishRequest)) 4721 } 4722 return interceptor(ctx, in, info, handler) 4723} 4724 4725func _Publisher_GetTopic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4726 in := new(GetTopicRequest) 4727 if err := dec(in); err != nil { 4728 return nil, err 4729 } 4730 if interceptor == nil { 4731 return srv.(PublisherServer).GetTopic(ctx, in) 4732 } 4733 info := &grpc.UnaryServerInfo{ 4734 Server: srv, 4735 FullMethod: "/google.pubsub.v1.Publisher/GetTopic", 4736 } 4737 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4738 return srv.(PublisherServer).GetTopic(ctx, req.(*GetTopicRequest)) 4739 } 4740 return interceptor(ctx, in, info, handler) 4741} 4742 4743func _Publisher_ListTopics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4744 in := new(ListTopicsRequest) 4745 if err := dec(in); err != nil { 4746 return nil, err 4747 } 4748 if interceptor == nil { 4749 return srv.(PublisherServer).ListTopics(ctx, in) 4750 } 4751 info := &grpc.UnaryServerInfo{ 4752 Server: srv, 4753 FullMethod: "/google.pubsub.v1.Publisher/ListTopics", 4754 } 4755 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4756 return srv.(PublisherServer).ListTopics(ctx, req.(*ListTopicsRequest)) 4757 } 4758 return interceptor(ctx, in, info, handler) 4759} 4760 4761func _Publisher_ListTopicSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4762 in := new(ListTopicSubscriptionsRequest) 4763 if err := dec(in); err != nil { 4764 return nil, err 4765 } 4766 if interceptor == nil { 4767 return srv.(PublisherServer).ListTopicSubscriptions(ctx, in) 4768 } 4769 info := &grpc.UnaryServerInfo{ 4770 Server: srv, 4771 FullMethod: "/google.pubsub.v1.Publisher/ListTopicSubscriptions", 4772 } 4773 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4774 return srv.(PublisherServer).ListTopicSubscriptions(ctx, req.(*ListTopicSubscriptionsRequest)) 4775 } 4776 return interceptor(ctx, in, info, handler) 4777} 4778 4779func _Publisher_ListTopicSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4780 in := new(ListTopicSnapshotsRequest) 4781 if err := dec(in); err != nil { 4782 return nil, err 4783 } 4784 if interceptor == nil { 4785 return srv.(PublisherServer).ListTopicSnapshots(ctx, in) 4786 } 4787 info := &grpc.UnaryServerInfo{ 4788 Server: srv, 4789 FullMethod: "/google.pubsub.v1.Publisher/ListTopicSnapshots", 4790 } 4791 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4792 return srv.(PublisherServer).ListTopicSnapshots(ctx, req.(*ListTopicSnapshotsRequest)) 4793 } 4794 return interceptor(ctx, in, info, handler) 4795} 4796 4797func _Publisher_DeleteTopic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4798 in := new(DeleteTopicRequest) 4799 if err := dec(in); err != nil { 4800 return nil, err 4801 } 4802 if interceptor == nil { 4803 return srv.(PublisherServer).DeleteTopic(ctx, in) 4804 } 4805 info := &grpc.UnaryServerInfo{ 4806 Server: srv, 4807 FullMethod: "/google.pubsub.v1.Publisher/DeleteTopic", 4808 } 4809 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4810 return srv.(PublisherServer).DeleteTopic(ctx, req.(*DeleteTopicRequest)) 4811 } 4812 return interceptor(ctx, in, info, handler) 4813} 4814 4815var _Publisher_serviceDesc = grpc.ServiceDesc{ 4816 ServiceName: "google.pubsub.v1.Publisher", 4817 HandlerType: (*PublisherServer)(nil), 4818 Methods: []grpc.MethodDesc{ 4819 { 4820 MethodName: "CreateTopic", 4821 Handler: _Publisher_CreateTopic_Handler, 4822 }, 4823 { 4824 MethodName: "UpdateTopic", 4825 Handler: _Publisher_UpdateTopic_Handler, 4826 }, 4827 { 4828 MethodName: "Publish", 4829 Handler: _Publisher_Publish_Handler, 4830 }, 4831 { 4832 MethodName: "GetTopic", 4833 Handler: _Publisher_GetTopic_Handler, 4834 }, 4835 { 4836 MethodName: "ListTopics", 4837 Handler: _Publisher_ListTopics_Handler, 4838 }, 4839 { 4840 MethodName: "ListTopicSubscriptions", 4841 Handler: _Publisher_ListTopicSubscriptions_Handler, 4842 }, 4843 { 4844 MethodName: "ListTopicSnapshots", 4845 Handler: _Publisher_ListTopicSnapshots_Handler, 4846 }, 4847 { 4848 MethodName: "DeleteTopic", 4849 Handler: _Publisher_DeleteTopic_Handler, 4850 }, 4851 }, 4852 Streams: []grpc.StreamDesc{}, 4853 Metadata: "google/pubsub/v1/pubsub.proto", 4854} 4855 4856// SubscriberClient is the client API for Subscriber service. 4857// 4858// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4859type SubscriberClient interface { 4860 // Creates a subscription to a given topic. See the 4861 // <a href="https://cloud.google.com/pubsub/docs/admin#resource_names"> 4862 // resource name rules</a>. 4863 // If the subscription already exists, returns `ALREADY_EXISTS`. 4864 // If the corresponding topic doesn't exist, returns `NOT_FOUND`. 4865 // 4866 // If the name is not provided in the request, the server will assign a random 4867 // name for this subscription on the same project as the topic, conforming 4868 // to the 4869 // [resource name 4870 // format](https://cloud.google.com/pubsub/docs/admin#resource_names). The 4871 // generated name is populated in the returned Subscription object. Note that 4872 // for REST API requests, you must specify a name in the request. 4873 CreateSubscription(ctx context.Context, in *Subscription, opts ...grpc.CallOption) (*Subscription, error) 4874 // Gets the configuration details of a subscription. 4875 GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error) 4876 // Updates an existing subscription. Note that certain properties of a 4877 // subscription, such as its topic, are not modifiable. 4878 UpdateSubscription(ctx context.Context, in *UpdateSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error) 4879 // Lists matching subscriptions. 4880 ListSubscriptions(ctx context.Context, in *ListSubscriptionsRequest, opts ...grpc.CallOption) (*ListSubscriptionsResponse, error) 4881 // Deletes an existing subscription. All messages retained in the subscription 4882 // are immediately dropped. Calls to `Pull` after deletion will return 4883 // `NOT_FOUND`. After a subscription is deleted, a new one may be created with 4884 // the same name, but the new one has no association with the old 4885 // subscription or its topic unless the same topic is specified. 4886 DeleteSubscription(ctx context.Context, in *DeleteSubscriptionRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4887 // Modifies the ack deadline for a specific message. This method is useful 4888 // to indicate that more time is needed to process a message by the 4889 // subscriber, or to make the message available for redelivery if the 4890 // processing was interrupted. Note that this does not modify the 4891 // subscription-level `ackDeadlineSeconds` used for subsequent messages. 4892 ModifyAckDeadline(ctx context.Context, in *ModifyAckDeadlineRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4893 // Acknowledges the messages associated with the `ack_ids` in the 4894 // `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages 4895 // from the subscription. 4896 // 4897 // Acknowledging a message whose ack deadline has expired may succeed, 4898 // but such a message may be redelivered later. Acknowledging a message more 4899 // than once will not result in an error. 4900 Acknowledge(ctx context.Context, in *AcknowledgeRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4901 // Pulls messages from the server. The server may return `UNAVAILABLE` if 4902 // there are too many concurrent pull requests pending for the given 4903 // subscription. 4904 Pull(ctx context.Context, in *PullRequest, opts ...grpc.CallOption) (*PullResponse, error) 4905 // Establishes a stream with the server, which sends messages down to the 4906 // client. The client streams acknowledgements and ack deadline modifications 4907 // back to the server. The server will close the stream and return the status 4908 // on any error. The server may close the stream with status `UNAVAILABLE` to 4909 // reassign server-side resources, in which case, the client should 4910 // re-establish the stream. Flow control can be achieved by configuring the 4911 // underlying RPC channel. 4912 StreamingPull(ctx context.Context, opts ...grpc.CallOption) (Subscriber_StreamingPullClient, error) 4913 // Modifies the `PushConfig` for a specified subscription. 4914 // 4915 // This may be used to change a push subscription to a pull one (signified by 4916 // an empty `PushConfig`) or vice versa, or change the endpoint URL and other 4917 // attributes of a push subscription. Messages will accumulate for delivery 4918 // continuously through the call regardless of changes to the `PushConfig`. 4919 ModifyPushConfig(ctx context.Context, in *ModifyPushConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4920 // Gets the configuration details of a snapshot. Snapshots are used in 4921 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4922 // operations, which allow you to manage message acknowledgments in bulk. That 4923 // is, you can set the acknowledgment state of messages in an existing 4924 // subscription to the state captured by a snapshot. 4925 GetSnapshot(ctx context.Context, in *GetSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) 4926 // Lists the existing snapshots. Snapshots are used in 4927 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4928 // operations, which allow 4929 // you to manage message acknowledgments in bulk. That is, you can set the 4930 // acknowledgment state of messages in an existing subscription to the state 4931 // captured by a snapshot. 4932 ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) 4933 // Creates a snapshot from the requested subscription. Snapshots are used in 4934 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4935 // operations, which allow 4936 // you to manage message acknowledgments in bulk. That is, you can set the 4937 // acknowledgment state of messages in an existing subscription to the state 4938 // captured by a snapshot. 4939 // <br><br>If the snapshot already exists, returns `ALREADY_EXISTS`. 4940 // If the requested subscription doesn't exist, returns `NOT_FOUND`. 4941 // If the backlog in the subscription is too old -- and the resulting snapshot 4942 // would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. 4943 // See also the `Snapshot.expire_time` field. If the name is not provided in 4944 // the request, the server will assign a random 4945 // name for this snapshot on the same project as the subscription, conforming 4946 // to the 4947 // [resource name 4948 // format](https://cloud.google.com/pubsub/docs/admin#resource_names). The 4949 // generated name is populated in the returned Snapshot object. Note that for 4950 // REST API requests, you must specify a name in the request. 4951 CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) 4952 // Updates an existing snapshot. Snapshots are used in 4953 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4954 // operations, which allow 4955 // you to manage message acknowledgments in bulk. That is, you can set the 4956 // acknowledgment state of messages in an existing subscription to the state 4957 // captured by a snapshot. 4958 UpdateSnapshot(ctx context.Context, in *UpdateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) 4959 // Removes an existing snapshot. Snapshots are used in 4960 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4961 // operations, which allow 4962 // you to manage message acknowledgments in bulk. That is, you can set the 4963 // acknowledgment state of messages in an existing subscription to the state 4964 // captured by a snapshot.<br><br> 4965 // When the snapshot is deleted, all messages retained in the snapshot 4966 // are immediately dropped. After a snapshot is deleted, a new one may be 4967 // created with the same name, but the new one has no association with the old 4968 // snapshot or its subscription, unless the same subscription is specified. 4969 DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*empty.Empty, error) 4970 // Seeks an existing subscription to a point in time or to a given snapshot, 4971 // whichever is provided in the request. Snapshots are used in 4972 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 4973 // operations, which allow 4974 // you to manage message acknowledgments in bulk. That is, you can set the 4975 // acknowledgment state of messages in an existing subscription to the state 4976 // captured by a snapshot. Note that both the subscription and the snapshot 4977 // must be on the same topic. 4978 Seek(ctx context.Context, in *SeekRequest, opts ...grpc.CallOption) (*SeekResponse, error) 4979} 4980 4981type subscriberClient struct { 4982 cc grpc.ClientConnInterface 4983} 4984 4985func NewSubscriberClient(cc grpc.ClientConnInterface) SubscriberClient { 4986 return &subscriberClient{cc} 4987} 4988 4989func (c *subscriberClient) CreateSubscription(ctx context.Context, in *Subscription, opts ...grpc.CallOption) (*Subscription, error) { 4990 out := new(Subscription) 4991 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/CreateSubscription", in, out, opts...) 4992 if err != nil { 4993 return nil, err 4994 } 4995 return out, nil 4996} 4997 4998func (c *subscriberClient) GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error) { 4999 out := new(Subscription) 5000 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/GetSubscription", in, out, opts...) 5001 if err != nil { 5002 return nil, err 5003 } 5004 return out, nil 5005} 5006 5007func (c *subscriberClient) UpdateSubscription(ctx context.Context, in *UpdateSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error) { 5008 out := new(Subscription) 5009 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/UpdateSubscription", in, out, opts...) 5010 if err != nil { 5011 return nil, err 5012 } 5013 return out, nil 5014} 5015 5016func (c *subscriberClient) ListSubscriptions(ctx context.Context, in *ListSubscriptionsRequest, opts ...grpc.CallOption) (*ListSubscriptionsResponse, error) { 5017 out := new(ListSubscriptionsResponse) 5018 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/ListSubscriptions", in, out, opts...) 5019 if err != nil { 5020 return nil, err 5021 } 5022 return out, nil 5023} 5024 5025func (c *subscriberClient) DeleteSubscription(ctx context.Context, in *DeleteSubscriptionRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 5026 out := new(empty.Empty) 5027 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/DeleteSubscription", in, out, opts...) 5028 if err != nil { 5029 return nil, err 5030 } 5031 return out, nil 5032} 5033 5034func (c *subscriberClient) ModifyAckDeadline(ctx context.Context, in *ModifyAckDeadlineRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 5035 out := new(empty.Empty) 5036 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/ModifyAckDeadline", in, out, opts...) 5037 if err != nil { 5038 return nil, err 5039 } 5040 return out, nil 5041} 5042 5043func (c *subscriberClient) Acknowledge(ctx context.Context, in *AcknowledgeRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 5044 out := new(empty.Empty) 5045 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/Acknowledge", in, out, opts...) 5046 if err != nil { 5047 return nil, err 5048 } 5049 return out, nil 5050} 5051 5052func (c *subscriberClient) Pull(ctx context.Context, in *PullRequest, opts ...grpc.CallOption) (*PullResponse, error) { 5053 out := new(PullResponse) 5054 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/Pull", in, out, opts...) 5055 if err != nil { 5056 return nil, err 5057 } 5058 return out, nil 5059} 5060 5061func (c *subscriberClient) StreamingPull(ctx context.Context, opts ...grpc.CallOption) (Subscriber_StreamingPullClient, error) { 5062 stream, err := c.cc.NewStream(ctx, &_Subscriber_serviceDesc.Streams[0], "/google.pubsub.v1.Subscriber/StreamingPull", opts...) 5063 if err != nil { 5064 return nil, err 5065 } 5066 x := &subscriberStreamingPullClient{stream} 5067 return x, nil 5068} 5069 5070type Subscriber_StreamingPullClient interface { 5071 Send(*StreamingPullRequest) error 5072 Recv() (*StreamingPullResponse, error) 5073 grpc.ClientStream 5074} 5075 5076type subscriberStreamingPullClient struct { 5077 grpc.ClientStream 5078} 5079 5080func (x *subscriberStreamingPullClient) Send(m *StreamingPullRequest) error { 5081 return x.ClientStream.SendMsg(m) 5082} 5083 5084func (x *subscriberStreamingPullClient) Recv() (*StreamingPullResponse, error) { 5085 m := new(StreamingPullResponse) 5086 if err := x.ClientStream.RecvMsg(m); err != nil { 5087 return nil, err 5088 } 5089 return m, nil 5090} 5091 5092func (c *subscriberClient) ModifyPushConfig(ctx context.Context, in *ModifyPushConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 5093 out := new(empty.Empty) 5094 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/ModifyPushConfig", in, out, opts...) 5095 if err != nil { 5096 return nil, err 5097 } 5098 return out, nil 5099} 5100 5101func (c *subscriberClient) GetSnapshot(ctx context.Context, in *GetSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) { 5102 out := new(Snapshot) 5103 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/GetSnapshot", in, out, opts...) 5104 if err != nil { 5105 return nil, err 5106 } 5107 return out, nil 5108} 5109 5110func (c *subscriberClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { 5111 out := new(ListSnapshotsResponse) 5112 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/ListSnapshots", in, out, opts...) 5113 if err != nil { 5114 return nil, err 5115 } 5116 return out, nil 5117} 5118 5119func (c *subscriberClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) { 5120 out := new(Snapshot) 5121 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/CreateSnapshot", in, out, opts...) 5122 if err != nil { 5123 return nil, err 5124 } 5125 return out, nil 5126} 5127 5128func (c *subscriberClient) UpdateSnapshot(ctx context.Context, in *UpdateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) { 5129 out := new(Snapshot) 5130 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/UpdateSnapshot", in, out, opts...) 5131 if err != nil { 5132 return nil, err 5133 } 5134 return out, nil 5135} 5136 5137func (c *subscriberClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 5138 out := new(empty.Empty) 5139 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/DeleteSnapshot", in, out, opts...) 5140 if err != nil { 5141 return nil, err 5142 } 5143 return out, nil 5144} 5145 5146func (c *subscriberClient) Seek(ctx context.Context, in *SeekRequest, opts ...grpc.CallOption) (*SeekResponse, error) { 5147 out := new(SeekResponse) 5148 err := c.cc.Invoke(ctx, "/google.pubsub.v1.Subscriber/Seek", in, out, opts...) 5149 if err != nil { 5150 return nil, err 5151 } 5152 return out, nil 5153} 5154 5155// SubscriberServer is the server API for Subscriber service. 5156type SubscriberServer interface { 5157 // Creates a subscription to a given topic. See the 5158 // <a href="https://cloud.google.com/pubsub/docs/admin#resource_names"> 5159 // resource name rules</a>. 5160 // If the subscription already exists, returns `ALREADY_EXISTS`. 5161 // If the corresponding topic doesn't exist, returns `NOT_FOUND`. 5162 // 5163 // If the name is not provided in the request, the server will assign a random 5164 // name for this subscription on the same project as the topic, conforming 5165 // to the 5166 // [resource name 5167 // format](https://cloud.google.com/pubsub/docs/admin#resource_names). The 5168 // generated name is populated in the returned Subscription object. Note that 5169 // for REST API requests, you must specify a name in the request. 5170 CreateSubscription(context.Context, *Subscription) (*Subscription, error) 5171 // Gets the configuration details of a subscription. 5172 GetSubscription(context.Context, *GetSubscriptionRequest) (*Subscription, error) 5173 // Updates an existing subscription. Note that certain properties of a 5174 // subscription, such as its topic, are not modifiable. 5175 UpdateSubscription(context.Context, *UpdateSubscriptionRequest) (*Subscription, error) 5176 // Lists matching subscriptions. 5177 ListSubscriptions(context.Context, *ListSubscriptionsRequest) (*ListSubscriptionsResponse, error) 5178 // Deletes an existing subscription. All messages retained in the subscription 5179 // are immediately dropped. Calls to `Pull` after deletion will return 5180 // `NOT_FOUND`. After a subscription is deleted, a new one may be created with 5181 // the same name, but the new one has no association with the old 5182 // subscription or its topic unless the same topic is specified. 5183 DeleteSubscription(context.Context, *DeleteSubscriptionRequest) (*empty.Empty, error) 5184 // Modifies the ack deadline for a specific message. This method is useful 5185 // to indicate that more time is needed to process a message by the 5186 // subscriber, or to make the message available for redelivery if the 5187 // processing was interrupted. Note that this does not modify the 5188 // subscription-level `ackDeadlineSeconds` used for subsequent messages. 5189 ModifyAckDeadline(context.Context, *ModifyAckDeadlineRequest) (*empty.Empty, error) 5190 // Acknowledges the messages associated with the `ack_ids` in the 5191 // `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages 5192 // from the subscription. 5193 // 5194 // Acknowledging a message whose ack deadline has expired may succeed, 5195 // but such a message may be redelivered later. Acknowledging a message more 5196 // than once will not result in an error. 5197 Acknowledge(context.Context, *AcknowledgeRequest) (*empty.Empty, error) 5198 // Pulls messages from the server. The server may return `UNAVAILABLE` if 5199 // there are too many concurrent pull requests pending for the given 5200 // subscription. 5201 Pull(context.Context, *PullRequest) (*PullResponse, error) 5202 // Establishes a stream with the server, which sends messages down to the 5203 // client. The client streams acknowledgements and ack deadline modifications 5204 // back to the server. The server will close the stream and return the status 5205 // on any error. The server may close the stream with status `UNAVAILABLE` to 5206 // reassign server-side resources, in which case, the client should 5207 // re-establish the stream. Flow control can be achieved by configuring the 5208 // underlying RPC channel. 5209 StreamingPull(Subscriber_StreamingPullServer) error 5210 // Modifies the `PushConfig` for a specified subscription. 5211 // 5212 // This may be used to change a push subscription to a pull one (signified by 5213 // an empty `PushConfig`) or vice versa, or change the endpoint URL and other 5214 // attributes of a push subscription. Messages will accumulate for delivery 5215 // continuously through the call regardless of changes to the `PushConfig`. 5216 ModifyPushConfig(context.Context, *ModifyPushConfigRequest) (*empty.Empty, error) 5217 // Gets the configuration details of a snapshot. Snapshots are used in 5218 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5219 // operations, which allow you to manage message acknowledgments in bulk. That 5220 // is, you can set the acknowledgment state of messages in an existing 5221 // subscription to the state captured by a snapshot. 5222 GetSnapshot(context.Context, *GetSnapshotRequest) (*Snapshot, error) 5223 // Lists the existing snapshots. Snapshots are used in 5224 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5225 // operations, which allow 5226 // you to manage message acknowledgments in bulk. That is, you can set the 5227 // acknowledgment state of messages in an existing subscription to the state 5228 // captured by a snapshot. 5229 ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) 5230 // Creates a snapshot from the requested subscription. Snapshots are used in 5231 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5232 // operations, which allow 5233 // you to manage message acknowledgments in bulk. That is, you can set the 5234 // acknowledgment state of messages in an existing subscription to the state 5235 // captured by a snapshot. 5236 // <br><br>If the snapshot already exists, returns `ALREADY_EXISTS`. 5237 // If the requested subscription doesn't exist, returns `NOT_FOUND`. 5238 // If the backlog in the subscription is too old -- and the resulting snapshot 5239 // would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. 5240 // See also the `Snapshot.expire_time` field. If the name is not provided in 5241 // the request, the server will assign a random 5242 // name for this snapshot on the same project as the subscription, conforming 5243 // to the 5244 // [resource name 5245 // format](https://cloud.google.com/pubsub/docs/admin#resource_names). The 5246 // generated name is populated in the returned Snapshot object. Note that for 5247 // REST API requests, you must specify a name in the request. 5248 CreateSnapshot(context.Context, *CreateSnapshotRequest) (*Snapshot, error) 5249 // Updates an existing snapshot. Snapshots are used in 5250 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5251 // operations, which allow 5252 // you to manage message acknowledgments in bulk. That is, you can set the 5253 // acknowledgment state of messages in an existing subscription to the state 5254 // captured by a snapshot. 5255 UpdateSnapshot(context.Context, *UpdateSnapshotRequest) (*Snapshot, error) 5256 // Removes an existing snapshot. Snapshots are used in 5257 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5258 // operations, which allow 5259 // you to manage message acknowledgments in bulk. That is, you can set the 5260 // acknowledgment state of messages in an existing subscription to the state 5261 // captured by a snapshot.<br><br> 5262 // When the snapshot is deleted, all messages retained in the snapshot 5263 // are immediately dropped. After a snapshot is deleted, a new one may be 5264 // created with the same name, but the new one has no association with the old 5265 // snapshot or its subscription, unless the same subscription is specified. 5266 DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*empty.Empty, error) 5267 // Seeks an existing subscription to a point in time or to a given snapshot, 5268 // whichever is provided in the request. Snapshots are used in 5269 // <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a> 5270 // operations, which allow 5271 // you to manage message acknowledgments in bulk. That is, you can set the 5272 // acknowledgment state of messages in an existing subscription to the state 5273 // captured by a snapshot. Note that both the subscription and the snapshot 5274 // must be on the same topic. 5275 Seek(context.Context, *SeekRequest) (*SeekResponse, error) 5276} 5277 5278// UnimplementedSubscriberServer can be embedded to have forward compatible implementations. 5279type UnimplementedSubscriberServer struct { 5280} 5281 5282func (*UnimplementedSubscriberServer) CreateSubscription(context.Context, *Subscription) (*Subscription, error) { 5283 return nil, status.Errorf(codes.Unimplemented, "method CreateSubscription not implemented") 5284} 5285func (*UnimplementedSubscriberServer) GetSubscription(context.Context, *GetSubscriptionRequest) (*Subscription, error) { 5286 return nil, status.Errorf(codes.Unimplemented, "method GetSubscription not implemented") 5287} 5288func (*UnimplementedSubscriberServer) UpdateSubscription(context.Context, *UpdateSubscriptionRequest) (*Subscription, error) { 5289 return nil, status.Errorf(codes.Unimplemented, "method UpdateSubscription not implemented") 5290} 5291func (*UnimplementedSubscriberServer) ListSubscriptions(context.Context, *ListSubscriptionsRequest) (*ListSubscriptionsResponse, error) { 5292 return nil, status.Errorf(codes.Unimplemented, "method ListSubscriptions not implemented") 5293} 5294func (*UnimplementedSubscriberServer) DeleteSubscription(context.Context, *DeleteSubscriptionRequest) (*empty.Empty, error) { 5295 return nil, status.Errorf(codes.Unimplemented, "method DeleteSubscription not implemented") 5296} 5297func (*UnimplementedSubscriberServer) ModifyAckDeadline(context.Context, *ModifyAckDeadlineRequest) (*empty.Empty, error) { 5298 return nil, status.Errorf(codes.Unimplemented, "method ModifyAckDeadline not implemented") 5299} 5300func (*UnimplementedSubscriberServer) Acknowledge(context.Context, *AcknowledgeRequest) (*empty.Empty, error) { 5301 return nil, status.Errorf(codes.Unimplemented, "method Acknowledge not implemented") 5302} 5303func (*UnimplementedSubscriberServer) Pull(context.Context, *PullRequest) (*PullResponse, error) { 5304 return nil, status.Errorf(codes.Unimplemented, "method Pull not implemented") 5305} 5306func (*UnimplementedSubscriberServer) StreamingPull(Subscriber_StreamingPullServer) error { 5307 return status.Errorf(codes.Unimplemented, "method StreamingPull not implemented") 5308} 5309func (*UnimplementedSubscriberServer) ModifyPushConfig(context.Context, *ModifyPushConfigRequest) (*empty.Empty, error) { 5310 return nil, status.Errorf(codes.Unimplemented, "method ModifyPushConfig not implemented") 5311} 5312func (*UnimplementedSubscriberServer) GetSnapshot(context.Context, *GetSnapshotRequest) (*Snapshot, error) { 5313 return nil, status.Errorf(codes.Unimplemented, "method GetSnapshot not implemented") 5314} 5315func (*UnimplementedSubscriberServer) ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) { 5316 return nil, status.Errorf(codes.Unimplemented, "method ListSnapshots not implemented") 5317} 5318func (*UnimplementedSubscriberServer) CreateSnapshot(context.Context, *CreateSnapshotRequest) (*Snapshot, error) { 5319 return nil, status.Errorf(codes.Unimplemented, "method CreateSnapshot not implemented") 5320} 5321func (*UnimplementedSubscriberServer) UpdateSnapshot(context.Context, *UpdateSnapshotRequest) (*Snapshot, error) { 5322 return nil, status.Errorf(codes.Unimplemented, "method UpdateSnapshot not implemented") 5323} 5324func (*UnimplementedSubscriberServer) DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*empty.Empty, error) { 5325 return nil, status.Errorf(codes.Unimplemented, "method DeleteSnapshot not implemented") 5326} 5327func (*UnimplementedSubscriberServer) Seek(context.Context, *SeekRequest) (*SeekResponse, error) { 5328 return nil, status.Errorf(codes.Unimplemented, "method Seek not implemented") 5329} 5330 5331func RegisterSubscriberServer(s *grpc.Server, srv SubscriberServer) { 5332 s.RegisterService(&_Subscriber_serviceDesc, srv) 5333} 5334 5335func _Subscriber_CreateSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5336 in := new(Subscription) 5337 if err := dec(in); err != nil { 5338 return nil, err 5339 } 5340 if interceptor == nil { 5341 return srv.(SubscriberServer).CreateSubscription(ctx, in) 5342 } 5343 info := &grpc.UnaryServerInfo{ 5344 Server: srv, 5345 FullMethod: "/google.pubsub.v1.Subscriber/CreateSubscription", 5346 } 5347 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5348 return srv.(SubscriberServer).CreateSubscription(ctx, req.(*Subscription)) 5349 } 5350 return interceptor(ctx, in, info, handler) 5351} 5352 5353func _Subscriber_GetSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5354 in := new(GetSubscriptionRequest) 5355 if err := dec(in); err != nil { 5356 return nil, err 5357 } 5358 if interceptor == nil { 5359 return srv.(SubscriberServer).GetSubscription(ctx, in) 5360 } 5361 info := &grpc.UnaryServerInfo{ 5362 Server: srv, 5363 FullMethod: "/google.pubsub.v1.Subscriber/GetSubscription", 5364 } 5365 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5366 return srv.(SubscriberServer).GetSubscription(ctx, req.(*GetSubscriptionRequest)) 5367 } 5368 return interceptor(ctx, in, info, handler) 5369} 5370 5371func _Subscriber_UpdateSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5372 in := new(UpdateSubscriptionRequest) 5373 if err := dec(in); err != nil { 5374 return nil, err 5375 } 5376 if interceptor == nil { 5377 return srv.(SubscriberServer).UpdateSubscription(ctx, in) 5378 } 5379 info := &grpc.UnaryServerInfo{ 5380 Server: srv, 5381 FullMethod: "/google.pubsub.v1.Subscriber/UpdateSubscription", 5382 } 5383 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5384 return srv.(SubscriberServer).UpdateSubscription(ctx, req.(*UpdateSubscriptionRequest)) 5385 } 5386 return interceptor(ctx, in, info, handler) 5387} 5388 5389func _Subscriber_ListSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5390 in := new(ListSubscriptionsRequest) 5391 if err := dec(in); err != nil { 5392 return nil, err 5393 } 5394 if interceptor == nil { 5395 return srv.(SubscriberServer).ListSubscriptions(ctx, in) 5396 } 5397 info := &grpc.UnaryServerInfo{ 5398 Server: srv, 5399 FullMethod: "/google.pubsub.v1.Subscriber/ListSubscriptions", 5400 } 5401 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5402 return srv.(SubscriberServer).ListSubscriptions(ctx, req.(*ListSubscriptionsRequest)) 5403 } 5404 return interceptor(ctx, in, info, handler) 5405} 5406 5407func _Subscriber_DeleteSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5408 in := new(DeleteSubscriptionRequest) 5409 if err := dec(in); err != nil { 5410 return nil, err 5411 } 5412 if interceptor == nil { 5413 return srv.(SubscriberServer).DeleteSubscription(ctx, in) 5414 } 5415 info := &grpc.UnaryServerInfo{ 5416 Server: srv, 5417 FullMethod: "/google.pubsub.v1.Subscriber/DeleteSubscription", 5418 } 5419 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5420 return srv.(SubscriberServer).DeleteSubscription(ctx, req.(*DeleteSubscriptionRequest)) 5421 } 5422 return interceptor(ctx, in, info, handler) 5423} 5424 5425func _Subscriber_ModifyAckDeadline_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5426 in := new(ModifyAckDeadlineRequest) 5427 if err := dec(in); err != nil { 5428 return nil, err 5429 } 5430 if interceptor == nil { 5431 return srv.(SubscriberServer).ModifyAckDeadline(ctx, in) 5432 } 5433 info := &grpc.UnaryServerInfo{ 5434 Server: srv, 5435 FullMethod: "/google.pubsub.v1.Subscriber/ModifyAckDeadline", 5436 } 5437 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5438 return srv.(SubscriberServer).ModifyAckDeadline(ctx, req.(*ModifyAckDeadlineRequest)) 5439 } 5440 return interceptor(ctx, in, info, handler) 5441} 5442 5443func _Subscriber_Acknowledge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5444 in := new(AcknowledgeRequest) 5445 if err := dec(in); err != nil { 5446 return nil, err 5447 } 5448 if interceptor == nil { 5449 return srv.(SubscriberServer).Acknowledge(ctx, in) 5450 } 5451 info := &grpc.UnaryServerInfo{ 5452 Server: srv, 5453 FullMethod: "/google.pubsub.v1.Subscriber/Acknowledge", 5454 } 5455 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5456 return srv.(SubscriberServer).Acknowledge(ctx, req.(*AcknowledgeRequest)) 5457 } 5458 return interceptor(ctx, in, info, handler) 5459} 5460 5461func _Subscriber_Pull_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5462 in := new(PullRequest) 5463 if err := dec(in); err != nil { 5464 return nil, err 5465 } 5466 if interceptor == nil { 5467 return srv.(SubscriberServer).Pull(ctx, in) 5468 } 5469 info := &grpc.UnaryServerInfo{ 5470 Server: srv, 5471 FullMethod: "/google.pubsub.v1.Subscriber/Pull", 5472 } 5473 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5474 return srv.(SubscriberServer).Pull(ctx, req.(*PullRequest)) 5475 } 5476 return interceptor(ctx, in, info, handler) 5477} 5478 5479func _Subscriber_StreamingPull_Handler(srv interface{}, stream grpc.ServerStream) error { 5480 return srv.(SubscriberServer).StreamingPull(&subscriberStreamingPullServer{stream}) 5481} 5482 5483type Subscriber_StreamingPullServer interface { 5484 Send(*StreamingPullResponse) error 5485 Recv() (*StreamingPullRequest, error) 5486 grpc.ServerStream 5487} 5488 5489type subscriberStreamingPullServer struct { 5490 grpc.ServerStream 5491} 5492 5493func (x *subscriberStreamingPullServer) Send(m *StreamingPullResponse) error { 5494 return x.ServerStream.SendMsg(m) 5495} 5496 5497func (x *subscriberStreamingPullServer) Recv() (*StreamingPullRequest, error) { 5498 m := new(StreamingPullRequest) 5499 if err := x.ServerStream.RecvMsg(m); err != nil { 5500 return nil, err 5501 } 5502 return m, nil 5503} 5504 5505func _Subscriber_ModifyPushConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5506 in := new(ModifyPushConfigRequest) 5507 if err := dec(in); err != nil { 5508 return nil, err 5509 } 5510 if interceptor == nil { 5511 return srv.(SubscriberServer).ModifyPushConfig(ctx, in) 5512 } 5513 info := &grpc.UnaryServerInfo{ 5514 Server: srv, 5515 FullMethod: "/google.pubsub.v1.Subscriber/ModifyPushConfig", 5516 } 5517 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5518 return srv.(SubscriberServer).ModifyPushConfig(ctx, req.(*ModifyPushConfigRequest)) 5519 } 5520 return interceptor(ctx, in, info, handler) 5521} 5522 5523func _Subscriber_GetSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5524 in := new(GetSnapshotRequest) 5525 if err := dec(in); err != nil { 5526 return nil, err 5527 } 5528 if interceptor == nil { 5529 return srv.(SubscriberServer).GetSnapshot(ctx, in) 5530 } 5531 info := &grpc.UnaryServerInfo{ 5532 Server: srv, 5533 FullMethod: "/google.pubsub.v1.Subscriber/GetSnapshot", 5534 } 5535 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5536 return srv.(SubscriberServer).GetSnapshot(ctx, req.(*GetSnapshotRequest)) 5537 } 5538 return interceptor(ctx, in, info, handler) 5539} 5540 5541func _Subscriber_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5542 in := new(ListSnapshotsRequest) 5543 if err := dec(in); err != nil { 5544 return nil, err 5545 } 5546 if interceptor == nil { 5547 return srv.(SubscriberServer).ListSnapshots(ctx, in) 5548 } 5549 info := &grpc.UnaryServerInfo{ 5550 Server: srv, 5551 FullMethod: "/google.pubsub.v1.Subscriber/ListSnapshots", 5552 } 5553 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5554 return srv.(SubscriberServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) 5555 } 5556 return interceptor(ctx, in, info, handler) 5557} 5558 5559func _Subscriber_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5560 in := new(CreateSnapshotRequest) 5561 if err := dec(in); err != nil { 5562 return nil, err 5563 } 5564 if interceptor == nil { 5565 return srv.(SubscriberServer).CreateSnapshot(ctx, in) 5566 } 5567 info := &grpc.UnaryServerInfo{ 5568 Server: srv, 5569 FullMethod: "/google.pubsub.v1.Subscriber/CreateSnapshot", 5570 } 5571 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5572 return srv.(SubscriberServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) 5573 } 5574 return interceptor(ctx, in, info, handler) 5575} 5576 5577func _Subscriber_UpdateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5578 in := new(UpdateSnapshotRequest) 5579 if err := dec(in); err != nil { 5580 return nil, err 5581 } 5582 if interceptor == nil { 5583 return srv.(SubscriberServer).UpdateSnapshot(ctx, in) 5584 } 5585 info := &grpc.UnaryServerInfo{ 5586 Server: srv, 5587 FullMethod: "/google.pubsub.v1.Subscriber/UpdateSnapshot", 5588 } 5589 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5590 return srv.(SubscriberServer).UpdateSnapshot(ctx, req.(*UpdateSnapshotRequest)) 5591 } 5592 return interceptor(ctx, in, info, handler) 5593} 5594 5595func _Subscriber_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5596 in := new(DeleteSnapshotRequest) 5597 if err := dec(in); err != nil { 5598 return nil, err 5599 } 5600 if interceptor == nil { 5601 return srv.(SubscriberServer).DeleteSnapshot(ctx, in) 5602 } 5603 info := &grpc.UnaryServerInfo{ 5604 Server: srv, 5605 FullMethod: "/google.pubsub.v1.Subscriber/DeleteSnapshot", 5606 } 5607 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5608 return srv.(SubscriberServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) 5609 } 5610 return interceptor(ctx, in, info, handler) 5611} 5612 5613func _Subscriber_Seek_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5614 in := new(SeekRequest) 5615 if err := dec(in); err != nil { 5616 return nil, err 5617 } 5618 if interceptor == nil { 5619 return srv.(SubscriberServer).Seek(ctx, in) 5620 } 5621 info := &grpc.UnaryServerInfo{ 5622 Server: srv, 5623 FullMethod: "/google.pubsub.v1.Subscriber/Seek", 5624 } 5625 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5626 return srv.(SubscriberServer).Seek(ctx, req.(*SeekRequest)) 5627 } 5628 return interceptor(ctx, in, info, handler) 5629} 5630 5631var _Subscriber_serviceDesc = grpc.ServiceDesc{ 5632 ServiceName: "google.pubsub.v1.Subscriber", 5633 HandlerType: (*SubscriberServer)(nil), 5634 Methods: []grpc.MethodDesc{ 5635 { 5636 MethodName: "CreateSubscription", 5637 Handler: _Subscriber_CreateSubscription_Handler, 5638 }, 5639 { 5640 MethodName: "GetSubscription", 5641 Handler: _Subscriber_GetSubscription_Handler, 5642 }, 5643 { 5644 MethodName: "UpdateSubscription", 5645 Handler: _Subscriber_UpdateSubscription_Handler, 5646 }, 5647 { 5648 MethodName: "ListSubscriptions", 5649 Handler: _Subscriber_ListSubscriptions_Handler, 5650 }, 5651 { 5652 MethodName: "DeleteSubscription", 5653 Handler: _Subscriber_DeleteSubscription_Handler, 5654 }, 5655 { 5656 MethodName: "ModifyAckDeadline", 5657 Handler: _Subscriber_ModifyAckDeadline_Handler, 5658 }, 5659 { 5660 MethodName: "Acknowledge", 5661 Handler: _Subscriber_Acknowledge_Handler, 5662 }, 5663 { 5664 MethodName: "Pull", 5665 Handler: _Subscriber_Pull_Handler, 5666 }, 5667 { 5668 MethodName: "ModifyPushConfig", 5669 Handler: _Subscriber_ModifyPushConfig_Handler, 5670 }, 5671 { 5672 MethodName: "GetSnapshot", 5673 Handler: _Subscriber_GetSnapshot_Handler, 5674 }, 5675 { 5676 MethodName: "ListSnapshots", 5677 Handler: _Subscriber_ListSnapshots_Handler, 5678 }, 5679 { 5680 MethodName: "CreateSnapshot", 5681 Handler: _Subscriber_CreateSnapshot_Handler, 5682 }, 5683 { 5684 MethodName: "UpdateSnapshot", 5685 Handler: _Subscriber_UpdateSnapshot_Handler, 5686 }, 5687 { 5688 MethodName: "DeleteSnapshot", 5689 Handler: _Subscriber_DeleteSnapshot_Handler, 5690 }, 5691 { 5692 MethodName: "Seek", 5693 Handler: _Subscriber_Seek_Handler, 5694 }, 5695 }, 5696 Streams: []grpc.StreamDesc{ 5697 { 5698 StreamName: "StreamingPull", 5699 Handler: _Subscriber_StreamingPull_Handler, 5700 ServerStreams: true, 5701 ClientStreams: true, 5702 }, 5703 }, 5704 Metadata: "google/pubsub/v1/pubsub.proto", 5705} 5706