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