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