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.25.0
18// 	protoc        v3.13.0
19// source: google/cloud/visualinspection/v1beta1/metrics.proto
20
21package visualinspection
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
30	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
31)
32
33const (
34	// Verify that this generated code is sufficiently up-to-date.
35	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
36	// Verify that runtime/protoimpl is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
38)
39
40// This is a compile-time assertion that a sufficiently up-to-date version
41// of the legacy proto package is being used.
42const _ = proto.ProtoPackageIsVersion4
43
44// All metrics for the solution.
45type Metrics struct {
46	state         protoimpl.MessageState
47	sizeCache     protoimpl.SizeCache
48	unknownFields protoimpl.UnknownFields
49
50	// Output only. Metrics for the solution at different slices.
51	MetricsSlice map[string]*MetricsSlice `protobuf:"bytes,1,rep,name=metrics_slice,json=metricsSlice,proto3" json:"metrics_slice,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
52}
53
54func (x *Metrics) Reset() {
55	*x = Metrics{}
56	if protoimpl.UnsafeEnabled {
57		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[0]
58		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
59		ms.StoreMessageInfo(mi)
60	}
61}
62
63func (x *Metrics) String() string {
64	return protoimpl.X.MessageStringOf(x)
65}
66
67func (*Metrics) ProtoMessage() {}
68
69func (x *Metrics) ProtoReflect() protoreflect.Message {
70	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[0]
71	if protoimpl.UnsafeEnabled && x != nil {
72		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
73		if ms.LoadMessageInfo() == nil {
74			ms.StoreMessageInfo(mi)
75		}
76		return ms
77	}
78	return mi.MessageOf(x)
79}
80
81// Deprecated: Use Metrics.ProtoReflect.Descriptor instead.
82func (*Metrics) Descriptor() ([]byte, []int) {
83	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{0}
84}
85
86func (x *Metrics) GetMetricsSlice() map[string]*MetricsSlice {
87	if x != nil {
88		return x.MetricsSlice
89	}
90	return nil
91}
92
93// Metrics at a particular slice.
94// A slice can be "pixel" level, "image" level, "component" level, "unit" level,
95// and/or "product" level depending on the solution and the input data.
96type MetricsSlice struct {
97	state         protoimpl.MessageState
98	sizeCache     protoimpl.SizeCache
99	unknownFields protoimpl.UnknownFields
100
101	// Output only. The AnnotationSpec which this MetricSlice refers to. It is
102	// empty if this MetricSlice aggregates across AnnotationSpecs.
103	AnnotationSpec string `protobuf:"bytes,8,opt,name=annotation_spec,json=annotationSpec,proto3" json:"annotation_spec,omitempty"`
104	// Output only. The AnnotationSpec display name which this MetricSlice refers
105	// to. It is empty if this MetricSlice aggregates across AnnotationSpecs.
106	DisplayName string `protobuf:"bytes,9,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
107	// Output only. The number of examples used to create this evaluation metrics
108	// instance.
109	EvaluatedExampleCount int32 `protobuf:"varint,10,opt,name=evaluated_example_count,json=evaluatedExampleCount,proto3" json:"evaluated_example_count,omitempty"`
110	// Output only. Model metrics across confidence thresholds.
111	ConfidenceLevelModelMetrics []*MetricsSlice_ConfidenceLevelModelMetrics `protobuf:"bytes,5,rep,name=confidence_level_model_metrics,json=confidenceLevelModelMetrics,proto3" json:"confidence_level_model_metrics,omitempty"`
112	// Output only. Average model metrics.
113	AverageModelMetrics *ModelMetrics `protobuf:"bytes,7,opt,name=average_model_metrics,json=averageModelMetrics,proto3" json:"average_model_metrics,omitempty"`
114}
115
116func (x *MetricsSlice) Reset() {
117	*x = MetricsSlice{}
118	if protoimpl.UnsafeEnabled {
119		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[1]
120		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
121		ms.StoreMessageInfo(mi)
122	}
123}
124
125func (x *MetricsSlice) String() string {
126	return protoimpl.X.MessageStringOf(x)
127}
128
129func (*MetricsSlice) ProtoMessage() {}
130
131func (x *MetricsSlice) ProtoReflect() protoreflect.Message {
132	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[1]
133	if protoimpl.UnsafeEnabled && x != nil {
134		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
135		if ms.LoadMessageInfo() == nil {
136			ms.StoreMessageInfo(mi)
137		}
138		return ms
139	}
140	return mi.MessageOf(x)
141}
142
143// Deprecated: Use MetricsSlice.ProtoReflect.Descriptor instead.
144func (*MetricsSlice) Descriptor() ([]byte, []int) {
145	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{1}
146}
147
148func (x *MetricsSlice) GetAnnotationSpec() string {
149	if x != nil {
150		return x.AnnotationSpec
151	}
152	return ""
153}
154
155func (x *MetricsSlice) GetDisplayName() string {
156	if x != nil {
157		return x.DisplayName
158	}
159	return ""
160}
161
162func (x *MetricsSlice) GetEvaluatedExampleCount() int32 {
163	if x != nil {
164		return x.EvaluatedExampleCount
165	}
166	return 0
167}
168
169func (x *MetricsSlice) GetConfidenceLevelModelMetrics() []*MetricsSlice_ConfidenceLevelModelMetrics {
170	if x != nil {
171		return x.ConfidenceLevelModelMetrics
172	}
173	return nil
174}
175
176func (x *MetricsSlice) GetAverageModelMetrics() *ModelMetrics {
177	if x != nil {
178		return x.AverageModelMetrics
179	}
180	return nil
181}
182
183// Model metrics which can vary depending on the model. These are not assumed to
184// refer to defect states in particular.
185type ModelMetrics struct {
186	state         protoimpl.MessageState
187	sizeCache     protoimpl.SizeCache
188	unknownFields protoimpl.UnknownFields
189
190	// Output only. The false negative rate in the range [0, 1]. This is the rate
191	// with which the model incorrectly classifies examples as negative when they
192	// are positive. This is consistent with the following definition:
193	//
194	// https:
195	// //en.wikipedia.org/wiki/False_positives_
196	// // and_false_negatives#False_positive_and_false_negative_rates.
197	FalseNegativeRate float32 `protobuf:"fixed32,1,opt,name=false_negative_rate,json=falseNegativeRate,proto3" json:"false_negative_rate,omitempty"`
198	// Output only. The false positive rate in the range [0, 1]. This is the rate
199	// with which the model  incorrectly classifies examples as positive when they
200	// are negative. This is consistent with the following definition:
201	//
202	// https:
203	// //en.wikipedia.org/wiki/False_positives_
204	// // and_false_negatives#False_positive_and_false_negative_rates.
205	FalsePositiveRate float32 `protobuf:"fixed32,2,opt,name=false_positive_rate,json=falsePositiveRate,proto3" json:"false_positive_rate,omitempty"`
206	// Output only. The precision in the range [0, 1]. Precision measures the
207	// ratio of correctly classified examples by the model against all the
208	// predictions made by the model. Please see
209	// https://en.wikipedia.org/wiki/Precision_and_recall for its definition.
210	Precision float32 `protobuf:"fixed32,3,opt,name=precision,proto3" json:"precision,omitempty"`
211	// Output only. The recall in the range [0, 1]. Recall measures the ratio of
212	// correctly predicted labels by the model against all true examples of that
213	// label. Please see https://en.wikipedia.org/wiki/Precision_and_recall for
214	// its definition.
215	Recall float32 `protobuf:"fixed32,4,opt,name=recall,proto3" json:"recall,omitempty"`
216	// Output only. The Intersection over union (IOU) in the range [0, 1]. IOU
217	// measures the proportion of label regions that are common between ground
218	// truth and model predictions versus their union. Please see
219	// https://en.wikipedia.org/wiki/Jaccard_index for its definition.
220	Iou float32 `protobuf:"fixed32,5,opt,name=iou,proto3" json:"iou,omitempty"`
221	// Output only. The Dice similarity coefficient in the range [0, 1]. Dice
222	// similarity coefficient is similar to IOU except that the common label
223	// region is weighted twice in the calculation. Please see its definition
224	// here: https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient
225	DiceSimilarityCoefficient float32 `protobuf:"fixed32,6,opt,name=dice_similarity_coefficient,json=diceSimilarityCoefficient,proto3" json:"dice_similarity_coefficient,omitempty"`
226	// Output only. Confusion matrix for the classifications.
227	// Only present for aggregated metrics.
228	ConfusionMatrix *ConfusionMatrix `protobuf:"bytes,7,opt,name=confusion_matrix,json=confusionMatrix,proto3" json:"confusion_matrix,omitempty"`
229	// Output only. The average precision in the range [0, 1].
230	AveragePrecision float32 `protobuf:"fixed32,8,opt,name=average_precision,json=averagePrecision,proto3" json:"average_precision,omitempty"`
231}
232
233func (x *ModelMetrics) Reset() {
234	*x = ModelMetrics{}
235	if protoimpl.UnsafeEnabled {
236		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[2]
237		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
238		ms.StoreMessageInfo(mi)
239	}
240}
241
242func (x *ModelMetrics) String() string {
243	return protoimpl.X.MessageStringOf(x)
244}
245
246func (*ModelMetrics) ProtoMessage() {}
247
248func (x *ModelMetrics) ProtoReflect() protoreflect.Message {
249	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[2]
250	if protoimpl.UnsafeEnabled && x != nil {
251		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
252		if ms.LoadMessageInfo() == nil {
253			ms.StoreMessageInfo(mi)
254		}
255		return ms
256	}
257	return mi.MessageOf(x)
258}
259
260// Deprecated: Use ModelMetrics.ProtoReflect.Descriptor instead.
261func (*ModelMetrics) Descriptor() ([]byte, []int) {
262	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{2}
263}
264
265func (x *ModelMetrics) GetFalseNegativeRate() float32 {
266	if x != nil {
267		return x.FalseNegativeRate
268	}
269	return 0
270}
271
272func (x *ModelMetrics) GetFalsePositiveRate() float32 {
273	if x != nil {
274		return x.FalsePositiveRate
275	}
276	return 0
277}
278
279func (x *ModelMetrics) GetPrecision() float32 {
280	if x != nil {
281		return x.Precision
282	}
283	return 0
284}
285
286func (x *ModelMetrics) GetRecall() float32 {
287	if x != nil {
288		return x.Recall
289	}
290	return 0
291}
292
293func (x *ModelMetrics) GetIou() float32 {
294	if x != nil {
295		return x.Iou
296	}
297	return 0
298}
299
300func (x *ModelMetrics) GetDiceSimilarityCoefficient() float32 {
301	if x != nil {
302		return x.DiceSimilarityCoefficient
303	}
304	return 0
305}
306
307func (x *ModelMetrics) GetConfusionMatrix() *ConfusionMatrix {
308	if x != nil {
309		return x.ConfusionMatrix
310	}
311	return nil
312}
313
314func (x *ModelMetrics) GetAveragePrecision() float32 {
315	if x != nil {
316		return x.AveragePrecision
317	}
318	return 0
319}
320
321// Confusion matrix across different class labels (if present).
322type ConfusionMatrix struct {
323	state         protoimpl.MessageState
324	sizeCache     protoimpl.SizeCache
325	unknownFields protoimpl.UnknownFields
326
327	// Output only. Counts of items across slices.
328	// For example, rows[i][j].count indicate the count for class_labels[i] as
329	// present in ground truth versus class_labels[j] as predicted by the model.
330	// The number of rows is the same as individual number of "counts" in a Row as
331	// well as the number of class_labels. So if the number of class_labels is n,
332	// then rows count is n as well as each rows.count has also count n.
333	Rows []*ConfusionMatrix_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
334	// Output only. Class labels as the rows/columns of the confusion matrix.
335	ClassLabels []string `protobuf:"bytes,2,rep,name=class_labels,json=classLabels,proto3" json:"class_labels,omitempty"`
336	// Output only. Class AnnotationSpecs as the rows/columns of the confusion
337	// matrix.
338	AnnotationSpecs []string `protobuf:"bytes,3,rep,name=annotation_specs,json=annotationSpecs,proto3" json:"annotation_specs,omitempty"`
339}
340
341func (x *ConfusionMatrix) Reset() {
342	*x = ConfusionMatrix{}
343	if protoimpl.UnsafeEnabled {
344		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[3]
345		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
346		ms.StoreMessageInfo(mi)
347	}
348}
349
350func (x *ConfusionMatrix) String() string {
351	return protoimpl.X.MessageStringOf(x)
352}
353
354func (*ConfusionMatrix) ProtoMessage() {}
355
356func (x *ConfusionMatrix) ProtoReflect() protoreflect.Message {
357	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[3]
358	if protoimpl.UnsafeEnabled && x != nil {
359		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
360		if ms.LoadMessageInfo() == nil {
361			ms.StoreMessageInfo(mi)
362		}
363		return ms
364	}
365	return mi.MessageOf(x)
366}
367
368// Deprecated: Use ConfusionMatrix.ProtoReflect.Descriptor instead.
369func (*ConfusionMatrix) Descriptor() ([]byte, []int) {
370	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{3}
371}
372
373func (x *ConfusionMatrix) GetRows() []*ConfusionMatrix_Row {
374	if x != nil {
375		return x.Rows
376	}
377	return nil
378}
379
380func (x *ConfusionMatrix) GetClassLabels() []string {
381	if x != nil {
382		return x.ClassLabels
383	}
384	return nil
385}
386
387func (x *ConfusionMatrix) GetAnnotationSpecs() []string {
388	if x != nil {
389		return x.AnnotationSpecs
390	}
391	return nil
392}
393
394// Model metrics at a specific threshold.
395type MetricsSlice_ConfidenceLevelModelMetrics struct {
396	state         protoimpl.MessageState
397	sizeCache     protoimpl.SizeCache
398	unknownFields protoimpl.UnknownFields
399
400	// Output only. Model metrics.
401	ModelMetrics *ModelMetrics `protobuf:"bytes,1,opt,name=model_metrics,json=modelMetrics,proto3" json:"model_metrics,omitempty"`
402	// Output only. Confidence threshold in the range [0, 1].
403	ConfidenceThreshold float32 `protobuf:"fixed32,2,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"`
404	// Output only. Pixel level confidence threshold in the range [0, 1].
405	PixelConfidenceThreshold float32 `protobuf:"fixed32,3,opt,name=pixel_confidence_threshold,json=pixelConfidenceThreshold,proto3" json:"pixel_confidence_threshold,omitempty"`
406	// Output only. Cluster distance threshold in the range [0, 1] normalized by
407	// the diagonal length of the image.
408	ClusterDistanceThreshold float32 `protobuf:"fixed32,4,opt,name=cluster_distance_threshold,json=clusterDistanceThreshold,proto3" json:"cluster_distance_threshold,omitempty"`
409}
410
411func (x *MetricsSlice_ConfidenceLevelModelMetrics) Reset() {
412	*x = MetricsSlice_ConfidenceLevelModelMetrics{}
413	if protoimpl.UnsafeEnabled {
414		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[5]
415		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
416		ms.StoreMessageInfo(mi)
417	}
418}
419
420func (x *MetricsSlice_ConfidenceLevelModelMetrics) String() string {
421	return protoimpl.X.MessageStringOf(x)
422}
423
424func (*MetricsSlice_ConfidenceLevelModelMetrics) ProtoMessage() {}
425
426func (x *MetricsSlice_ConfidenceLevelModelMetrics) ProtoReflect() protoreflect.Message {
427	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[5]
428	if protoimpl.UnsafeEnabled && x != nil {
429		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
430		if ms.LoadMessageInfo() == nil {
431			ms.StoreMessageInfo(mi)
432		}
433		return ms
434	}
435	return mi.MessageOf(x)
436}
437
438// Deprecated: Use MetricsSlice_ConfidenceLevelModelMetrics.ProtoReflect.Descriptor instead.
439func (*MetricsSlice_ConfidenceLevelModelMetrics) Descriptor() ([]byte, []int) {
440	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{1, 0}
441}
442
443func (x *MetricsSlice_ConfidenceLevelModelMetrics) GetModelMetrics() *ModelMetrics {
444	if x != nil {
445		return x.ModelMetrics
446	}
447	return nil
448}
449
450func (x *MetricsSlice_ConfidenceLevelModelMetrics) GetConfidenceThreshold() float32 {
451	if x != nil {
452		return x.ConfidenceThreshold
453	}
454	return 0
455}
456
457func (x *MetricsSlice_ConfidenceLevelModelMetrics) GetPixelConfidenceThreshold() float32 {
458	if x != nil {
459		return x.PixelConfidenceThreshold
460	}
461	return 0
462}
463
464func (x *MetricsSlice_ConfidenceLevelModelMetrics) GetClusterDistanceThreshold() float32 {
465	if x != nil {
466		return x.ClusterDistanceThreshold
467	}
468	return 0
469}
470
471// Individual row for the confusion matrix.
472type ConfusionMatrix_Row struct {
473	state         protoimpl.MessageState
474	sizeCache     protoimpl.SizeCache
475	unknownFields protoimpl.UnknownFields
476
477	// Output only. Count of items in a "slice" classified at a particular
478	// class_label in the ground truth versus that classified by the solution.
479	Count []int64 `protobuf:"varint,1,rep,packed,name=count,proto3" json:"count,omitempty"`
480}
481
482func (x *ConfusionMatrix_Row) Reset() {
483	*x = ConfusionMatrix_Row{}
484	if protoimpl.UnsafeEnabled {
485		mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[6]
486		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
487		ms.StoreMessageInfo(mi)
488	}
489}
490
491func (x *ConfusionMatrix_Row) String() string {
492	return protoimpl.X.MessageStringOf(x)
493}
494
495func (*ConfusionMatrix_Row) ProtoMessage() {}
496
497func (x *ConfusionMatrix_Row) ProtoReflect() protoreflect.Message {
498	mi := &file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[6]
499	if protoimpl.UnsafeEnabled && x != nil {
500		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
501		if ms.LoadMessageInfo() == nil {
502			ms.StoreMessageInfo(mi)
503		}
504		return ms
505	}
506	return mi.MessageOf(x)
507}
508
509// Deprecated: Use ConfusionMatrix_Row.ProtoReflect.Descriptor instead.
510func (*ConfusionMatrix_Row) Descriptor() ([]byte, []int) {
511	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP(), []int{3, 0}
512}
513
514func (x *ConfusionMatrix_Row) GetCount() []int64 {
515	if x != nil {
516		return x.Count
517	}
518	return nil
519}
520
521var File_google_cloud_visualinspection_v1beta1_metrics_proto protoreflect.FileDescriptor
522
523var file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDesc = []byte{
524	0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76,
525	0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
526	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
527	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
528	0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63,
529	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f,
530	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
531	0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
532	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
533	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x01, 0x0a, 0x07,
534	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x6a, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69,
535	0x63, 0x73, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40,
536	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
537	0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
538	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d,
539	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
540	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c,
541	0x69, 0x63, 0x65, 0x1a, 0x74, 0x0a, 0x11, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c,
542	0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
543	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61,
544	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
545	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69,
546	0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
547	0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x05,
548	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe8, 0x05, 0x0a, 0x0c, 0x4d, 0x65,
549	0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x6e,
550	0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20,
551	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
552	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70,
553	0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
554	0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
555	0x12, 0x3b, 0x0a, 0x17, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78,
556	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28,
557	0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65,
558	0x64, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x99, 0x01,
559	0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76,
560	0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
561	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
562	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70,
563	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d,
564	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
565	0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
566	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x63, 0x6f,
567	0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64,
568	0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x6c, 0x0a, 0x15, 0x61, 0x76, 0x65,
569	0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
570	0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
571	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e,
572	0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
573	0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x03, 0xe0,
574	0x41, 0x03, 0x52, 0x13, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
575	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xba, 0x02, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x66,
576	0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
577	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
578	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33,
579	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
580	0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
581	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72,
582	0x69, 0x63, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4d,
583	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64,
584	0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02,
585	0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69,
586	0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x41,
587	0x0a, 0x1a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e,
588	0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01,
589	0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x43, 0x6f,
590	0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
591	0x64, 0x12, 0x41, 0x0a, 0x1a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73,
592	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18,
593	0x04, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x63, 0x6c, 0x75, 0x73,
594	0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73,
595	0x68, 0x6f, 0x6c, 0x64, 0x22, 0xae, 0x03, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65,
596	0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x5f, 0x6e,
597	0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
598	0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x4e, 0x65,
599	0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61,
600	0x6c, 0x73, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74,
601	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x66, 0x61,
602	0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12,
603	0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
604	0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69,
605	0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01,
606	0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x12,
607	0x15, 0x0a, 0x03, 0x69, 0x6f, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41,
608	0x03, 0x52, 0x03, 0x69, 0x6f, 0x75, 0x12, 0x43, 0x0a, 0x1b, 0x64, 0x69, 0x63, 0x65, 0x5f, 0x73,
609	0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x69,
610	0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03,
611	0x52, 0x19, 0x64, 0x69, 0x63, 0x65, 0x53, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79,
612	0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x66, 0x0a, 0x10, 0x63,
613	0x6f, 0x6e, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18,
614	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
615	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65,
616	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f,
617	0x6e, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x42, 0x03, 0xe0,
618	0x41, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74,
619	0x72, 0x69, 0x78, 0x12, 0x30, 0x0a, 0x11, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70,
620	0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03,
621	0xe0, 0x41, 0x03, 0x52, 0x10, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x50, 0x72, 0x65, 0x63,
622	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe0, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x75, 0x73,
623	0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x53, 0x0a, 0x04, 0x72, 0x6f, 0x77,
624	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
625	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73,
626	0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
627	0x43, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e,
628	0x52, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x26,
629	0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02,
630	0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x73, 0x73,
631	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
632	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
633	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
634	0x6e, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x20, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x19, 0x0a,
635	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41,
636	0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xff, 0x01, 0x0a, 0x29, 0x63, 0x6f, 0x6d,
637	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
638	0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
639	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x50, 0x01, 0x5a, 0x55, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
640	0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70,
641	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f,
642	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70,
643	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76,
644	0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0xaa,
645	0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56,
646	0x69, 0x73, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
647	0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
648	0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x73,
649	0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea,
650	0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a,
651	0x3a, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f,
652	0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
653	0x6f, 0x33,
654}
655
656var (
657	file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescOnce sync.Once
658	file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescData = file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDesc
659)
660
661func file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescGZIP() []byte {
662	file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescOnce.Do(func() {
663		file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescData)
664	})
665	return file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDescData
666}
667
668var file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
669var file_google_cloud_visualinspection_v1beta1_metrics_proto_goTypes = []interface{}{
670	(*Metrics)(nil),         // 0: google.cloud.visualinspection.v1beta1.Metrics
671	(*MetricsSlice)(nil),    // 1: google.cloud.visualinspection.v1beta1.MetricsSlice
672	(*ModelMetrics)(nil),    // 2: google.cloud.visualinspection.v1beta1.ModelMetrics
673	(*ConfusionMatrix)(nil), // 3: google.cloud.visualinspection.v1beta1.ConfusionMatrix
674	nil,                     // 4: google.cloud.visualinspection.v1beta1.Metrics.MetricsSliceEntry
675	(*MetricsSlice_ConfidenceLevelModelMetrics)(nil), // 5: google.cloud.visualinspection.v1beta1.MetricsSlice.ConfidenceLevelModelMetrics
676	(*ConfusionMatrix_Row)(nil),                      // 6: google.cloud.visualinspection.v1beta1.ConfusionMatrix.Row
677}
678var file_google_cloud_visualinspection_v1beta1_metrics_proto_depIdxs = []int32{
679	4, // 0: google.cloud.visualinspection.v1beta1.Metrics.metrics_slice:type_name -> google.cloud.visualinspection.v1beta1.Metrics.MetricsSliceEntry
680	5, // 1: google.cloud.visualinspection.v1beta1.MetricsSlice.confidence_level_model_metrics:type_name -> google.cloud.visualinspection.v1beta1.MetricsSlice.ConfidenceLevelModelMetrics
681	2, // 2: google.cloud.visualinspection.v1beta1.MetricsSlice.average_model_metrics:type_name -> google.cloud.visualinspection.v1beta1.ModelMetrics
682	3, // 3: google.cloud.visualinspection.v1beta1.ModelMetrics.confusion_matrix:type_name -> google.cloud.visualinspection.v1beta1.ConfusionMatrix
683	6, // 4: google.cloud.visualinspection.v1beta1.ConfusionMatrix.rows:type_name -> google.cloud.visualinspection.v1beta1.ConfusionMatrix.Row
684	1, // 5: google.cloud.visualinspection.v1beta1.Metrics.MetricsSliceEntry.value:type_name -> google.cloud.visualinspection.v1beta1.MetricsSlice
685	2, // 6: google.cloud.visualinspection.v1beta1.MetricsSlice.ConfidenceLevelModelMetrics.model_metrics:type_name -> google.cloud.visualinspection.v1beta1.ModelMetrics
686	7, // [7:7] is the sub-list for method output_type
687	7, // [7:7] is the sub-list for method input_type
688	7, // [7:7] is the sub-list for extension type_name
689	7, // [7:7] is the sub-list for extension extendee
690	0, // [0:7] is the sub-list for field type_name
691}
692
693func init() { file_google_cloud_visualinspection_v1beta1_metrics_proto_init() }
694func file_google_cloud_visualinspection_v1beta1_metrics_proto_init() {
695	if File_google_cloud_visualinspection_v1beta1_metrics_proto != nil {
696		return
697	}
698	if !protoimpl.UnsafeEnabled {
699		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
700			switch v := v.(*Metrics); i {
701			case 0:
702				return &v.state
703			case 1:
704				return &v.sizeCache
705			case 2:
706				return &v.unknownFields
707			default:
708				return nil
709			}
710		}
711		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
712			switch v := v.(*MetricsSlice); i {
713			case 0:
714				return &v.state
715			case 1:
716				return &v.sizeCache
717			case 2:
718				return &v.unknownFields
719			default:
720				return nil
721			}
722		}
723		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
724			switch v := v.(*ModelMetrics); i {
725			case 0:
726				return &v.state
727			case 1:
728				return &v.sizeCache
729			case 2:
730				return &v.unknownFields
731			default:
732				return nil
733			}
734		}
735		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
736			switch v := v.(*ConfusionMatrix); i {
737			case 0:
738				return &v.state
739			case 1:
740				return &v.sizeCache
741			case 2:
742				return &v.unknownFields
743			default:
744				return nil
745			}
746		}
747		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
748			switch v := v.(*MetricsSlice_ConfidenceLevelModelMetrics); i {
749			case 0:
750				return &v.state
751			case 1:
752				return &v.sizeCache
753			case 2:
754				return &v.unknownFields
755			default:
756				return nil
757			}
758		}
759		file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
760			switch v := v.(*ConfusionMatrix_Row); i {
761			case 0:
762				return &v.state
763			case 1:
764				return &v.sizeCache
765			case 2:
766				return &v.unknownFields
767			default:
768				return nil
769			}
770		}
771	}
772	type x struct{}
773	out := protoimpl.TypeBuilder{
774		File: protoimpl.DescBuilder{
775			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
776			RawDescriptor: file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDesc,
777			NumEnums:      0,
778			NumMessages:   7,
779			NumExtensions: 0,
780			NumServices:   0,
781		},
782		GoTypes:           file_google_cloud_visualinspection_v1beta1_metrics_proto_goTypes,
783		DependencyIndexes: file_google_cloud_visualinspection_v1beta1_metrics_proto_depIdxs,
784		MessageInfos:      file_google_cloud_visualinspection_v1beta1_metrics_proto_msgTypes,
785	}.Build()
786	File_google_cloud_visualinspection_v1beta1_metrics_proto = out.File
787	file_google_cloud_visualinspection_v1beta1_metrics_proto_rawDesc = nil
788	file_google_cloud_visualinspection_v1beta1_metrics_proto_goTypes = nil
789	file_google_cloud_visualinspection_v1beta1_metrics_proto_depIdxs = nil
790}
791