1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/vision/v1p1beta1/image_annotator.proto
3
4package vision
5
6import (
7	context "context"
8	fmt "fmt"
9	math "math"
10
11	proto "github.com/golang/protobuf/proto"
12	_ "google.golang.org/genproto/googleapis/api/annotations"
13	status "google.golang.org/genproto/googleapis/rpc/status"
14	color "google.golang.org/genproto/googleapis/type/color"
15	latlng "google.golang.org/genproto/googleapis/type/latlng"
16	grpc "google.golang.org/grpc"
17	codes "google.golang.org/grpc/codes"
18	status1 "google.golang.org/grpc/status"
19)
20
21// Reference imports to suppress errors if they are not otherwise used.
22var _ = proto.Marshal
23var _ = fmt.Errorf
24var _ = math.Inf
25
26// This is a compile-time assertion to ensure that this generated file
27// is compatible with the proto package it is being compiled against.
28// A compilation error at this line likely means your copy of the
29// proto package needs to be updated.
30const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
31
32// A bucketized representation of likelihood, which is intended to give clients
33// highly stable results across model upgrades.
34type Likelihood int32
35
36const (
37	// Unknown likelihood.
38	Likelihood_UNKNOWN Likelihood = 0
39	// It is very unlikely that the image belongs to the specified vertical.
40	Likelihood_VERY_UNLIKELY Likelihood = 1
41	// It is unlikely that the image belongs to the specified vertical.
42	Likelihood_UNLIKELY Likelihood = 2
43	// It is possible that the image belongs to the specified vertical.
44	Likelihood_POSSIBLE Likelihood = 3
45	// It is likely that the image belongs to the specified vertical.
46	Likelihood_LIKELY Likelihood = 4
47	// It is very likely that the image belongs to the specified vertical.
48	Likelihood_VERY_LIKELY Likelihood = 5
49)
50
51var Likelihood_name = map[int32]string{
52	0: "UNKNOWN",
53	1: "VERY_UNLIKELY",
54	2: "UNLIKELY",
55	3: "POSSIBLE",
56	4: "LIKELY",
57	5: "VERY_LIKELY",
58}
59
60var Likelihood_value = map[string]int32{
61	"UNKNOWN":       0,
62	"VERY_UNLIKELY": 1,
63	"UNLIKELY":      2,
64	"POSSIBLE":      3,
65	"LIKELY":        4,
66	"VERY_LIKELY":   5,
67}
68
69func (x Likelihood) String() string {
70	return proto.EnumName(Likelihood_name, int32(x))
71}
72
73func (Likelihood) EnumDescriptor() ([]byte, []int) {
74	return fileDescriptor_1f6928ee25f8ae1f, []int{0}
75}
76
77// Type of image feature.
78type Feature_Type int32
79
80const (
81	// Unspecified feature type.
82	Feature_TYPE_UNSPECIFIED Feature_Type = 0
83	// Run face detection.
84	Feature_FACE_DETECTION Feature_Type = 1
85	// Run landmark detection.
86	Feature_LANDMARK_DETECTION Feature_Type = 2
87	// Run logo detection.
88	Feature_LOGO_DETECTION Feature_Type = 3
89	// Run label detection.
90	Feature_LABEL_DETECTION Feature_Type = 4
91	// Run OCR.
92	Feature_TEXT_DETECTION Feature_Type = 5
93	// Run dense text document OCR. Takes precedence when both
94	// DOCUMENT_TEXT_DETECTION and TEXT_DETECTION are present.
95	Feature_DOCUMENT_TEXT_DETECTION Feature_Type = 11
96	// Run computer vision models to compute image safe-search properties.
97	Feature_SAFE_SEARCH_DETECTION Feature_Type = 6
98	// Compute a set of image properties, such as the image's dominant colors.
99	Feature_IMAGE_PROPERTIES Feature_Type = 7
100	// Run crop hints.
101	Feature_CROP_HINTS Feature_Type = 9
102	// Run web detection.
103	Feature_WEB_DETECTION Feature_Type = 10
104)
105
106var Feature_Type_name = map[int32]string{
107	0:  "TYPE_UNSPECIFIED",
108	1:  "FACE_DETECTION",
109	2:  "LANDMARK_DETECTION",
110	3:  "LOGO_DETECTION",
111	4:  "LABEL_DETECTION",
112	5:  "TEXT_DETECTION",
113	11: "DOCUMENT_TEXT_DETECTION",
114	6:  "SAFE_SEARCH_DETECTION",
115	7:  "IMAGE_PROPERTIES",
116	9:  "CROP_HINTS",
117	10: "WEB_DETECTION",
118}
119
120var Feature_Type_value = map[string]int32{
121	"TYPE_UNSPECIFIED":        0,
122	"FACE_DETECTION":          1,
123	"LANDMARK_DETECTION":      2,
124	"LOGO_DETECTION":          3,
125	"LABEL_DETECTION":         4,
126	"TEXT_DETECTION":          5,
127	"DOCUMENT_TEXT_DETECTION": 11,
128	"SAFE_SEARCH_DETECTION":   6,
129	"IMAGE_PROPERTIES":        7,
130	"CROP_HINTS":              9,
131	"WEB_DETECTION":           10,
132}
133
134func (x Feature_Type) String() string {
135	return proto.EnumName(Feature_Type_name, int32(x))
136}
137
138func (Feature_Type) EnumDescriptor() ([]byte, []int) {
139	return fileDescriptor_1f6928ee25f8ae1f, []int{0, 0}
140}
141
142// Face landmark (feature) type.
143// Left and right are defined from the vantage of the viewer of the image
144// without considering mirror projections typical of photos. So, `LEFT_EYE`,
145// typically, is the person's right eye.
146type FaceAnnotation_Landmark_Type int32
147
148const (
149	// Unknown face landmark detected. Should not be filled.
150	FaceAnnotation_Landmark_UNKNOWN_LANDMARK FaceAnnotation_Landmark_Type = 0
151	// Left eye.
152	FaceAnnotation_Landmark_LEFT_EYE FaceAnnotation_Landmark_Type = 1
153	// Right eye.
154	FaceAnnotation_Landmark_RIGHT_EYE FaceAnnotation_Landmark_Type = 2
155	// Left of left eyebrow.
156	FaceAnnotation_Landmark_LEFT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 3
157	// Right of left eyebrow.
158	FaceAnnotation_Landmark_RIGHT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 4
159	// Left of right eyebrow.
160	FaceAnnotation_Landmark_LEFT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 5
161	// Right of right eyebrow.
162	FaceAnnotation_Landmark_RIGHT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 6
163	// Midpoint between eyes.
164	FaceAnnotation_Landmark_MIDPOINT_BETWEEN_EYES FaceAnnotation_Landmark_Type = 7
165	// Nose tip.
166	FaceAnnotation_Landmark_NOSE_TIP FaceAnnotation_Landmark_Type = 8
167	// Upper lip.
168	FaceAnnotation_Landmark_UPPER_LIP FaceAnnotation_Landmark_Type = 9
169	// Lower lip.
170	FaceAnnotation_Landmark_LOWER_LIP FaceAnnotation_Landmark_Type = 10
171	// Mouth left.
172	FaceAnnotation_Landmark_MOUTH_LEFT FaceAnnotation_Landmark_Type = 11
173	// Mouth right.
174	FaceAnnotation_Landmark_MOUTH_RIGHT FaceAnnotation_Landmark_Type = 12
175	// Mouth center.
176	FaceAnnotation_Landmark_MOUTH_CENTER FaceAnnotation_Landmark_Type = 13
177	// Nose, bottom right.
178	FaceAnnotation_Landmark_NOSE_BOTTOM_RIGHT FaceAnnotation_Landmark_Type = 14
179	// Nose, bottom left.
180	FaceAnnotation_Landmark_NOSE_BOTTOM_LEFT FaceAnnotation_Landmark_Type = 15
181	// Nose, bottom center.
182	FaceAnnotation_Landmark_NOSE_BOTTOM_CENTER FaceAnnotation_Landmark_Type = 16
183	// Left eye, top boundary.
184	FaceAnnotation_Landmark_LEFT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 17
185	// Left eye, right corner.
186	FaceAnnotation_Landmark_LEFT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 18
187	// Left eye, bottom boundary.
188	FaceAnnotation_Landmark_LEFT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 19
189	// Left eye, left corner.
190	FaceAnnotation_Landmark_LEFT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 20
191	// Right eye, top boundary.
192	FaceAnnotation_Landmark_RIGHT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 21
193	// Right eye, right corner.
194	FaceAnnotation_Landmark_RIGHT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 22
195	// Right eye, bottom boundary.
196	FaceAnnotation_Landmark_RIGHT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 23
197	// Right eye, left corner.
198	FaceAnnotation_Landmark_RIGHT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 24
199	// Left eyebrow, upper midpoint.
200	FaceAnnotation_Landmark_LEFT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 25
201	// Right eyebrow, upper midpoint.
202	FaceAnnotation_Landmark_RIGHT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 26
203	// Left ear tragion.
204	FaceAnnotation_Landmark_LEFT_EAR_TRAGION FaceAnnotation_Landmark_Type = 27
205	// Right ear tragion.
206	FaceAnnotation_Landmark_RIGHT_EAR_TRAGION FaceAnnotation_Landmark_Type = 28
207	// Left eye pupil.
208	FaceAnnotation_Landmark_LEFT_EYE_PUPIL FaceAnnotation_Landmark_Type = 29
209	// Right eye pupil.
210	FaceAnnotation_Landmark_RIGHT_EYE_PUPIL FaceAnnotation_Landmark_Type = 30
211	// Forehead glabella.
212	FaceAnnotation_Landmark_FOREHEAD_GLABELLA FaceAnnotation_Landmark_Type = 31
213	// Chin gnathion.
214	FaceAnnotation_Landmark_CHIN_GNATHION FaceAnnotation_Landmark_Type = 32
215	// Chin left gonion.
216	FaceAnnotation_Landmark_CHIN_LEFT_GONION FaceAnnotation_Landmark_Type = 33
217	// Chin right gonion.
218	FaceAnnotation_Landmark_CHIN_RIGHT_GONION FaceAnnotation_Landmark_Type = 34
219)
220
221var FaceAnnotation_Landmark_Type_name = map[int32]string{
222	0:  "UNKNOWN_LANDMARK",
223	1:  "LEFT_EYE",
224	2:  "RIGHT_EYE",
225	3:  "LEFT_OF_LEFT_EYEBROW",
226	4:  "RIGHT_OF_LEFT_EYEBROW",
227	5:  "LEFT_OF_RIGHT_EYEBROW",
228	6:  "RIGHT_OF_RIGHT_EYEBROW",
229	7:  "MIDPOINT_BETWEEN_EYES",
230	8:  "NOSE_TIP",
231	9:  "UPPER_LIP",
232	10: "LOWER_LIP",
233	11: "MOUTH_LEFT",
234	12: "MOUTH_RIGHT",
235	13: "MOUTH_CENTER",
236	14: "NOSE_BOTTOM_RIGHT",
237	15: "NOSE_BOTTOM_LEFT",
238	16: "NOSE_BOTTOM_CENTER",
239	17: "LEFT_EYE_TOP_BOUNDARY",
240	18: "LEFT_EYE_RIGHT_CORNER",
241	19: "LEFT_EYE_BOTTOM_BOUNDARY",
242	20: "LEFT_EYE_LEFT_CORNER",
243	21: "RIGHT_EYE_TOP_BOUNDARY",
244	22: "RIGHT_EYE_RIGHT_CORNER",
245	23: "RIGHT_EYE_BOTTOM_BOUNDARY",
246	24: "RIGHT_EYE_LEFT_CORNER",
247	25: "LEFT_EYEBROW_UPPER_MIDPOINT",
248	26: "RIGHT_EYEBROW_UPPER_MIDPOINT",
249	27: "LEFT_EAR_TRAGION",
250	28: "RIGHT_EAR_TRAGION",
251	29: "LEFT_EYE_PUPIL",
252	30: "RIGHT_EYE_PUPIL",
253	31: "FOREHEAD_GLABELLA",
254	32: "CHIN_GNATHION",
255	33: "CHIN_LEFT_GONION",
256	34: "CHIN_RIGHT_GONION",
257}
258
259var FaceAnnotation_Landmark_Type_value = map[string]int32{
260	"UNKNOWN_LANDMARK":             0,
261	"LEFT_EYE":                     1,
262	"RIGHT_EYE":                    2,
263	"LEFT_OF_LEFT_EYEBROW":         3,
264	"RIGHT_OF_LEFT_EYEBROW":        4,
265	"LEFT_OF_RIGHT_EYEBROW":        5,
266	"RIGHT_OF_RIGHT_EYEBROW":       6,
267	"MIDPOINT_BETWEEN_EYES":        7,
268	"NOSE_TIP":                     8,
269	"UPPER_LIP":                    9,
270	"LOWER_LIP":                    10,
271	"MOUTH_LEFT":                   11,
272	"MOUTH_RIGHT":                  12,
273	"MOUTH_CENTER":                 13,
274	"NOSE_BOTTOM_RIGHT":            14,
275	"NOSE_BOTTOM_LEFT":             15,
276	"NOSE_BOTTOM_CENTER":           16,
277	"LEFT_EYE_TOP_BOUNDARY":        17,
278	"LEFT_EYE_RIGHT_CORNER":        18,
279	"LEFT_EYE_BOTTOM_BOUNDARY":     19,
280	"LEFT_EYE_LEFT_CORNER":         20,
281	"RIGHT_EYE_TOP_BOUNDARY":       21,
282	"RIGHT_EYE_RIGHT_CORNER":       22,
283	"RIGHT_EYE_BOTTOM_BOUNDARY":    23,
284	"RIGHT_EYE_LEFT_CORNER":        24,
285	"LEFT_EYEBROW_UPPER_MIDPOINT":  25,
286	"RIGHT_EYEBROW_UPPER_MIDPOINT": 26,
287	"LEFT_EAR_TRAGION":             27,
288	"RIGHT_EAR_TRAGION":            28,
289	"LEFT_EYE_PUPIL":               29,
290	"RIGHT_EYE_PUPIL":              30,
291	"FOREHEAD_GLABELLA":            31,
292	"CHIN_GNATHION":                32,
293	"CHIN_LEFT_GONION":             33,
294	"CHIN_RIGHT_GONION":            34,
295}
296
297func (x FaceAnnotation_Landmark_Type) String() string {
298	return proto.EnumName(FaceAnnotation_Landmark_Type_name, int32(x))
299}
300
301func (FaceAnnotation_Landmark_Type) EnumDescriptor() ([]byte, []int) {
302	return fileDescriptor_1f6928ee25f8ae1f, []int{3, 0, 0}
303}
304
305// Users describe the type of Google Cloud Vision API tasks to perform over
306// images by using *Feature*s. Each Feature indicates a type of image
307// detection task to perform. Features encode the Cloud Vision API
308// vertical to operate on and the number of top-scoring results to return.
309type Feature struct {
310	// The feature type.
311	Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.Feature_Type" json:"type,omitempty"`
312	// Maximum number of results of this type.
313	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
314	// Model to use for the feature.
315	// Supported values: "builtin/stable" (the default if unset) and
316	// "builtin/latest".
317	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
318	XXX_NoUnkeyedLiteral struct{} `json:"-"`
319	XXX_unrecognized     []byte   `json:"-"`
320	XXX_sizecache        int32    `json:"-"`
321}
322
323func (m *Feature) Reset()         { *m = Feature{} }
324func (m *Feature) String() string { return proto.CompactTextString(m) }
325func (*Feature) ProtoMessage()    {}
326func (*Feature) Descriptor() ([]byte, []int) {
327	return fileDescriptor_1f6928ee25f8ae1f, []int{0}
328}
329
330func (m *Feature) XXX_Unmarshal(b []byte) error {
331	return xxx_messageInfo_Feature.Unmarshal(m, b)
332}
333func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
334	return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
335}
336func (m *Feature) XXX_Merge(src proto.Message) {
337	xxx_messageInfo_Feature.Merge(m, src)
338}
339func (m *Feature) XXX_Size() int {
340	return xxx_messageInfo_Feature.Size(m)
341}
342func (m *Feature) XXX_DiscardUnknown() {
343	xxx_messageInfo_Feature.DiscardUnknown(m)
344}
345
346var xxx_messageInfo_Feature proto.InternalMessageInfo
347
348func (m *Feature) GetType() Feature_Type {
349	if m != nil {
350		return m.Type
351	}
352	return Feature_TYPE_UNSPECIFIED
353}
354
355func (m *Feature) GetMaxResults() int32 {
356	if m != nil {
357		return m.MaxResults
358	}
359	return 0
360}
361
362func (m *Feature) GetModel() string {
363	if m != nil {
364		return m.Model
365	}
366	return ""
367}
368
369// External image source (Google Cloud Storage image location).
370type ImageSource struct {
371	// NOTE: For new code `image_uri` below is preferred.
372	// Google Cloud Storage image URI, which must be in the following form:
373	// `gs://bucket_name/object_name` (for details, see
374	// [Google Cloud Storage Request
375	// URIs](https://cloud.google.com/storage/docs/reference-uris)).
376	// NOTE: Cloud Storage object versioning is not supported.
377	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"`
378	// Image URI which supports:
379	// 1) Google Cloud Storage image URI, which must be in the following form:
380	// `gs://bucket_name/object_name` (for details, see
381	// [Google Cloud Storage Request
382	// URIs](https://cloud.google.com/storage/docs/reference-uris)).
383	// NOTE: Cloud Storage object versioning is not supported.
384	// 2) Publicly accessible image HTTP/HTTPS URL.
385	// This is preferred over the legacy `gcs_image_uri` above. When both
386	// `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
387	// precedence.
388	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
389	XXX_NoUnkeyedLiteral struct{} `json:"-"`
390	XXX_unrecognized     []byte   `json:"-"`
391	XXX_sizecache        int32    `json:"-"`
392}
393
394func (m *ImageSource) Reset()         { *m = ImageSource{} }
395func (m *ImageSource) String() string { return proto.CompactTextString(m) }
396func (*ImageSource) ProtoMessage()    {}
397func (*ImageSource) Descriptor() ([]byte, []int) {
398	return fileDescriptor_1f6928ee25f8ae1f, []int{1}
399}
400
401func (m *ImageSource) XXX_Unmarshal(b []byte) error {
402	return xxx_messageInfo_ImageSource.Unmarshal(m, b)
403}
404func (m *ImageSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
405	return xxx_messageInfo_ImageSource.Marshal(b, m, deterministic)
406}
407func (m *ImageSource) XXX_Merge(src proto.Message) {
408	xxx_messageInfo_ImageSource.Merge(m, src)
409}
410func (m *ImageSource) XXX_Size() int {
411	return xxx_messageInfo_ImageSource.Size(m)
412}
413func (m *ImageSource) XXX_DiscardUnknown() {
414	xxx_messageInfo_ImageSource.DiscardUnknown(m)
415}
416
417var xxx_messageInfo_ImageSource proto.InternalMessageInfo
418
419func (m *ImageSource) GetGcsImageUri() string {
420	if m != nil {
421		return m.GcsImageUri
422	}
423	return ""
424}
425
426func (m *ImageSource) GetImageUri() string {
427	if m != nil {
428		return m.ImageUri
429	}
430	return ""
431}
432
433// Client image to perform Google Cloud Vision API tasks over.
434type Image struct {
435	// Image content, represented as a stream of bytes.
436	// Note: as with all `bytes` fields, protobuffers use a pure binary
437	// representation, whereas JSON representations use base64.
438	Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
439	// Google Cloud Storage image location. If both `content` and `source`
440	// are provided for an image, `content` takes precedence and is
441	// used to perform the image annotation request.
442	Source               *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
443	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
444	XXX_unrecognized     []byte       `json:"-"`
445	XXX_sizecache        int32        `json:"-"`
446}
447
448func (m *Image) Reset()         { *m = Image{} }
449func (m *Image) String() string { return proto.CompactTextString(m) }
450func (*Image) ProtoMessage()    {}
451func (*Image) Descriptor() ([]byte, []int) {
452	return fileDescriptor_1f6928ee25f8ae1f, []int{2}
453}
454
455func (m *Image) XXX_Unmarshal(b []byte) error {
456	return xxx_messageInfo_Image.Unmarshal(m, b)
457}
458func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
459	return xxx_messageInfo_Image.Marshal(b, m, deterministic)
460}
461func (m *Image) XXX_Merge(src proto.Message) {
462	xxx_messageInfo_Image.Merge(m, src)
463}
464func (m *Image) XXX_Size() int {
465	return xxx_messageInfo_Image.Size(m)
466}
467func (m *Image) XXX_DiscardUnknown() {
468	xxx_messageInfo_Image.DiscardUnknown(m)
469}
470
471var xxx_messageInfo_Image proto.InternalMessageInfo
472
473func (m *Image) GetContent() []byte {
474	if m != nil {
475		return m.Content
476	}
477	return nil
478}
479
480func (m *Image) GetSource() *ImageSource {
481	if m != nil {
482		return m.Source
483	}
484	return nil
485}
486
487// A face annotation object contains the results of face detection.
488type FaceAnnotation struct {
489	// The bounding polygon around the face. The coordinates of the bounding box
490	// are in the original image's scale, as returned in `ImageParams`.
491	// The bounding box is computed to "frame" the face in accordance with human
492	// expectations. It is based on the landmarker results.
493	// Note that one or more x and/or y coordinates may not be generated in the
494	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
495	// appears in the image to be annotated.
496	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
497	// The `fd_bounding_poly` bounding polygon is tighter than the
498	// `boundingPoly`, and encloses only the skin part of the face. Typically, it
499	// is used to eliminate the face from any image analysis that detects the
500	// "amount of skin" visible in an image. It is not based on the
501	// landmarker results, only on the initial face detection, hence
502	// the <code>fd</code> (face detection) prefix.
503	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"`
504	// Detected face landmarks.
505	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"`
506	// Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
507	// of the face relative to the image vertical about the axis perpendicular to
508	// the face. Range [-180,180].
509	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"`
510	// Yaw angle, which indicates the leftward/rightward angle that the face is
511	// pointing relative to the vertical plane perpendicular to the image. Range
512	// [-180,180].
513	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"`
514	// Pitch angle, which indicates the upwards/downwards angle that the face is
515	// pointing relative to the image's horizontal plane. Range [-180,180].
516	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"`
517	// Detection confidence. Range [0, 1].
518	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"`
519	// Face landmarking confidence. Range [0, 1].
520	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"`
521	// Joy likelihood.
522	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"joy_likelihood,omitempty"`
523	// Sorrow likelihood.
524	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
525	// Anger likelihood.
526	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"anger_likelihood,omitempty"`
527	// Surprise likelihood.
528	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"surprise_likelihood,omitempty"`
529	// Under-exposed likelihood.
530	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
531	// Blurred likelihood.
532	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"blurred_likelihood,omitempty"`
533	// Headwear likelihood.
534	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"headwear_likelihood,omitempty"`
535	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
536	XXX_unrecognized     []byte     `json:"-"`
537	XXX_sizecache        int32      `json:"-"`
538}
539
540func (m *FaceAnnotation) Reset()         { *m = FaceAnnotation{} }
541func (m *FaceAnnotation) String() string { return proto.CompactTextString(m) }
542func (*FaceAnnotation) ProtoMessage()    {}
543func (*FaceAnnotation) Descriptor() ([]byte, []int) {
544	return fileDescriptor_1f6928ee25f8ae1f, []int{3}
545}
546
547func (m *FaceAnnotation) XXX_Unmarshal(b []byte) error {
548	return xxx_messageInfo_FaceAnnotation.Unmarshal(m, b)
549}
550func (m *FaceAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
551	return xxx_messageInfo_FaceAnnotation.Marshal(b, m, deterministic)
552}
553func (m *FaceAnnotation) XXX_Merge(src proto.Message) {
554	xxx_messageInfo_FaceAnnotation.Merge(m, src)
555}
556func (m *FaceAnnotation) XXX_Size() int {
557	return xxx_messageInfo_FaceAnnotation.Size(m)
558}
559func (m *FaceAnnotation) XXX_DiscardUnknown() {
560	xxx_messageInfo_FaceAnnotation.DiscardUnknown(m)
561}
562
563var xxx_messageInfo_FaceAnnotation proto.InternalMessageInfo
564
565func (m *FaceAnnotation) GetBoundingPoly() *BoundingPoly {
566	if m != nil {
567		return m.BoundingPoly
568	}
569	return nil
570}
571
572func (m *FaceAnnotation) GetFdBoundingPoly() *BoundingPoly {
573	if m != nil {
574		return m.FdBoundingPoly
575	}
576	return nil
577}
578
579func (m *FaceAnnotation) GetLandmarks() []*FaceAnnotation_Landmark {
580	if m != nil {
581		return m.Landmarks
582	}
583	return nil
584}
585
586func (m *FaceAnnotation) GetRollAngle() float32 {
587	if m != nil {
588		return m.RollAngle
589	}
590	return 0
591}
592
593func (m *FaceAnnotation) GetPanAngle() float32 {
594	if m != nil {
595		return m.PanAngle
596	}
597	return 0
598}
599
600func (m *FaceAnnotation) GetTiltAngle() float32 {
601	if m != nil {
602		return m.TiltAngle
603	}
604	return 0
605}
606
607func (m *FaceAnnotation) GetDetectionConfidence() float32 {
608	if m != nil {
609		return m.DetectionConfidence
610	}
611	return 0
612}
613
614func (m *FaceAnnotation) GetLandmarkingConfidence() float32 {
615	if m != nil {
616		return m.LandmarkingConfidence
617	}
618	return 0
619}
620
621func (m *FaceAnnotation) GetJoyLikelihood() Likelihood {
622	if m != nil {
623		return m.JoyLikelihood
624	}
625	return Likelihood_UNKNOWN
626}
627
628func (m *FaceAnnotation) GetSorrowLikelihood() Likelihood {
629	if m != nil {
630		return m.SorrowLikelihood
631	}
632	return Likelihood_UNKNOWN
633}
634
635func (m *FaceAnnotation) GetAngerLikelihood() Likelihood {
636	if m != nil {
637		return m.AngerLikelihood
638	}
639	return Likelihood_UNKNOWN
640}
641
642func (m *FaceAnnotation) GetSurpriseLikelihood() Likelihood {
643	if m != nil {
644		return m.SurpriseLikelihood
645	}
646	return Likelihood_UNKNOWN
647}
648
649func (m *FaceAnnotation) GetUnderExposedLikelihood() Likelihood {
650	if m != nil {
651		return m.UnderExposedLikelihood
652	}
653	return Likelihood_UNKNOWN
654}
655
656func (m *FaceAnnotation) GetBlurredLikelihood() Likelihood {
657	if m != nil {
658		return m.BlurredLikelihood
659	}
660	return Likelihood_UNKNOWN
661}
662
663func (m *FaceAnnotation) GetHeadwearLikelihood() Likelihood {
664	if m != nil {
665		return m.HeadwearLikelihood
666	}
667	return Likelihood_UNKNOWN
668}
669
670// A face-specific landmark (for example, a face feature).
671type FaceAnnotation_Landmark struct {
672	// Face landmark type.
673	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
674	// Face landmark position.
675	Position             *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
676	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
677	XXX_unrecognized     []byte    `json:"-"`
678	XXX_sizecache        int32     `json:"-"`
679}
680
681func (m *FaceAnnotation_Landmark) Reset()         { *m = FaceAnnotation_Landmark{} }
682func (m *FaceAnnotation_Landmark) String() string { return proto.CompactTextString(m) }
683func (*FaceAnnotation_Landmark) ProtoMessage()    {}
684func (*FaceAnnotation_Landmark) Descriptor() ([]byte, []int) {
685	return fileDescriptor_1f6928ee25f8ae1f, []int{3, 0}
686}
687
688func (m *FaceAnnotation_Landmark) XXX_Unmarshal(b []byte) error {
689	return xxx_messageInfo_FaceAnnotation_Landmark.Unmarshal(m, b)
690}
691func (m *FaceAnnotation_Landmark) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
692	return xxx_messageInfo_FaceAnnotation_Landmark.Marshal(b, m, deterministic)
693}
694func (m *FaceAnnotation_Landmark) XXX_Merge(src proto.Message) {
695	xxx_messageInfo_FaceAnnotation_Landmark.Merge(m, src)
696}
697func (m *FaceAnnotation_Landmark) XXX_Size() int {
698	return xxx_messageInfo_FaceAnnotation_Landmark.Size(m)
699}
700func (m *FaceAnnotation_Landmark) XXX_DiscardUnknown() {
701	xxx_messageInfo_FaceAnnotation_Landmark.DiscardUnknown(m)
702}
703
704var xxx_messageInfo_FaceAnnotation_Landmark proto.InternalMessageInfo
705
706func (m *FaceAnnotation_Landmark) GetType() FaceAnnotation_Landmark_Type {
707	if m != nil {
708		return m.Type
709	}
710	return FaceAnnotation_Landmark_UNKNOWN_LANDMARK
711}
712
713func (m *FaceAnnotation_Landmark) GetPosition() *Position {
714	if m != nil {
715		return m.Position
716	}
717	return nil
718}
719
720// Detected entity location information.
721type LocationInfo struct {
722	// lat/long location coordinates.
723	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
724	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
725	XXX_unrecognized     []byte         `json:"-"`
726	XXX_sizecache        int32          `json:"-"`
727}
728
729func (m *LocationInfo) Reset()         { *m = LocationInfo{} }
730func (m *LocationInfo) String() string { return proto.CompactTextString(m) }
731func (*LocationInfo) ProtoMessage()    {}
732func (*LocationInfo) Descriptor() ([]byte, []int) {
733	return fileDescriptor_1f6928ee25f8ae1f, []int{4}
734}
735
736func (m *LocationInfo) XXX_Unmarshal(b []byte) error {
737	return xxx_messageInfo_LocationInfo.Unmarshal(m, b)
738}
739func (m *LocationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
740	return xxx_messageInfo_LocationInfo.Marshal(b, m, deterministic)
741}
742func (m *LocationInfo) XXX_Merge(src proto.Message) {
743	xxx_messageInfo_LocationInfo.Merge(m, src)
744}
745func (m *LocationInfo) XXX_Size() int {
746	return xxx_messageInfo_LocationInfo.Size(m)
747}
748func (m *LocationInfo) XXX_DiscardUnknown() {
749	xxx_messageInfo_LocationInfo.DiscardUnknown(m)
750}
751
752var xxx_messageInfo_LocationInfo proto.InternalMessageInfo
753
754func (m *LocationInfo) GetLatLng() *latlng.LatLng {
755	if m != nil {
756		return m.LatLng
757	}
758	return nil
759}
760
761// A `Property` consists of a user-supplied name/value pair.
762type Property struct {
763	// Name of the property.
764	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
765	// Value of the property.
766	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
767	// Value of numeric properties.
768	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"`
769	XXX_NoUnkeyedLiteral struct{} `json:"-"`
770	XXX_unrecognized     []byte   `json:"-"`
771	XXX_sizecache        int32    `json:"-"`
772}
773
774func (m *Property) Reset()         { *m = Property{} }
775func (m *Property) String() string { return proto.CompactTextString(m) }
776func (*Property) ProtoMessage()    {}
777func (*Property) Descriptor() ([]byte, []int) {
778	return fileDescriptor_1f6928ee25f8ae1f, []int{5}
779}
780
781func (m *Property) XXX_Unmarshal(b []byte) error {
782	return xxx_messageInfo_Property.Unmarshal(m, b)
783}
784func (m *Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
785	return xxx_messageInfo_Property.Marshal(b, m, deterministic)
786}
787func (m *Property) XXX_Merge(src proto.Message) {
788	xxx_messageInfo_Property.Merge(m, src)
789}
790func (m *Property) XXX_Size() int {
791	return xxx_messageInfo_Property.Size(m)
792}
793func (m *Property) XXX_DiscardUnknown() {
794	xxx_messageInfo_Property.DiscardUnknown(m)
795}
796
797var xxx_messageInfo_Property proto.InternalMessageInfo
798
799func (m *Property) GetName() string {
800	if m != nil {
801		return m.Name
802	}
803	return ""
804}
805
806func (m *Property) GetValue() string {
807	if m != nil {
808		return m.Value
809	}
810	return ""
811}
812
813func (m *Property) GetUint64Value() uint64 {
814	if m != nil {
815		return m.Uint64Value
816	}
817	return 0
818}
819
820// Set of detected entity features.
821type EntityAnnotation struct {
822	// Opaque entity ID. Some IDs may be available in
823	// [Google Knowledge Graph Search
824	// API](https://developers.google.com/knowledge-graph/).
825	Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
826	// The language code for the locale in which the entity textual
827	// `description` is expressed.
828	Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"`
829	// Entity textual description, expressed in its `locale` language.
830	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
831	// Overall score of the result. Range [0, 1].
832	Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
833	// The accuracy of the entity detection in an image.
834	// For example, for an image in which the "Eiffel Tower" entity is detected,
835	// this field represents the confidence that there is a tower in the query
836	// image. Range [0, 1].
837	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
838	// The relevancy of the ICA (Image Content Annotation) label to the
839	// image. For example, the relevancy of "tower" is likely higher to an image
840	// containing the detected "Eiffel Tower" than to an image containing a
841	// detected distant towering building, even though the confidence that
842	// there is a tower in each image may be the same. Range [0, 1].
843	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"`
844	// Image region to which this entity belongs. Not produced
845	// for `LABEL_DETECTION` features.
846	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
847	// The location information for the detected entity. Multiple
848	// `LocationInfo` elements can be present because one location may
849	// indicate the location of the scene in the image, and another location
850	// may indicate the location of the place where the image was taken.
851	// Location information is usually present for landmarks.
852	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"`
853	// Some entities may have optional user-supplied `Property` (name/value)
854	// fields, such a score or string that qualifies the entity.
855	Properties           []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"`
856	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
857	XXX_unrecognized     []byte      `json:"-"`
858	XXX_sizecache        int32       `json:"-"`
859}
860
861func (m *EntityAnnotation) Reset()         { *m = EntityAnnotation{} }
862func (m *EntityAnnotation) String() string { return proto.CompactTextString(m) }
863func (*EntityAnnotation) ProtoMessage()    {}
864func (*EntityAnnotation) Descriptor() ([]byte, []int) {
865	return fileDescriptor_1f6928ee25f8ae1f, []int{6}
866}
867
868func (m *EntityAnnotation) XXX_Unmarshal(b []byte) error {
869	return xxx_messageInfo_EntityAnnotation.Unmarshal(m, b)
870}
871func (m *EntityAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
872	return xxx_messageInfo_EntityAnnotation.Marshal(b, m, deterministic)
873}
874func (m *EntityAnnotation) XXX_Merge(src proto.Message) {
875	xxx_messageInfo_EntityAnnotation.Merge(m, src)
876}
877func (m *EntityAnnotation) XXX_Size() int {
878	return xxx_messageInfo_EntityAnnotation.Size(m)
879}
880func (m *EntityAnnotation) XXX_DiscardUnknown() {
881	xxx_messageInfo_EntityAnnotation.DiscardUnknown(m)
882}
883
884var xxx_messageInfo_EntityAnnotation proto.InternalMessageInfo
885
886func (m *EntityAnnotation) GetMid() string {
887	if m != nil {
888		return m.Mid
889	}
890	return ""
891}
892
893func (m *EntityAnnotation) GetLocale() string {
894	if m != nil {
895		return m.Locale
896	}
897	return ""
898}
899
900func (m *EntityAnnotation) GetDescription() string {
901	if m != nil {
902		return m.Description
903	}
904	return ""
905}
906
907func (m *EntityAnnotation) GetScore() float32 {
908	if m != nil {
909		return m.Score
910	}
911	return 0
912}
913
914func (m *EntityAnnotation) GetConfidence() float32 {
915	if m != nil {
916		return m.Confidence
917	}
918	return 0
919}
920
921func (m *EntityAnnotation) GetTopicality() float32 {
922	if m != nil {
923		return m.Topicality
924	}
925	return 0
926}
927
928func (m *EntityAnnotation) GetBoundingPoly() *BoundingPoly {
929	if m != nil {
930		return m.BoundingPoly
931	}
932	return nil
933}
934
935func (m *EntityAnnotation) GetLocations() []*LocationInfo {
936	if m != nil {
937		return m.Locations
938	}
939	return nil
940}
941
942func (m *EntityAnnotation) GetProperties() []*Property {
943	if m != nil {
944		return m.Properties
945	}
946	return nil
947}
948
949// Set of features pertaining to the image, computed by computer vision
950// methods over safe-search verticals (for example, adult, spoof, medical,
951// violence).
952type SafeSearchAnnotation struct {
953	// Represents the adult content likelihood for the image. Adult content may
954	// contain elements such as nudity, pornographic images or cartoons, or
955	// sexual activities.
956	Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"adult,omitempty"`
957	// Spoof likelihood. The likelihood that an modification
958	// was made to the image's canonical version to make it appear
959	// funny or offensive.
960	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"spoof,omitempty"`
961	// Likelihood that this is a medical image.
962	Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"medical,omitempty"`
963	// Likelihood that this image contains violent content.
964	Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"violence,omitempty"`
965	// Likelihood that the request image contains racy content. Racy content may
966	// include (but is not limited to) skimpy or sheer clothing, strategically
967	// covered nudity, lewd or provocative poses, or close-ups of sensitive
968	// body areas.
969	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"racy,omitempty"`
970	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
971	XXX_unrecognized     []byte     `json:"-"`
972	XXX_sizecache        int32      `json:"-"`
973}
974
975func (m *SafeSearchAnnotation) Reset()         { *m = SafeSearchAnnotation{} }
976func (m *SafeSearchAnnotation) String() string { return proto.CompactTextString(m) }
977func (*SafeSearchAnnotation) ProtoMessage()    {}
978func (*SafeSearchAnnotation) Descriptor() ([]byte, []int) {
979	return fileDescriptor_1f6928ee25f8ae1f, []int{7}
980}
981
982func (m *SafeSearchAnnotation) XXX_Unmarshal(b []byte) error {
983	return xxx_messageInfo_SafeSearchAnnotation.Unmarshal(m, b)
984}
985func (m *SafeSearchAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
986	return xxx_messageInfo_SafeSearchAnnotation.Marshal(b, m, deterministic)
987}
988func (m *SafeSearchAnnotation) XXX_Merge(src proto.Message) {
989	xxx_messageInfo_SafeSearchAnnotation.Merge(m, src)
990}
991func (m *SafeSearchAnnotation) XXX_Size() int {
992	return xxx_messageInfo_SafeSearchAnnotation.Size(m)
993}
994func (m *SafeSearchAnnotation) XXX_DiscardUnknown() {
995	xxx_messageInfo_SafeSearchAnnotation.DiscardUnknown(m)
996}
997
998var xxx_messageInfo_SafeSearchAnnotation proto.InternalMessageInfo
999
1000func (m *SafeSearchAnnotation) GetAdult() Likelihood {
1001	if m != nil {
1002		return m.Adult
1003	}
1004	return Likelihood_UNKNOWN
1005}
1006
1007func (m *SafeSearchAnnotation) GetSpoof() Likelihood {
1008	if m != nil {
1009		return m.Spoof
1010	}
1011	return Likelihood_UNKNOWN
1012}
1013
1014func (m *SafeSearchAnnotation) GetMedical() Likelihood {
1015	if m != nil {
1016		return m.Medical
1017	}
1018	return Likelihood_UNKNOWN
1019}
1020
1021func (m *SafeSearchAnnotation) GetViolence() Likelihood {
1022	if m != nil {
1023		return m.Violence
1024	}
1025	return Likelihood_UNKNOWN
1026}
1027
1028func (m *SafeSearchAnnotation) GetRacy() Likelihood {
1029	if m != nil {
1030		return m.Racy
1031	}
1032	return Likelihood_UNKNOWN
1033}
1034
1035// Rectangle determined by min and max `LatLng` pairs.
1036type LatLongRect struct {
1037	// Min lat/long pair.
1038	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"`
1039	// Max lat/long pair.
1040	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"`
1041	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
1042	XXX_unrecognized     []byte         `json:"-"`
1043	XXX_sizecache        int32          `json:"-"`
1044}
1045
1046func (m *LatLongRect) Reset()         { *m = LatLongRect{} }
1047func (m *LatLongRect) String() string { return proto.CompactTextString(m) }
1048func (*LatLongRect) ProtoMessage()    {}
1049func (*LatLongRect) Descriptor() ([]byte, []int) {
1050	return fileDescriptor_1f6928ee25f8ae1f, []int{8}
1051}
1052
1053func (m *LatLongRect) XXX_Unmarshal(b []byte) error {
1054	return xxx_messageInfo_LatLongRect.Unmarshal(m, b)
1055}
1056func (m *LatLongRect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1057	return xxx_messageInfo_LatLongRect.Marshal(b, m, deterministic)
1058}
1059func (m *LatLongRect) XXX_Merge(src proto.Message) {
1060	xxx_messageInfo_LatLongRect.Merge(m, src)
1061}
1062func (m *LatLongRect) XXX_Size() int {
1063	return xxx_messageInfo_LatLongRect.Size(m)
1064}
1065func (m *LatLongRect) XXX_DiscardUnknown() {
1066	xxx_messageInfo_LatLongRect.DiscardUnknown(m)
1067}
1068
1069var xxx_messageInfo_LatLongRect proto.InternalMessageInfo
1070
1071func (m *LatLongRect) GetMinLatLng() *latlng.LatLng {
1072	if m != nil {
1073		return m.MinLatLng
1074	}
1075	return nil
1076}
1077
1078func (m *LatLongRect) GetMaxLatLng() *latlng.LatLng {
1079	if m != nil {
1080		return m.MaxLatLng
1081	}
1082	return nil
1083}
1084
1085// Color information consists of RGB channels, score, and the fraction of
1086// the image that the color occupies in the image.
1087type ColorInfo struct {
1088	// RGB components of the color.
1089	Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
1090	// Image-specific score for this color. Value in range [0, 1].
1091	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
1092	// The fraction of pixels the color occupies in the image.
1093	// Value in range [0, 1].
1094	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"`
1095	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1096	XXX_unrecognized     []byte   `json:"-"`
1097	XXX_sizecache        int32    `json:"-"`
1098}
1099
1100func (m *ColorInfo) Reset()         { *m = ColorInfo{} }
1101func (m *ColorInfo) String() string { return proto.CompactTextString(m) }
1102func (*ColorInfo) ProtoMessage()    {}
1103func (*ColorInfo) Descriptor() ([]byte, []int) {
1104	return fileDescriptor_1f6928ee25f8ae1f, []int{9}
1105}
1106
1107func (m *ColorInfo) XXX_Unmarshal(b []byte) error {
1108	return xxx_messageInfo_ColorInfo.Unmarshal(m, b)
1109}
1110func (m *ColorInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1111	return xxx_messageInfo_ColorInfo.Marshal(b, m, deterministic)
1112}
1113func (m *ColorInfo) XXX_Merge(src proto.Message) {
1114	xxx_messageInfo_ColorInfo.Merge(m, src)
1115}
1116func (m *ColorInfo) XXX_Size() int {
1117	return xxx_messageInfo_ColorInfo.Size(m)
1118}
1119func (m *ColorInfo) XXX_DiscardUnknown() {
1120	xxx_messageInfo_ColorInfo.DiscardUnknown(m)
1121}
1122
1123var xxx_messageInfo_ColorInfo proto.InternalMessageInfo
1124
1125func (m *ColorInfo) GetColor() *color.Color {
1126	if m != nil {
1127		return m.Color
1128	}
1129	return nil
1130}
1131
1132func (m *ColorInfo) GetScore() float32 {
1133	if m != nil {
1134		return m.Score
1135	}
1136	return 0
1137}
1138
1139func (m *ColorInfo) GetPixelFraction() float32 {
1140	if m != nil {
1141		return m.PixelFraction
1142	}
1143	return 0
1144}
1145
1146// Set of dominant colors and their corresponding scores.
1147type DominantColorsAnnotation struct {
1148	// RGB color values with their score and pixel fraction.
1149	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"`
1150	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
1151	XXX_unrecognized     []byte       `json:"-"`
1152	XXX_sizecache        int32        `json:"-"`
1153}
1154
1155func (m *DominantColorsAnnotation) Reset()         { *m = DominantColorsAnnotation{} }
1156func (m *DominantColorsAnnotation) String() string { return proto.CompactTextString(m) }
1157func (*DominantColorsAnnotation) ProtoMessage()    {}
1158func (*DominantColorsAnnotation) Descriptor() ([]byte, []int) {
1159	return fileDescriptor_1f6928ee25f8ae1f, []int{10}
1160}
1161
1162func (m *DominantColorsAnnotation) XXX_Unmarshal(b []byte) error {
1163	return xxx_messageInfo_DominantColorsAnnotation.Unmarshal(m, b)
1164}
1165func (m *DominantColorsAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1166	return xxx_messageInfo_DominantColorsAnnotation.Marshal(b, m, deterministic)
1167}
1168func (m *DominantColorsAnnotation) XXX_Merge(src proto.Message) {
1169	xxx_messageInfo_DominantColorsAnnotation.Merge(m, src)
1170}
1171func (m *DominantColorsAnnotation) XXX_Size() int {
1172	return xxx_messageInfo_DominantColorsAnnotation.Size(m)
1173}
1174func (m *DominantColorsAnnotation) XXX_DiscardUnknown() {
1175	xxx_messageInfo_DominantColorsAnnotation.DiscardUnknown(m)
1176}
1177
1178var xxx_messageInfo_DominantColorsAnnotation proto.InternalMessageInfo
1179
1180func (m *DominantColorsAnnotation) GetColors() []*ColorInfo {
1181	if m != nil {
1182		return m.Colors
1183	}
1184	return nil
1185}
1186
1187// Stores image properties, such as dominant colors.
1188type ImageProperties struct {
1189	// If present, dominant colors completed successfully.
1190	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"`
1191	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
1192	XXX_unrecognized     []byte                    `json:"-"`
1193	XXX_sizecache        int32                     `json:"-"`
1194}
1195
1196func (m *ImageProperties) Reset()         { *m = ImageProperties{} }
1197func (m *ImageProperties) String() string { return proto.CompactTextString(m) }
1198func (*ImageProperties) ProtoMessage()    {}
1199func (*ImageProperties) Descriptor() ([]byte, []int) {
1200	return fileDescriptor_1f6928ee25f8ae1f, []int{11}
1201}
1202
1203func (m *ImageProperties) XXX_Unmarshal(b []byte) error {
1204	return xxx_messageInfo_ImageProperties.Unmarshal(m, b)
1205}
1206func (m *ImageProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1207	return xxx_messageInfo_ImageProperties.Marshal(b, m, deterministic)
1208}
1209func (m *ImageProperties) XXX_Merge(src proto.Message) {
1210	xxx_messageInfo_ImageProperties.Merge(m, src)
1211}
1212func (m *ImageProperties) XXX_Size() int {
1213	return xxx_messageInfo_ImageProperties.Size(m)
1214}
1215func (m *ImageProperties) XXX_DiscardUnknown() {
1216	xxx_messageInfo_ImageProperties.DiscardUnknown(m)
1217}
1218
1219var xxx_messageInfo_ImageProperties proto.InternalMessageInfo
1220
1221func (m *ImageProperties) GetDominantColors() *DominantColorsAnnotation {
1222	if m != nil {
1223		return m.DominantColors
1224	}
1225	return nil
1226}
1227
1228// Single crop hint that is used to generate a new crop when serving an image.
1229type CropHint struct {
1230	// The bounding polygon for the crop region. The coordinates of the bounding
1231	// box are in the original image's scale, as returned in `ImageParams`.
1232	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
1233	// Confidence of this being a salient region.  Range [0, 1].
1234	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
1235	// Fraction of importance of this salient region with respect to the original
1236	// image.
1237	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"`
1238	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1239	XXX_unrecognized     []byte   `json:"-"`
1240	XXX_sizecache        int32    `json:"-"`
1241}
1242
1243func (m *CropHint) Reset()         { *m = CropHint{} }
1244func (m *CropHint) String() string { return proto.CompactTextString(m) }
1245func (*CropHint) ProtoMessage()    {}
1246func (*CropHint) Descriptor() ([]byte, []int) {
1247	return fileDescriptor_1f6928ee25f8ae1f, []int{12}
1248}
1249
1250func (m *CropHint) XXX_Unmarshal(b []byte) error {
1251	return xxx_messageInfo_CropHint.Unmarshal(m, b)
1252}
1253func (m *CropHint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1254	return xxx_messageInfo_CropHint.Marshal(b, m, deterministic)
1255}
1256func (m *CropHint) XXX_Merge(src proto.Message) {
1257	xxx_messageInfo_CropHint.Merge(m, src)
1258}
1259func (m *CropHint) XXX_Size() int {
1260	return xxx_messageInfo_CropHint.Size(m)
1261}
1262func (m *CropHint) XXX_DiscardUnknown() {
1263	xxx_messageInfo_CropHint.DiscardUnknown(m)
1264}
1265
1266var xxx_messageInfo_CropHint proto.InternalMessageInfo
1267
1268func (m *CropHint) GetBoundingPoly() *BoundingPoly {
1269	if m != nil {
1270		return m.BoundingPoly
1271	}
1272	return nil
1273}
1274
1275func (m *CropHint) GetConfidence() float32 {
1276	if m != nil {
1277		return m.Confidence
1278	}
1279	return 0
1280}
1281
1282func (m *CropHint) GetImportanceFraction() float32 {
1283	if m != nil {
1284		return m.ImportanceFraction
1285	}
1286	return 0
1287}
1288
1289// Set of crop hints that are used to generate new crops when serving images.
1290type CropHintsAnnotation struct {
1291	// Crop hint results.
1292	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"`
1293	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
1294	XXX_unrecognized     []byte      `json:"-"`
1295	XXX_sizecache        int32       `json:"-"`
1296}
1297
1298func (m *CropHintsAnnotation) Reset()         { *m = CropHintsAnnotation{} }
1299func (m *CropHintsAnnotation) String() string { return proto.CompactTextString(m) }
1300func (*CropHintsAnnotation) ProtoMessage()    {}
1301func (*CropHintsAnnotation) Descriptor() ([]byte, []int) {
1302	return fileDescriptor_1f6928ee25f8ae1f, []int{13}
1303}
1304
1305func (m *CropHintsAnnotation) XXX_Unmarshal(b []byte) error {
1306	return xxx_messageInfo_CropHintsAnnotation.Unmarshal(m, b)
1307}
1308func (m *CropHintsAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1309	return xxx_messageInfo_CropHintsAnnotation.Marshal(b, m, deterministic)
1310}
1311func (m *CropHintsAnnotation) XXX_Merge(src proto.Message) {
1312	xxx_messageInfo_CropHintsAnnotation.Merge(m, src)
1313}
1314func (m *CropHintsAnnotation) XXX_Size() int {
1315	return xxx_messageInfo_CropHintsAnnotation.Size(m)
1316}
1317func (m *CropHintsAnnotation) XXX_DiscardUnknown() {
1318	xxx_messageInfo_CropHintsAnnotation.DiscardUnknown(m)
1319}
1320
1321var xxx_messageInfo_CropHintsAnnotation proto.InternalMessageInfo
1322
1323func (m *CropHintsAnnotation) GetCropHints() []*CropHint {
1324	if m != nil {
1325		return m.CropHints
1326	}
1327	return nil
1328}
1329
1330// Parameters for crop hints annotation request.
1331type CropHintsParams struct {
1332	// Aspect ratios in floats, representing the ratio of the width to the height
1333	// of the image. For example, if the desired aspect ratio is 4/3, the
1334	// corresponding float value should be 1.33333.  If not specified, the
1335	// best possible crop is returned. The number of provided aspect ratios is
1336	// limited to a maximum of 16; any aspect ratios provided after the 16th are
1337	// ignored.
1338	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"`
1339	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
1340	XXX_unrecognized     []byte    `json:"-"`
1341	XXX_sizecache        int32     `json:"-"`
1342}
1343
1344func (m *CropHintsParams) Reset()         { *m = CropHintsParams{} }
1345func (m *CropHintsParams) String() string { return proto.CompactTextString(m) }
1346func (*CropHintsParams) ProtoMessage()    {}
1347func (*CropHintsParams) Descriptor() ([]byte, []int) {
1348	return fileDescriptor_1f6928ee25f8ae1f, []int{14}
1349}
1350
1351func (m *CropHintsParams) XXX_Unmarshal(b []byte) error {
1352	return xxx_messageInfo_CropHintsParams.Unmarshal(m, b)
1353}
1354func (m *CropHintsParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1355	return xxx_messageInfo_CropHintsParams.Marshal(b, m, deterministic)
1356}
1357func (m *CropHintsParams) XXX_Merge(src proto.Message) {
1358	xxx_messageInfo_CropHintsParams.Merge(m, src)
1359}
1360func (m *CropHintsParams) XXX_Size() int {
1361	return xxx_messageInfo_CropHintsParams.Size(m)
1362}
1363func (m *CropHintsParams) XXX_DiscardUnknown() {
1364	xxx_messageInfo_CropHintsParams.DiscardUnknown(m)
1365}
1366
1367var xxx_messageInfo_CropHintsParams proto.InternalMessageInfo
1368
1369func (m *CropHintsParams) GetAspectRatios() []float32 {
1370	if m != nil {
1371		return m.AspectRatios
1372	}
1373	return nil
1374}
1375
1376// Parameters for web detection request.
1377type WebDetectionParams struct {
1378	// Whether to include results derived from the geo information in the image.
1379	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"`
1380	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1381	XXX_unrecognized     []byte   `json:"-"`
1382	XXX_sizecache        int32    `json:"-"`
1383}
1384
1385func (m *WebDetectionParams) Reset()         { *m = WebDetectionParams{} }
1386func (m *WebDetectionParams) String() string { return proto.CompactTextString(m) }
1387func (*WebDetectionParams) ProtoMessage()    {}
1388func (*WebDetectionParams) Descriptor() ([]byte, []int) {
1389	return fileDescriptor_1f6928ee25f8ae1f, []int{15}
1390}
1391
1392func (m *WebDetectionParams) XXX_Unmarshal(b []byte) error {
1393	return xxx_messageInfo_WebDetectionParams.Unmarshal(m, b)
1394}
1395func (m *WebDetectionParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1396	return xxx_messageInfo_WebDetectionParams.Marshal(b, m, deterministic)
1397}
1398func (m *WebDetectionParams) XXX_Merge(src proto.Message) {
1399	xxx_messageInfo_WebDetectionParams.Merge(m, src)
1400}
1401func (m *WebDetectionParams) XXX_Size() int {
1402	return xxx_messageInfo_WebDetectionParams.Size(m)
1403}
1404func (m *WebDetectionParams) XXX_DiscardUnknown() {
1405	xxx_messageInfo_WebDetectionParams.DiscardUnknown(m)
1406}
1407
1408var xxx_messageInfo_WebDetectionParams proto.InternalMessageInfo
1409
1410func (m *WebDetectionParams) GetIncludeGeoResults() bool {
1411	if m != nil {
1412		return m.IncludeGeoResults
1413	}
1414	return false
1415}
1416
1417// Image context and/or feature-specific parameters.
1418type ImageContext struct {
1419	// lat/long rectangle that specifies the location of the image.
1420	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"`
1421	// List of languages to use for TEXT_DETECTION. In most cases, an empty value
1422	// yields the best results since it enables automatic language detection. For
1423	// languages based on the Latin alphabet, setting `language_hints` is not
1424	// needed. In rare cases, when the language of the text in the image is known,
1425	// setting a hint will help get better results (although it will be a
1426	// significant hindrance if the hint is wrong). Text detection returns an
1427	// error if one or more of the specified languages is not one of the
1428	// [supported languages](/vision/docs/languages).
1429	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"`
1430	// Parameters for crop hints annotation request.
1431	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"`
1432	// Parameters for web detection.
1433	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"`
1434	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
1435	XXX_unrecognized     []byte              `json:"-"`
1436	XXX_sizecache        int32               `json:"-"`
1437}
1438
1439func (m *ImageContext) Reset()         { *m = ImageContext{} }
1440func (m *ImageContext) String() string { return proto.CompactTextString(m) }
1441func (*ImageContext) ProtoMessage()    {}
1442func (*ImageContext) Descriptor() ([]byte, []int) {
1443	return fileDescriptor_1f6928ee25f8ae1f, []int{16}
1444}
1445
1446func (m *ImageContext) XXX_Unmarshal(b []byte) error {
1447	return xxx_messageInfo_ImageContext.Unmarshal(m, b)
1448}
1449func (m *ImageContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1450	return xxx_messageInfo_ImageContext.Marshal(b, m, deterministic)
1451}
1452func (m *ImageContext) XXX_Merge(src proto.Message) {
1453	xxx_messageInfo_ImageContext.Merge(m, src)
1454}
1455func (m *ImageContext) XXX_Size() int {
1456	return xxx_messageInfo_ImageContext.Size(m)
1457}
1458func (m *ImageContext) XXX_DiscardUnknown() {
1459	xxx_messageInfo_ImageContext.DiscardUnknown(m)
1460}
1461
1462var xxx_messageInfo_ImageContext proto.InternalMessageInfo
1463
1464func (m *ImageContext) GetLatLongRect() *LatLongRect {
1465	if m != nil {
1466		return m.LatLongRect
1467	}
1468	return nil
1469}
1470
1471func (m *ImageContext) GetLanguageHints() []string {
1472	if m != nil {
1473		return m.LanguageHints
1474	}
1475	return nil
1476}
1477
1478func (m *ImageContext) GetCropHintsParams() *CropHintsParams {
1479	if m != nil {
1480		return m.CropHintsParams
1481	}
1482	return nil
1483}
1484
1485func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
1486	if m != nil {
1487		return m.WebDetectionParams
1488	}
1489	return nil
1490}
1491
1492// Request for performing Google Cloud Vision API tasks over a user-provided
1493// image, with user-requested features.
1494type AnnotateImageRequest struct {
1495	// The image to be processed.
1496	Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
1497	// Requested features.
1498	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
1499	// Additional context that may accompany the image.
1500	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
1501	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
1502	XXX_unrecognized     []byte        `json:"-"`
1503	XXX_sizecache        int32         `json:"-"`
1504}
1505
1506func (m *AnnotateImageRequest) Reset()         { *m = AnnotateImageRequest{} }
1507func (m *AnnotateImageRequest) String() string { return proto.CompactTextString(m) }
1508func (*AnnotateImageRequest) ProtoMessage()    {}
1509func (*AnnotateImageRequest) Descriptor() ([]byte, []int) {
1510	return fileDescriptor_1f6928ee25f8ae1f, []int{17}
1511}
1512
1513func (m *AnnotateImageRequest) XXX_Unmarshal(b []byte) error {
1514	return xxx_messageInfo_AnnotateImageRequest.Unmarshal(m, b)
1515}
1516func (m *AnnotateImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1517	return xxx_messageInfo_AnnotateImageRequest.Marshal(b, m, deterministic)
1518}
1519func (m *AnnotateImageRequest) XXX_Merge(src proto.Message) {
1520	xxx_messageInfo_AnnotateImageRequest.Merge(m, src)
1521}
1522func (m *AnnotateImageRequest) XXX_Size() int {
1523	return xxx_messageInfo_AnnotateImageRequest.Size(m)
1524}
1525func (m *AnnotateImageRequest) XXX_DiscardUnknown() {
1526	xxx_messageInfo_AnnotateImageRequest.DiscardUnknown(m)
1527}
1528
1529var xxx_messageInfo_AnnotateImageRequest proto.InternalMessageInfo
1530
1531func (m *AnnotateImageRequest) GetImage() *Image {
1532	if m != nil {
1533		return m.Image
1534	}
1535	return nil
1536}
1537
1538func (m *AnnotateImageRequest) GetFeatures() []*Feature {
1539	if m != nil {
1540		return m.Features
1541	}
1542	return nil
1543}
1544
1545func (m *AnnotateImageRequest) GetImageContext() *ImageContext {
1546	if m != nil {
1547		return m.ImageContext
1548	}
1549	return nil
1550}
1551
1552// Response to an image annotation request.
1553type AnnotateImageResponse struct {
1554	// If present, face detection has completed successfully.
1555	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
1556	// If present, landmark detection has completed successfully.
1557	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"`
1558	// If present, logo detection has completed successfully.
1559	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"`
1560	// If present, label detection has completed successfully.
1561	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
1562	// If present, text (OCR) detection has completed successfully.
1563	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"`
1564	// If present, text (OCR) detection or document (OCR) text detection has
1565	// completed successfully.
1566	// This annotation provides the structural hierarchy for the OCR detected
1567	// text.
1568	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"`
1569	// If present, safe-search annotation has completed successfully.
1570	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"`
1571	// If present, image properties were extracted successfully.
1572	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"`
1573	// If present, crop hints have completed successfully.
1574	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"`
1575	// If present, web detection has completed successfully.
1576	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"`
1577	// If set, represents the error message for the operation.
1578	// Note that filled-in image annotations are guaranteed to be
1579	// correct, even when `error` is set.
1580	Error                *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
1581	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
1582	XXX_unrecognized     []byte         `json:"-"`
1583	XXX_sizecache        int32          `json:"-"`
1584}
1585
1586func (m *AnnotateImageResponse) Reset()         { *m = AnnotateImageResponse{} }
1587func (m *AnnotateImageResponse) String() string { return proto.CompactTextString(m) }
1588func (*AnnotateImageResponse) ProtoMessage()    {}
1589func (*AnnotateImageResponse) Descriptor() ([]byte, []int) {
1590	return fileDescriptor_1f6928ee25f8ae1f, []int{18}
1591}
1592
1593func (m *AnnotateImageResponse) XXX_Unmarshal(b []byte) error {
1594	return xxx_messageInfo_AnnotateImageResponse.Unmarshal(m, b)
1595}
1596func (m *AnnotateImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1597	return xxx_messageInfo_AnnotateImageResponse.Marshal(b, m, deterministic)
1598}
1599func (m *AnnotateImageResponse) XXX_Merge(src proto.Message) {
1600	xxx_messageInfo_AnnotateImageResponse.Merge(m, src)
1601}
1602func (m *AnnotateImageResponse) XXX_Size() int {
1603	return xxx_messageInfo_AnnotateImageResponse.Size(m)
1604}
1605func (m *AnnotateImageResponse) XXX_DiscardUnknown() {
1606	xxx_messageInfo_AnnotateImageResponse.DiscardUnknown(m)
1607}
1608
1609var xxx_messageInfo_AnnotateImageResponse proto.InternalMessageInfo
1610
1611func (m *AnnotateImageResponse) GetFaceAnnotations() []*FaceAnnotation {
1612	if m != nil {
1613		return m.FaceAnnotations
1614	}
1615	return nil
1616}
1617
1618func (m *AnnotateImageResponse) GetLandmarkAnnotations() []*EntityAnnotation {
1619	if m != nil {
1620		return m.LandmarkAnnotations
1621	}
1622	return nil
1623}
1624
1625func (m *AnnotateImageResponse) GetLogoAnnotations() []*EntityAnnotation {
1626	if m != nil {
1627		return m.LogoAnnotations
1628	}
1629	return nil
1630}
1631
1632func (m *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation {
1633	if m != nil {
1634		return m.LabelAnnotations
1635	}
1636	return nil
1637}
1638
1639func (m *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation {
1640	if m != nil {
1641		return m.TextAnnotations
1642	}
1643	return nil
1644}
1645
1646func (m *AnnotateImageResponse) GetFullTextAnnotation() *TextAnnotation {
1647	if m != nil {
1648		return m.FullTextAnnotation
1649	}
1650	return nil
1651}
1652
1653func (m *AnnotateImageResponse) GetSafeSearchAnnotation() *SafeSearchAnnotation {
1654	if m != nil {
1655		return m.SafeSearchAnnotation
1656	}
1657	return nil
1658}
1659
1660func (m *AnnotateImageResponse) GetImagePropertiesAnnotation() *ImageProperties {
1661	if m != nil {
1662		return m.ImagePropertiesAnnotation
1663	}
1664	return nil
1665}
1666
1667func (m *AnnotateImageResponse) GetCropHintsAnnotation() *CropHintsAnnotation {
1668	if m != nil {
1669		return m.CropHintsAnnotation
1670	}
1671	return nil
1672}
1673
1674func (m *AnnotateImageResponse) GetWebDetection() *WebDetection {
1675	if m != nil {
1676		return m.WebDetection
1677	}
1678	return nil
1679}
1680
1681func (m *AnnotateImageResponse) GetError() *status.Status {
1682	if m != nil {
1683		return m.Error
1684	}
1685	return nil
1686}
1687
1688// Multiple image annotation requests are batched into a single service call.
1689type BatchAnnotateImagesRequest struct {
1690	// Required. Individual image annotation requests for this batch.
1691	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
1692	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
1693	XXX_unrecognized     []byte                  `json:"-"`
1694	XXX_sizecache        int32                   `json:"-"`
1695}
1696
1697func (m *BatchAnnotateImagesRequest) Reset()         { *m = BatchAnnotateImagesRequest{} }
1698func (m *BatchAnnotateImagesRequest) String() string { return proto.CompactTextString(m) }
1699func (*BatchAnnotateImagesRequest) ProtoMessage()    {}
1700func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) {
1701	return fileDescriptor_1f6928ee25f8ae1f, []int{19}
1702}
1703
1704func (m *BatchAnnotateImagesRequest) XXX_Unmarshal(b []byte) error {
1705	return xxx_messageInfo_BatchAnnotateImagesRequest.Unmarshal(m, b)
1706}
1707func (m *BatchAnnotateImagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1708	return xxx_messageInfo_BatchAnnotateImagesRequest.Marshal(b, m, deterministic)
1709}
1710func (m *BatchAnnotateImagesRequest) XXX_Merge(src proto.Message) {
1711	xxx_messageInfo_BatchAnnotateImagesRequest.Merge(m, src)
1712}
1713func (m *BatchAnnotateImagesRequest) XXX_Size() int {
1714	return xxx_messageInfo_BatchAnnotateImagesRequest.Size(m)
1715}
1716func (m *BatchAnnotateImagesRequest) XXX_DiscardUnknown() {
1717	xxx_messageInfo_BatchAnnotateImagesRequest.DiscardUnknown(m)
1718}
1719
1720var xxx_messageInfo_BatchAnnotateImagesRequest proto.InternalMessageInfo
1721
1722func (m *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest {
1723	if m != nil {
1724		return m.Requests
1725	}
1726	return nil
1727}
1728
1729// Response to a batch image annotation request.
1730type BatchAnnotateImagesResponse struct {
1731	// Individual responses to image annotation requests within the batch.
1732	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
1733	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
1734	XXX_unrecognized     []byte                   `json:"-"`
1735	XXX_sizecache        int32                    `json:"-"`
1736}
1737
1738func (m *BatchAnnotateImagesResponse) Reset()         { *m = BatchAnnotateImagesResponse{} }
1739func (m *BatchAnnotateImagesResponse) String() string { return proto.CompactTextString(m) }
1740func (*BatchAnnotateImagesResponse) ProtoMessage()    {}
1741func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) {
1742	return fileDescriptor_1f6928ee25f8ae1f, []int{20}
1743}
1744
1745func (m *BatchAnnotateImagesResponse) XXX_Unmarshal(b []byte) error {
1746	return xxx_messageInfo_BatchAnnotateImagesResponse.Unmarshal(m, b)
1747}
1748func (m *BatchAnnotateImagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1749	return xxx_messageInfo_BatchAnnotateImagesResponse.Marshal(b, m, deterministic)
1750}
1751func (m *BatchAnnotateImagesResponse) XXX_Merge(src proto.Message) {
1752	xxx_messageInfo_BatchAnnotateImagesResponse.Merge(m, src)
1753}
1754func (m *BatchAnnotateImagesResponse) XXX_Size() int {
1755	return xxx_messageInfo_BatchAnnotateImagesResponse.Size(m)
1756}
1757func (m *BatchAnnotateImagesResponse) XXX_DiscardUnknown() {
1758	xxx_messageInfo_BatchAnnotateImagesResponse.DiscardUnknown(m)
1759}
1760
1761var xxx_messageInfo_BatchAnnotateImagesResponse proto.InternalMessageInfo
1762
1763func (m *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse {
1764	if m != nil {
1765		return m.Responses
1766	}
1767	return nil
1768}
1769
1770func init() {
1771	proto.RegisterEnum("google.cloud.vision.v1p1beta1.Likelihood", Likelihood_name, Likelihood_value)
1772	proto.RegisterEnum("google.cloud.vision.v1p1beta1.Feature_Type", Feature_Type_name, Feature_Type_value)
1773	proto.RegisterEnum("google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type", FaceAnnotation_Landmark_Type_name, FaceAnnotation_Landmark_Type_value)
1774	proto.RegisterType((*Feature)(nil), "google.cloud.vision.v1p1beta1.Feature")
1775	proto.RegisterType((*ImageSource)(nil), "google.cloud.vision.v1p1beta1.ImageSource")
1776	proto.RegisterType((*Image)(nil), "google.cloud.vision.v1p1beta1.Image")
1777	proto.RegisterType((*FaceAnnotation)(nil), "google.cloud.vision.v1p1beta1.FaceAnnotation")
1778	proto.RegisterType((*FaceAnnotation_Landmark)(nil), "google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark")
1779	proto.RegisterType((*LocationInfo)(nil), "google.cloud.vision.v1p1beta1.LocationInfo")
1780	proto.RegisterType((*Property)(nil), "google.cloud.vision.v1p1beta1.Property")
1781	proto.RegisterType((*EntityAnnotation)(nil), "google.cloud.vision.v1p1beta1.EntityAnnotation")
1782	proto.RegisterType((*SafeSearchAnnotation)(nil), "google.cloud.vision.v1p1beta1.SafeSearchAnnotation")
1783	proto.RegisterType((*LatLongRect)(nil), "google.cloud.vision.v1p1beta1.LatLongRect")
1784	proto.RegisterType((*ColorInfo)(nil), "google.cloud.vision.v1p1beta1.ColorInfo")
1785	proto.RegisterType((*DominantColorsAnnotation)(nil), "google.cloud.vision.v1p1beta1.DominantColorsAnnotation")
1786	proto.RegisterType((*ImageProperties)(nil), "google.cloud.vision.v1p1beta1.ImageProperties")
1787	proto.RegisterType((*CropHint)(nil), "google.cloud.vision.v1p1beta1.CropHint")
1788	proto.RegisterType((*CropHintsAnnotation)(nil), "google.cloud.vision.v1p1beta1.CropHintsAnnotation")
1789	proto.RegisterType((*CropHintsParams)(nil), "google.cloud.vision.v1p1beta1.CropHintsParams")
1790	proto.RegisterType((*WebDetectionParams)(nil), "google.cloud.vision.v1p1beta1.WebDetectionParams")
1791	proto.RegisterType((*ImageContext)(nil), "google.cloud.vision.v1p1beta1.ImageContext")
1792	proto.RegisterType((*AnnotateImageRequest)(nil), "google.cloud.vision.v1p1beta1.AnnotateImageRequest")
1793	proto.RegisterType((*AnnotateImageResponse)(nil), "google.cloud.vision.v1p1beta1.AnnotateImageResponse")
1794	proto.RegisterType((*BatchAnnotateImagesRequest)(nil), "google.cloud.vision.v1p1beta1.BatchAnnotateImagesRequest")
1795	proto.RegisterType((*BatchAnnotateImagesResponse)(nil), "google.cloud.vision.v1p1beta1.BatchAnnotateImagesResponse")
1796}
1797
1798func init() {
1799	proto.RegisterFile("google/cloud/vision/v1p1beta1/image_annotator.proto", fileDescriptor_1f6928ee25f8ae1f)
1800}
1801
1802var fileDescriptor_1f6928ee25f8ae1f = []byte{
1803	// 2475 bytes of a gzipped FileDescriptorProto
1804	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcd, 0x73, 0x23, 0x47,
1805	0x15, 0x8f, 0xe4, 0x2f, 0xe9, 0x49, 0xb6, 0xc7, 0xed, 0x8f, 0x68, 0xbd, 0xbb, 0x59, 0x67, 0x20,
1806	0x60, 0x42, 0x22, 0xb1, 0xde, 0x10, 0x8a, 0x0d, 0x54, 0x90, 0xe4, 0xb1, 0xad, 0x8a, 0x56, 0x52,
1807	0xb5, 0xe4, 0x38, 0xbb, 0x84, 0x1a, 0xc6, 0xa3, 0x96, 0x3c, 0xc9, 0x68, 0x7a, 0x32, 0x33, 0x5a,
1808	0xdb, 0xd7, 0x5c, 0x39, 0x72, 0xe3, 0xce, 0x91, 0x1b, 0x67, 0x8e, 0x54, 0xc1, 0x11, 0x0e, 0x54,
1809	0x71, 0xa2, 0x0a, 0x0e, 0xfc, 0x05, 0x14, 0xc5, 0x89, 0xea, 0x8f, 0x19, 0xf5, 0x68, 0xbd, 0x2b,
1810	0x6b, 0x29, 0x4e, 0x9a, 0x7e, 0xaf, 0x7f, 0xbf, 0xd7, 0xfd, 0x5e, 0xbf, 0xee, 0xd7, 0x2d, 0x78,
1811	0x34, 0xa4, 0x74, 0xe8, 0x92, 0x8a, 0xed, 0xd2, 0x71, 0xbf, 0xf2, 0xdc, 0x09, 0x1d, 0xea, 0x55,
1812	0x9e, 0x3f, 0xf4, 0x1f, 0x9e, 0x93, 0xc8, 0x7a, 0x58, 0x71, 0x46, 0xd6, 0x90, 0x98, 0x96, 0xe7,
1813	0xd1, 0xc8, 0x8a, 0x68, 0x50, 0xf6, 0x03, 0x1a, 0x51, 0x74, 0x5f, 0x80, 0xca, 0x1c, 0x54, 0x16,
1814	0xa0, 0x72, 0x02, 0xda, 0xbd, 0x27, 0x39, 0x2d, 0xdf, 0xa9, 0x48, 0xa8, 0x43, 0xbd, 0x50, 0x80,
1815	0x77, 0xdf, 0x54, 0xb4, 0xb6, 0xeb, 0x10, 0x2f, 0x92, 0x8a, 0x07, 0x8a, 0x62, 0xe0, 0x10, 0xb7,
1816	0x6f, 0x9e, 0x93, 0x0b, 0xeb, 0xb9, 0x13, 0x9b, 0xdd, 0x7d, 0xef, 0xd5, 0x63, 0x1d, 0x12, 0x3a,
1817	0x22, 0x51, 0x70, 0x2d, 0x7b, 0xcf, 0x98, 0x59, 0x44, 0xae, 0x22, 0x73, 0x32, 0x3a, 0x09, 0x7a,
1818	0xf8, 0x6a, 0xd0, 0x25, 0x39, 0x37, 0xfb, 0x24, 0x22, 0xb6, 0x02, 0x89, 0xe7, 0x13, 0xf8, 0x76,
1819	0x25, 0x8c, 0xac, 0x68, 0x3c, 0x3d, 0xd1, 0xe8, 0xda, 0x27, 0x15, 0x9b, 0xba, 0xc9, 0x3c, 0x4a,
1820	0xaa, 0xc2, 0xb5, 0x22, 0xd7, 0x1b, 0x0a, 0x8d, 0xfe, 0x9f, 0x2c, 0xac, 0x1c, 0x11, 0x2b, 0x1a,
1821	0x07, 0x04, 0x7d, 0x0c, 0x8b, 0xac, 0x43, 0x29, 0xb3, 0x97, 0xd9, 0x5f, 0x3b, 0xf8, 0x6e, 0xf9,
1822	0x95, 0x3e, 0x2f, 0x4b, 0x54, 0xb9, 0x77, 0xed, 0x13, 0xcc, 0x81, 0xe8, 0x01, 0x14, 0x46, 0xd6,
1823	0x95, 0x19, 0x90, 0x70, 0xec, 0x46, 0x61, 0x29, 0xbb, 0x97, 0xd9, 0x5f, 0xc2, 0x30, 0xb2, 0xae,
1824	0xb0, 0x90, 0xa0, 0x2d, 0x58, 0x1a, 0xd1, 0x3e, 0x71, 0x4b, 0x0b, 0x7b, 0x99, 0xfd, 0x3c, 0x16,
1825	0x0d, 0xfd, 0x5f, 0x19, 0x58, 0x64, 0x2c, 0x68, 0x0b, 0xb4, 0xde, 0xd3, 0x8e, 0x61, 0x9e, 0xb6,
1826	0xba, 0x1d, 0xa3, 0xde, 0x38, 0x6a, 0x18, 0x87, 0xda, 0x1b, 0x08, 0xc1, 0xda, 0x51, 0xb5, 0x6e,
1827	0x98, 0x87, 0x46, 0xcf, 0xa8, 0xf7, 0x1a, 0xed, 0x96, 0x96, 0x41, 0x3b, 0x80, 0x9a, 0xd5, 0xd6,
1828	0xe1, 0x93, 0x2a, 0xfe, 0x44, 0x91, 0x67, 0x59, 0xdf, 0x66, 0xfb, 0xb8, 0xad, 0xc8, 0x16, 0xd0,
1829	0x26, 0xac, 0x37, 0xab, 0x35, 0xa3, 0xa9, 0x08, 0x17, 0x59, 0xc7, 0x9e, 0xf1, 0x59, 0x4f, 0x91,
1830	0x2d, 0xa1, 0xbb, 0xf0, 0xe6, 0x61, 0xbb, 0x7e, 0xfa, 0xc4, 0x68, 0xf5, 0xcc, 0x29, 0x65, 0x01,
1831	0xdd, 0x81, 0xed, 0x6e, 0xf5, 0xc8, 0x30, 0xbb, 0x46, 0x15, 0xd7, 0x4f, 0x14, 0xd5, 0x32, 0x1b,
1832	0x76, 0xe3, 0x49, 0xf5, 0xd8, 0x30, 0x3b, 0xb8, 0xdd, 0x31, 0x70, 0xaf, 0x61, 0x74, 0xb5, 0x15,
1833	0xb4, 0x06, 0x50, 0xc7, 0xed, 0x8e, 0x79, 0xd2, 0x68, 0xf5, 0xba, 0x5a, 0x1e, 0x6d, 0xc0, 0xea,
1834	0x99, 0x51, 0x53, 0x80, 0xa0, 0xb7, 0xa0, 0xd0, 0x60, 0xcb, 0xbd, 0x4b, 0xc7, 0x81, 0x4d, 0x90,
1835	0x0e, 0xab, 0x43, 0x3b, 0x34, 0x45, 0x06, 0x8c, 0x03, 0x87, 0x07, 0x22, 0x8f, 0x0b, 0x43, 0x3b,
1836	0xe4, 0xdd, 0x4e, 0x03, 0x07, 0xdd, 0x85, 0xfc, 0x44, 0x9f, 0xe5, 0xfa, 0x9c, 0x23, 0x95, 0x3a,
1837	0x81, 0x25, 0xde, 0x11, 0x95, 0x60, 0xc5, 0xa6, 0x5e, 0x44, 0xbc, 0x88, 0x73, 0x14, 0x71, 0xdc,
1838	0x44, 0x35, 0x58, 0x0e, 0xb9, 0x35, 0x0e, 0x2e, 0x1c, 0xbc, 0x3b, 0x23, 0xca, 0xca, 0xf8, 0xb0,
1839	0x44, 0xea, 0xbf, 0xd6, 0x60, 0xed, 0xc8, 0xb2, 0x49, 0x35, 0x59, 0xcb, 0xa8, 0x03, 0xab, 0xe7,
1840	0x74, 0xec, 0xf5, 0x1d, 0x6f, 0x68, 0xfa, 0xd4, 0xbd, 0xe6, 0x66, 0x0b, 0x33, 0xd7, 0x50, 0x4d,
1841	0x62, 0x3a, 0xd4, 0xbd, 0xc6, 0xc5, 0x73, 0xa5, 0x85, 0x4e, 0x41, 0x1b, 0xf4, 0xcd, 0x34, 0x69,
1842	0x76, 0x7e, 0xd2, 0xb5, 0x41, 0x5f, 0x6d, 0xa3, 0x1e, 0xe4, 0x5d, 0xcb, 0xeb, 0x8f, 0xac, 0xe0,
1843	0xcb, 0xb0, 0xb4, 0xb0, 0xb7, 0xb0, 0x5f, 0x38, 0xf8, 0x70, 0xd6, 0x42, 0x4f, 0x4d, 0xb5, 0xdc,
1844	0x94, 0x70, 0x3c, 0x21, 0x42, 0xf7, 0x01, 0x02, 0xea, 0xba, 0xa6, 0xe5, 0x0d, 0x5d, 0x52, 0x5a,
1845	0xdc, 0xcb, 0xec, 0x67, 0x71, 0x9e, 0x49, 0xaa, 0x4c, 0xc0, 0x82, 0xe6, 0x5b, 0x9e, 0xd4, 0x2e,
1846	0x71, 0x6d, 0xce, 0xb7, 0x3c, 0xa1, 0xbc, 0x0f, 0x10, 0x39, 0x6e, 0x24, 0xb5, 0xcb, 0x02, 0xcb,
1847	0x24, 0x42, 0xfd, 0x10, 0xb6, 0x92, 0xfc, 0x37, 0x6d, 0xea, 0x0d, 0x9c, 0x3e, 0xf1, 0x6c, 0x52,
1848	0x5a, 0xe1, 0x1d, 0x37, 0x13, 0x5d, 0x3d, 0x51, 0xa1, 0xef, 0xc3, 0x4e, 0x3c, 0x34, 0xe6, 0x3a,
1849	0x05, 0x94, 0xe3, 0xa0, 0x6d, 0x45, 0xab, 0xc0, 0x3a, 0xb0, 0xf6, 0x05, 0xbd, 0x36, 0x5d, 0xe7,
1850	0x4b, 0xe2, 0x3a, 0x17, 0x94, 0xf6, 0x4b, 0x79, 0xbe, 0x11, 0x7c, 0x67, 0x86, 0x7f, 0x9a, 0x09,
1851	0x00, 0xaf, 0x7e, 0x41, 0xaf, 0x27, 0x4d, 0xf4, 0x29, 0x6c, 0x84, 0x34, 0x08, 0xe8, 0xa5, 0x4a,
1852	0x0a, 0xf3, 0x92, 0x6a, 0x82, 0x43, 0xe1, 0xed, 0x81, 0x66, 0x79, 0x43, 0x12, 0xa8, 0xb4, 0x85,
1853	0x79, 0x69, 0xd7, 0x39, 0x85, 0xc2, 0xfa, 0x0c, 0x36, 0xc3, 0x71, 0xe0, 0x07, 0x4e, 0x48, 0x54,
1854	0xe2, 0xe2, 0xbc, 0xc4, 0x28, 0x66, 0x51, 0xb8, 0x6d, 0x28, 0x8d, 0xbd, 0x3e, 0x09, 0x4c, 0x72,
1855	0xe5, 0xd3, 0x90, 0xf4, 0x55, 0x03, 0xab, 0xf3, 0x1a, 0xd8, 0xe1, 0x54, 0x86, 0x60, 0x52, 0x8c,
1856	0x7c, 0x06, 0xe8, 0xdc, 0x1d, 0x07, 0x41, 0x9a, 0x7e, 0x6d, 0x5e, 0xfa, 0x0d, 0x49, 0x92, 0x76,
1857	0xcd, 0x05, 0xb1, 0xfa, 0x97, 0xc4, 0x4a, 0xf9, 0x7c, 0x7d, 0x6e, 0xd7, 0xc4, 0x2c, 0x13, 0xd9,
1858	0xee, 0x5f, 0x56, 0x20, 0x17, 0xe7, 0x14, 0x6a, 0xcb, 0x23, 0x68, 0x81, 0x33, 0x7f, 0xf4, 0x7a,
1859	0x99, 0xa9, 0x1e, 0x49, 0x75, 0xc8, 0xf9, 0x34, 0x74, 0x98, 0x9e, 0xe7, 0x65, 0xe1, 0xe0, 0xdb,
1860	0x33, 0x48, 0x3b, 0xb2, 0x3b, 0x4e, 0x80, 0xfa, 0x6f, 0x97, 0x27, 0x07, 0xd4, 0x69, 0xeb, 0x93,
1861	0x56, 0xfb, 0xac, 0x65, 0xc6, 0xc7, 0x8f, 0xf6, 0x06, 0x2a, 0x42, 0xae, 0x69, 0x1c, 0xf5, 0x4c,
1862	0xe3, 0xa9, 0xa1, 0x65, 0xd0, 0x2a, 0xe4, 0x71, 0xe3, 0xf8, 0x44, 0x34, 0xb3, 0xa8, 0x04, 0x5b,
1863	0x5c, 0xd9, 0x3e, 0x32, 0xe3, 0x4e, 0x35, 0xdc, 0x3e, 0xd3, 0x16, 0xd8, 0x89, 0x22, 0x3a, 0x4e,
1864	0xab, 0x16, 0x99, 0x2a, 0x06, 0x25, 0x5c, 0x5c, 0xb5, 0x84, 0x76, 0x61, 0x27, 0x41, 0xa5, 0x75,
1865	0xcb, 0x0c, 0xf6, 0xa4, 0x71, 0xd8, 0x69, 0x37, 0x5a, 0x3d, 0xb3, 0x66, 0xf4, 0xce, 0x0c, 0xa3,
1866	0xc5, 0xb4, 0xec, 0x34, 0x2a, 0x42, 0xae, 0xd5, 0xee, 0x1a, 0x66, 0xaf, 0xd1, 0xd1, 0x72, 0x6c,
1867	0x8c, 0xa7, 0x9d, 0x8e, 0x81, 0xcd, 0x66, 0xa3, 0xa3, 0xe5, 0x59, 0xb3, 0xd9, 0x3e, 0x93, 0x4d,
1868	0x60, 0x27, 0xd7, 0x93, 0xf6, 0x69, 0xef, 0x84, 0x8f, 0x4a, 0x2b, 0xa0, 0x75, 0x28, 0x88, 0x36,
1869	0xb7, 0xa7, 0x15, 0x91, 0x06, 0x45, 0x21, 0xa8, 0x1b, 0xad, 0x9e, 0x81, 0xb5, 0x55, 0xb4, 0x0d,
1870	0x1b, 0x9c, 0xbe, 0xd6, 0xee, 0xf5, 0xda, 0x4f, 0x64, 0xc7, 0x35, 0xe6, 0x2f, 0x55, 0xcc, 0xf9,
1871	0xd6, 0xd9, 0xe1, 0xad, 0x4a, 0x25, 0x89, 0x96, 0xcc, 0xda, 0x78, 0x6a, 0x98, 0xbd, 0x76, 0xc7,
1872	0xac, 0xb5, 0x4f, 0x5b, 0x87, 0x55, 0xfc, 0x54, 0xdb, 0x48, 0xa9, 0xc4, 0xac, 0xeb, 0x6d, 0xdc,
1873	0x32, 0xb0, 0x86, 0xd0, 0x3d, 0x28, 0x25, 0x2a, 0xc9, 0x98, 0x00, 0x37, 0x13, 0xf7, 0x33, 0x2d,
1874	0xff, 0x90, 0xb8, 0xad, 0x89, 0x23, 0x5f, 0x30, 0xb7, 0x9d, 0xd6, 0xa5, 0xec, 0xed, 0xa0, 0xfb,
1875	0x70, 0x67, 0xa2, 0x9b, 0x36, 0xf8, 0xe6, 0x24, 0xaa, 0xd3, 0x16, 0x4b, 0xe8, 0x01, 0xdc, 0x55,
1876	0xe3, 0x6c, 0x8a, 0x10, 0xc4, 0x11, 0xd3, 0xee, 0xa0, 0x3d, 0xb8, 0x97, 0x0a, 0xe9, 0x74, 0x8f,
1877	0x5d, 0xe6, 0x50, 0x41, 0x51, 0xc5, 0x66, 0x0f, 0x57, 0x8f, 0x59, 0x1d, 0x71, 0x97, 0x79, 0x5f,
1878	0xe2, 0x14, 0xf1, 0x3d, 0x5e, 0x0c, 0xc5, 0x73, 0xef, 0x9c, 0x76, 0x1a, 0x4d, 0xed, 0x3e, 0x2b,
1879	0x86, 0x26, 0xc3, 0x13, 0xc2, 0xb7, 0x18, 0xfe, 0xa8, 0x8d, 0x8d, 0x13, 0xa3, 0x7a, 0x68, 0x1e,
1880	0xf3, 0x5a, 0xa9, 0x59, 0xd5, 0x1e, 0xb0, 0x8a, 0xa5, 0x7e, 0xd2, 0x68, 0x99, 0xc7, 0xad, 0x6a,
1881	0xef, 0x84, 0x51, 0xee, 0x31, 0xfb, 0x5c, 0xc4, 0x79, 0x8f, 0xdb, 0x2d, 0x26, 0x7d, 0x9b, 0xe1,
1882	0xb9, 0x54, 0x30, 0x4b, 0xb1, 0xae, 0xff, 0x08, 0x8a, 0x4d, 0x6a, 0xf3, 0xdc, 0x6c, 0x78, 0x03,
1883	0x8a, 0xde, 0x83, 0x15, 0xd7, 0x8a, 0x4c, 0xd7, 0x1b, 0xca, 0xf2, 0x60, 0x33, 0x4e, 0x45, 0x96,
1884	0xaa, 0xe5, 0xa6, 0x15, 0x35, 0xbd, 0x21, 0x5e, 0x76, 0xf9, 0xaf, 0x7e, 0x06, 0xb9, 0x4e, 0x40,
1885	0x7d, 0x12, 0x44, 0xd7, 0x08, 0xc1, 0xa2, 0x67, 0x8d, 0x88, 0x2c, 0x88, 0xf8, 0x37, 0xab, 0x25,
1886	0x9f, 0x5b, 0xee, 0x98, 0xc8, 0x2a, 0x48, 0x34, 0xd0, 0xdb, 0x50, 0x1c, 0x3b, 0x5e, 0xf4, 0xe1,
1887	0x07, 0xa6, 0x50, 0xb2, 0x8d, 0x64, 0x11, 0x17, 0x84, 0xec, 0x53, 0x26, 0xd2, 0x7f, 0xb5, 0x00,
1888	0x9a, 0xe1, 0x45, 0x4e, 0x74, 0xad, 0x14, 0x30, 0x1a, 0x2c, 0x8c, 0x9c, 0xbe, 0x34, 0xc0, 0x3e,
1889	0xd1, 0x0e, 0x2c, 0xbb, 0xd4, 0xb6, 0xdc, 0xd8, 0x80, 0x6c, 0xa1, 0x3d, 0x28, 0xf4, 0x49, 0x68,
1890	0x07, 0x8e, 0xcf, 0x37, 0x15, 0x51, 0xc9, 0xaa, 0x22, 0x36, 0xb2, 0xd0, 0xa6, 0x41, 0x5c, 0x08,
1891	0x88, 0x06, 0x7a, 0x0b, 0x40, 0x39, 0x89, 0x45, 0x15, 0xa0, 0x48, 0x98, 0x3e, 0xa2, 0xbe, 0x63,
1892	0x5b, 0xae, 0x13, 0x5d, 0xcb, 0x3a, 0x40, 0x91, 0xbc, 0x58, 0x62, 0xad, 0xfc, 0xaf, 0x25, 0x56,
1893	0x03, 0xf2, 0xae, 0x8c, 0x4f, 0x58, 0xca, 0xf1, 0x5a, 0x68, 0x16, 0x9b, 0x1a, 0x4f, 0x3c, 0x41,
1894	0xa3, 0x63, 0x00, 0x5f, 0x04, 0xcb, 0x21, 0x61, 0x29, 0xcf, 0xb9, 0x66, 0x6e, 0xb4, 0x32, 0xba,
1895	0x58, 0x81, 0xea, 0x7f, 0xcf, 0xc2, 0x56, 0xd7, 0x1a, 0x90, 0x2e, 0xb1, 0x02, 0xfb, 0x42, 0x09,
1896	0xd0, 0xc7, 0xb0, 0x64, 0xf5, 0xc7, 0x6e, 0x24, 0x6f, 0x27, 0x73, 0x1c, 0x3a, 0x02, 0xc7, 0x08,
1897	0x42, 0x9f, 0xd2, 0x01, 0x0f, 0xe7, 0x7c, 0x04, 0x1c, 0x87, 0xea, 0xb0, 0x32, 0x22, 0x7d, 0x16,
1898	0x0e, 0x79, 0x3c, 0xcd, 0x41, 0x11, 0x23, 0x91, 0x01, 0xb9, 0xe7, 0x0e, 0x75, 0xf9, 0x1a, 0x58,
1899	0x9c, 0x97, 0x25, 0x81, 0xa2, 0x1f, 0xc3, 0x62, 0x60, 0xd9, 0xd7, 0xf3, 0x57, 0x68, 0x1c, 0xa6,
1900	0x5f, 0x42, 0x81, 0x65, 0x1b, 0xf5, 0x86, 0x98, 0xd8, 0x11, 0x7a, 0x04, 0x85, 0x91, 0xe3, 0x99,
1901	0xb7, 0x48, 0xce, 0xfc, 0xc8, 0xf1, 0xc4, 0x27, 0x07, 0x59, 0x57, 0x09, 0x28, 0xfb, 0x2a, 0x90,
1902	0x75, 0x25, 0x3e, 0xf5, 0x00, 0xf2, 0x75, 0x76, 0x2f, 0xe5, 0xfb, 0xc1, 0x3e, 0x2c, 0xf1, 0x4b,
1903	0xaa, 0x34, 0x88, 0x52, 0x58, 0xde, 0x0d, 0x8b, 0x0e, 0x93, 0x8c, 0xca, 0xaa, 0x19, 0xf5, 0x0e,
1904	0xac, 0xf9, 0xce, 0x15, 0x71, 0xcd, 0x41, 0x60, 0xd9, 0x49, 0x32, 0x66, 0xf1, 0x2a, 0x97, 0x1e,
1905	0x49, 0xa1, 0xfe, 0x39, 0x94, 0x0e, 0xe9, 0xc8, 0xf1, 0x2c, 0x2f, 0xe2, 0xa4, 0xa1, 0xb2, 0xaa,
1906	0x7e, 0x02, 0xcb, 0xdc, 0x42, 0x58, 0xca, 0xf0, 0x35, 0xbb, 0x3f, 0xc3, 0x93, 0xc9, 0xe0, 0xb1,
1907	0xc4, 0xe9, 0x21, 0xac, 0xf3, 0x3b, 0x52, 0x27, 0x59, 0xc3, 0xe8, 0xe7, 0xb0, 0xde, 0x97, 0x06,
1908	0xcd, 0x84, 0x9d, 0xcd, 0xf0, 0x07, 0x33, 0xd8, 0x5f, 0x36, 0x4c, 0xbc, 0xd6, 0x4f, 0x69, 0xf4,
1909	0xdf, 0x64, 0x20, 0x57, 0x0f, 0xa8, 0x7f, 0xe2, 0x78, 0xd1, 0xff, 0xe1, 0xee, 0x95, 0xde, 0xaa,
1910	0xb2, 0x2f, 0x6c, 0x55, 0x15, 0xd8, 0x74, 0x46, 0x3e, 0x0d, 0x22, 0xcb, 0xb3, 0xc9, 0xb4, 0xf7,
1911	0xd1, 0x44, 0x95, 0x84, 0xe0, 0x67, 0xb0, 0x19, 0x0f, 0x57, 0xf5, 0xfe, 0x11, 0x80, 0x1d, 0x50,
1912	0xdf, 0xbc, 0x60, 0x72, 0x19, 0x81, 0x59, 0xbb, 0x46, 0xcc, 0x83, 0xf3, 0x76, 0xcc, 0xa8, 0x7f,
1913	0x08, 0xeb, 0x09, 0x7d, 0xc7, 0x0a, 0xac, 0x51, 0x88, 0xbe, 0x01, 0xab, 0x56, 0xe8, 0x13, 0x3b,
1914	0x32, 0x03, 0x66, 0x4b, 0xb0, 0x67, 0x71, 0x51, 0x08, 0x31, 0x97, 0xe9, 0x87, 0x80, 0xce, 0xc8,
1915	0xf9, 0x61, 0x7c, 0x85, 0x92, 0xd0, 0x32, 0x6c, 0x3a, 0x9e, 0xed, 0x8e, 0xfb, 0xc4, 0x1c, 0x12,
1916	0x9a, 0x7a, 0xcd, 0xc8, 0xe1, 0x0d, 0xa9, 0x3a, 0x26, 0x54, 0x3e, 0x6a, 0xe8, 0xbf, 0xcf, 0x42,
1917	0x91, 0x2f, 0x81, 0x3a, 0xbb, 0x63, 0x5f, 0x45, 0xa8, 0x05, 0xab, 0x3c, 0x2b, 0xa8, 0x37, 0x34,
1918	0x03, 0x62, 0x47, 0x32, 0x20, 0xb3, 0xae, 0xda, 0x4a, 0x46, 0xe2, 0x82, 0xab, 0xa4, 0xe7, 0x3b,
1919	0xb0, 0xe6, 0x5a, 0xde, 0x70, 0xcc, 0xae, 0xfd, 0xc2, 0x55, 0xd9, 0xbd, 0x85, 0xfd, 0x3c, 0x5e,
1920	0x8d, 0xa5, 0x7c, 0xe2, 0xe8, 0x19, 0x6c, 0x4c, 0xbc, 0x69, 0xfa, 0x7c, 0x32, 0xb2, 0xe6, 0x2d,
1921	0xdf, 0xd2, 0xa9, 0xd2, 0x7b, 0x78, 0xdd, 0x9e, 0x72, 0xa7, 0x0d, 0x5b, 0xa9, 0x97, 0xa8, 0x98,
1922	0x7e, 0x99, 0xd3, 0x3f, 0x9c, 0x41, 0xff, 0xa2, 0x93, 0x31, 0xba, 0x7c, 0x41, 0xa6, 0xff, 0x33,
1923	0x03, 0x5b, 0x72, 0x75, 0x10, 0xee, 0x50, 0x4c, 0xbe, 0x1a, 0x93, 0x30, 0x42, 0x8f, 0x61, 0x89,
1924	0xbf, 0x71, 0x48, 0x47, 0x7e, 0xf3, 0x36, 0x6f, 0x16, 0x58, 0x40, 0x50, 0x0d, 0x72, 0x03, 0xf1,
1925	0x52, 0x25, 0xdc, 0x56, 0x38, 0xf8, 0xd6, 0xed, 0x1e, 0xb6, 0x70, 0x82, 0x63, 0x19, 0x26, 0x1e,
1926	0x5d, 0x6c, 0x11, 0x61, 0xbe, 0xd2, 0x67, 0x67, 0x98, 0xba, 0x28, 0x70, 0xd1, 0x51, 0x5a, 0xfa,
1927	0x2f, 0x72, 0xb0, 0x3d, 0x35, 0xd5, 0xd0, 0xa7, 0x5e, 0x48, 0xd0, 0x67, 0xa0, 0x0d, 0x2c, 0x9b,
1928	0x28, 0x0f, 0x85, 0x71, 0x66, 0xbc, 0x3f, 0xd7, 0x6d, 0x08, 0xaf, 0x0f, 0x52, 0xed, 0x10, 0x9d,
1929	0xc3, 0x56, 0x7c, 0xf1, 0x4f, 0xb1, 0x0b, 0xaf, 0x54, 0x66, 0xb0, 0x4f, 0x57, 0x4c, 0x78, 0x33,
1930	0x26, 0x53, 0x6d, 0x3c, 0x03, 0xcd, 0xa5, 0x43, 0x9a, 0xe2, 0x5f, 0x78, 0x3d, 0xfe, 0x75, 0x46,
1931	0xa4, 0x72, 0x7f, 0x0e, 0x1b, 0xae, 0x75, 0x4e, 0xdc, 0x14, 0xf9, 0xe2, 0xeb, 0x91, 0x6b, 0x9c,
1932	0x69, 0x6a, 0xe4, 0x53, 0x0f, 0xb4, 0x61, 0x69, 0xe9, 0x35, 0x47, 0xce, 0x88, 0x54, 0x6e, 0x13,
1933	0xb6, 0x06, 0x63, 0xd7, 0x35, 0xa7, 0x0c, 0xf0, 0xa7, 0x85, 0xd9, 0x71, 0xed, 0xa5, 0xd8, 0x30,
1934	0x62, 0x54, 0x69, 0x19, 0x72, 0x60, 0x27, 0xb4, 0x06, 0xc4, 0x0c, 0x79, 0xd5, 0xa4, 0x9a, 0x10,
1935	0x09, 0xfa, 0x68, 0x86, 0x89, 0x9b, 0x2a, 0x2e, 0xbc, 0x15, 0xde, 0x54, 0x87, 0x79, 0x70, 0x57,
1936	0xe4, 0xc2, 0xa4, 0x68, 0x53, 0xed, 0xe5, 0x6e, 0xb5, 0xdf, 0x4c, 0x9d, 0x98, 0xf8, 0x8e, 0x93,
1937	0x16, 0x28, 0xf6, 0x06, 0xb0, 0xad, 0xec, 0x6a, 0x8a, 0xa5, 0x02, 0xb7, 0x74, 0x70, 0xdb, 0x9d,
1938	0x4d, 0x5d, 0xb9, 0xf6, 0x0d, 0x67, 0x51, 0x07, 0x56, 0x53, 0x3b, 0x1c, 0x7f, 0x96, 0x99, 0x9d,
1939	0xe3, 0xea, 0xd6, 0x86, 0x8b, 0xea, 0xa6, 0xc6, 0xca, 0x1b, 0x12, 0x04, 0x34, 0xe0, 0x45, 0x9a,
1940	0x52, 0xde, 0x04, 0xbe, 0x5d, 0xee, 0xf2, 0x67, 0x7b, 0x2c, 0x3a, 0xe8, 0x01, 0xec, 0xd6, 0xac,
1941	0x28, 0x71, 0xb3, 0xd8, 0x11, 0xc2, 0x78, 0xf7, 0xeb, 0x41, 0x2e, 0x10, 0x9f, 0xf1, 0x4e, 0x30,
1942	0x2b, 0x9c, 0x37, 0x6d, 0xa2, 0xb5, 0x85, 0xbf, 0x55, 0xb3, 0x38, 0x61, 0xd2, 0xbf, 0x82, 0xbb,
1943	0x37, 0xda, 0x94, 0xdb, 0x10, 0x86, 0x7c, 0x20, 0xbf, 0x63, 0xab, 0x1f, 0xcc, 0x67, 0x55, 0x80,
1944	0xf1, 0x84, 0xe6, 0x5d, 0x02, 0xa0, 0xbc, 0x29, 0x15, 0x60, 0x45, 0xbe, 0xa5, 0x68, 0x6f, 0xb0,
1945	0xab, 0xe6, 0xa7, 0x06, 0x7e, 0x6a, 0x9e, 0xb6, 0x9a, 0x8d, 0x4f, 0x8c, 0xe6, 0x53, 0x2d, 0x83,
1946	0x8a, 0x90, 0x4b, 0x5a, 0x59, 0xd6, 0xea, 0xb4, 0xbb, 0xdd, 0x46, 0xad, 0x69, 0x68, 0x0b, 0x08,
1947	0x60, 0x59, 0x6a, 0x16, 0xd1, 0x3a, 0x14, 0x38, 0x54, 0x0a, 0x96, 0x0e, 0xfe, 0x90, 0x85, 0x35,
1948	0x3e, 0x86, 0x6a, 0xfc, 0x27, 0x12, 0xfa, 0x5d, 0x06, 0x36, 0x6f, 0x98, 0x2d, 0xfa, 0xe1, 0xac,
1949	0x1a, 0xe9, 0xa5, 0x51, 0xd9, 0x7d, 0xfc, 0x3a, 0x50, 0xe1, 0x09, 0xfd, 0x7b, 0x7f, 0xad, 0x26,
1950	0x81, 0xf8, 0xfa, 0xcf, 0xff, 0xf8, 0x65, 0xf6, 0x81, 0xbe, 0x3b, 0xfd, 0x17, 0x58, 0xf8, 0x58,
1951	0xae, 0x75, 0xf2, 0x38, 0xf3, 0xee, 0xee, 0xf3, 0x3f, 0x56, 0xb7, 0xa5, 0x09, 0x61, 0xd6, 0xf2,
1952	0x9d, 0xb0, 0x6c, 0xd3, 0xd1, 0x9f, 0xaa, 0x3f, 0xbd, 0x88, 0x22, 0x3f, 0x7c, 0x5c, 0xa9, 0x5c,
1953	0x5e, 0x5e, 0x4e, 0x29, 0x2b, 0xd6, 0x38, 0xba, 0x10, 0xff, 0x2c, 0xbd, 0xef, 0xbb, 0x56, 0x34,
1954	0xa0, 0xc1, 0xe8, 0xbd, 0xdb, 0x75, 0x17, 0xc6, 0x6a, 0x5f, 0x67, 0xe0, 0x6d, 0x9b, 0x8e, 0x5e,
1955	0x3d, 0xd7, 0xda, 0x66, 0xda, 0xdd, 0x9d, 0x80, 0x46, 0xb4, 0x93, 0x79, 0x56, 0x97, 0xa8, 0x21,
1956	0x65, 0x85, 0x4a, 0x99, 0x06, 0xc3, 0xca, 0x90, 0x78, 0xfc, 0x7f, 0xa7, 0xca, 0xc4, 0xf2, 0x4b,
1957	0xfe, 0xf9, 0xfa, 0x48, 0x08, 0xfe, 0x9d, 0xc9, 0x9c, 0x2f, 0x73, 0xc8, 0xa3, 0xff, 0x06, 0x00,
1958	0x00, 0xff, 0xff, 0xee, 0xab, 0xb3, 0xcb, 0x3a, 0x1c, 0x00, 0x00,
1959}
1960
1961// Reference imports to suppress errors if they are not otherwise used.
1962var _ context.Context
1963var _ grpc.ClientConnInterface
1964
1965// This is a compile-time assertion to ensure that this generated file
1966// is compatible with the grpc package it is being compiled against.
1967const _ = grpc.SupportPackageIsVersion6
1968
1969// ImageAnnotatorClient is the client API for ImageAnnotator service.
1970//
1971// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
1972type ImageAnnotatorClient interface {
1973	// Run image detection and annotation for a batch of images.
1974	BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error)
1975}
1976
1977type imageAnnotatorClient struct {
1978	cc grpc.ClientConnInterface
1979}
1980
1981func NewImageAnnotatorClient(cc grpc.ClientConnInterface) ImageAnnotatorClient {
1982	return &imageAnnotatorClient{cc}
1983}
1984
1985func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) {
1986	out := new(BatchAnnotateImagesResponse)
1987	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages", in, out, opts...)
1988	if err != nil {
1989		return nil, err
1990	}
1991	return out, nil
1992}
1993
1994// ImageAnnotatorServer is the server API for ImageAnnotator service.
1995type ImageAnnotatorServer interface {
1996	// Run image detection and annotation for a batch of images.
1997	BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error)
1998}
1999
2000// UnimplementedImageAnnotatorServer can be embedded to have forward compatible implementations.
2001type UnimplementedImageAnnotatorServer struct {
2002}
2003
2004func (*UnimplementedImageAnnotatorServer) BatchAnnotateImages(ctx context.Context, req *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error) {
2005	return nil, status1.Errorf(codes.Unimplemented, "method BatchAnnotateImages not implemented")
2006}
2007
2008func RegisterImageAnnotatorServer(s *grpc.Server, srv ImageAnnotatorServer) {
2009	s.RegisterService(&_ImageAnnotator_serviceDesc, srv)
2010}
2011
2012func _ImageAnnotator_BatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2013	in := new(BatchAnnotateImagesRequest)
2014	if err := dec(in); err != nil {
2015		return nil, err
2016	}
2017	if interceptor == nil {
2018		return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, in)
2019	}
2020	info := &grpc.UnaryServerInfo{
2021		Server:     srv,
2022		FullMethod: "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages",
2023	}
2024	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2025		return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, req.(*BatchAnnotateImagesRequest))
2026	}
2027	return interceptor(ctx, in, info, handler)
2028}
2029
2030var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{
2031	ServiceName: "google.cloud.vision.v1p1beta1.ImageAnnotator",
2032	HandlerType: (*ImageAnnotatorServer)(nil),
2033	Methods: []grpc.MethodDesc{
2034		{
2035			MethodName: "BatchAnnotateImages",
2036			Handler:    _ImageAnnotator_BatchAnnotateImages_Handler,
2037		},
2038	},
2039	Streams:  []grpc.StreamDesc{},
2040	Metadata: "google/cloud/vision/v1p1beta1/image_annotator.proto",
2041}
2042