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/v1p4beta1/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 longrunning "google.golang.org/genproto/googleapis/longrunning" 31 status "google.golang.org/genproto/googleapis/rpc/status" 32 color "google.golang.org/genproto/googleapis/type/color" 33 latlng "google.golang.org/genproto/googleapis/type/latlng" 34 grpc "google.golang.org/grpc" 35 codes "google.golang.org/grpc/codes" 36 status1 "google.golang.org/grpc/status" 37 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 38 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 39 _ "google.golang.org/protobuf/types/known/fieldmaskpb" 40 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 41) 42 43const ( 44 // Verify that this generated code is sufficiently up-to-date. 45 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 46 // Verify that runtime/protoimpl is sufficiently up-to-date. 47 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 48) 49 50// A bucketized representation of likelihood, which is intended to give clients 51// highly stable results across model upgrades. 52type Likelihood int32 53 54const ( 55 // Unknown likelihood. 56 Likelihood_UNKNOWN Likelihood = 0 57 // It is very unlikely. 58 Likelihood_VERY_UNLIKELY Likelihood = 1 59 // It is unlikely. 60 Likelihood_UNLIKELY Likelihood = 2 61 // It is possible. 62 Likelihood_POSSIBLE Likelihood = 3 63 // It is likely. 64 Likelihood_LIKELY Likelihood = 4 65 // It is very likely. 66 Likelihood_VERY_LIKELY Likelihood = 5 67) 68 69// Enum value maps for Likelihood. 70var ( 71 Likelihood_name = map[int32]string{ 72 0: "UNKNOWN", 73 1: "VERY_UNLIKELY", 74 2: "UNLIKELY", 75 3: "POSSIBLE", 76 4: "LIKELY", 77 5: "VERY_LIKELY", 78 } 79 Likelihood_value = map[string]int32{ 80 "UNKNOWN": 0, 81 "VERY_UNLIKELY": 1, 82 "UNLIKELY": 2, 83 "POSSIBLE": 3, 84 "LIKELY": 4, 85 "VERY_LIKELY": 5, 86 } 87) 88 89func (x Likelihood) Enum() *Likelihood { 90 p := new(Likelihood) 91 *p = x 92 return p 93} 94 95func (x Likelihood) String() string { 96 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 97} 98 99func (Likelihood) Descriptor() protoreflect.EnumDescriptor { 100 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[0].Descriptor() 101} 102 103func (Likelihood) Type() protoreflect.EnumType { 104 return &file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[0] 105} 106 107func (x Likelihood) Number() protoreflect.EnumNumber { 108 return protoreflect.EnumNumber(x) 109} 110 111// Deprecated: Use Likelihood.Descriptor instead. 112func (Likelihood) EnumDescriptor() ([]byte, []int) { 113 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{0} 114} 115 116// Type of Google Cloud Vision API feature to be extracted. 117type Feature_Type int32 118 119const ( 120 // Unspecified feature type. 121 Feature_TYPE_UNSPECIFIED Feature_Type = 0 122 // Run face detection. 123 Feature_FACE_DETECTION Feature_Type = 1 124 // Run landmark detection. 125 Feature_LANDMARK_DETECTION Feature_Type = 2 126 // Run logo detection. 127 Feature_LOGO_DETECTION Feature_Type = 3 128 // Run label detection. 129 Feature_LABEL_DETECTION Feature_Type = 4 130 // Run text detection / optical character recognition (OCR). Text detection 131 // is optimized for areas of text within a larger image; if the image is 132 // a document, use `DOCUMENT_TEXT_DETECTION` instead. 133 Feature_TEXT_DETECTION Feature_Type = 5 134 // Run dense text document OCR. Takes precedence when both 135 // `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present. 136 Feature_DOCUMENT_TEXT_DETECTION Feature_Type = 11 137 // Run Safe Search to detect potentially unsafe 138 // or undesirable content. 139 Feature_SAFE_SEARCH_DETECTION Feature_Type = 6 140 // Compute a set of image properties, such as the 141 // image's dominant colors. 142 Feature_IMAGE_PROPERTIES Feature_Type = 7 143 // Run crop hints. 144 Feature_CROP_HINTS Feature_Type = 9 145 // Run web detection. 146 Feature_WEB_DETECTION Feature_Type = 10 147 // Run Product Search. 148 Feature_PRODUCT_SEARCH Feature_Type = 12 149 // Run localizer for object detection. 150 Feature_OBJECT_LOCALIZATION Feature_Type = 19 151) 152 153// Enum value maps for Feature_Type. 154var ( 155 Feature_Type_name = map[int32]string{ 156 0: "TYPE_UNSPECIFIED", 157 1: "FACE_DETECTION", 158 2: "LANDMARK_DETECTION", 159 3: "LOGO_DETECTION", 160 4: "LABEL_DETECTION", 161 5: "TEXT_DETECTION", 162 11: "DOCUMENT_TEXT_DETECTION", 163 6: "SAFE_SEARCH_DETECTION", 164 7: "IMAGE_PROPERTIES", 165 9: "CROP_HINTS", 166 10: "WEB_DETECTION", 167 12: "PRODUCT_SEARCH", 168 19: "OBJECT_LOCALIZATION", 169 } 170 Feature_Type_value = map[string]int32{ 171 "TYPE_UNSPECIFIED": 0, 172 "FACE_DETECTION": 1, 173 "LANDMARK_DETECTION": 2, 174 "LOGO_DETECTION": 3, 175 "LABEL_DETECTION": 4, 176 "TEXT_DETECTION": 5, 177 "DOCUMENT_TEXT_DETECTION": 11, 178 "SAFE_SEARCH_DETECTION": 6, 179 "IMAGE_PROPERTIES": 7, 180 "CROP_HINTS": 9, 181 "WEB_DETECTION": 10, 182 "PRODUCT_SEARCH": 12, 183 "OBJECT_LOCALIZATION": 19, 184 } 185) 186 187func (x Feature_Type) Enum() *Feature_Type { 188 p := new(Feature_Type) 189 *p = x 190 return p 191} 192 193func (x Feature_Type) String() string { 194 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 195} 196 197func (Feature_Type) Descriptor() protoreflect.EnumDescriptor { 198 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[1].Descriptor() 199} 200 201func (Feature_Type) Type() protoreflect.EnumType { 202 return &file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[1] 203} 204 205func (x Feature_Type) Number() protoreflect.EnumNumber { 206 return protoreflect.EnumNumber(x) 207} 208 209// Deprecated: Use Feature_Type.Descriptor instead. 210func (Feature_Type) EnumDescriptor() ([]byte, []int) { 211 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{0, 0} 212} 213 214// Face landmark (feature) type. 215// Left and right are defined from the vantage of the viewer of the image 216// without considering mirror projections typical of photos. So, `LEFT_EYE`, 217// typically, is the person's right eye. 218type FaceAnnotation_Landmark_Type int32 219 220const ( 221 // Unknown face landmark detected. Should not be filled. 222 FaceAnnotation_Landmark_UNKNOWN_LANDMARK FaceAnnotation_Landmark_Type = 0 223 // Left eye. 224 FaceAnnotation_Landmark_LEFT_EYE FaceAnnotation_Landmark_Type = 1 225 // Right eye. 226 FaceAnnotation_Landmark_RIGHT_EYE FaceAnnotation_Landmark_Type = 2 227 // Left of left eyebrow. 228 FaceAnnotation_Landmark_LEFT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 3 229 // Right of left eyebrow. 230 FaceAnnotation_Landmark_RIGHT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 4 231 // Left of right eyebrow. 232 FaceAnnotation_Landmark_LEFT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 5 233 // Right of right eyebrow. 234 FaceAnnotation_Landmark_RIGHT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 6 235 // Midpoint between eyes. 236 FaceAnnotation_Landmark_MIDPOINT_BETWEEN_EYES FaceAnnotation_Landmark_Type = 7 237 // Nose tip. 238 FaceAnnotation_Landmark_NOSE_TIP FaceAnnotation_Landmark_Type = 8 239 // Upper lip. 240 FaceAnnotation_Landmark_UPPER_LIP FaceAnnotation_Landmark_Type = 9 241 // Lower lip. 242 FaceAnnotation_Landmark_LOWER_LIP FaceAnnotation_Landmark_Type = 10 243 // Mouth left. 244 FaceAnnotation_Landmark_MOUTH_LEFT FaceAnnotation_Landmark_Type = 11 245 // Mouth right. 246 FaceAnnotation_Landmark_MOUTH_RIGHT FaceAnnotation_Landmark_Type = 12 247 // Mouth center. 248 FaceAnnotation_Landmark_MOUTH_CENTER FaceAnnotation_Landmark_Type = 13 249 // Nose, bottom right. 250 FaceAnnotation_Landmark_NOSE_BOTTOM_RIGHT FaceAnnotation_Landmark_Type = 14 251 // Nose, bottom left. 252 FaceAnnotation_Landmark_NOSE_BOTTOM_LEFT FaceAnnotation_Landmark_Type = 15 253 // Nose, bottom center. 254 FaceAnnotation_Landmark_NOSE_BOTTOM_CENTER FaceAnnotation_Landmark_Type = 16 255 // Left eye, top boundary. 256 FaceAnnotation_Landmark_LEFT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 17 257 // Left eye, right corner. 258 FaceAnnotation_Landmark_LEFT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 18 259 // Left eye, bottom boundary. 260 FaceAnnotation_Landmark_LEFT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 19 261 // Left eye, left corner. 262 FaceAnnotation_Landmark_LEFT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 20 263 // Right eye, top boundary. 264 FaceAnnotation_Landmark_RIGHT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 21 265 // Right eye, right corner. 266 FaceAnnotation_Landmark_RIGHT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 22 267 // Right eye, bottom boundary. 268 FaceAnnotation_Landmark_RIGHT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 23 269 // Right eye, left corner. 270 FaceAnnotation_Landmark_RIGHT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 24 271 // Left eyebrow, upper midpoint. 272 FaceAnnotation_Landmark_LEFT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 25 273 // Right eyebrow, upper midpoint. 274 FaceAnnotation_Landmark_RIGHT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 26 275 // Left ear tragion. 276 FaceAnnotation_Landmark_LEFT_EAR_TRAGION FaceAnnotation_Landmark_Type = 27 277 // Right ear tragion. 278 FaceAnnotation_Landmark_RIGHT_EAR_TRAGION FaceAnnotation_Landmark_Type = 28 279 // Left eye pupil. 280 FaceAnnotation_Landmark_LEFT_EYE_PUPIL FaceAnnotation_Landmark_Type = 29 281 // Right eye pupil. 282 FaceAnnotation_Landmark_RIGHT_EYE_PUPIL FaceAnnotation_Landmark_Type = 30 283 // Forehead glabella. 284 FaceAnnotation_Landmark_FOREHEAD_GLABELLA FaceAnnotation_Landmark_Type = 31 285 // Chin gnathion. 286 FaceAnnotation_Landmark_CHIN_GNATHION FaceAnnotation_Landmark_Type = 32 287 // Chin left gonion. 288 FaceAnnotation_Landmark_CHIN_LEFT_GONION FaceAnnotation_Landmark_Type = 33 289 // Chin right gonion. 290 FaceAnnotation_Landmark_CHIN_RIGHT_GONION FaceAnnotation_Landmark_Type = 34 291) 292 293// Enum value maps for FaceAnnotation_Landmark_Type. 294var ( 295 FaceAnnotation_Landmark_Type_name = map[int32]string{ 296 0: "UNKNOWN_LANDMARK", 297 1: "LEFT_EYE", 298 2: "RIGHT_EYE", 299 3: "LEFT_OF_LEFT_EYEBROW", 300 4: "RIGHT_OF_LEFT_EYEBROW", 301 5: "LEFT_OF_RIGHT_EYEBROW", 302 6: "RIGHT_OF_RIGHT_EYEBROW", 303 7: "MIDPOINT_BETWEEN_EYES", 304 8: "NOSE_TIP", 305 9: "UPPER_LIP", 306 10: "LOWER_LIP", 307 11: "MOUTH_LEFT", 308 12: "MOUTH_RIGHT", 309 13: "MOUTH_CENTER", 310 14: "NOSE_BOTTOM_RIGHT", 311 15: "NOSE_BOTTOM_LEFT", 312 16: "NOSE_BOTTOM_CENTER", 313 17: "LEFT_EYE_TOP_BOUNDARY", 314 18: "LEFT_EYE_RIGHT_CORNER", 315 19: "LEFT_EYE_BOTTOM_BOUNDARY", 316 20: "LEFT_EYE_LEFT_CORNER", 317 21: "RIGHT_EYE_TOP_BOUNDARY", 318 22: "RIGHT_EYE_RIGHT_CORNER", 319 23: "RIGHT_EYE_BOTTOM_BOUNDARY", 320 24: "RIGHT_EYE_LEFT_CORNER", 321 25: "LEFT_EYEBROW_UPPER_MIDPOINT", 322 26: "RIGHT_EYEBROW_UPPER_MIDPOINT", 323 27: "LEFT_EAR_TRAGION", 324 28: "RIGHT_EAR_TRAGION", 325 29: "LEFT_EYE_PUPIL", 326 30: "RIGHT_EYE_PUPIL", 327 31: "FOREHEAD_GLABELLA", 328 32: "CHIN_GNATHION", 329 33: "CHIN_LEFT_GONION", 330 34: "CHIN_RIGHT_GONION", 331 } 332 FaceAnnotation_Landmark_Type_value = map[string]int32{ 333 "UNKNOWN_LANDMARK": 0, 334 "LEFT_EYE": 1, 335 "RIGHT_EYE": 2, 336 "LEFT_OF_LEFT_EYEBROW": 3, 337 "RIGHT_OF_LEFT_EYEBROW": 4, 338 "LEFT_OF_RIGHT_EYEBROW": 5, 339 "RIGHT_OF_RIGHT_EYEBROW": 6, 340 "MIDPOINT_BETWEEN_EYES": 7, 341 "NOSE_TIP": 8, 342 "UPPER_LIP": 9, 343 "LOWER_LIP": 10, 344 "MOUTH_LEFT": 11, 345 "MOUTH_RIGHT": 12, 346 "MOUTH_CENTER": 13, 347 "NOSE_BOTTOM_RIGHT": 14, 348 "NOSE_BOTTOM_LEFT": 15, 349 "NOSE_BOTTOM_CENTER": 16, 350 "LEFT_EYE_TOP_BOUNDARY": 17, 351 "LEFT_EYE_RIGHT_CORNER": 18, 352 "LEFT_EYE_BOTTOM_BOUNDARY": 19, 353 "LEFT_EYE_LEFT_CORNER": 20, 354 "RIGHT_EYE_TOP_BOUNDARY": 21, 355 "RIGHT_EYE_RIGHT_CORNER": 22, 356 "RIGHT_EYE_BOTTOM_BOUNDARY": 23, 357 "RIGHT_EYE_LEFT_CORNER": 24, 358 "LEFT_EYEBROW_UPPER_MIDPOINT": 25, 359 "RIGHT_EYEBROW_UPPER_MIDPOINT": 26, 360 "LEFT_EAR_TRAGION": 27, 361 "RIGHT_EAR_TRAGION": 28, 362 "LEFT_EYE_PUPIL": 29, 363 "RIGHT_EYE_PUPIL": 30, 364 "FOREHEAD_GLABELLA": 31, 365 "CHIN_GNATHION": 32, 366 "CHIN_LEFT_GONION": 33, 367 "CHIN_RIGHT_GONION": 34, 368 } 369) 370 371func (x FaceAnnotation_Landmark_Type) Enum() *FaceAnnotation_Landmark_Type { 372 p := new(FaceAnnotation_Landmark_Type) 373 *p = x 374 return p 375} 376 377func (x FaceAnnotation_Landmark_Type) String() string { 378 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 379} 380 381func (FaceAnnotation_Landmark_Type) Descriptor() protoreflect.EnumDescriptor { 382 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[2].Descriptor() 383} 384 385func (FaceAnnotation_Landmark_Type) Type() protoreflect.EnumType { 386 return &file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[2] 387} 388 389func (x FaceAnnotation_Landmark_Type) Number() protoreflect.EnumNumber { 390 return protoreflect.EnumNumber(x) 391} 392 393// Deprecated: Use FaceAnnotation_Landmark_Type.Descriptor instead. 394func (FaceAnnotation_Landmark_Type) EnumDescriptor() ([]byte, []int) { 395 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{3, 0, 0} 396} 397 398// Batch operation states. 399type OperationMetadata_State int32 400 401const ( 402 // Invalid. 403 OperationMetadata_STATE_UNSPECIFIED OperationMetadata_State = 0 404 // Request is received. 405 OperationMetadata_CREATED OperationMetadata_State = 1 406 // Request is actively being processed. 407 OperationMetadata_RUNNING OperationMetadata_State = 2 408 // The batch processing is done. 409 OperationMetadata_DONE OperationMetadata_State = 3 410 // The batch processing was cancelled. 411 OperationMetadata_CANCELLED OperationMetadata_State = 4 412) 413 414// Enum value maps for OperationMetadata_State. 415var ( 416 OperationMetadata_State_name = map[int32]string{ 417 0: "STATE_UNSPECIFIED", 418 1: "CREATED", 419 2: "RUNNING", 420 3: "DONE", 421 4: "CANCELLED", 422 } 423 OperationMetadata_State_value = map[string]int32{ 424 "STATE_UNSPECIFIED": 0, 425 "CREATED": 1, 426 "RUNNING": 2, 427 "DONE": 3, 428 "CANCELLED": 4, 429 } 430) 431 432func (x OperationMetadata_State) Enum() *OperationMetadata_State { 433 p := new(OperationMetadata_State) 434 *p = x 435 return p 436} 437 438func (x OperationMetadata_State) String() string { 439 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 440} 441 442func (OperationMetadata_State) Descriptor() protoreflect.EnumDescriptor { 443 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[3].Descriptor() 444} 445 446func (OperationMetadata_State) Type() protoreflect.EnumType { 447 return &file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes[3] 448} 449 450func (x OperationMetadata_State) Number() protoreflect.EnumNumber { 451 return protoreflect.EnumNumber(x) 452} 453 454// Deprecated: Use OperationMetadata_State.Descriptor instead. 455func (OperationMetadata_State) EnumDescriptor() ([]byte, []int) { 456 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{38, 0} 457} 458 459// The type of Google Cloud Vision API detection to perform, and the maximum 460// number of results to return for that type. Multiple `Feature` objects can 461// be specified in the `features` list. 462type Feature struct { 463 state protoimpl.MessageState 464 sizeCache protoimpl.SizeCache 465 unknownFields protoimpl.UnknownFields 466 467 // The feature type. 468 Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p4beta1.Feature_Type" json:"type,omitempty"` 469 // Maximum number of results of this type. Does not apply to 470 // `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`. 471 MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"` 472 // Model to use for the feature. 473 // Supported values: "builtin/stable" (the default if unset) and 474 // "builtin/latest". 475 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 476} 477 478func (x *Feature) Reset() { 479 *x = Feature{} 480 if protoimpl.UnsafeEnabled { 481 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[0] 482 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 483 ms.StoreMessageInfo(mi) 484 } 485} 486 487func (x *Feature) String() string { 488 return protoimpl.X.MessageStringOf(x) 489} 490 491func (*Feature) ProtoMessage() {} 492 493func (x *Feature) ProtoReflect() protoreflect.Message { 494 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[0] 495 if protoimpl.UnsafeEnabled && x != nil { 496 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 497 if ms.LoadMessageInfo() == nil { 498 ms.StoreMessageInfo(mi) 499 } 500 return ms 501 } 502 return mi.MessageOf(x) 503} 504 505// Deprecated: Use Feature.ProtoReflect.Descriptor instead. 506func (*Feature) Descriptor() ([]byte, []int) { 507 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{0} 508} 509 510func (x *Feature) GetType() Feature_Type { 511 if x != nil { 512 return x.Type 513 } 514 return Feature_TYPE_UNSPECIFIED 515} 516 517func (x *Feature) GetMaxResults() int32 { 518 if x != nil { 519 return x.MaxResults 520 } 521 return 0 522} 523 524func (x *Feature) GetModel() string { 525 if x != nil { 526 return x.Model 527 } 528 return "" 529} 530 531// External image source (Google Cloud Storage or web URL image location). 532type ImageSource struct { 533 state protoimpl.MessageState 534 sizeCache protoimpl.SizeCache 535 unknownFields protoimpl.UnknownFields 536 537 // **Use `image_uri` instead.** 538 // 539 // The Google Cloud Storage URI of the form 540 // `gs://bucket_name/object_name`. Object versioning is not supported. See 541 // [Google Cloud Storage Request 542 // URIs](https://cloud.google.com/storage/docs/reference-uris) for more info. 543 GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"` 544 // The URI of the source image. Can be either: 545 // 546 // 1. A Google Cloud Storage URI of the form 547 // `gs://bucket_name/object_name`. Object versioning is not supported. See 548 // [Google Cloud Storage Request 549 // URIs](https://cloud.google.com/storage/docs/reference-uris) for more 550 // info. 551 // 552 // 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images from 553 // HTTP/HTTPS URLs, Google cannot guarantee that the request will be 554 // completed. Your request may fail if the specified host denies the 555 // request (e.g. due to request throttling or DOS prevention), or if Google 556 // throttles requests to the site for abuse prevention. You should not 557 // depend on externally-hosted images for production applications. 558 // 559 // When both `gcs_image_uri` and `image_uri` are specified, `image_uri` takes 560 // precedence. 561 ImageUri string `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` 562} 563 564func (x *ImageSource) Reset() { 565 *x = ImageSource{} 566 if protoimpl.UnsafeEnabled { 567 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[1] 568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 569 ms.StoreMessageInfo(mi) 570 } 571} 572 573func (x *ImageSource) String() string { 574 return protoimpl.X.MessageStringOf(x) 575} 576 577func (*ImageSource) ProtoMessage() {} 578 579func (x *ImageSource) ProtoReflect() protoreflect.Message { 580 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[1] 581 if protoimpl.UnsafeEnabled && x != nil { 582 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 583 if ms.LoadMessageInfo() == nil { 584 ms.StoreMessageInfo(mi) 585 } 586 return ms 587 } 588 return mi.MessageOf(x) 589} 590 591// Deprecated: Use ImageSource.ProtoReflect.Descriptor instead. 592func (*ImageSource) Descriptor() ([]byte, []int) { 593 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{1} 594} 595 596func (x *ImageSource) GetGcsImageUri() string { 597 if x != nil { 598 return x.GcsImageUri 599 } 600 return "" 601} 602 603func (x *ImageSource) GetImageUri() string { 604 if x != nil { 605 return x.ImageUri 606 } 607 return "" 608} 609 610// Client image to perform Google Cloud Vision API tasks over. 611type Image struct { 612 state protoimpl.MessageState 613 sizeCache protoimpl.SizeCache 614 unknownFields protoimpl.UnknownFields 615 616 // Image content, represented as a stream of bytes. 617 // Note: As with all `bytes` fields, protobuffers use a pure binary 618 // representation, whereas JSON representations use base64. 619 Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` 620 // Google Cloud Storage image location, or publicly-accessible image 621 // URL. If both `content` and `source` are provided for an image, `content` 622 // takes precedence and is used to perform the image annotation request. 623 Source *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` 624} 625 626func (x *Image) Reset() { 627 *x = Image{} 628 if protoimpl.UnsafeEnabled { 629 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[2] 630 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 631 ms.StoreMessageInfo(mi) 632 } 633} 634 635func (x *Image) String() string { 636 return protoimpl.X.MessageStringOf(x) 637} 638 639func (*Image) ProtoMessage() {} 640 641func (x *Image) ProtoReflect() protoreflect.Message { 642 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[2] 643 if protoimpl.UnsafeEnabled && x != nil { 644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 645 if ms.LoadMessageInfo() == nil { 646 ms.StoreMessageInfo(mi) 647 } 648 return ms 649 } 650 return mi.MessageOf(x) 651} 652 653// Deprecated: Use Image.ProtoReflect.Descriptor instead. 654func (*Image) Descriptor() ([]byte, []int) { 655 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{2} 656} 657 658func (x *Image) GetContent() []byte { 659 if x != nil { 660 return x.Content 661 } 662 return nil 663} 664 665func (x *Image) GetSource() *ImageSource { 666 if x != nil { 667 return x.Source 668 } 669 return nil 670} 671 672// A face annotation object contains the results of face detection. 673type FaceAnnotation struct { 674 state protoimpl.MessageState 675 sizeCache protoimpl.SizeCache 676 unknownFields protoimpl.UnknownFields 677 678 // The bounding polygon around the face. The coordinates of the bounding box 679 // are in the original image's scale. 680 // The bounding box is computed to "frame" the face in accordance with human 681 // expectations. It is based on the landmarker results. 682 // Note that one or more x and/or y coordinates may not be generated in the 683 // `BoundingPoly` (the polygon will be unbounded) if only a partial face 684 // appears in the image to be annotated. 685 BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 686 // The `fd_bounding_poly` bounding polygon is tighter than the 687 // `boundingPoly`, and encloses only the skin part of the face. Typically, it 688 // is used to eliminate the face from any image analysis that detects the 689 // "amount of skin" visible in an image. It is not based on the 690 // landmarker results, only on the initial face detection, hence 691 // the <code>fd</code> (face detection) prefix. 692 FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"` 693 // Detected face landmarks. 694 Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"` 695 // Roll angle, which indicates the amount of clockwise/anti-clockwise rotation 696 // of the face relative to the image vertical about the axis perpendicular to 697 // the face. Range [-180,180]. 698 RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"` 699 // Yaw angle, which indicates the leftward/rightward angle that the face is 700 // pointing relative to the vertical plane perpendicular to the image. Range 701 // [-180,180]. 702 PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"` 703 // Pitch angle, which indicates the upwards/downwards angle that the face is 704 // pointing relative to the image's horizontal plane. Range [-180,180]. 705 TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"` 706 // Detection confidence. Range [0, 1]. 707 DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"` 708 // Face landmarking confidence. Range [0, 1]. 709 LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"` 710 // Joy likelihood. 711 JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"joy_likelihood,omitempty"` 712 // Sorrow likelihood. 713 SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"sorrow_likelihood,omitempty"` 714 // Anger likelihood. 715 AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"anger_likelihood,omitempty"` 716 // Surprise likelihood. 717 SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"surprise_likelihood,omitempty"` 718 // Under-exposed likelihood. 719 UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"under_exposed_likelihood,omitempty"` 720 // Blurred likelihood. 721 BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"blurred_likelihood,omitempty"` 722 // Headwear likelihood. 723 HeadwearLikelihood Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"headwear_likelihood,omitempty"` 724 // Additional recognition information. Only computed if 725 // image_context.face_recognition_params is provided, **and** a match is found 726 // to a [Celebrity][google.cloud.vision.v1p4beta1.Celebrity] in the input 727 // [CelebritySet][google.cloud.vision.v1p4beta1.CelebritySet]. This field is 728 // sorted in order of decreasing confidence values. 729 RecognitionResult []*FaceRecognitionResult `protobuf:"bytes,16,rep,name=recognition_result,json=recognitionResult,proto3" json:"recognition_result,omitempty"` 730} 731 732func (x *FaceAnnotation) Reset() { 733 *x = FaceAnnotation{} 734 if protoimpl.UnsafeEnabled { 735 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[3] 736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 737 ms.StoreMessageInfo(mi) 738 } 739} 740 741func (x *FaceAnnotation) String() string { 742 return protoimpl.X.MessageStringOf(x) 743} 744 745func (*FaceAnnotation) ProtoMessage() {} 746 747func (x *FaceAnnotation) ProtoReflect() protoreflect.Message { 748 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[3] 749 if protoimpl.UnsafeEnabled && x != nil { 750 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 751 if ms.LoadMessageInfo() == nil { 752 ms.StoreMessageInfo(mi) 753 } 754 return ms 755 } 756 return mi.MessageOf(x) 757} 758 759// Deprecated: Use FaceAnnotation.ProtoReflect.Descriptor instead. 760func (*FaceAnnotation) Descriptor() ([]byte, []int) { 761 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{3} 762} 763 764func (x *FaceAnnotation) GetBoundingPoly() *BoundingPoly { 765 if x != nil { 766 return x.BoundingPoly 767 } 768 return nil 769} 770 771func (x *FaceAnnotation) GetFdBoundingPoly() *BoundingPoly { 772 if x != nil { 773 return x.FdBoundingPoly 774 } 775 return nil 776} 777 778func (x *FaceAnnotation) GetLandmarks() []*FaceAnnotation_Landmark { 779 if x != nil { 780 return x.Landmarks 781 } 782 return nil 783} 784 785func (x *FaceAnnotation) GetRollAngle() float32 { 786 if x != nil { 787 return x.RollAngle 788 } 789 return 0 790} 791 792func (x *FaceAnnotation) GetPanAngle() float32 { 793 if x != nil { 794 return x.PanAngle 795 } 796 return 0 797} 798 799func (x *FaceAnnotation) GetTiltAngle() float32 { 800 if x != nil { 801 return x.TiltAngle 802 } 803 return 0 804} 805 806func (x *FaceAnnotation) GetDetectionConfidence() float32 { 807 if x != nil { 808 return x.DetectionConfidence 809 } 810 return 0 811} 812 813func (x *FaceAnnotation) GetLandmarkingConfidence() float32 { 814 if x != nil { 815 return x.LandmarkingConfidence 816 } 817 return 0 818} 819 820func (x *FaceAnnotation) GetJoyLikelihood() Likelihood { 821 if x != nil { 822 return x.JoyLikelihood 823 } 824 return Likelihood_UNKNOWN 825} 826 827func (x *FaceAnnotation) GetSorrowLikelihood() Likelihood { 828 if x != nil { 829 return x.SorrowLikelihood 830 } 831 return Likelihood_UNKNOWN 832} 833 834func (x *FaceAnnotation) GetAngerLikelihood() Likelihood { 835 if x != nil { 836 return x.AngerLikelihood 837 } 838 return Likelihood_UNKNOWN 839} 840 841func (x *FaceAnnotation) GetSurpriseLikelihood() Likelihood { 842 if x != nil { 843 return x.SurpriseLikelihood 844 } 845 return Likelihood_UNKNOWN 846} 847 848func (x *FaceAnnotation) GetUnderExposedLikelihood() Likelihood { 849 if x != nil { 850 return x.UnderExposedLikelihood 851 } 852 return Likelihood_UNKNOWN 853} 854 855func (x *FaceAnnotation) GetBlurredLikelihood() Likelihood { 856 if x != nil { 857 return x.BlurredLikelihood 858 } 859 return Likelihood_UNKNOWN 860} 861 862func (x *FaceAnnotation) GetHeadwearLikelihood() Likelihood { 863 if x != nil { 864 return x.HeadwearLikelihood 865 } 866 return Likelihood_UNKNOWN 867} 868 869func (x *FaceAnnotation) GetRecognitionResult() []*FaceRecognitionResult { 870 if x != nil { 871 return x.RecognitionResult 872 } 873 return nil 874} 875 876// Detected entity location information. 877type LocationInfo struct { 878 state protoimpl.MessageState 879 sizeCache protoimpl.SizeCache 880 unknownFields protoimpl.UnknownFields 881 882 // lat/long location coordinates. 883 LatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"` 884} 885 886func (x *LocationInfo) Reset() { 887 *x = LocationInfo{} 888 if protoimpl.UnsafeEnabled { 889 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[4] 890 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 891 ms.StoreMessageInfo(mi) 892 } 893} 894 895func (x *LocationInfo) String() string { 896 return protoimpl.X.MessageStringOf(x) 897} 898 899func (*LocationInfo) ProtoMessage() {} 900 901func (x *LocationInfo) ProtoReflect() protoreflect.Message { 902 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[4] 903 if protoimpl.UnsafeEnabled && x != nil { 904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 905 if ms.LoadMessageInfo() == nil { 906 ms.StoreMessageInfo(mi) 907 } 908 return ms 909 } 910 return mi.MessageOf(x) 911} 912 913// Deprecated: Use LocationInfo.ProtoReflect.Descriptor instead. 914func (*LocationInfo) Descriptor() ([]byte, []int) { 915 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{4} 916} 917 918func (x *LocationInfo) GetLatLng() *latlng.LatLng { 919 if x != nil { 920 return x.LatLng 921 } 922 return nil 923} 924 925// A `Property` consists of a user-supplied name/value pair. 926type Property struct { 927 state protoimpl.MessageState 928 sizeCache protoimpl.SizeCache 929 unknownFields protoimpl.UnknownFields 930 931 // Name of the property. 932 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 933 // Value of the property. 934 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 935 // Value of numeric properties. 936 Uint64Value uint64 `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` 937} 938 939func (x *Property) Reset() { 940 *x = Property{} 941 if protoimpl.UnsafeEnabled { 942 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[5] 943 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 944 ms.StoreMessageInfo(mi) 945 } 946} 947 948func (x *Property) String() string { 949 return protoimpl.X.MessageStringOf(x) 950} 951 952func (*Property) ProtoMessage() {} 953 954func (x *Property) ProtoReflect() protoreflect.Message { 955 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[5] 956 if protoimpl.UnsafeEnabled && x != nil { 957 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 958 if ms.LoadMessageInfo() == nil { 959 ms.StoreMessageInfo(mi) 960 } 961 return ms 962 } 963 return mi.MessageOf(x) 964} 965 966// Deprecated: Use Property.ProtoReflect.Descriptor instead. 967func (*Property) Descriptor() ([]byte, []int) { 968 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{5} 969} 970 971func (x *Property) GetName() string { 972 if x != nil { 973 return x.Name 974 } 975 return "" 976} 977 978func (x *Property) GetValue() string { 979 if x != nil { 980 return x.Value 981 } 982 return "" 983} 984 985func (x *Property) GetUint64Value() uint64 { 986 if x != nil { 987 return x.Uint64Value 988 } 989 return 0 990} 991 992// Set of detected entity features. 993type EntityAnnotation struct { 994 state protoimpl.MessageState 995 sizeCache protoimpl.SizeCache 996 unknownFields protoimpl.UnknownFields 997 998 // Opaque entity ID. Some IDs may be available in 999 // [Google Knowledge Graph Search 1000 // API](https://developers.google.com/knowledge-graph/). 1001 Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"` 1002 // The language code for the locale in which the entity textual 1003 // `description` is expressed. 1004 Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"` 1005 // Entity textual description, expressed in its `locale` language. 1006 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1007 // Overall score of the result. Range [0, 1]. 1008 Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` 1009 // **Deprecated. Use `score` instead.** 1010 // The accuracy of the entity detection in an image. 1011 // For example, for an image in which the "Eiffel Tower" entity is detected, 1012 // this field represents the confidence that there is a tower in the query 1013 // image. Range [0, 1]. 1014 // 1015 // Deprecated: Do not use. 1016 Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"` 1017 // The relevancy of the ICA (Image Content Annotation) label to the 1018 // image. For example, the relevancy of "tower" is likely higher to an image 1019 // containing the detected "Eiffel Tower" than to an image containing a 1020 // detected distant towering building, even though the confidence that 1021 // there is a tower in each image may be the same. Range [0, 1]. 1022 Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"` 1023 // Image region to which this entity belongs. Not produced 1024 // for `LABEL_DETECTION` features. 1025 BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 1026 // The location information for the detected entity. Multiple 1027 // `LocationInfo` elements can be present because one location may 1028 // indicate the location of the scene in the image, and another location 1029 // may indicate the location of the place where the image was taken. 1030 // Location information is usually present for landmarks. 1031 Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"` 1032 // Some entities may have optional user-supplied `Property` (name/value) 1033 // fields, such a score or string that qualifies the entity. 1034 Properties []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"` 1035} 1036 1037func (x *EntityAnnotation) Reset() { 1038 *x = EntityAnnotation{} 1039 if protoimpl.UnsafeEnabled { 1040 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[6] 1041 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1042 ms.StoreMessageInfo(mi) 1043 } 1044} 1045 1046func (x *EntityAnnotation) String() string { 1047 return protoimpl.X.MessageStringOf(x) 1048} 1049 1050func (*EntityAnnotation) ProtoMessage() {} 1051 1052func (x *EntityAnnotation) ProtoReflect() protoreflect.Message { 1053 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[6] 1054 if protoimpl.UnsafeEnabled && x != nil { 1055 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1056 if ms.LoadMessageInfo() == nil { 1057 ms.StoreMessageInfo(mi) 1058 } 1059 return ms 1060 } 1061 return mi.MessageOf(x) 1062} 1063 1064// Deprecated: Use EntityAnnotation.ProtoReflect.Descriptor instead. 1065func (*EntityAnnotation) Descriptor() ([]byte, []int) { 1066 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{6} 1067} 1068 1069func (x *EntityAnnotation) GetMid() string { 1070 if x != nil { 1071 return x.Mid 1072 } 1073 return "" 1074} 1075 1076func (x *EntityAnnotation) GetLocale() string { 1077 if x != nil { 1078 return x.Locale 1079 } 1080 return "" 1081} 1082 1083func (x *EntityAnnotation) GetDescription() string { 1084 if x != nil { 1085 return x.Description 1086 } 1087 return "" 1088} 1089 1090func (x *EntityAnnotation) GetScore() float32 { 1091 if x != nil { 1092 return x.Score 1093 } 1094 return 0 1095} 1096 1097// Deprecated: Do not use. 1098func (x *EntityAnnotation) GetConfidence() float32 { 1099 if x != nil { 1100 return x.Confidence 1101 } 1102 return 0 1103} 1104 1105func (x *EntityAnnotation) GetTopicality() float32 { 1106 if x != nil { 1107 return x.Topicality 1108 } 1109 return 0 1110} 1111 1112func (x *EntityAnnotation) GetBoundingPoly() *BoundingPoly { 1113 if x != nil { 1114 return x.BoundingPoly 1115 } 1116 return nil 1117} 1118 1119func (x *EntityAnnotation) GetLocations() []*LocationInfo { 1120 if x != nil { 1121 return x.Locations 1122 } 1123 return nil 1124} 1125 1126func (x *EntityAnnotation) GetProperties() []*Property { 1127 if x != nil { 1128 return x.Properties 1129 } 1130 return nil 1131} 1132 1133// Set of detected objects with bounding boxes. 1134type LocalizedObjectAnnotation struct { 1135 state protoimpl.MessageState 1136 sizeCache protoimpl.SizeCache 1137 unknownFields protoimpl.UnknownFields 1138 1139 // Object ID that should align with EntityAnnotation mid. 1140 Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"` 1141 // The BCP-47 language code, such as "en-US" or "sr-Latn". For more 1142 // information, see 1143 // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. 1144 LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 1145 // Object name, expressed in its `language_code` language. 1146 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` 1147 // Score of the result. Range [0, 1]. 1148 Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` 1149 // Image region to which this object belongs. This must be populated. 1150 BoundingPoly *BoundingPoly `protobuf:"bytes,5,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 1151} 1152 1153func (x *LocalizedObjectAnnotation) Reset() { 1154 *x = LocalizedObjectAnnotation{} 1155 if protoimpl.UnsafeEnabled { 1156 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[7] 1157 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1158 ms.StoreMessageInfo(mi) 1159 } 1160} 1161 1162func (x *LocalizedObjectAnnotation) String() string { 1163 return protoimpl.X.MessageStringOf(x) 1164} 1165 1166func (*LocalizedObjectAnnotation) ProtoMessage() {} 1167 1168func (x *LocalizedObjectAnnotation) ProtoReflect() protoreflect.Message { 1169 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[7] 1170 if protoimpl.UnsafeEnabled && x != nil { 1171 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1172 if ms.LoadMessageInfo() == nil { 1173 ms.StoreMessageInfo(mi) 1174 } 1175 return ms 1176 } 1177 return mi.MessageOf(x) 1178} 1179 1180// Deprecated: Use LocalizedObjectAnnotation.ProtoReflect.Descriptor instead. 1181func (*LocalizedObjectAnnotation) Descriptor() ([]byte, []int) { 1182 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{7} 1183} 1184 1185func (x *LocalizedObjectAnnotation) GetMid() string { 1186 if x != nil { 1187 return x.Mid 1188 } 1189 return "" 1190} 1191 1192func (x *LocalizedObjectAnnotation) GetLanguageCode() string { 1193 if x != nil { 1194 return x.LanguageCode 1195 } 1196 return "" 1197} 1198 1199func (x *LocalizedObjectAnnotation) GetName() string { 1200 if x != nil { 1201 return x.Name 1202 } 1203 return "" 1204} 1205 1206func (x *LocalizedObjectAnnotation) GetScore() float32 { 1207 if x != nil { 1208 return x.Score 1209 } 1210 return 0 1211} 1212 1213func (x *LocalizedObjectAnnotation) GetBoundingPoly() *BoundingPoly { 1214 if x != nil { 1215 return x.BoundingPoly 1216 } 1217 return nil 1218} 1219 1220// Set of features pertaining to the image, computed by computer vision 1221// methods over safe-search verticals (for example, adult, spoof, medical, 1222// violence). 1223type SafeSearchAnnotation struct { 1224 state protoimpl.MessageState 1225 sizeCache protoimpl.SizeCache 1226 unknownFields protoimpl.UnknownFields 1227 1228 // Represents the adult content likelihood for the image. Adult content may 1229 // contain elements such as nudity, pornographic images or cartoons, or 1230 // sexual activities. 1231 Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"adult,omitempty"` 1232 // Spoof likelihood. The likelihood that an modification 1233 // was made to the image's canonical version to make it appear 1234 // funny or offensive. 1235 Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"spoof,omitempty"` 1236 // Likelihood that this is a medical image. 1237 Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"medical,omitempty"` 1238 // Likelihood that this image contains violent content. 1239 Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"violence,omitempty"` 1240 // Likelihood that the request image contains racy content. Racy content may 1241 // include (but is not limited to) skimpy or sheer clothing, strategically 1242 // covered nudity, lewd or provocative poses, or close-ups of sensitive 1243 // body areas. 1244 Racy Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p4beta1.Likelihood" json:"racy,omitempty"` 1245} 1246 1247func (x *SafeSearchAnnotation) Reset() { 1248 *x = SafeSearchAnnotation{} 1249 if protoimpl.UnsafeEnabled { 1250 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[8] 1251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1252 ms.StoreMessageInfo(mi) 1253 } 1254} 1255 1256func (x *SafeSearchAnnotation) String() string { 1257 return protoimpl.X.MessageStringOf(x) 1258} 1259 1260func (*SafeSearchAnnotation) ProtoMessage() {} 1261 1262func (x *SafeSearchAnnotation) ProtoReflect() protoreflect.Message { 1263 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[8] 1264 if protoimpl.UnsafeEnabled && x != nil { 1265 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1266 if ms.LoadMessageInfo() == nil { 1267 ms.StoreMessageInfo(mi) 1268 } 1269 return ms 1270 } 1271 return mi.MessageOf(x) 1272} 1273 1274// Deprecated: Use SafeSearchAnnotation.ProtoReflect.Descriptor instead. 1275func (*SafeSearchAnnotation) Descriptor() ([]byte, []int) { 1276 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{8} 1277} 1278 1279func (x *SafeSearchAnnotation) GetAdult() Likelihood { 1280 if x != nil { 1281 return x.Adult 1282 } 1283 return Likelihood_UNKNOWN 1284} 1285 1286func (x *SafeSearchAnnotation) GetSpoof() Likelihood { 1287 if x != nil { 1288 return x.Spoof 1289 } 1290 return Likelihood_UNKNOWN 1291} 1292 1293func (x *SafeSearchAnnotation) GetMedical() Likelihood { 1294 if x != nil { 1295 return x.Medical 1296 } 1297 return Likelihood_UNKNOWN 1298} 1299 1300func (x *SafeSearchAnnotation) GetViolence() Likelihood { 1301 if x != nil { 1302 return x.Violence 1303 } 1304 return Likelihood_UNKNOWN 1305} 1306 1307func (x *SafeSearchAnnotation) GetRacy() Likelihood { 1308 if x != nil { 1309 return x.Racy 1310 } 1311 return Likelihood_UNKNOWN 1312} 1313 1314// Rectangle determined by min and max `LatLng` pairs. 1315type LatLongRect struct { 1316 state protoimpl.MessageState 1317 sizeCache protoimpl.SizeCache 1318 unknownFields protoimpl.UnknownFields 1319 1320 // Min lat/long pair. 1321 MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"` 1322 // Max lat/long pair. 1323 MaxLatLng *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"` 1324} 1325 1326func (x *LatLongRect) Reset() { 1327 *x = LatLongRect{} 1328 if protoimpl.UnsafeEnabled { 1329 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[9] 1330 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1331 ms.StoreMessageInfo(mi) 1332 } 1333} 1334 1335func (x *LatLongRect) String() string { 1336 return protoimpl.X.MessageStringOf(x) 1337} 1338 1339func (*LatLongRect) ProtoMessage() {} 1340 1341func (x *LatLongRect) ProtoReflect() protoreflect.Message { 1342 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[9] 1343 if protoimpl.UnsafeEnabled && x != nil { 1344 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1345 if ms.LoadMessageInfo() == nil { 1346 ms.StoreMessageInfo(mi) 1347 } 1348 return ms 1349 } 1350 return mi.MessageOf(x) 1351} 1352 1353// Deprecated: Use LatLongRect.ProtoReflect.Descriptor instead. 1354func (*LatLongRect) Descriptor() ([]byte, []int) { 1355 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{9} 1356} 1357 1358func (x *LatLongRect) GetMinLatLng() *latlng.LatLng { 1359 if x != nil { 1360 return x.MinLatLng 1361 } 1362 return nil 1363} 1364 1365func (x *LatLongRect) GetMaxLatLng() *latlng.LatLng { 1366 if x != nil { 1367 return x.MaxLatLng 1368 } 1369 return nil 1370} 1371 1372// Color information consists of RGB channels, score, and the fraction of 1373// the image that the color occupies in the image. 1374type ColorInfo struct { 1375 state protoimpl.MessageState 1376 sizeCache protoimpl.SizeCache 1377 unknownFields protoimpl.UnknownFields 1378 1379 // RGB components of the color. 1380 Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"` 1381 // Image-specific score for this color. Value in range [0, 1]. 1382 Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"` 1383 // The fraction of pixels the color occupies in the image. 1384 // Value in range [0, 1]. 1385 PixelFraction float32 `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"` 1386} 1387 1388func (x *ColorInfo) Reset() { 1389 *x = ColorInfo{} 1390 if protoimpl.UnsafeEnabled { 1391 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[10] 1392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1393 ms.StoreMessageInfo(mi) 1394 } 1395} 1396 1397func (x *ColorInfo) String() string { 1398 return protoimpl.X.MessageStringOf(x) 1399} 1400 1401func (*ColorInfo) ProtoMessage() {} 1402 1403func (x *ColorInfo) ProtoReflect() protoreflect.Message { 1404 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[10] 1405 if protoimpl.UnsafeEnabled && x != nil { 1406 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1407 if ms.LoadMessageInfo() == nil { 1408 ms.StoreMessageInfo(mi) 1409 } 1410 return ms 1411 } 1412 return mi.MessageOf(x) 1413} 1414 1415// Deprecated: Use ColorInfo.ProtoReflect.Descriptor instead. 1416func (*ColorInfo) Descriptor() ([]byte, []int) { 1417 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{10} 1418} 1419 1420func (x *ColorInfo) GetColor() *color.Color { 1421 if x != nil { 1422 return x.Color 1423 } 1424 return nil 1425} 1426 1427func (x *ColorInfo) GetScore() float32 { 1428 if x != nil { 1429 return x.Score 1430 } 1431 return 0 1432} 1433 1434func (x *ColorInfo) GetPixelFraction() float32 { 1435 if x != nil { 1436 return x.PixelFraction 1437 } 1438 return 0 1439} 1440 1441// Set of dominant colors and their corresponding scores. 1442type DominantColorsAnnotation struct { 1443 state protoimpl.MessageState 1444 sizeCache protoimpl.SizeCache 1445 unknownFields protoimpl.UnknownFields 1446 1447 // RGB color values with their score and pixel fraction. 1448 Colors []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"` 1449} 1450 1451func (x *DominantColorsAnnotation) Reset() { 1452 *x = DominantColorsAnnotation{} 1453 if protoimpl.UnsafeEnabled { 1454 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[11] 1455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1456 ms.StoreMessageInfo(mi) 1457 } 1458} 1459 1460func (x *DominantColorsAnnotation) String() string { 1461 return protoimpl.X.MessageStringOf(x) 1462} 1463 1464func (*DominantColorsAnnotation) ProtoMessage() {} 1465 1466func (x *DominantColorsAnnotation) ProtoReflect() protoreflect.Message { 1467 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[11] 1468 if protoimpl.UnsafeEnabled && x != nil { 1469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1470 if ms.LoadMessageInfo() == nil { 1471 ms.StoreMessageInfo(mi) 1472 } 1473 return ms 1474 } 1475 return mi.MessageOf(x) 1476} 1477 1478// Deprecated: Use DominantColorsAnnotation.ProtoReflect.Descriptor instead. 1479func (*DominantColorsAnnotation) Descriptor() ([]byte, []int) { 1480 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{11} 1481} 1482 1483func (x *DominantColorsAnnotation) GetColors() []*ColorInfo { 1484 if x != nil { 1485 return x.Colors 1486 } 1487 return nil 1488} 1489 1490// Stores image properties, such as dominant colors. 1491type ImageProperties struct { 1492 state protoimpl.MessageState 1493 sizeCache protoimpl.SizeCache 1494 unknownFields protoimpl.UnknownFields 1495 1496 // If present, dominant colors completed successfully. 1497 DominantColors *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"` 1498} 1499 1500func (x *ImageProperties) Reset() { 1501 *x = ImageProperties{} 1502 if protoimpl.UnsafeEnabled { 1503 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[12] 1504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1505 ms.StoreMessageInfo(mi) 1506 } 1507} 1508 1509func (x *ImageProperties) String() string { 1510 return protoimpl.X.MessageStringOf(x) 1511} 1512 1513func (*ImageProperties) ProtoMessage() {} 1514 1515func (x *ImageProperties) ProtoReflect() protoreflect.Message { 1516 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[12] 1517 if protoimpl.UnsafeEnabled && x != nil { 1518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1519 if ms.LoadMessageInfo() == nil { 1520 ms.StoreMessageInfo(mi) 1521 } 1522 return ms 1523 } 1524 return mi.MessageOf(x) 1525} 1526 1527// Deprecated: Use ImageProperties.ProtoReflect.Descriptor instead. 1528func (*ImageProperties) Descriptor() ([]byte, []int) { 1529 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{12} 1530} 1531 1532func (x *ImageProperties) GetDominantColors() *DominantColorsAnnotation { 1533 if x != nil { 1534 return x.DominantColors 1535 } 1536 return nil 1537} 1538 1539// Single crop hint that is used to generate a new crop when serving an image. 1540type CropHint struct { 1541 state protoimpl.MessageState 1542 sizeCache protoimpl.SizeCache 1543 unknownFields protoimpl.UnknownFields 1544 1545 // The bounding polygon for the crop region. The coordinates of the bounding 1546 // box are in the original image's scale. 1547 BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"` 1548 // Confidence of this being a salient region. Range [0, 1]. 1549 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` 1550 // Fraction of importance of this salient region with respect to the original 1551 // image. 1552 ImportanceFraction float32 `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"` 1553} 1554 1555func (x *CropHint) Reset() { 1556 *x = CropHint{} 1557 if protoimpl.UnsafeEnabled { 1558 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[13] 1559 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1560 ms.StoreMessageInfo(mi) 1561 } 1562} 1563 1564func (x *CropHint) String() string { 1565 return protoimpl.X.MessageStringOf(x) 1566} 1567 1568func (*CropHint) ProtoMessage() {} 1569 1570func (x *CropHint) ProtoReflect() protoreflect.Message { 1571 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[13] 1572 if protoimpl.UnsafeEnabled && x != nil { 1573 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1574 if ms.LoadMessageInfo() == nil { 1575 ms.StoreMessageInfo(mi) 1576 } 1577 return ms 1578 } 1579 return mi.MessageOf(x) 1580} 1581 1582// Deprecated: Use CropHint.ProtoReflect.Descriptor instead. 1583func (*CropHint) Descriptor() ([]byte, []int) { 1584 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{13} 1585} 1586 1587func (x *CropHint) GetBoundingPoly() *BoundingPoly { 1588 if x != nil { 1589 return x.BoundingPoly 1590 } 1591 return nil 1592} 1593 1594func (x *CropHint) GetConfidence() float32 { 1595 if x != nil { 1596 return x.Confidence 1597 } 1598 return 0 1599} 1600 1601func (x *CropHint) GetImportanceFraction() float32 { 1602 if x != nil { 1603 return x.ImportanceFraction 1604 } 1605 return 0 1606} 1607 1608// Set of crop hints that are used to generate new crops when serving images. 1609type CropHintsAnnotation struct { 1610 state protoimpl.MessageState 1611 sizeCache protoimpl.SizeCache 1612 unknownFields protoimpl.UnknownFields 1613 1614 // Crop hint results. 1615 CropHints []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"` 1616} 1617 1618func (x *CropHintsAnnotation) Reset() { 1619 *x = CropHintsAnnotation{} 1620 if protoimpl.UnsafeEnabled { 1621 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[14] 1622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1623 ms.StoreMessageInfo(mi) 1624 } 1625} 1626 1627func (x *CropHintsAnnotation) String() string { 1628 return protoimpl.X.MessageStringOf(x) 1629} 1630 1631func (*CropHintsAnnotation) ProtoMessage() {} 1632 1633func (x *CropHintsAnnotation) ProtoReflect() protoreflect.Message { 1634 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[14] 1635 if protoimpl.UnsafeEnabled && x != nil { 1636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1637 if ms.LoadMessageInfo() == nil { 1638 ms.StoreMessageInfo(mi) 1639 } 1640 return ms 1641 } 1642 return mi.MessageOf(x) 1643} 1644 1645// Deprecated: Use CropHintsAnnotation.ProtoReflect.Descriptor instead. 1646func (*CropHintsAnnotation) Descriptor() ([]byte, []int) { 1647 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{14} 1648} 1649 1650func (x *CropHintsAnnotation) GetCropHints() []*CropHint { 1651 if x != nil { 1652 return x.CropHints 1653 } 1654 return nil 1655} 1656 1657// Parameters for crop hints annotation request. 1658type CropHintsParams struct { 1659 state protoimpl.MessageState 1660 sizeCache protoimpl.SizeCache 1661 unknownFields protoimpl.UnknownFields 1662 1663 // Aspect ratios in floats, representing the ratio of the width to the height 1664 // of the image. For example, if the desired aspect ratio is 4/3, the 1665 // corresponding float value should be 1.33333. If not specified, the 1666 // best possible crop is returned. The number of provided aspect ratios is 1667 // limited to a maximum of 16; any aspect ratios provided after the 16th are 1668 // ignored. 1669 AspectRatios []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"` 1670} 1671 1672func (x *CropHintsParams) Reset() { 1673 *x = CropHintsParams{} 1674 if protoimpl.UnsafeEnabled { 1675 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[15] 1676 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1677 ms.StoreMessageInfo(mi) 1678 } 1679} 1680 1681func (x *CropHintsParams) String() string { 1682 return protoimpl.X.MessageStringOf(x) 1683} 1684 1685func (*CropHintsParams) ProtoMessage() {} 1686 1687func (x *CropHintsParams) ProtoReflect() protoreflect.Message { 1688 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[15] 1689 if protoimpl.UnsafeEnabled && x != nil { 1690 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1691 if ms.LoadMessageInfo() == nil { 1692 ms.StoreMessageInfo(mi) 1693 } 1694 return ms 1695 } 1696 return mi.MessageOf(x) 1697} 1698 1699// Deprecated: Use CropHintsParams.ProtoReflect.Descriptor instead. 1700func (*CropHintsParams) Descriptor() ([]byte, []int) { 1701 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{15} 1702} 1703 1704func (x *CropHintsParams) GetAspectRatios() []float32 { 1705 if x != nil { 1706 return x.AspectRatios 1707 } 1708 return nil 1709} 1710 1711// Parameters for web detection request. 1712type WebDetectionParams struct { 1713 state protoimpl.MessageState 1714 sizeCache protoimpl.SizeCache 1715 unknownFields protoimpl.UnknownFields 1716 1717 // Whether to include results derived from the geo information in the image. 1718 IncludeGeoResults bool `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"` 1719} 1720 1721func (x *WebDetectionParams) Reset() { 1722 *x = WebDetectionParams{} 1723 if protoimpl.UnsafeEnabled { 1724 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[16] 1725 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1726 ms.StoreMessageInfo(mi) 1727 } 1728} 1729 1730func (x *WebDetectionParams) String() string { 1731 return protoimpl.X.MessageStringOf(x) 1732} 1733 1734func (*WebDetectionParams) ProtoMessage() {} 1735 1736func (x *WebDetectionParams) ProtoReflect() protoreflect.Message { 1737 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[16] 1738 if protoimpl.UnsafeEnabled && x != nil { 1739 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1740 if ms.LoadMessageInfo() == nil { 1741 ms.StoreMessageInfo(mi) 1742 } 1743 return ms 1744 } 1745 return mi.MessageOf(x) 1746} 1747 1748// Deprecated: Use WebDetectionParams.ProtoReflect.Descriptor instead. 1749func (*WebDetectionParams) Descriptor() ([]byte, []int) { 1750 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{16} 1751} 1752 1753func (x *WebDetectionParams) GetIncludeGeoResults() bool { 1754 if x != nil { 1755 return x.IncludeGeoResults 1756 } 1757 return false 1758} 1759 1760// Parameters for text detections. This is used to control TEXT_DETECTION and 1761// DOCUMENT_TEXT_DETECTION features. 1762type TextDetectionParams struct { 1763 state protoimpl.MessageState 1764 sizeCache protoimpl.SizeCache 1765 unknownFields protoimpl.UnknownFields 1766 1767 // By default, Cloud Vision API only includes confidence score for 1768 // DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence 1769 // score for TEXT_DETECTION as well. 1770 EnableTextDetectionConfidenceScore bool `protobuf:"varint,9,opt,name=enable_text_detection_confidence_score,json=enableTextDetectionConfidenceScore,proto3" json:"enable_text_detection_confidence_score,omitempty"` 1771} 1772 1773func (x *TextDetectionParams) Reset() { 1774 *x = TextDetectionParams{} 1775 if protoimpl.UnsafeEnabled { 1776 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17] 1777 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1778 ms.StoreMessageInfo(mi) 1779 } 1780} 1781 1782func (x *TextDetectionParams) String() string { 1783 return protoimpl.X.MessageStringOf(x) 1784} 1785 1786func (*TextDetectionParams) ProtoMessage() {} 1787 1788func (x *TextDetectionParams) ProtoReflect() protoreflect.Message { 1789 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17] 1790 if protoimpl.UnsafeEnabled && x != nil { 1791 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1792 if ms.LoadMessageInfo() == nil { 1793 ms.StoreMessageInfo(mi) 1794 } 1795 return ms 1796 } 1797 return mi.MessageOf(x) 1798} 1799 1800// Deprecated: Use TextDetectionParams.ProtoReflect.Descriptor instead. 1801func (*TextDetectionParams) Descriptor() ([]byte, []int) { 1802 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{17} 1803} 1804 1805func (x *TextDetectionParams) GetEnableTextDetectionConfidenceScore() bool { 1806 if x != nil { 1807 return x.EnableTextDetectionConfidenceScore 1808 } 1809 return false 1810} 1811 1812// Image context and/or feature-specific parameters. 1813type ImageContext struct { 1814 state protoimpl.MessageState 1815 sizeCache protoimpl.SizeCache 1816 unknownFields protoimpl.UnknownFields 1817 1818 // Not used. 1819 LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"` 1820 // List of languages to use for TEXT_DETECTION. In most cases, an empty value 1821 // yields the best results since it enables automatic language detection. For 1822 // languages based on the Latin alphabet, setting `language_hints` is not 1823 // needed. In rare cases, when the language of the text in the image is known, 1824 // setting a hint will help get better results (although it will be a 1825 // significant hindrance if the hint is wrong). Text detection returns an 1826 // error if one or more of the specified languages is not one of the 1827 // [supported languages](https://cloud.google.com/vision/docs/languages). 1828 LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"` 1829 // Parameters for crop hints annotation request. 1830 CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"` 1831 // Parameters for face recognition. 1832 FaceRecognitionParams *FaceRecognitionParams `protobuf:"bytes,10,opt,name=face_recognition_params,json=faceRecognitionParams,proto3" json:"face_recognition_params,omitempty"` 1833 // Parameters for product search. 1834 ProductSearchParams *ProductSearchParams `protobuf:"bytes,5,opt,name=product_search_params,json=productSearchParams,proto3" json:"product_search_params,omitempty"` 1835 // Parameters for web detection. 1836 WebDetectionParams *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"` 1837 // Parameters for text detection and document text detection. 1838 TextDetectionParams *TextDetectionParams `protobuf:"bytes,12,opt,name=text_detection_params,json=textDetectionParams,proto3" json:"text_detection_params,omitempty"` 1839} 1840 1841func (x *ImageContext) Reset() { 1842 *x = ImageContext{} 1843 if protoimpl.UnsafeEnabled { 1844 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18] 1845 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1846 ms.StoreMessageInfo(mi) 1847 } 1848} 1849 1850func (x *ImageContext) String() string { 1851 return protoimpl.X.MessageStringOf(x) 1852} 1853 1854func (*ImageContext) ProtoMessage() {} 1855 1856func (x *ImageContext) ProtoReflect() protoreflect.Message { 1857 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18] 1858 if protoimpl.UnsafeEnabled && x != nil { 1859 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1860 if ms.LoadMessageInfo() == nil { 1861 ms.StoreMessageInfo(mi) 1862 } 1863 return ms 1864 } 1865 return mi.MessageOf(x) 1866} 1867 1868// Deprecated: Use ImageContext.ProtoReflect.Descriptor instead. 1869func (*ImageContext) Descriptor() ([]byte, []int) { 1870 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{18} 1871} 1872 1873func (x *ImageContext) GetLatLongRect() *LatLongRect { 1874 if x != nil { 1875 return x.LatLongRect 1876 } 1877 return nil 1878} 1879 1880func (x *ImageContext) GetLanguageHints() []string { 1881 if x != nil { 1882 return x.LanguageHints 1883 } 1884 return nil 1885} 1886 1887func (x *ImageContext) GetCropHintsParams() *CropHintsParams { 1888 if x != nil { 1889 return x.CropHintsParams 1890 } 1891 return nil 1892} 1893 1894func (x *ImageContext) GetFaceRecognitionParams() *FaceRecognitionParams { 1895 if x != nil { 1896 return x.FaceRecognitionParams 1897 } 1898 return nil 1899} 1900 1901func (x *ImageContext) GetProductSearchParams() *ProductSearchParams { 1902 if x != nil { 1903 return x.ProductSearchParams 1904 } 1905 return nil 1906} 1907 1908func (x *ImageContext) GetWebDetectionParams() *WebDetectionParams { 1909 if x != nil { 1910 return x.WebDetectionParams 1911 } 1912 return nil 1913} 1914 1915func (x *ImageContext) GetTextDetectionParams() *TextDetectionParams { 1916 if x != nil { 1917 return x.TextDetectionParams 1918 } 1919 return nil 1920} 1921 1922// Request for performing Google Cloud Vision API tasks over a user-provided 1923// image, with user-requested features, and with context information. 1924type AnnotateImageRequest struct { 1925 state protoimpl.MessageState 1926 sizeCache protoimpl.SizeCache 1927 unknownFields protoimpl.UnknownFields 1928 1929 // The image to be processed. 1930 Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` 1931 // Requested features. 1932 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 1933 // Additional context that may accompany the image. 1934 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 1935} 1936 1937func (x *AnnotateImageRequest) Reset() { 1938 *x = AnnotateImageRequest{} 1939 if protoimpl.UnsafeEnabled { 1940 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19] 1941 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1942 ms.StoreMessageInfo(mi) 1943 } 1944} 1945 1946func (x *AnnotateImageRequest) String() string { 1947 return protoimpl.X.MessageStringOf(x) 1948} 1949 1950func (*AnnotateImageRequest) ProtoMessage() {} 1951 1952func (x *AnnotateImageRequest) ProtoReflect() protoreflect.Message { 1953 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19] 1954 if protoimpl.UnsafeEnabled && x != nil { 1955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1956 if ms.LoadMessageInfo() == nil { 1957 ms.StoreMessageInfo(mi) 1958 } 1959 return ms 1960 } 1961 return mi.MessageOf(x) 1962} 1963 1964// Deprecated: Use AnnotateImageRequest.ProtoReflect.Descriptor instead. 1965func (*AnnotateImageRequest) Descriptor() ([]byte, []int) { 1966 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{19} 1967} 1968 1969func (x *AnnotateImageRequest) GetImage() *Image { 1970 if x != nil { 1971 return x.Image 1972 } 1973 return nil 1974} 1975 1976func (x *AnnotateImageRequest) GetFeatures() []*Feature { 1977 if x != nil { 1978 return x.Features 1979 } 1980 return nil 1981} 1982 1983func (x *AnnotateImageRequest) GetImageContext() *ImageContext { 1984 if x != nil { 1985 return x.ImageContext 1986 } 1987 return nil 1988} 1989 1990// If an image was produced from a file (e.g. a PDF), this message gives 1991// information about the source of that image. 1992type ImageAnnotationContext struct { 1993 state protoimpl.MessageState 1994 sizeCache protoimpl.SizeCache 1995 unknownFields protoimpl.UnknownFields 1996 1997 // The URI of the file used to produce the image. 1998 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 1999 // If the file was a PDF or TIFF, this field gives the page number within 2000 // the file used to produce the image. 2001 PageNumber int32 `protobuf:"varint,2,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"` 2002} 2003 2004func (x *ImageAnnotationContext) Reset() { 2005 *x = ImageAnnotationContext{} 2006 if protoimpl.UnsafeEnabled { 2007 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20] 2008 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2009 ms.StoreMessageInfo(mi) 2010 } 2011} 2012 2013func (x *ImageAnnotationContext) String() string { 2014 return protoimpl.X.MessageStringOf(x) 2015} 2016 2017func (*ImageAnnotationContext) ProtoMessage() {} 2018 2019func (x *ImageAnnotationContext) ProtoReflect() protoreflect.Message { 2020 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20] 2021 if protoimpl.UnsafeEnabled && x != nil { 2022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2023 if ms.LoadMessageInfo() == nil { 2024 ms.StoreMessageInfo(mi) 2025 } 2026 return ms 2027 } 2028 return mi.MessageOf(x) 2029} 2030 2031// Deprecated: Use ImageAnnotationContext.ProtoReflect.Descriptor instead. 2032func (*ImageAnnotationContext) Descriptor() ([]byte, []int) { 2033 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{20} 2034} 2035 2036func (x *ImageAnnotationContext) GetUri() string { 2037 if x != nil { 2038 return x.Uri 2039 } 2040 return "" 2041} 2042 2043func (x *ImageAnnotationContext) GetPageNumber() int32 { 2044 if x != nil { 2045 return x.PageNumber 2046 } 2047 return 0 2048} 2049 2050// Response to an image annotation request. 2051type AnnotateImageResponse struct { 2052 state protoimpl.MessageState 2053 sizeCache protoimpl.SizeCache 2054 unknownFields protoimpl.UnknownFields 2055 2056 // If present, face detection has completed successfully. 2057 FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"` 2058 // If present, landmark detection has completed successfully. 2059 LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"` 2060 // If present, logo detection has completed successfully. 2061 LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"` 2062 // If present, label detection has completed successfully. 2063 LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"` 2064 // If present, localized object detection has completed successfully. 2065 // This will be sorted descending by confidence score. 2066 LocalizedObjectAnnotations []*LocalizedObjectAnnotation `protobuf:"bytes,22,rep,name=localized_object_annotations,json=localizedObjectAnnotations,proto3" json:"localized_object_annotations,omitempty"` 2067 // If present, text (OCR) detection has completed successfully. 2068 TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"` 2069 // If present, text (OCR) detection or document (OCR) text detection has 2070 // completed successfully. 2071 // This annotation provides the structural hierarchy for the OCR detected 2072 // text. 2073 FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"` 2074 // If present, safe-search annotation has completed successfully. 2075 SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"` 2076 // If present, image properties were extracted successfully. 2077 ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"` 2078 // If present, crop hints have completed successfully. 2079 CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"` 2080 // If present, web detection has completed successfully. 2081 WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"` 2082 // If present, product search has completed successfully. 2083 ProductSearchResults *ProductSearchResults `protobuf:"bytes,14,opt,name=product_search_results,json=productSearchResults,proto3" json:"product_search_results,omitempty"` 2084 // If set, represents the error message for the operation. 2085 // Note that filled-in image annotations are guaranteed to be 2086 // correct, even when `error` is set. 2087 Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"` 2088 // If present, contextual information is needed to understand where this image 2089 // comes from. 2090 Context *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context,proto3" json:"context,omitempty"` 2091} 2092 2093func (x *AnnotateImageResponse) Reset() { 2094 *x = AnnotateImageResponse{} 2095 if protoimpl.UnsafeEnabled { 2096 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21] 2097 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2098 ms.StoreMessageInfo(mi) 2099 } 2100} 2101 2102func (x *AnnotateImageResponse) String() string { 2103 return protoimpl.X.MessageStringOf(x) 2104} 2105 2106func (*AnnotateImageResponse) ProtoMessage() {} 2107 2108func (x *AnnotateImageResponse) ProtoReflect() protoreflect.Message { 2109 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21] 2110 if protoimpl.UnsafeEnabled && x != nil { 2111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2112 if ms.LoadMessageInfo() == nil { 2113 ms.StoreMessageInfo(mi) 2114 } 2115 return ms 2116 } 2117 return mi.MessageOf(x) 2118} 2119 2120// Deprecated: Use AnnotateImageResponse.ProtoReflect.Descriptor instead. 2121func (*AnnotateImageResponse) Descriptor() ([]byte, []int) { 2122 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{21} 2123} 2124 2125func (x *AnnotateImageResponse) GetFaceAnnotations() []*FaceAnnotation { 2126 if x != nil { 2127 return x.FaceAnnotations 2128 } 2129 return nil 2130} 2131 2132func (x *AnnotateImageResponse) GetLandmarkAnnotations() []*EntityAnnotation { 2133 if x != nil { 2134 return x.LandmarkAnnotations 2135 } 2136 return nil 2137} 2138 2139func (x *AnnotateImageResponse) GetLogoAnnotations() []*EntityAnnotation { 2140 if x != nil { 2141 return x.LogoAnnotations 2142 } 2143 return nil 2144} 2145 2146func (x *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation { 2147 if x != nil { 2148 return x.LabelAnnotations 2149 } 2150 return nil 2151} 2152 2153func (x *AnnotateImageResponse) GetLocalizedObjectAnnotations() []*LocalizedObjectAnnotation { 2154 if x != nil { 2155 return x.LocalizedObjectAnnotations 2156 } 2157 return nil 2158} 2159 2160func (x *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation { 2161 if x != nil { 2162 return x.TextAnnotations 2163 } 2164 return nil 2165} 2166 2167func (x *AnnotateImageResponse) GetFullTextAnnotation() *TextAnnotation { 2168 if x != nil { 2169 return x.FullTextAnnotation 2170 } 2171 return nil 2172} 2173 2174func (x *AnnotateImageResponse) GetSafeSearchAnnotation() *SafeSearchAnnotation { 2175 if x != nil { 2176 return x.SafeSearchAnnotation 2177 } 2178 return nil 2179} 2180 2181func (x *AnnotateImageResponse) GetImagePropertiesAnnotation() *ImageProperties { 2182 if x != nil { 2183 return x.ImagePropertiesAnnotation 2184 } 2185 return nil 2186} 2187 2188func (x *AnnotateImageResponse) GetCropHintsAnnotation() *CropHintsAnnotation { 2189 if x != nil { 2190 return x.CropHintsAnnotation 2191 } 2192 return nil 2193} 2194 2195func (x *AnnotateImageResponse) GetWebDetection() *WebDetection { 2196 if x != nil { 2197 return x.WebDetection 2198 } 2199 return nil 2200} 2201 2202func (x *AnnotateImageResponse) GetProductSearchResults() *ProductSearchResults { 2203 if x != nil { 2204 return x.ProductSearchResults 2205 } 2206 return nil 2207} 2208 2209func (x *AnnotateImageResponse) GetError() *status.Status { 2210 if x != nil { 2211 return x.Error 2212 } 2213 return nil 2214} 2215 2216func (x *AnnotateImageResponse) GetContext() *ImageAnnotationContext { 2217 if x != nil { 2218 return x.Context 2219 } 2220 return nil 2221} 2222 2223// Multiple image annotation requests are batched into a single service call. 2224type BatchAnnotateImagesRequest struct { 2225 state protoimpl.MessageState 2226 sizeCache protoimpl.SizeCache 2227 unknownFields protoimpl.UnknownFields 2228 2229 // Required. Individual image annotation requests for this batch. 2230 Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2231} 2232 2233func (x *BatchAnnotateImagesRequest) Reset() { 2234 *x = BatchAnnotateImagesRequest{} 2235 if protoimpl.UnsafeEnabled { 2236 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22] 2237 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2238 ms.StoreMessageInfo(mi) 2239 } 2240} 2241 2242func (x *BatchAnnotateImagesRequest) String() string { 2243 return protoimpl.X.MessageStringOf(x) 2244} 2245 2246func (*BatchAnnotateImagesRequest) ProtoMessage() {} 2247 2248func (x *BatchAnnotateImagesRequest) ProtoReflect() protoreflect.Message { 2249 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22] 2250 if protoimpl.UnsafeEnabled && x != nil { 2251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2252 if ms.LoadMessageInfo() == nil { 2253 ms.StoreMessageInfo(mi) 2254 } 2255 return ms 2256 } 2257 return mi.MessageOf(x) 2258} 2259 2260// Deprecated: Use BatchAnnotateImagesRequest.ProtoReflect.Descriptor instead. 2261func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) { 2262 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{22} 2263} 2264 2265func (x *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest { 2266 if x != nil { 2267 return x.Requests 2268 } 2269 return nil 2270} 2271 2272// Response to a batch image annotation request. 2273type BatchAnnotateImagesResponse struct { 2274 state protoimpl.MessageState 2275 sizeCache protoimpl.SizeCache 2276 unknownFields protoimpl.UnknownFields 2277 2278 // Individual responses to image annotation requests within the batch. 2279 Responses []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2280} 2281 2282func (x *BatchAnnotateImagesResponse) Reset() { 2283 *x = BatchAnnotateImagesResponse{} 2284 if protoimpl.UnsafeEnabled { 2285 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23] 2286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2287 ms.StoreMessageInfo(mi) 2288 } 2289} 2290 2291func (x *BatchAnnotateImagesResponse) String() string { 2292 return protoimpl.X.MessageStringOf(x) 2293} 2294 2295func (*BatchAnnotateImagesResponse) ProtoMessage() {} 2296 2297func (x *BatchAnnotateImagesResponse) ProtoReflect() protoreflect.Message { 2298 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23] 2299 if protoimpl.UnsafeEnabled && x != nil { 2300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2301 if ms.LoadMessageInfo() == nil { 2302 ms.StoreMessageInfo(mi) 2303 } 2304 return ms 2305 } 2306 return mi.MessageOf(x) 2307} 2308 2309// Deprecated: Use BatchAnnotateImagesResponse.ProtoReflect.Descriptor instead. 2310func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) { 2311 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{23} 2312} 2313 2314func (x *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse { 2315 if x != nil { 2316 return x.Responses 2317 } 2318 return nil 2319} 2320 2321// A request to annotate one single file, e.g. a PDF, TIFF or GIF file. 2322type AnnotateFileRequest struct { 2323 state protoimpl.MessageState 2324 sizeCache protoimpl.SizeCache 2325 unknownFields protoimpl.UnknownFields 2326 2327 // Required. Information about the input file. 2328 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2329 // Required. Requested features. 2330 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 2331 // Additional context that may accompany the image(s) in the file. 2332 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 2333 // Pages of the file to perform image annotation. 2334 // 2335 // Pages starts from 1, we assume the first page of the file is page 1. 2336 // At most 5 pages are supported per request. Pages can be negative. 2337 // 2338 // Page 1 means the first page. 2339 // Page 2 means the second page. 2340 // Page -1 means the last page. 2341 // Page -2 means the second to the last page. 2342 // 2343 // If the file is GIF instead of PDF or TIFF, page refers to GIF frames. 2344 // 2345 // If this field is empty, by default the service performs image annotation 2346 // for the first 5 pages of the file. 2347 Pages []int32 `protobuf:"varint,4,rep,packed,name=pages,proto3" json:"pages,omitempty"` 2348} 2349 2350func (x *AnnotateFileRequest) Reset() { 2351 *x = AnnotateFileRequest{} 2352 if protoimpl.UnsafeEnabled { 2353 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24] 2354 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2355 ms.StoreMessageInfo(mi) 2356 } 2357} 2358 2359func (x *AnnotateFileRequest) String() string { 2360 return protoimpl.X.MessageStringOf(x) 2361} 2362 2363func (*AnnotateFileRequest) ProtoMessage() {} 2364 2365func (x *AnnotateFileRequest) ProtoReflect() protoreflect.Message { 2366 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24] 2367 if protoimpl.UnsafeEnabled && x != nil { 2368 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2369 if ms.LoadMessageInfo() == nil { 2370 ms.StoreMessageInfo(mi) 2371 } 2372 return ms 2373 } 2374 return mi.MessageOf(x) 2375} 2376 2377// Deprecated: Use AnnotateFileRequest.ProtoReflect.Descriptor instead. 2378func (*AnnotateFileRequest) Descriptor() ([]byte, []int) { 2379 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{24} 2380} 2381 2382func (x *AnnotateFileRequest) GetInputConfig() *InputConfig { 2383 if x != nil { 2384 return x.InputConfig 2385 } 2386 return nil 2387} 2388 2389func (x *AnnotateFileRequest) GetFeatures() []*Feature { 2390 if x != nil { 2391 return x.Features 2392 } 2393 return nil 2394} 2395 2396func (x *AnnotateFileRequest) GetImageContext() *ImageContext { 2397 if x != nil { 2398 return x.ImageContext 2399 } 2400 return nil 2401} 2402 2403func (x *AnnotateFileRequest) GetPages() []int32 { 2404 if x != nil { 2405 return x.Pages 2406 } 2407 return nil 2408} 2409 2410// Response to a single file annotation request. A file may contain one or more 2411// images, which individually have their own responses. 2412type AnnotateFileResponse struct { 2413 state protoimpl.MessageState 2414 sizeCache protoimpl.SizeCache 2415 unknownFields protoimpl.UnknownFields 2416 2417 // Information about the file for which this response is generated. 2418 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2419 // Individual responses to images found within the file. This field will be 2420 // empty if the `error` field is set. 2421 Responses []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses,proto3" json:"responses,omitempty"` 2422 // This field gives the total number of pages in the file. 2423 TotalPages int32 `protobuf:"varint,3,opt,name=total_pages,json=totalPages,proto3" json:"total_pages,omitempty"` 2424 // If set, represents the error message for the failed request. The 2425 // `responses` field will not be set in this case. 2426 Error *status.Status `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` 2427} 2428 2429func (x *AnnotateFileResponse) Reset() { 2430 *x = AnnotateFileResponse{} 2431 if protoimpl.UnsafeEnabled { 2432 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25] 2433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2434 ms.StoreMessageInfo(mi) 2435 } 2436} 2437 2438func (x *AnnotateFileResponse) String() string { 2439 return protoimpl.X.MessageStringOf(x) 2440} 2441 2442func (*AnnotateFileResponse) ProtoMessage() {} 2443 2444func (x *AnnotateFileResponse) ProtoReflect() protoreflect.Message { 2445 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25] 2446 if protoimpl.UnsafeEnabled && x != nil { 2447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2448 if ms.LoadMessageInfo() == nil { 2449 ms.StoreMessageInfo(mi) 2450 } 2451 return ms 2452 } 2453 return mi.MessageOf(x) 2454} 2455 2456// Deprecated: Use AnnotateFileResponse.ProtoReflect.Descriptor instead. 2457func (*AnnotateFileResponse) Descriptor() ([]byte, []int) { 2458 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{25} 2459} 2460 2461func (x *AnnotateFileResponse) GetInputConfig() *InputConfig { 2462 if x != nil { 2463 return x.InputConfig 2464 } 2465 return nil 2466} 2467 2468func (x *AnnotateFileResponse) GetResponses() []*AnnotateImageResponse { 2469 if x != nil { 2470 return x.Responses 2471 } 2472 return nil 2473} 2474 2475func (x *AnnotateFileResponse) GetTotalPages() int32 { 2476 if x != nil { 2477 return x.TotalPages 2478 } 2479 return 0 2480} 2481 2482func (x *AnnotateFileResponse) GetError() *status.Status { 2483 if x != nil { 2484 return x.Error 2485 } 2486 return nil 2487} 2488 2489// A list of requests to annotate files using the BatchAnnotateFiles API. 2490type BatchAnnotateFilesRequest struct { 2491 state protoimpl.MessageState 2492 sizeCache protoimpl.SizeCache 2493 unknownFields protoimpl.UnknownFields 2494 2495 // Required. The list of file annotation requests. Right now we support only 2496 // one AnnotateFileRequest in BatchAnnotateFilesRequest. 2497 Requests []*AnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2498} 2499 2500func (x *BatchAnnotateFilesRequest) Reset() { 2501 *x = BatchAnnotateFilesRequest{} 2502 if protoimpl.UnsafeEnabled { 2503 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26] 2504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2505 ms.StoreMessageInfo(mi) 2506 } 2507} 2508 2509func (x *BatchAnnotateFilesRequest) String() string { 2510 return protoimpl.X.MessageStringOf(x) 2511} 2512 2513func (*BatchAnnotateFilesRequest) ProtoMessage() {} 2514 2515func (x *BatchAnnotateFilesRequest) ProtoReflect() protoreflect.Message { 2516 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26] 2517 if protoimpl.UnsafeEnabled && x != nil { 2518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2519 if ms.LoadMessageInfo() == nil { 2520 ms.StoreMessageInfo(mi) 2521 } 2522 return ms 2523 } 2524 return mi.MessageOf(x) 2525} 2526 2527// Deprecated: Use BatchAnnotateFilesRequest.ProtoReflect.Descriptor instead. 2528func (*BatchAnnotateFilesRequest) Descriptor() ([]byte, []int) { 2529 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{26} 2530} 2531 2532func (x *BatchAnnotateFilesRequest) GetRequests() []*AnnotateFileRequest { 2533 if x != nil { 2534 return x.Requests 2535 } 2536 return nil 2537} 2538 2539// A list of file annotation responses. 2540type BatchAnnotateFilesResponse struct { 2541 state protoimpl.MessageState 2542 sizeCache protoimpl.SizeCache 2543 unknownFields protoimpl.UnknownFields 2544 2545 // The list of file annotation responses, each response corresponding to each 2546 // AnnotateFileRequest in BatchAnnotateFilesRequest. 2547 Responses []*AnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2548} 2549 2550func (x *BatchAnnotateFilesResponse) Reset() { 2551 *x = BatchAnnotateFilesResponse{} 2552 if protoimpl.UnsafeEnabled { 2553 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27] 2554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2555 ms.StoreMessageInfo(mi) 2556 } 2557} 2558 2559func (x *BatchAnnotateFilesResponse) String() string { 2560 return protoimpl.X.MessageStringOf(x) 2561} 2562 2563func (*BatchAnnotateFilesResponse) ProtoMessage() {} 2564 2565func (x *BatchAnnotateFilesResponse) ProtoReflect() protoreflect.Message { 2566 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27] 2567 if protoimpl.UnsafeEnabled && x != nil { 2568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2569 if ms.LoadMessageInfo() == nil { 2570 ms.StoreMessageInfo(mi) 2571 } 2572 return ms 2573 } 2574 return mi.MessageOf(x) 2575} 2576 2577// Deprecated: Use BatchAnnotateFilesResponse.ProtoReflect.Descriptor instead. 2578func (*BatchAnnotateFilesResponse) Descriptor() ([]byte, []int) { 2579 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{27} 2580} 2581 2582func (x *BatchAnnotateFilesResponse) GetResponses() []*AnnotateFileResponse { 2583 if x != nil { 2584 return x.Responses 2585 } 2586 return nil 2587} 2588 2589// An offline file annotation request. 2590type AsyncAnnotateFileRequest struct { 2591 state protoimpl.MessageState 2592 sizeCache protoimpl.SizeCache 2593 unknownFields protoimpl.UnknownFields 2594 2595 // Required. Information about the input file. 2596 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2597 // Required. Requested features. 2598 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 2599 // Additional context that may accompany the image(s) in the file. 2600 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 2601 // Required. The desired output location and metadata (e.g. format). 2602 OutputConfig *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2603} 2604 2605func (x *AsyncAnnotateFileRequest) Reset() { 2606 *x = AsyncAnnotateFileRequest{} 2607 if protoimpl.UnsafeEnabled { 2608 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28] 2609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2610 ms.StoreMessageInfo(mi) 2611 } 2612} 2613 2614func (x *AsyncAnnotateFileRequest) String() string { 2615 return protoimpl.X.MessageStringOf(x) 2616} 2617 2618func (*AsyncAnnotateFileRequest) ProtoMessage() {} 2619 2620func (x *AsyncAnnotateFileRequest) ProtoReflect() protoreflect.Message { 2621 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28] 2622 if protoimpl.UnsafeEnabled && x != nil { 2623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2624 if ms.LoadMessageInfo() == nil { 2625 ms.StoreMessageInfo(mi) 2626 } 2627 return ms 2628 } 2629 return mi.MessageOf(x) 2630} 2631 2632// Deprecated: Use AsyncAnnotateFileRequest.ProtoReflect.Descriptor instead. 2633func (*AsyncAnnotateFileRequest) Descriptor() ([]byte, []int) { 2634 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{28} 2635} 2636 2637func (x *AsyncAnnotateFileRequest) GetInputConfig() *InputConfig { 2638 if x != nil { 2639 return x.InputConfig 2640 } 2641 return nil 2642} 2643 2644func (x *AsyncAnnotateFileRequest) GetFeatures() []*Feature { 2645 if x != nil { 2646 return x.Features 2647 } 2648 return nil 2649} 2650 2651func (x *AsyncAnnotateFileRequest) GetImageContext() *ImageContext { 2652 if x != nil { 2653 return x.ImageContext 2654 } 2655 return nil 2656} 2657 2658func (x *AsyncAnnotateFileRequest) GetOutputConfig() *OutputConfig { 2659 if x != nil { 2660 return x.OutputConfig 2661 } 2662 return nil 2663} 2664 2665// The response for a single offline file annotation request. 2666type AsyncAnnotateFileResponse struct { 2667 state protoimpl.MessageState 2668 sizeCache protoimpl.SizeCache 2669 unknownFields protoimpl.UnknownFields 2670 2671 // The output location and metadata from AsyncAnnotateFileRequest. 2672 OutputConfig *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2673} 2674 2675func (x *AsyncAnnotateFileResponse) Reset() { 2676 *x = AsyncAnnotateFileResponse{} 2677 if protoimpl.UnsafeEnabled { 2678 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29] 2679 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2680 ms.StoreMessageInfo(mi) 2681 } 2682} 2683 2684func (x *AsyncAnnotateFileResponse) String() string { 2685 return protoimpl.X.MessageStringOf(x) 2686} 2687 2688func (*AsyncAnnotateFileResponse) ProtoMessage() {} 2689 2690func (x *AsyncAnnotateFileResponse) ProtoReflect() protoreflect.Message { 2691 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29] 2692 if protoimpl.UnsafeEnabled && x != nil { 2693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2694 if ms.LoadMessageInfo() == nil { 2695 ms.StoreMessageInfo(mi) 2696 } 2697 return ms 2698 } 2699 return mi.MessageOf(x) 2700} 2701 2702// Deprecated: Use AsyncAnnotateFileResponse.ProtoReflect.Descriptor instead. 2703func (*AsyncAnnotateFileResponse) Descriptor() ([]byte, []int) { 2704 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{29} 2705} 2706 2707func (x *AsyncAnnotateFileResponse) GetOutputConfig() *OutputConfig { 2708 if x != nil { 2709 return x.OutputConfig 2710 } 2711 return nil 2712} 2713 2714// Request for async image annotation for a list of images. 2715type AsyncBatchAnnotateImagesRequest struct { 2716 state protoimpl.MessageState 2717 sizeCache protoimpl.SizeCache 2718 unknownFields protoimpl.UnknownFields 2719 2720 // Required. Individual image annotation requests for this batch. 2721 Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2722 // Required. The desired output location and metadata (e.g. format). 2723 OutputConfig *OutputConfig `protobuf:"bytes,2,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2724} 2725 2726func (x *AsyncBatchAnnotateImagesRequest) Reset() { 2727 *x = AsyncBatchAnnotateImagesRequest{} 2728 if protoimpl.UnsafeEnabled { 2729 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30] 2730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2731 ms.StoreMessageInfo(mi) 2732 } 2733} 2734 2735func (x *AsyncBatchAnnotateImagesRequest) String() string { 2736 return protoimpl.X.MessageStringOf(x) 2737} 2738 2739func (*AsyncBatchAnnotateImagesRequest) ProtoMessage() {} 2740 2741func (x *AsyncBatchAnnotateImagesRequest) ProtoReflect() protoreflect.Message { 2742 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30] 2743 if protoimpl.UnsafeEnabled && x != nil { 2744 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2745 if ms.LoadMessageInfo() == nil { 2746 ms.StoreMessageInfo(mi) 2747 } 2748 return ms 2749 } 2750 return mi.MessageOf(x) 2751} 2752 2753// Deprecated: Use AsyncBatchAnnotateImagesRequest.ProtoReflect.Descriptor instead. 2754func (*AsyncBatchAnnotateImagesRequest) Descriptor() ([]byte, []int) { 2755 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{30} 2756} 2757 2758func (x *AsyncBatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest { 2759 if x != nil { 2760 return x.Requests 2761 } 2762 return nil 2763} 2764 2765func (x *AsyncBatchAnnotateImagesRequest) GetOutputConfig() *OutputConfig { 2766 if x != nil { 2767 return x.OutputConfig 2768 } 2769 return nil 2770} 2771 2772// Response to an async batch image annotation request. 2773type AsyncBatchAnnotateImagesResponse struct { 2774 state protoimpl.MessageState 2775 sizeCache protoimpl.SizeCache 2776 unknownFields protoimpl.UnknownFields 2777 2778 // The output location and metadata from AsyncBatchAnnotateImagesRequest. 2779 OutputConfig *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2780} 2781 2782func (x *AsyncBatchAnnotateImagesResponse) Reset() { 2783 *x = AsyncBatchAnnotateImagesResponse{} 2784 if protoimpl.UnsafeEnabled { 2785 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31] 2786 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2787 ms.StoreMessageInfo(mi) 2788 } 2789} 2790 2791func (x *AsyncBatchAnnotateImagesResponse) String() string { 2792 return protoimpl.X.MessageStringOf(x) 2793} 2794 2795func (*AsyncBatchAnnotateImagesResponse) ProtoMessage() {} 2796 2797func (x *AsyncBatchAnnotateImagesResponse) ProtoReflect() protoreflect.Message { 2798 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31] 2799 if protoimpl.UnsafeEnabled && x != nil { 2800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2801 if ms.LoadMessageInfo() == nil { 2802 ms.StoreMessageInfo(mi) 2803 } 2804 return ms 2805 } 2806 return mi.MessageOf(x) 2807} 2808 2809// Deprecated: Use AsyncBatchAnnotateImagesResponse.ProtoReflect.Descriptor instead. 2810func (*AsyncBatchAnnotateImagesResponse) Descriptor() ([]byte, []int) { 2811 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{31} 2812} 2813 2814func (x *AsyncBatchAnnotateImagesResponse) GetOutputConfig() *OutputConfig { 2815 if x != nil { 2816 return x.OutputConfig 2817 } 2818 return nil 2819} 2820 2821// Multiple async file annotation requests are batched into a single service 2822// call. 2823type AsyncBatchAnnotateFilesRequest struct { 2824 state protoimpl.MessageState 2825 sizeCache protoimpl.SizeCache 2826 unknownFields protoimpl.UnknownFields 2827 2828 // Required. Individual async file annotation requests for this batch. 2829 Requests []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2830} 2831 2832func (x *AsyncBatchAnnotateFilesRequest) Reset() { 2833 *x = AsyncBatchAnnotateFilesRequest{} 2834 if protoimpl.UnsafeEnabled { 2835 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32] 2836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2837 ms.StoreMessageInfo(mi) 2838 } 2839} 2840 2841func (x *AsyncBatchAnnotateFilesRequest) String() string { 2842 return protoimpl.X.MessageStringOf(x) 2843} 2844 2845func (*AsyncBatchAnnotateFilesRequest) ProtoMessage() {} 2846 2847func (x *AsyncBatchAnnotateFilesRequest) ProtoReflect() protoreflect.Message { 2848 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32] 2849 if protoimpl.UnsafeEnabled && x != nil { 2850 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2851 if ms.LoadMessageInfo() == nil { 2852 ms.StoreMessageInfo(mi) 2853 } 2854 return ms 2855 } 2856 return mi.MessageOf(x) 2857} 2858 2859// Deprecated: Use AsyncBatchAnnotateFilesRequest.ProtoReflect.Descriptor instead. 2860func (*AsyncBatchAnnotateFilesRequest) Descriptor() ([]byte, []int) { 2861 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{32} 2862} 2863 2864func (x *AsyncBatchAnnotateFilesRequest) GetRequests() []*AsyncAnnotateFileRequest { 2865 if x != nil { 2866 return x.Requests 2867 } 2868 return nil 2869} 2870 2871// Response to an async batch file annotation request. 2872type AsyncBatchAnnotateFilesResponse struct { 2873 state protoimpl.MessageState 2874 sizeCache protoimpl.SizeCache 2875 unknownFields protoimpl.UnknownFields 2876 2877 // The list of file annotation responses, one for each request in 2878 // AsyncBatchAnnotateFilesRequest. 2879 Responses []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2880} 2881 2882func (x *AsyncBatchAnnotateFilesResponse) Reset() { 2883 *x = AsyncBatchAnnotateFilesResponse{} 2884 if protoimpl.UnsafeEnabled { 2885 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33] 2886 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2887 ms.StoreMessageInfo(mi) 2888 } 2889} 2890 2891func (x *AsyncBatchAnnotateFilesResponse) String() string { 2892 return protoimpl.X.MessageStringOf(x) 2893} 2894 2895func (*AsyncBatchAnnotateFilesResponse) ProtoMessage() {} 2896 2897func (x *AsyncBatchAnnotateFilesResponse) ProtoReflect() protoreflect.Message { 2898 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33] 2899 if protoimpl.UnsafeEnabled && x != nil { 2900 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2901 if ms.LoadMessageInfo() == nil { 2902 ms.StoreMessageInfo(mi) 2903 } 2904 return ms 2905 } 2906 return mi.MessageOf(x) 2907} 2908 2909// Deprecated: Use AsyncBatchAnnotateFilesResponse.ProtoReflect.Descriptor instead. 2910func (*AsyncBatchAnnotateFilesResponse) Descriptor() ([]byte, []int) { 2911 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{33} 2912} 2913 2914func (x *AsyncBatchAnnotateFilesResponse) GetResponses() []*AsyncAnnotateFileResponse { 2915 if x != nil { 2916 return x.Responses 2917 } 2918 return nil 2919} 2920 2921// The desired input location and metadata. 2922type InputConfig struct { 2923 state protoimpl.MessageState 2924 sizeCache protoimpl.SizeCache 2925 unknownFields protoimpl.UnknownFields 2926 2927 // The Google Cloud Storage location to read the input from. 2928 GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3" json:"gcs_source,omitempty"` 2929 // File content, represented as a stream of bytes. 2930 // Note: As with all `bytes` fields, protobuffers use a pure binary 2931 // representation, whereas JSON representations use base64. 2932 // 2933 // Currently, this field only works for BatchAnnotateFiles requests. It does 2934 // not work for AsyncBatchAnnotateFiles requests. 2935 Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` 2936 // The type of the file. Currently only "application/pdf", "image/tiff" and 2937 // "image/gif" are supported. Wildcards are not supported. 2938 MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` 2939} 2940 2941func (x *InputConfig) Reset() { 2942 *x = InputConfig{} 2943 if protoimpl.UnsafeEnabled { 2944 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34] 2945 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2946 ms.StoreMessageInfo(mi) 2947 } 2948} 2949 2950func (x *InputConfig) String() string { 2951 return protoimpl.X.MessageStringOf(x) 2952} 2953 2954func (*InputConfig) ProtoMessage() {} 2955 2956func (x *InputConfig) ProtoReflect() protoreflect.Message { 2957 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34] 2958 if protoimpl.UnsafeEnabled && x != nil { 2959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2960 if ms.LoadMessageInfo() == nil { 2961 ms.StoreMessageInfo(mi) 2962 } 2963 return ms 2964 } 2965 return mi.MessageOf(x) 2966} 2967 2968// Deprecated: Use InputConfig.ProtoReflect.Descriptor instead. 2969func (*InputConfig) Descriptor() ([]byte, []int) { 2970 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{34} 2971} 2972 2973func (x *InputConfig) GetGcsSource() *GcsSource { 2974 if x != nil { 2975 return x.GcsSource 2976 } 2977 return nil 2978} 2979 2980func (x *InputConfig) GetContent() []byte { 2981 if x != nil { 2982 return x.Content 2983 } 2984 return nil 2985} 2986 2987func (x *InputConfig) GetMimeType() string { 2988 if x != nil { 2989 return x.MimeType 2990 } 2991 return "" 2992} 2993 2994// The desired output location and metadata. 2995type OutputConfig struct { 2996 state protoimpl.MessageState 2997 sizeCache protoimpl.SizeCache 2998 unknownFields protoimpl.UnknownFields 2999 3000 // The Google Cloud Storage location to write the output(s) to. 3001 GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3" json:"gcs_destination,omitempty"` 3002 // The max number of response protos to put into each output JSON file on 3003 // Google Cloud Storage. 3004 // The valid range is [1, 100]. If not specified, the default value is 20. 3005 // 3006 // For example, for one pdf file with 100 pages, 100 response protos will 3007 // be generated. If `batch_size` = 20, then 5 json files each 3008 // containing 20 response protos will be written under the prefix 3009 // `gcs_destination`.`uri`. 3010 // 3011 // Currently, batch_size only applies to GcsDestination, with potential future 3012 // support for other output configurations. 3013 BatchSize int32 `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"` 3014} 3015 3016func (x *OutputConfig) Reset() { 3017 *x = OutputConfig{} 3018 if protoimpl.UnsafeEnabled { 3019 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35] 3020 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3021 ms.StoreMessageInfo(mi) 3022 } 3023} 3024 3025func (x *OutputConfig) String() string { 3026 return protoimpl.X.MessageStringOf(x) 3027} 3028 3029func (*OutputConfig) ProtoMessage() {} 3030 3031func (x *OutputConfig) ProtoReflect() protoreflect.Message { 3032 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35] 3033 if protoimpl.UnsafeEnabled && x != nil { 3034 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3035 if ms.LoadMessageInfo() == nil { 3036 ms.StoreMessageInfo(mi) 3037 } 3038 return ms 3039 } 3040 return mi.MessageOf(x) 3041} 3042 3043// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead. 3044func (*OutputConfig) Descriptor() ([]byte, []int) { 3045 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{35} 3046} 3047 3048func (x *OutputConfig) GetGcsDestination() *GcsDestination { 3049 if x != nil { 3050 return x.GcsDestination 3051 } 3052 return nil 3053} 3054 3055func (x *OutputConfig) GetBatchSize() int32 { 3056 if x != nil { 3057 return x.BatchSize 3058 } 3059 return 0 3060} 3061 3062// The Google Cloud Storage location where the input will be read from. 3063type GcsSource struct { 3064 state protoimpl.MessageState 3065 sizeCache protoimpl.SizeCache 3066 unknownFields protoimpl.UnknownFields 3067 3068 // Google Cloud Storage URI for the input file. This must only be a 3069 // Google Cloud Storage object. Wildcards are not currently supported. 3070 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 3071} 3072 3073func (x *GcsSource) Reset() { 3074 *x = GcsSource{} 3075 if protoimpl.UnsafeEnabled { 3076 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36] 3077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3078 ms.StoreMessageInfo(mi) 3079 } 3080} 3081 3082func (x *GcsSource) String() string { 3083 return protoimpl.X.MessageStringOf(x) 3084} 3085 3086func (*GcsSource) ProtoMessage() {} 3087 3088func (x *GcsSource) ProtoReflect() protoreflect.Message { 3089 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36] 3090 if protoimpl.UnsafeEnabled && x != nil { 3091 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3092 if ms.LoadMessageInfo() == nil { 3093 ms.StoreMessageInfo(mi) 3094 } 3095 return ms 3096 } 3097 return mi.MessageOf(x) 3098} 3099 3100// Deprecated: Use GcsSource.ProtoReflect.Descriptor instead. 3101func (*GcsSource) Descriptor() ([]byte, []int) { 3102 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{36} 3103} 3104 3105func (x *GcsSource) GetUri() string { 3106 if x != nil { 3107 return x.Uri 3108 } 3109 return "" 3110} 3111 3112// The Google Cloud Storage location where the output will be written to. 3113type GcsDestination struct { 3114 state protoimpl.MessageState 3115 sizeCache protoimpl.SizeCache 3116 unknownFields protoimpl.UnknownFields 3117 3118 // Google Cloud Storage URI prefix where the results will be stored. Results 3119 // will be in JSON format and preceded by its corresponding input URI prefix. 3120 // This field can either represent a gcs file prefix or gcs directory. In 3121 // either case, the uri should be unique because in order to get all of the 3122 // output files, you will need to do a wildcard gcs search on the uri prefix 3123 // you provide. 3124 // 3125 // Examples: 3126 // 3127 // * File Prefix: gs://bucket-name/here/filenameprefix The output files 3128 // will be created in gs://bucket-name/here/ and the names of the 3129 // output files will begin with "filenameprefix". 3130 // 3131 // * Directory Prefix: gs://bucket-name/some/location/ The output files 3132 // will be created in gs://bucket-name/some/location/ and the names of the 3133 // output files could be anything because there was no filename prefix 3134 // specified. 3135 // 3136 // If multiple outputs, each response is still AnnotateFileResponse, each of 3137 // which contains some subset of the full list of AnnotateImageResponse. 3138 // Multiple outputs can happen if, for example, the output JSON is too large 3139 // and overflows into multiple sharded files. 3140 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 3141} 3142 3143func (x *GcsDestination) Reset() { 3144 *x = GcsDestination{} 3145 if protoimpl.UnsafeEnabled { 3146 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37] 3147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3148 ms.StoreMessageInfo(mi) 3149 } 3150} 3151 3152func (x *GcsDestination) String() string { 3153 return protoimpl.X.MessageStringOf(x) 3154} 3155 3156func (*GcsDestination) ProtoMessage() {} 3157 3158func (x *GcsDestination) ProtoReflect() protoreflect.Message { 3159 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37] 3160 if protoimpl.UnsafeEnabled && x != nil { 3161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3162 if ms.LoadMessageInfo() == nil { 3163 ms.StoreMessageInfo(mi) 3164 } 3165 return ms 3166 } 3167 return mi.MessageOf(x) 3168} 3169 3170// Deprecated: Use GcsDestination.ProtoReflect.Descriptor instead. 3171func (*GcsDestination) Descriptor() ([]byte, []int) { 3172 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{37} 3173} 3174 3175func (x *GcsDestination) GetUri() string { 3176 if x != nil { 3177 return x.Uri 3178 } 3179 return "" 3180} 3181 3182// Contains metadata for the BatchAnnotateImages operation. 3183type OperationMetadata struct { 3184 state protoimpl.MessageState 3185 sizeCache protoimpl.SizeCache 3186 unknownFields protoimpl.UnknownFields 3187 3188 // Current state of the batch operation. 3189 State OperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1p4beta1.OperationMetadata_State" json:"state,omitempty"` 3190 // The time when the batch request was received. 3191 CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 3192 // The time when the operation result was last updated. 3193 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 3194} 3195 3196func (x *OperationMetadata) Reset() { 3197 *x = OperationMetadata{} 3198 if protoimpl.UnsafeEnabled { 3199 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38] 3200 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3201 ms.StoreMessageInfo(mi) 3202 } 3203} 3204 3205func (x *OperationMetadata) String() string { 3206 return protoimpl.X.MessageStringOf(x) 3207} 3208 3209func (*OperationMetadata) ProtoMessage() {} 3210 3211func (x *OperationMetadata) ProtoReflect() protoreflect.Message { 3212 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38] 3213 if protoimpl.UnsafeEnabled && x != nil { 3214 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3215 if ms.LoadMessageInfo() == nil { 3216 ms.StoreMessageInfo(mi) 3217 } 3218 return ms 3219 } 3220 return mi.MessageOf(x) 3221} 3222 3223// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead. 3224func (*OperationMetadata) Descriptor() ([]byte, []int) { 3225 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{38} 3226} 3227 3228func (x *OperationMetadata) GetState() OperationMetadata_State { 3229 if x != nil { 3230 return x.State 3231 } 3232 return OperationMetadata_STATE_UNSPECIFIED 3233} 3234 3235func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { 3236 if x != nil { 3237 return x.CreateTime 3238 } 3239 return nil 3240} 3241 3242func (x *OperationMetadata) GetUpdateTime() *timestamppb.Timestamp { 3243 if x != nil { 3244 return x.UpdateTime 3245 } 3246 return nil 3247} 3248 3249// A face-specific landmark (for example, a face feature). 3250type FaceAnnotation_Landmark struct { 3251 state protoimpl.MessageState 3252 sizeCache protoimpl.SizeCache 3253 unknownFields protoimpl.UnknownFields 3254 3255 // Face landmark type. 3256 Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p4beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"` 3257 // Face landmark position. 3258 Position *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` 3259} 3260 3261func (x *FaceAnnotation_Landmark) Reset() { 3262 *x = FaceAnnotation_Landmark{} 3263 if protoimpl.UnsafeEnabled { 3264 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[39] 3265 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3266 ms.StoreMessageInfo(mi) 3267 } 3268} 3269 3270func (x *FaceAnnotation_Landmark) String() string { 3271 return protoimpl.X.MessageStringOf(x) 3272} 3273 3274func (*FaceAnnotation_Landmark) ProtoMessage() {} 3275 3276func (x *FaceAnnotation_Landmark) ProtoReflect() protoreflect.Message { 3277 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[39] 3278 if protoimpl.UnsafeEnabled && x != nil { 3279 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3280 if ms.LoadMessageInfo() == nil { 3281 ms.StoreMessageInfo(mi) 3282 } 3283 return ms 3284 } 3285 return mi.MessageOf(x) 3286} 3287 3288// Deprecated: Use FaceAnnotation_Landmark.ProtoReflect.Descriptor instead. 3289func (*FaceAnnotation_Landmark) Descriptor() ([]byte, []int) { 3290 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{3, 0} 3291} 3292 3293func (x *FaceAnnotation_Landmark) GetType() FaceAnnotation_Landmark_Type { 3294 if x != nil { 3295 return x.Type 3296 } 3297 return FaceAnnotation_Landmark_UNKNOWN_LANDMARK 3298} 3299 3300func (x *FaceAnnotation_Landmark) GetPosition() *Position { 3301 if x != nil { 3302 return x.Position 3303 } 3304 return nil 3305} 3306 3307var File_google_cloud_vision_v1p4beta1_image_annotator_proto protoreflect.FileDescriptor 3308 3309var file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc = []byte{ 3310 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 3311 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 3312 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x2e, 3313 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3314 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3315 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 3316 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 3317 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 3318 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 3319 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 3320 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 3321 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 3322 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x61, 0x63, 0x65, 3323 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 3324 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 3325 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 3326 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 3327 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3328 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 3329 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3330 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 3331 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 3332 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 3333 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 3334 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x77, 0x65, 0x62, 3335 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3336 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 3337 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 3338 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3339 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 3340 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3341 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 3342 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3343 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3344 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 3345 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 3346 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 3347 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x03, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 3348 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 3349 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3350 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 3351 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 3352 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 3353 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 3354 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 3355 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0xa3, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 3356 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 3357 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x41, 0x43, 0x45, 0x5f, 3358 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 3359 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 3360 0x4e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x44, 0x45, 0x54, 0x45, 3361 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 3362 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 3363 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 3364 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x58, 3365 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x19, 0x0a, 3366 0x15, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x44, 0x45, 0x54, 3367 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4d, 0x41, 0x47, 3368 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0e, 3369 0x0a, 0x0a, 0x43, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x09, 0x12, 0x11, 3370 0x0a, 0x0d, 0x57, 0x45, 0x42, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 3371 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x41, 3372 0x52, 0x43, 0x48, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 3373 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x13, 0x22, 0x4e, 3374 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 3375 0x0d, 0x67, 0x63, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 3376 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x63, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 3377 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 3378 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x22, 0x65, 3379 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 3380 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3381 0x74, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3382 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3383 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3384 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 3385 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x8a, 0x11, 0x0a, 0x0e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 3386 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 3387 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3388 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3389 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3390 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 3391 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x66, 0x64, 3392 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x02, 3393 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3394 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3395 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 3396 0x79, 0x52, 0x0e, 0x66, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 3397 0x79, 0x12, 0x54, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x03, 3398 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3399 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3400 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3401 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x09, 0x6c, 0x61, 3402 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 3403 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x6f, 0x6c, 3404 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x6e, 0x5f, 0x61, 0x6e, 3405 0x67, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x61, 0x6e, 0x41, 0x6e, 3406 0x67, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 3407 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 3408 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 3409 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 3410 0x52, 0x13, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 3411 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 3412 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 3413 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x69, 3414 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0e, 3415 0x6a, 0x6f, 0x79, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x09, 3416 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3417 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3418 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3419 0x0d, 0x6a, 0x6f, 0x79, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x56, 3420 0x0a, 0x11, 0x73, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3421 0x6f, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3422 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3423 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3424 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x10, 0x73, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x4c, 0x69, 0x6b, 0x65, 3425 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x54, 0x0a, 0x10, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 3426 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 3427 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3428 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3429 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0f, 0x61, 0x6e, 0x67, 3430 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 3431 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3432 0x6f, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3433 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3434 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3435 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x12, 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 3436 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x75, 0x6e, 0x64, 0x65, 3437 0x72, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3438 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 3439 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3440 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 3441 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x16, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x45, 0x78, 0x70, 0x6f, 3442 0x73, 0x65, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x58, 0x0a, 3443 0x12, 0x62, 0x6c, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3444 0x6f, 0x6f, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3445 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3446 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3447 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x11, 0x62, 0x6c, 0x75, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x69, 0x6b, 3448 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x77, 3449 0x65, 0x61, 0x72, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0f, 3450 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3451 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3452 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3453 0x12, 0x68, 0x65, 0x61, 0x64, 0x77, 0x65, 0x61, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3454 0x6f, 0x6f, 0x64, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 3455 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 3456 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3457 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3458 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3459 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 3460 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xd7, 0x07, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 3461 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 3462 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3463 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3464 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 3465 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 3466 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 3467 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3468 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3469 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 3470 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x06, 0x0a, 0x04, 3471 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 3472 0x4c, 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x45, 3473 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x49, 0x47, 0x48, 3474 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 3475 0x4f, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 3476 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4c, 0x45, 3477 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 3478 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 3479 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 3480 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 3481 0x57, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 3482 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4e, 0x5f, 0x45, 0x59, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0c, 3483 0x0a, 0x08, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x54, 0x49, 0x50, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 3484 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x50, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 3485 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x50, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 3486 0x55, 0x54, 0x48, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, 3487 0x55, 0x54, 0x48, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 3488 0x4f, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x15, 0x0a, 3489 0x11, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 3490 0x48, 0x54, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 3491 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 3492 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 3493 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 3494 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x11, 0x12, 0x19, 0x0a, 3495 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3496 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x46, 0x54, 3497 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 3498 0x44, 0x41, 0x52, 0x59, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 3499 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x14, 3500 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 0x4f, 3501 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 3502 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3503 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x49, 0x47, 0x48, 3504 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 3505 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x17, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 0x48, 0x54, 3506 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 3507 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 3508 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 3509 0x54, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 3510 0x42, 0x52, 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 3511 0x49, 0x4e, 0x54, 0x10, 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x41, 3512 0x52, 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 0x4e, 0x10, 0x1b, 0x12, 0x15, 0x0a, 0x11, 0x52, 3513 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 0x4e, 3514 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x50, 3515 0x55, 0x50, 0x49, 0x4c, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3516 0x45, 0x59, 0x45, 0x5f, 0x50, 0x55, 0x50, 0x49, 0x4c, 0x10, 0x1e, 0x12, 0x15, 0x0a, 0x11, 0x46, 3517 0x4f, 0x52, 0x45, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x47, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x4c, 0x41, 3518 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x47, 0x4e, 0x41, 0x54, 0x48, 3519 0x49, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x4c, 0x45, 3520 0x46, 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x21, 0x12, 0x15, 0x0a, 0x11, 0x43, 3521 0x48, 0x49, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 3522 0x10, 0x22, 0x22, 0x3c, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 3523 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x01, 0x20, 3524 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 3525 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 3526 0x22, 0x57, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 3527 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3528 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 3529 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 3530 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x69, 3531 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x10, 0x45, 0x6e, 3532 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 3533 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 3534 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3535 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 3536 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 3537 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 3538 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 3539 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 3540 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 3541 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x69, 3542 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x61, 3543 0x6c, 0x69, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 3544 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 3545 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3546 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 3547 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 3548 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3549 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3550 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3551 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3552 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3553 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 3554 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3555 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3556 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 3557 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x19, 0x4c, 3558 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 3559 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 3560 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 3561 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3562 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 3563 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 3564 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 3565 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 3566 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 3567 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3568 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3569 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 3570 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x22, 0xe3, 0x02, 0x0a, 0x14, 3571 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3572 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x05, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 3573 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3574 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3575 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x05, 3576 0x61, 0x64, 0x75, 0x6c, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6f, 0x66, 0x18, 0x02, 3577 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3578 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3579 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3580 0x05, 0x73, 0x70, 0x6f, 0x6f, 0x66, 0x12, 0x43, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x63, 0x61, 3581 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3582 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3583 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 3584 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x08, 0x76, 3585 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 3586 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3587 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 3588 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x08, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 3589 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 3590 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3591 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3592 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x04, 0x72, 0x61, 0x63, 3593 0x79, 0x22, 0x77, 0x0a, 0x0b, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 3594 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 3595 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 3596 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 3597 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x61, 0x74, 3598 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 3599 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 3600 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x22, 0x72, 0x0a, 0x09, 0x43, 0x6f, 3601 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 3602 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3603 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 3604 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 3605 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x78, 0x65, 0x6c, 3606 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 3607 0x0d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 3608 0x0a, 0x18, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 3609 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x6f, 3610 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 3611 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3612 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 3613 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x22, 0x73, 0x0a, 0x0f, 3614 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 3615 0x60, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 3616 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3617 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3618 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 3619 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 3620 0x6e, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 3621 0x73, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x50, 3622 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 3623 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3624 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3625 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 3626 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 3627 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 3628 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 3629 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 3630 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x69, 3631 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 3632 0x6e, 0x22, 0x5d, 0x0a, 0x13, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 3633 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0a, 0x63, 0x72, 0x6f, 0x70, 3634 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 3635 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 3636 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x6f, 3637 0x70, 0x48, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 3638 0x22, 0x36, 0x0a, 0x0f, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 3639 0x61, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 3640 0x74, 0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x73, 0x70, 0x65, 3641 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x57, 0x65, 0x62, 0x44, 3642 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 3643 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x5f, 0x72, 0x65, 3644 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x6e, 0x63, 3645 0x6c, 0x75, 0x64, 0x65, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x69, 3646 0x0a, 0x13, 0x54, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 3647 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x26, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 3648 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 3649 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 3650 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 3651 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 3652 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x49, 0x6d, 3653 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6c, 0x61, 3654 0x74, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 3655 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3656 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3657 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 0x52, 0x0b, 0x6c, 3658 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 3659 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 3660 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x48, 0x69, 0x6e, 0x74, 3661 0x73, 0x12, 0x5a, 0x0a, 0x11, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x5f, 3662 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 3663 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 3664 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x6f, 3665 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x72, 3666 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6c, 0x0a, 3667 0x17, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 3668 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 3669 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3670 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 3671 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 3672 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 3673 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x15, 0x70, 3674 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 3675 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 3676 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3677 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 3678 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x13, 3679 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 3680 0x61, 0x6d, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 3681 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 3682 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3683 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3684 0x31, 0x2e, 0x57, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 3685 0x72, 0x61, 0x6d, 0x73, 0x52, 0x12, 0x77, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 3686 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x15, 0x74, 0x65, 0x78, 0x74, 3687 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 3688 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3689 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3690 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x65, 3691 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x13, 0x74, 0x65, 0x78, 3692 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 3693 0x22, 0xe8, 0x01, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 3694 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x6d, 0x61, 3695 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3696 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3697 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 3698 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 3699 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3700 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3701 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 3702 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 3703 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 3704 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3705 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3706 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 3707 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4b, 0x0a, 0x16, 0x49, 3708 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 3709 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 3710 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 3711 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 3712 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xc3, 0x0a, 0x0a, 0x15, 0x41, 0x6e, 0x6e, 3713 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 3714 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 3715 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 3716 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 3717 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 3718 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x61, 0x63, 3719 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x14, 3720 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3721 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 3722 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3723 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 3724 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6c, 0x61, 0x6e, 3725 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3726 0x12, 0x5a, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3727 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 3728 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3729 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 3730 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 3731 0x6f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x11, 3732 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3733 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3734 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3735 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 3736 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x41, 3737 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7a, 0x0a, 0x1c, 0x6c, 0x6f, 3738 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 3739 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 3740 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3741 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3742 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 3743 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 3744 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 3745 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 3746 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 3747 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3748 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3749 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 3750 0x6e, 0x52, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 3751 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 3752 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 3753 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3754 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3755 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3756 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3757 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x16, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 3758 0x63, 0x68, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 3759 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3760 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3761 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 3762 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 3763 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 3764 0x0a, 0x1b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 3765 0x65, 0x73, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 3766 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3767 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3768 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 3769 0x69, 0x65, 0x73, 0x52, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 3770 0x74, 0x69, 0x65, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 3771 0x0a, 0x15, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6e, 3772 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 3773 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3774 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 3775 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 3776 0x6e, 0x52, 0x13, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 3777 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x65, 3778 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 3779 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3780 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 3781 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x44, 3782 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x64, 3783 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 3784 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3785 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3786 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 3787 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x14, 0x70, 3788 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 3789 0x6c, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 3790 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 3791 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 3792 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 3793 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3794 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 3795 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 3796 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x72, 3797 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 3798 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x08, 3799 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 3800 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3801 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 3802 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 3803 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 3804 0x74, 0x73, 0x22, 0x71, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 3805 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3806 0x65, 0x12, 0x52, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 3807 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3808 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3809 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 3810 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 3811 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3812 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 3813 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 3814 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3815 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3816 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 3817 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x08, 3818 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 3819 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3820 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 3821 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 3822 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 3823 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3824 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3825 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 3826 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 3827 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 3828 0x05, 0x52, 0x05, 0x70, 0x61, 0x67, 0x65, 0x73, 0x22, 0x84, 0x02, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 3829 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3830 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 3831 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3832 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3833 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 3834 0x66, 0x69, 0x67, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3835 0x12, 0x52, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 3836 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3837 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3838 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 3839 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 3840 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 3841 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 3842 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 3843 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 3844 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 3845 0x70, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 3846 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x08, 3847 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 3848 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3849 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 3850 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 3851 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3852 0x73, 0x22, 0x6f, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3853 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3854 0x51, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 3855 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3856 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 3857 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 3858 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3859 0x65, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 3860 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3861 0x4d, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 3862 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3863 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3864 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 3865 0x67, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 3866 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 3867 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3868 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3869 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 3870 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 3871 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3872 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3873 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 3874 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 3875 0x74, 0x65, 0x78, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 3876 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 3877 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3878 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 3879 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 3880 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x6d, 0x0a, 0x19, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x41, 3881 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 3882 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 3883 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 3884 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3885 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 3886 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 3887 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1f, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 3888 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 3889 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x08, 0x72, 0x65, 0x71, 3890 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 3891 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3892 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 3893 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3894 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 3895 0x55, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3896 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3897 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 3898 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 3899 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 3900 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x74, 0x0a, 0x20, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 3901 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 3902 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 3903 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 3904 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3905 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3906 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 3907 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7a, 0x0a, 0x1e, 3908 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3909 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 3910 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 3911 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3912 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3913 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 3914 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 3915 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x79, 0x0a, 0x1f, 0x41, 0x73, 0x79, 0x6e, 3916 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 3917 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x09, 0x72, 3918 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 3919 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3920 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 3921 0x73, 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 3922 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 3923 0x73, 0x65, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 3924 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 3925 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3926 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3927 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 3928 0x65, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 3929 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 3930 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 3931 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 3932 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 3933 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 3934 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 3935 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3936 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 3937 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x67, 0x63, 3938 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 3939 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 3940 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x1d, 0x0a, 0x09, 0x47, 3941 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 3942 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x22, 0x0a, 0x0e, 0x47, 0x63, 3943 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 3944 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0xae, 3945 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 3946 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 3947 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3948 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3949 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 3950 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 3951 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 3952 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3953 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 3954 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 3955 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 3956 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 3957 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 3958 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x05, 3959 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 3960 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 3961 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 3962 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 3963 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 3964 0x65, 0x0a, 0x0a, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 3965 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 3966 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 3967 0x08, 0x55, 0x4e, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 3968 0x4f, 0x53, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x49, 0x4b, 3969 0x45, 0x4c, 0x59, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x49, 3970 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x05, 0x32, 0xf1, 0x07, 0x0a, 0x0e, 0x49, 0x6d, 0x61, 0x67, 0x65, 3971 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0xbe, 0x01, 0x0a, 0x13, 0x42, 0x61, 3972 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 3973 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3974 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3975 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 3976 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 3977 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 3978 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 3979 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 3980 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 3981 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6d, 0x61, 3982 0x67, 0x65, 0x73, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 3983 0x41, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x12, 0x42, 3984 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 3985 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3986 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3987 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 3988 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 3989 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3990 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 3991 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 3992 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 3993 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 3994 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x72, 3995 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xfc, 0x01, 0x0a, 0x18, 0x41, 0x73, 0x79, 0x6e, 3996 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 3997 0x61, 0x67, 0x65, 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3998 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3999 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 4000 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 4001 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 4002 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 4003 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x76, 4004 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x3a, 4005 0x61, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 4006 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 4007 0x2c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0xca, 0x41, 4008 0x35, 0x0a, 0x20, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 4009 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 4010 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 4011 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe9, 0x01, 0x0a, 0x17, 0x41, 0x73, 0x79, 0x6e, 0x63, 4012 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 4013 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 4014 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 4015 0x61, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 4016 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4017 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 4018 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4019 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x23, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 4020 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x61, 0x73, 0x79, 0x6e, 0x63, 4021 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 4022 0xda, 0x41, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0xca, 0x41, 0x34, 0x0a, 0x1f, 4023 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 4024 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 4025 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 4026 0x74, 0x61, 0x1a, 0x76, 0xca, 0x41, 0x15, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 4027 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x5b, 0x68, 4028 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4029 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 4030 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 4031 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4032 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 4033 0x6f, 0x75, 0x64, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x89, 0x01, 0x0a, 0x21, 0x63, 4034 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4035 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 4036 0x42, 0x13, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 4037 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4038 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 4039 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 4040 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 4041 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xf8, 0x01, 0x01, 0xa2, 4042 0x02, 0x04, 0x47, 0x43, 0x56, 0x4e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 4043} 4044 4045var ( 4046 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescOnce sync.Once 4047 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData = file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc 4048) 4049 4050func file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP() []byte { 4051 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescOnce.Do(func() { 4052 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData) 4053 }) 4054 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData 4055} 4056 4057var file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes = make([]protoimpl.EnumInfo, 4) 4058var file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes = make([]protoimpl.MessageInfo, 40) 4059var file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes = []interface{}{ 4060 (Likelihood)(0), // 0: google.cloud.vision.v1p4beta1.Likelihood 4061 (Feature_Type)(0), // 1: google.cloud.vision.v1p4beta1.Feature.Type 4062 (FaceAnnotation_Landmark_Type)(0), // 2: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.Type 4063 (OperationMetadata_State)(0), // 3: google.cloud.vision.v1p4beta1.OperationMetadata.State 4064 (*Feature)(nil), // 4: google.cloud.vision.v1p4beta1.Feature 4065 (*ImageSource)(nil), // 5: google.cloud.vision.v1p4beta1.ImageSource 4066 (*Image)(nil), // 6: google.cloud.vision.v1p4beta1.Image 4067 (*FaceAnnotation)(nil), // 7: google.cloud.vision.v1p4beta1.FaceAnnotation 4068 (*LocationInfo)(nil), // 8: google.cloud.vision.v1p4beta1.LocationInfo 4069 (*Property)(nil), // 9: google.cloud.vision.v1p4beta1.Property 4070 (*EntityAnnotation)(nil), // 10: google.cloud.vision.v1p4beta1.EntityAnnotation 4071 (*LocalizedObjectAnnotation)(nil), // 11: google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation 4072 (*SafeSearchAnnotation)(nil), // 12: google.cloud.vision.v1p4beta1.SafeSearchAnnotation 4073 (*LatLongRect)(nil), // 13: google.cloud.vision.v1p4beta1.LatLongRect 4074 (*ColorInfo)(nil), // 14: google.cloud.vision.v1p4beta1.ColorInfo 4075 (*DominantColorsAnnotation)(nil), // 15: google.cloud.vision.v1p4beta1.DominantColorsAnnotation 4076 (*ImageProperties)(nil), // 16: google.cloud.vision.v1p4beta1.ImageProperties 4077 (*CropHint)(nil), // 17: google.cloud.vision.v1p4beta1.CropHint 4078 (*CropHintsAnnotation)(nil), // 18: google.cloud.vision.v1p4beta1.CropHintsAnnotation 4079 (*CropHintsParams)(nil), // 19: google.cloud.vision.v1p4beta1.CropHintsParams 4080 (*WebDetectionParams)(nil), // 20: google.cloud.vision.v1p4beta1.WebDetectionParams 4081 (*TextDetectionParams)(nil), // 21: google.cloud.vision.v1p4beta1.TextDetectionParams 4082 (*ImageContext)(nil), // 22: google.cloud.vision.v1p4beta1.ImageContext 4083 (*AnnotateImageRequest)(nil), // 23: google.cloud.vision.v1p4beta1.AnnotateImageRequest 4084 (*ImageAnnotationContext)(nil), // 24: google.cloud.vision.v1p4beta1.ImageAnnotationContext 4085 (*AnnotateImageResponse)(nil), // 25: google.cloud.vision.v1p4beta1.AnnotateImageResponse 4086 (*BatchAnnotateImagesRequest)(nil), // 26: google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest 4087 (*BatchAnnotateImagesResponse)(nil), // 27: google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse 4088 (*AnnotateFileRequest)(nil), // 28: google.cloud.vision.v1p4beta1.AnnotateFileRequest 4089 (*AnnotateFileResponse)(nil), // 29: google.cloud.vision.v1p4beta1.AnnotateFileResponse 4090 (*BatchAnnotateFilesRequest)(nil), // 30: google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest 4091 (*BatchAnnotateFilesResponse)(nil), // 31: google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse 4092 (*AsyncAnnotateFileRequest)(nil), // 32: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest 4093 (*AsyncAnnotateFileResponse)(nil), // 33: google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse 4094 (*AsyncBatchAnnotateImagesRequest)(nil), // 34: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest 4095 (*AsyncBatchAnnotateImagesResponse)(nil), // 35: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesResponse 4096 (*AsyncBatchAnnotateFilesRequest)(nil), // 36: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest 4097 (*AsyncBatchAnnotateFilesResponse)(nil), // 37: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesResponse 4098 (*InputConfig)(nil), // 38: google.cloud.vision.v1p4beta1.InputConfig 4099 (*OutputConfig)(nil), // 39: google.cloud.vision.v1p4beta1.OutputConfig 4100 (*GcsSource)(nil), // 40: google.cloud.vision.v1p4beta1.GcsSource 4101 (*GcsDestination)(nil), // 41: google.cloud.vision.v1p4beta1.GcsDestination 4102 (*OperationMetadata)(nil), // 42: google.cloud.vision.v1p4beta1.OperationMetadata 4103 (*FaceAnnotation_Landmark)(nil), // 43: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark 4104 (*BoundingPoly)(nil), // 44: google.cloud.vision.v1p4beta1.BoundingPoly 4105 (*FaceRecognitionResult)(nil), // 45: google.cloud.vision.v1p4beta1.FaceRecognitionResult 4106 (*latlng.LatLng)(nil), // 46: google.type.LatLng 4107 (*color.Color)(nil), // 47: google.type.Color 4108 (*FaceRecognitionParams)(nil), // 48: google.cloud.vision.v1p4beta1.FaceRecognitionParams 4109 (*ProductSearchParams)(nil), // 49: google.cloud.vision.v1p4beta1.ProductSearchParams 4110 (*TextAnnotation)(nil), // 50: google.cloud.vision.v1p4beta1.TextAnnotation 4111 (*WebDetection)(nil), // 51: google.cloud.vision.v1p4beta1.WebDetection 4112 (*ProductSearchResults)(nil), // 52: google.cloud.vision.v1p4beta1.ProductSearchResults 4113 (*status.Status)(nil), // 53: google.rpc.Status 4114 (*timestamppb.Timestamp)(nil), // 54: google.protobuf.Timestamp 4115 (*Position)(nil), // 55: google.cloud.vision.v1p4beta1.Position 4116 (*longrunning.Operation)(nil), // 56: google.longrunning.Operation 4117} 4118var file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs = []int32{ 4119 1, // 0: google.cloud.vision.v1p4beta1.Feature.type:type_name -> google.cloud.vision.v1p4beta1.Feature.Type 4120 5, // 1: google.cloud.vision.v1p4beta1.Image.source:type_name -> google.cloud.vision.v1p4beta1.ImageSource 4121 44, // 2: google.cloud.vision.v1p4beta1.FaceAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4122 44, // 3: google.cloud.vision.v1p4beta1.FaceAnnotation.fd_bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4123 43, // 4: google.cloud.vision.v1p4beta1.FaceAnnotation.landmarks:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark 4124 0, // 5: google.cloud.vision.v1p4beta1.FaceAnnotation.joy_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4125 0, // 6: google.cloud.vision.v1p4beta1.FaceAnnotation.sorrow_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4126 0, // 7: google.cloud.vision.v1p4beta1.FaceAnnotation.anger_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4127 0, // 8: google.cloud.vision.v1p4beta1.FaceAnnotation.surprise_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4128 0, // 9: google.cloud.vision.v1p4beta1.FaceAnnotation.under_exposed_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4129 0, // 10: google.cloud.vision.v1p4beta1.FaceAnnotation.blurred_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4130 0, // 11: google.cloud.vision.v1p4beta1.FaceAnnotation.headwear_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4131 45, // 12: google.cloud.vision.v1p4beta1.FaceAnnotation.recognition_result:type_name -> google.cloud.vision.v1p4beta1.FaceRecognitionResult 4132 46, // 13: google.cloud.vision.v1p4beta1.LocationInfo.lat_lng:type_name -> google.type.LatLng 4133 44, // 14: google.cloud.vision.v1p4beta1.EntityAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4134 8, // 15: google.cloud.vision.v1p4beta1.EntityAnnotation.locations:type_name -> google.cloud.vision.v1p4beta1.LocationInfo 4135 9, // 16: google.cloud.vision.v1p4beta1.EntityAnnotation.properties:type_name -> google.cloud.vision.v1p4beta1.Property 4136 44, // 17: google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4137 0, // 18: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.adult:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4138 0, // 19: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.spoof:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4139 0, // 20: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.medical:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4140 0, // 21: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.violence:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4141 0, // 22: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.racy:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4142 46, // 23: google.cloud.vision.v1p4beta1.LatLongRect.min_lat_lng:type_name -> google.type.LatLng 4143 46, // 24: google.cloud.vision.v1p4beta1.LatLongRect.max_lat_lng:type_name -> google.type.LatLng 4144 47, // 25: google.cloud.vision.v1p4beta1.ColorInfo.color:type_name -> google.type.Color 4145 14, // 26: google.cloud.vision.v1p4beta1.DominantColorsAnnotation.colors:type_name -> google.cloud.vision.v1p4beta1.ColorInfo 4146 15, // 27: google.cloud.vision.v1p4beta1.ImageProperties.dominant_colors:type_name -> google.cloud.vision.v1p4beta1.DominantColorsAnnotation 4147 44, // 28: google.cloud.vision.v1p4beta1.CropHint.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4148 17, // 29: google.cloud.vision.v1p4beta1.CropHintsAnnotation.crop_hints:type_name -> google.cloud.vision.v1p4beta1.CropHint 4149 13, // 30: google.cloud.vision.v1p4beta1.ImageContext.lat_long_rect:type_name -> google.cloud.vision.v1p4beta1.LatLongRect 4150 19, // 31: google.cloud.vision.v1p4beta1.ImageContext.crop_hints_params:type_name -> google.cloud.vision.v1p4beta1.CropHintsParams 4151 48, // 32: google.cloud.vision.v1p4beta1.ImageContext.face_recognition_params:type_name -> google.cloud.vision.v1p4beta1.FaceRecognitionParams 4152 49, // 33: google.cloud.vision.v1p4beta1.ImageContext.product_search_params:type_name -> google.cloud.vision.v1p4beta1.ProductSearchParams 4153 20, // 34: google.cloud.vision.v1p4beta1.ImageContext.web_detection_params:type_name -> google.cloud.vision.v1p4beta1.WebDetectionParams 4154 21, // 35: google.cloud.vision.v1p4beta1.ImageContext.text_detection_params:type_name -> google.cloud.vision.v1p4beta1.TextDetectionParams 4155 6, // 36: google.cloud.vision.v1p4beta1.AnnotateImageRequest.image:type_name -> google.cloud.vision.v1p4beta1.Image 4156 4, // 37: google.cloud.vision.v1p4beta1.AnnotateImageRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4157 22, // 38: google.cloud.vision.v1p4beta1.AnnotateImageRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4158 7, // 39: google.cloud.vision.v1p4beta1.AnnotateImageResponse.face_annotations:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation 4159 10, // 40: google.cloud.vision.v1p4beta1.AnnotateImageResponse.landmark_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4160 10, // 41: google.cloud.vision.v1p4beta1.AnnotateImageResponse.logo_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4161 10, // 42: google.cloud.vision.v1p4beta1.AnnotateImageResponse.label_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4162 11, // 43: google.cloud.vision.v1p4beta1.AnnotateImageResponse.localized_object_annotations:type_name -> google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation 4163 10, // 44: google.cloud.vision.v1p4beta1.AnnotateImageResponse.text_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4164 50, // 45: google.cloud.vision.v1p4beta1.AnnotateImageResponse.full_text_annotation:type_name -> google.cloud.vision.v1p4beta1.TextAnnotation 4165 12, // 46: google.cloud.vision.v1p4beta1.AnnotateImageResponse.safe_search_annotation:type_name -> google.cloud.vision.v1p4beta1.SafeSearchAnnotation 4166 16, // 47: google.cloud.vision.v1p4beta1.AnnotateImageResponse.image_properties_annotation:type_name -> google.cloud.vision.v1p4beta1.ImageProperties 4167 18, // 48: google.cloud.vision.v1p4beta1.AnnotateImageResponse.crop_hints_annotation:type_name -> google.cloud.vision.v1p4beta1.CropHintsAnnotation 4168 51, // 49: google.cloud.vision.v1p4beta1.AnnotateImageResponse.web_detection:type_name -> google.cloud.vision.v1p4beta1.WebDetection 4169 52, // 50: google.cloud.vision.v1p4beta1.AnnotateImageResponse.product_search_results:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults 4170 53, // 51: google.cloud.vision.v1p4beta1.AnnotateImageResponse.error:type_name -> google.rpc.Status 4171 24, // 52: google.cloud.vision.v1p4beta1.AnnotateImageResponse.context:type_name -> google.cloud.vision.v1p4beta1.ImageAnnotationContext 4172 23, // 53: google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageRequest 4173 25, // 54: google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageResponse 4174 38, // 55: google.cloud.vision.v1p4beta1.AnnotateFileRequest.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4175 4, // 56: google.cloud.vision.v1p4beta1.AnnotateFileRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4176 22, // 57: google.cloud.vision.v1p4beta1.AnnotateFileRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4177 38, // 58: google.cloud.vision.v1p4beta1.AnnotateFileResponse.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4178 25, // 59: google.cloud.vision.v1p4beta1.AnnotateFileResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageResponse 4179 53, // 60: google.cloud.vision.v1p4beta1.AnnotateFileResponse.error:type_name -> google.rpc.Status 4180 28, // 61: google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateFileRequest 4181 29, // 62: google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateFileResponse 4182 38, // 63: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4183 4, // 64: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4184 22, // 65: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4185 39, // 66: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4186 39, // 67: google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4187 23, // 68: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageRequest 4188 39, // 69: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4189 39, // 70: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesResponse.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4190 32, // 71: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest 4191 33, // 72: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse 4192 40, // 73: google.cloud.vision.v1p4beta1.InputConfig.gcs_source:type_name -> google.cloud.vision.v1p4beta1.GcsSource 4193 41, // 74: google.cloud.vision.v1p4beta1.OutputConfig.gcs_destination:type_name -> google.cloud.vision.v1p4beta1.GcsDestination 4194 3, // 75: google.cloud.vision.v1p4beta1.OperationMetadata.state:type_name -> google.cloud.vision.v1p4beta1.OperationMetadata.State 4195 54, // 76: google.cloud.vision.v1p4beta1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp 4196 54, // 77: google.cloud.vision.v1p4beta1.OperationMetadata.update_time:type_name -> google.protobuf.Timestamp 4197 2, // 78: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.type:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.Type 4198 55, // 79: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.position:type_name -> google.cloud.vision.v1p4beta1.Position 4199 26, // 80: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateImages:input_type -> google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest 4200 30, // 81: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateFiles:input_type -> google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest 4201 34, // 82: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateImages:input_type -> google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest 4202 36, // 83: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateFiles:input_type -> google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest 4203 27, // 84: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateImages:output_type -> google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse 4204 31, // 85: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateFiles:output_type -> google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse 4205 56, // 86: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateImages:output_type -> google.longrunning.Operation 4206 56, // 87: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateFiles:output_type -> google.longrunning.Operation 4207 84, // [84:88] is the sub-list for method output_type 4208 80, // [80:84] is the sub-list for method input_type 4209 80, // [80:80] is the sub-list for extension type_name 4210 80, // [80:80] is the sub-list for extension extendee 4211 0, // [0:80] is the sub-list for field type_name 4212} 4213 4214func init() { file_google_cloud_vision_v1p4beta1_image_annotator_proto_init() } 4215func file_google_cloud_vision_v1p4beta1_image_annotator_proto_init() { 4216 if File_google_cloud_vision_v1p4beta1_image_annotator_proto != nil { 4217 return 4218 } 4219 file_google_cloud_vision_v1p4beta1_face_proto_init() 4220 file_google_cloud_vision_v1p4beta1_geometry_proto_init() 4221 file_google_cloud_vision_v1p4beta1_product_search_proto_init() 4222 file_google_cloud_vision_v1p4beta1_text_annotation_proto_init() 4223 file_google_cloud_vision_v1p4beta1_web_detection_proto_init() 4224 if !protoimpl.UnsafeEnabled { 4225 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4226 switch v := v.(*Feature); i { 4227 case 0: 4228 return &v.state 4229 case 1: 4230 return &v.sizeCache 4231 case 2: 4232 return &v.unknownFields 4233 default: 4234 return nil 4235 } 4236 } 4237 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4238 switch v := v.(*ImageSource); i { 4239 case 0: 4240 return &v.state 4241 case 1: 4242 return &v.sizeCache 4243 case 2: 4244 return &v.unknownFields 4245 default: 4246 return nil 4247 } 4248 } 4249 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4250 switch v := v.(*Image); i { 4251 case 0: 4252 return &v.state 4253 case 1: 4254 return &v.sizeCache 4255 case 2: 4256 return &v.unknownFields 4257 default: 4258 return nil 4259 } 4260 } 4261 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4262 switch v := v.(*FaceAnnotation); i { 4263 case 0: 4264 return &v.state 4265 case 1: 4266 return &v.sizeCache 4267 case 2: 4268 return &v.unknownFields 4269 default: 4270 return nil 4271 } 4272 } 4273 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4274 switch v := v.(*LocationInfo); i { 4275 case 0: 4276 return &v.state 4277 case 1: 4278 return &v.sizeCache 4279 case 2: 4280 return &v.unknownFields 4281 default: 4282 return nil 4283 } 4284 } 4285 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4286 switch v := v.(*Property); i { 4287 case 0: 4288 return &v.state 4289 case 1: 4290 return &v.sizeCache 4291 case 2: 4292 return &v.unknownFields 4293 default: 4294 return nil 4295 } 4296 } 4297 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4298 switch v := v.(*EntityAnnotation); i { 4299 case 0: 4300 return &v.state 4301 case 1: 4302 return &v.sizeCache 4303 case 2: 4304 return &v.unknownFields 4305 default: 4306 return nil 4307 } 4308 } 4309 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4310 switch v := v.(*LocalizedObjectAnnotation); i { 4311 case 0: 4312 return &v.state 4313 case 1: 4314 return &v.sizeCache 4315 case 2: 4316 return &v.unknownFields 4317 default: 4318 return nil 4319 } 4320 } 4321 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4322 switch v := v.(*SafeSearchAnnotation); i { 4323 case 0: 4324 return &v.state 4325 case 1: 4326 return &v.sizeCache 4327 case 2: 4328 return &v.unknownFields 4329 default: 4330 return nil 4331 } 4332 } 4333 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4334 switch v := v.(*LatLongRect); i { 4335 case 0: 4336 return &v.state 4337 case 1: 4338 return &v.sizeCache 4339 case 2: 4340 return &v.unknownFields 4341 default: 4342 return nil 4343 } 4344 } 4345 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4346 switch v := v.(*ColorInfo); i { 4347 case 0: 4348 return &v.state 4349 case 1: 4350 return &v.sizeCache 4351 case 2: 4352 return &v.unknownFields 4353 default: 4354 return nil 4355 } 4356 } 4357 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4358 switch v := v.(*DominantColorsAnnotation); i { 4359 case 0: 4360 return &v.state 4361 case 1: 4362 return &v.sizeCache 4363 case 2: 4364 return &v.unknownFields 4365 default: 4366 return nil 4367 } 4368 } 4369 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4370 switch v := v.(*ImageProperties); i { 4371 case 0: 4372 return &v.state 4373 case 1: 4374 return &v.sizeCache 4375 case 2: 4376 return &v.unknownFields 4377 default: 4378 return nil 4379 } 4380 } 4381 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4382 switch v := v.(*CropHint); i { 4383 case 0: 4384 return &v.state 4385 case 1: 4386 return &v.sizeCache 4387 case 2: 4388 return &v.unknownFields 4389 default: 4390 return nil 4391 } 4392 } 4393 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4394 switch v := v.(*CropHintsAnnotation); i { 4395 case 0: 4396 return &v.state 4397 case 1: 4398 return &v.sizeCache 4399 case 2: 4400 return &v.unknownFields 4401 default: 4402 return nil 4403 } 4404 } 4405 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4406 switch v := v.(*CropHintsParams); i { 4407 case 0: 4408 return &v.state 4409 case 1: 4410 return &v.sizeCache 4411 case 2: 4412 return &v.unknownFields 4413 default: 4414 return nil 4415 } 4416 } 4417 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4418 switch v := v.(*WebDetectionParams); i { 4419 case 0: 4420 return &v.state 4421 case 1: 4422 return &v.sizeCache 4423 case 2: 4424 return &v.unknownFields 4425 default: 4426 return nil 4427 } 4428 } 4429 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4430 switch v := v.(*TextDetectionParams); i { 4431 case 0: 4432 return &v.state 4433 case 1: 4434 return &v.sizeCache 4435 case 2: 4436 return &v.unknownFields 4437 default: 4438 return nil 4439 } 4440 } 4441 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4442 switch v := v.(*ImageContext); i { 4443 case 0: 4444 return &v.state 4445 case 1: 4446 return &v.sizeCache 4447 case 2: 4448 return &v.unknownFields 4449 default: 4450 return nil 4451 } 4452 } 4453 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4454 switch v := v.(*AnnotateImageRequest); i { 4455 case 0: 4456 return &v.state 4457 case 1: 4458 return &v.sizeCache 4459 case 2: 4460 return &v.unknownFields 4461 default: 4462 return nil 4463 } 4464 } 4465 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4466 switch v := v.(*ImageAnnotationContext); i { 4467 case 0: 4468 return &v.state 4469 case 1: 4470 return &v.sizeCache 4471 case 2: 4472 return &v.unknownFields 4473 default: 4474 return nil 4475 } 4476 } 4477 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4478 switch v := v.(*AnnotateImageResponse); i { 4479 case 0: 4480 return &v.state 4481 case 1: 4482 return &v.sizeCache 4483 case 2: 4484 return &v.unknownFields 4485 default: 4486 return nil 4487 } 4488 } 4489 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4490 switch v := v.(*BatchAnnotateImagesRequest); i { 4491 case 0: 4492 return &v.state 4493 case 1: 4494 return &v.sizeCache 4495 case 2: 4496 return &v.unknownFields 4497 default: 4498 return nil 4499 } 4500 } 4501 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4502 switch v := v.(*BatchAnnotateImagesResponse); i { 4503 case 0: 4504 return &v.state 4505 case 1: 4506 return &v.sizeCache 4507 case 2: 4508 return &v.unknownFields 4509 default: 4510 return nil 4511 } 4512 } 4513 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4514 switch v := v.(*AnnotateFileRequest); i { 4515 case 0: 4516 return &v.state 4517 case 1: 4518 return &v.sizeCache 4519 case 2: 4520 return &v.unknownFields 4521 default: 4522 return nil 4523 } 4524 } 4525 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4526 switch v := v.(*AnnotateFileResponse); i { 4527 case 0: 4528 return &v.state 4529 case 1: 4530 return &v.sizeCache 4531 case 2: 4532 return &v.unknownFields 4533 default: 4534 return nil 4535 } 4536 } 4537 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4538 switch v := v.(*BatchAnnotateFilesRequest); i { 4539 case 0: 4540 return &v.state 4541 case 1: 4542 return &v.sizeCache 4543 case 2: 4544 return &v.unknownFields 4545 default: 4546 return nil 4547 } 4548 } 4549 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4550 switch v := v.(*BatchAnnotateFilesResponse); i { 4551 case 0: 4552 return &v.state 4553 case 1: 4554 return &v.sizeCache 4555 case 2: 4556 return &v.unknownFields 4557 default: 4558 return nil 4559 } 4560 } 4561 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4562 switch v := v.(*AsyncAnnotateFileRequest); i { 4563 case 0: 4564 return &v.state 4565 case 1: 4566 return &v.sizeCache 4567 case 2: 4568 return &v.unknownFields 4569 default: 4570 return nil 4571 } 4572 } 4573 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4574 switch v := v.(*AsyncAnnotateFileResponse); i { 4575 case 0: 4576 return &v.state 4577 case 1: 4578 return &v.sizeCache 4579 case 2: 4580 return &v.unknownFields 4581 default: 4582 return nil 4583 } 4584 } 4585 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4586 switch v := v.(*AsyncBatchAnnotateImagesRequest); i { 4587 case 0: 4588 return &v.state 4589 case 1: 4590 return &v.sizeCache 4591 case 2: 4592 return &v.unknownFields 4593 default: 4594 return nil 4595 } 4596 } 4597 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4598 switch v := v.(*AsyncBatchAnnotateImagesResponse); i { 4599 case 0: 4600 return &v.state 4601 case 1: 4602 return &v.sizeCache 4603 case 2: 4604 return &v.unknownFields 4605 default: 4606 return nil 4607 } 4608 } 4609 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4610 switch v := v.(*AsyncBatchAnnotateFilesRequest); i { 4611 case 0: 4612 return &v.state 4613 case 1: 4614 return &v.sizeCache 4615 case 2: 4616 return &v.unknownFields 4617 default: 4618 return nil 4619 } 4620 } 4621 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4622 switch v := v.(*AsyncBatchAnnotateFilesResponse); i { 4623 case 0: 4624 return &v.state 4625 case 1: 4626 return &v.sizeCache 4627 case 2: 4628 return &v.unknownFields 4629 default: 4630 return nil 4631 } 4632 } 4633 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4634 switch v := v.(*InputConfig); i { 4635 case 0: 4636 return &v.state 4637 case 1: 4638 return &v.sizeCache 4639 case 2: 4640 return &v.unknownFields 4641 default: 4642 return nil 4643 } 4644 } 4645 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4646 switch v := v.(*OutputConfig); i { 4647 case 0: 4648 return &v.state 4649 case 1: 4650 return &v.sizeCache 4651 case 2: 4652 return &v.unknownFields 4653 default: 4654 return nil 4655 } 4656 } 4657 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4658 switch v := v.(*GcsSource); i { 4659 case 0: 4660 return &v.state 4661 case 1: 4662 return &v.sizeCache 4663 case 2: 4664 return &v.unknownFields 4665 default: 4666 return nil 4667 } 4668 } 4669 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4670 switch v := v.(*GcsDestination); i { 4671 case 0: 4672 return &v.state 4673 case 1: 4674 return &v.sizeCache 4675 case 2: 4676 return &v.unknownFields 4677 default: 4678 return nil 4679 } 4680 } 4681 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4682 switch v := v.(*OperationMetadata); i { 4683 case 0: 4684 return &v.state 4685 case 1: 4686 return &v.sizeCache 4687 case 2: 4688 return &v.unknownFields 4689 default: 4690 return nil 4691 } 4692 } 4693 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 4694 switch v := v.(*FaceAnnotation_Landmark); i { 4695 case 0: 4696 return &v.state 4697 case 1: 4698 return &v.sizeCache 4699 case 2: 4700 return &v.unknownFields 4701 default: 4702 return nil 4703 } 4704 } 4705 } 4706 type x struct{} 4707 out := protoimpl.TypeBuilder{ 4708 File: protoimpl.DescBuilder{ 4709 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4710 RawDescriptor: file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc, 4711 NumEnums: 4, 4712 NumMessages: 40, 4713 NumExtensions: 0, 4714 NumServices: 1, 4715 }, 4716 GoTypes: file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes, 4717 DependencyIndexes: file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs, 4718 EnumInfos: file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes, 4719 MessageInfos: file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes, 4720 }.Build() 4721 File_google_cloud_vision_v1p4beta1_image_annotator_proto = out.File 4722 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc = nil 4723 file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes = nil 4724 file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs = nil 4725} 4726 4727// Reference imports to suppress errors if they are not otherwise used. 4728var _ context.Context 4729var _ grpc.ClientConnInterface 4730 4731// This is a compile-time assertion to ensure that this generated file 4732// is compatible with the grpc package it is being compiled against. 4733const _ = grpc.SupportPackageIsVersion6 4734 4735// ImageAnnotatorClient is the client API for ImageAnnotator service. 4736// 4737// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4738type ImageAnnotatorClient interface { 4739 // Run image detection and annotation for a batch of images. 4740 BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) 4741 // Service that performs image detection and annotation for a batch of files. 4742 // Now only "application/pdf", "image/tiff" and "image/gif" are supported. 4743 // 4744 // This service will extract at most 5 (customers can specify which 5 in 4745 // AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each 4746 // file provided and perform detection and annotation for each image 4747 // extracted. 4748 BatchAnnotateFiles(ctx context.Context, in *BatchAnnotateFilesRequest, opts ...grpc.CallOption) (*BatchAnnotateFilesResponse, error) 4749 // Run asynchronous image detection and annotation for a list of images. 4750 // 4751 // Progress and results can be retrieved through the 4752 // `google.longrunning.Operations` interface. 4753 // `Operation.metadata` contains `OperationMetadata` (metadata). 4754 // `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). 4755 // 4756 // This service will write image annotation outputs to json files in customer 4757 // GCS bucket, each json file containing BatchAnnotateImagesResponse proto. 4758 AsyncBatchAnnotateImages(ctx context.Context, in *AsyncBatchAnnotateImagesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4759 // Run asynchronous image detection and annotation for a list of generic 4760 // files, such as PDF files, which may contain multiple pages and multiple 4761 // images per page. Progress and results can be retrieved through the 4762 // `google.longrunning.Operations` interface. 4763 // `Operation.metadata` contains `OperationMetadata` (metadata). 4764 // `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). 4765 AsyncBatchAnnotateFiles(ctx context.Context, in *AsyncBatchAnnotateFilesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4766} 4767 4768type imageAnnotatorClient struct { 4769 cc grpc.ClientConnInterface 4770} 4771 4772func NewImageAnnotatorClient(cc grpc.ClientConnInterface) ImageAnnotatorClient { 4773 return &imageAnnotatorClient{cc} 4774} 4775 4776func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) { 4777 out := new(BatchAnnotateImagesResponse) 4778 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateImages", in, out, opts...) 4779 if err != nil { 4780 return nil, err 4781 } 4782 return out, nil 4783} 4784 4785func (c *imageAnnotatorClient) BatchAnnotateFiles(ctx context.Context, in *BatchAnnotateFilesRequest, opts ...grpc.CallOption) (*BatchAnnotateFilesResponse, error) { 4786 out := new(BatchAnnotateFilesResponse) 4787 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateFiles", in, out, opts...) 4788 if err != nil { 4789 return nil, err 4790 } 4791 return out, nil 4792} 4793 4794func (c *imageAnnotatorClient) AsyncBatchAnnotateImages(ctx context.Context, in *AsyncBatchAnnotateImagesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4795 out := new(longrunning.Operation) 4796 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateImages", in, out, opts...) 4797 if err != nil { 4798 return nil, err 4799 } 4800 return out, nil 4801} 4802 4803func (c *imageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, in *AsyncBatchAnnotateFilesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4804 out := new(longrunning.Operation) 4805 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateFiles", in, out, opts...) 4806 if err != nil { 4807 return nil, err 4808 } 4809 return out, nil 4810} 4811 4812// ImageAnnotatorServer is the server API for ImageAnnotator service. 4813type ImageAnnotatorServer interface { 4814 // Run image detection and annotation for a batch of images. 4815 BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) 4816 // Service that performs image detection and annotation for a batch of files. 4817 // Now only "application/pdf", "image/tiff" and "image/gif" are supported. 4818 // 4819 // This service will extract at most 5 (customers can specify which 5 in 4820 // AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each 4821 // file provided and perform detection and annotation for each image 4822 // extracted. 4823 BatchAnnotateFiles(context.Context, *BatchAnnotateFilesRequest) (*BatchAnnotateFilesResponse, error) 4824 // Run asynchronous image detection and annotation for a list of images. 4825 // 4826 // Progress and results can be retrieved through the 4827 // `google.longrunning.Operations` interface. 4828 // `Operation.metadata` contains `OperationMetadata` (metadata). 4829 // `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). 4830 // 4831 // This service will write image annotation outputs to json files in customer 4832 // GCS bucket, each json file containing BatchAnnotateImagesResponse proto. 4833 AsyncBatchAnnotateImages(context.Context, *AsyncBatchAnnotateImagesRequest) (*longrunning.Operation, error) 4834 // Run asynchronous image detection and annotation for a list of generic 4835 // files, such as PDF files, which may contain multiple pages and multiple 4836 // images per page. Progress and results can be retrieved through the 4837 // `google.longrunning.Operations` interface. 4838 // `Operation.metadata` contains `OperationMetadata` (metadata). 4839 // `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). 4840 AsyncBatchAnnotateFiles(context.Context, *AsyncBatchAnnotateFilesRequest) (*longrunning.Operation, error) 4841} 4842 4843// UnimplementedImageAnnotatorServer can be embedded to have forward compatible implementations. 4844type UnimplementedImageAnnotatorServer struct { 4845} 4846 4847func (*UnimplementedImageAnnotatorServer) BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) { 4848 return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateImages not implemented") 4849} 4850func (*UnimplementedImageAnnotatorServer) BatchAnnotateFiles(context.Context, *BatchAnnotateFilesRequest) (*BatchAnnotateFilesResponse, error) { 4851 return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateFiles not implemented") 4852} 4853func (*UnimplementedImageAnnotatorServer) AsyncBatchAnnotateImages(context.Context, *AsyncBatchAnnotateImagesRequest) (*longrunning.Operation, error) { 4854 return nil, status1.Errorf(codes.Unimplemented, "method AsyncBatchAnnotateImages not implemented") 4855} 4856func (*UnimplementedImageAnnotatorServer) AsyncBatchAnnotateFiles(context.Context, *AsyncBatchAnnotateFilesRequest) (*longrunning.Operation, error) { 4857 return nil, status1.Errorf(codes.Unimplemented, "method AsyncBatchAnnotateFiles not implemented") 4858} 4859 4860func RegisterImageAnnotatorServer(s *grpc.Server, srv ImageAnnotatorServer) { 4861 s.RegisterService(&_ImageAnnotator_serviceDesc, srv) 4862} 4863 4864func _ImageAnnotator_BatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4865 in := new(BatchAnnotateImagesRequest) 4866 if err := dec(in); err != nil { 4867 return nil, err 4868 } 4869 if interceptor == nil { 4870 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, in) 4871 } 4872 info := &grpc.UnaryServerInfo{ 4873 Server: srv, 4874 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateImages", 4875 } 4876 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4877 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, req.(*BatchAnnotateImagesRequest)) 4878 } 4879 return interceptor(ctx, in, info, handler) 4880} 4881 4882func _ImageAnnotator_BatchAnnotateFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4883 in := new(BatchAnnotateFilesRequest) 4884 if err := dec(in); err != nil { 4885 return nil, err 4886 } 4887 if interceptor == nil { 4888 return srv.(ImageAnnotatorServer).BatchAnnotateFiles(ctx, in) 4889 } 4890 info := &grpc.UnaryServerInfo{ 4891 Server: srv, 4892 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateFiles", 4893 } 4894 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4895 return srv.(ImageAnnotatorServer).BatchAnnotateFiles(ctx, req.(*BatchAnnotateFilesRequest)) 4896 } 4897 return interceptor(ctx, in, info, handler) 4898} 4899 4900func _ImageAnnotator_AsyncBatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4901 in := new(AsyncBatchAnnotateImagesRequest) 4902 if err := dec(in); err != nil { 4903 return nil, err 4904 } 4905 if interceptor == nil { 4906 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateImages(ctx, in) 4907 } 4908 info := &grpc.UnaryServerInfo{ 4909 Server: srv, 4910 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateImages", 4911 } 4912 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4913 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateImages(ctx, req.(*AsyncBatchAnnotateImagesRequest)) 4914 } 4915 return interceptor(ctx, in, info, handler) 4916} 4917 4918func _ImageAnnotator_AsyncBatchAnnotateFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4919 in := new(AsyncBatchAnnotateFilesRequest) 4920 if err := dec(in); err != nil { 4921 return nil, err 4922 } 4923 if interceptor == nil { 4924 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateFiles(ctx, in) 4925 } 4926 info := &grpc.UnaryServerInfo{ 4927 Server: srv, 4928 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateFiles", 4929 } 4930 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4931 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateFiles(ctx, req.(*AsyncBatchAnnotateFilesRequest)) 4932 } 4933 return interceptor(ctx, in, info, handler) 4934} 4935 4936var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{ 4937 ServiceName: "google.cloud.vision.v1p4beta1.ImageAnnotator", 4938 HandlerType: (*ImageAnnotatorServer)(nil), 4939 Methods: []grpc.MethodDesc{ 4940 { 4941 MethodName: "BatchAnnotateImages", 4942 Handler: _ImageAnnotator_BatchAnnotateImages_Handler, 4943 }, 4944 { 4945 MethodName: "BatchAnnotateFiles", 4946 Handler: _ImageAnnotator_BatchAnnotateFiles_Handler, 4947 }, 4948 { 4949 MethodName: "AsyncBatchAnnotateImages", 4950 Handler: _ImageAnnotator_AsyncBatchAnnotateImages_Handler, 4951 }, 4952 { 4953 MethodName: "AsyncBatchAnnotateFiles", 4954 Handler: _ImageAnnotator_AsyncBatchAnnotateFiles_Handler, 4955 }, 4956 }, 4957 Streams: []grpc.StreamDesc{}, 4958 Metadata: "google/cloud/vision/v1p4beta1/image_annotator.proto", 4959} 4960