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