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.22.0 19// protoc v3.11.2 20// source: google/cloud/vision/v1p4beta1/image_annotator.proto 21 22package vision 23 24import ( 25 context "context" 26 reflect "reflect" 27 sync "sync" 28 29 proto "github.com/golang/protobuf/proto" 30 timestamp "github.com/golang/protobuf/ptypes/timestamp" 31 _ "google.golang.org/genproto/googleapis/api/annotations" 32 longrunning "google.golang.org/genproto/googleapis/longrunning" 33 status "google.golang.org/genproto/googleapis/rpc/status" 34 color "google.golang.org/genproto/googleapis/type/color" 35 latlng "google.golang.org/genproto/googleapis/type/latlng" 36 _ "google.golang.org/genproto/protobuf/field_mask" 37 grpc "google.golang.org/grpc" 38 codes "google.golang.org/grpc/codes" 39 status1 "google.golang.org/grpc/status" 40 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 41 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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{37, 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// Image context and/or feature-specific parameters. 1766type ImageContext struct { 1767 state protoimpl.MessageState 1768 sizeCache protoimpl.SizeCache 1769 unknownFields protoimpl.UnknownFields 1770 1771 // Not used. 1772 LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"` 1773 // List of languages to use for TEXT_DETECTION. In most cases, an empty value 1774 // yields the best results since it enables automatic language detection. For 1775 // languages based on the Latin alphabet, setting `language_hints` is not 1776 // needed. In rare cases, when the language of the text in the image is known, 1777 // setting a hint will help get better results (although it will be a 1778 // significant hindrance if the hint is wrong). Text detection returns an 1779 // error if one or more of the specified languages is not one of the 1780 // [supported languages](https://cloud.google.com/vision/docs/languages). 1781 LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"` 1782 // Parameters for crop hints annotation request. 1783 CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"` 1784 // Parameters for face recognition. 1785 FaceRecognitionParams *FaceRecognitionParams `protobuf:"bytes,10,opt,name=face_recognition_params,json=faceRecognitionParams,proto3" json:"face_recognition_params,omitempty"` 1786 // Parameters for product search. 1787 ProductSearchParams *ProductSearchParams `protobuf:"bytes,5,opt,name=product_search_params,json=productSearchParams,proto3" json:"product_search_params,omitempty"` 1788 // Parameters for web detection. 1789 WebDetectionParams *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"` 1790} 1791 1792func (x *ImageContext) Reset() { 1793 *x = ImageContext{} 1794 if protoimpl.UnsafeEnabled { 1795 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17] 1796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1797 ms.StoreMessageInfo(mi) 1798 } 1799} 1800 1801func (x *ImageContext) String() string { 1802 return protoimpl.X.MessageStringOf(x) 1803} 1804 1805func (*ImageContext) ProtoMessage() {} 1806 1807func (x *ImageContext) ProtoReflect() protoreflect.Message { 1808 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17] 1809 if protoimpl.UnsafeEnabled && x != nil { 1810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1811 if ms.LoadMessageInfo() == nil { 1812 ms.StoreMessageInfo(mi) 1813 } 1814 return ms 1815 } 1816 return mi.MessageOf(x) 1817} 1818 1819// Deprecated: Use ImageContext.ProtoReflect.Descriptor instead. 1820func (*ImageContext) Descriptor() ([]byte, []int) { 1821 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{17} 1822} 1823 1824func (x *ImageContext) GetLatLongRect() *LatLongRect { 1825 if x != nil { 1826 return x.LatLongRect 1827 } 1828 return nil 1829} 1830 1831func (x *ImageContext) GetLanguageHints() []string { 1832 if x != nil { 1833 return x.LanguageHints 1834 } 1835 return nil 1836} 1837 1838func (x *ImageContext) GetCropHintsParams() *CropHintsParams { 1839 if x != nil { 1840 return x.CropHintsParams 1841 } 1842 return nil 1843} 1844 1845func (x *ImageContext) GetFaceRecognitionParams() *FaceRecognitionParams { 1846 if x != nil { 1847 return x.FaceRecognitionParams 1848 } 1849 return nil 1850} 1851 1852func (x *ImageContext) GetProductSearchParams() *ProductSearchParams { 1853 if x != nil { 1854 return x.ProductSearchParams 1855 } 1856 return nil 1857} 1858 1859func (x *ImageContext) GetWebDetectionParams() *WebDetectionParams { 1860 if x != nil { 1861 return x.WebDetectionParams 1862 } 1863 return nil 1864} 1865 1866// Request for performing Google Cloud Vision API tasks over a user-provided 1867// image, with user-requested features, and with context information. 1868type AnnotateImageRequest struct { 1869 state protoimpl.MessageState 1870 sizeCache protoimpl.SizeCache 1871 unknownFields protoimpl.UnknownFields 1872 1873 // The image to be processed. 1874 Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` 1875 // Requested features. 1876 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 1877 // Additional context that may accompany the image. 1878 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 1879} 1880 1881func (x *AnnotateImageRequest) Reset() { 1882 *x = AnnotateImageRequest{} 1883 if protoimpl.UnsafeEnabled { 1884 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18] 1885 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1886 ms.StoreMessageInfo(mi) 1887 } 1888} 1889 1890func (x *AnnotateImageRequest) String() string { 1891 return protoimpl.X.MessageStringOf(x) 1892} 1893 1894func (*AnnotateImageRequest) ProtoMessage() {} 1895 1896func (x *AnnotateImageRequest) ProtoReflect() protoreflect.Message { 1897 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18] 1898 if protoimpl.UnsafeEnabled && x != nil { 1899 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1900 if ms.LoadMessageInfo() == nil { 1901 ms.StoreMessageInfo(mi) 1902 } 1903 return ms 1904 } 1905 return mi.MessageOf(x) 1906} 1907 1908// Deprecated: Use AnnotateImageRequest.ProtoReflect.Descriptor instead. 1909func (*AnnotateImageRequest) Descriptor() ([]byte, []int) { 1910 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{18} 1911} 1912 1913func (x *AnnotateImageRequest) GetImage() *Image { 1914 if x != nil { 1915 return x.Image 1916 } 1917 return nil 1918} 1919 1920func (x *AnnotateImageRequest) GetFeatures() []*Feature { 1921 if x != nil { 1922 return x.Features 1923 } 1924 return nil 1925} 1926 1927func (x *AnnotateImageRequest) GetImageContext() *ImageContext { 1928 if x != nil { 1929 return x.ImageContext 1930 } 1931 return nil 1932} 1933 1934// If an image was produced from a file (e.g. a PDF), this message gives 1935// information about the source of that image. 1936type ImageAnnotationContext struct { 1937 state protoimpl.MessageState 1938 sizeCache protoimpl.SizeCache 1939 unknownFields protoimpl.UnknownFields 1940 1941 // The URI of the file used to produce the image. 1942 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 1943 // If the file was a PDF or TIFF, this field gives the page number within 1944 // the file used to produce the image. 1945 PageNumber int32 `protobuf:"varint,2,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"` 1946} 1947 1948func (x *ImageAnnotationContext) Reset() { 1949 *x = ImageAnnotationContext{} 1950 if protoimpl.UnsafeEnabled { 1951 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19] 1952 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1953 ms.StoreMessageInfo(mi) 1954 } 1955} 1956 1957func (x *ImageAnnotationContext) String() string { 1958 return protoimpl.X.MessageStringOf(x) 1959} 1960 1961func (*ImageAnnotationContext) ProtoMessage() {} 1962 1963func (x *ImageAnnotationContext) ProtoReflect() protoreflect.Message { 1964 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19] 1965 if protoimpl.UnsafeEnabled && x != nil { 1966 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1967 if ms.LoadMessageInfo() == nil { 1968 ms.StoreMessageInfo(mi) 1969 } 1970 return ms 1971 } 1972 return mi.MessageOf(x) 1973} 1974 1975// Deprecated: Use ImageAnnotationContext.ProtoReflect.Descriptor instead. 1976func (*ImageAnnotationContext) Descriptor() ([]byte, []int) { 1977 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{19} 1978} 1979 1980func (x *ImageAnnotationContext) GetUri() string { 1981 if x != nil { 1982 return x.Uri 1983 } 1984 return "" 1985} 1986 1987func (x *ImageAnnotationContext) GetPageNumber() int32 { 1988 if x != nil { 1989 return x.PageNumber 1990 } 1991 return 0 1992} 1993 1994// Response to an image annotation request. 1995type AnnotateImageResponse struct { 1996 state protoimpl.MessageState 1997 sizeCache protoimpl.SizeCache 1998 unknownFields protoimpl.UnknownFields 1999 2000 // If present, face detection has completed successfully. 2001 FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"` 2002 // If present, landmark detection has completed successfully. 2003 LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"` 2004 // If present, logo detection has completed successfully. 2005 LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"` 2006 // If present, label detection has completed successfully. 2007 LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"` 2008 // If present, localized object detection has completed successfully. 2009 // This will be sorted descending by confidence score. 2010 LocalizedObjectAnnotations []*LocalizedObjectAnnotation `protobuf:"bytes,22,rep,name=localized_object_annotations,json=localizedObjectAnnotations,proto3" json:"localized_object_annotations,omitempty"` 2011 // If present, text (OCR) detection has completed successfully. 2012 TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"` 2013 // If present, text (OCR) detection or document (OCR) text detection has 2014 // completed successfully. 2015 // This annotation provides the structural hierarchy for the OCR detected 2016 // text. 2017 FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"` 2018 // If present, safe-search annotation has completed successfully. 2019 SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"` 2020 // If present, image properties were extracted successfully. 2021 ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"` 2022 // If present, crop hints have completed successfully. 2023 CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"` 2024 // If present, web detection has completed successfully. 2025 WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"` 2026 // If present, product search has completed successfully. 2027 ProductSearchResults *ProductSearchResults `protobuf:"bytes,14,opt,name=product_search_results,json=productSearchResults,proto3" json:"product_search_results,omitempty"` 2028 // If set, represents the error message for the operation. 2029 // Note that filled-in image annotations are guaranteed to be 2030 // correct, even when `error` is set. 2031 Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"` 2032 // If present, contextual information is needed to understand where this image 2033 // comes from. 2034 Context *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context,proto3" json:"context,omitempty"` 2035} 2036 2037func (x *AnnotateImageResponse) Reset() { 2038 *x = AnnotateImageResponse{} 2039 if protoimpl.UnsafeEnabled { 2040 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20] 2041 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2042 ms.StoreMessageInfo(mi) 2043 } 2044} 2045 2046func (x *AnnotateImageResponse) String() string { 2047 return protoimpl.X.MessageStringOf(x) 2048} 2049 2050func (*AnnotateImageResponse) ProtoMessage() {} 2051 2052func (x *AnnotateImageResponse) ProtoReflect() protoreflect.Message { 2053 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20] 2054 if protoimpl.UnsafeEnabled && x != nil { 2055 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2056 if ms.LoadMessageInfo() == nil { 2057 ms.StoreMessageInfo(mi) 2058 } 2059 return ms 2060 } 2061 return mi.MessageOf(x) 2062} 2063 2064// Deprecated: Use AnnotateImageResponse.ProtoReflect.Descriptor instead. 2065func (*AnnotateImageResponse) Descriptor() ([]byte, []int) { 2066 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{20} 2067} 2068 2069func (x *AnnotateImageResponse) GetFaceAnnotations() []*FaceAnnotation { 2070 if x != nil { 2071 return x.FaceAnnotations 2072 } 2073 return nil 2074} 2075 2076func (x *AnnotateImageResponse) GetLandmarkAnnotations() []*EntityAnnotation { 2077 if x != nil { 2078 return x.LandmarkAnnotations 2079 } 2080 return nil 2081} 2082 2083func (x *AnnotateImageResponse) GetLogoAnnotations() []*EntityAnnotation { 2084 if x != nil { 2085 return x.LogoAnnotations 2086 } 2087 return nil 2088} 2089 2090func (x *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation { 2091 if x != nil { 2092 return x.LabelAnnotations 2093 } 2094 return nil 2095} 2096 2097func (x *AnnotateImageResponse) GetLocalizedObjectAnnotations() []*LocalizedObjectAnnotation { 2098 if x != nil { 2099 return x.LocalizedObjectAnnotations 2100 } 2101 return nil 2102} 2103 2104func (x *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation { 2105 if x != nil { 2106 return x.TextAnnotations 2107 } 2108 return nil 2109} 2110 2111func (x *AnnotateImageResponse) GetFullTextAnnotation() *TextAnnotation { 2112 if x != nil { 2113 return x.FullTextAnnotation 2114 } 2115 return nil 2116} 2117 2118func (x *AnnotateImageResponse) GetSafeSearchAnnotation() *SafeSearchAnnotation { 2119 if x != nil { 2120 return x.SafeSearchAnnotation 2121 } 2122 return nil 2123} 2124 2125func (x *AnnotateImageResponse) GetImagePropertiesAnnotation() *ImageProperties { 2126 if x != nil { 2127 return x.ImagePropertiesAnnotation 2128 } 2129 return nil 2130} 2131 2132func (x *AnnotateImageResponse) GetCropHintsAnnotation() *CropHintsAnnotation { 2133 if x != nil { 2134 return x.CropHintsAnnotation 2135 } 2136 return nil 2137} 2138 2139func (x *AnnotateImageResponse) GetWebDetection() *WebDetection { 2140 if x != nil { 2141 return x.WebDetection 2142 } 2143 return nil 2144} 2145 2146func (x *AnnotateImageResponse) GetProductSearchResults() *ProductSearchResults { 2147 if x != nil { 2148 return x.ProductSearchResults 2149 } 2150 return nil 2151} 2152 2153func (x *AnnotateImageResponse) GetError() *status.Status { 2154 if x != nil { 2155 return x.Error 2156 } 2157 return nil 2158} 2159 2160func (x *AnnotateImageResponse) GetContext() *ImageAnnotationContext { 2161 if x != nil { 2162 return x.Context 2163 } 2164 return nil 2165} 2166 2167// Multiple image annotation requests are batched into a single service call. 2168type BatchAnnotateImagesRequest struct { 2169 state protoimpl.MessageState 2170 sizeCache protoimpl.SizeCache 2171 unknownFields protoimpl.UnknownFields 2172 2173 // Required. Individual image annotation requests for this batch. 2174 Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2175} 2176 2177func (x *BatchAnnotateImagesRequest) Reset() { 2178 *x = BatchAnnotateImagesRequest{} 2179 if protoimpl.UnsafeEnabled { 2180 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21] 2181 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2182 ms.StoreMessageInfo(mi) 2183 } 2184} 2185 2186func (x *BatchAnnotateImagesRequest) String() string { 2187 return protoimpl.X.MessageStringOf(x) 2188} 2189 2190func (*BatchAnnotateImagesRequest) ProtoMessage() {} 2191 2192func (x *BatchAnnotateImagesRequest) ProtoReflect() protoreflect.Message { 2193 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21] 2194 if protoimpl.UnsafeEnabled && x != nil { 2195 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2196 if ms.LoadMessageInfo() == nil { 2197 ms.StoreMessageInfo(mi) 2198 } 2199 return ms 2200 } 2201 return mi.MessageOf(x) 2202} 2203 2204// Deprecated: Use BatchAnnotateImagesRequest.ProtoReflect.Descriptor instead. 2205func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) { 2206 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{21} 2207} 2208 2209func (x *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest { 2210 if x != nil { 2211 return x.Requests 2212 } 2213 return nil 2214} 2215 2216// Response to a batch image annotation request. 2217type BatchAnnotateImagesResponse struct { 2218 state protoimpl.MessageState 2219 sizeCache protoimpl.SizeCache 2220 unknownFields protoimpl.UnknownFields 2221 2222 // Individual responses to image annotation requests within the batch. 2223 Responses []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2224} 2225 2226func (x *BatchAnnotateImagesResponse) Reset() { 2227 *x = BatchAnnotateImagesResponse{} 2228 if protoimpl.UnsafeEnabled { 2229 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22] 2230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2231 ms.StoreMessageInfo(mi) 2232 } 2233} 2234 2235func (x *BatchAnnotateImagesResponse) String() string { 2236 return protoimpl.X.MessageStringOf(x) 2237} 2238 2239func (*BatchAnnotateImagesResponse) ProtoMessage() {} 2240 2241func (x *BatchAnnotateImagesResponse) ProtoReflect() protoreflect.Message { 2242 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22] 2243 if protoimpl.UnsafeEnabled && x != nil { 2244 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2245 if ms.LoadMessageInfo() == nil { 2246 ms.StoreMessageInfo(mi) 2247 } 2248 return ms 2249 } 2250 return mi.MessageOf(x) 2251} 2252 2253// Deprecated: Use BatchAnnotateImagesResponse.ProtoReflect.Descriptor instead. 2254func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) { 2255 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{22} 2256} 2257 2258func (x *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse { 2259 if x != nil { 2260 return x.Responses 2261 } 2262 return nil 2263} 2264 2265// A request to annotate one single file, e.g. a PDF, TIFF or GIF file. 2266type AnnotateFileRequest struct { 2267 state protoimpl.MessageState 2268 sizeCache protoimpl.SizeCache 2269 unknownFields protoimpl.UnknownFields 2270 2271 // Required. Information about the input file. 2272 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2273 // Required. Requested features. 2274 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 2275 // Additional context that may accompany the image(s) in the file. 2276 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 2277 // Pages of the file to perform image annotation. 2278 // 2279 // Pages starts from 1, we assume the first page of the file is page 1. 2280 // At most 5 pages are supported per request. Pages can be negative. 2281 // 2282 // Page 1 means the first page. 2283 // Page 2 means the second page. 2284 // Page -1 means the last page. 2285 // Page -2 means the second to the last page. 2286 // 2287 // If the file is GIF instead of PDF or TIFF, page refers to GIF frames. 2288 // 2289 // If this field is empty, by default the service performs image annotation 2290 // for the first 5 pages of the file. 2291 Pages []int32 `protobuf:"varint,4,rep,packed,name=pages,proto3" json:"pages,omitempty"` 2292} 2293 2294func (x *AnnotateFileRequest) Reset() { 2295 *x = AnnotateFileRequest{} 2296 if protoimpl.UnsafeEnabled { 2297 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23] 2298 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2299 ms.StoreMessageInfo(mi) 2300 } 2301} 2302 2303func (x *AnnotateFileRequest) String() string { 2304 return protoimpl.X.MessageStringOf(x) 2305} 2306 2307func (*AnnotateFileRequest) ProtoMessage() {} 2308 2309func (x *AnnotateFileRequest) ProtoReflect() protoreflect.Message { 2310 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23] 2311 if protoimpl.UnsafeEnabled && x != nil { 2312 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2313 if ms.LoadMessageInfo() == nil { 2314 ms.StoreMessageInfo(mi) 2315 } 2316 return ms 2317 } 2318 return mi.MessageOf(x) 2319} 2320 2321// Deprecated: Use AnnotateFileRequest.ProtoReflect.Descriptor instead. 2322func (*AnnotateFileRequest) Descriptor() ([]byte, []int) { 2323 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{23} 2324} 2325 2326func (x *AnnotateFileRequest) GetInputConfig() *InputConfig { 2327 if x != nil { 2328 return x.InputConfig 2329 } 2330 return nil 2331} 2332 2333func (x *AnnotateFileRequest) GetFeatures() []*Feature { 2334 if x != nil { 2335 return x.Features 2336 } 2337 return nil 2338} 2339 2340func (x *AnnotateFileRequest) GetImageContext() *ImageContext { 2341 if x != nil { 2342 return x.ImageContext 2343 } 2344 return nil 2345} 2346 2347func (x *AnnotateFileRequest) GetPages() []int32 { 2348 if x != nil { 2349 return x.Pages 2350 } 2351 return nil 2352} 2353 2354// Response to a single file annotation request. A file may contain one or more 2355// images, which individually have their own responses. 2356type AnnotateFileResponse struct { 2357 state protoimpl.MessageState 2358 sizeCache protoimpl.SizeCache 2359 unknownFields protoimpl.UnknownFields 2360 2361 // Information about the file for which this response is generated. 2362 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2363 // Individual responses to images found within the file. This field will be 2364 // empty if the `error` field is set. 2365 Responses []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses,proto3" json:"responses,omitempty"` 2366 // This field gives the total number of pages in the file. 2367 TotalPages int32 `protobuf:"varint,3,opt,name=total_pages,json=totalPages,proto3" json:"total_pages,omitempty"` 2368 // If set, represents the error message for the failed request. The 2369 // `responses` field will not be set in this case. 2370 Error *status.Status `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` 2371} 2372 2373func (x *AnnotateFileResponse) Reset() { 2374 *x = AnnotateFileResponse{} 2375 if protoimpl.UnsafeEnabled { 2376 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24] 2377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2378 ms.StoreMessageInfo(mi) 2379 } 2380} 2381 2382func (x *AnnotateFileResponse) String() string { 2383 return protoimpl.X.MessageStringOf(x) 2384} 2385 2386func (*AnnotateFileResponse) ProtoMessage() {} 2387 2388func (x *AnnotateFileResponse) ProtoReflect() protoreflect.Message { 2389 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24] 2390 if protoimpl.UnsafeEnabled && x != nil { 2391 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2392 if ms.LoadMessageInfo() == nil { 2393 ms.StoreMessageInfo(mi) 2394 } 2395 return ms 2396 } 2397 return mi.MessageOf(x) 2398} 2399 2400// Deprecated: Use AnnotateFileResponse.ProtoReflect.Descriptor instead. 2401func (*AnnotateFileResponse) Descriptor() ([]byte, []int) { 2402 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{24} 2403} 2404 2405func (x *AnnotateFileResponse) GetInputConfig() *InputConfig { 2406 if x != nil { 2407 return x.InputConfig 2408 } 2409 return nil 2410} 2411 2412func (x *AnnotateFileResponse) GetResponses() []*AnnotateImageResponse { 2413 if x != nil { 2414 return x.Responses 2415 } 2416 return nil 2417} 2418 2419func (x *AnnotateFileResponse) GetTotalPages() int32 { 2420 if x != nil { 2421 return x.TotalPages 2422 } 2423 return 0 2424} 2425 2426func (x *AnnotateFileResponse) GetError() *status.Status { 2427 if x != nil { 2428 return x.Error 2429 } 2430 return nil 2431} 2432 2433// A list of requests to annotate files using the BatchAnnotateFiles API. 2434type BatchAnnotateFilesRequest struct { 2435 state protoimpl.MessageState 2436 sizeCache protoimpl.SizeCache 2437 unknownFields protoimpl.UnknownFields 2438 2439 // Required. The list of file annotation requests. Right now we support only 2440 // one AnnotateFileRequest in BatchAnnotateFilesRequest. 2441 Requests []*AnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2442} 2443 2444func (x *BatchAnnotateFilesRequest) Reset() { 2445 *x = BatchAnnotateFilesRequest{} 2446 if protoimpl.UnsafeEnabled { 2447 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25] 2448 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2449 ms.StoreMessageInfo(mi) 2450 } 2451} 2452 2453func (x *BatchAnnotateFilesRequest) String() string { 2454 return protoimpl.X.MessageStringOf(x) 2455} 2456 2457func (*BatchAnnotateFilesRequest) ProtoMessage() {} 2458 2459func (x *BatchAnnotateFilesRequest) ProtoReflect() protoreflect.Message { 2460 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25] 2461 if protoimpl.UnsafeEnabled && x != nil { 2462 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2463 if ms.LoadMessageInfo() == nil { 2464 ms.StoreMessageInfo(mi) 2465 } 2466 return ms 2467 } 2468 return mi.MessageOf(x) 2469} 2470 2471// Deprecated: Use BatchAnnotateFilesRequest.ProtoReflect.Descriptor instead. 2472func (*BatchAnnotateFilesRequest) Descriptor() ([]byte, []int) { 2473 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{25} 2474} 2475 2476func (x *BatchAnnotateFilesRequest) GetRequests() []*AnnotateFileRequest { 2477 if x != nil { 2478 return x.Requests 2479 } 2480 return nil 2481} 2482 2483// A list of file annotation responses. 2484type BatchAnnotateFilesResponse struct { 2485 state protoimpl.MessageState 2486 sizeCache protoimpl.SizeCache 2487 unknownFields protoimpl.UnknownFields 2488 2489 // The list of file annotation responses, each response corresponding to each 2490 // AnnotateFileRequest in BatchAnnotateFilesRequest. 2491 Responses []*AnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2492} 2493 2494func (x *BatchAnnotateFilesResponse) Reset() { 2495 *x = BatchAnnotateFilesResponse{} 2496 if protoimpl.UnsafeEnabled { 2497 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26] 2498 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2499 ms.StoreMessageInfo(mi) 2500 } 2501} 2502 2503func (x *BatchAnnotateFilesResponse) String() string { 2504 return protoimpl.X.MessageStringOf(x) 2505} 2506 2507func (*BatchAnnotateFilesResponse) ProtoMessage() {} 2508 2509func (x *BatchAnnotateFilesResponse) ProtoReflect() protoreflect.Message { 2510 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26] 2511 if protoimpl.UnsafeEnabled && x != nil { 2512 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2513 if ms.LoadMessageInfo() == nil { 2514 ms.StoreMessageInfo(mi) 2515 } 2516 return ms 2517 } 2518 return mi.MessageOf(x) 2519} 2520 2521// Deprecated: Use BatchAnnotateFilesResponse.ProtoReflect.Descriptor instead. 2522func (*BatchAnnotateFilesResponse) Descriptor() ([]byte, []int) { 2523 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{26} 2524} 2525 2526func (x *BatchAnnotateFilesResponse) GetResponses() []*AnnotateFileResponse { 2527 if x != nil { 2528 return x.Responses 2529 } 2530 return nil 2531} 2532 2533// An offline file annotation request. 2534type AsyncAnnotateFileRequest struct { 2535 state protoimpl.MessageState 2536 sizeCache protoimpl.SizeCache 2537 unknownFields protoimpl.UnknownFields 2538 2539 // Required. Information about the input file. 2540 InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 2541 // Required. Requested features. 2542 Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"` 2543 // Additional context that may accompany the image(s) in the file. 2544 ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"` 2545 // Required. The desired output location and metadata (e.g. format). 2546 OutputConfig *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2547} 2548 2549func (x *AsyncAnnotateFileRequest) Reset() { 2550 *x = AsyncAnnotateFileRequest{} 2551 if protoimpl.UnsafeEnabled { 2552 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27] 2553 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2554 ms.StoreMessageInfo(mi) 2555 } 2556} 2557 2558func (x *AsyncAnnotateFileRequest) String() string { 2559 return protoimpl.X.MessageStringOf(x) 2560} 2561 2562func (*AsyncAnnotateFileRequest) ProtoMessage() {} 2563 2564func (x *AsyncAnnotateFileRequest) ProtoReflect() protoreflect.Message { 2565 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27] 2566 if protoimpl.UnsafeEnabled && x != nil { 2567 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2568 if ms.LoadMessageInfo() == nil { 2569 ms.StoreMessageInfo(mi) 2570 } 2571 return ms 2572 } 2573 return mi.MessageOf(x) 2574} 2575 2576// Deprecated: Use AsyncAnnotateFileRequest.ProtoReflect.Descriptor instead. 2577func (*AsyncAnnotateFileRequest) Descriptor() ([]byte, []int) { 2578 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{27} 2579} 2580 2581func (x *AsyncAnnotateFileRequest) GetInputConfig() *InputConfig { 2582 if x != nil { 2583 return x.InputConfig 2584 } 2585 return nil 2586} 2587 2588func (x *AsyncAnnotateFileRequest) GetFeatures() []*Feature { 2589 if x != nil { 2590 return x.Features 2591 } 2592 return nil 2593} 2594 2595func (x *AsyncAnnotateFileRequest) GetImageContext() *ImageContext { 2596 if x != nil { 2597 return x.ImageContext 2598 } 2599 return nil 2600} 2601 2602func (x *AsyncAnnotateFileRequest) GetOutputConfig() *OutputConfig { 2603 if x != nil { 2604 return x.OutputConfig 2605 } 2606 return nil 2607} 2608 2609// The response for a single offline file annotation request. 2610type AsyncAnnotateFileResponse struct { 2611 state protoimpl.MessageState 2612 sizeCache protoimpl.SizeCache 2613 unknownFields protoimpl.UnknownFields 2614 2615 // The output location and metadata from AsyncAnnotateFileRequest. 2616 OutputConfig *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2617} 2618 2619func (x *AsyncAnnotateFileResponse) Reset() { 2620 *x = AsyncAnnotateFileResponse{} 2621 if protoimpl.UnsafeEnabled { 2622 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28] 2623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2624 ms.StoreMessageInfo(mi) 2625 } 2626} 2627 2628func (x *AsyncAnnotateFileResponse) String() string { 2629 return protoimpl.X.MessageStringOf(x) 2630} 2631 2632func (*AsyncAnnotateFileResponse) ProtoMessage() {} 2633 2634func (x *AsyncAnnotateFileResponse) ProtoReflect() protoreflect.Message { 2635 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28] 2636 if protoimpl.UnsafeEnabled && x != nil { 2637 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2638 if ms.LoadMessageInfo() == nil { 2639 ms.StoreMessageInfo(mi) 2640 } 2641 return ms 2642 } 2643 return mi.MessageOf(x) 2644} 2645 2646// Deprecated: Use AsyncAnnotateFileResponse.ProtoReflect.Descriptor instead. 2647func (*AsyncAnnotateFileResponse) Descriptor() ([]byte, []int) { 2648 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{28} 2649} 2650 2651func (x *AsyncAnnotateFileResponse) GetOutputConfig() *OutputConfig { 2652 if x != nil { 2653 return x.OutputConfig 2654 } 2655 return nil 2656} 2657 2658// Request for async image annotation for a list of images. 2659type AsyncBatchAnnotateImagesRequest struct { 2660 state protoimpl.MessageState 2661 sizeCache protoimpl.SizeCache 2662 unknownFields protoimpl.UnknownFields 2663 2664 // Required. Individual image annotation requests for this batch. 2665 Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2666 // Required. The desired output location and metadata (e.g. format). 2667 OutputConfig *OutputConfig `protobuf:"bytes,2,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2668} 2669 2670func (x *AsyncBatchAnnotateImagesRequest) Reset() { 2671 *x = AsyncBatchAnnotateImagesRequest{} 2672 if protoimpl.UnsafeEnabled { 2673 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29] 2674 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2675 ms.StoreMessageInfo(mi) 2676 } 2677} 2678 2679func (x *AsyncBatchAnnotateImagesRequest) String() string { 2680 return protoimpl.X.MessageStringOf(x) 2681} 2682 2683func (*AsyncBatchAnnotateImagesRequest) ProtoMessage() {} 2684 2685func (x *AsyncBatchAnnotateImagesRequest) ProtoReflect() protoreflect.Message { 2686 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29] 2687 if protoimpl.UnsafeEnabled && x != nil { 2688 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2689 if ms.LoadMessageInfo() == nil { 2690 ms.StoreMessageInfo(mi) 2691 } 2692 return ms 2693 } 2694 return mi.MessageOf(x) 2695} 2696 2697// Deprecated: Use AsyncBatchAnnotateImagesRequest.ProtoReflect.Descriptor instead. 2698func (*AsyncBatchAnnotateImagesRequest) Descriptor() ([]byte, []int) { 2699 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{29} 2700} 2701 2702func (x *AsyncBatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest { 2703 if x != nil { 2704 return x.Requests 2705 } 2706 return nil 2707} 2708 2709func (x *AsyncBatchAnnotateImagesRequest) GetOutputConfig() *OutputConfig { 2710 if x != nil { 2711 return x.OutputConfig 2712 } 2713 return nil 2714} 2715 2716// Response to an async batch image annotation request. 2717type AsyncBatchAnnotateImagesResponse struct { 2718 state protoimpl.MessageState 2719 sizeCache protoimpl.SizeCache 2720 unknownFields protoimpl.UnknownFields 2721 2722 // The output location and metadata from AsyncBatchAnnotateImagesRequest. 2723 OutputConfig *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2724} 2725 2726func (x *AsyncBatchAnnotateImagesResponse) Reset() { 2727 *x = AsyncBatchAnnotateImagesResponse{} 2728 if protoimpl.UnsafeEnabled { 2729 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30] 2730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2731 ms.StoreMessageInfo(mi) 2732 } 2733} 2734 2735func (x *AsyncBatchAnnotateImagesResponse) String() string { 2736 return protoimpl.X.MessageStringOf(x) 2737} 2738 2739func (*AsyncBatchAnnotateImagesResponse) ProtoMessage() {} 2740 2741func (x *AsyncBatchAnnotateImagesResponse) ProtoReflect() protoreflect.Message { 2742 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30] 2743 if protoimpl.UnsafeEnabled && x != nil { 2744 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2745 if ms.LoadMessageInfo() == nil { 2746 ms.StoreMessageInfo(mi) 2747 } 2748 return ms 2749 } 2750 return mi.MessageOf(x) 2751} 2752 2753// Deprecated: Use AsyncBatchAnnotateImagesResponse.ProtoReflect.Descriptor instead. 2754func (*AsyncBatchAnnotateImagesResponse) Descriptor() ([]byte, []int) { 2755 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{30} 2756} 2757 2758func (x *AsyncBatchAnnotateImagesResponse) GetOutputConfig() *OutputConfig { 2759 if x != nil { 2760 return x.OutputConfig 2761 } 2762 return nil 2763} 2764 2765// Multiple async file annotation requests are batched into a single service 2766// call. 2767type AsyncBatchAnnotateFilesRequest struct { 2768 state protoimpl.MessageState 2769 sizeCache protoimpl.SizeCache 2770 unknownFields protoimpl.UnknownFields 2771 2772 // Required. Individual async file annotation requests for this batch. 2773 Requests []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 2774} 2775 2776func (x *AsyncBatchAnnotateFilesRequest) Reset() { 2777 *x = AsyncBatchAnnotateFilesRequest{} 2778 if protoimpl.UnsafeEnabled { 2779 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31] 2780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2781 ms.StoreMessageInfo(mi) 2782 } 2783} 2784 2785func (x *AsyncBatchAnnotateFilesRequest) String() string { 2786 return protoimpl.X.MessageStringOf(x) 2787} 2788 2789func (*AsyncBatchAnnotateFilesRequest) ProtoMessage() {} 2790 2791func (x *AsyncBatchAnnotateFilesRequest) ProtoReflect() protoreflect.Message { 2792 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31] 2793 if protoimpl.UnsafeEnabled && x != nil { 2794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2795 if ms.LoadMessageInfo() == nil { 2796 ms.StoreMessageInfo(mi) 2797 } 2798 return ms 2799 } 2800 return mi.MessageOf(x) 2801} 2802 2803// Deprecated: Use AsyncBatchAnnotateFilesRequest.ProtoReflect.Descriptor instead. 2804func (*AsyncBatchAnnotateFilesRequest) Descriptor() ([]byte, []int) { 2805 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{31} 2806} 2807 2808func (x *AsyncBatchAnnotateFilesRequest) GetRequests() []*AsyncAnnotateFileRequest { 2809 if x != nil { 2810 return x.Requests 2811 } 2812 return nil 2813} 2814 2815// Response to an async batch file annotation request. 2816type AsyncBatchAnnotateFilesResponse struct { 2817 state protoimpl.MessageState 2818 sizeCache protoimpl.SizeCache 2819 unknownFields protoimpl.UnknownFields 2820 2821 // The list of file annotation responses, one for each request in 2822 // AsyncBatchAnnotateFilesRequest. 2823 Responses []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 2824} 2825 2826func (x *AsyncBatchAnnotateFilesResponse) Reset() { 2827 *x = AsyncBatchAnnotateFilesResponse{} 2828 if protoimpl.UnsafeEnabled { 2829 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32] 2830 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2831 ms.StoreMessageInfo(mi) 2832 } 2833} 2834 2835func (x *AsyncBatchAnnotateFilesResponse) String() string { 2836 return protoimpl.X.MessageStringOf(x) 2837} 2838 2839func (*AsyncBatchAnnotateFilesResponse) ProtoMessage() {} 2840 2841func (x *AsyncBatchAnnotateFilesResponse) ProtoReflect() protoreflect.Message { 2842 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32] 2843 if protoimpl.UnsafeEnabled && x != nil { 2844 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2845 if ms.LoadMessageInfo() == nil { 2846 ms.StoreMessageInfo(mi) 2847 } 2848 return ms 2849 } 2850 return mi.MessageOf(x) 2851} 2852 2853// Deprecated: Use AsyncBatchAnnotateFilesResponse.ProtoReflect.Descriptor instead. 2854func (*AsyncBatchAnnotateFilesResponse) Descriptor() ([]byte, []int) { 2855 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{32} 2856} 2857 2858func (x *AsyncBatchAnnotateFilesResponse) GetResponses() []*AsyncAnnotateFileResponse { 2859 if x != nil { 2860 return x.Responses 2861 } 2862 return nil 2863} 2864 2865// The desired input location and metadata. 2866type InputConfig struct { 2867 state protoimpl.MessageState 2868 sizeCache protoimpl.SizeCache 2869 unknownFields protoimpl.UnknownFields 2870 2871 // The Google Cloud Storage location to read the input from. 2872 GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3" json:"gcs_source,omitempty"` 2873 // File content, represented as a stream of bytes. 2874 // Note: As with all `bytes` fields, protobuffers use a pure binary 2875 // representation, whereas JSON representations use base64. 2876 // 2877 // Currently, this field only works for BatchAnnotateFiles requests. It does 2878 // not work for AsyncBatchAnnotateFiles requests. 2879 Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` 2880 // The type of the file. Currently only "application/pdf", "image/tiff" and 2881 // "image/gif" are supported. Wildcards are not supported. 2882 MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` 2883} 2884 2885func (x *InputConfig) Reset() { 2886 *x = InputConfig{} 2887 if protoimpl.UnsafeEnabled { 2888 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33] 2889 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2890 ms.StoreMessageInfo(mi) 2891 } 2892} 2893 2894func (x *InputConfig) String() string { 2895 return protoimpl.X.MessageStringOf(x) 2896} 2897 2898func (*InputConfig) ProtoMessage() {} 2899 2900func (x *InputConfig) ProtoReflect() protoreflect.Message { 2901 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33] 2902 if protoimpl.UnsafeEnabled && x != nil { 2903 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2904 if ms.LoadMessageInfo() == nil { 2905 ms.StoreMessageInfo(mi) 2906 } 2907 return ms 2908 } 2909 return mi.MessageOf(x) 2910} 2911 2912// Deprecated: Use InputConfig.ProtoReflect.Descriptor instead. 2913func (*InputConfig) Descriptor() ([]byte, []int) { 2914 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{33} 2915} 2916 2917func (x *InputConfig) GetGcsSource() *GcsSource { 2918 if x != nil { 2919 return x.GcsSource 2920 } 2921 return nil 2922} 2923 2924func (x *InputConfig) GetContent() []byte { 2925 if x != nil { 2926 return x.Content 2927 } 2928 return nil 2929} 2930 2931func (x *InputConfig) GetMimeType() string { 2932 if x != nil { 2933 return x.MimeType 2934 } 2935 return "" 2936} 2937 2938// The desired output location and metadata. 2939type OutputConfig struct { 2940 state protoimpl.MessageState 2941 sizeCache protoimpl.SizeCache 2942 unknownFields protoimpl.UnknownFields 2943 2944 // The Google Cloud Storage location to write the output(s) to. 2945 GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3" json:"gcs_destination,omitempty"` 2946 // The max number of response protos to put into each output JSON file on 2947 // Google Cloud Storage. 2948 // The valid range is [1, 100]. If not specified, the default value is 20. 2949 // 2950 // For example, for one pdf file with 100 pages, 100 response protos will 2951 // be generated. If `batch_size` = 20, then 5 json files each 2952 // containing 20 response protos will be written under the prefix 2953 // `gcs_destination`.`uri`. 2954 // 2955 // Currently, batch_size only applies to GcsDestination, with potential future 2956 // support for other output configurations. 2957 BatchSize int32 `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"` 2958} 2959 2960func (x *OutputConfig) Reset() { 2961 *x = OutputConfig{} 2962 if protoimpl.UnsafeEnabled { 2963 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34] 2964 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2965 ms.StoreMessageInfo(mi) 2966 } 2967} 2968 2969func (x *OutputConfig) String() string { 2970 return protoimpl.X.MessageStringOf(x) 2971} 2972 2973func (*OutputConfig) ProtoMessage() {} 2974 2975func (x *OutputConfig) ProtoReflect() protoreflect.Message { 2976 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34] 2977 if protoimpl.UnsafeEnabled && x != nil { 2978 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2979 if ms.LoadMessageInfo() == nil { 2980 ms.StoreMessageInfo(mi) 2981 } 2982 return ms 2983 } 2984 return mi.MessageOf(x) 2985} 2986 2987// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead. 2988func (*OutputConfig) Descriptor() ([]byte, []int) { 2989 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{34} 2990} 2991 2992func (x *OutputConfig) GetGcsDestination() *GcsDestination { 2993 if x != nil { 2994 return x.GcsDestination 2995 } 2996 return nil 2997} 2998 2999func (x *OutputConfig) GetBatchSize() int32 { 3000 if x != nil { 3001 return x.BatchSize 3002 } 3003 return 0 3004} 3005 3006// The Google Cloud Storage location where the input will be read from. 3007type GcsSource struct { 3008 state protoimpl.MessageState 3009 sizeCache protoimpl.SizeCache 3010 unknownFields protoimpl.UnknownFields 3011 3012 // Google Cloud Storage URI for the input file. This must only be a 3013 // Google Cloud Storage object. Wildcards are not currently supported. 3014 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 3015} 3016 3017func (x *GcsSource) Reset() { 3018 *x = GcsSource{} 3019 if protoimpl.UnsafeEnabled { 3020 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35] 3021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3022 ms.StoreMessageInfo(mi) 3023 } 3024} 3025 3026func (x *GcsSource) String() string { 3027 return protoimpl.X.MessageStringOf(x) 3028} 3029 3030func (*GcsSource) ProtoMessage() {} 3031 3032func (x *GcsSource) ProtoReflect() protoreflect.Message { 3033 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35] 3034 if protoimpl.UnsafeEnabled && x != nil { 3035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3036 if ms.LoadMessageInfo() == nil { 3037 ms.StoreMessageInfo(mi) 3038 } 3039 return ms 3040 } 3041 return mi.MessageOf(x) 3042} 3043 3044// Deprecated: Use GcsSource.ProtoReflect.Descriptor instead. 3045func (*GcsSource) Descriptor() ([]byte, []int) { 3046 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{35} 3047} 3048 3049func (x *GcsSource) GetUri() string { 3050 if x != nil { 3051 return x.Uri 3052 } 3053 return "" 3054} 3055 3056// The Google Cloud Storage location where the output will be written to. 3057type GcsDestination struct { 3058 state protoimpl.MessageState 3059 sizeCache protoimpl.SizeCache 3060 unknownFields protoimpl.UnknownFields 3061 3062 // Google Cloud Storage URI prefix where the results will be stored. Results 3063 // will be in JSON format and preceded by its corresponding input URI prefix. 3064 // This field can either represent a gcs file prefix or gcs directory. In 3065 // either case, the uri should be unique because in order to get all of the 3066 // output files, you will need to do a wildcard gcs search on the uri prefix 3067 // you provide. 3068 // 3069 // Examples: 3070 // 3071 // * File Prefix: gs://bucket-name/here/filenameprefix The output files 3072 // will be created in gs://bucket-name/here/ and the names of the 3073 // output files will begin with "filenameprefix". 3074 // 3075 // * Directory Prefix: gs://bucket-name/some/location/ The output files 3076 // will be created in gs://bucket-name/some/location/ and the names of the 3077 // output files could be anything because there was no filename prefix 3078 // specified. 3079 // 3080 // If multiple outputs, each response is still AnnotateFileResponse, each of 3081 // which contains some subset of the full list of AnnotateImageResponse. 3082 // Multiple outputs can happen if, for example, the output JSON is too large 3083 // and overflows into multiple sharded files. 3084 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 3085} 3086 3087func (x *GcsDestination) Reset() { 3088 *x = GcsDestination{} 3089 if protoimpl.UnsafeEnabled { 3090 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36] 3091 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3092 ms.StoreMessageInfo(mi) 3093 } 3094} 3095 3096func (x *GcsDestination) String() string { 3097 return protoimpl.X.MessageStringOf(x) 3098} 3099 3100func (*GcsDestination) ProtoMessage() {} 3101 3102func (x *GcsDestination) ProtoReflect() protoreflect.Message { 3103 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36] 3104 if protoimpl.UnsafeEnabled && x != nil { 3105 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3106 if ms.LoadMessageInfo() == nil { 3107 ms.StoreMessageInfo(mi) 3108 } 3109 return ms 3110 } 3111 return mi.MessageOf(x) 3112} 3113 3114// Deprecated: Use GcsDestination.ProtoReflect.Descriptor instead. 3115func (*GcsDestination) Descriptor() ([]byte, []int) { 3116 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{36} 3117} 3118 3119func (x *GcsDestination) GetUri() string { 3120 if x != nil { 3121 return x.Uri 3122 } 3123 return "" 3124} 3125 3126// Contains metadata for the BatchAnnotateImages operation. 3127type OperationMetadata struct { 3128 state protoimpl.MessageState 3129 sizeCache protoimpl.SizeCache 3130 unknownFields protoimpl.UnknownFields 3131 3132 // Current state of the batch operation. 3133 State OperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1p4beta1.OperationMetadata_State" json:"state,omitempty"` 3134 // The time when the batch request was received. 3135 CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 3136 // The time when the operation result was last updated. 3137 UpdateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 3138} 3139 3140func (x *OperationMetadata) Reset() { 3141 *x = OperationMetadata{} 3142 if protoimpl.UnsafeEnabled { 3143 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37] 3144 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3145 ms.StoreMessageInfo(mi) 3146 } 3147} 3148 3149func (x *OperationMetadata) String() string { 3150 return protoimpl.X.MessageStringOf(x) 3151} 3152 3153func (*OperationMetadata) ProtoMessage() {} 3154 3155func (x *OperationMetadata) ProtoReflect() protoreflect.Message { 3156 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37] 3157 if protoimpl.UnsafeEnabled && x != nil { 3158 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3159 if ms.LoadMessageInfo() == nil { 3160 ms.StoreMessageInfo(mi) 3161 } 3162 return ms 3163 } 3164 return mi.MessageOf(x) 3165} 3166 3167// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead. 3168func (*OperationMetadata) Descriptor() ([]byte, []int) { 3169 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{37} 3170} 3171 3172func (x *OperationMetadata) GetState() OperationMetadata_State { 3173 if x != nil { 3174 return x.State 3175 } 3176 return OperationMetadata_STATE_UNSPECIFIED 3177} 3178 3179func (x *OperationMetadata) GetCreateTime() *timestamp.Timestamp { 3180 if x != nil { 3181 return x.CreateTime 3182 } 3183 return nil 3184} 3185 3186func (x *OperationMetadata) GetUpdateTime() *timestamp.Timestamp { 3187 if x != nil { 3188 return x.UpdateTime 3189 } 3190 return nil 3191} 3192 3193// A face-specific landmark (for example, a face feature). 3194type FaceAnnotation_Landmark struct { 3195 state protoimpl.MessageState 3196 sizeCache protoimpl.SizeCache 3197 unknownFields protoimpl.UnknownFields 3198 3199 // Face landmark type. 3200 Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p4beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"` 3201 // Face landmark position. 3202 Position *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` 3203} 3204 3205func (x *FaceAnnotation_Landmark) Reset() { 3206 *x = FaceAnnotation_Landmark{} 3207 if protoimpl.UnsafeEnabled { 3208 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38] 3209 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3210 ms.StoreMessageInfo(mi) 3211 } 3212} 3213 3214func (x *FaceAnnotation_Landmark) String() string { 3215 return protoimpl.X.MessageStringOf(x) 3216} 3217 3218func (*FaceAnnotation_Landmark) ProtoMessage() {} 3219 3220func (x *FaceAnnotation_Landmark) ProtoReflect() protoreflect.Message { 3221 mi := &file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38] 3222 if protoimpl.UnsafeEnabled && x != nil { 3223 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3224 if ms.LoadMessageInfo() == nil { 3225 ms.StoreMessageInfo(mi) 3226 } 3227 return ms 3228 } 3229 return mi.MessageOf(x) 3230} 3231 3232// Deprecated: Use FaceAnnotation_Landmark.ProtoReflect.Descriptor instead. 3233func (*FaceAnnotation_Landmark) Descriptor() ([]byte, []int) { 3234 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP(), []int{3, 0} 3235} 3236 3237func (x *FaceAnnotation_Landmark) GetType() FaceAnnotation_Landmark_Type { 3238 if x != nil { 3239 return x.Type 3240 } 3241 return FaceAnnotation_Landmark_UNKNOWN_LANDMARK 3242} 3243 3244func (x *FaceAnnotation_Landmark) GetPosition() *Position { 3245 if x != nil { 3246 return x.Position 3247 } 3248 return nil 3249} 3250 3251var File_google_cloud_vision_v1p4beta1_image_annotator_proto protoreflect.FileDescriptor 3252 3253var file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc = []byte{ 3254 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 3255 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 3256 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x2e, 3257 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3258 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3259 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 3260 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 3261 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 3262 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 3263 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 3264 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 3265 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 3266 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x61, 0x63, 0x65, 3267 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 3268 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 3269 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 3270 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 3271 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3272 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 3273 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3274 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 3275 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 3276 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 3277 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 3278 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x77, 0x65, 0x62, 3279 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3280 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 3281 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 3282 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3283 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 3284 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3285 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 3286 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3287 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3288 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 3289 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 3290 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 3291 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x03, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 3292 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 3293 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3294 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 3295 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 3296 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 3297 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 3298 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 3299 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0xa3, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 3300 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 3301 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x41, 0x43, 0x45, 0x5f, 3302 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 3303 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 3304 0x4e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x44, 0x45, 0x54, 0x45, 3305 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 3306 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 3307 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 3308 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x58, 3309 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x19, 0x0a, 3310 0x15, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x44, 0x45, 0x54, 3311 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4d, 0x41, 0x47, 3312 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0e, 3313 0x0a, 0x0a, 0x43, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x09, 0x12, 0x11, 3314 0x0a, 0x0d, 0x57, 0x45, 0x42, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 3315 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x41, 3316 0x52, 0x43, 0x48, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 3317 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x13, 0x22, 0x4e, 3318 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 3319 0x0d, 0x67, 0x63, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 3320 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x63, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 3321 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 3322 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x22, 0x65, 3323 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 3324 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3325 0x74, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3326 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3327 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3328 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 3329 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x8a, 0x11, 0x0a, 0x0e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 3330 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 3331 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3332 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3333 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3334 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 3335 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x66, 0x64, 3336 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x02, 3337 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3338 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3339 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 3340 0x79, 0x52, 0x0e, 0x66, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 3341 0x79, 0x12, 0x54, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x03, 3342 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3343 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3344 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3345 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x09, 0x6c, 0x61, 3346 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 3347 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x6f, 0x6c, 3348 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x6e, 0x5f, 0x61, 0x6e, 3349 0x67, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x61, 0x6e, 0x41, 0x6e, 3350 0x67, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 3351 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 3352 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 3353 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 3354 0x52, 0x13, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 3355 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 3356 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 3357 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x69, 3358 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0e, 3359 0x6a, 0x6f, 0x79, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x09, 3360 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3361 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3362 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3363 0x0d, 0x6a, 0x6f, 0x79, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x56, 3364 0x0a, 0x11, 0x73, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3365 0x6f, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3366 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3367 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3368 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x10, 0x73, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x4c, 0x69, 0x6b, 0x65, 3369 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x54, 0x0a, 0x10, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 3370 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 3371 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3372 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3373 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0f, 0x61, 0x6e, 0x67, 3374 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 3375 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3376 0x6f, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3377 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3378 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3379 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x12, 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 3380 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x75, 0x6e, 0x64, 0x65, 3381 0x72, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3382 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 3383 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3384 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 3385 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x16, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x45, 0x78, 0x70, 0x6f, 3386 0x73, 0x65, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x58, 0x0a, 3387 0x12, 0x62, 0x6c, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3388 0x6f, 0x6f, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3389 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3390 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 3391 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x11, 0x62, 0x6c, 0x75, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x69, 0x6b, 3392 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x77, 3393 0x65, 0x61, 0x72, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x0f, 3394 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3395 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3396 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3397 0x12, 0x68, 0x65, 0x61, 0x64, 0x77, 0x65, 0x61, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 3398 0x6f, 0x6f, 0x64, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 3399 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 3400 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3401 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3402 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3403 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 3404 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xd7, 0x07, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 3405 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 3406 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3407 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3408 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 3409 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 3410 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 3411 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3412 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3413 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 3414 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x06, 0x0a, 0x04, 3415 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 3416 0x4c, 0x41, 0x4e, 0x44, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x45, 3417 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x49, 0x47, 0x48, 3418 0x54, 0x5f, 0x45, 0x59, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 3419 0x4f, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 3420 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4c, 0x45, 3421 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 3422 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 3423 0x45, 0x42, 0x52, 0x4f, 0x57, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 3424 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 0x4f, 3425 0x57, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 3426 0x42, 0x45, 0x54, 0x57, 0x45, 0x45, 0x4e, 0x5f, 0x45, 0x59, 0x45, 0x53, 0x10, 0x07, 0x12, 0x0c, 3427 0x0a, 0x08, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x54, 0x49, 0x50, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 3428 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x50, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 3429 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x50, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 3430 0x55, 0x54, 0x48, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, 3431 0x55, 0x54, 0x48, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 3432 0x4f, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x15, 0x0a, 3433 0x11, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 3434 0x48, 0x54, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 3435 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 3436 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 3437 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 3438 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x11, 0x12, 0x19, 0x0a, 3439 0x15, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3440 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x46, 0x54, 3441 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 3442 0x44, 0x41, 0x52, 0x59, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 3443 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x14, 3444 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x54, 0x4f, 3445 0x50, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 3446 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3447 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x49, 0x47, 0x48, 3448 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x42, 0x4f, 0x55, 3449 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x17, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x49, 0x47, 0x48, 0x54, 3450 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x4e, 0x45, 0x52, 3451 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x42, 0x52, 3452 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 0x49, 0x4e, 3453 0x54, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x59, 0x45, 3454 0x42, 0x52, 0x4f, 0x57, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x50, 0x4f, 3455 0x49, 0x4e, 0x54, 0x10, 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x41, 3456 0x52, 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 0x4e, 0x10, 0x1b, 0x12, 0x15, 0x0a, 0x11, 0x52, 3457 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x47, 0x49, 0x4f, 0x4e, 3458 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x50, 3459 0x55, 0x50, 0x49, 0x4c, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 3460 0x45, 0x59, 0x45, 0x5f, 0x50, 0x55, 0x50, 0x49, 0x4c, 0x10, 0x1e, 0x12, 0x15, 0x0a, 0x11, 0x46, 3461 0x4f, 0x52, 0x45, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x47, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x4c, 0x41, 3462 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x47, 0x4e, 0x41, 0x54, 0x48, 3463 0x49, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x49, 0x4e, 0x5f, 0x4c, 0x45, 3464 0x46, 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x21, 0x12, 0x15, 0x0a, 0x11, 0x43, 3465 0x48, 0x49, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x47, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 3466 0x10, 0x22, 0x22, 0x3c, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 3467 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x01, 0x20, 3468 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 3469 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 3470 0x22, 0x57, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 3471 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3472 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 3473 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 3474 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x69, 3475 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x10, 0x45, 0x6e, 3476 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 3477 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 3478 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3479 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 3480 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 3481 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 3482 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 3483 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 3484 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 3485 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x69, 3486 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x61, 3487 0x6c, 0x69, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 3488 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 3489 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3490 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 3491 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 3492 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3493 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3494 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3495 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3496 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3497 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 3498 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3499 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3500 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 3501 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x19, 0x4c, 3502 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 3503 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 3504 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 3505 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3506 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 3507 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 3508 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 3509 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 3510 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 3511 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3512 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3513 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 3514 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x22, 0xe3, 0x02, 0x0a, 0x14, 3515 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3516 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x05, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 3517 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3518 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3519 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x05, 3520 0x61, 0x64, 0x75, 0x6c, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6f, 0x66, 0x18, 0x02, 3521 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3522 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3523 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 3524 0x05, 0x73, 0x70, 0x6f, 0x6f, 0x66, 0x12, 0x43, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x63, 0x61, 3525 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3526 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3527 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 3528 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x08, 0x76, 3529 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 3530 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3531 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 3532 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x08, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 3533 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 3534 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3535 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3536 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x04, 0x72, 0x61, 0x63, 3537 0x79, 0x22, 0x77, 0x0a, 0x0b, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 3538 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 3539 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 3540 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 3541 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x61, 0x74, 3542 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 3543 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 3544 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x22, 0x72, 0x0a, 0x09, 0x43, 0x6f, 3545 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 3546 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3547 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 3548 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 3549 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x78, 0x65, 0x6c, 3550 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 3551 0x0d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 3552 0x0a, 0x18, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 3553 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x6f, 3554 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 3555 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3556 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 3557 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x22, 0x73, 0x0a, 0x0f, 3558 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 3559 0x60, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 3560 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3561 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3562 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 3563 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 3564 0x6e, 0x52, 0x0e, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 3565 0x73, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x50, 3566 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 3567 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3568 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3569 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 3570 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 3571 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 3572 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 3573 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 3574 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x69, 3575 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 3576 0x6e, 0x22, 0x5d, 0x0a, 0x13, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 3577 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0a, 0x63, 0x72, 0x6f, 0x70, 3578 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 3579 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 3580 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x6f, 3581 0x70, 0x48, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 3582 0x22, 0x36, 0x0a, 0x0f, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 3583 0x61, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 3584 0x74, 0x69, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x73, 0x70, 0x65, 3585 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x57, 0x65, 0x62, 0x44, 3586 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 3587 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x5f, 0x72, 0x65, 3588 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x6e, 0x63, 3589 0x6c, 0x75, 0x64, 0x65, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x9c, 3590 0x04, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 3591 0x4e, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x74, 3592 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3593 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 3594 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 3595 0x63, 0x74, 0x52, 0x0b, 0x6c, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x74, 0x12, 3596 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 3597 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 3598 0x65, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x11, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x68, 3599 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 3600 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3601 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3602 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 3603 0x73, 0x52, 0x0f, 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 3604 0x6d, 0x73, 0x12, 0x6c, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 3605 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 3606 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3607 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3608 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 3609 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, 0x66, 0x61, 0x63, 0x65, 0x52, 3610 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 3611 0x12, 0x66, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 3612 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 3613 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3614 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3615 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 3616 0x61, 0x6d, 0x73, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 3617 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x77, 0x65, 0x62, 0x5f, 3618 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 3619 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3620 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 3621 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 3622 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x12, 0x77, 0x65, 0x62, 0x44, 0x65, 3623 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe8, 0x01, 3624 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 3625 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 3626 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3627 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3628 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 3629 0x67, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 3630 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3631 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3632 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 3633 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 3634 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 3635 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3636 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 3637 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 3638 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4b, 0x0a, 0x16, 0x49, 0x6d, 0x61, 0x67, 3639 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 3640 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 3641 0x03, 0x75, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 3642 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 3643 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xc3, 0x0a, 0x0a, 0x15, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3644 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3645 0x58, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 3646 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3647 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3648 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x41, 0x6e, 3649 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x61, 0x63, 0x65, 0x41, 0x6e, 3650 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x14, 0x6c, 0x61, 0x6e, 3651 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3652 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3653 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3654 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 3655 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 3656 0x72, 0x6b, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 3657 0x10, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3658 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3659 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3660 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 3661 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x6f, 0x41, 0x6e, 3662 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x11, 0x6c, 0x61, 0x62, 3663 0x65, 0x6c, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 3664 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3665 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3666 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 3667 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 3668 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7a, 0x0a, 0x1c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 3669 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 3670 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 3671 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3672 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 3673 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 3674 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 3675 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 3676 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 3677 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 3678 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3679 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 3680 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 3681 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 3682 0x5f, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 3683 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 3684 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3685 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 3686 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x66, 0x75, 3687 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3688 0x12, 0x69, 0x0a, 0x16, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 3689 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 3690 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3691 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3692 0x2e, 0x53, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 3693 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 3694 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a, 0x1b, 0x69, 3695 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x5f, 3696 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 3697 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3698 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3699 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 3700 0x52, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 3701 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x15, 0x63, 3702 0x72, 0x6f, 0x70, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3703 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 3704 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3705 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x70, 0x48, 3706 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 3707 0x63, 0x72, 0x6f, 0x70, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3708 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 3709 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 3710 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3711 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x44, 0x65, 3712 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x44, 0x65, 0x74, 0x65, 3713 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 3714 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 3715 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3716 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 3717 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 3718 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x64, 3719 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 3720 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 3721 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 3722 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x6f, 3723 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 3724 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3725 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 3726 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 3727 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x72, 0x0a, 0x1a, 0x42, 3728 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 3729 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x08, 0x72, 0x65, 0x71, 3730 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 3731 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3732 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 3733 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3734 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 3735 0x71, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 3736 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 3737 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3738 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3739 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3740 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 3741 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3742 0x65, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 3743 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0c, 0x69, 0x6e, 3744 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 3745 0x32, 0x2a, 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, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x69, 0x6e, 3748 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x65, 0x61, 3749 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 3750 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3751 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 3752 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 3753 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 3754 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3755 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3756 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 3757 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 3758 0x14, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 3759 0x70, 0x61, 0x67, 0x65, 0x73, 0x22, 0x84, 0x02, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3760 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 3761 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 3762 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3763 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3764 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3765 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x0a, 3766 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 3767 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3768 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3769 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 3770 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3771 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 3772 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 3773 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 3774 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 3775 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x70, 0x0a, 0x19, 3776 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 3777 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x72, 0x65, 0x71, 3778 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 3779 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3780 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 3781 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 3782 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x6f, 3783 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 3784 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 3785 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3786 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3787 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3788 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 3789 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 3790 0xd1, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3791 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0c, 3792 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 3793 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3794 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 3795 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 3796 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x08, 0x66, 3797 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 3798 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3799 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 3800 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 3801 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 3802 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3803 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 3804 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 3805 0x65, 0x78, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 3806 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 3807 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3808 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3809 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 3810 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 3811 0x66, 0x69, 0x67, 0x22, 0x6d, 0x0a, 0x19, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 3812 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3813 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 3814 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3815 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 3816 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 3817 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 3818 0x69, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1f, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 3819 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 3820 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 3821 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3822 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3823 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 3824 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 3825 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x0d, 3826 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 3827 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3828 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 3829 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3830 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 3831 0x66, 0x69, 0x67, 0x22, 0x74, 0x0a, 0x20, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 3832 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 3833 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 3834 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 3835 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3836 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 3837 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 3838 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7a, 0x0a, 0x1e, 0x41, 0x73, 0x79, 3839 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 3840 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x08, 0x72, 3841 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 3842 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3843 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x73, 3844 0x79, 0x6e, 0x63, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 3845 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 3846 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x79, 0x0a, 0x1f, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 3847 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 3848 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 3849 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 3850 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 3851 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 3852 0x63, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 3853 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 3854 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3855 0x12, 0x47, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 3856 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3857 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 3858 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 3859 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 3860 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 3861 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 3862 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 3863 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 3864 0x67, 0x12, 0x56, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 3865 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 3866 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 3867 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 3868 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 3869 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 3870 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 3871 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x1d, 0x0a, 0x09, 0x47, 0x63, 0x73, 0x53, 3872 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 3873 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x22, 0x0a, 0x0e, 0x47, 0x63, 0x73, 0x44, 0x65, 3874 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 3875 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0xae, 0x02, 0x0a, 0x11, 3876 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 3877 0x61, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 3878 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3879 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 3880 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 3881 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 3882 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 3883 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 3884 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 3885 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 3886 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 3887 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3888 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 3889 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x05, 0x53, 0x74, 0x61, 3890 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 3891 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 3892 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 3893 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0d, 0x0a, 3894 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x65, 0x0a, 0x0a, 3895 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 3896 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x59, 0x5f, 3897 0x55, 0x4e, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, 3898 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x4f, 0x53, 0x53, 3899 0x49, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 0x59, 3900 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x4b, 0x45, 0x4c, 3901 0x59, 0x10, 0x05, 0x32, 0xf1, 0x07, 0x0a, 0x0e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 3902 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0xbe, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 3903 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x39, 3904 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3905 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 3906 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 3907 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3908 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 3909 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 3910 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 3911 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 3912 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 3913 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x72, 3914 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 3915 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x38, 3916 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 3917 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 3918 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 3919 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3920 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 3921 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 3922 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 3923 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x76, 0x31, 3924 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x61, 0x6e, 3925 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x72, 0x65, 0x71, 0x75, 3926 0x65, 0x73, 0x74, 0x73, 0x12, 0xfc, 0x01, 0x0a, 0x18, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 3927 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 3928 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3929 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3930 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 3931 0x74, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3932 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 3933 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3934 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x70, 0x34, 3935 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x61, 0x73, 0x79, 3936 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 3937 0x01, 0x2a, 0xda, 0x41, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x2c, 0x6f, 0x75, 3938 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0xca, 0x41, 0x35, 0x0a, 0x20, 3939 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3940 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3941 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 3942 0x61, 0x74, 0x61, 0x12, 0xe9, 0x01, 0x0a, 0x17, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 3943 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 3944 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 3945 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3946 0x41, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3947 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 3948 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 3949 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x82, 3950 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x23, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 3951 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 3952 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 3953 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0xca, 0x41, 0x34, 0x0a, 0x1f, 0x41, 0x73, 0x79, 3954 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x46, 3955 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 3956 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 3957 0x76, 0xca, 0x41, 0x15, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3958 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x5b, 0x68, 0x74, 0x74, 0x70, 3959 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3960 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 3961 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 3962 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3963 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3964 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x89, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 3965 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 3966 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x13, 0x49, 3967 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 3968 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 3969 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3970 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 3971 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 3972 0x61, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x04, 0x47, 3973 0x43, 0x56, 0x4e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3974} 3975 3976var ( 3977 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescOnce sync.Once 3978 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData = file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc 3979) 3980 3981func file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescGZIP() []byte { 3982 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescOnce.Do(func() { 3983 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData) 3984 }) 3985 return file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDescData 3986} 3987 3988var file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes = make([]protoimpl.EnumInfo, 4) 3989var file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes = make([]protoimpl.MessageInfo, 39) 3990var file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes = []interface{}{ 3991 (Likelihood)(0), // 0: google.cloud.vision.v1p4beta1.Likelihood 3992 (Feature_Type)(0), // 1: google.cloud.vision.v1p4beta1.Feature.Type 3993 (FaceAnnotation_Landmark_Type)(0), // 2: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.Type 3994 (OperationMetadata_State)(0), // 3: google.cloud.vision.v1p4beta1.OperationMetadata.State 3995 (*Feature)(nil), // 4: google.cloud.vision.v1p4beta1.Feature 3996 (*ImageSource)(nil), // 5: google.cloud.vision.v1p4beta1.ImageSource 3997 (*Image)(nil), // 6: google.cloud.vision.v1p4beta1.Image 3998 (*FaceAnnotation)(nil), // 7: google.cloud.vision.v1p4beta1.FaceAnnotation 3999 (*LocationInfo)(nil), // 8: google.cloud.vision.v1p4beta1.LocationInfo 4000 (*Property)(nil), // 9: google.cloud.vision.v1p4beta1.Property 4001 (*EntityAnnotation)(nil), // 10: google.cloud.vision.v1p4beta1.EntityAnnotation 4002 (*LocalizedObjectAnnotation)(nil), // 11: google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation 4003 (*SafeSearchAnnotation)(nil), // 12: google.cloud.vision.v1p4beta1.SafeSearchAnnotation 4004 (*LatLongRect)(nil), // 13: google.cloud.vision.v1p4beta1.LatLongRect 4005 (*ColorInfo)(nil), // 14: google.cloud.vision.v1p4beta1.ColorInfo 4006 (*DominantColorsAnnotation)(nil), // 15: google.cloud.vision.v1p4beta1.DominantColorsAnnotation 4007 (*ImageProperties)(nil), // 16: google.cloud.vision.v1p4beta1.ImageProperties 4008 (*CropHint)(nil), // 17: google.cloud.vision.v1p4beta1.CropHint 4009 (*CropHintsAnnotation)(nil), // 18: google.cloud.vision.v1p4beta1.CropHintsAnnotation 4010 (*CropHintsParams)(nil), // 19: google.cloud.vision.v1p4beta1.CropHintsParams 4011 (*WebDetectionParams)(nil), // 20: google.cloud.vision.v1p4beta1.WebDetectionParams 4012 (*ImageContext)(nil), // 21: google.cloud.vision.v1p4beta1.ImageContext 4013 (*AnnotateImageRequest)(nil), // 22: google.cloud.vision.v1p4beta1.AnnotateImageRequest 4014 (*ImageAnnotationContext)(nil), // 23: google.cloud.vision.v1p4beta1.ImageAnnotationContext 4015 (*AnnotateImageResponse)(nil), // 24: google.cloud.vision.v1p4beta1.AnnotateImageResponse 4016 (*BatchAnnotateImagesRequest)(nil), // 25: google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest 4017 (*BatchAnnotateImagesResponse)(nil), // 26: google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse 4018 (*AnnotateFileRequest)(nil), // 27: google.cloud.vision.v1p4beta1.AnnotateFileRequest 4019 (*AnnotateFileResponse)(nil), // 28: google.cloud.vision.v1p4beta1.AnnotateFileResponse 4020 (*BatchAnnotateFilesRequest)(nil), // 29: google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest 4021 (*BatchAnnotateFilesResponse)(nil), // 30: google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse 4022 (*AsyncAnnotateFileRequest)(nil), // 31: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest 4023 (*AsyncAnnotateFileResponse)(nil), // 32: google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse 4024 (*AsyncBatchAnnotateImagesRequest)(nil), // 33: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest 4025 (*AsyncBatchAnnotateImagesResponse)(nil), // 34: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesResponse 4026 (*AsyncBatchAnnotateFilesRequest)(nil), // 35: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest 4027 (*AsyncBatchAnnotateFilesResponse)(nil), // 36: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesResponse 4028 (*InputConfig)(nil), // 37: google.cloud.vision.v1p4beta1.InputConfig 4029 (*OutputConfig)(nil), // 38: google.cloud.vision.v1p4beta1.OutputConfig 4030 (*GcsSource)(nil), // 39: google.cloud.vision.v1p4beta1.GcsSource 4031 (*GcsDestination)(nil), // 40: google.cloud.vision.v1p4beta1.GcsDestination 4032 (*OperationMetadata)(nil), // 41: google.cloud.vision.v1p4beta1.OperationMetadata 4033 (*FaceAnnotation_Landmark)(nil), // 42: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark 4034 (*BoundingPoly)(nil), // 43: google.cloud.vision.v1p4beta1.BoundingPoly 4035 (*FaceRecognitionResult)(nil), // 44: google.cloud.vision.v1p4beta1.FaceRecognitionResult 4036 (*latlng.LatLng)(nil), // 45: google.type.LatLng 4037 (*color.Color)(nil), // 46: google.type.Color 4038 (*FaceRecognitionParams)(nil), // 47: google.cloud.vision.v1p4beta1.FaceRecognitionParams 4039 (*ProductSearchParams)(nil), // 48: google.cloud.vision.v1p4beta1.ProductSearchParams 4040 (*TextAnnotation)(nil), // 49: google.cloud.vision.v1p4beta1.TextAnnotation 4041 (*WebDetection)(nil), // 50: google.cloud.vision.v1p4beta1.WebDetection 4042 (*ProductSearchResults)(nil), // 51: google.cloud.vision.v1p4beta1.ProductSearchResults 4043 (*status.Status)(nil), // 52: google.rpc.Status 4044 (*timestamp.Timestamp)(nil), // 53: google.protobuf.Timestamp 4045 (*Position)(nil), // 54: google.cloud.vision.v1p4beta1.Position 4046 (*longrunning.Operation)(nil), // 55: google.longrunning.Operation 4047} 4048var file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs = []int32{ 4049 1, // 0: google.cloud.vision.v1p4beta1.Feature.type:type_name -> google.cloud.vision.v1p4beta1.Feature.Type 4050 5, // 1: google.cloud.vision.v1p4beta1.Image.source:type_name -> google.cloud.vision.v1p4beta1.ImageSource 4051 43, // 2: google.cloud.vision.v1p4beta1.FaceAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4052 43, // 3: google.cloud.vision.v1p4beta1.FaceAnnotation.fd_bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4053 42, // 4: google.cloud.vision.v1p4beta1.FaceAnnotation.landmarks:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark 4054 0, // 5: google.cloud.vision.v1p4beta1.FaceAnnotation.joy_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4055 0, // 6: google.cloud.vision.v1p4beta1.FaceAnnotation.sorrow_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4056 0, // 7: google.cloud.vision.v1p4beta1.FaceAnnotation.anger_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4057 0, // 8: google.cloud.vision.v1p4beta1.FaceAnnotation.surprise_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4058 0, // 9: google.cloud.vision.v1p4beta1.FaceAnnotation.under_exposed_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4059 0, // 10: google.cloud.vision.v1p4beta1.FaceAnnotation.blurred_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4060 0, // 11: google.cloud.vision.v1p4beta1.FaceAnnotation.headwear_likelihood:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4061 44, // 12: google.cloud.vision.v1p4beta1.FaceAnnotation.recognition_result:type_name -> google.cloud.vision.v1p4beta1.FaceRecognitionResult 4062 45, // 13: google.cloud.vision.v1p4beta1.LocationInfo.lat_lng:type_name -> google.type.LatLng 4063 43, // 14: google.cloud.vision.v1p4beta1.EntityAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4064 8, // 15: google.cloud.vision.v1p4beta1.EntityAnnotation.locations:type_name -> google.cloud.vision.v1p4beta1.LocationInfo 4065 9, // 16: google.cloud.vision.v1p4beta1.EntityAnnotation.properties:type_name -> google.cloud.vision.v1p4beta1.Property 4066 43, // 17: google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4067 0, // 18: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.adult:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4068 0, // 19: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.spoof:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4069 0, // 20: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.medical:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4070 0, // 21: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.violence:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4071 0, // 22: google.cloud.vision.v1p4beta1.SafeSearchAnnotation.racy:type_name -> google.cloud.vision.v1p4beta1.Likelihood 4072 45, // 23: google.cloud.vision.v1p4beta1.LatLongRect.min_lat_lng:type_name -> google.type.LatLng 4073 45, // 24: google.cloud.vision.v1p4beta1.LatLongRect.max_lat_lng:type_name -> google.type.LatLng 4074 46, // 25: google.cloud.vision.v1p4beta1.ColorInfo.color:type_name -> google.type.Color 4075 14, // 26: google.cloud.vision.v1p4beta1.DominantColorsAnnotation.colors:type_name -> google.cloud.vision.v1p4beta1.ColorInfo 4076 15, // 27: google.cloud.vision.v1p4beta1.ImageProperties.dominant_colors:type_name -> google.cloud.vision.v1p4beta1.DominantColorsAnnotation 4077 43, // 28: google.cloud.vision.v1p4beta1.CropHint.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly 4078 17, // 29: google.cloud.vision.v1p4beta1.CropHintsAnnotation.crop_hints:type_name -> google.cloud.vision.v1p4beta1.CropHint 4079 13, // 30: google.cloud.vision.v1p4beta1.ImageContext.lat_long_rect:type_name -> google.cloud.vision.v1p4beta1.LatLongRect 4080 19, // 31: google.cloud.vision.v1p4beta1.ImageContext.crop_hints_params:type_name -> google.cloud.vision.v1p4beta1.CropHintsParams 4081 47, // 32: google.cloud.vision.v1p4beta1.ImageContext.face_recognition_params:type_name -> google.cloud.vision.v1p4beta1.FaceRecognitionParams 4082 48, // 33: google.cloud.vision.v1p4beta1.ImageContext.product_search_params:type_name -> google.cloud.vision.v1p4beta1.ProductSearchParams 4083 20, // 34: google.cloud.vision.v1p4beta1.ImageContext.web_detection_params:type_name -> google.cloud.vision.v1p4beta1.WebDetectionParams 4084 6, // 35: google.cloud.vision.v1p4beta1.AnnotateImageRequest.image:type_name -> google.cloud.vision.v1p4beta1.Image 4085 4, // 36: google.cloud.vision.v1p4beta1.AnnotateImageRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4086 21, // 37: google.cloud.vision.v1p4beta1.AnnotateImageRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4087 7, // 38: google.cloud.vision.v1p4beta1.AnnotateImageResponse.face_annotations:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation 4088 10, // 39: google.cloud.vision.v1p4beta1.AnnotateImageResponse.landmark_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4089 10, // 40: google.cloud.vision.v1p4beta1.AnnotateImageResponse.logo_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4090 10, // 41: google.cloud.vision.v1p4beta1.AnnotateImageResponse.label_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4091 11, // 42: google.cloud.vision.v1p4beta1.AnnotateImageResponse.localized_object_annotations:type_name -> google.cloud.vision.v1p4beta1.LocalizedObjectAnnotation 4092 10, // 43: google.cloud.vision.v1p4beta1.AnnotateImageResponse.text_annotations:type_name -> google.cloud.vision.v1p4beta1.EntityAnnotation 4093 49, // 44: google.cloud.vision.v1p4beta1.AnnotateImageResponse.full_text_annotation:type_name -> google.cloud.vision.v1p4beta1.TextAnnotation 4094 12, // 45: google.cloud.vision.v1p4beta1.AnnotateImageResponse.safe_search_annotation:type_name -> google.cloud.vision.v1p4beta1.SafeSearchAnnotation 4095 16, // 46: google.cloud.vision.v1p4beta1.AnnotateImageResponse.image_properties_annotation:type_name -> google.cloud.vision.v1p4beta1.ImageProperties 4096 18, // 47: google.cloud.vision.v1p4beta1.AnnotateImageResponse.crop_hints_annotation:type_name -> google.cloud.vision.v1p4beta1.CropHintsAnnotation 4097 50, // 48: google.cloud.vision.v1p4beta1.AnnotateImageResponse.web_detection:type_name -> google.cloud.vision.v1p4beta1.WebDetection 4098 51, // 49: google.cloud.vision.v1p4beta1.AnnotateImageResponse.product_search_results:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults 4099 52, // 50: google.cloud.vision.v1p4beta1.AnnotateImageResponse.error:type_name -> google.rpc.Status 4100 23, // 51: google.cloud.vision.v1p4beta1.AnnotateImageResponse.context:type_name -> google.cloud.vision.v1p4beta1.ImageAnnotationContext 4101 22, // 52: google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageRequest 4102 24, // 53: google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageResponse 4103 37, // 54: google.cloud.vision.v1p4beta1.AnnotateFileRequest.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4104 4, // 55: google.cloud.vision.v1p4beta1.AnnotateFileRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4105 21, // 56: google.cloud.vision.v1p4beta1.AnnotateFileRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4106 37, // 57: google.cloud.vision.v1p4beta1.AnnotateFileResponse.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4107 24, // 58: google.cloud.vision.v1p4beta1.AnnotateFileResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageResponse 4108 52, // 59: google.cloud.vision.v1p4beta1.AnnotateFileResponse.error:type_name -> google.rpc.Status 4109 27, // 60: google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateFileRequest 4110 28, // 61: google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AnnotateFileResponse 4111 37, // 62: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.input_config:type_name -> google.cloud.vision.v1p4beta1.InputConfig 4112 4, // 63: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.features:type_name -> google.cloud.vision.v1p4beta1.Feature 4113 21, // 64: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.image_context:type_name -> google.cloud.vision.v1p4beta1.ImageContext 4114 38, // 65: google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4115 38, // 66: google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4116 22, // 67: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AnnotateImageRequest 4117 38, // 68: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4118 38, // 69: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesResponse.output_config:type_name -> google.cloud.vision.v1p4beta1.OutputConfig 4119 31, // 70: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest.requests:type_name -> google.cloud.vision.v1p4beta1.AsyncAnnotateFileRequest 4120 32, // 71: google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesResponse.responses:type_name -> google.cloud.vision.v1p4beta1.AsyncAnnotateFileResponse 4121 39, // 72: google.cloud.vision.v1p4beta1.InputConfig.gcs_source:type_name -> google.cloud.vision.v1p4beta1.GcsSource 4122 40, // 73: google.cloud.vision.v1p4beta1.OutputConfig.gcs_destination:type_name -> google.cloud.vision.v1p4beta1.GcsDestination 4123 3, // 74: google.cloud.vision.v1p4beta1.OperationMetadata.state:type_name -> google.cloud.vision.v1p4beta1.OperationMetadata.State 4124 53, // 75: google.cloud.vision.v1p4beta1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp 4125 53, // 76: google.cloud.vision.v1p4beta1.OperationMetadata.update_time:type_name -> google.protobuf.Timestamp 4126 2, // 77: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.type:type_name -> google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.Type 4127 54, // 78: google.cloud.vision.v1p4beta1.FaceAnnotation.Landmark.position:type_name -> google.cloud.vision.v1p4beta1.Position 4128 25, // 79: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateImages:input_type -> google.cloud.vision.v1p4beta1.BatchAnnotateImagesRequest 4129 29, // 80: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateFiles:input_type -> google.cloud.vision.v1p4beta1.BatchAnnotateFilesRequest 4130 33, // 81: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateImages:input_type -> google.cloud.vision.v1p4beta1.AsyncBatchAnnotateImagesRequest 4131 35, // 82: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateFiles:input_type -> google.cloud.vision.v1p4beta1.AsyncBatchAnnotateFilesRequest 4132 26, // 83: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateImages:output_type -> google.cloud.vision.v1p4beta1.BatchAnnotateImagesResponse 4133 30, // 84: google.cloud.vision.v1p4beta1.ImageAnnotator.BatchAnnotateFiles:output_type -> google.cloud.vision.v1p4beta1.BatchAnnotateFilesResponse 4134 55, // 85: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateImages:output_type -> google.longrunning.Operation 4135 55, // 86: google.cloud.vision.v1p4beta1.ImageAnnotator.AsyncBatchAnnotateFiles:output_type -> google.longrunning.Operation 4136 83, // [83:87] is the sub-list for method output_type 4137 79, // [79:83] is the sub-list for method input_type 4138 79, // [79:79] is the sub-list for extension type_name 4139 79, // [79:79] is the sub-list for extension extendee 4140 0, // [0:79] is the sub-list for field type_name 4141} 4142 4143func init() { file_google_cloud_vision_v1p4beta1_image_annotator_proto_init() } 4144func file_google_cloud_vision_v1p4beta1_image_annotator_proto_init() { 4145 if File_google_cloud_vision_v1p4beta1_image_annotator_proto != nil { 4146 return 4147 } 4148 file_google_cloud_vision_v1p4beta1_face_proto_init() 4149 file_google_cloud_vision_v1p4beta1_geometry_proto_init() 4150 file_google_cloud_vision_v1p4beta1_product_search_proto_init() 4151 file_google_cloud_vision_v1p4beta1_text_annotation_proto_init() 4152 file_google_cloud_vision_v1p4beta1_web_detection_proto_init() 4153 if !protoimpl.UnsafeEnabled { 4154 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4155 switch v := v.(*Feature); i { 4156 case 0: 4157 return &v.state 4158 case 1: 4159 return &v.sizeCache 4160 case 2: 4161 return &v.unknownFields 4162 default: 4163 return nil 4164 } 4165 } 4166 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4167 switch v := v.(*ImageSource); i { 4168 case 0: 4169 return &v.state 4170 case 1: 4171 return &v.sizeCache 4172 case 2: 4173 return &v.unknownFields 4174 default: 4175 return nil 4176 } 4177 } 4178 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4179 switch v := v.(*Image); i { 4180 case 0: 4181 return &v.state 4182 case 1: 4183 return &v.sizeCache 4184 case 2: 4185 return &v.unknownFields 4186 default: 4187 return nil 4188 } 4189 } 4190 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4191 switch v := v.(*FaceAnnotation); i { 4192 case 0: 4193 return &v.state 4194 case 1: 4195 return &v.sizeCache 4196 case 2: 4197 return &v.unknownFields 4198 default: 4199 return nil 4200 } 4201 } 4202 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4203 switch v := v.(*LocationInfo); i { 4204 case 0: 4205 return &v.state 4206 case 1: 4207 return &v.sizeCache 4208 case 2: 4209 return &v.unknownFields 4210 default: 4211 return nil 4212 } 4213 } 4214 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4215 switch v := v.(*Property); i { 4216 case 0: 4217 return &v.state 4218 case 1: 4219 return &v.sizeCache 4220 case 2: 4221 return &v.unknownFields 4222 default: 4223 return nil 4224 } 4225 } 4226 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4227 switch v := v.(*EntityAnnotation); i { 4228 case 0: 4229 return &v.state 4230 case 1: 4231 return &v.sizeCache 4232 case 2: 4233 return &v.unknownFields 4234 default: 4235 return nil 4236 } 4237 } 4238 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4239 switch v := v.(*LocalizedObjectAnnotation); i { 4240 case 0: 4241 return &v.state 4242 case 1: 4243 return &v.sizeCache 4244 case 2: 4245 return &v.unknownFields 4246 default: 4247 return nil 4248 } 4249 } 4250 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4251 switch v := v.(*SafeSearchAnnotation); i { 4252 case 0: 4253 return &v.state 4254 case 1: 4255 return &v.sizeCache 4256 case 2: 4257 return &v.unknownFields 4258 default: 4259 return nil 4260 } 4261 } 4262 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4263 switch v := v.(*LatLongRect); i { 4264 case 0: 4265 return &v.state 4266 case 1: 4267 return &v.sizeCache 4268 case 2: 4269 return &v.unknownFields 4270 default: 4271 return nil 4272 } 4273 } 4274 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4275 switch v := v.(*ColorInfo); i { 4276 case 0: 4277 return &v.state 4278 case 1: 4279 return &v.sizeCache 4280 case 2: 4281 return &v.unknownFields 4282 default: 4283 return nil 4284 } 4285 } 4286 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4287 switch v := v.(*DominantColorsAnnotation); i { 4288 case 0: 4289 return &v.state 4290 case 1: 4291 return &v.sizeCache 4292 case 2: 4293 return &v.unknownFields 4294 default: 4295 return nil 4296 } 4297 } 4298 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4299 switch v := v.(*ImageProperties); i { 4300 case 0: 4301 return &v.state 4302 case 1: 4303 return &v.sizeCache 4304 case 2: 4305 return &v.unknownFields 4306 default: 4307 return nil 4308 } 4309 } 4310 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4311 switch v := v.(*CropHint); i { 4312 case 0: 4313 return &v.state 4314 case 1: 4315 return &v.sizeCache 4316 case 2: 4317 return &v.unknownFields 4318 default: 4319 return nil 4320 } 4321 } 4322 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4323 switch v := v.(*CropHintsAnnotation); i { 4324 case 0: 4325 return &v.state 4326 case 1: 4327 return &v.sizeCache 4328 case 2: 4329 return &v.unknownFields 4330 default: 4331 return nil 4332 } 4333 } 4334 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4335 switch v := v.(*CropHintsParams); i { 4336 case 0: 4337 return &v.state 4338 case 1: 4339 return &v.sizeCache 4340 case 2: 4341 return &v.unknownFields 4342 default: 4343 return nil 4344 } 4345 } 4346 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4347 switch v := v.(*WebDetectionParams); i { 4348 case 0: 4349 return &v.state 4350 case 1: 4351 return &v.sizeCache 4352 case 2: 4353 return &v.unknownFields 4354 default: 4355 return nil 4356 } 4357 } 4358 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4359 switch v := v.(*ImageContext); i { 4360 case 0: 4361 return &v.state 4362 case 1: 4363 return &v.sizeCache 4364 case 2: 4365 return &v.unknownFields 4366 default: 4367 return nil 4368 } 4369 } 4370 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4371 switch v := v.(*AnnotateImageRequest); i { 4372 case 0: 4373 return &v.state 4374 case 1: 4375 return &v.sizeCache 4376 case 2: 4377 return &v.unknownFields 4378 default: 4379 return nil 4380 } 4381 } 4382 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4383 switch v := v.(*ImageAnnotationContext); i { 4384 case 0: 4385 return &v.state 4386 case 1: 4387 return &v.sizeCache 4388 case 2: 4389 return &v.unknownFields 4390 default: 4391 return nil 4392 } 4393 } 4394 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4395 switch v := v.(*AnnotateImageResponse); i { 4396 case 0: 4397 return &v.state 4398 case 1: 4399 return &v.sizeCache 4400 case 2: 4401 return &v.unknownFields 4402 default: 4403 return nil 4404 } 4405 } 4406 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4407 switch v := v.(*BatchAnnotateImagesRequest); i { 4408 case 0: 4409 return &v.state 4410 case 1: 4411 return &v.sizeCache 4412 case 2: 4413 return &v.unknownFields 4414 default: 4415 return nil 4416 } 4417 } 4418 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4419 switch v := v.(*BatchAnnotateImagesResponse); i { 4420 case 0: 4421 return &v.state 4422 case 1: 4423 return &v.sizeCache 4424 case 2: 4425 return &v.unknownFields 4426 default: 4427 return nil 4428 } 4429 } 4430 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4431 switch v := v.(*AnnotateFileRequest); i { 4432 case 0: 4433 return &v.state 4434 case 1: 4435 return &v.sizeCache 4436 case 2: 4437 return &v.unknownFields 4438 default: 4439 return nil 4440 } 4441 } 4442 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 4443 switch v := v.(*AnnotateFileResponse); i { 4444 case 0: 4445 return &v.state 4446 case 1: 4447 return &v.sizeCache 4448 case 2: 4449 return &v.unknownFields 4450 default: 4451 return nil 4452 } 4453 } 4454 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4455 switch v := v.(*BatchAnnotateFilesRequest); i { 4456 case 0: 4457 return &v.state 4458 case 1: 4459 return &v.sizeCache 4460 case 2: 4461 return &v.unknownFields 4462 default: 4463 return nil 4464 } 4465 } 4466 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4467 switch v := v.(*BatchAnnotateFilesResponse); i { 4468 case 0: 4469 return &v.state 4470 case 1: 4471 return &v.sizeCache 4472 case 2: 4473 return &v.unknownFields 4474 default: 4475 return nil 4476 } 4477 } 4478 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4479 switch v := v.(*AsyncAnnotateFileRequest); i { 4480 case 0: 4481 return &v.state 4482 case 1: 4483 return &v.sizeCache 4484 case 2: 4485 return &v.unknownFields 4486 default: 4487 return nil 4488 } 4489 } 4490 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4491 switch v := v.(*AsyncAnnotateFileResponse); i { 4492 case 0: 4493 return &v.state 4494 case 1: 4495 return &v.sizeCache 4496 case 2: 4497 return &v.unknownFields 4498 default: 4499 return nil 4500 } 4501 } 4502 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4503 switch v := v.(*AsyncBatchAnnotateImagesRequest); i { 4504 case 0: 4505 return &v.state 4506 case 1: 4507 return &v.sizeCache 4508 case 2: 4509 return &v.unknownFields 4510 default: 4511 return nil 4512 } 4513 } 4514 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4515 switch v := v.(*AsyncBatchAnnotateImagesResponse); i { 4516 case 0: 4517 return &v.state 4518 case 1: 4519 return &v.sizeCache 4520 case 2: 4521 return &v.unknownFields 4522 default: 4523 return nil 4524 } 4525 } 4526 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4527 switch v := v.(*AsyncBatchAnnotateFilesRequest); i { 4528 case 0: 4529 return &v.state 4530 case 1: 4531 return &v.sizeCache 4532 case 2: 4533 return &v.unknownFields 4534 default: 4535 return nil 4536 } 4537 } 4538 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4539 switch v := v.(*AsyncBatchAnnotateFilesResponse); i { 4540 case 0: 4541 return &v.state 4542 case 1: 4543 return &v.sizeCache 4544 case 2: 4545 return &v.unknownFields 4546 default: 4547 return nil 4548 } 4549 } 4550 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4551 switch v := v.(*InputConfig); i { 4552 case 0: 4553 return &v.state 4554 case 1: 4555 return &v.sizeCache 4556 case 2: 4557 return &v.unknownFields 4558 default: 4559 return nil 4560 } 4561 } 4562 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4563 switch v := v.(*OutputConfig); i { 4564 case 0: 4565 return &v.state 4566 case 1: 4567 return &v.sizeCache 4568 case 2: 4569 return &v.unknownFields 4570 default: 4571 return nil 4572 } 4573 } 4574 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4575 switch v := v.(*GcsSource); i { 4576 case 0: 4577 return &v.state 4578 case 1: 4579 return &v.sizeCache 4580 case 2: 4581 return &v.unknownFields 4582 default: 4583 return nil 4584 } 4585 } 4586 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4587 switch v := v.(*GcsDestination); i { 4588 case 0: 4589 return &v.state 4590 case 1: 4591 return &v.sizeCache 4592 case 2: 4593 return &v.unknownFields 4594 default: 4595 return nil 4596 } 4597 } 4598 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4599 switch v := v.(*OperationMetadata); i { 4600 case 0: 4601 return &v.state 4602 case 1: 4603 return &v.sizeCache 4604 case 2: 4605 return &v.unknownFields 4606 default: 4607 return nil 4608 } 4609 } 4610 file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 4611 switch v := v.(*FaceAnnotation_Landmark); i { 4612 case 0: 4613 return &v.state 4614 case 1: 4615 return &v.sizeCache 4616 case 2: 4617 return &v.unknownFields 4618 default: 4619 return nil 4620 } 4621 } 4622 } 4623 type x struct{} 4624 out := protoimpl.TypeBuilder{ 4625 File: protoimpl.DescBuilder{ 4626 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4627 RawDescriptor: file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc, 4628 NumEnums: 4, 4629 NumMessages: 39, 4630 NumExtensions: 0, 4631 NumServices: 1, 4632 }, 4633 GoTypes: file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes, 4634 DependencyIndexes: file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs, 4635 EnumInfos: file_google_cloud_vision_v1p4beta1_image_annotator_proto_enumTypes, 4636 MessageInfos: file_google_cloud_vision_v1p4beta1_image_annotator_proto_msgTypes, 4637 }.Build() 4638 File_google_cloud_vision_v1p4beta1_image_annotator_proto = out.File 4639 file_google_cloud_vision_v1p4beta1_image_annotator_proto_rawDesc = nil 4640 file_google_cloud_vision_v1p4beta1_image_annotator_proto_goTypes = nil 4641 file_google_cloud_vision_v1p4beta1_image_annotator_proto_depIdxs = nil 4642} 4643 4644// Reference imports to suppress errors if they are not otherwise used. 4645var _ context.Context 4646var _ grpc.ClientConnInterface 4647 4648// This is a compile-time assertion to ensure that this generated file 4649// is compatible with the grpc package it is being compiled against. 4650const _ = grpc.SupportPackageIsVersion6 4651 4652// ImageAnnotatorClient is the client API for ImageAnnotator service. 4653// 4654// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 4655type ImageAnnotatorClient interface { 4656 // Run image detection and annotation for a batch of images. 4657 BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) 4658 // Service that performs image detection and annotation for a batch of files. 4659 // Now only "application/pdf", "image/tiff" and "image/gif" are supported. 4660 // 4661 // This service will extract at most 5 (customers can specify which 5 in 4662 // AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each 4663 // file provided and perform detection and annotation for each image 4664 // extracted. 4665 BatchAnnotateFiles(ctx context.Context, in *BatchAnnotateFilesRequest, opts ...grpc.CallOption) (*BatchAnnotateFilesResponse, error) 4666 // Run asynchronous image detection and annotation for a list of images. 4667 // 4668 // Progress and results can be retrieved through the 4669 // `google.longrunning.Operations` interface. 4670 // `Operation.metadata` contains `OperationMetadata` (metadata). 4671 // `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). 4672 // 4673 // This service will write image annotation outputs to json files in customer 4674 // GCS bucket, each json file containing BatchAnnotateImagesResponse proto. 4675 AsyncBatchAnnotateImages(ctx context.Context, in *AsyncBatchAnnotateImagesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4676 // Run asynchronous image detection and annotation for a list of generic 4677 // files, such as PDF files, which may contain multiple pages and multiple 4678 // images per page. Progress and results can be retrieved through the 4679 // `google.longrunning.Operations` interface. 4680 // `Operation.metadata` contains `OperationMetadata` (metadata). 4681 // `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). 4682 AsyncBatchAnnotateFiles(ctx context.Context, in *AsyncBatchAnnotateFilesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 4683} 4684 4685type imageAnnotatorClient struct { 4686 cc grpc.ClientConnInterface 4687} 4688 4689func NewImageAnnotatorClient(cc grpc.ClientConnInterface) ImageAnnotatorClient { 4690 return &imageAnnotatorClient{cc} 4691} 4692 4693func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) { 4694 out := new(BatchAnnotateImagesResponse) 4695 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateImages", in, out, opts...) 4696 if err != nil { 4697 return nil, err 4698 } 4699 return out, nil 4700} 4701 4702func (c *imageAnnotatorClient) BatchAnnotateFiles(ctx context.Context, in *BatchAnnotateFilesRequest, opts ...grpc.CallOption) (*BatchAnnotateFilesResponse, error) { 4703 out := new(BatchAnnotateFilesResponse) 4704 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateFiles", in, out, opts...) 4705 if err != nil { 4706 return nil, err 4707 } 4708 return out, nil 4709} 4710 4711func (c *imageAnnotatorClient) AsyncBatchAnnotateImages(ctx context.Context, in *AsyncBatchAnnotateImagesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4712 out := new(longrunning.Operation) 4713 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateImages", in, out, opts...) 4714 if err != nil { 4715 return nil, err 4716 } 4717 return out, nil 4718} 4719 4720func (c *imageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, in *AsyncBatchAnnotateFilesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 4721 out := new(longrunning.Operation) 4722 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateFiles", in, out, opts...) 4723 if err != nil { 4724 return nil, err 4725 } 4726 return out, nil 4727} 4728 4729// ImageAnnotatorServer is the server API for ImageAnnotator service. 4730type ImageAnnotatorServer interface { 4731 // Run image detection and annotation for a batch of images. 4732 BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) 4733 // Service that performs image detection and annotation for a batch of files. 4734 // Now only "application/pdf", "image/tiff" and "image/gif" are supported. 4735 // 4736 // This service will extract at most 5 (customers can specify which 5 in 4737 // AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each 4738 // file provided and perform detection and annotation for each image 4739 // extracted. 4740 BatchAnnotateFiles(context.Context, *BatchAnnotateFilesRequest) (*BatchAnnotateFilesResponse, error) 4741 // Run asynchronous image detection and annotation for a list of images. 4742 // 4743 // Progress and results can be retrieved through the 4744 // `google.longrunning.Operations` interface. 4745 // `Operation.metadata` contains `OperationMetadata` (metadata). 4746 // `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). 4747 // 4748 // This service will write image annotation outputs to json files in customer 4749 // GCS bucket, each json file containing BatchAnnotateImagesResponse proto. 4750 AsyncBatchAnnotateImages(context.Context, *AsyncBatchAnnotateImagesRequest) (*longrunning.Operation, error) 4751 // Run asynchronous image detection and annotation for a list of generic 4752 // files, such as PDF files, which may contain multiple pages and multiple 4753 // images per page. Progress and results can be retrieved through the 4754 // `google.longrunning.Operations` interface. 4755 // `Operation.metadata` contains `OperationMetadata` (metadata). 4756 // `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results). 4757 AsyncBatchAnnotateFiles(context.Context, *AsyncBatchAnnotateFilesRequest) (*longrunning.Operation, error) 4758} 4759 4760// UnimplementedImageAnnotatorServer can be embedded to have forward compatible implementations. 4761type UnimplementedImageAnnotatorServer struct { 4762} 4763 4764func (*UnimplementedImageAnnotatorServer) BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) { 4765 return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateImages not implemented") 4766} 4767func (*UnimplementedImageAnnotatorServer) BatchAnnotateFiles(context.Context, *BatchAnnotateFilesRequest) (*BatchAnnotateFilesResponse, error) { 4768 return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateFiles not implemented") 4769} 4770func (*UnimplementedImageAnnotatorServer) AsyncBatchAnnotateImages(context.Context, *AsyncBatchAnnotateImagesRequest) (*longrunning.Operation, error) { 4771 return nil, status1.Errorf(codes.Unimplemented, "method AsyncBatchAnnotateImages not implemented") 4772} 4773func (*UnimplementedImageAnnotatorServer) AsyncBatchAnnotateFiles(context.Context, *AsyncBatchAnnotateFilesRequest) (*longrunning.Operation, error) { 4774 return nil, status1.Errorf(codes.Unimplemented, "method AsyncBatchAnnotateFiles not implemented") 4775} 4776 4777func RegisterImageAnnotatorServer(s *grpc.Server, srv ImageAnnotatorServer) { 4778 s.RegisterService(&_ImageAnnotator_serviceDesc, srv) 4779} 4780 4781func _ImageAnnotator_BatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4782 in := new(BatchAnnotateImagesRequest) 4783 if err := dec(in); err != nil { 4784 return nil, err 4785 } 4786 if interceptor == nil { 4787 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, in) 4788 } 4789 info := &grpc.UnaryServerInfo{ 4790 Server: srv, 4791 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateImages", 4792 } 4793 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4794 return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, req.(*BatchAnnotateImagesRequest)) 4795 } 4796 return interceptor(ctx, in, info, handler) 4797} 4798 4799func _ImageAnnotator_BatchAnnotateFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4800 in := new(BatchAnnotateFilesRequest) 4801 if err := dec(in); err != nil { 4802 return nil, err 4803 } 4804 if interceptor == nil { 4805 return srv.(ImageAnnotatorServer).BatchAnnotateFiles(ctx, in) 4806 } 4807 info := &grpc.UnaryServerInfo{ 4808 Server: srv, 4809 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/BatchAnnotateFiles", 4810 } 4811 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4812 return srv.(ImageAnnotatorServer).BatchAnnotateFiles(ctx, req.(*BatchAnnotateFilesRequest)) 4813 } 4814 return interceptor(ctx, in, info, handler) 4815} 4816 4817func _ImageAnnotator_AsyncBatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4818 in := new(AsyncBatchAnnotateImagesRequest) 4819 if err := dec(in); err != nil { 4820 return nil, err 4821 } 4822 if interceptor == nil { 4823 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateImages(ctx, in) 4824 } 4825 info := &grpc.UnaryServerInfo{ 4826 Server: srv, 4827 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateImages", 4828 } 4829 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4830 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateImages(ctx, req.(*AsyncBatchAnnotateImagesRequest)) 4831 } 4832 return interceptor(ctx, in, info, handler) 4833} 4834 4835func _ImageAnnotator_AsyncBatchAnnotateFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 4836 in := new(AsyncBatchAnnotateFilesRequest) 4837 if err := dec(in); err != nil { 4838 return nil, err 4839 } 4840 if interceptor == nil { 4841 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateFiles(ctx, in) 4842 } 4843 info := &grpc.UnaryServerInfo{ 4844 Server: srv, 4845 FullMethod: "/google.cloud.vision.v1p4beta1.ImageAnnotator/AsyncBatchAnnotateFiles", 4846 } 4847 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 4848 return srv.(ImageAnnotatorServer).AsyncBatchAnnotateFiles(ctx, req.(*AsyncBatchAnnotateFilesRequest)) 4849 } 4850 return interceptor(ctx, in, info, handler) 4851} 4852 4853var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{ 4854 ServiceName: "google.cloud.vision.v1p4beta1.ImageAnnotator", 4855 HandlerType: (*ImageAnnotatorServer)(nil), 4856 Methods: []grpc.MethodDesc{ 4857 { 4858 MethodName: "BatchAnnotateImages", 4859 Handler: _ImageAnnotator_BatchAnnotateImages_Handler, 4860 }, 4861 { 4862 MethodName: "BatchAnnotateFiles", 4863 Handler: _ImageAnnotator_BatchAnnotateFiles_Handler, 4864 }, 4865 { 4866 MethodName: "AsyncBatchAnnotateImages", 4867 Handler: _ImageAnnotator_AsyncBatchAnnotateImages_Handler, 4868 }, 4869 { 4870 MethodName: "AsyncBatchAnnotateFiles", 4871 Handler: _ImageAnnotator_AsyncBatchAnnotateFiles_Handler, 4872 }, 4873 }, 4874 Streams: []grpc.StreamDesc{}, 4875 Metadata: "google/cloud/vision/v1p4beta1/image_annotator.proto", 4876} 4877