1// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.26.0
18// 	protoc        v3.12.2
19// source: google/dataflow/v1beta3/metrics.proto
20
21package dataflow
22
23import (
24	context "context"
25	reflect "reflect"
26	sync "sync"
27
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	grpc "google.golang.org/grpc"
30	codes "google.golang.org/grpc/codes"
31	status "google.golang.org/grpc/status"
32	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
33	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
34	structpb "google.golang.org/protobuf/types/known/structpb"
35	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
36)
37
38const (
39	// Verify that this generated code is sufficiently up-to-date.
40	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
41	// Verify that runtime/protoimpl is sufficiently up-to-date.
42	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
43)
44
45// The state of some component of job execution.
46type ExecutionState int32
47
48const (
49	// The component state is unknown or unspecified.
50	ExecutionState_EXECUTION_STATE_UNKNOWN ExecutionState = 0
51	// The component is not yet running.
52	ExecutionState_EXECUTION_STATE_NOT_STARTED ExecutionState = 1
53	// The component is currently running.
54	ExecutionState_EXECUTION_STATE_RUNNING ExecutionState = 2
55	// The component succeeded.
56	ExecutionState_EXECUTION_STATE_SUCCEEDED ExecutionState = 3
57	// The component failed.
58	ExecutionState_EXECUTION_STATE_FAILED ExecutionState = 4
59	// Execution of the component was cancelled.
60	ExecutionState_EXECUTION_STATE_CANCELLED ExecutionState = 5
61)
62
63// Enum value maps for ExecutionState.
64var (
65	ExecutionState_name = map[int32]string{
66		0: "EXECUTION_STATE_UNKNOWN",
67		1: "EXECUTION_STATE_NOT_STARTED",
68		2: "EXECUTION_STATE_RUNNING",
69		3: "EXECUTION_STATE_SUCCEEDED",
70		4: "EXECUTION_STATE_FAILED",
71		5: "EXECUTION_STATE_CANCELLED",
72	}
73	ExecutionState_value = map[string]int32{
74		"EXECUTION_STATE_UNKNOWN":     0,
75		"EXECUTION_STATE_NOT_STARTED": 1,
76		"EXECUTION_STATE_RUNNING":     2,
77		"EXECUTION_STATE_SUCCEEDED":   3,
78		"EXECUTION_STATE_FAILED":      4,
79		"EXECUTION_STATE_CANCELLED":   5,
80	}
81)
82
83func (x ExecutionState) Enum() *ExecutionState {
84	p := new(ExecutionState)
85	*p = x
86	return p
87}
88
89func (x ExecutionState) String() string {
90	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
91}
92
93func (ExecutionState) Descriptor() protoreflect.EnumDescriptor {
94	return file_google_dataflow_v1beta3_metrics_proto_enumTypes[0].Descriptor()
95}
96
97func (ExecutionState) Type() protoreflect.EnumType {
98	return &file_google_dataflow_v1beta3_metrics_proto_enumTypes[0]
99}
100
101func (x ExecutionState) Number() protoreflect.EnumNumber {
102	return protoreflect.EnumNumber(x)
103}
104
105// Deprecated: Use ExecutionState.Descriptor instead.
106func (ExecutionState) EnumDescriptor() ([]byte, []int) {
107	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{0}
108}
109
110// Identifies a metric, by describing the source which generated the
111// metric.
112type MetricStructuredName struct {
113	state         protoimpl.MessageState
114	sizeCache     protoimpl.SizeCache
115	unknownFields protoimpl.UnknownFields
116
117	// Origin (namespace) of metric name. May be blank for user-define metrics;
118	// will be "dataflow" for metrics defined by the Dataflow service or SDK.
119	Origin string `protobuf:"bytes,1,opt,name=origin,proto3" json:"origin,omitempty"`
120	// Worker-defined metric name.
121	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
122	// Zero or more labeled fields which identify the part of the job this
123	// metric is associated with, such as the name of a step or collection.
124	//
125	// For example, built-in counters associated with steps will have
126	// context['step'] = <step-name>. Counters associated with PCollections
127	// in the SDK will have context['pcollection'] = <pcollection-name>.
128	Context map[string]string `protobuf:"bytes,3,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
129}
130
131func (x *MetricStructuredName) Reset() {
132	*x = MetricStructuredName{}
133	if protoimpl.UnsafeEnabled {
134		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[0]
135		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
136		ms.StoreMessageInfo(mi)
137	}
138}
139
140func (x *MetricStructuredName) String() string {
141	return protoimpl.X.MessageStringOf(x)
142}
143
144func (*MetricStructuredName) ProtoMessage() {}
145
146func (x *MetricStructuredName) ProtoReflect() protoreflect.Message {
147	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[0]
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 MetricStructuredName.ProtoReflect.Descriptor instead.
159func (*MetricStructuredName) Descriptor() ([]byte, []int) {
160	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{0}
161}
162
163func (x *MetricStructuredName) GetOrigin() string {
164	if x != nil {
165		return x.Origin
166	}
167	return ""
168}
169
170func (x *MetricStructuredName) GetName() string {
171	if x != nil {
172		return x.Name
173	}
174	return ""
175}
176
177func (x *MetricStructuredName) GetContext() map[string]string {
178	if x != nil {
179		return x.Context
180	}
181	return nil
182}
183
184// Describes the state of a metric.
185type MetricUpdate struct {
186	state         protoimpl.MessageState
187	sizeCache     protoimpl.SizeCache
188	unknownFields protoimpl.UnknownFields
189
190	// Name of the metric.
191	Name *MetricStructuredName `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
192	// Metric aggregation kind.  The possible metric aggregation kinds are
193	// "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
194	// The specified aggregation kind is case-insensitive.
195	//
196	// If omitted, this is not an aggregated value but instead
197	// a single metric sample value.
198	Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
199	// True if this metric is reported as the total cumulative aggregate
200	// value accumulated since the worker started working on this WorkItem.
201	// By default this is false, indicating that this metric is reported
202	// as a delta that is not associated with any WorkItem.
203	Cumulative bool `protobuf:"varint,3,opt,name=cumulative,proto3" json:"cumulative,omitempty"`
204	// Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
205	// "And", and "Or".  The possible value types are Long, Double, and Boolean.
206	Scalar *structpb.Value `protobuf:"bytes,4,opt,name=scalar,proto3" json:"scalar,omitempty"`
207	// Worker-computed aggregate value for the "Mean" aggregation kind.
208	// This holds the sum of the aggregated values and is used in combination
209	// with mean_count below to obtain the actual mean aggregate value.
210	// The only possible value types are Long and Double.
211	MeanSum *structpb.Value `protobuf:"bytes,5,opt,name=mean_sum,json=meanSum,proto3" json:"mean_sum,omitempty"`
212	// Worker-computed aggregate value for the "Mean" aggregation kind.
213	// This holds the count of the aggregated values and is used in combination
214	// with mean_sum above to obtain the actual mean aggregate value.
215	// The only possible value type is Long.
216	MeanCount *structpb.Value `protobuf:"bytes,6,opt,name=mean_count,json=meanCount,proto3" json:"mean_count,omitempty"`
217	// Worker-computed aggregate value for the "Set" aggregation kind.  The only
218	// possible value type is a list of Values whose type can be Long, Double,
219	// or String, according to the metric's type.  All Values in the list must
220	// be of the same type.
221	Set *structpb.Value `protobuf:"bytes,7,opt,name=set,proto3" json:"set,omitempty"`
222	// A struct value describing properties of a distribution of numeric values.
223	Distribution *structpb.Value `protobuf:"bytes,11,opt,name=distribution,proto3" json:"distribution,omitempty"`
224	// A struct value describing properties of a Gauge.
225	// Metrics of gauge type show the value of a metric across time, and is
226	// aggregated based on the newest value.
227	Gauge *structpb.Value `protobuf:"bytes,12,opt,name=gauge,proto3" json:"gauge,omitempty"`
228	// Worker-computed aggregate value for internal use by the Dataflow
229	// service.
230	Internal *structpb.Value `protobuf:"bytes,8,opt,name=internal,proto3" json:"internal,omitempty"`
231	// Timestamp associated with the metric value. Optional when workers are
232	// reporting work progress; it will be filled in responses from the
233	// metrics API.
234	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
235}
236
237func (x *MetricUpdate) Reset() {
238	*x = MetricUpdate{}
239	if protoimpl.UnsafeEnabled {
240		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[1]
241		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
242		ms.StoreMessageInfo(mi)
243	}
244}
245
246func (x *MetricUpdate) String() string {
247	return protoimpl.X.MessageStringOf(x)
248}
249
250func (*MetricUpdate) ProtoMessage() {}
251
252func (x *MetricUpdate) ProtoReflect() protoreflect.Message {
253	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[1]
254	if protoimpl.UnsafeEnabled && x != nil {
255		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
256		if ms.LoadMessageInfo() == nil {
257			ms.StoreMessageInfo(mi)
258		}
259		return ms
260	}
261	return mi.MessageOf(x)
262}
263
264// Deprecated: Use MetricUpdate.ProtoReflect.Descriptor instead.
265func (*MetricUpdate) Descriptor() ([]byte, []int) {
266	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{1}
267}
268
269func (x *MetricUpdate) GetName() *MetricStructuredName {
270	if x != nil {
271		return x.Name
272	}
273	return nil
274}
275
276func (x *MetricUpdate) GetKind() string {
277	if x != nil {
278		return x.Kind
279	}
280	return ""
281}
282
283func (x *MetricUpdate) GetCumulative() bool {
284	if x != nil {
285		return x.Cumulative
286	}
287	return false
288}
289
290func (x *MetricUpdate) GetScalar() *structpb.Value {
291	if x != nil {
292		return x.Scalar
293	}
294	return nil
295}
296
297func (x *MetricUpdate) GetMeanSum() *structpb.Value {
298	if x != nil {
299		return x.MeanSum
300	}
301	return nil
302}
303
304func (x *MetricUpdate) GetMeanCount() *structpb.Value {
305	if x != nil {
306		return x.MeanCount
307	}
308	return nil
309}
310
311func (x *MetricUpdate) GetSet() *structpb.Value {
312	if x != nil {
313		return x.Set
314	}
315	return nil
316}
317
318func (x *MetricUpdate) GetDistribution() *structpb.Value {
319	if x != nil {
320		return x.Distribution
321	}
322	return nil
323}
324
325func (x *MetricUpdate) GetGauge() *structpb.Value {
326	if x != nil {
327		return x.Gauge
328	}
329	return nil
330}
331
332func (x *MetricUpdate) GetInternal() *structpb.Value {
333	if x != nil {
334		return x.Internal
335	}
336	return nil
337}
338
339func (x *MetricUpdate) GetUpdateTime() *timestamppb.Timestamp {
340	if x != nil {
341		return x.UpdateTime
342	}
343	return nil
344}
345
346// Request to get job metrics.
347type GetJobMetricsRequest struct {
348	state         protoimpl.MessageState
349	sizeCache     protoimpl.SizeCache
350	unknownFields protoimpl.UnknownFields
351
352	// A project id.
353	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
354	// The job to get metrics for.
355	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
356	// Return only metric data that has changed since this time.
357	// Default is to return all information about all metrics for the job.
358	StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
359	// The [regional endpoint]
360	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
361	// contains the job specified by job_id.
362	Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"`
363}
364
365func (x *GetJobMetricsRequest) Reset() {
366	*x = GetJobMetricsRequest{}
367	if protoimpl.UnsafeEnabled {
368		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[2]
369		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
370		ms.StoreMessageInfo(mi)
371	}
372}
373
374func (x *GetJobMetricsRequest) String() string {
375	return protoimpl.X.MessageStringOf(x)
376}
377
378func (*GetJobMetricsRequest) ProtoMessage() {}
379
380func (x *GetJobMetricsRequest) ProtoReflect() protoreflect.Message {
381	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[2]
382	if protoimpl.UnsafeEnabled && x != nil {
383		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
384		if ms.LoadMessageInfo() == nil {
385			ms.StoreMessageInfo(mi)
386		}
387		return ms
388	}
389	return mi.MessageOf(x)
390}
391
392// Deprecated: Use GetJobMetricsRequest.ProtoReflect.Descriptor instead.
393func (*GetJobMetricsRequest) Descriptor() ([]byte, []int) {
394	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{2}
395}
396
397func (x *GetJobMetricsRequest) GetProjectId() string {
398	if x != nil {
399		return x.ProjectId
400	}
401	return ""
402}
403
404func (x *GetJobMetricsRequest) GetJobId() string {
405	if x != nil {
406		return x.JobId
407	}
408	return ""
409}
410
411func (x *GetJobMetricsRequest) GetStartTime() *timestamppb.Timestamp {
412	if x != nil {
413		return x.StartTime
414	}
415	return nil
416}
417
418func (x *GetJobMetricsRequest) GetLocation() string {
419	if x != nil {
420		return x.Location
421	}
422	return ""
423}
424
425// JobMetrics contains a collection of metrics describing the detailed progress
426// of a Dataflow job. Metrics correspond to user-defined and system-defined
427// metrics in the job.
428//
429// This resource captures only the most recent values of each metric;
430// time-series data can be queried for them (under the same metric names)
431// from Cloud Monitoring.
432type JobMetrics struct {
433	state         protoimpl.MessageState
434	sizeCache     protoimpl.SizeCache
435	unknownFields protoimpl.UnknownFields
436
437	// Timestamp as of which metric values are current.
438	MetricTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=metric_time,json=metricTime,proto3" json:"metric_time,omitempty"`
439	// All metrics for this job.
440	Metrics []*MetricUpdate `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
441}
442
443func (x *JobMetrics) Reset() {
444	*x = JobMetrics{}
445	if protoimpl.UnsafeEnabled {
446		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[3]
447		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
448		ms.StoreMessageInfo(mi)
449	}
450}
451
452func (x *JobMetrics) String() string {
453	return protoimpl.X.MessageStringOf(x)
454}
455
456func (*JobMetrics) ProtoMessage() {}
457
458func (x *JobMetrics) ProtoReflect() protoreflect.Message {
459	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[3]
460	if protoimpl.UnsafeEnabled && x != nil {
461		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
462		if ms.LoadMessageInfo() == nil {
463			ms.StoreMessageInfo(mi)
464		}
465		return ms
466	}
467	return mi.MessageOf(x)
468}
469
470// Deprecated: Use JobMetrics.ProtoReflect.Descriptor instead.
471func (*JobMetrics) Descriptor() ([]byte, []int) {
472	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{3}
473}
474
475func (x *JobMetrics) GetMetricTime() *timestamppb.Timestamp {
476	if x != nil {
477		return x.MetricTime
478	}
479	return nil
480}
481
482func (x *JobMetrics) GetMetrics() []*MetricUpdate {
483	if x != nil {
484		return x.Metrics
485	}
486	return nil
487}
488
489// Request to get job execution details.
490type GetJobExecutionDetailsRequest struct {
491	state         protoimpl.MessageState
492	sizeCache     protoimpl.SizeCache
493	unknownFields protoimpl.UnknownFields
494
495	// A project id.
496	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
497	// The job to get execution details for.
498	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
499	// The [regional endpoint]
500	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
501	// contains the job specified by job_id.
502	Location string `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"`
503	// If specified, determines the maximum number of stages to
504	// return.  If unspecified, the service may choose an appropriate
505	// default, or may return an arbitrarily large number of results.
506	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
507	// If supplied, this should be the value of next_page_token returned
508	// by an earlier call. This will cause the next page of results to
509	// be returned.
510	PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
511}
512
513func (x *GetJobExecutionDetailsRequest) Reset() {
514	*x = GetJobExecutionDetailsRequest{}
515	if protoimpl.UnsafeEnabled {
516		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[4]
517		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
518		ms.StoreMessageInfo(mi)
519	}
520}
521
522func (x *GetJobExecutionDetailsRequest) String() string {
523	return protoimpl.X.MessageStringOf(x)
524}
525
526func (*GetJobExecutionDetailsRequest) ProtoMessage() {}
527
528func (x *GetJobExecutionDetailsRequest) ProtoReflect() protoreflect.Message {
529	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[4]
530	if protoimpl.UnsafeEnabled && x != nil {
531		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
532		if ms.LoadMessageInfo() == nil {
533			ms.StoreMessageInfo(mi)
534		}
535		return ms
536	}
537	return mi.MessageOf(x)
538}
539
540// Deprecated: Use GetJobExecutionDetailsRequest.ProtoReflect.Descriptor instead.
541func (*GetJobExecutionDetailsRequest) Descriptor() ([]byte, []int) {
542	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{4}
543}
544
545func (x *GetJobExecutionDetailsRequest) GetProjectId() string {
546	if x != nil {
547		return x.ProjectId
548	}
549	return ""
550}
551
552func (x *GetJobExecutionDetailsRequest) GetJobId() string {
553	if x != nil {
554		return x.JobId
555	}
556	return ""
557}
558
559func (x *GetJobExecutionDetailsRequest) GetLocation() string {
560	if x != nil {
561		return x.Location
562	}
563	return ""
564}
565
566func (x *GetJobExecutionDetailsRequest) GetPageSize() int32 {
567	if x != nil {
568		return x.PageSize
569	}
570	return 0
571}
572
573func (x *GetJobExecutionDetailsRequest) GetPageToken() string {
574	if x != nil {
575		return x.PageToken
576	}
577	return ""
578}
579
580// Information about the progress of some component of job execution.
581type ProgressTimeseries struct {
582	state         protoimpl.MessageState
583	sizeCache     protoimpl.SizeCache
584	unknownFields protoimpl.UnknownFields
585
586	// The current progress of the component, in the range [0,1].
587	CurrentProgress float64 `protobuf:"fixed64,1,opt,name=current_progress,json=currentProgress,proto3" json:"current_progress,omitempty"`
588	// History of progress for the component.
589	//
590	// Points are sorted by time.
591	DataPoints []*ProgressTimeseries_Point `protobuf:"bytes,2,rep,name=data_points,json=dataPoints,proto3" json:"data_points,omitempty"`
592}
593
594func (x *ProgressTimeseries) Reset() {
595	*x = ProgressTimeseries{}
596	if protoimpl.UnsafeEnabled {
597		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[5]
598		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
599		ms.StoreMessageInfo(mi)
600	}
601}
602
603func (x *ProgressTimeseries) String() string {
604	return protoimpl.X.MessageStringOf(x)
605}
606
607func (*ProgressTimeseries) ProtoMessage() {}
608
609func (x *ProgressTimeseries) ProtoReflect() protoreflect.Message {
610	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[5]
611	if protoimpl.UnsafeEnabled && x != nil {
612		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
613		if ms.LoadMessageInfo() == nil {
614			ms.StoreMessageInfo(mi)
615		}
616		return ms
617	}
618	return mi.MessageOf(x)
619}
620
621// Deprecated: Use ProgressTimeseries.ProtoReflect.Descriptor instead.
622func (*ProgressTimeseries) Descriptor() ([]byte, []int) {
623	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{5}
624}
625
626func (x *ProgressTimeseries) GetCurrentProgress() float64 {
627	if x != nil {
628		return x.CurrentProgress
629	}
630	return 0
631}
632
633func (x *ProgressTimeseries) GetDataPoints() []*ProgressTimeseries_Point {
634	if x != nil {
635		return x.DataPoints
636	}
637	return nil
638}
639
640// Information about a particular execution stage of a job.
641type StageSummary struct {
642	state         protoimpl.MessageState
643	sizeCache     protoimpl.SizeCache
644	unknownFields protoimpl.UnknownFields
645
646	// ID of this stage
647	StageId string `protobuf:"bytes,1,opt,name=stage_id,json=stageId,proto3" json:"stage_id,omitempty"`
648	// State of this stage.
649	State ExecutionState `protobuf:"varint,2,opt,name=state,proto3,enum=google.dataflow.v1beta3.ExecutionState" json:"state,omitempty"`
650	// Start time of this stage.
651	StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
652	// End time of this stage.
653	//
654	// If the work item is completed, this is the actual end time of the stage.
655	// Otherwise, it is the predicted end time.
656	EndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
657	// Progress for this stage.
658	// Only applicable to Batch jobs.
659	Progress *ProgressTimeseries `protobuf:"bytes,5,opt,name=progress,proto3" json:"progress,omitempty"`
660	// Metrics for this stage.
661	Metrics []*MetricUpdate `protobuf:"bytes,6,rep,name=metrics,proto3" json:"metrics,omitempty"`
662}
663
664func (x *StageSummary) Reset() {
665	*x = StageSummary{}
666	if protoimpl.UnsafeEnabled {
667		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[6]
668		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
669		ms.StoreMessageInfo(mi)
670	}
671}
672
673func (x *StageSummary) String() string {
674	return protoimpl.X.MessageStringOf(x)
675}
676
677func (*StageSummary) ProtoMessage() {}
678
679func (x *StageSummary) ProtoReflect() protoreflect.Message {
680	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[6]
681	if protoimpl.UnsafeEnabled && x != nil {
682		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
683		if ms.LoadMessageInfo() == nil {
684			ms.StoreMessageInfo(mi)
685		}
686		return ms
687	}
688	return mi.MessageOf(x)
689}
690
691// Deprecated: Use StageSummary.ProtoReflect.Descriptor instead.
692func (*StageSummary) Descriptor() ([]byte, []int) {
693	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{6}
694}
695
696func (x *StageSummary) GetStageId() string {
697	if x != nil {
698		return x.StageId
699	}
700	return ""
701}
702
703func (x *StageSummary) GetState() ExecutionState {
704	if x != nil {
705		return x.State
706	}
707	return ExecutionState_EXECUTION_STATE_UNKNOWN
708}
709
710func (x *StageSummary) GetStartTime() *timestamppb.Timestamp {
711	if x != nil {
712		return x.StartTime
713	}
714	return nil
715}
716
717func (x *StageSummary) GetEndTime() *timestamppb.Timestamp {
718	if x != nil {
719		return x.EndTime
720	}
721	return nil
722}
723
724func (x *StageSummary) GetProgress() *ProgressTimeseries {
725	if x != nil {
726		return x.Progress
727	}
728	return nil
729}
730
731func (x *StageSummary) GetMetrics() []*MetricUpdate {
732	if x != nil {
733		return x.Metrics
734	}
735	return nil
736}
737
738// Information about the execution of a job.
739type JobExecutionDetails struct {
740	state         protoimpl.MessageState
741	sizeCache     protoimpl.SizeCache
742	unknownFields protoimpl.UnknownFields
743
744	// The stages of the job execution.
745	Stages []*StageSummary `protobuf:"bytes,1,rep,name=stages,proto3" json:"stages,omitempty"`
746	// If present, this response does not contain all requested tasks.  To obtain
747	// the next page of results, repeat the request with page_token set to this
748	// value.
749	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
750}
751
752func (x *JobExecutionDetails) Reset() {
753	*x = JobExecutionDetails{}
754	if protoimpl.UnsafeEnabled {
755		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[7]
756		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
757		ms.StoreMessageInfo(mi)
758	}
759}
760
761func (x *JobExecutionDetails) String() string {
762	return protoimpl.X.MessageStringOf(x)
763}
764
765func (*JobExecutionDetails) ProtoMessage() {}
766
767func (x *JobExecutionDetails) ProtoReflect() protoreflect.Message {
768	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[7]
769	if protoimpl.UnsafeEnabled && x != nil {
770		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
771		if ms.LoadMessageInfo() == nil {
772			ms.StoreMessageInfo(mi)
773		}
774		return ms
775	}
776	return mi.MessageOf(x)
777}
778
779// Deprecated: Use JobExecutionDetails.ProtoReflect.Descriptor instead.
780func (*JobExecutionDetails) Descriptor() ([]byte, []int) {
781	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{7}
782}
783
784func (x *JobExecutionDetails) GetStages() []*StageSummary {
785	if x != nil {
786		return x.Stages
787	}
788	return nil
789}
790
791func (x *JobExecutionDetails) GetNextPageToken() string {
792	if x != nil {
793		return x.NextPageToken
794	}
795	return ""
796}
797
798// Request to get information about a particular execution stage of a job.
799// Currently only tracked for Batch jobs.
800type GetStageExecutionDetailsRequest struct {
801	state         protoimpl.MessageState
802	sizeCache     protoimpl.SizeCache
803	unknownFields protoimpl.UnknownFields
804
805	// A project id.
806	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
807	// The job to get execution details for.
808	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
809	// The [regional endpoint]
810	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
811	// contains the job specified by job_id.
812	Location string `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"`
813	// The stage for which to fetch information.
814	StageId string `protobuf:"bytes,4,opt,name=stage_id,json=stageId,proto3" json:"stage_id,omitempty"`
815	// If specified, determines the maximum number of work items to
816	// return.  If unspecified, the service may choose an appropriate
817	// default, or may return an arbitrarily large number of results.
818	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
819	// If supplied, this should be the value of next_page_token returned
820	// by an earlier call. This will cause the next page of results to
821	// be returned.
822	PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
823	// Lower time bound of work items to include, by start time.
824	StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
825	// Upper time bound of work items to include, by start time.
826	EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
827}
828
829func (x *GetStageExecutionDetailsRequest) Reset() {
830	*x = GetStageExecutionDetailsRequest{}
831	if protoimpl.UnsafeEnabled {
832		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[8]
833		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
834		ms.StoreMessageInfo(mi)
835	}
836}
837
838func (x *GetStageExecutionDetailsRequest) String() string {
839	return protoimpl.X.MessageStringOf(x)
840}
841
842func (*GetStageExecutionDetailsRequest) ProtoMessage() {}
843
844func (x *GetStageExecutionDetailsRequest) ProtoReflect() protoreflect.Message {
845	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[8]
846	if protoimpl.UnsafeEnabled && x != nil {
847		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
848		if ms.LoadMessageInfo() == nil {
849			ms.StoreMessageInfo(mi)
850		}
851		return ms
852	}
853	return mi.MessageOf(x)
854}
855
856// Deprecated: Use GetStageExecutionDetailsRequest.ProtoReflect.Descriptor instead.
857func (*GetStageExecutionDetailsRequest) Descriptor() ([]byte, []int) {
858	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{8}
859}
860
861func (x *GetStageExecutionDetailsRequest) GetProjectId() string {
862	if x != nil {
863		return x.ProjectId
864	}
865	return ""
866}
867
868func (x *GetStageExecutionDetailsRequest) GetJobId() string {
869	if x != nil {
870		return x.JobId
871	}
872	return ""
873}
874
875func (x *GetStageExecutionDetailsRequest) GetLocation() string {
876	if x != nil {
877		return x.Location
878	}
879	return ""
880}
881
882func (x *GetStageExecutionDetailsRequest) GetStageId() string {
883	if x != nil {
884		return x.StageId
885	}
886	return ""
887}
888
889func (x *GetStageExecutionDetailsRequest) GetPageSize() int32 {
890	if x != nil {
891		return x.PageSize
892	}
893	return 0
894}
895
896func (x *GetStageExecutionDetailsRequest) GetPageToken() string {
897	if x != nil {
898		return x.PageToken
899	}
900	return ""
901}
902
903func (x *GetStageExecutionDetailsRequest) GetStartTime() *timestamppb.Timestamp {
904	if x != nil {
905		return x.StartTime
906	}
907	return nil
908}
909
910func (x *GetStageExecutionDetailsRequest) GetEndTime() *timestamppb.Timestamp {
911	if x != nil {
912		return x.EndTime
913	}
914	return nil
915}
916
917// Information about an individual work item execution.
918type WorkItemDetails struct {
919	state         protoimpl.MessageState
920	sizeCache     protoimpl.SizeCache
921	unknownFields protoimpl.UnknownFields
922
923	// Name of this work item.
924	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
925	// Attempt ID of this work item
926	AttemptId string `protobuf:"bytes,2,opt,name=attempt_id,json=attemptId,proto3" json:"attempt_id,omitempty"`
927	// Start time of this work item attempt.
928	StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
929	// End time of this work item attempt.
930	//
931	// If the work item is completed, this is the actual end time of the work
932	// item.  Otherwise, it is the predicted end time.
933	EndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
934	// State of this work item.
935	State ExecutionState `protobuf:"varint,5,opt,name=state,proto3,enum=google.dataflow.v1beta3.ExecutionState" json:"state,omitempty"`
936	// Progress of this work item.
937	Progress *ProgressTimeseries `protobuf:"bytes,6,opt,name=progress,proto3" json:"progress,omitempty"`
938	// Metrics for this work item.
939	Metrics []*MetricUpdate `protobuf:"bytes,7,rep,name=metrics,proto3" json:"metrics,omitempty"`
940}
941
942func (x *WorkItemDetails) Reset() {
943	*x = WorkItemDetails{}
944	if protoimpl.UnsafeEnabled {
945		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[9]
946		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
947		ms.StoreMessageInfo(mi)
948	}
949}
950
951func (x *WorkItemDetails) String() string {
952	return protoimpl.X.MessageStringOf(x)
953}
954
955func (*WorkItemDetails) ProtoMessage() {}
956
957func (x *WorkItemDetails) ProtoReflect() protoreflect.Message {
958	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[9]
959	if protoimpl.UnsafeEnabled && x != nil {
960		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
961		if ms.LoadMessageInfo() == nil {
962			ms.StoreMessageInfo(mi)
963		}
964		return ms
965	}
966	return mi.MessageOf(x)
967}
968
969// Deprecated: Use WorkItemDetails.ProtoReflect.Descriptor instead.
970func (*WorkItemDetails) Descriptor() ([]byte, []int) {
971	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{9}
972}
973
974func (x *WorkItemDetails) GetTaskId() string {
975	if x != nil {
976		return x.TaskId
977	}
978	return ""
979}
980
981func (x *WorkItemDetails) GetAttemptId() string {
982	if x != nil {
983		return x.AttemptId
984	}
985	return ""
986}
987
988func (x *WorkItemDetails) GetStartTime() *timestamppb.Timestamp {
989	if x != nil {
990		return x.StartTime
991	}
992	return nil
993}
994
995func (x *WorkItemDetails) GetEndTime() *timestamppb.Timestamp {
996	if x != nil {
997		return x.EndTime
998	}
999	return nil
1000}
1001
1002func (x *WorkItemDetails) GetState() ExecutionState {
1003	if x != nil {
1004		return x.State
1005	}
1006	return ExecutionState_EXECUTION_STATE_UNKNOWN
1007}
1008
1009func (x *WorkItemDetails) GetProgress() *ProgressTimeseries {
1010	if x != nil {
1011		return x.Progress
1012	}
1013	return nil
1014}
1015
1016func (x *WorkItemDetails) GetMetrics() []*MetricUpdate {
1017	if x != nil {
1018		return x.Metrics
1019	}
1020	return nil
1021}
1022
1023// Information about a worker
1024type WorkerDetails struct {
1025	state         protoimpl.MessageState
1026	sizeCache     protoimpl.SizeCache
1027	unknownFields protoimpl.UnknownFields
1028
1029	// Name of this worker
1030	WorkerName string `protobuf:"bytes,1,opt,name=worker_name,json=workerName,proto3" json:"worker_name,omitempty"`
1031	// Work items processed by this worker, sorted by time.
1032	WorkItems []*WorkItemDetails `protobuf:"bytes,2,rep,name=work_items,json=workItems,proto3" json:"work_items,omitempty"`
1033}
1034
1035func (x *WorkerDetails) Reset() {
1036	*x = WorkerDetails{}
1037	if protoimpl.UnsafeEnabled {
1038		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[10]
1039		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1040		ms.StoreMessageInfo(mi)
1041	}
1042}
1043
1044func (x *WorkerDetails) String() string {
1045	return protoimpl.X.MessageStringOf(x)
1046}
1047
1048func (*WorkerDetails) ProtoMessage() {}
1049
1050func (x *WorkerDetails) ProtoReflect() protoreflect.Message {
1051	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[10]
1052	if protoimpl.UnsafeEnabled && x != nil {
1053		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1054		if ms.LoadMessageInfo() == nil {
1055			ms.StoreMessageInfo(mi)
1056		}
1057		return ms
1058	}
1059	return mi.MessageOf(x)
1060}
1061
1062// Deprecated: Use WorkerDetails.ProtoReflect.Descriptor instead.
1063func (*WorkerDetails) Descriptor() ([]byte, []int) {
1064	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{10}
1065}
1066
1067func (x *WorkerDetails) GetWorkerName() string {
1068	if x != nil {
1069		return x.WorkerName
1070	}
1071	return ""
1072}
1073
1074func (x *WorkerDetails) GetWorkItems() []*WorkItemDetails {
1075	if x != nil {
1076		return x.WorkItems
1077	}
1078	return nil
1079}
1080
1081// Information about the workers and work items within a stage.
1082type StageExecutionDetails struct {
1083	state         protoimpl.MessageState
1084	sizeCache     protoimpl.SizeCache
1085	unknownFields protoimpl.UnknownFields
1086
1087	// Workers that have done work on the stage.
1088	Workers []*WorkerDetails `protobuf:"bytes,1,rep,name=workers,proto3" json:"workers,omitempty"`
1089	// If present, this response does not contain all requested tasks.  To obtain
1090	// the next page of results, repeat the request with page_token set to this
1091	// value.
1092	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1093}
1094
1095func (x *StageExecutionDetails) Reset() {
1096	*x = StageExecutionDetails{}
1097	if protoimpl.UnsafeEnabled {
1098		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[11]
1099		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1100		ms.StoreMessageInfo(mi)
1101	}
1102}
1103
1104func (x *StageExecutionDetails) String() string {
1105	return protoimpl.X.MessageStringOf(x)
1106}
1107
1108func (*StageExecutionDetails) ProtoMessage() {}
1109
1110func (x *StageExecutionDetails) ProtoReflect() protoreflect.Message {
1111	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[11]
1112	if protoimpl.UnsafeEnabled && x != nil {
1113		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1114		if ms.LoadMessageInfo() == nil {
1115			ms.StoreMessageInfo(mi)
1116		}
1117		return ms
1118	}
1119	return mi.MessageOf(x)
1120}
1121
1122// Deprecated: Use StageExecutionDetails.ProtoReflect.Descriptor instead.
1123func (*StageExecutionDetails) Descriptor() ([]byte, []int) {
1124	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{11}
1125}
1126
1127func (x *StageExecutionDetails) GetWorkers() []*WorkerDetails {
1128	if x != nil {
1129		return x.Workers
1130	}
1131	return nil
1132}
1133
1134func (x *StageExecutionDetails) GetNextPageToken() string {
1135	if x != nil {
1136		return x.NextPageToken
1137	}
1138	return ""
1139}
1140
1141// A point in the timeseries.
1142type ProgressTimeseries_Point struct {
1143	state         protoimpl.MessageState
1144	sizeCache     protoimpl.SizeCache
1145	unknownFields protoimpl.UnknownFields
1146
1147	// The timestamp of the point.
1148	Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
1149	// The value of the point.
1150	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
1151}
1152
1153func (x *ProgressTimeseries_Point) Reset() {
1154	*x = ProgressTimeseries_Point{}
1155	if protoimpl.UnsafeEnabled {
1156		mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[13]
1157		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1158		ms.StoreMessageInfo(mi)
1159	}
1160}
1161
1162func (x *ProgressTimeseries_Point) String() string {
1163	return protoimpl.X.MessageStringOf(x)
1164}
1165
1166func (*ProgressTimeseries_Point) ProtoMessage() {}
1167
1168func (x *ProgressTimeseries_Point) ProtoReflect() protoreflect.Message {
1169	mi := &file_google_dataflow_v1beta3_metrics_proto_msgTypes[13]
1170	if protoimpl.UnsafeEnabled && x != nil {
1171		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1172		if ms.LoadMessageInfo() == nil {
1173			ms.StoreMessageInfo(mi)
1174		}
1175		return ms
1176	}
1177	return mi.MessageOf(x)
1178}
1179
1180// Deprecated: Use ProgressTimeseries_Point.ProtoReflect.Descriptor instead.
1181func (*ProgressTimeseries_Point) Descriptor() ([]byte, []int) {
1182	return file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP(), []int{5, 0}
1183}
1184
1185func (x *ProgressTimeseries_Point) GetTime() *timestamppb.Timestamp {
1186	if x != nil {
1187		return x.Time
1188	}
1189	return nil
1190}
1191
1192func (x *ProgressTimeseries_Point) GetValue() float64 {
1193	if x != nil {
1194		return x.Value
1195	}
1196	return 0
1197}
1198
1199var File_google_dataflow_v1beta3_metrics_proto protoreflect.FileDescriptor
1200
1201var file_google_dataflow_v1beta3_metrics_proto_rawDesc = []byte{
1202	0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f,
1203	0x77, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1204	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1205	0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33,
1206	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
1207	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c,
1208	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
1209	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
1210	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
1211	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67,
1212	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
1213	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x72, 0x69,
1214	0x63, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12,
1215	0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
1216	0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
1217	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x07, 0x63,
1218	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67,
1219	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76,
1220	0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74, 0x72,
1221	0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
1222	0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
1223	0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, 0x72,
1224	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
1225	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
1226	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x04,
1227	0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41,
1228	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67,
1229	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76,
1230	0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x74, 0x72,
1231	0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
1232	0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
1233	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74,
1234	0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x75, 0x6d, 0x75, 0x6c,
1235	0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x18,
1236	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
1237	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73,
1238	0x63, 0x61, 0x6c, 0x61, 0x72, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x73, 0x75,
1239	0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1240	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
1241	0x07, 0x6d, 0x65, 0x61, 0x6e, 0x53, 0x75, 0x6d, 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x65, 0x61, 0x6e,
1242	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
1243	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
1244	0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
1245	0x28, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
1246	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
1247	0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x64, 0x69, 0x73,
1248	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
1249	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
1250	0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
1251	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18, 0x0c,
1252	0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
1253	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x67, 0x61,
1254	0x75, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18,
1255	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
1256	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69,
1257	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74,
1258	0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
1259	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
1260	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
1261	0x54, 0x69, 0x6d, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4d,
1262	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
1263	0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
1264	0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06,
1265	0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f,
1266	0x62, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
1267	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1268	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
1269	0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a,
1270	0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
1271	0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x0a, 0x4a,
1272	0x6f, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x65, 0x74,
1273	0x72, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
1274	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
1275	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72,
1276	0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1277	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1278	0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
1279	0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07,
1280	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4a,
1281	0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69,
1282	0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
1283	0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70,
1284	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f,
1285	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12,
1286	0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
1287	0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70,
1288	0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
1289	0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65,
1290	0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61,
1291	0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xe2, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x67,
1292	0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x29,
1293	0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
1294	0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
1295	0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x64, 0x61, 0x74,
1296	0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
1297	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77,
1298	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
1299	0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x69, 0x6e,
1300	0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x4d, 0x0a,
1301	0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01,
1302	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
1303	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
1304	0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
1305	0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe4, 0x02, 0x0a,
1306	0x0c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x19, 0x0a,
1307	0x08, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
1308	0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
1309	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1310	0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
1311	0x33, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65,
1312	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
1313	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
1314	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
1315	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
1316	0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04,
1317	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
1318	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
1319	0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x72, 0x6f,
1320	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
1321	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31,
1322	0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69,
1323	0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
1324	0x73, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20,
1325	0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74,
1326	0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4d, 0x65,
1327	0x74, 0x72, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72,
1328	0x69, 0x63, 0x73, 0x22, 0x7c, 0x0a, 0x13, 0x4a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
1329	0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74,
1330	0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
1331	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62,
1332	0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
1333	0x79, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78,
1334	0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01,
1335	0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
1336	0x6e, 0x22, 0xbc, 0x02, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x78,
1337	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65,
1338	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
1339	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65,
1340	0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02,
1341	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c,
1342	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c,
1343	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x67, 0x65,
1344	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65,
1345	0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
1346	0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12,
1347	0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20,
1348	0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39,
1349	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01,
1350	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
1351	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
1352	0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64,
1353	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
1354	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
1355	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
1356	0x22, 0x84, 0x03, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x74,
1357	0x61, 0x69, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18,
1358	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a,
1359	0x0a, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
1360	0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a,
1361	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
1362	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
1363	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74,
1364	0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74,
1365	0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1366	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
1367	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d,
1368	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e,
1369	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
1370	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
1371	0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a,
1372	0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
1373	0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f,
1374	0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
1375	0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x72,
1376	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1377	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1378	0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
1379	0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07,
1380	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x79, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x65,
1381	0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b,
1382	0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77,
1383	0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x77, 0x6f, 0x72,
1384	0x6b, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e,
1385	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
1386	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d,
1387	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65,
1388	0x6d, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x78, 0x65, 0x63,
1389	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x07,
1390	0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e,
1391	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
1392	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x65,
1393	0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x26,
1394	0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
1395	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67,
1396	0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0xc5, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75,
1397	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45,
1398	0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b,
1399	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54,
1400	0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54,
1401	0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55,
1402	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49,
1403	0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f,
1404	0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45,
1405	0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e,
1406	0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12,
1407	0x1d, 0x0a, 0x19, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41,
1408	0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x32, 0xda,
1409	0x04, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61,
1410	0x33, 0x12, 0x65, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69,
1411	0x63, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61,
1412	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x47, 0x65, 0x74,
1413	0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
1414	0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66,
1415	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4a, 0x6f, 0x62, 0x4d,
1416	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74,
1417	0x4a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61,
1418	0x69, 0x6c, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74,
1419	0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x47, 0x65,
1420	0x74, 0x4a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74,
1421	0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f,
1422	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31,
1423	0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
1424	0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x18,
1425	0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
1426	0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1427	0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1428	0x61, 0x33, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75,
1429	0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
1430	0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61,
1431	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x61,
1432	0x67, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69,
1433	0x6c, 0x73, 0x22, 0x00, 0x1a, 0xd4, 0x01, 0xca, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c,
1434	0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
1435	0x6d, 0xd2, 0x41, 0xb6, 0x01, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
1436	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
1437	0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66,
1438	0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
1439	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
1440	0x75, 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2c, 0x68, 0x74, 0x74, 0x70,
1441	0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
1442	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x6d, 0x70,
1443	0x75, 0x74, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x2c, 0x68, 0x74, 0x74,
1444	0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
1445	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x75, 0x73, 0x65,
1446	0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0xd1, 0x01, 0x0a, 0x1b,
1447	0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x66,
1448	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, 0x0c, 0x4d, 0x65, 0x74,
1449	0x72, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x6f, 0x6f,
1450	0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67,
1451	0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
1452	0x69, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x76, 0x31, 0x62, 0x65,
1453	0x74, 0x61, 0x33, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0xaa, 0x02, 0x1d, 0x47,
1454	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x61, 0x74, 0x61,
1455	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, 0x1d, 0x47,
1456	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x61, 0x74, 0x61,
1457	0x66, 0x6c, 0x6f, 0x77, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xea, 0x02, 0x20, 0x47,
1458	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x61,
1459	0x74, 0x61, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62,
1460	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1461}
1462
1463var (
1464	file_google_dataflow_v1beta3_metrics_proto_rawDescOnce sync.Once
1465	file_google_dataflow_v1beta3_metrics_proto_rawDescData = file_google_dataflow_v1beta3_metrics_proto_rawDesc
1466)
1467
1468func file_google_dataflow_v1beta3_metrics_proto_rawDescGZIP() []byte {
1469	file_google_dataflow_v1beta3_metrics_proto_rawDescOnce.Do(func() {
1470		file_google_dataflow_v1beta3_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_dataflow_v1beta3_metrics_proto_rawDescData)
1471	})
1472	return file_google_dataflow_v1beta3_metrics_proto_rawDescData
1473}
1474
1475var file_google_dataflow_v1beta3_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
1476var file_google_dataflow_v1beta3_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
1477var file_google_dataflow_v1beta3_metrics_proto_goTypes = []interface{}{
1478	(ExecutionState)(0),                     // 0: google.dataflow.v1beta3.ExecutionState
1479	(*MetricStructuredName)(nil),            // 1: google.dataflow.v1beta3.MetricStructuredName
1480	(*MetricUpdate)(nil),                    // 2: google.dataflow.v1beta3.MetricUpdate
1481	(*GetJobMetricsRequest)(nil),            // 3: google.dataflow.v1beta3.GetJobMetricsRequest
1482	(*JobMetrics)(nil),                      // 4: google.dataflow.v1beta3.JobMetrics
1483	(*GetJobExecutionDetailsRequest)(nil),   // 5: google.dataflow.v1beta3.GetJobExecutionDetailsRequest
1484	(*ProgressTimeseries)(nil),              // 6: google.dataflow.v1beta3.ProgressTimeseries
1485	(*StageSummary)(nil),                    // 7: google.dataflow.v1beta3.StageSummary
1486	(*JobExecutionDetails)(nil),             // 8: google.dataflow.v1beta3.JobExecutionDetails
1487	(*GetStageExecutionDetailsRequest)(nil), // 9: google.dataflow.v1beta3.GetStageExecutionDetailsRequest
1488	(*WorkItemDetails)(nil),                 // 10: google.dataflow.v1beta3.WorkItemDetails
1489	(*WorkerDetails)(nil),                   // 11: google.dataflow.v1beta3.WorkerDetails
1490	(*StageExecutionDetails)(nil),           // 12: google.dataflow.v1beta3.StageExecutionDetails
1491	nil,                                     // 13: google.dataflow.v1beta3.MetricStructuredName.ContextEntry
1492	(*ProgressTimeseries_Point)(nil),        // 14: google.dataflow.v1beta3.ProgressTimeseries.Point
1493	(*structpb.Value)(nil),                  // 15: google.protobuf.Value
1494	(*timestamppb.Timestamp)(nil),           // 16: google.protobuf.Timestamp
1495}
1496var file_google_dataflow_v1beta3_metrics_proto_depIdxs = []int32{
1497	13, // 0: google.dataflow.v1beta3.MetricStructuredName.context:type_name -> google.dataflow.v1beta3.MetricStructuredName.ContextEntry
1498	1,  // 1: google.dataflow.v1beta3.MetricUpdate.name:type_name -> google.dataflow.v1beta3.MetricStructuredName
1499	15, // 2: google.dataflow.v1beta3.MetricUpdate.scalar:type_name -> google.protobuf.Value
1500	15, // 3: google.dataflow.v1beta3.MetricUpdate.mean_sum:type_name -> google.protobuf.Value
1501	15, // 4: google.dataflow.v1beta3.MetricUpdate.mean_count:type_name -> google.protobuf.Value
1502	15, // 5: google.dataflow.v1beta3.MetricUpdate.set:type_name -> google.protobuf.Value
1503	15, // 6: google.dataflow.v1beta3.MetricUpdate.distribution:type_name -> google.protobuf.Value
1504	15, // 7: google.dataflow.v1beta3.MetricUpdate.gauge:type_name -> google.protobuf.Value
1505	15, // 8: google.dataflow.v1beta3.MetricUpdate.internal:type_name -> google.protobuf.Value
1506	16, // 9: google.dataflow.v1beta3.MetricUpdate.update_time:type_name -> google.protobuf.Timestamp
1507	16, // 10: google.dataflow.v1beta3.GetJobMetricsRequest.start_time:type_name -> google.protobuf.Timestamp
1508	16, // 11: google.dataflow.v1beta3.JobMetrics.metric_time:type_name -> google.protobuf.Timestamp
1509	2,  // 12: google.dataflow.v1beta3.JobMetrics.metrics:type_name -> google.dataflow.v1beta3.MetricUpdate
1510	14, // 13: google.dataflow.v1beta3.ProgressTimeseries.data_points:type_name -> google.dataflow.v1beta3.ProgressTimeseries.Point
1511	0,  // 14: google.dataflow.v1beta3.StageSummary.state:type_name -> google.dataflow.v1beta3.ExecutionState
1512	16, // 15: google.dataflow.v1beta3.StageSummary.start_time:type_name -> google.protobuf.Timestamp
1513	16, // 16: google.dataflow.v1beta3.StageSummary.end_time:type_name -> google.protobuf.Timestamp
1514	6,  // 17: google.dataflow.v1beta3.StageSummary.progress:type_name -> google.dataflow.v1beta3.ProgressTimeseries
1515	2,  // 18: google.dataflow.v1beta3.StageSummary.metrics:type_name -> google.dataflow.v1beta3.MetricUpdate
1516	7,  // 19: google.dataflow.v1beta3.JobExecutionDetails.stages:type_name -> google.dataflow.v1beta3.StageSummary
1517	16, // 20: google.dataflow.v1beta3.GetStageExecutionDetailsRequest.start_time:type_name -> google.protobuf.Timestamp
1518	16, // 21: google.dataflow.v1beta3.GetStageExecutionDetailsRequest.end_time:type_name -> google.protobuf.Timestamp
1519	16, // 22: google.dataflow.v1beta3.WorkItemDetails.start_time:type_name -> google.protobuf.Timestamp
1520	16, // 23: google.dataflow.v1beta3.WorkItemDetails.end_time:type_name -> google.protobuf.Timestamp
1521	0,  // 24: google.dataflow.v1beta3.WorkItemDetails.state:type_name -> google.dataflow.v1beta3.ExecutionState
1522	6,  // 25: google.dataflow.v1beta3.WorkItemDetails.progress:type_name -> google.dataflow.v1beta3.ProgressTimeseries
1523	2,  // 26: google.dataflow.v1beta3.WorkItemDetails.metrics:type_name -> google.dataflow.v1beta3.MetricUpdate
1524	10, // 27: google.dataflow.v1beta3.WorkerDetails.work_items:type_name -> google.dataflow.v1beta3.WorkItemDetails
1525	11, // 28: google.dataflow.v1beta3.StageExecutionDetails.workers:type_name -> google.dataflow.v1beta3.WorkerDetails
1526	16, // 29: google.dataflow.v1beta3.ProgressTimeseries.Point.time:type_name -> google.protobuf.Timestamp
1527	3,  // 30: google.dataflow.v1beta3.MetricsV1Beta3.GetJobMetrics:input_type -> google.dataflow.v1beta3.GetJobMetricsRequest
1528	5,  // 31: google.dataflow.v1beta3.MetricsV1Beta3.GetJobExecutionDetails:input_type -> google.dataflow.v1beta3.GetJobExecutionDetailsRequest
1529	9,  // 32: google.dataflow.v1beta3.MetricsV1Beta3.GetStageExecutionDetails:input_type -> google.dataflow.v1beta3.GetStageExecutionDetailsRequest
1530	4,  // 33: google.dataflow.v1beta3.MetricsV1Beta3.GetJobMetrics:output_type -> google.dataflow.v1beta3.JobMetrics
1531	8,  // 34: google.dataflow.v1beta3.MetricsV1Beta3.GetJobExecutionDetails:output_type -> google.dataflow.v1beta3.JobExecutionDetails
1532	12, // 35: google.dataflow.v1beta3.MetricsV1Beta3.GetStageExecutionDetails:output_type -> google.dataflow.v1beta3.StageExecutionDetails
1533	33, // [33:36] is the sub-list for method output_type
1534	30, // [30:33] is the sub-list for method input_type
1535	30, // [30:30] is the sub-list for extension type_name
1536	30, // [30:30] is the sub-list for extension extendee
1537	0,  // [0:30] is the sub-list for field type_name
1538}
1539
1540func init() { file_google_dataflow_v1beta3_metrics_proto_init() }
1541func file_google_dataflow_v1beta3_metrics_proto_init() {
1542	if File_google_dataflow_v1beta3_metrics_proto != nil {
1543		return
1544	}
1545	if !protoimpl.UnsafeEnabled {
1546		file_google_dataflow_v1beta3_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1547			switch v := v.(*MetricStructuredName); i {
1548			case 0:
1549				return &v.state
1550			case 1:
1551				return &v.sizeCache
1552			case 2:
1553				return &v.unknownFields
1554			default:
1555				return nil
1556			}
1557		}
1558		file_google_dataflow_v1beta3_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1559			switch v := v.(*MetricUpdate); i {
1560			case 0:
1561				return &v.state
1562			case 1:
1563				return &v.sizeCache
1564			case 2:
1565				return &v.unknownFields
1566			default:
1567				return nil
1568			}
1569		}
1570		file_google_dataflow_v1beta3_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1571			switch v := v.(*GetJobMetricsRequest); i {
1572			case 0:
1573				return &v.state
1574			case 1:
1575				return &v.sizeCache
1576			case 2:
1577				return &v.unknownFields
1578			default:
1579				return nil
1580			}
1581		}
1582		file_google_dataflow_v1beta3_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1583			switch v := v.(*JobMetrics); i {
1584			case 0:
1585				return &v.state
1586			case 1:
1587				return &v.sizeCache
1588			case 2:
1589				return &v.unknownFields
1590			default:
1591				return nil
1592			}
1593		}
1594		file_google_dataflow_v1beta3_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1595			switch v := v.(*GetJobExecutionDetailsRequest); i {
1596			case 0:
1597				return &v.state
1598			case 1:
1599				return &v.sizeCache
1600			case 2:
1601				return &v.unknownFields
1602			default:
1603				return nil
1604			}
1605		}
1606		file_google_dataflow_v1beta3_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1607			switch v := v.(*ProgressTimeseries); i {
1608			case 0:
1609				return &v.state
1610			case 1:
1611				return &v.sizeCache
1612			case 2:
1613				return &v.unknownFields
1614			default:
1615				return nil
1616			}
1617		}
1618		file_google_dataflow_v1beta3_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1619			switch v := v.(*StageSummary); i {
1620			case 0:
1621				return &v.state
1622			case 1:
1623				return &v.sizeCache
1624			case 2:
1625				return &v.unknownFields
1626			default:
1627				return nil
1628			}
1629		}
1630		file_google_dataflow_v1beta3_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1631			switch v := v.(*JobExecutionDetails); i {
1632			case 0:
1633				return &v.state
1634			case 1:
1635				return &v.sizeCache
1636			case 2:
1637				return &v.unknownFields
1638			default:
1639				return nil
1640			}
1641		}
1642		file_google_dataflow_v1beta3_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1643			switch v := v.(*GetStageExecutionDetailsRequest); i {
1644			case 0:
1645				return &v.state
1646			case 1:
1647				return &v.sizeCache
1648			case 2:
1649				return &v.unknownFields
1650			default:
1651				return nil
1652			}
1653		}
1654		file_google_dataflow_v1beta3_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1655			switch v := v.(*WorkItemDetails); i {
1656			case 0:
1657				return &v.state
1658			case 1:
1659				return &v.sizeCache
1660			case 2:
1661				return &v.unknownFields
1662			default:
1663				return nil
1664			}
1665		}
1666		file_google_dataflow_v1beta3_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1667			switch v := v.(*WorkerDetails); i {
1668			case 0:
1669				return &v.state
1670			case 1:
1671				return &v.sizeCache
1672			case 2:
1673				return &v.unknownFields
1674			default:
1675				return nil
1676			}
1677		}
1678		file_google_dataflow_v1beta3_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1679			switch v := v.(*StageExecutionDetails); i {
1680			case 0:
1681				return &v.state
1682			case 1:
1683				return &v.sizeCache
1684			case 2:
1685				return &v.unknownFields
1686			default:
1687				return nil
1688			}
1689		}
1690		file_google_dataflow_v1beta3_metrics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
1691			switch v := v.(*ProgressTimeseries_Point); i {
1692			case 0:
1693				return &v.state
1694			case 1:
1695				return &v.sizeCache
1696			case 2:
1697				return &v.unknownFields
1698			default:
1699				return nil
1700			}
1701		}
1702	}
1703	type x struct{}
1704	out := protoimpl.TypeBuilder{
1705		File: protoimpl.DescBuilder{
1706			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1707			RawDescriptor: file_google_dataflow_v1beta3_metrics_proto_rawDesc,
1708			NumEnums:      1,
1709			NumMessages:   14,
1710			NumExtensions: 0,
1711			NumServices:   1,
1712		},
1713		GoTypes:           file_google_dataflow_v1beta3_metrics_proto_goTypes,
1714		DependencyIndexes: file_google_dataflow_v1beta3_metrics_proto_depIdxs,
1715		EnumInfos:         file_google_dataflow_v1beta3_metrics_proto_enumTypes,
1716		MessageInfos:      file_google_dataflow_v1beta3_metrics_proto_msgTypes,
1717	}.Build()
1718	File_google_dataflow_v1beta3_metrics_proto = out.File
1719	file_google_dataflow_v1beta3_metrics_proto_rawDesc = nil
1720	file_google_dataflow_v1beta3_metrics_proto_goTypes = nil
1721	file_google_dataflow_v1beta3_metrics_proto_depIdxs = nil
1722}
1723
1724// Reference imports to suppress errors if they are not otherwise used.
1725var _ context.Context
1726var _ grpc.ClientConnInterface
1727
1728// This is a compile-time assertion to ensure that this generated file
1729// is compatible with the grpc package it is being compiled against.
1730const _ = grpc.SupportPackageIsVersion6
1731
1732// MetricsV1Beta3Client is the client API for MetricsV1Beta3 service.
1733//
1734// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
1735type MetricsV1Beta3Client interface {
1736	// Request the job status.
1737	//
1738	// To request the status of a job, we recommend using
1739	// `projects.locations.jobs.getMetrics` with a [regional endpoint]
1740	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
1741	// `projects.jobs.getMetrics` is not recommended, as you can only request the
1742	// status of jobs that are running in `us-central1`.
1743	GetJobMetrics(ctx context.Context, in *GetJobMetricsRequest, opts ...grpc.CallOption) (*JobMetrics, error)
1744	// Request detailed information about the execution status of the job.
1745	//
1746	// EXPERIMENTAL.  This API is subject to change or removal without notice.
1747	GetJobExecutionDetails(ctx context.Context, in *GetJobExecutionDetailsRequest, opts ...grpc.CallOption) (*JobExecutionDetails, error)
1748	// Request detailed information about the execution status of a stage of the
1749	// job.
1750	//
1751	// EXPERIMENTAL.  This API is subject to change or removal without notice.
1752	GetStageExecutionDetails(ctx context.Context, in *GetStageExecutionDetailsRequest, opts ...grpc.CallOption) (*StageExecutionDetails, error)
1753}
1754
1755type metricsV1Beta3Client struct {
1756	cc grpc.ClientConnInterface
1757}
1758
1759func NewMetricsV1Beta3Client(cc grpc.ClientConnInterface) MetricsV1Beta3Client {
1760	return &metricsV1Beta3Client{cc}
1761}
1762
1763func (c *metricsV1Beta3Client) GetJobMetrics(ctx context.Context, in *GetJobMetricsRequest, opts ...grpc.CallOption) (*JobMetrics, error) {
1764	out := new(JobMetrics)
1765	err := c.cc.Invoke(ctx, "/google.dataflow.v1beta3.MetricsV1Beta3/GetJobMetrics", in, out, opts...)
1766	if err != nil {
1767		return nil, err
1768	}
1769	return out, nil
1770}
1771
1772func (c *metricsV1Beta3Client) GetJobExecutionDetails(ctx context.Context, in *GetJobExecutionDetailsRequest, opts ...grpc.CallOption) (*JobExecutionDetails, error) {
1773	out := new(JobExecutionDetails)
1774	err := c.cc.Invoke(ctx, "/google.dataflow.v1beta3.MetricsV1Beta3/GetJobExecutionDetails", in, out, opts...)
1775	if err != nil {
1776		return nil, err
1777	}
1778	return out, nil
1779}
1780
1781func (c *metricsV1Beta3Client) GetStageExecutionDetails(ctx context.Context, in *GetStageExecutionDetailsRequest, opts ...grpc.CallOption) (*StageExecutionDetails, error) {
1782	out := new(StageExecutionDetails)
1783	err := c.cc.Invoke(ctx, "/google.dataflow.v1beta3.MetricsV1Beta3/GetStageExecutionDetails", in, out, opts...)
1784	if err != nil {
1785		return nil, err
1786	}
1787	return out, nil
1788}
1789
1790// MetricsV1Beta3Server is the server API for MetricsV1Beta3 service.
1791type MetricsV1Beta3Server interface {
1792	// Request the job status.
1793	//
1794	// To request the status of a job, we recommend using
1795	// `projects.locations.jobs.getMetrics` with a [regional endpoint]
1796	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
1797	// `projects.jobs.getMetrics` is not recommended, as you can only request the
1798	// status of jobs that are running in `us-central1`.
1799	GetJobMetrics(context.Context, *GetJobMetricsRequest) (*JobMetrics, error)
1800	// Request detailed information about the execution status of the job.
1801	//
1802	// EXPERIMENTAL.  This API is subject to change or removal without notice.
1803	GetJobExecutionDetails(context.Context, *GetJobExecutionDetailsRequest) (*JobExecutionDetails, error)
1804	// Request detailed information about the execution status of a stage of the
1805	// job.
1806	//
1807	// EXPERIMENTAL.  This API is subject to change or removal without notice.
1808	GetStageExecutionDetails(context.Context, *GetStageExecutionDetailsRequest) (*StageExecutionDetails, error)
1809}
1810
1811// UnimplementedMetricsV1Beta3Server can be embedded to have forward compatible implementations.
1812type UnimplementedMetricsV1Beta3Server struct {
1813}
1814
1815func (*UnimplementedMetricsV1Beta3Server) GetJobMetrics(context.Context, *GetJobMetricsRequest) (*JobMetrics, error) {
1816	return nil, status.Errorf(codes.Unimplemented, "method GetJobMetrics not implemented")
1817}
1818func (*UnimplementedMetricsV1Beta3Server) GetJobExecutionDetails(context.Context, *GetJobExecutionDetailsRequest) (*JobExecutionDetails, error) {
1819	return nil, status.Errorf(codes.Unimplemented, "method GetJobExecutionDetails not implemented")
1820}
1821func (*UnimplementedMetricsV1Beta3Server) GetStageExecutionDetails(context.Context, *GetStageExecutionDetailsRequest) (*StageExecutionDetails, error) {
1822	return nil, status.Errorf(codes.Unimplemented, "method GetStageExecutionDetails not implemented")
1823}
1824
1825func RegisterMetricsV1Beta3Server(s *grpc.Server, srv MetricsV1Beta3Server) {
1826	s.RegisterService(&_MetricsV1Beta3_serviceDesc, srv)
1827}
1828
1829func _MetricsV1Beta3_GetJobMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1830	in := new(GetJobMetricsRequest)
1831	if err := dec(in); err != nil {
1832		return nil, err
1833	}
1834	if interceptor == nil {
1835		return srv.(MetricsV1Beta3Server).GetJobMetrics(ctx, in)
1836	}
1837	info := &grpc.UnaryServerInfo{
1838		Server:     srv,
1839		FullMethod: "/google.dataflow.v1beta3.MetricsV1Beta3/GetJobMetrics",
1840	}
1841	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1842		return srv.(MetricsV1Beta3Server).GetJobMetrics(ctx, req.(*GetJobMetricsRequest))
1843	}
1844	return interceptor(ctx, in, info, handler)
1845}
1846
1847func _MetricsV1Beta3_GetJobExecutionDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1848	in := new(GetJobExecutionDetailsRequest)
1849	if err := dec(in); err != nil {
1850		return nil, err
1851	}
1852	if interceptor == nil {
1853		return srv.(MetricsV1Beta3Server).GetJobExecutionDetails(ctx, in)
1854	}
1855	info := &grpc.UnaryServerInfo{
1856		Server:     srv,
1857		FullMethod: "/google.dataflow.v1beta3.MetricsV1Beta3/GetJobExecutionDetails",
1858	}
1859	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1860		return srv.(MetricsV1Beta3Server).GetJobExecutionDetails(ctx, req.(*GetJobExecutionDetailsRequest))
1861	}
1862	return interceptor(ctx, in, info, handler)
1863}
1864
1865func _MetricsV1Beta3_GetStageExecutionDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1866	in := new(GetStageExecutionDetailsRequest)
1867	if err := dec(in); err != nil {
1868		return nil, err
1869	}
1870	if interceptor == nil {
1871		return srv.(MetricsV1Beta3Server).GetStageExecutionDetails(ctx, in)
1872	}
1873	info := &grpc.UnaryServerInfo{
1874		Server:     srv,
1875		FullMethod: "/google.dataflow.v1beta3.MetricsV1Beta3/GetStageExecutionDetails",
1876	}
1877	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1878		return srv.(MetricsV1Beta3Server).GetStageExecutionDetails(ctx, req.(*GetStageExecutionDetailsRequest))
1879	}
1880	return interceptor(ctx, in, info, handler)
1881}
1882
1883var _MetricsV1Beta3_serviceDesc = grpc.ServiceDesc{
1884	ServiceName: "google.dataflow.v1beta3.MetricsV1Beta3",
1885	HandlerType: (*MetricsV1Beta3Server)(nil),
1886	Methods: []grpc.MethodDesc{
1887		{
1888			MethodName: "GetJobMetrics",
1889			Handler:    _MetricsV1Beta3_GetJobMetrics_Handler,
1890		},
1891		{
1892			MethodName: "GetJobExecutionDetails",
1893			Handler:    _MetricsV1Beta3_GetJobExecutionDetails_Handler,
1894		},
1895		{
1896			MethodName: "GetStageExecutionDetails",
1897			Handler:    _MetricsV1Beta3_GetStageExecutionDetails_Handler,
1898		},
1899	},
1900	Streams:  []grpc.StreamDesc{},
1901	Metadata: "google/dataflow/v1beta3/metrics.proto",
1902}
1903