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