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