1// Copyright 2019 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 16// Code generated by protoc-gen-go. DO NOT EDIT. 17// versions: 18// protoc-gen-go v1.25.0 19// protoc v3.13.0 20// source: google/cloud/vision/v1p1beta1/image_annotator.proto 21 22package vision 23 24import ( 25 context "context" 26 reflect "reflect" 27 sync "sync" 28 29 proto "github.com/golang/protobuf/proto" 30 _ "google.golang.org/genproto/googleapis/api/annotations" 31 status "google.golang.org/genproto/googleapis/rpc/status" 32 color "google.golang.org/genproto/googleapis/type/color" 33 latlng "google.golang.org/genproto/googleapis/type/latlng" 34 grpc "google.golang.org/grpc" 35 codes "google.golang.org/grpc/codes" 36 status1 "google.golang.org/grpc/status" 37 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 38 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 39) 40 41const ( 42 // Verify that this generated code is sufficiently up-to-date. 43 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 44 // Verify that runtime/protoimpl is sufficiently up-to-date. 45 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 46) 47 48// This is a compile-time assertion that a sufficiently up-to-date version 49// of the legacy proto package is being used. 50const _ = proto.ProtoPackageIsVersion4 51 52// A bucketized representation of likelihood, which is intended to give clients 53// highly stable results across model upgrades. 54type Likelihood int32 55 56const ( 57 // Unknown likelihood. 58 Likelihood_UNKNOWN Likelihood = 0 59 // It is very unlikely that the image belongs to the specified vertical. 60 Likelihood_VERY_UNLIKELY Likelihood = 1 61 // It is unlikely that the image belongs to the specified vertical. 62 Likelihood_UNLIKELY Likelihood = 2 63 // It is possible that the image belongs to the specified vertical. 64 Likelihood_POSSIBLE Likelihood = 3 65 // It is likely that the image belongs to the specified vertical. 66 Likelihood_LIKELY Likelihood = 4 67 // It is very likely that the image belongs to the specified vertical. 68 Likelihood_VERY_LIKELY Likelihood = 5 69) 70 71// Enum value maps for Likelihood. 72var ( 73 Likelihood_name = map[int32]string{ 74 0: "UNKNOWN", 75 1: "VERY_UNLIKELY", 76 2: "UNLIKELY", 77 3: "POSSIBLE", 78 4: "LIKELY", 79 5: "VERY_LIKELY", 80 } 81 Likelihood_value = map[string]int32{ 82 "UNKNOWN": 0, 83 "VERY_UNLIKELY": 1, 84 "UNLIKELY": 2, 85 "POSSIBLE": 3, 86 "LIKELY": 4, 87 "VERY_LIKELY": 5, 88 } 89) 90 91func (x Likelihood) Enum() *Likelihood { 92 p := new(Likelihood) 93 *p = x 94 return p 95} 96 97func (x Likelihood) String() string { 98 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 99} 100 101func (Likelihood) Descriptor() protoreflect.EnumDescriptor { 102 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[0].Descriptor() 103} 104 105func (Likelihood) Type() protoreflect.EnumType { 106 return &file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[0] 107} 108 109func (x Likelihood) Number() protoreflect.EnumNumber { 110 return protoreflect.EnumNumber(x) 111} 112 113// Deprecated: Use Likelihood.Descriptor instead. 114func (Likelihood) EnumDescriptor() ([]byte, []int) { 115 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{0} 116} 117 118// Type of image feature. 119type Feature_Type int32 120 121const ( 122 // Unspecified feature type. 123 Feature_TYPE_UNSPECIFIED Feature_Type = 0 124 // Run face detection. 125 Feature_FACE_DETECTION Feature_Type = 1 126 // Run landmark detection. 127 Feature_LANDMARK_DETECTION Feature_Type = 2 128 // Run logo detection. 129 Feature_LOGO_DETECTION Feature_Type = 3 130 // Run label detection. 131 Feature_LABEL_DETECTION Feature_Type = 4 132 // Run OCR. 133 Feature_TEXT_DETECTION Feature_Type = 5 134 // Run dense text document OCR. Takes precedence when both 135 // DOCUMENT_TEXT_DETECTION and TEXT_DETECTION are present. 136 Feature_DOCUMENT_TEXT_DETECTION Feature_Type = 11 137 // Run computer vision models to compute image safe-search properties. 138 Feature_SAFE_SEARCH_DETECTION Feature_Type = 6 139 // Compute a set of image properties, such as the image's dominant colors. 140 Feature_IMAGE_PROPERTIES Feature_Type = 7 141 // Run crop hints. 142 Feature_CROP_HINTS Feature_Type = 9 143 // Run web detection. 144 Feature_WEB_DETECTION Feature_Type = 10 145) 146 147// Enum value maps for Feature_Type. 148var ( 149 Feature_Type_name = map[int32]string{ 150 0: "TYPE_UNSPECIFIED", 151 1: "FACE_DETECTION", 152 2: "LANDMARK_DETECTION", 153 3: "LOGO_DETECTION", 154 4: "LABEL_DETECTION", 155 5: "TEXT_DETECTION", 156 11: "DOCUMENT_TEXT_DETECTION", 157 6: "SAFE_SEARCH_DETECTION", 158 7: "IMAGE_PROPERTIES", 159 9: "CROP_HINTS", 160 10: "WEB_DETECTION", 161 } 162 Feature_Type_value = map[string]int32{ 163 "TYPE_UNSPECIFIED": 0, 164 "FACE_DETECTION": 1, 165 "LANDMARK_DETECTION": 2, 166 "LOGO_DETECTION": 3, 167 "LABEL_DETECTION": 4, 168 "TEXT_DETECTION": 5, 169 "DOCUMENT_TEXT_DETECTION": 11, 170 "SAFE_SEARCH_DETECTION": 6, 171 "IMAGE_PROPERTIES": 7, 172 "CROP_HINTS": 9, 173 "WEB_DETECTION": 10, 174 } 175) 176 177func (x Feature_Type) Enum() *Feature_Type { 178 p := new(Feature_Type) 179 *p = x 180 return p 181} 182 183func (x Feature_Type) String() string { 184 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 185} 186 187func (Feature_Type) Descriptor() protoreflect.EnumDescriptor { 188 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[1].Descriptor() 189} 190 191func (Feature_Type) Type() protoreflect.EnumType { 192 return &file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[1] 193} 194 195func (x Feature_Type) Number() protoreflect.EnumNumber { 196 return protoreflect.EnumNumber(x) 197} 198 199// Deprecated: Use Feature_Type.Descriptor instead. 200func (Feature_Type) EnumDescriptor() ([]byte, []int) { 201 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{0, 0} 202} 203 204// Face landmark (feature) type. 205// Left and right are defined from the vantage of the viewer of the image 206// without considering mirror projections typical of photos. So, `LEFT_EYE`, 207// typically, is the person's right eye. 208type FaceAnnotation_Landmark_Type int32 209 210const ( 211 // Unknown face landmark detected. Should not be filled. 212 FaceAnnotation_Landmark_UNKNOWN_LANDMARK FaceAnnotation_Landmark_Type = 0 213 // Left eye. 214 FaceAnnotation_Landmark_LEFT_EYE FaceAnnotation_Landmark_Type = 1 215 // Right eye. 216 FaceAnnotation_Landmark_RIGHT_EYE FaceAnnotation_Landmark_Type = 2 217 // Left of left eyebrow. 218 FaceAnnotation_Landmark_LEFT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 3 219 // Right of left eyebrow. 220 FaceAnnotation_Landmark_RIGHT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 4 221 // Left of right eyebrow. 222 FaceAnnotation_Landmark_LEFT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 5 223 // Right of right eyebrow. 224 FaceAnnotation_Landmark_RIGHT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 6 225 // Midpoint between eyes. 226 FaceAnnotation_Landmark_MIDPOINT_BETWEEN_EYES FaceAnnotation_Landmark_Type = 7 227 // Nose tip. 228 FaceAnnotation_Landmark_NOSE_TIP FaceAnnotation_Landmark_Type = 8 229 // Upper lip. 230 FaceAnnotation_Landmark_UPPER_LIP FaceAnnotation_Landmark_Type = 9 231 // Lower lip. 232 FaceAnnotation_Landmark_LOWER_LIP FaceAnnotation_Landmark_Type = 10 233 // Mouth left. 234 FaceAnnotation_Landmark_MOUTH_LEFT FaceAnnotation_Landmark_Type = 11 235 // Mouth right. 236 FaceAnnotation_Landmark_MOUTH_RIGHT FaceAnnotation_Landmark_Type = 12 237 // Mouth center. 238 FaceAnnotation_Landmark_MOUTH_CENTER FaceAnnotation_Landmark_Type = 13 239 // Nose, bottom right. 240 FaceAnnotation_Landmark_NOSE_BOTTOM_RIGHT FaceAnnotation_Landmark_Type = 14 241 // Nose, bottom left. 242 FaceAnnotation_Landmark_NOSE_BOTTOM_LEFT FaceAnnotation_Landmark_Type = 15 243 // Nose, bottom center. 244 FaceAnnotation_Landmark_NOSE_BOTTOM_CENTER FaceAnnotation_Landmark_Type = 16 245 // Left eye, top boundary. 246 FaceAnnotation_Landmark_LEFT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 17 247 // Left eye, right corner. 248 FaceAnnotation_Landmark_LEFT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 18 249 // Left eye, bottom boundary. 250 FaceAnnotation_Landmark_LEFT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 19 251 // Left eye, left corner. 252 FaceAnnotation_Landmark_LEFT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 20 253 // Right eye, top boundary. 254 FaceAnnotation_Landmark_RIGHT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 21 255 // Right eye, right corner. 256 FaceAnnotation_Landmark_RIGHT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 22 257 // Right eye, bottom boundary. 258 FaceAnnotation_Landmark_RIGHT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 23 259 // Right eye, left corner. 260 FaceAnnotation_Landmark_RIGHT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 24 261 // Left eyebrow, upper midpoint. 262 FaceAnnotation_Landmark_LEFT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 25 263 // Right eyebrow, upper midpoint. 264 FaceAnnotation_Landmark_RIGHT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 26 265 // Left ear tragion. 266 FaceAnnotation_Landmark_LEFT_EAR_TRAGION FaceAnnotation_Landmark_Type = 27 267 // Right ear tragion. 268 FaceAnnotation_Landmark_RIGHT_EAR_TRAGION FaceAnnotation_Landmark_Type = 28 269 // Left eye pupil. 270 FaceAnnotation_Landmark_LEFT_EYE_PUPIL FaceAnnotation_Landmark_Type = 29 271 // Right eye pupil. 272 FaceAnnotation_Landmark_RIGHT_EYE_PUPIL FaceAnnotation_Landmark_Type = 30 273 // Forehead glabella. 274 FaceAnnotation_Landmark_FOREHEAD_GLABELLA FaceAnnotation_Landmark_Type = 31 275 // Chin gnathion. 276 FaceAnnotation_Landmark_CHIN_GNATHION FaceAnnotation_Landmark_Type = 32 277 // Chin left gonion. 278 FaceAnnotation_Landmark_CHIN_LEFT_GONION FaceAnnotation_Landmark_Type = 33 279 // Chin right gonion. 280 FaceAnnotation_Landmark_CHIN_RIGHT_GONION FaceAnnotation_Landmark_Type = 34 281) 282 283// Enum value maps for FaceAnnotation_Landmark_Type. 284var ( 285 FaceAnnotation_Landmark_Type_name = map[int32]string{ 286 0: "UNKNOWN_LANDMARK", 287 1: "LEFT_EYE", 288 2: "RIGHT_EYE", 289 3: "LEFT_OF_LEFT_EYEBROW", 290 4: "RIGHT_OF_LEFT_EYEBROW", 291 5: "LEFT_OF_RIGHT_EYEBROW", 292 6: "RIGHT_OF_RIGHT_EYEBROW", 293 7: "MIDPOINT_BETWEEN_EYES", 294 8: "NOSE_TIP", 295 9: "UPPER_LIP", 296 10: "LOWER_LIP", 297 11: "MOUTH_LEFT", 298 12: "MOUTH_RIGHT", 299 13: "MOUTH_CENTER", 300 14: "NOSE_BOTTOM_RIGHT", 301 15: "NOSE_BOTTOM_LEFT", 302 16: "NOSE_BOTTOM_CENTER", 303 17: "LEFT_EYE_TOP_BOUNDARY", 304 18: "LEFT_EYE_RIGHT_CORNER", 305 19: "LEFT_EYE_BOTTOM_BOUNDARY", 306 20: "LEFT_EYE_LEFT_CORNER", 307 21: "RIGHT_EYE_TOP_BOUNDARY", 308 22: "RIGHT_EYE_RIGHT_CORNER", 309 23: "RIGHT_EYE_BOTTOM_BOUNDARY", 310 24: "RIGHT_EYE_LEFT_CORNER", 311 25: "LEFT_EYEBROW_UPPER_MIDPOINT", 312 26: "RIGHT_EYEBROW_UPPER_MIDPOINT", 313 27: "LEFT_EAR_TRAGION", 314 28: "RIGHT_EAR_TRAGION", 315 29: "LEFT_EYE_PUPIL", 316 30: "RIGHT_EYE_PUPIL", 317 31: "FOREHEAD_GLABELLA", 318 32: "CHIN_GNATHION", 319 33: "CHIN_LEFT_GONION", 320 34: "CHIN_RIGHT_GONION", 321 } 322 FaceAnnotation_Landmark_Type_value = map[string]int32{ 323 "UNKNOWN_LANDMARK": 0, 324 "LEFT_EYE": 1, 325 "RIGHT_EYE": 2, 326 "LEFT_OF_LEFT_EYEBROW": 3, 327 "RIGHT_OF_LEFT_EYEBROW": 4, 328 "LEFT_OF_RIGHT_EYEBROW": 5, 329 "RIGHT_OF_RIGHT_EYEBROW": 6, 330 "MIDPOINT_BETWEEN_EYES": 7, 331 "NOSE_TIP": 8, 332 "UPPER_LIP": 9, 333 "LOWER_LIP": 10, 334 "MOUTH_LEFT": 11, 335 "MOUTH_RIGHT": 12, 336 "MOUTH_CENTER": 13, 337 "NOSE_BOTTOM_RIGHT": 14, 338 "NOSE_BOTTOM_LEFT": 15, 339 "NOSE_BOTTOM_CENTER": 16, 340 "LEFT_EYE_TOP_BOUNDARY": 17, 341 "LEFT_EYE_RIGHT_CORNER": 18, 342 "LEFT_EYE_BOTTOM_BOUNDARY": 19, 343 "LEFT_EYE_LEFT_CORNER": 20, 344 "RIGHT_EYE_TOP_BOUNDARY": 21, 345 "RIGHT_EYE_RIGHT_CORNER": 22, 346 "RIGHT_EYE_BOTTOM_BOUNDARY": 23, 347 "RIGHT_EYE_LEFT_CORNER": 24, 348 "LEFT_EYEBROW_UPPER_MIDPOINT": 25, 349 "RIGHT_EYEBROW_UPPER_MIDPOINT": 26, 350 "LEFT_EAR_TRAGION": 27, 351 "RIGHT_EAR_TRAGION": 28, 352 "LEFT_EYE_PUPIL": 29, 353 "RIGHT_EYE_PUPIL": 30, 354 "FOREHEAD_GLABELLA": 31, 355 "CHIN_GNATHION": 32, 356 "CHIN_LEFT_GONION": 33, 357 "CHIN_RIGHT_GONION": 34, 358 } 359) 360 361func (x FaceAnnotation_Landmark_Type) Enum() *FaceAnnotation_Landmark_Type { 362 p := new(FaceAnnotation_Landmark_Type) 363 *p = x 364 return p 365} 366 367func (x FaceAnnotation_Landmark_Type) String() string { 368 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 369} 370 371func (FaceAnnotation_Landmark_Type) Descriptor() protoreflect.EnumDescriptor { 372 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[2].Descriptor() 373} 374 375func (FaceAnnotation_Landmark_Type) Type() protoreflect.EnumType { 376 return &file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes[2] 377} 378 379func (x FaceAnnotation_Landmark_Type) Number() protoreflect.EnumNumber { 380 return protoreflect.EnumNumber(x) 381} 382 383// Deprecated: Use FaceAnnotation_Landmark_Type.Descriptor instead. 384func (FaceAnnotation_Landmark_Type) EnumDescriptor() ([]byte, []int) { 385 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{3, 0, 0} 386} 387 388// Users describe the type of Google Cloud Vision API tasks to perform over 389// images by using *Feature*s. Each Feature indicates a type of image 390// detection task to perform. Features encode the Cloud Vision API 391// vertical to operate on and the number of top-scoring results to return. 392type Feature struct { 393 state protoimpl.MessageState 394 sizeCache protoimpl.SizeCache 395 unknownFields protoimpl.UnknownFields 396 397 // The feature type. 398 Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.Feature_Type" json:"type,omitempty"` 399 // Maximum number of results of this type. 400 MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"` 401 // Model to use for the feature. 402 // Supported values: "builtin/stable" (the default if unset) and 403 // "builtin/latest". 404 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 405} 406 407func (x *Feature) Reset() { 408 *x = Feature{} 409 if protoimpl.UnsafeEnabled { 410 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[0] 411 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 412 ms.StoreMessageInfo(mi) 413 } 414} 415 416func (x *Feature) String() string { 417 return protoimpl.X.MessageStringOf(x) 418} 419 420func (*Feature) ProtoMessage() {} 421 422func (x *Feature) ProtoReflect() protoreflect.Message { 423 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[0] 424 if protoimpl.UnsafeEnabled && x != nil { 425 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 426 if ms.LoadMessageInfo() == nil { 427 ms.StoreMessageInfo(mi) 428 } 429 return ms 430 } 431 return mi.MessageOf(x) 432} 433 434// Deprecated: Use Feature.ProtoReflect.Descriptor instead. 435func (*Feature) Descriptor() ([]byte, []int) { 436 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{0} 437} 438 439func (x *Feature) GetType() Feature_Type { 440 if x != nil { 441 return x.Type 442 } 443 return Feature_TYPE_UNSPECIFIED 444} 445 446func (x *Feature) GetMaxResults() int32 { 447 if x != nil { 448 return x.MaxResults 449 } 450 return 0 451} 452 453func (x *Feature) GetModel() string { 454 if x != nil { 455 return x.Model 456 } 457 return "" 458} 459 460// External image source (Google Cloud Storage image location). 461type ImageSource struct { 462 state protoimpl.MessageState 463 sizeCache protoimpl.SizeCache 464 unknownFields protoimpl.UnknownFields 465 466 // NOTE: For new code `image_uri` below is preferred. 467 // Google Cloud Storage image URI, which must be in the following form: 468 // `gs://bucket_name/object_name` (for details, see 469 // [Google Cloud Storage Request 470 // URIs](https://cloud.google.com/storage/docs/reference-uris)). 471 // NOTE: Cloud Storage object versioning is not supported. 472 GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"` 473 // Image URI which supports: 474 // 1) Google Cloud Storage image URI, which must be in the following form: 475 // `gs://bucket_name/object_name` (for details, see 476 // [Google Cloud Storage Request 477 // URIs](https://cloud.google.com/storage/docs/reference-uris)). 478 // NOTE: Cloud Storage object versioning is not supported. 479 // 2) Publicly accessible image HTTP/HTTPS URL. 480 // This is preferred over the legacy `gcs_image_uri` above. When both 481 // `gcs_image_uri` and `image_uri` are specified, `image_uri` takes 482 // precedence. 483 ImageUri string `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` 484} 485 486func (x *ImageSource) Reset() { 487 *x = ImageSource{} 488 if protoimpl.UnsafeEnabled { 489 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[1] 490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 491 ms.StoreMessageInfo(mi) 492 } 493} 494 495func (x *ImageSource) String() string { 496 return protoimpl.X.MessageStringOf(x) 497} 498 499func (*ImageSource) ProtoMessage() {} 500 501func (x *ImageSource) ProtoReflect() protoreflect.Message { 502 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[1] 503 if protoimpl.UnsafeEnabled && x != nil { 504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 505 if ms.LoadMessageInfo() == nil { 506 ms.StoreMessageInfo(mi) 507 } 508 return ms 509 } 510 return mi.MessageOf(x) 511} 512 513// Deprecated: Use ImageSource.ProtoReflect.Descriptor instead. 514func (*ImageSource) Descriptor() ([]byte, []int) { 515 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{1} 516} 517 518func (x *ImageSource) GetGcsImageUri() string { 519 if x != nil { 520 return x.GcsImageUri 521 } 522 return "" 523} 524 525func (x *ImageSource) GetImageUri() string { 526 if x != nil { 527 return x.ImageUri 528 } 529 return "" 530} 531 532// Client image to perform Google Cloud Vision API tasks over. 533type Image struct { 534 state protoimpl.MessageState 535 sizeCache protoimpl.SizeCache 536 unknownFields protoimpl.UnknownFields 537 538 // Image content, represented as a stream of bytes. 539 // Note: as with all `bytes` fields, protobuffers use a pure binary 540 // representation, whereas JSON representations use base64. 541 Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` 542 // Google Cloud Storage image location. If both `content` and `source` 543 // are provided for an image, `content` takes precedence and is 544 // used to perform the image annotation request. 545 Source *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` 546} 547 548func (x *Image) Reset() { 549 *x = Image{} 550 if protoimpl.UnsafeEnabled { 551 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[2] 552 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 553 ms.StoreMessageInfo(mi) 554 } 555} 556 557func (x *Image) String() string { 558 return protoimpl.X.MessageStringOf(x) 559} 560 561func (*Image) ProtoMessage() {} 562 563func (x *Image) ProtoReflect() protoreflect.Message { 564 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[2] 565 if protoimpl.UnsafeEnabled && x != nil { 566 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 567 if ms.LoadMessageInfo() == nil { 568 ms.StoreMessageInfo(mi) 569 } 570 return ms 571 } 572 return mi.MessageOf(x) 573} 574 575// Deprecated: Use Image.ProtoReflect.Descriptor instead. 576func (*Image) Descriptor() ([]byte, []int) { 577 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{2} 578} 579 580func (x *Image) GetContent() []byte { 581 if x != nil { 582 return x.Content 583 } 584 return nil 585} 586 587func (x *Image) GetSource() *ImageSource { 588 if x != nil { 589 return x.Source 590 } 591 return nil 592} 593 594// A face annotation object contains the results of face detection. 595type FaceAnnotation struct { 596 state protoimpl.MessageState 597 sizeCache protoimpl.SizeCache 598 unknownFields protoimpl.UnknownFields 599 600 // The bounding polygon around the face. The coordinates of the bounding box 601 // are in the original image's scale, as returned in `ImageParams`. 602 // The bounding box is computed to "frame" the face in accordance with human 603 // expectations. It is based on the landmarker results. 604 // Note that one or more x and/or y coordinates may not be generated in the 605 // `BoundingPoly` (the polygon will be unbounded) if only a partial face 606 // appears in the image to be annotated. 607 BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 608 // The `fd_bounding_poly` bounding polygon is tighter than the 609 // `boundingPoly`, and encloses only the skin part of the face. Typically, it 610 // is used to eliminate the face from any image analysis that detects the 611 // "amount of skin" visible in an image. It is not based on the 612 // landmarker results, only on the initial face detection, hence 613 // the <code>fd</code> (face detection) prefix. 614 FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"` 615 // Detected face landmarks. 616 Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"` 617 // Roll angle, which indicates the amount of clockwise/anti-clockwise rotation 618 // of the face relative to the image vertical about the axis perpendicular to 619 // the face. Range [-180,180]. 620 RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"` 621 // Yaw angle, which indicates the leftward/rightward angle that the face is 622 // pointing relative to the vertical plane perpendicular to the image. Range 623 // [-180,180]. 624 PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"` 625 // Pitch angle, which indicates the upwards/downwards angle that the face is 626 // pointing relative to the image's horizontal plane. Range [-180,180]. 627 TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"` 628 // Detection confidence. Range [0, 1]. 629 DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"` 630 // Face landmarking confidence. Range [0, 1]. 631 LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"` 632 // Joy likelihood. 633 JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"joy_likelihood,omitempty"` 634 // Sorrow likelihood. 635 SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"sorrow_likelihood,omitempty"` 636 // Anger likelihood. 637 AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"anger_likelihood,omitempty"` 638 // Surprise likelihood. 639 SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"surprise_likelihood,omitempty"` 640 // Under-exposed likelihood. 641 UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"under_exposed_likelihood,omitempty"` 642 // Blurred likelihood. 643 BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"blurred_likelihood,omitempty"` 644 // Headwear likelihood. 645 HeadwearLikelihood Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"headwear_likelihood,omitempty"` 646} 647 648func (x *FaceAnnotation) Reset() { 649 *x = FaceAnnotation{} 650 if protoimpl.UnsafeEnabled { 651 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[3] 652 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 653 ms.StoreMessageInfo(mi) 654 } 655} 656 657func (x *FaceAnnotation) String() string { 658 return protoimpl.X.MessageStringOf(x) 659} 660 661func (*FaceAnnotation) ProtoMessage() {} 662 663func (x *FaceAnnotation) ProtoReflect() protoreflect.Message { 664 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[3] 665 if protoimpl.UnsafeEnabled && x != nil { 666 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 667 if ms.LoadMessageInfo() == nil { 668 ms.StoreMessageInfo(mi) 669 } 670 return ms 671 } 672 return mi.MessageOf(x) 673} 674 675// Deprecated: Use FaceAnnotation.ProtoReflect.Descriptor instead. 676func (*FaceAnnotation) Descriptor() ([]byte, []int) { 677 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{3} 678} 679 680func (x *FaceAnnotation) GetBoundingPoly() *BoundingPoly { 681 if x != nil { 682 return x.BoundingPoly 683 } 684 return nil 685} 686 687func (x *FaceAnnotation) GetFdBoundingPoly() *BoundingPoly { 688 if x != nil { 689 return x.FdBoundingPoly 690 } 691 return nil 692} 693 694func (x *FaceAnnotation) GetLandmarks() []*FaceAnnotation_Landmark { 695 if x != nil { 696 return x.Landmarks 697 } 698 return nil 699} 700 701func (x *FaceAnnotation) GetRollAngle() float32 { 702 if x != nil { 703 return x.RollAngle 704 } 705 return 0 706} 707 708func (x *FaceAnnotation) GetPanAngle() float32 { 709 if x != nil { 710 return x.PanAngle 711 } 712 return 0 713} 714 715func (x *FaceAnnotation) GetTiltAngle() float32 { 716 if x != nil { 717 return x.TiltAngle 718 } 719 return 0 720} 721 722func (x *FaceAnnotation) GetDetectionConfidence() float32 { 723 if x != nil { 724 return x.DetectionConfidence 725 } 726 return 0 727} 728 729func (x *FaceAnnotation) GetLandmarkingConfidence() float32 { 730 if x != nil { 731 return x.LandmarkingConfidence 732 } 733 return 0 734} 735 736func (x *FaceAnnotation) GetJoyLikelihood() Likelihood { 737 if x != nil { 738 return x.JoyLikelihood 739 } 740 return Likelihood_UNKNOWN 741} 742 743func (x *FaceAnnotation) GetSorrowLikelihood() Likelihood { 744 if x != nil { 745 return x.SorrowLikelihood 746 } 747 return Likelihood_UNKNOWN 748} 749 750func (x *FaceAnnotation) GetAngerLikelihood() Likelihood { 751 if x != nil { 752 return x.AngerLikelihood 753 } 754 return Likelihood_UNKNOWN 755} 756 757func (x *FaceAnnotation) GetSurpriseLikelihood() Likelihood { 758 if x != nil { 759 return x.SurpriseLikelihood 760 } 761 return Likelihood_UNKNOWN 762} 763 764func (x *FaceAnnotation) GetUnderExposedLikelihood() Likelihood { 765 if x != nil { 766 return x.UnderExposedLikelihood 767 } 768 return Likelihood_UNKNOWN 769} 770 771func (x *FaceAnnotation) GetBlurredLikelihood() Likelihood { 772 if x != nil { 773 return x.BlurredLikelihood 774 } 775 return Likelihood_UNKNOWN 776} 777 778func (x *FaceAnnotation) GetHeadwearLikelihood() Likelihood { 779 if x != nil { 780 return x.HeadwearLikelihood 781 } 782 return Likelihood_UNKNOWN 783} 784 785// Detected entity location information. 786type LocationInfo struct { 787 state protoimpl.MessageState 788 sizeCache protoimpl.SizeCache 789 unknownFields protoimpl.UnknownFields 790 791 // lat/long location coordinates. 792 LatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"` 793} 794 795func (x *LocationInfo) Reset() { 796 *x = LocationInfo{} 797 if protoimpl.UnsafeEnabled { 798 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[4] 799 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 800 ms.StoreMessageInfo(mi) 801 } 802} 803 804func (x *LocationInfo) String() string { 805 return protoimpl.X.MessageStringOf(x) 806} 807 808func (*LocationInfo) ProtoMessage() {} 809 810func (x *LocationInfo) ProtoReflect() protoreflect.Message { 811 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[4] 812 if protoimpl.UnsafeEnabled && x != nil { 813 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 814 if ms.LoadMessageInfo() == nil { 815 ms.StoreMessageInfo(mi) 816 } 817 return ms 818 } 819 return mi.MessageOf(x) 820} 821 822// Deprecated: Use LocationInfo.ProtoReflect.Descriptor instead. 823func (*LocationInfo) Descriptor() ([]byte, []int) { 824 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{4} 825} 826 827func (x *LocationInfo) GetLatLng() *latlng.LatLng { 828 if x != nil { 829 return x.LatLng 830 } 831 return nil 832} 833 834// A `Property` consists of a user-supplied name/value pair. 835type Property struct { 836 state protoimpl.MessageState 837 sizeCache protoimpl.SizeCache 838 unknownFields protoimpl.UnknownFields 839 840 // Name of the property. 841 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 842 // Value of the property. 843 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 844 // Value of numeric properties. 845 Uint64Value uint64 `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` 846} 847 848func (x *Property) Reset() { 849 *x = Property{} 850 if protoimpl.UnsafeEnabled { 851 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[5] 852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 853 ms.StoreMessageInfo(mi) 854 } 855} 856 857func (x *Property) String() string { 858 return protoimpl.X.MessageStringOf(x) 859} 860 861func (*Property) ProtoMessage() {} 862 863func (x *Property) ProtoReflect() protoreflect.Message { 864 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[5] 865 if protoimpl.UnsafeEnabled && x != nil { 866 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 867 if ms.LoadMessageInfo() == nil { 868 ms.StoreMessageInfo(mi) 869 } 870 return ms 871 } 872 return mi.MessageOf(x) 873} 874 875// Deprecated: Use Property.ProtoReflect.Descriptor instead. 876func (*Property) Descriptor() ([]byte, []int) { 877 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{5} 878} 879 880func (x *Property) GetName() string { 881 if x != nil { 882 return x.Name 883 } 884 return "" 885} 886 887func (x *Property) GetValue() string { 888 if x != nil { 889 return x.Value 890 } 891 return "" 892} 893 894func (x *Property) GetUint64Value() uint64 { 895 if x != nil { 896 return x.Uint64Value 897 } 898 return 0 899} 900 901// Set of detected entity features. 902type EntityAnnotation struct { 903 state protoimpl.MessageState 904 sizeCache protoimpl.SizeCache 905 unknownFields protoimpl.UnknownFields 906 907 // Opaque entity ID. Some IDs may be available in 908 // [Google Knowledge Graph Search 909 // API](https://developers.google.com/knowledge-graph/). 910 Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"` 911 // The language code for the locale in which the entity textual 912 // `description` is expressed. 913 Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"` 914 // Entity textual description, expressed in its `locale` language. 915 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 916 // Overall score of the result. Range [0, 1]. 917 Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` 918 // The accuracy of the entity detection in an image. 919 // For example, for an image in which the "Eiffel Tower" entity is detected, 920 // this field represents the confidence that there is a tower in the query 921 // image. Range [0, 1]. 922 Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"` 923 // The relevancy of the ICA (Image Content Annotation) label to the 924 // image. For example, the relevancy of "tower" is likely higher to an image 925 // containing the detected "Eiffel Tower" than to an image containing a 926 // detected distant towering building, even though the confidence that 927 // there is a tower in each image may be the same. Range [0, 1]. 928 Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"` 929 // Image region to which this entity belongs. Not produced 930 // for `LABEL_DETECTION` features. 931 BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 932 // The location information for the detected entity. Multiple 933 // `LocationInfo` elements can be present because one location may 934 // indicate the location of the scene in the image, and another location 935 // may indicate the location of the place where the image was taken. 936 // Location information is usually present for landmarks. 937 Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"` 938 // Some entities may have optional user-supplied `Property` (name/value) 939 // fields, such a score or string that qualifies the entity. 940 Properties []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"` 941} 942 943func (x *EntityAnnotation) Reset() { 944 *x = EntityAnnotation{} 945 if protoimpl.UnsafeEnabled { 946 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[6] 947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 948 ms.StoreMessageInfo(mi) 949 } 950} 951 952func (x *EntityAnnotation) String() string { 953 return protoimpl.X.MessageStringOf(x) 954} 955 956func (*EntityAnnotation) ProtoMessage() {} 957 958func (x *EntityAnnotation) ProtoReflect() protoreflect.Message { 959 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[6] 960 if protoimpl.UnsafeEnabled && x != nil { 961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 962 if ms.LoadMessageInfo() == nil { 963 ms.StoreMessageInfo(mi) 964 } 965 return ms 966 } 967 return mi.MessageOf(x) 968} 969 970// Deprecated: Use EntityAnnotation.ProtoReflect.Descriptor instead. 971func (*EntityAnnotation) Descriptor() ([]byte, []int) { 972 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{6} 973} 974 975func (x *EntityAnnotation) GetMid() string { 976 if x != nil { 977 return x.Mid 978 } 979 return "" 980} 981 982func (x *EntityAnnotation) GetLocale() string { 983 if x != nil { 984 return x.Locale 985 } 986 return "" 987} 988 989func (x *EntityAnnotation) GetDescription() string { 990 if x != nil { 991 return x.Description 992 } 993 return "" 994} 995 996func (x *EntityAnnotation) GetScore() float32 { 997 if x != nil { 998 return x.Score 999 } 1000 return 0 1001} 1002 1003func (x *EntityAnnotation) GetConfidence() float32 { 1004 if x != nil { 1005 return x.Confidence 1006 } 1007 return 0 1008} 1009 1010func (x *EntityAnnotation) GetTopicality() float32 { 1011 if x != nil { 1012 return x.Topicality 1013 } 1014 return 0 1015} 1016 1017func (x *EntityAnnotation) GetBoundingPoly() *BoundingPoly { 1018 if x != nil { 1019 return x.BoundingPoly 1020 } 1021 return nil 1022} 1023 1024func (x *EntityAnnotation) GetLocations() []*LocationInfo { 1025 if x != nil { 1026 return x.Locations 1027 } 1028 return nil 1029} 1030 1031func (x *EntityAnnotation) GetProperties() []*Property { 1032 if x != nil { 1033 return x.Properties 1034 } 1035 return nil 1036} 1037 1038// Set of features pertaining to the image, computed by computer vision 1039// methods over safe-search verticals (for example, adult, spoof, medical, 1040// violence). 1041type SafeSearchAnnotation struct { 1042 state protoimpl.MessageState 1043 sizeCache protoimpl.SizeCache 1044 unknownFields protoimpl.UnknownFields 1045 1046 // Represents the adult content likelihood for the image. Adult content may 1047 // contain elements such as nudity, pornographic images or cartoons, or 1048 // sexual activities. 1049 Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"adult,omitempty"` 1050 // Spoof likelihood. The likelihood that an modification 1051 // was made to the image's canonical version to make it appear 1052 // funny or offensive. 1053 Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"spoof,omitempty"` 1054 // Likelihood that this is a medical image. 1055 Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"medical,omitempty"` 1056 // Likelihood that this image contains violent content. 1057 Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"violence,omitempty"` 1058 // Likelihood that the request image contains racy content. Racy content may 1059 // include (but is not limited to) skimpy or sheer clothing, strategically 1060 // covered nudity, lewd or provocative poses, or close-ups of sensitive 1061 // body areas. 1062 Racy Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"racy,omitempty"` 1063} 1064 1065func (x *SafeSearchAnnotation) Reset() { 1066 *x = SafeSearchAnnotation{} 1067 if protoimpl.UnsafeEnabled { 1068 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[7] 1069 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1070 ms.StoreMessageInfo(mi) 1071 } 1072} 1073 1074func (x *SafeSearchAnnotation) String() string { 1075 return protoimpl.X.MessageStringOf(x) 1076} 1077 1078func (*SafeSearchAnnotation) ProtoMessage() {} 1079 1080func (x *SafeSearchAnnotation) ProtoReflect() protoreflect.Message { 1081 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[7] 1082 if protoimpl.UnsafeEnabled && x != nil { 1083 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1084 if ms.LoadMessageInfo() == nil { 1085 ms.StoreMessageInfo(mi) 1086 } 1087 return ms 1088 } 1089 return mi.MessageOf(x) 1090} 1091 1092// Deprecated: Use SafeSearchAnnotation.ProtoReflect.Descriptor instead. 1093func (*SafeSearchAnnotation) Descriptor() ([]byte, []int) { 1094 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{7} 1095} 1096 1097func (x *SafeSearchAnnotation) GetAdult() Likelihood { 1098 if x != nil { 1099 return x.Adult 1100 } 1101 return Likelihood_UNKNOWN 1102} 1103 1104func (x *SafeSearchAnnotation) GetSpoof() Likelihood { 1105 if x != nil { 1106 return x.Spoof 1107 } 1108 return Likelihood_UNKNOWN 1109} 1110 1111func (x *SafeSearchAnnotation) GetMedical() Likelihood { 1112 if x != nil { 1113 return x.Medical 1114 } 1115 return Likelihood_UNKNOWN 1116} 1117 1118func (x *SafeSearchAnnotation) GetViolence() Likelihood { 1119 if x != nil { 1120 return x.Violence 1121 } 1122 return Likelihood_UNKNOWN 1123} 1124 1125func (x *SafeSearchAnnotation) GetRacy() Likelihood { 1126 if x != nil { 1127 return x.Racy 1128 } 1129 return Likelihood_UNKNOWN 1130} 1131 1132// Rectangle determined by min and max `LatLng` pairs. 1133type LatLongRect struct { 1134 state protoimpl.MessageState 1135 sizeCache protoimpl.SizeCache 1136 unknownFields protoimpl.UnknownFields 1137 1138 // Min lat/long pair. 1139 MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"` 1140 // Max lat/long pair. 1141 MaxLatLng *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"` 1142} 1143 1144func (x *LatLongRect) Reset() { 1145 *x = LatLongRect{} 1146 if protoimpl.UnsafeEnabled { 1147 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[8] 1148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1149 ms.StoreMessageInfo(mi) 1150 } 1151} 1152 1153func (x *LatLongRect) String() string { 1154 return protoimpl.X.MessageStringOf(x) 1155} 1156 1157func (*LatLongRect) ProtoMessage() {} 1158 1159func (x *LatLongRect) ProtoReflect() protoreflect.Message { 1160 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[8] 1161 if protoimpl.UnsafeEnabled && x != nil { 1162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1163 if ms.LoadMessageInfo() == nil { 1164 ms.StoreMessageInfo(mi) 1165 } 1166 return ms 1167 } 1168 return mi.MessageOf(x) 1169} 1170 1171// Deprecated: Use LatLongRect.ProtoReflect.Descriptor instead. 1172func (*LatLongRect) Descriptor() ([]byte, []int) { 1173 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{8} 1174} 1175 1176func (x *LatLongRect) GetMinLatLng() *latlng.LatLng { 1177 if x != nil { 1178 return x.MinLatLng 1179 } 1180 return nil 1181} 1182 1183func (x *LatLongRect) GetMaxLatLng() *latlng.LatLng { 1184 if x != nil { 1185 return x.MaxLatLng 1186 } 1187 return nil 1188} 1189 1190// Color information consists of RGB channels, score, and the fraction of 1191// the image that the color occupies in the image. 1192type ColorInfo struct { 1193 state protoimpl.MessageState 1194 sizeCache protoimpl.SizeCache 1195 unknownFields protoimpl.UnknownFields 1196 1197 // RGB components of the color. 1198 Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"` 1199 // Image-specific score for this color. Value in range [0, 1]. 1200 Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"` 1201 // The fraction of pixels the color occupies in the image. 1202 // Value in range [0, 1]. 1203 PixelFraction float32 `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"` 1204} 1205 1206func (x *ColorInfo) Reset() { 1207 *x = ColorInfo{} 1208 if protoimpl.UnsafeEnabled { 1209 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[9] 1210 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1211 ms.StoreMessageInfo(mi) 1212 } 1213} 1214 1215func (x *ColorInfo) String() string { 1216 return protoimpl.X.MessageStringOf(x) 1217} 1218 1219func (*ColorInfo) ProtoMessage() {} 1220 1221func (x *ColorInfo) ProtoReflect() protoreflect.Message { 1222 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[9] 1223 if protoimpl.UnsafeEnabled && x != nil { 1224 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1225 if ms.LoadMessageInfo() == nil { 1226 ms.StoreMessageInfo(mi) 1227 } 1228 return ms 1229 } 1230 return mi.MessageOf(x) 1231} 1232 1233// Deprecated: Use ColorInfo.ProtoReflect.Descriptor instead. 1234func (*ColorInfo) Descriptor() ([]byte, []int) { 1235 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{9} 1236} 1237 1238func (x *ColorInfo) GetColor() *color.Color { 1239 if x != nil { 1240 return x.Color 1241 } 1242 return nil 1243} 1244 1245func (x *ColorInfo) GetScore() float32 { 1246 if x != nil { 1247 return x.Score 1248 } 1249 return 0 1250} 1251 1252func (x *ColorInfo) GetPixelFraction() float32 { 1253 if x != nil { 1254 return x.PixelFraction 1255 } 1256 return 0 1257} 1258 1259// Set of dominant colors and their corresponding scores. 1260type DominantColorsAnnotation struct { 1261 state protoimpl.MessageState 1262 sizeCache protoimpl.SizeCache 1263 unknownFields protoimpl.UnknownFields 1264 1265 // RGB color values with their score and pixel fraction. 1266 Colors []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"` 1267} 1268 1269func (x *DominantColorsAnnotation) Reset() { 1270 *x = DominantColorsAnnotation{} 1271 if protoimpl.UnsafeEnabled { 1272 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[10] 1273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1274 ms.StoreMessageInfo(mi) 1275 } 1276} 1277 1278func (x *DominantColorsAnnotation) String() string { 1279 return protoimpl.X.MessageStringOf(x) 1280} 1281 1282func (*DominantColorsAnnotation) ProtoMessage() {} 1283 1284func (x *DominantColorsAnnotation) ProtoReflect() protoreflect.Message { 1285 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[10] 1286 if protoimpl.UnsafeEnabled && x != nil { 1287 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1288 if ms.LoadMessageInfo() == nil { 1289 ms.StoreMessageInfo(mi) 1290 } 1291 return ms 1292 } 1293 return mi.MessageOf(x) 1294} 1295 1296// Deprecated: Use DominantColorsAnnotation.ProtoReflect.Descriptor instead. 1297func (*DominantColorsAnnotation) Descriptor() ([]byte, []int) { 1298 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{10} 1299} 1300 1301func (x *DominantColorsAnnotation) GetColors() []*ColorInfo { 1302 if x != nil { 1303 return x.Colors 1304 } 1305 return nil 1306} 1307 1308// Stores image properties, such as dominant colors. 1309type ImageProperties struct { 1310 state protoimpl.MessageState 1311 sizeCache protoimpl.SizeCache 1312 unknownFields protoimpl.UnknownFields 1313 1314 // If present, dominant colors completed successfully. 1315 DominantColors *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"` 1316} 1317 1318func (x *ImageProperties) Reset() { 1319 *x = ImageProperties{} 1320 if protoimpl.UnsafeEnabled { 1321 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[11] 1322 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1323 ms.StoreMessageInfo(mi) 1324 } 1325} 1326 1327func (x *ImageProperties) String() string { 1328 return protoimpl.X.MessageStringOf(x) 1329} 1330 1331func (*ImageProperties) ProtoMessage() {} 1332 1333func (x *ImageProperties) ProtoReflect() protoreflect.Message { 1334 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[11] 1335 if protoimpl.UnsafeEnabled && x != nil { 1336 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1337 if ms.LoadMessageInfo() == nil { 1338 ms.StoreMessageInfo(mi) 1339 } 1340 return ms 1341 } 1342 return mi.MessageOf(x) 1343} 1344 1345// Deprecated: Use ImageProperties.ProtoReflect.Descriptor instead. 1346func (*ImageProperties) Descriptor() ([]byte, []int) { 1347 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{11} 1348} 1349 1350func (x *ImageProperties) GetDominantColors() *DominantColorsAnnotation { 1351 if x != nil { 1352 return x.DominantColors 1353 } 1354 return nil 1355} 1356 1357// Single crop hint that is used to generate a new crop when serving an image. 1358type CropHint struct { 1359 state protoimpl.MessageState 1360 sizeCache protoimpl.SizeCache 1361 unknownFields protoimpl.UnknownFields 1362 1363 // The bounding polygon for the crop region. The coordinates of the bounding 1364 // box are in the original image's scale, as returned in `ImageParams`. 1365 BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 1366 // Confidence of this being a salient region. Range [0, 1]. 1367 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` 1368 // Fraction of importance of this salient region with respect to the original 1369 // image. 1370 ImportanceFraction float32 `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"` 1371} 1372 1373func (x *CropHint) Reset() { 1374 *x = CropHint{} 1375 if protoimpl.UnsafeEnabled { 1376 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[12] 1377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1378 ms.StoreMessageInfo(mi) 1379 } 1380} 1381 1382func (x *CropHint) String() string { 1383 return protoimpl.X.MessageStringOf(x) 1384} 1385 1386func (*CropHint) ProtoMessage() {} 1387 1388func (x *CropHint) ProtoReflect() protoreflect.Message { 1389 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[12] 1390 if protoimpl.UnsafeEnabled && x != nil { 1391 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1392 if ms.LoadMessageInfo() == nil { 1393 ms.StoreMessageInfo(mi) 1394 } 1395 return ms 1396 } 1397 return mi.MessageOf(x) 1398} 1399 1400// Deprecated: Use CropHint.ProtoReflect.Descriptor instead. 1401func (*CropHint) Descriptor() ([]byte, []int) { 1402 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{12} 1403} 1404 1405func (x *CropHint) GetBoundingPoly() *BoundingPoly { 1406 if x != nil { 1407 return x.BoundingPoly 1408 } 1409 return nil 1410} 1411 1412func (x *CropHint) GetConfidence() float32 { 1413 if x != nil { 1414 return x.Confidence 1415 } 1416 return 0 1417} 1418 1419func (x *CropHint) GetImportanceFraction() float32 { 1420 if x != nil { 1421 return x.ImportanceFraction 1422 } 1423 return 0 1424} 1425 1426// Set of crop hints that are used to generate new crops when serving images. 1427type CropHintsAnnotation struct { 1428 state protoimpl.MessageState 1429 sizeCache protoimpl.SizeCache 1430 unknownFields protoimpl.UnknownFields 1431 1432 // Crop hint results. 1433 CropHints []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"` 1434} 1435 1436func (x *CropHintsAnnotation) Reset() { 1437 *x = CropHintsAnnotation{} 1438 if protoimpl.UnsafeEnabled { 1439 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[13] 1440 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1441 ms.StoreMessageInfo(mi) 1442 } 1443} 1444 1445func (x *CropHintsAnnotation) String() string { 1446 return protoimpl.X.MessageStringOf(x) 1447} 1448 1449func (*CropHintsAnnotation) ProtoMessage() {} 1450 1451func (x *CropHintsAnnotation) ProtoReflect() protoreflect.Message { 1452 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[13] 1453 if protoimpl.UnsafeEnabled && x != nil { 1454 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1455 if ms.LoadMessageInfo() == nil { 1456 ms.StoreMessageInfo(mi) 1457 } 1458 return ms 1459 } 1460 return mi.MessageOf(x) 1461} 1462 1463// Deprecated: Use CropHintsAnnotation.ProtoReflect.Descriptor instead. 1464func (*CropHintsAnnotation) Descriptor() ([]byte, []int) { 1465 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{13} 1466} 1467 1468func (x *CropHintsAnnotation) GetCropHints() []*CropHint { 1469 if x != nil { 1470 return x.CropHints 1471 } 1472 return nil 1473} 1474 1475// Parameters for crop hints annotation request. 1476type CropHintsParams struct { 1477 state protoimpl.MessageState 1478 sizeCache protoimpl.SizeCache 1479 unknownFields protoimpl.UnknownFields 1480 1481 // Aspect ratios in floats, representing the ratio of the width to the height 1482 // of the image. For example, if the desired aspect ratio is 4/3, the 1483 // corresponding float value should be 1.33333. If not specified, the 1484 // best possible crop is returned. The number of provided aspect ratios is 1485 // limited to a maximum of 16; any aspect ratios provided after the 16th are 1486 // ignored. 1487 AspectRatios []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"` 1488} 1489 1490func (x *CropHintsParams) Reset() { 1491 *x = CropHintsParams{} 1492 if protoimpl.UnsafeEnabled { 1493 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[14] 1494 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1495 ms.StoreMessageInfo(mi) 1496 } 1497} 1498 1499func (x *CropHintsParams) String() string { 1500 return protoimpl.X.MessageStringOf(x) 1501} 1502 1503func (*CropHintsParams) ProtoMessage() {} 1504 1505func (x *CropHintsParams) ProtoReflect() protoreflect.Message { 1506 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[14] 1507 if protoimpl.UnsafeEnabled && x != nil { 1508 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1509 if ms.LoadMessageInfo() == nil { 1510 ms.StoreMessageInfo(mi) 1511 } 1512 return ms 1513 } 1514 return mi.MessageOf(x) 1515} 1516 1517// Deprecated: Use CropHintsParams.ProtoReflect.Descriptor instead. 1518func (*CropHintsParams) Descriptor() ([]byte, []int) { 1519 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{14} 1520} 1521 1522func (x *CropHintsParams) GetAspectRatios() []float32 { 1523 if x != nil { 1524 return x.AspectRatios 1525 } 1526 return nil 1527} 1528 1529// Parameters for web detection request. 1530type WebDetectionParams struct { 1531 state protoimpl.MessageState 1532 sizeCache protoimpl.SizeCache 1533 unknownFields protoimpl.UnknownFields 1534 1535 // Whether to include results derived from the geo information in the image. 1536 IncludeGeoResults bool `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"` 1537} 1538 1539func (x *WebDetectionParams) Reset() { 1540 *x = WebDetectionParams{} 1541 if protoimpl.UnsafeEnabled { 1542 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[15] 1543 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1544 ms.StoreMessageInfo(mi) 1545 } 1546} 1547 1548func (x *WebDetectionParams) String() string { 1549 return protoimpl.X.MessageStringOf(x) 1550} 1551 1552func (*WebDetectionParams) ProtoMessage() {} 1553 1554func (x *WebDetectionParams) ProtoReflect() protoreflect.Message { 1555 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[15] 1556 if protoimpl.UnsafeEnabled && x != nil { 1557 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1558 if ms.LoadMessageInfo() == nil { 1559 ms.StoreMessageInfo(mi) 1560 } 1561 return ms 1562 } 1563 return mi.MessageOf(x) 1564} 1565 1566// Deprecated: Use WebDetectionParams.ProtoReflect.Descriptor instead. 1567func (*WebDetectionParams) Descriptor() ([]byte, []int) { 1568 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{15} 1569} 1570 1571func (x *WebDetectionParams) GetIncludeGeoResults() bool { 1572 if x != nil { 1573 return x.IncludeGeoResults 1574 } 1575 return false 1576} 1577 1578// Parameters for text detections. This is used to control TEXT_DETECTION and 1579// DOCUMENT_TEXT_DETECTION features. 1580type TextDetectionParams struct { 1581 state protoimpl.MessageState 1582 sizeCache protoimpl.SizeCache 1583 unknownFields protoimpl.UnknownFields 1584 1585 // By default, Cloud Vision API only includes confidence score for 1586 // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence 1587 // score for TEXT_DETECTION as well. 1588 EnableTextDetectionConfidenceScore bool `protobuf:"varint,9,opt,name=enable_text_detection_confidence_score,json=enableTextDetectionConfidenceScore,proto3" json:"enable_text_detection_confidence_score,omitempty"` 1589} 1590 1591func (x *TextDetectionParams) Reset() { 1592 *x = TextDetectionParams{} 1593 if protoimpl.UnsafeEnabled { 1594 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[16] 1595 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1596 ms.StoreMessageInfo(mi) 1597 } 1598} 1599 1600func (x *TextDetectionParams) String() string { 1601 return protoimpl.X.MessageStringOf(x) 1602} 1603 1604func (*TextDetectionParams) ProtoMessage() {} 1605 1606func (x *TextDetectionParams) ProtoReflect() protoreflect.Message { 1607 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[16] 1608 if protoimpl.UnsafeEnabled && x != nil { 1609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1610 if ms.LoadMessageInfo() == nil { 1611 ms.StoreMessageInfo(mi) 1612 } 1613 return ms 1614 } 1615 return mi.MessageOf(x) 1616} 1617 1618// Deprecated: Use TextDetectionParams.ProtoReflect.Descriptor instead. 1619func (*TextDetectionParams) Descriptor() ([]byte, []int) { 1620 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{16} 1621} 1622 1623func (x *TextDetectionParams) GetEnableTextDetectionConfidenceScore() bool { 1624 if x != nil { 1625 return x.EnableTextDetectionConfidenceScore 1626 } 1627 return false 1628} 1629 1630// Image context and/or feature-specific parameters. 1631type ImageContext struct { 1632 state protoimpl.MessageState 1633 sizeCache protoimpl.SizeCache 1634 unknownFields protoimpl.UnknownFields 1635 1636 // lat/long rectangle that specifies the location of the image. 1637 LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"` 1638 // List of languages to use for TEXT_DETECTION. In most cases, an empty value 1639 // yields the best results since it enables automatic language detection. For 1640 // languages based on the Latin alphabet, setting `language_hints` is not 1641 // needed. In rare cases, when the language of the text in the image is known, 1642 // setting a hint will help get better results (although it will be a 1643 // significant hindrance if the hint is wrong). Text detection returns an 1644 // error if one or more of the specified languages is not one of the 1645 // [supported languages](https://cloud.google.com/vision/docs/languages). 1646 LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"` 1647 // Parameters for crop hints annotation request. 1648 CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"` 1649 // Parameters for web detection. 1650 WebDetectionParams *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"` 1651 // Parameters for text detection and document text detection. 1652 TextDetectionParams *TextDetectionParams `protobuf:"bytes,12,opt,name=text_detection_params,json=textDetectionParams,proto3" json:"text_detection_params,omitempty"` 1653} 1654 1655func (x *ImageContext) Reset() { 1656 *x = ImageContext{} 1657 if protoimpl.UnsafeEnabled { 1658 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[17] 1659 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1660 ms.StoreMessageInfo(mi) 1661 } 1662} 1663 1664func (x *ImageContext) String() string { 1665 return protoimpl.X.MessageStringOf(x) 1666} 1667 1668func (*ImageContext) ProtoMessage() {} 1669 1670func (x *ImageContext) ProtoReflect() protoreflect.Message { 1671 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[17] 1672 if protoimpl.UnsafeEnabled && x != nil { 1673 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1674 if ms.LoadMessageInfo() == nil { 1675 ms.StoreMessageInfo(mi) 1676 } 1677 return ms 1678 } 1679 return mi.MessageOf(x) 1680} 1681 1682// Deprecated: Use ImageContext.ProtoReflect.Descriptor instead. 1683func (*ImageContext) Descriptor() ([]byte, []int) { 1684 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{17} 1685} 1686 1687func (x *ImageContext) GetLatLongRect() *LatLongRect { 1688 if x != nil { 1689 return x.LatLongRect 1690 } 1691 return nil 1692} 1693 1694func (x *ImageContext) GetLanguageHints() []string { 1695 if x != nil { 1696 return x.LanguageHints 1697 } 1698 return nil 1699} 1700 1701func (x *ImageContext) GetCropHintsParams() *CropHintsParams { 1702 if x != nil { 1703 return x.CropHintsParams 1704 } 1705 return nil 1706} 1707 1708func (x *ImageContext) GetWebDetectionParams() *WebDetectionParams { 1709 if x != nil { 1710 return x.WebDetectionParams 1711 } 1712 return nil 1713} 1714 1715func (x *ImageContext) GetTextDetectionParams() *TextDetectionParams { 1716 if x != nil { 1717 return x.TextDetectionParams 1718 } 1719 return nil 1720} 1721 1722// Request for performing Google Cloud Vision API tasks over a user-provided 1723// image, with user-requested features. 1724type AnnotateImageRequest struct { 1725 state protoimpl.MessageState 1726 sizeCache protoimpl.SizeCache 1727 unknownFields protoimpl.UnknownFields 1728 1729 // The image to be processed. 1730 Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` 1731 // Requested features. 1732 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 1733 // Additional context that may accompany the image. 1734 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 1735} 1736 1737func (x *AnnotateImageRequest) Reset() { 1738 *x = AnnotateImageRequest{} 1739 if protoimpl.UnsafeEnabled { 1740 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[18] 1741 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1742 ms.StoreMessageInfo(mi) 1743 } 1744} 1745 1746func (x *AnnotateImageRequest) String() string { 1747 return protoimpl.X.MessageStringOf(x) 1748} 1749 1750func (*AnnotateImageRequest) ProtoMessage() {} 1751 1752func (x *AnnotateImageRequest) ProtoReflect() protoreflect.Message { 1753 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[18] 1754 if protoimpl.UnsafeEnabled && x != nil { 1755 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1756 if ms.LoadMessageInfo() == nil { 1757 ms.StoreMessageInfo(mi) 1758 } 1759 return ms 1760 } 1761 return mi.MessageOf(x) 1762} 1763 1764// Deprecated: Use AnnotateImageRequest.ProtoReflect.Descriptor instead. 1765func (*AnnotateImageRequest) Descriptor() ([]byte, []int) { 1766 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{18} 1767} 1768 1769func (x *AnnotateImageRequest) GetImage() *Image { 1770 if x != nil { 1771 return x.Image 1772 } 1773 return nil 1774} 1775 1776func (x *AnnotateImageRequest) GetFeatures() []*Feature { 1777 if x != nil { 1778 return x.Features 1779 } 1780 return nil 1781} 1782 1783func (x *AnnotateImageRequest) GetImageContext() *ImageContext { 1784 if x != nil { 1785 return x.ImageContext 1786 } 1787 return nil 1788} 1789 1790// Response to an image annotation request. 1791type AnnotateImageResponse struct { 1792 state protoimpl.MessageState 1793 sizeCache protoimpl.SizeCache 1794 unknownFields protoimpl.UnknownFields 1795 1796 // If present, face detection has completed successfully. 1797 FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"` 1798 // If present, landmark detection has completed successfully. 1799 LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"` 1800 // If present, logo detection has completed successfully. 1801 LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"` 1802 // If present, label detection has completed successfully. 1803 LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"` 1804 // If present, text (OCR) detection has completed successfully. 1805 TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"` 1806 // If present, text (OCR) detection or document (OCR) text detection has 1807 // completed successfully. 1808 // This annotation provides the structural hierarchy for the OCR detected 1809 // text. 1810 FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"` 1811 // If present, safe-search annotation has completed successfully. 1812 SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"` 1813 // If present, image properties were extracted successfully. 1814 ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"` 1815 // If present, crop hints have completed successfully. 1816 CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"` 1817 // If present, web detection has completed successfully. 1818 WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"` 1819 // If set, represents the error message for the operation. 1820 // Note that filled-in image annotations are guaranteed to be 1821 // correct, even when `error` is set. 1822 Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"` 1823} 1824 1825func (x *AnnotateImageResponse) Reset() { 1826 *x = AnnotateImageResponse{} 1827 if protoimpl.UnsafeEnabled { 1828 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[19] 1829 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1830 ms.StoreMessageInfo(mi) 1831 } 1832} 1833 1834func (x *AnnotateImageResponse) String() string { 1835 return protoimpl.X.MessageStringOf(x) 1836} 1837 1838func (*AnnotateImageResponse) ProtoMessage() {} 1839 1840func (x *AnnotateImageResponse) ProtoReflect() protoreflect.Message { 1841 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[19] 1842 if protoimpl.UnsafeEnabled && x != nil { 1843 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1844 if ms.LoadMessageInfo() == nil { 1845 ms.StoreMessageInfo(mi) 1846 } 1847 return ms 1848 } 1849 return mi.MessageOf(x) 1850} 1851 1852// Deprecated: Use AnnotateImageResponse.ProtoReflect.Descriptor instead. 1853func (*AnnotateImageResponse) Descriptor() ([]byte, []int) { 1854 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{19} 1855} 1856 1857func (x *AnnotateImageResponse) GetFaceAnnotations() []*FaceAnnotation { 1858 if x != nil { 1859 return x.FaceAnnotations 1860 } 1861 return nil 1862} 1863 1864func (x *AnnotateImageResponse) GetLandmarkAnnotations() []*EntityAnnotation { 1865 if x != nil { 1866 return x.LandmarkAnnotations 1867 } 1868 return nil 1869} 1870 1871func (x *AnnotateImageResponse) GetLogoAnnotations() []*EntityAnnotation { 1872 if x != nil { 1873 return x.LogoAnnotations 1874 } 1875 return nil 1876} 1877 1878func (x *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation { 1879 if x != nil { 1880 return x.LabelAnnotations 1881 } 1882 return nil 1883} 1884 1885func (x *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation { 1886 if x != nil { 1887 return x.TextAnnotations 1888 } 1889 return nil 1890} 1891 1892func (x *AnnotateImageResponse) GetFullTextAnnotation() *TextAnnotation { 1893 if x != nil { 1894 return x.FullTextAnnotation 1895 } 1896 return nil 1897} 1898 1899func (x *AnnotateImageResponse) GetSafeSearchAnnotation() *SafeSearchAnnotation { 1900 if x != nil { 1901 return x.SafeSearchAnnotation 1902 } 1903 return nil 1904} 1905 1906func (x *AnnotateImageResponse) GetImagePropertiesAnnotation() *ImageProperties { 1907 if x != nil { 1908 return x.ImagePropertiesAnnotation 1909 } 1910 return nil 1911} 1912 1913func (x *AnnotateImageResponse) GetCropHintsAnnotation() *CropHintsAnnotation { 1914 if x != nil { 1915 return x.CropHintsAnnotation 1916 } 1917 return nil 1918} 1919 1920func (x *AnnotateImageResponse) GetWebDetection() *WebDetection { 1921 if x != nil { 1922 return x.WebDetection 1923 } 1924 return nil 1925} 1926 1927func (x *AnnotateImageResponse) GetError() *status.Status { 1928 if x != nil { 1929 return x.Error 1930 } 1931 return nil 1932} 1933 1934// Multiple image annotation requests are batched into a single service call. 1935type BatchAnnotateImagesRequest struct { 1936 state protoimpl.MessageState 1937 sizeCache protoimpl.SizeCache 1938 unknownFields protoimpl.UnknownFields 1939 1940 // Required. Individual image annotation requests for this batch. 1941 Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 1942} 1943 1944func (x *BatchAnnotateImagesRequest) Reset() { 1945 *x = BatchAnnotateImagesRequest{} 1946 if protoimpl.UnsafeEnabled { 1947 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[20] 1948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1949 ms.StoreMessageInfo(mi) 1950 } 1951} 1952 1953func (x *BatchAnnotateImagesRequest) String() string { 1954 return protoimpl.X.MessageStringOf(x) 1955} 1956 1957func (*BatchAnnotateImagesRequest) ProtoMessage() {} 1958 1959func (x *BatchAnnotateImagesRequest) ProtoReflect() protoreflect.Message { 1960 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[20] 1961 if protoimpl.UnsafeEnabled && x != nil { 1962 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1963 if ms.LoadMessageInfo() == nil { 1964 ms.StoreMessageInfo(mi) 1965 } 1966 return ms 1967 } 1968 return mi.MessageOf(x) 1969} 1970 1971// Deprecated: Use BatchAnnotateImagesRequest.ProtoReflect.Descriptor instead. 1972func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) { 1973 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{20} 1974} 1975 1976func (x *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest { 1977 if x != nil { 1978 return x.Requests 1979 } 1980 return nil 1981} 1982 1983// Response to a batch image annotation request. 1984type BatchAnnotateImagesResponse struct { 1985 state protoimpl.MessageState 1986 sizeCache protoimpl.SizeCache 1987 unknownFields protoimpl.UnknownFields 1988 1989 // Individual responses to image annotation requests within the batch. 1990 Responses []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 1991} 1992 1993func (x *BatchAnnotateImagesResponse) Reset() { 1994 *x = BatchAnnotateImagesResponse{} 1995 if protoimpl.UnsafeEnabled { 1996 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[21] 1997 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1998 ms.StoreMessageInfo(mi) 1999 } 2000} 2001 2002func (x *BatchAnnotateImagesResponse) String() string { 2003 return protoimpl.X.MessageStringOf(x) 2004} 2005 2006func (*BatchAnnotateImagesResponse) ProtoMessage() {} 2007 2008func (x *BatchAnnotateImagesResponse) ProtoReflect() protoreflect.Message { 2009 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[21] 2010 if protoimpl.UnsafeEnabled && x != nil { 2011 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2012 if ms.LoadMessageInfo() == nil { 2013 ms.StoreMessageInfo(mi) 2014 } 2015 return ms 2016 } 2017 return mi.MessageOf(x) 2018} 2019 2020// Deprecated: Use BatchAnnotateImagesResponse.ProtoReflect.Descriptor instead. 2021func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) { 2022 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{21} 2023} 2024 2025func (x *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse { 2026 if x != nil { 2027 return x.Responses 2028 } 2029 return nil 2030} 2031 2032// A face-specific landmark (for example, a face feature). 2033type FaceAnnotation_Landmark struct { 2034 state protoimpl.MessageState 2035 sizeCache protoimpl.SizeCache 2036 unknownFields protoimpl.UnknownFields 2037 2038 // Face landmark type. 2039 Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"` 2040 // Face landmark position. 2041 Position *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` 2042} 2043 2044func (x *FaceAnnotation_Landmark) Reset() { 2045 *x = FaceAnnotation_Landmark{} 2046 if protoimpl.UnsafeEnabled { 2047 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[22] 2048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2049 ms.StoreMessageInfo(mi) 2050 } 2051} 2052 2053func (x *FaceAnnotation_Landmark) String() string { 2054 return protoimpl.X.MessageStringOf(x) 2055} 2056 2057func (*FaceAnnotation_Landmark) ProtoMessage() {} 2058 2059func (x *FaceAnnotation_Landmark) ProtoReflect() protoreflect.Message { 2060 mi := &file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[22] 2061 if protoimpl.UnsafeEnabled && x != nil { 2062 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2063 if ms.LoadMessageInfo() == nil { 2064 ms.StoreMessageInfo(mi) 2065 } 2066 return ms 2067 } 2068 return mi.MessageOf(x) 2069} 2070 2071// Deprecated: Use FaceAnnotation_Landmark.ProtoReflect.Descriptor instead. 2072func (*FaceAnnotation_Landmark) Descriptor() ([]byte, []int) { 2073 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP(), []int{3, 0} 2074} 2075 2076func (x *FaceAnnotation_Landmark) GetType() FaceAnnotation_Landmark_Type { 2077 if x != nil { 2078 return x.Type 2079 } 2080 return FaceAnnotation_Landmark_UNKNOWN_LANDMARK 2081} 2082 2083func (x *FaceAnnotation_Landmark) GetPosition() *Position { 2084 if x != nil { 2085 return x.Position 2086 } 2087 return nil 2088} 2089 2090var File_google_cloud_vision_v1p1beta1_image_annotator_proto protoreflect.FileDescriptor 2091 2092var file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDesc = []byte{ 2093 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 2094 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 2095 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x2e, 2096 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2097 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2098 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 2099 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 2100 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 2101 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 2102 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 2103 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 2104 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 2105 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6f, 0x6d, 2106 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 2107 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 2108 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 2109 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 2110 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 2111 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x77, 2112 0x65, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 2113 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 2114 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 2115 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x70, 2116 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 2117 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfa, 2118 0x02, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 2119 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2120 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 2121 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 2122 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 2123 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 2124 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 2125 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 2126 0x65, 0x6c, 0x22, 0xf6, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 2127 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 2128 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 2129 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 2130 0x4b, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x12, 0x0a, 2131 0x0e, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 2132 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 2133 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 2134 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 2135 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 2136 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x46, 0x45, 0x5f, 2137 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 2138 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, 2139 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x4f, 0x50, 2140 0x5f, 0x48, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x45, 0x42, 0x5f, 2141 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x22, 0x4e, 0x0a, 0x0b, 0x49, 2142 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x63, 2143 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 2144 0x09, 0x52, 0x0b, 0x67, 0x63, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1b, 2145 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 2146 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x22, 0x65, 0x0a, 0x05, 0x49, 2147 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 2148 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x42, 2149 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 2150 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 2151 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 2152 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 2153 0x63, 0x65, 0x22, 0xa5, 0x10, 0x0a, 0x0e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 2154 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 2155 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 2156 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 2157 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 2158 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 2159 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x66, 0x64, 0x5f, 0x62, 0x6f, 2160 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 2161 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2162 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2163 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0e, 2164 0x66, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x54, 2165 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 2166 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2167 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2168 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2169 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 2170 0x61, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 2171 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 2172 0x67, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x6e, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 2173 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x61, 0x6e, 0x41, 0x6e, 0x67, 0x6c, 0x65, 2174 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x06, 2175 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 2176 0x31, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 2177 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x64, 2178 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 2179 0x63, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 2180 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 2181 0x28, 0x02, 0x52, 0x15, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 2182 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x6a, 0x6f, 0x79, 2183 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 2184 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2185 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2186 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0d, 0x6a, 0x6f, 2187 0x79, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x56, 0x0a, 0x11, 0x73, 2188 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 2189 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2190 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2191 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 2192 0x64, 0x52, 0x10, 0x73, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 2193 0x6f, 0x6f, 0x64, 0x12, 0x54, 0x0a, 0x10, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6b, 2194 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 2195 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 2196 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 2197 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0f, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 2198 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x75, 0x72, 2199 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 2200 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2201 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2202 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 2203 0x64, 0x52, 0x12, 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 2204 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x65, 2205 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 2206 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2207 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 2208 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 2209 0x6f, 0x64, 0x52, 0x16, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 2210 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x58, 0x0a, 0x12, 0x62, 0x6c, 2211 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 2212 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2213 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2214 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 2215 0x64, 0x52, 0x11, 0x62, 0x6c, 0x75, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 2216 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x77, 0x65, 0x61, 0x72, 2217 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 2218 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2219 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2220 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x12, 0x68, 0x65, 2221 0x61, 0x64, 0x77, 0x65, 0x61, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 2222 0x1a, 0xd7, 0x07, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x4f, 0x0a, 2223 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 2224 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 2225 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 2226 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 2227 0x61, 0x72, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 2228 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 2229 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2230 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2231 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 2232 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 2233 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 0x4b, 2234 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x01, 2235 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x02, 0x12, 2236 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 2237 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 2238 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 2239 0x4f, 0x57, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 2240 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x05, 0x12, 2241 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x49, 0x47, 0x48, 2242 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4d, 2243 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4e, 0x5f, 2244 0x45, 0x59, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x54, 2245 0x49, 0x50, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4c, 0x49, 2246 0x50, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x50, 2247 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x55, 0x54, 0x48, 0x5f, 0x4c, 0x45, 0x46, 0x54, 2248 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, 0x55, 0x54, 0x48, 0x5f, 0x52, 0x49, 0x47, 0x48, 2249 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x45, 0x4e, 2250 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 2251 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 2252 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 2253 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 2254 0x4d, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x45, 2255 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 2256 0x41, 0x52, 0x59, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 2257 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x12, 2258 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 0x54, 2259 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x13, 0x12, 0x18, 2260 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 2261 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 2262 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 2263 0x52, 0x59, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 2264 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x16, 2265 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 2266 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x17, 0x12, 2267 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 2268 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x45, 2269 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 2270 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c, 0x52, 2271 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 2272 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x1a, 0x12, 0x14, 0x0a, 2273 0x10, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 2274 0x4e, 0x10, 0x1b, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x41, 0x52, 2275 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 0x4e, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x45, 2276 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x50, 0x55, 0x50, 0x49, 0x4c, 0x10, 0x1d, 0x12, 0x13, 2277 0x0a, 0x0f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x50, 0x55, 0x50, 0x49, 2278 0x4c, 0x10, 0x1e, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, 0x52, 0x45, 0x48, 0x45, 0x41, 0x44, 0x5f, 2279 0x47, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x4c, 0x41, 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 2280 0x49, 0x4e, 0x5f, 0x47, 0x4e, 0x41, 0x54, 0x48, 0x49, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x14, 0x0a, 2281 0x10, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 2282 0x4e, 0x10, 0x21, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 2283 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x22, 0x22, 0x3c, 0x0a, 0x0c, 0x4c, 0x6f, 2284 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 2285 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 2286 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 2287 0x52, 0x06, 0x6c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x22, 0x57, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 2288 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 2289 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 2290 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 2291 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 2292 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 2293 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 2294 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 2295 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 2296 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 2297 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2298 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 2299 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 2300 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 2301 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 2302 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 2303 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 2304 0x70, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 2305 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 2306 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 2307 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2308 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 2309 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x6f, 2310 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 2311 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 2312 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 2313 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 2314 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 2315 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2316 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 2317 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 2318 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xe3, 2319 0x02, 0x0a, 0x14, 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 2320 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x05, 0x61, 0x64, 0x75, 0x6c, 0x74, 2321 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2322 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2323 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 2324 0x64, 0x52, 0x05, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6f, 2325 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2326 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 2327 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 2328 0x6f, 0x64, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x6f, 0x66, 0x12, 0x43, 0x0a, 0x07, 0x6d, 0x65, 0x64, 2329 0x69, 0x63, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 2330 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 2331 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 2332 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x45, 2333 0x0a, 0x08, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 2334 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2335 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2336 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x08, 0x76, 0x69, 0x6f, 2337 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x79, 0x18, 0x09, 0x20, 2338 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2339 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 2340 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x04, 2341 0x72, 0x61, 0x63, 0x79, 0x22, 0x77, 0x0a, 0x0b, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 2342 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 2343 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2344 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x09, 0x6d, 2345 0x69, 0x6e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 2346 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 2347 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 2348 0x6e, 0x67, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x22, 0x72, 0x0a, 2349 0x09, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6f, 2350 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2351 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 2352 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 2353 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 2354 0x78, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 2355 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 2356 0x6e, 0x22, 0x5c, 0x0a, 0x18, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 2357 0x6f, 0x72, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 2358 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 2359 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 2360 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 2361 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x22, 2362 0x73, 0x0a, 0x0f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 2363 0x65, 0x73, 0x12, 0x60, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x63, 2364 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 2365 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 2366 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x6d, 0x69, 2367 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 2368 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 2369 0x6c, 0x6f, 0x72, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 2370 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 2371 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2372 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 2373 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 2374 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 2375 0x6f, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 2376 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 2377 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 2378 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 2379 0x52, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x63, 2380 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x13, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 2381 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0a, 0x63, 2382 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 2383 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 2384 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2385 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 2386 0x6e, 0x74, 0x73, 0x22, 0x36, 0x0a, 0x0f, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 2387 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 2388 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0c, 0x61, 2389 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x57, 2390 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 2391 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x65, 0x6f, 2392 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 2393 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 2394 0x73, 0x22, 0x69, 0x0a, 0x13, 0x54, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 2395 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x26, 0x65, 0x6e, 0x61, 0x62, 2396 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 2397 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 2398 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 2399 0x54, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 2400 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xae, 0x03, 0x0a, 2401 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4e, 0x0a, 2402 0x0d, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x74, 0x18, 0x01, 2403 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2404 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2405 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 2406 0x52, 0x0b, 0x6c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 2407 0x0e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 2408 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x48, 2409 0x69, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x11, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 2410 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 2411 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 2412 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2413 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 2414 0x0f, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 2415 0x12, 0x63, 0x0a, 0x14, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 2416 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 2417 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 2418 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 2419 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 2420 0x73, 0x52, 0x12, 0x77, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 2421 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x15, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 2422 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 2423 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2424 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2425 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 2426 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x13, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 2427 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe8, 0x01, 2428 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 2429 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 2430 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2431 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 2432 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 2433 0x67, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 2434 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2435 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2436 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 2437 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 2438 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 2439 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 2440 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 2441 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 2442 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x8b, 0x08, 0x0a, 0x15, 0x41, 0x6e, 0x6e, 2443 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2444 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 2445 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 2446 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 2447 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 2448 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x61, 0x63, 2449 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x14, 2450 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 2451 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 2452 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 2453 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 2454 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6c, 0x61, 0x6e, 2455 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2456 0x12, 0x5a, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 2457 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 2458 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 2459 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 2460 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 2461 0x6f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x11, 2462 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2463 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2464 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 2465 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 2466 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x41, 2467 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x74, 0x65, 2468 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 2469 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2470 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2471 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 2472 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 2473 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x74, 2474 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 2475 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2476 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 2477 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 2478 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 2479 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x16, 0x73, 0x61, 0x66, 0x65, 0x5f, 2480 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 2481 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2482 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 2483 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 2484 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x73, 0x61, 2485 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 2486 0x6f, 0x6e, 0x12, 0x6e, 0x0a, 0x1b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 2487 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 2488 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2489 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 2490 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 2491 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 2492 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 2493 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x15, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 2494 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 2495 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2496 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2497 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 2498 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 2499 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x77, 0x65, 2500 0x62, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 2501 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2502 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 2503 0x31, 0x2e, 0x57, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 2504 0x77, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 2505 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 2506 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 2507 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x72, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 2508 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 2509 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 2510 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2511 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2512 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 2513 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 2514 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x71, 0x0a, 0x1b, 0x42, 0x61, 2515 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 2516 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x72, 0x65, 0x73, 2517 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 2518 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 2519 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 2520 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2521 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2a, 0x65, 0x0a, 2522 0x0a, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 2523 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x59, 2524 0x5f, 0x55, 0x4e, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 2525 0x4e, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x4f, 0x53, 2526 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 2527 0x59, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x4b, 0x45, 2528 0x4c, 0x59, 0x10, 0x05, 0x32, 0xc9, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 2529 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0xbe, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 2530 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 2531 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 2532 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2533 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 2534 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 2535 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 2536 0x2e, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 2537 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 2538 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 2539 0x2f, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 2540 0x73, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 2541 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x76, 0xca, 0x41, 0x15, 0x76, 0x69, 0x73, 2542 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 2543 0x6f, 0x6d, 0xd2, 0x41, 0x5b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 2544 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 2545 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 2546 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 2547 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 2548 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 2549 0x42, 0x82, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2550 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 2551 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x13, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 2552 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 2553 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 2554 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2555 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 2556 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69, 2557 0x6f, 0x6e, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2558} 2559 2560var ( 2561 file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescOnce sync.Once 2562 file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescData = file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDesc 2563) 2564 2565func file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescGZIP() []byte { 2566 file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescOnce.Do(func() { 2567 file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescData) 2568 }) 2569 return file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDescData 2570} 2571 2572var file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2573var file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes = make([]protoimpl.MessageInfo, 23) 2574var file_google_cloud_vision_v1p1beta1_image_annotator_proto_goTypes = []interface{}{ 2575 (Likelihood)(0), // 0: google.cloud.vision.v1p1beta1.Likelihood 2576 (Feature_Type)(0), // 1: google.cloud.vision.v1p1beta1.Feature.Type 2577 (FaceAnnotation_Landmark_Type)(0), // 2: google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark.Type 2578 (*Feature)(nil), // 3: google.cloud.vision.v1p1beta1.Feature 2579 (*ImageSource)(nil), // 4: google.cloud.vision.v1p1beta1.ImageSource 2580 (*Image)(nil), // 5: google.cloud.vision.v1p1beta1.Image 2581 (*FaceAnnotation)(nil), // 6: google.cloud.vision.v1p1beta1.FaceAnnotation 2582 (*LocationInfo)(nil), // 7: google.cloud.vision.v1p1beta1.LocationInfo 2583 (*Property)(nil), // 8: google.cloud.vision.v1p1beta1.Property 2584 (*EntityAnnotation)(nil), // 9: google.cloud.vision.v1p1beta1.EntityAnnotation 2585 (*SafeSearchAnnotation)(nil), // 10: google.cloud.vision.v1p1beta1.SafeSearchAnnotation 2586 (*LatLongRect)(nil), // 11: google.cloud.vision.v1p1beta1.LatLongRect 2587 (*ColorInfo)(nil), // 12: google.cloud.vision.v1p1beta1.ColorInfo 2588 (*DominantColorsAnnotation)(nil), // 13: google.cloud.vision.v1p1beta1.DominantColorsAnnotation 2589 (*ImageProperties)(nil), // 14: google.cloud.vision.v1p1beta1.ImageProperties 2590 (*CropHint)(nil), // 15: google.cloud.vision.v1p1beta1.CropHint 2591 (*CropHintsAnnotation)(nil), // 16: google.cloud.vision.v1p1beta1.CropHintsAnnotation 2592 (*CropHintsParams)(nil), // 17: google.cloud.vision.v1p1beta1.CropHintsParams 2593 (*WebDetectionParams)(nil), // 18: google.cloud.vision.v1p1beta1.WebDetectionParams 2594 (*TextDetectionParams)(nil), // 19: google.cloud.vision.v1p1beta1.TextDetectionParams 2595 (*ImageContext)(nil), // 20: google.cloud.vision.v1p1beta1.ImageContext 2596 (*AnnotateImageRequest)(nil), // 21: google.cloud.vision.v1p1beta1.AnnotateImageRequest 2597 (*AnnotateImageResponse)(nil), // 22: google.cloud.vision.v1p1beta1.AnnotateImageResponse 2598 (*BatchAnnotateImagesRequest)(nil), // 23: google.cloud.vision.v1p1beta1.BatchAnnotateImagesRequest 2599 (*BatchAnnotateImagesResponse)(nil), // 24: google.cloud.vision.v1p1beta1.BatchAnnotateImagesResponse 2600 (*FaceAnnotation_Landmark)(nil), // 25: google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark 2601 (*BoundingPoly)(nil), // 26: google.cloud.vision.v1p1beta1.BoundingPoly 2602 (*latlng.LatLng)(nil), // 27: google.type.LatLng 2603 (*color.Color)(nil), // 28: google.type.Color 2604 (*TextAnnotation)(nil), // 29: google.cloud.vision.v1p1beta1.TextAnnotation 2605 (*WebDetection)(nil), // 30: google.cloud.vision.v1p1beta1.WebDetection 2606 (*status.Status)(nil), // 31: google.rpc.Status 2607 (*Position)(nil), // 32: google.cloud.vision.v1p1beta1.Position 2608} 2609var file_google_cloud_vision_v1p1beta1_image_annotator_proto_depIdxs = []int32{ 2610 1, // 0: google.cloud.vision.v1p1beta1.Feature.type:type_name -> google.cloud.vision.v1p1beta1.Feature.Type 2611 4, // 1: google.cloud.vision.v1p1beta1.Image.source:type_name -> google.cloud.vision.v1p1beta1.ImageSource 2612 26, // 2: google.cloud.vision.v1p1beta1.FaceAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p1beta1.BoundingPoly 2613 26, // 3: google.cloud.vision.v1p1beta1.FaceAnnotation.fd_bounding_poly:type_name -> google.cloud.vision.v1p1beta1.BoundingPoly 2614 25, // 4: google.cloud.vision.v1p1beta1.FaceAnnotation.landmarks:type_name -> google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark 2615 0, // 5: google.cloud.vision.v1p1beta1.FaceAnnotation.joy_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2616 0, // 6: google.cloud.vision.v1p1beta1.FaceAnnotation.sorrow_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2617 0, // 7: google.cloud.vision.v1p1beta1.FaceAnnotation.anger_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2618 0, // 8: google.cloud.vision.v1p1beta1.FaceAnnotation.surprise_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2619 0, // 9: google.cloud.vision.v1p1beta1.FaceAnnotation.under_exposed_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2620 0, // 10: google.cloud.vision.v1p1beta1.FaceAnnotation.blurred_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2621 0, // 11: google.cloud.vision.v1p1beta1.FaceAnnotation.headwear_likelihood:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2622 27, // 12: google.cloud.vision.v1p1beta1.LocationInfo.lat_lng:type_name -> google.type.LatLng 2623 26, // 13: google.cloud.vision.v1p1beta1.EntityAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p1beta1.BoundingPoly 2624 7, // 14: google.cloud.vision.v1p1beta1.EntityAnnotation.locations:type_name -> google.cloud.vision.v1p1beta1.LocationInfo 2625 8, // 15: google.cloud.vision.v1p1beta1.EntityAnnotation.properties:type_name -> google.cloud.vision.v1p1beta1.Property 2626 0, // 16: google.cloud.vision.v1p1beta1.SafeSearchAnnotation.adult:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2627 0, // 17: google.cloud.vision.v1p1beta1.SafeSearchAnnotation.spoof:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2628 0, // 18: google.cloud.vision.v1p1beta1.SafeSearchAnnotation.medical:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2629 0, // 19: google.cloud.vision.v1p1beta1.SafeSearchAnnotation.violence:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2630 0, // 20: google.cloud.vision.v1p1beta1.SafeSearchAnnotation.racy:type_name -> google.cloud.vision.v1p1beta1.Likelihood 2631 27, // 21: google.cloud.vision.v1p1beta1.LatLongRect.min_lat_lng:type_name -> google.type.LatLng 2632 27, // 22: google.cloud.vision.v1p1beta1.LatLongRect.max_lat_lng:type_name -> google.type.LatLng 2633 28, // 23: google.cloud.vision.v1p1beta1.ColorInfo.color:type_name -> google.type.Color 2634 12, // 24: google.cloud.vision.v1p1beta1.DominantColorsAnnotation.colors:type_name -> google.cloud.vision.v1p1beta1.ColorInfo 2635 13, // 25: google.cloud.vision.v1p1beta1.ImageProperties.dominant_colors:type_name -> google.cloud.vision.v1p1beta1.DominantColorsAnnotation 2636 26, // 26: google.cloud.vision.v1p1beta1.CropHint.bounding_poly:type_name -> google.cloud.vision.v1p1beta1.BoundingPoly 2637 15, // 27: google.cloud.vision.v1p1beta1.CropHintsAnnotation.crop_hints:type_name -> google.cloud.vision.v1p1beta1.CropHint 2638 11, // 28: google.cloud.vision.v1p1beta1.ImageContext.lat_long_rect:type_name -> google.cloud.vision.v1p1beta1.LatLongRect 2639 17, // 29: google.cloud.vision.v1p1beta1.ImageContext.crop_hints_params:type_name -> google.cloud.vision.v1p1beta1.CropHintsParams 2640 18, // 30: google.cloud.vision.v1p1beta1.ImageContext.web_detection_params:type_name -> google.cloud.vision.v1p1beta1.WebDetectionParams 2641 19, // 31: google.cloud.vision.v1p1beta1.ImageContext.text_detection_params:type_name -> google.cloud.vision.v1p1beta1.TextDetectionParams 2642 5, // 32: google.cloud.vision.v1p1beta1.AnnotateImageRequest.image:type_name -> google.cloud.vision.v1p1beta1.Image 2643 3, // 33: google.cloud.vision.v1p1beta1.AnnotateImageRequest.features:type_name -> google.cloud.vision.v1p1beta1.Feature 2644 20, // 34: google.cloud.vision.v1p1beta1.AnnotateImageRequest.image_context:type_name -> google.cloud.vision.v1p1beta1.ImageContext 2645 6, // 35: google.cloud.vision.v1p1beta1.AnnotateImageResponse.face_annotations:type_name -> google.cloud.vision.v1p1beta1.FaceAnnotation 2646 9, // 36: google.cloud.vision.v1p1beta1.AnnotateImageResponse.landmark_annotations:type_name -> google.cloud.vision.v1p1beta1.EntityAnnotation 2647 9, // 37: google.cloud.vision.v1p1beta1.AnnotateImageResponse.logo_annotations:type_name -> google.cloud.vision.v1p1beta1.EntityAnnotation 2648 9, // 38: google.cloud.vision.v1p1beta1.AnnotateImageResponse.label_annotations:type_name -> google.cloud.vision.v1p1beta1.EntityAnnotation 2649 9, // 39: google.cloud.vision.v1p1beta1.AnnotateImageResponse.text_annotations:type_name -> google.cloud.vision.v1p1beta1.EntityAnnotation 2650 29, // 40: google.cloud.vision.v1p1beta1.AnnotateImageResponse.full_text_annotation:type_name -> google.cloud.vision.v1p1beta1.TextAnnotation 2651 10, // 41: google.cloud.vision.v1p1beta1.AnnotateImageResponse.safe_search_annotation:type_name -> google.cloud.vision.v1p1beta1.SafeSearchAnnotation 2652 14, // 42: google.cloud.vision.v1p1beta1.AnnotateImageResponse.image_properties_annotation:type_name -> google.cloud.vision.v1p1beta1.ImageProperties 2653 16, // 43: google.cloud.vision.v1p1beta1.AnnotateImageResponse.crop_hints_annotation:type_name -> google.cloud.vision.v1p1beta1.CropHintsAnnotation 2654 30, // 44: google.cloud.vision.v1p1beta1.AnnotateImageResponse.web_detection:type_name -> google.cloud.vision.v1p1beta1.WebDetection 2655 31, // 45: google.cloud.vision.v1p1beta1.AnnotateImageResponse.error:type_name -> google.rpc.Status 2656 21, // 46: google.cloud.vision.v1p1beta1.BatchAnnotateImagesRequest.requests:type_name -> google.cloud.vision.v1p1beta1.AnnotateImageRequest 2657 22, // 47: google.cloud.vision.v1p1beta1.BatchAnnotateImagesResponse.responses:type_name -> google.cloud.vision.v1p1beta1.AnnotateImageResponse 2658 2, // 48: google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark.type:type_name -> google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark.Type 2659 32, // 49: google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark.position:type_name -> google.cloud.vision.v1p1beta1.Position 2660 23, // 50: google.cloud.vision.v1p1beta1.ImageAnnotator.BatchAnnotateImages:input_type -> google.cloud.vision.v1p1beta1.BatchAnnotateImagesRequest 2661 24, // 51: google.cloud.vision.v1p1beta1.ImageAnnotator.BatchAnnotateImages:output_type -> google.cloud.vision.v1p1beta1.BatchAnnotateImagesResponse 2662 51, // [51:52] is the sub-list for method output_type 2663 50, // [50:51] is the sub-list for method input_type 2664 50, // [50:50] is the sub-list for extension type_name 2665 50, // [50:50] is the sub-list for extension extendee 2666 0, // [0:50] is the sub-list for field type_name 2667} 2668 2669func init() { file_google_cloud_vision_v1p1beta1_image_annotator_proto_init() } 2670func file_google_cloud_vision_v1p1beta1_image_annotator_proto_init() { 2671 if File_google_cloud_vision_v1p1beta1_image_annotator_proto != nil { 2672 return 2673 } 2674 file_google_cloud_vision_v1p1beta1_geometry_proto_init() 2675 file_google_cloud_vision_v1p1beta1_text_annotation_proto_init() 2676 file_google_cloud_vision_v1p1beta1_web_detection_proto_init() 2677 if !protoimpl.UnsafeEnabled { 2678 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2679 switch v := v.(*Feature); i { 2680 case 0: 2681 return &v.state 2682 case 1: 2683 return &v.sizeCache 2684 case 2: 2685 return &v.unknownFields 2686 default: 2687 return nil 2688 } 2689 } 2690 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2691 switch v := v.(*ImageSource); i { 2692 case 0: 2693 return &v.state 2694 case 1: 2695 return &v.sizeCache 2696 case 2: 2697 return &v.unknownFields 2698 default: 2699 return nil 2700 } 2701 } 2702 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2703 switch v := v.(*Image); i { 2704 case 0: 2705 return &v.state 2706 case 1: 2707 return &v.sizeCache 2708 case 2: 2709 return &v.unknownFields 2710 default: 2711 return nil 2712 } 2713 } 2714 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2715 switch v := v.(*FaceAnnotation); i { 2716 case 0: 2717 return &v.state 2718 case 1: 2719 return &v.sizeCache 2720 case 2: 2721 return &v.unknownFields 2722 default: 2723 return nil 2724 } 2725 } 2726 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2727 switch v := v.(*LocationInfo); i { 2728 case 0: 2729 return &v.state 2730 case 1: 2731 return &v.sizeCache 2732 case 2: 2733 return &v.unknownFields 2734 default: 2735 return nil 2736 } 2737 } 2738 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2739 switch v := v.(*Property); i { 2740 case 0: 2741 return &v.state 2742 case 1: 2743 return &v.sizeCache 2744 case 2: 2745 return &v.unknownFields 2746 default: 2747 return nil 2748 } 2749 } 2750 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2751 switch v := v.(*EntityAnnotation); i { 2752 case 0: 2753 return &v.state 2754 case 1: 2755 return &v.sizeCache 2756 case 2: 2757 return &v.unknownFields 2758 default: 2759 return nil 2760 } 2761 } 2762 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2763 switch v := v.(*SafeSearchAnnotation); i { 2764 case 0: 2765 return &v.state 2766 case 1: 2767 return &v.sizeCache 2768 case 2: 2769 return &v.unknownFields 2770 default: 2771 return nil 2772 } 2773 } 2774 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2775 switch v := v.(*LatLongRect); i { 2776 case 0: 2777 return &v.state 2778 case 1: 2779 return &v.sizeCache 2780 case 2: 2781 return &v.unknownFields 2782 default: 2783 return nil 2784 } 2785 } 2786 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2787 switch v := v.(*ColorInfo); i { 2788 case 0: 2789 return &v.state 2790 case 1: 2791 return &v.sizeCache 2792 case 2: 2793 return &v.unknownFields 2794 default: 2795 return nil 2796 } 2797 } 2798 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2799 switch v := v.(*DominantColorsAnnotation); i { 2800 case 0: 2801 return &v.state 2802 case 1: 2803 return &v.sizeCache 2804 case 2: 2805 return &v.unknownFields 2806 default: 2807 return nil 2808 } 2809 } 2810 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2811 switch v := v.(*ImageProperties); i { 2812 case 0: 2813 return &v.state 2814 case 1: 2815 return &v.sizeCache 2816 case 2: 2817 return &v.unknownFields 2818 default: 2819 return nil 2820 } 2821 } 2822 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2823 switch v := v.(*CropHint); i { 2824 case 0: 2825 return &v.state 2826 case 1: 2827 return &v.sizeCache 2828 case 2: 2829 return &v.unknownFields 2830 default: 2831 return nil 2832 } 2833 } 2834 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2835 switch v := v.(*CropHintsAnnotation); i { 2836 case 0: 2837 return &v.state 2838 case 1: 2839 return &v.sizeCache 2840 case 2: 2841 return &v.unknownFields 2842 default: 2843 return nil 2844 } 2845 } 2846 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2847 switch v := v.(*CropHintsParams); i { 2848 case 0: 2849 return &v.state 2850 case 1: 2851 return &v.sizeCache 2852 case 2: 2853 return &v.unknownFields 2854 default: 2855 return nil 2856 } 2857 } 2858 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2859 switch v := v.(*WebDetectionParams); i { 2860 case 0: 2861 return &v.state 2862 case 1: 2863 return &v.sizeCache 2864 case 2: 2865 return &v.unknownFields 2866 default: 2867 return nil 2868 } 2869 } 2870 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2871 switch v := v.(*TextDetectionParams); i { 2872 case 0: 2873 return &v.state 2874 case 1: 2875 return &v.sizeCache 2876 case 2: 2877 return &v.unknownFields 2878 default: 2879 return nil 2880 } 2881 } 2882 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2883 switch v := v.(*ImageContext); i { 2884 case 0: 2885 return &v.state 2886 case 1: 2887 return &v.sizeCache 2888 case 2: 2889 return &v.unknownFields 2890 default: 2891 return nil 2892 } 2893 } 2894 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2895 switch v := v.(*AnnotateImageRequest); i { 2896 case 0: 2897 return &v.state 2898 case 1: 2899 return &v.sizeCache 2900 case 2: 2901 return &v.unknownFields 2902 default: 2903 return nil 2904 } 2905 } 2906 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2907 switch v := v.(*AnnotateImageResponse); i { 2908 case 0: 2909 return &v.state 2910 case 1: 2911 return &v.sizeCache 2912 case 2: 2913 return &v.unknownFields 2914 default: 2915 return nil 2916 } 2917 } 2918 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2919 switch v := v.(*BatchAnnotateImagesRequest); i { 2920 case 0: 2921 return &v.state 2922 case 1: 2923 return &v.sizeCache 2924 case 2: 2925 return &v.unknownFields 2926 default: 2927 return nil 2928 } 2929 } 2930 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 2931 switch v := v.(*BatchAnnotateImagesResponse); i { 2932 case 0: 2933 return &v.state 2934 case 1: 2935 return &v.sizeCache 2936 case 2: 2937 return &v.unknownFields 2938 default: 2939 return nil 2940 } 2941 } 2942 file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 2943 switch v := v.(*FaceAnnotation_Landmark); i { 2944 case 0: 2945 return &v.state 2946 case 1: 2947 return &v.sizeCache 2948 case 2: 2949 return &v.unknownFields 2950 default: 2951 return nil 2952 } 2953 } 2954 } 2955 type x struct{} 2956 out := protoimpl.TypeBuilder{ 2957 File: protoimpl.DescBuilder{ 2958 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2959 RawDescriptor: file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDesc, 2960 NumEnums: 3, 2961 NumMessages: 23, 2962 NumExtensions: 0, 2963 NumServices: 1, 2964 }, 2965 GoTypes: file_google_cloud_vision_v1p1beta1_image_annotator_proto_goTypes, 2966 DependencyIndexes: file_google_cloud_vision_v1p1beta1_image_annotator_proto_depIdxs, 2967 EnumInfos: file_google_cloud_vision_v1p1beta1_image_annotator_proto_enumTypes, 2968 MessageInfos: file_google_cloud_vision_v1p1beta1_image_annotator_proto_msgTypes, 2969 }.Build() 2970 File_google_cloud_vision_v1p1beta1_image_annotator_proto = out.File 2971 file_google_cloud_vision_v1p1beta1_image_annotator_proto_rawDesc = nil 2972 file_google_cloud_vision_v1p1beta1_image_annotator_proto_goTypes = nil 2973 file_google_cloud_vision_v1p1beta1_image_annotator_proto_depIdxs = nil 2974} 2975 2976// Reference imports to suppress errors if they are not otherwise used. 2977var _ context.Context 2978var _ grpc.ClientConnInterface 2979 2980// This is a compile-time assertion to ensure that this generated file 2981// is compatible with the grpc package it is being compiled against. 2982const _ = grpc.SupportPackageIsVersion6 2983 2984// ImageAnnotatorClient is the client API for ImageAnnotator service. 2985// 2986// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2987type ImageAnnotatorClient interface { 2988 // Run image detection and annotation for a batch of images. 2989 BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) 2990} 2991 2992type imageAnnotatorClient struct { 2993 cc grpc.ClientConnInterface 2994} 2995 2996func NewImageAnnotatorClient(cc grpc.ClientConnInterface) ImageAnnotatorClient { 2997 return &imageAnnotatorClient{cc} 2998} 2999 3000func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) { 3001 out := new(BatchAnnotateImagesResponse) 3002 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages", in, out, opts...) 3003 if err != nil { 3004 return nil, err 3005 } 3006 return out, nil 3007} 3008 3009// ImageAnnotatorServer is the server API for ImageAnnotator service. 3010type ImageAnnotatorServer interface { 3011 // Run image detection and annotation for a batch of images. 3012 BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) 3013} 3014 3015// UnimplementedImageAnnotatorServer can be embedded to have forward compatible implementations. 3016type UnimplementedImageAnnotatorServer struct { 3017} 3018 3019func (*UnimplementedImageAnnotatorServer) BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) { 3020 return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateImages not implemented") 3021} 3022 3023func RegisterImageAnnotatorServer(s *grpc.Server, srv ImageAnnotatorServer) { 3024 s.RegisterService(&_ImageAnnotator_serviceDesc, srv) 3025} 3026 3027func _ImageAnnotator_BatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3028 in := new(BatchAnnotateImagesRequest) 3029 if err := dec(in); err != nil { 3030 return nil, err 3031 } 3032 if interceptor == nil { 3033 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, in) 3034 } 3035 info := &grpc.UnaryServerInfo{ 3036 Server: srv, 3037 FullMethod: "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages", 3038 } 3039 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3040 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, req.(*BatchAnnotateImagesRequest)) 3041 } 3042 return interceptor(ctx, in, info, handler) 3043} 3044 3045var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{ 3046 ServiceName: "google.cloud.vision.v1p1beta1.ImageAnnotator", 3047 HandlerType: (*ImageAnnotatorServer)(nil), 3048 Methods: []grpc.MethodDesc{ 3049 { 3050 MethodName: "BatchAnnotateImages", 3051 Handler: _ImageAnnotator_BatchAnnotateImages_Handler, 3052 }, 3053 }, 3054 Streams: []grpc.StreamDesc{}, 3055 Metadata: "google/cloud/vision/v1p1beta1/image_annotator.proto", 3056} 3057