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