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