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