1// Copyright 2019 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package vision provides access to the Cloud Vision API.
8//
9// This package is DEPRECATED. Use package cloud.google.com/go/vision/apiv1 instead.
10//
11// For product documentation, see: https://cloud.google.com/vision/
12//
13// Creating a client
14//
15// Usage example:
16//
17//   import "google.golang.org/api/vision/v1p2beta1"
18//   ...
19//   ctx := context.Background()
20//   visionService, err := vision.NewService(ctx)
21//
22// In this example, Google Application Default Credentials are used for authentication.
23//
24// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
25//
26// Other authentication options
27//
28// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
29//
30//   visionService, err := vision.NewService(ctx, option.WithScopes(vision.CloudVisionScope))
31//
32// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
33//
34//   visionService, err := vision.NewService(ctx, option.WithAPIKey("AIza..."))
35//
36// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
37//
38//   config := &oauth2.Config{...}
39//   // ...
40//   token, err := config.Exchange(ctx, ...)
41//   visionService, err := vision.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
42//
43// See https://godoc.org/google.golang.org/api/option/ for details on options.
44package vision // import "google.golang.org/api/vision/v1p2beta1"
45
46import (
47	"bytes"
48	"context"
49	"encoding/json"
50	"errors"
51	"fmt"
52	"io"
53	"net/http"
54	"net/url"
55	"strconv"
56	"strings"
57
58	gensupport "google.golang.org/api/gensupport"
59	googleapi "google.golang.org/api/googleapi"
60	option "google.golang.org/api/option"
61	htransport "google.golang.org/api/transport/http"
62)
63
64// Always reference these packages, just in case the auto-generated code
65// below doesn't.
66var _ = bytes.NewBuffer
67var _ = strconv.Itoa
68var _ = fmt.Sprintf
69var _ = json.NewDecoder
70var _ = io.Copy
71var _ = url.Parse
72var _ = gensupport.MarshalJSON
73var _ = googleapi.Version
74var _ = errors.New
75var _ = strings.Replace
76var _ = context.Canceled
77
78const apiId = "vision:v1p2beta1"
79const apiName = "vision"
80const apiVersion = "v1p2beta1"
81const basePath = "https://vision.googleapis.com/"
82
83// OAuth2 scopes used by this API.
84const (
85	// View and manage your data across Google Cloud Platform services
86	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
87
88	// Apply machine learning models to understand and label images
89	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
90)
91
92// NewService creates a new Service.
93func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
94	scopesOption := option.WithScopes(
95		"https://www.googleapis.com/auth/cloud-platform",
96		"https://www.googleapis.com/auth/cloud-vision",
97	)
98	// NOTE: prepend, so we don't override user-specified scopes.
99	opts = append([]option.ClientOption{scopesOption}, opts...)
100	client, endpoint, err := htransport.NewClient(ctx, opts...)
101	if err != nil {
102		return nil, err
103	}
104	s, err := New(client)
105	if err != nil {
106		return nil, err
107	}
108	if endpoint != "" {
109		s.BasePath = endpoint
110	}
111	return s, nil
112}
113
114// New creates a new Service. It uses the provided http.Client for requests.
115//
116// Deprecated: please use NewService instead.
117// To provide a custom HTTP client, use option.WithHTTPClient.
118// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
119func New(client *http.Client) (*Service, error) {
120	if client == nil {
121		return nil, errors.New("client is nil")
122	}
123	s := &Service{client: client, BasePath: basePath}
124	s.Files = NewFilesService(s)
125	s.Images = NewImagesService(s)
126	return s, nil
127}
128
129type Service struct {
130	client    *http.Client
131	BasePath  string // API endpoint base URL
132	UserAgent string // optional additional User-Agent fragment
133
134	Files *FilesService
135
136	Images *ImagesService
137}
138
139func (s *Service) userAgent() string {
140	if s.UserAgent == "" {
141		return googleapi.UserAgent
142	}
143	return googleapi.UserAgent + " " + s.UserAgent
144}
145
146func NewFilesService(s *Service) *FilesService {
147	rs := &FilesService{s: s}
148	return rs
149}
150
151type FilesService struct {
152	s *Service
153}
154
155func NewImagesService(s *Service) *ImagesService {
156	rs := &ImagesService{s: s}
157	return rs
158}
159
160type ImagesService struct {
161	s *Service
162}
163
164// AnnotateFileResponse: Response to a single file annotation request. A
165// file may contain one or more
166// images, which individually have their own responses.
167type AnnotateFileResponse struct {
168	// InputConfig: Information about the file for which this response is
169	// generated.
170	InputConfig *InputConfig `json:"inputConfig,omitempty"`
171
172	// Responses: Individual responses to images found within the file.
173	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
174
175	// TotalPages: This field gives the total number of pages in the file.
176	TotalPages int64 `json:"totalPages,omitempty"`
177
178	// ForceSendFields is a list of field names (e.g. "InputConfig") to
179	// unconditionally include in API requests. By default, fields with
180	// empty values are omitted from API requests. However, any non-pointer,
181	// non-interface field appearing in ForceSendFields will be sent to the
182	// server regardless of whether the field is empty or not. This may be
183	// used to include empty fields in Patch requests.
184	ForceSendFields []string `json:"-"`
185
186	// NullFields is a list of field names (e.g. "InputConfig") to include
187	// in API requests with the JSON null value. By default, fields with
188	// empty values are omitted from API requests. However, any field with
189	// an empty value appearing in NullFields will be sent to the server as
190	// null. It is an error if a field in this list has a non-empty value.
191	// This may be used to include null fields in Patch requests.
192	NullFields []string `json:"-"`
193}
194
195func (s *AnnotateFileResponse) MarshalJSON() ([]byte, error) {
196	type NoMethod AnnotateFileResponse
197	raw := NoMethod(*s)
198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
199}
200
201// AnnotateImageResponse: Response to an image annotation request.
202type AnnotateImageResponse struct {
203	// Context: If present, contextual information is needed to understand
204	// where this image
205	// comes from.
206	Context *ImageAnnotationContext `json:"context,omitempty"`
207
208	// CropHintsAnnotation: If present, crop hints have completed
209	// successfully.
210	CropHintsAnnotation *CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
211
212	// Error: If set, represents the error message for the operation.
213	// Note that filled-in image annotations are guaranteed to be
214	// correct, even when `error` is set.
215	Error *Status `json:"error,omitempty"`
216
217	// FaceAnnotations: If present, face detection has completed
218	// successfully.
219	FaceAnnotations []*FaceAnnotation `json:"faceAnnotations,omitempty"`
220
221	// FullTextAnnotation: If present, text (OCR) detection or document
222	// (OCR) text detection has
223	// completed successfully.
224	// This annotation provides the structural hierarchy for the OCR
225	// detected
226	// text.
227	FullTextAnnotation *TextAnnotation `json:"fullTextAnnotation,omitempty"`
228
229	// ImagePropertiesAnnotation: If present, image properties were
230	// extracted successfully.
231	ImagePropertiesAnnotation *ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
232
233	// LabelAnnotations: If present, label detection has completed
234	// successfully.
235	LabelAnnotations []*EntityAnnotation `json:"labelAnnotations,omitempty"`
236
237	// LandmarkAnnotations: If present, landmark detection has completed
238	// successfully.
239	LandmarkAnnotations []*EntityAnnotation `json:"landmarkAnnotations,omitempty"`
240
241	// LocalizedObjectAnnotations: If present, localized object detection
242	// has completed successfully.
243	// This will be sorted descending by confidence score.
244	LocalizedObjectAnnotations []*LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
245
246	// LogoAnnotations: If present, logo detection has completed
247	// successfully.
248	LogoAnnotations []*EntityAnnotation `json:"logoAnnotations,omitempty"`
249
250	// ProductSearchResults: If present, product search has completed
251	// successfully.
252	ProductSearchResults *ProductSearchResults `json:"productSearchResults,omitempty"`
253
254	// SafeSearchAnnotation: If present, safe-search annotation has
255	// completed successfully.
256	SafeSearchAnnotation *SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
257
258	// TextAnnotations: If present, text (OCR) detection has completed
259	// successfully.
260	TextAnnotations []*EntityAnnotation `json:"textAnnotations,omitempty"`
261
262	// WebDetection: If present, web detection has completed successfully.
263	WebDetection *WebDetection `json:"webDetection,omitempty"`
264
265	// ForceSendFields is a list of field names (e.g. "Context") to
266	// unconditionally include in API requests. By default, fields with
267	// empty values are omitted from API requests. However, any non-pointer,
268	// non-interface field appearing in ForceSendFields will be sent to the
269	// server regardless of whether the field is empty or not. This may be
270	// used to include empty fields in Patch requests.
271	ForceSendFields []string `json:"-"`
272
273	// NullFields is a list of field names (e.g. "Context") to include in
274	// API requests with the JSON null value. By default, fields with empty
275	// values are omitted from API requests. However, any field with an
276	// empty value appearing in NullFields will be sent to the server as
277	// null. It is an error if a field in this list has a non-empty value.
278	// This may be used to include null fields in Patch requests.
279	NullFields []string `json:"-"`
280}
281
282func (s *AnnotateImageResponse) MarshalJSON() ([]byte, error) {
283	type NoMethod AnnotateImageResponse
284	raw := NoMethod(*s)
285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
286}
287
288// AsyncAnnotateFileResponse: The response for a single offline file
289// annotation request.
290type AsyncAnnotateFileResponse struct {
291	// OutputConfig: The output location and metadata from
292	// AsyncAnnotateFileRequest.
293	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
294
295	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
296	// unconditionally include in API requests. By default, fields with
297	// empty values are omitted from API requests. However, any non-pointer,
298	// non-interface field appearing in ForceSendFields will be sent to the
299	// server regardless of whether the field is empty or not. This may be
300	// used to include empty fields in Patch requests.
301	ForceSendFields []string `json:"-"`
302
303	// NullFields is a list of field names (e.g. "OutputConfig") to include
304	// in API requests with the JSON null value. By default, fields with
305	// empty values are omitted from API requests. However, any field with
306	// an empty value appearing in NullFields will be sent to the server as
307	// null. It is an error if a field in this list has a non-empty value.
308	// This may be used to include null fields in Patch requests.
309	NullFields []string `json:"-"`
310}
311
312func (s *AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
313	type NoMethod AsyncAnnotateFileResponse
314	raw := NoMethod(*s)
315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
316}
317
318// AsyncBatchAnnotateFilesResponse: Response to an async batch file
319// annotation request.
320type AsyncBatchAnnotateFilesResponse struct {
321	// Responses: The list of file annotation responses, one for each
322	// request in
323	// AsyncBatchAnnotateFilesRequest.
324	Responses []*AsyncAnnotateFileResponse `json:"responses,omitempty"`
325
326	// ForceSendFields is a list of field names (e.g. "Responses") to
327	// unconditionally include in API requests. By default, fields with
328	// empty values are omitted from API requests. However, any non-pointer,
329	// non-interface field appearing in ForceSendFields will be sent to the
330	// server regardless of whether the field is empty or not. This may be
331	// used to include empty fields in Patch requests.
332	ForceSendFields []string `json:"-"`
333
334	// NullFields is a list of field names (e.g. "Responses") to include in
335	// API requests with the JSON null value. By default, fields with empty
336	// values are omitted from API requests. However, any field with an
337	// empty value appearing in NullFields will be sent to the server as
338	// null. It is an error if a field in this list has a non-empty value.
339	// This may be used to include null fields in Patch requests.
340	NullFields []string `json:"-"`
341}
342
343func (s *AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
344	type NoMethod AsyncBatchAnnotateFilesResponse
345	raw := NoMethod(*s)
346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
347}
348
349// AsyncBatchAnnotateImagesResponse: Response to an async batch image
350// annotation request.
351type AsyncBatchAnnotateImagesResponse struct {
352	// OutputConfig: The output location and metadata from
353	// AsyncBatchAnnotateImagesRequest.
354	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
355
356	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
357	// unconditionally include in API requests. By default, fields with
358	// empty values are omitted from API requests. However, any non-pointer,
359	// non-interface field appearing in ForceSendFields will be sent to the
360	// server regardless of whether the field is empty or not. This may be
361	// used to include empty fields in Patch requests.
362	ForceSendFields []string `json:"-"`
363
364	// NullFields is a list of field names (e.g. "OutputConfig") to include
365	// in API requests with the JSON null value. By default, fields with
366	// empty values are omitted from API requests. However, any field with
367	// an empty value appearing in NullFields will be sent to the server as
368	// null. It is an error if a field in this list has a non-empty value.
369	// This may be used to include null fields in Patch requests.
370	NullFields []string `json:"-"`
371}
372
373func (s *AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
374	type NoMethod AsyncBatchAnnotateImagesResponse
375	raw := NoMethod(*s)
376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
377}
378
379// BatchAnnotateFilesResponse: A list of file annotation responses.
380type BatchAnnotateFilesResponse struct {
381	// Responses: The list of file annotation responses, each response
382	// corresponding to each
383	// AnnotateFileRequest in BatchAnnotateFilesRequest.
384	Responses []*AnnotateFileResponse `json:"responses,omitempty"`
385
386	// ForceSendFields is a list of field names (e.g. "Responses") to
387	// unconditionally include in API requests. By default, fields with
388	// empty values are omitted from API requests. However, any non-pointer,
389	// non-interface field appearing in ForceSendFields will be sent to the
390	// server regardless of whether the field is empty or not. This may be
391	// used to include empty fields in Patch requests.
392	ForceSendFields []string `json:"-"`
393
394	// NullFields is a list of field names (e.g. "Responses") to include in
395	// API requests with the JSON null value. By default, fields with empty
396	// values are omitted from API requests. However, any field with an
397	// empty value appearing in NullFields will be sent to the server as
398	// null. It is an error if a field in this list has a non-empty value.
399	// This may be used to include null fields in Patch requests.
400	NullFields []string `json:"-"`
401}
402
403func (s *BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
404	type NoMethod BatchAnnotateFilesResponse
405	raw := NoMethod(*s)
406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
407}
408
409// BatchOperationMetadata: Metadata for the batch operations such as the
410// current state.
411//
412// This is included in the `metadata` field of the `Operation` returned
413// by the
414// `GetOperation` call of the `google::longrunning::Operations` service.
415type BatchOperationMetadata struct {
416	// EndTime: The time when the batch request is finished
417	// and
418	// google.longrunning.Operation.done is set to true.
419	EndTime string `json:"endTime,omitempty"`
420
421	// State: The current state of the batch operation.
422	//
423	// Possible values:
424	//   "STATE_UNSPECIFIED" - Invalid.
425	//   "PROCESSING" - Request is actively being processed.
426	//   "SUCCESSFUL" - The request is done and at least one item has been
427	// successfully
428	// processed.
429	//   "FAILED" - The request is done and no item has been successfully
430	// processed.
431	//   "CANCELLED" - The request is done after the
432	// longrunning.Operations.CancelOperation has
433	// been called by the user.  Any records that were processed before
434	// the
435	// cancel command are output as specified in the request.
436	State string `json:"state,omitempty"`
437
438	// SubmitTime: The time when the batch request was submitted to the
439	// server.
440	SubmitTime string `json:"submitTime,omitempty"`
441
442	// ForceSendFields is a list of field names (e.g. "EndTime") to
443	// unconditionally include in API requests. By default, fields with
444	// empty values are omitted from API requests. However, any non-pointer,
445	// non-interface field appearing in ForceSendFields will be sent to the
446	// server regardless of whether the field is empty or not. This may be
447	// used to include empty fields in Patch requests.
448	ForceSendFields []string `json:"-"`
449
450	// NullFields is a list of field names (e.g. "EndTime") to include in
451	// API requests with the JSON null value. By default, fields with empty
452	// values are omitted from API requests. However, any field with an
453	// empty value appearing in NullFields will be sent to the server as
454	// null. It is an error if a field in this list has a non-empty value.
455	// This may be used to include null fields in Patch requests.
456	NullFields []string `json:"-"`
457}
458
459func (s *BatchOperationMetadata) MarshalJSON() ([]byte, error) {
460	type NoMethod BatchOperationMetadata
461	raw := NoMethod(*s)
462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
463}
464
465// Block: Logical element on the page.
466type Block struct {
467	// BlockType: Detected block type (text, image etc) for this block.
468	//
469	// Possible values:
470	//   "UNKNOWN" - Unknown block type.
471	//   "TEXT" - Regular text block.
472	//   "TABLE" - Table block.
473	//   "PICTURE" - Image block.
474	//   "RULER" - Horizontal/vertical line box.
475	//   "BARCODE" - Barcode block.
476	BlockType string `json:"blockType,omitempty"`
477
478	// BoundingBox: The bounding box for the block.
479	// The vertices are in the order of top-left, top-right,
480	// bottom-right,
481	// bottom-left. When a rotation of the bounding box is detected the
482	// rotation
483	// is represented as around the top-left corner as defined when the text
484	// is
485	// read in the 'natural' orientation.
486	// For example:
487	//
488	// * when the text is horizontal it might look like:
489	//
490	//         0----1
491	//         |    |
492	//         3----2
493	//
494	// * when it's rotated 180 degrees around the top-left corner it
495	// becomes:
496	//
497	//         2----3
498	//         |    |
499	//         1----0
500	//
501	//   and the vertex order will still be (0, 1, 2, 3).
502	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
503
504	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
505	Confidence float64 `json:"confidence,omitempty"`
506
507	// Paragraphs: List of paragraphs in this block (if this blocks is of
508	// type text).
509	Paragraphs []*Paragraph `json:"paragraphs,omitempty"`
510
511	// Property: Additional information detected for the block.
512	Property *TextProperty `json:"property,omitempty"`
513
514	// ForceSendFields is a list of field names (e.g. "BlockType") to
515	// unconditionally include in API requests. By default, fields with
516	// empty values are omitted from API requests. However, any non-pointer,
517	// non-interface field appearing in ForceSendFields will be sent to the
518	// server regardless of whether the field is empty or not. This may be
519	// used to include empty fields in Patch requests.
520	ForceSendFields []string `json:"-"`
521
522	// NullFields is a list of field names (e.g. "BlockType") to include in
523	// API requests with the JSON null value. By default, fields with empty
524	// values are omitted from API requests. However, any field with an
525	// empty value appearing in NullFields will be sent to the server as
526	// null. It is an error if a field in this list has a non-empty value.
527	// This may be used to include null fields in Patch requests.
528	NullFields []string `json:"-"`
529}
530
531func (s *Block) MarshalJSON() ([]byte, error) {
532	type NoMethod Block
533	raw := NoMethod(*s)
534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
535}
536
537func (s *Block) UnmarshalJSON(data []byte) error {
538	type NoMethod Block
539	var s1 struct {
540		Confidence gensupport.JSONFloat64 `json:"confidence"`
541		*NoMethod
542	}
543	s1.NoMethod = (*NoMethod)(s)
544	if err := json.Unmarshal(data, &s1); err != nil {
545		return err
546	}
547	s.Confidence = float64(s1.Confidence)
548	return nil
549}
550
551// BoundingPoly: A bounding polygon for the detected image annotation.
552type BoundingPoly struct {
553	// NormalizedVertices: The bounding polygon normalized vertices.
554	NormalizedVertices []*NormalizedVertex `json:"normalizedVertices,omitempty"`
555
556	// Vertices: The bounding polygon vertices.
557	Vertices []*Vertex `json:"vertices,omitempty"`
558
559	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
560	// to unconditionally include in API requests. By default, fields with
561	// empty values are omitted from API requests. However, any non-pointer,
562	// non-interface field appearing in ForceSendFields will be sent to the
563	// server regardless of whether the field is empty or not. This may be
564	// used to include empty fields in Patch requests.
565	ForceSendFields []string `json:"-"`
566
567	// NullFields is a list of field names (e.g. "NormalizedVertices") to
568	// include in API requests with the JSON null value. By default, fields
569	// with empty values are omitted from API requests. However, any field
570	// with an empty value appearing in NullFields will be sent to the
571	// server as null. It is an error if a field in this list has a
572	// non-empty value. This may be used to include null fields in Patch
573	// requests.
574	NullFields []string `json:"-"`
575}
576
577func (s *BoundingPoly) MarshalJSON() ([]byte, error) {
578	type NoMethod BoundingPoly
579	raw := NoMethod(*s)
580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
581}
582
583// Color: Represents a color in the RGBA color space. This
584// representation is designed
585// for simplicity of conversion to/from color representations in
586// various
587// languages over compactness; for example, the fields of this
588// representation
589// can be trivially provided to the constructor of "java.awt.Color" in
590// Java; it
591// can also be trivially provided to UIColor's
592// "+colorWithRed:green:blue:alpha"
593// method in iOS; and, with just a little work, it can be easily
594// formatted into
595// a CSS "rgba()" string in JavaScript, as well.
596//
597// Note: this proto does not carry information about the absolute color
598// space
599// that should be used to interpret the RGB value (e.g. sRGB, Adobe
600// RGB,
601// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
602// sRGB color
603// space.
604//
605// Example (Java):
606//
607//      import com.google.type.Color;
608//
609//      // ...
610//      public static java.awt.Color fromProto(Color protocolor) {
611//        float alpha = protocolor.hasAlpha()
612//            ? protocolor.getAlpha().getValue()
613//            : 1.0;
614//
615//        return new java.awt.Color(
616//            protocolor.getRed(),
617//            protocolor.getGreen(),
618//            protocolor.getBlue(),
619//            alpha);
620//      }
621//
622//      public static Color toProto(java.awt.Color color) {
623//        float red = (float) color.getRed();
624//        float green = (float) color.getGreen();
625//        float blue = (float) color.getBlue();
626//        float denominator = 255.0;
627//        Color.Builder resultBuilder =
628//            Color
629//                .newBuilder()
630//                .setRed(red / denominator)
631//                .setGreen(green / denominator)
632//                .setBlue(blue / denominator);
633//        int alpha = color.getAlpha();
634//        if (alpha != 255) {
635//          result.setAlpha(
636//              FloatValue
637//                  .newBuilder()
638//                  .setValue(((float) alpha) / denominator)
639//                  .build());
640//        }
641//        return resultBuilder.build();
642//      }
643//      // ...
644//
645// Example (iOS / Obj-C):
646//
647//      // ...
648//      static UIColor* fromProto(Color* protocolor) {
649//         float red = [protocolor red];
650//         float green = [protocolor green];
651//         float blue = [protocolor blue];
652//         FloatValue* alpha_wrapper = [protocolor alpha];
653//         float alpha = 1.0;
654//         if (alpha_wrapper != nil) {
655//           alpha = [alpha_wrapper value];
656//         }
657//         return [UIColor colorWithRed:red green:green blue:blue
658// alpha:alpha];
659//      }
660//
661//      static Color* toProto(UIColor* color) {
662//          CGFloat red, green, blue, alpha;
663//          if (![color getRed:&red green:&green blue:&blue
664// alpha:&alpha]) {
665//            return nil;
666//          }
667//          Color* result = [[Color alloc] init];
668//          [result setRed:red];
669//          [result setGreen:green];
670//          [result setBlue:blue];
671//          if (alpha <= 0.9999) {
672//            [result setAlpha:floatWrapperWithValue(alpha)];
673//          }
674//          [result autorelease];
675//          return result;
676//     }
677//     // ...
678//
679//  Example (JavaScript):
680//
681//     // ...
682//
683//     var protoToCssColor = function(rgb_color) {
684//        var redFrac = rgb_color.red || 0.0;
685//        var greenFrac = rgb_color.green || 0.0;
686//        var blueFrac = rgb_color.blue || 0.0;
687//        var red = Math.floor(redFrac * 255);
688//        var green = Math.floor(greenFrac * 255);
689//        var blue = Math.floor(blueFrac * 255);
690//
691//        if (!('alpha' in rgb_color)) {
692//           return rgbToCssColor_(red, green, blue);
693//        }
694//
695//        var alphaFrac = rgb_color.alpha.value || 0.0;
696//        var rgbParams = [red, green, blue].join(',');
697//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
698//     };
699//
700//     var rgbToCssColor_ = function(red, green, blue) {
701//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
702//       var hexString = rgbNumber.toString(16);
703//       var missingZeros = 6 - hexString.length;
704//       var resultBuilder = ['#'];
705//       for (var i = 0; i < missingZeros; i++) {
706//          resultBuilder.push('0');
707//       }
708//       resultBuilder.push(hexString);
709//       return resultBuilder.join('');
710//     };
711//
712//     // ...
713type Color struct {
714	// Alpha: The fraction of this color that should be applied to the
715	// pixel. That is,
716	// the final pixel color is defined by the equation:
717	//
718	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
719	// color)
720	//
721	// This means that a value of 1.0 corresponds to a solid color,
722	// whereas
723	// a value of 0.0 corresponds to a completely transparent color.
724	// This
725	// uses a wrapper message rather than a simple float scalar so that it
726	// is
727	// possible to distinguish between a default value and the value being
728	// unset.
729	// If omitted, this color object is to be rendered as a solid color
730	// (as if the alpha value had been explicitly given with a value of
731	// 1.0).
732	Alpha float64 `json:"alpha,omitempty"`
733
734	// Blue: The amount of blue in the color as a value in the interval [0,
735	// 1].
736	Blue float64 `json:"blue,omitempty"`
737
738	// Green: The amount of green in the color as a value in the interval
739	// [0, 1].
740	Green float64 `json:"green,omitempty"`
741
742	// Red: The amount of red in the color as a value in the interval [0,
743	// 1].
744	Red float64 `json:"red,omitempty"`
745
746	// ForceSendFields is a list of field names (e.g. "Alpha") to
747	// unconditionally include in API requests. By default, fields with
748	// empty values are omitted from API requests. However, any non-pointer,
749	// non-interface field appearing in ForceSendFields will be sent to the
750	// server regardless of whether the field is empty or not. This may be
751	// used to include empty fields in Patch requests.
752	ForceSendFields []string `json:"-"`
753
754	// NullFields is a list of field names (e.g. "Alpha") to include in API
755	// requests with the JSON null value. By default, fields with empty
756	// values are omitted from API requests. However, any field with an
757	// empty value appearing in NullFields will be sent to the server as
758	// null. It is an error if a field in this list has a non-empty value.
759	// This may be used to include null fields in Patch requests.
760	NullFields []string `json:"-"`
761}
762
763func (s *Color) MarshalJSON() ([]byte, error) {
764	type NoMethod Color
765	raw := NoMethod(*s)
766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
767}
768
769func (s *Color) UnmarshalJSON(data []byte) error {
770	type NoMethod Color
771	var s1 struct {
772		Alpha gensupport.JSONFloat64 `json:"alpha"`
773		Blue  gensupport.JSONFloat64 `json:"blue"`
774		Green gensupport.JSONFloat64 `json:"green"`
775		Red   gensupport.JSONFloat64 `json:"red"`
776		*NoMethod
777	}
778	s1.NoMethod = (*NoMethod)(s)
779	if err := json.Unmarshal(data, &s1); err != nil {
780		return err
781	}
782	s.Alpha = float64(s1.Alpha)
783	s.Blue = float64(s1.Blue)
784	s.Green = float64(s1.Green)
785	s.Red = float64(s1.Red)
786	return nil
787}
788
789// ColorInfo: Color information consists of RGB channels, score, and the
790// fraction of
791// the image that the color occupies in the image.
792type ColorInfo struct {
793	// Color: RGB components of the color.
794	Color *Color `json:"color,omitempty"`
795
796	// PixelFraction: The fraction of pixels the color occupies in the
797	// image.
798	// Value in range [0, 1].
799	PixelFraction float64 `json:"pixelFraction,omitempty"`
800
801	// Score: Image-specific score for this color. Value in range [0, 1].
802	Score float64 `json:"score,omitempty"`
803
804	// ForceSendFields is a list of field names (e.g. "Color") to
805	// unconditionally include in API requests. By default, fields with
806	// empty values are omitted from API requests. However, any non-pointer,
807	// non-interface field appearing in ForceSendFields will be sent to the
808	// server regardless of whether the field is empty or not. This may be
809	// used to include empty fields in Patch requests.
810	ForceSendFields []string `json:"-"`
811
812	// NullFields is a list of field names (e.g. "Color") to include in API
813	// requests with the JSON null value. By default, fields with empty
814	// values are omitted from API requests. However, any field with an
815	// empty value appearing in NullFields will be sent to the server as
816	// null. It is an error if a field in this list has a non-empty value.
817	// This may be used to include null fields in Patch requests.
818	NullFields []string `json:"-"`
819}
820
821func (s *ColorInfo) MarshalJSON() ([]byte, error) {
822	type NoMethod ColorInfo
823	raw := NoMethod(*s)
824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
825}
826
827func (s *ColorInfo) UnmarshalJSON(data []byte) error {
828	type NoMethod ColorInfo
829	var s1 struct {
830		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
831		Score         gensupport.JSONFloat64 `json:"score"`
832		*NoMethod
833	}
834	s1.NoMethod = (*NoMethod)(s)
835	if err := json.Unmarshal(data, &s1); err != nil {
836		return err
837	}
838	s.PixelFraction = float64(s1.PixelFraction)
839	s.Score = float64(s1.Score)
840	return nil
841}
842
843// CropHint: Single crop hint that is used to generate a new crop when
844// serving an image.
845type CropHint struct {
846	// BoundingPoly: The bounding polygon for the crop region. The
847	// coordinates of the bounding
848	// box are in the original image's scale.
849	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
850
851	// Confidence: Confidence of this being a salient region.  Range [0, 1].
852	Confidence float64 `json:"confidence,omitempty"`
853
854	// ImportanceFraction: Fraction of importance of this salient region
855	// with respect to the original
856	// image.
857	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
858
859	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
860	// unconditionally include in API requests. By default, fields with
861	// empty values are omitted from API requests. However, any non-pointer,
862	// non-interface field appearing in ForceSendFields will be sent to the
863	// server regardless of whether the field is empty or not. This may be
864	// used to include empty fields in Patch requests.
865	ForceSendFields []string `json:"-"`
866
867	// NullFields is a list of field names (e.g. "BoundingPoly") to include
868	// in API requests with the JSON null value. By default, fields with
869	// empty values are omitted from API requests. However, any field with
870	// an empty value appearing in NullFields will be sent to the server as
871	// null. It is an error if a field in this list has a non-empty value.
872	// This may be used to include null fields in Patch requests.
873	NullFields []string `json:"-"`
874}
875
876func (s *CropHint) MarshalJSON() ([]byte, error) {
877	type NoMethod CropHint
878	raw := NoMethod(*s)
879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
880}
881
882func (s *CropHint) UnmarshalJSON(data []byte) error {
883	type NoMethod CropHint
884	var s1 struct {
885		Confidence         gensupport.JSONFloat64 `json:"confidence"`
886		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
887		*NoMethod
888	}
889	s1.NoMethod = (*NoMethod)(s)
890	if err := json.Unmarshal(data, &s1); err != nil {
891		return err
892	}
893	s.Confidence = float64(s1.Confidence)
894	s.ImportanceFraction = float64(s1.ImportanceFraction)
895	return nil
896}
897
898// CropHintsAnnotation: Set of crop hints that are used to generate new
899// crops when serving images.
900type CropHintsAnnotation struct {
901	// CropHints: Crop hint results.
902	CropHints []*CropHint `json:"cropHints,omitempty"`
903
904	// ForceSendFields is a list of field names (e.g. "CropHints") to
905	// unconditionally include in API requests. By default, fields with
906	// empty values are omitted from API requests. However, any non-pointer,
907	// non-interface field appearing in ForceSendFields will be sent to the
908	// server regardless of whether the field is empty or not. This may be
909	// used to include empty fields in Patch requests.
910	ForceSendFields []string `json:"-"`
911
912	// NullFields is a list of field names (e.g. "CropHints") to include in
913	// API requests with the JSON null value. By default, fields with empty
914	// values are omitted from API requests. However, any field with an
915	// empty value appearing in NullFields will be sent to the server as
916	// null. It is an error if a field in this list has a non-empty value.
917	// This may be used to include null fields in Patch requests.
918	NullFields []string `json:"-"`
919}
920
921func (s *CropHintsAnnotation) MarshalJSON() ([]byte, error) {
922	type NoMethod CropHintsAnnotation
923	raw := NoMethod(*s)
924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
925}
926
927// DetectedBreak: Detected start or end of a structural component.
928type DetectedBreak struct {
929	// IsPrefix: True if break prepends the element.
930	IsPrefix bool `json:"isPrefix,omitempty"`
931
932	// Type: Detected break type.
933	//
934	// Possible values:
935	//   "UNKNOWN" - Unknown break label type.
936	//   "SPACE" - Regular space.
937	//   "SURE_SPACE" - Sure space (very wide).
938	//   "EOL_SURE_SPACE" - Line-wrapping break.
939	//   "HYPHEN" - End-line hyphen that is not present in text; does not
940	// co-occur with
941	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
942	//   "LINE_BREAK" - Line break that ends a paragraph.
943	Type string `json:"type,omitempty"`
944
945	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
946	// unconditionally include in API requests. By default, fields with
947	// empty values are omitted from API requests. However, any non-pointer,
948	// non-interface field appearing in ForceSendFields will be sent to the
949	// server regardless of whether the field is empty or not. This may be
950	// used to include empty fields in Patch requests.
951	ForceSendFields []string `json:"-"`
952
953	// NullFields is a list of field names (e.g. "IsPrefix") to include in
954	// API requests with the JSON null value. By default, fields with empty
955	// values are omitted from API requests. However, any field with an
956	// empty value appearing in NullFields will be sent to the server as
957	// null. It is an error if a field in this list has a non-empty value.
958	// This may be used to include null fields in Patch requests.
959	NullFields []string `json:"-"`
960}
961
962func (s *DetectedBreak) MarshalJSON() ([]byte, error) {
963	type NoMethod DetectedBreak
964	raw := NoMethod(*s)
965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
966}
967
968// DetectedLanguage: Detected language for a structural component.
969type DetectedLanguage struct {
970	// Confidence: Confidence of detected language. Range [0, 1].
971	Confidence float64 `json:"confidence,omitempty"`
972
973	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
974	// For more
975	// information,
976	// see
977	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
978	LanguageCode string `json:"languageCode,omitempty"`
979
980	// ForceSendFields is a list of field names (e.g. "Confidence") to
981	// unconditionally include in API requests. By default, fields with
982	// empty values are omitted from API requests. However, any non-pointer,
983	// non-interface field appearing in ForceSendFields will be sent to the
984	// server regardless of whether the field is empty or not. This may be
985	// used to include empty fields in Patch requests.
986	ForceSendFields []string `json:"-"`
987
988	// NullFields is a list of field names (e.g. "Confidence") to include in
989	// API requests with the JSON null value. By default, fields with empty
990	// values are omitted from API requests. However, any field with an
991	// empty value appearing in NullFields will be sent to the server as
992	// null. It is an error if a field in this list has a non-empty value.
993	// This may be used to include null fields in Patch requests.
994	NullFields []string `json:"-"`
995}
996
997func (s *DetectedLanguage) MarshalJSON() ([]byte, error) {
998	type NoMethod DetectedLanguage
999	raw := NoMethod(*s)
1000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1001}
1002
1003func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
1004	type NoMethod DetectedLanguage
1005	var s1 struct {
1006		Confidence gensupport.JSONFloat64 `json:"confidence"`
1007		*NoMethod
1008	}
1009	s1.NoMethod = (*NoMethod)(s)
1010	if err := json.Unmarshal(data, &s1); err != nil {
1011		return err
1012	}
1013	s.Confidence = float64(s1.Confidence)
1014	return nil
1015}
1016
1017// DominantColorsAnnotation: Set of dominant colors and their
1018// corresponding scores.
1019type DominantColorsAnnotation struct {
1020	// Colors: RGB color values with their score and pixel fraction.
1021	Colors []*ColorInfo `json:"colors,omitempty"`
1022
1023	// ForceSendFields is a list of field names (e.g. "Colors") to
1024	// unconditionally include in API requests. By default, fields with
1025	// empty values are omitted from API requests. However, any non-pointer,
1026	// non-interface field appearing in ForceSendFields will be sent to the
1027	// server regardless of whether the field is empty or not. This may be
1028	// used to include empty fields in Patch requests.
1029	ForceSendFields []string `json:"-"`
1030
1031	// NullFields is a list of field names (e.g. "Colors") to include in API
1032	// requests with the JSON null value. By default, fields with empty
1033	// values are omitted from API requests. However, any field with an
1034	// empty value appearing in NullFields will be sent to the server as
1035	// null. It is an error if a field in this list has a non-empty value.
1036	// This may be used to include null fields in Patch requests.
1037	NullFields []string `json:"-"`
1038}
1039
1040func (s *DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1041	type NoMethod DominantColorsAnnotation
1042	raw := NoMethod(*s)
1043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1044}
1045
1046// EntityAnnotation: Set of detected entity features.
1047type EntityAnnotation struct {
1048	// BoundingPoly: Image region to which this entity belongs. Not
1049	// produced
1050	// for `LABEL_DETECTION` features.
1051	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1052
1053	// Confidence: **Deprecated. Use `score` instead.**
1054	// The accuracy of the entity detection in an image.
1055	// For example, for an image in which the "Eiffel Tower" entity is
1056	// detected,
1057	// this field represents the confidence that there is a tower in the
1058	// query
1059	// image. Range [0, 1].
1060	Confidence float64 `json:"confidence,omitempty"`
1061
1062	// Description: Entity textual description, expressed in its `locale`
1063	// language.
1064	Description string `json:"description,omitempty"`
1065
1066	// Locale: The language code for the locale in which the entity
1067	// textual
1068	// `description` is expressed.
1069	Locale string `json:"locale,omitempty"`
1070
1071	// Locations: The location information for the detected entity.
1072	// Multiple
1073	// `LocationInfo` elements can be present because one location
1074	// may
1075	// indicate the location of the scene in the image, and another
1076	// location
1077	// may indicate the location of the place where the image was
1078	// taken.
1079	// Location information is usually present for landmarks.
1080	Locations []*LocationInfo `json:"locations,omitempty"`
1081
1082	// Mid: Opaque entity ID. Some IDs may be available in
1083	// [Google Knowledge Graph
1084	// Search
1085	// API](https://developers.google.com/knowledge-graph/).
1086	Mid string `json:"mid,omitempty"`
1087
1088	// Properties: Some entities may have optional user-supplied `Property`
1089	// (name/value)
1090	// fields, such a score or string that qualifies the entity.
1091	Properties []*Property `json:"properties,omitempty"`
1092
1093	// Score: Overall score of the result. Range [0, 1].
1094	Score float64 `json:"score,omitempty"`
1095
1096	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1097	// to the
1098	// image. For example, the relevancy of "tower" is likely higher to an
1099	// image
1100	// containing the detected "Eiffel Tower" than to an image containing
1101	// a
1102	// detected distant towering building, even though the confidence
1103	// that
1104	// there is a tower in each image may be the same. Range [0, 1].
1105	Topicality float64 `json:"topicality,omitempty"`
1106
1107	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1108	// unconditionally include in API requests. By default, fields with
1109	// empty values are omitted from API requests. However, any non-pointer,
1110	// non-interface field appearing in ForceSendFields will be sent to the
1111	// server regardless of whether the field is empty or not. This may be
1112	// used to include empty fields in Patch requests.
1113	ForceSendFields []string `json:"-"`
1114
1115	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1116	// in API requests with the JSON null value. By default, fields with
1117	// empty values are omitted from API requests. However, any field with
1118	// an empty value appearing in NullFields will be sent to the server as
1119	// null. It is an error if a field in this list has a non-empty value.
1120	// This may be used to include null fields in Patch requests.
1121	NullFields []string `json:"-"`
1122}
1123
1124func (s *EntityAnnotation) MarshalJSON() ([]byte, error) {
1125	type NoMethod EntityAnnotation
1126	raw := NoMethod(*s)
1127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1128}
1129
1130func (s *EntityAnnotation) UnmarshalJSON(data []byte) error {
1131	type NoMethod EntityAnnotation
1132	var s1 struct {
1133		Confidence gensupport.JSONFloat64 `json:"confidence"`
1134		Score      gensupport.JSONFloat64 `json:"score"`
1135		Topicality gensupport.JSONFloat64 `json:"topicality"`
1136		*NoMethod
1137	}
1138	s1.NoMethod = (*NoMethod)(s)
1139	if err := json.Unmarshal(data, &s1); err != nil {
1140		return err
1141	}
1142	s.Confidence = float64(s1.Confidence)
1143	s.Score = float64(s1.Score)
1144	s.Topicality = float64(s1.Topicality)
1145	return nil
1146}
1147
1148// FaceAnnotation: A face annotation object contains the results of face
1149// detection.
1150type FaceAnnotation struct {
1151	// AngerLikelihood: Anger likelihood.
1152	//
1153	// Possible values:
1154	//   "UNKNOWN" - Unknown likelihood.
1155	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1156	// specified vertical.
1157	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1158	// vertical.
1159	//   "POSSIBLE" - It is possible that the image belongs to the specified
1160	// vertical.
1161	//   "LIKELY" - It is likely that the image belongs to the specified
1162	// vertical.
1163	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1164	// specified vertical.
1165	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1166
1167	// BlurredLikelihood: Blurred likelihood.
1168	//
1169	// Possible values:
1170	//   "UNKNOWN" - Unknown likelihood.
1171	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1172	// specified vertical.
1173	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1174	// vertical.
1175	//   "POSSIBLE" - It is possible that the image belongs to the specified
1176	// vertical.
1177	//   "LIKELY" - It is likely that the image belongs to the specified
1178	// vertical.
1179	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1180	// specified vertical.
1181	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1182
1183	// BoundingPoly: The bounding polygon around the face. The coordinates
1184	// of the bounding box
1185	// are in the original image's scale.
1186	// The bounding box is computed to "frame" the face in accordance with
1187	// human
1188	// expectations. It is based on the landmarker results.
1189	// Note that one or more x and/or y coordinates may not be generated in
1190	// the
1191	// `BoundingPoly` (the polygon will be unbounded) if only a partial
1192	// face
1193	// appears in the image to be annotated.
1194	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1195
1196	// DetectionConfidence: Detection confidence. Range [0, 1].
1197	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1198
1199	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1200	// than the
1201	// `boundingPoly`, and encloses only the skin part of the face.
1202	// Typically, it
1203	// is used to eliminate the face from any image analysis that detects
1204	// the
1205	// "amount of skin" visible in an image. It is not based on
1206	// the
1207	// landmarker results, only on the initial face detection, hence
1208	// the <code>fd</code> (face detection) prefix.
1209	FdBoundingPoly *BoundingPoly `json:"fdBoundingPoly,omitempty"`
1210
1211	// HeadwearLikelihood: Headwear likelihood.
1212	//
1213	// Possible values:
1214	//   "UNKNOWN" - Unknown likelihood.
1215	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1216	// specified vertical.
1217	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1218	// vertical.
1219	//   "POSSIBLE" - It is possible that the image belongs to the specified
1220	// vertical.
1221	//   "LIKELY" - It is likely that the image belongs to the specified
1222	// vertical.
1223	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1224	// specified vertical.
1225	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1226
1227	// JoyLikelihood: Joy likelihood.
1228	//
1229	// Possible values:
1230	//   "UNKNOWN" - Unknown likelihood.
1231	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1232	// specified vertical.
1233	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1234	// vertical.
1235	//   "POSSIBLE" - It is possible that the image belongs to the specified
1236	// vertical.
1237	//   "LIKELY" - It is likely that the image belongs to the specified
1238	// vertical.
1239	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1240	// specified vertical.
1241	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1242
1243	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1244	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1245
1246	// Landmarks: Detected face landmarks.
1247	Landmarks []*Landmark `json:"landmarks,omitempty"`
1248
1249	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1250	// that the face is
1251	// pointing relative to the vertical plane perpendicular to the image.
1252	// Range
1253	// [-180,180].
1254	PanAngle float64 `json:"panAngle,omitempty"`
1255
1256	// RollAngle: Roll angle, which indicates the amount of
1257	// clockwise/anti-clockwise rotation
1258	// of the face relative to the image vertical about the axis
1259	// perpendicular to
1260	// the face. Range [-180,180].
1261	RollAngle float64 `json:"rollAngle,omitempty"`
1262
1263	// SorrowLikelihood: Sorrow likelihood.
1264	//
1265	// Possible values:
1266	//   "UNKNOWN" - Unknown likelihood.
1267	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1268	// specified vertical.
1269	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1270	// vertical.
1271	//   "POSSIBLE" - It is possible that the image belongs to the specified
1272	// vertical.
1273	//   "LIKELY" - It is likely that the image belongs to the specified
1274	// vertical.
1275	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1276	// specified vertical.
1277	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1278
1279	// SurpriseLikelihood: Surprise likelihood.
1280	//
1281	// Possible values:
1282	//   "UNKNOWN" - Unknown likelihood.
1283	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1284	// specified vertical.
1285	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1286	// vertical.
1287	//   "POSSIBLE" - It is possible that the image belongs to the specified
1288	// vertical.
1289	//   "LIKELY" - It is likely that the image belongs to the specified
1290	// vertical.
1291	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1292	// specified vertical.
1293	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1294
1295	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1296	// that the face is
1297	// pointing relative to the image's horizontal plane. Range [-180,180].
1298	TiltAngle float64 `json:"tiltAngle,omitempty"`
1299
1300	// UnderExposedLikelihood: Under-exposed likelihood.
1301	//
1302	// Possible values:
1303	//   "UNKNOWN" - Unknown likelihood.
1304	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
1305	// specified vertical.
1306	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
1307	// vertical.
1308	//   "POSSIBLE" - It is possible that the image belongs to the specified
1309	// vertical.
1310	//   "LIKELY" - It is likely that the image belongs to the specified
1311	// vertical.
1312	//   "VERY_LIKELY" - It is very likely that the image belongs to the
1313	// specified vertical.
1314	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
1315
1316	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
1317	// unconditionally include in API requests. By default, fields with
1318	// empty values are omitted from API requests. However, any non-pointer,
1319	// non-interface field appearing in ForceSendFields will be sent to the
1320	// server regardless of whether the field is empty or not. This may be
1321	// used to include empty fields in Patch requests.
1322	ForceSendFields []string `json:"-"`
1323
1324	// NullFields is a list of field names (e.g. "AngerLikelihood") to
1325	// include in API requests with the JSON null value. By default, fields
1326	// with empty values are omitted from API requests. However, any field
1327	// with an empty value appearing in NullFields will be sent to the
1328	// server as null. It is an error if a field in this list has a
1329	// non-empty value. This may be used to include null fields in Patch
1330	// requests.
1331	NullFields []string `json:"-"`
1332}
1333
1334func (s *FaceAnnotation) MarshalJSON() ([]byte, error) {
1335	type NoMethod FaceAnnotation
1336	raw := NoMethod(*s)
1337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1338}
1339
1340func (s *FaceAnnotation) UnmarshalJSON(data []byte) error {
1341	type NoMethod FaceAnnotation
1342	var s1 struct {
1343		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
1344		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
1345		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
1346		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
1347		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
1348		*NoMethod
1349	}
1350	s1.NoMethod = (*NoMethod)(s)
1351	if err := json.Unmarshal(data, &s1); err != nil {
1352		return err
1353	}
1354	s.DetectionConfidence = float64(s1.DetectionConfidence)
1355	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
1356	s.PanAngle = float64(s1.PanAngle)
1357	s.RollAngle = float64(s1.RollAngle)
1358	s.TiltAngle = float64(s1.TiltAngle)
1359	return nil
1360}
1361
1362// GcsDestination: The Google Cloud Storage location where the output
1363// will be written to.
1364type GcsDestination struct {
1365	// Uri: Google Cloud Storage URI prefix where the results will be
1366	// stored. Results
1367	// will be in JSON format and preceded by its corresponding input URI
1368	// prefix.
1369	// This field can either represent a gcs file prefix or gcs directory.
1370	// In
1371	// either case, the uri should be unique because in order to get all of
1372	// the
1373	// output files, you will need to do a wildcard gcs search on the uri
1374	// prefix
1375	// you provide.
1376	//
1377	// Examples:
1378	//
1379	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
1380	// files
1381	// will be created in gs://bucket-name/here/ and the names of the
1382	// output files will begin with "filenameprefix".
1383	//
1384	// *    Directory Prefix: gs://bucket-name/some/location/   The output
1385	// files
1386	// will be created in gs://bucket-name/some/location/ and the names of
1387	// the
1388	// output files could be anything because there was no filename
1389	// prefix
1390	// specified.
1391	//
1392	// If multiple outputs, each response is still AnnotateFileResponse,
1393	// each of
1394	// which contains some subset of the full list of
1395	// AnnotateImageResponse.
1396	// Multiple outputs can happen if, for example, the output JSON is too
1397	// large
1398	// and overflows into multiple sharded files.
1399	Uri string `json:"uri,omitempty"`
1400
1401	// ForceSendFields is a list of field names (e.g. "Uri") to
1402	// unconditionally include in API requests. By default, fields with
1403	// empty values are omitted from API requests. However, any non-pointer,
1404	// non-interface field appearing in ForceSendFields will be sent to the
1405	// server regardless of whether the field is empty or not. This may be
1406	// used to include empty fields in Patch requests.
1407	ForceSendFields []string `json:"-"`
1408
1409	// NullFields is a list of field names (e.g. "Uri") to include in API
1410	// requests with the JSON null value. By default, fields with empty
1411	// values are omitted from API requests. However, any field with an
1412	// empty value appearing in NullFields will be sent to the server as
1413	// null. It is an error if a field in this list has a non-empty value.
1414	// This may be used to include null fields in Patch requests.
1415	NullFields []string `json:"-"`
1416}
1417
1418func (s *GcsDestination) MarshalJSON() ([]byte, error) {
1419	type NoMethod GcsDestination
1420	raw := NoMethod(*s)
1421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1422}
1423
1424// GcsSource: The Google Cloud Storage location where the input will be
1425// read from.
1426type GcsSource struct {
1427	// Uri: Google Cloud Storage URI for the input file. This must only be
1428	// a
1429	// Google Cloud Storage object. Wildcards are not currently supported.
1430	Uri string `json:"uri,omitempty"`
1431
1432	// ForceSendFields is a list of field names (e.g. "Uri") to
1433	// unconditionally include in API requests. By default, fields with
1434	// empty values are omitted from API requests. However, any non-pointer,
1435	// non-interface field appearing in ForceSendFields will be sent to the
1436	// server regardless of whether the field is empty or not. This may be
1437	// used to include empty fields in Patch requests.
1438	ForceSendFields []string `json:"-"`
1439
1440	// NullFields is a list of field names (e.g. "Uri") to include in API
1441	// requests with the JSON null value. By default, fields with empty
1442	// values are omitted from API requests. However, any field with an
1443	// empty value appearing in NullFields will be sent to the server as
1444	// null. It is an error if a field in this list has a non-empty value.
1445	// This may be used to include null fields in Patch requests.
1446	NullFields []string `json:"-"`
1447}
1448
1449func (s *GcsSource) MarshalJSON() ([]byte, error) {
1450	type NoMethod GcsSource
1451	raw := NoMethod(*s)
1452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1453}
1454
1455// GoogleCloudVisionV1p1beta1AnnotateFileResponse: Response to a single
1456// file annotation request. A file may contain one or more
1457// images, which individually have their own responses.
1458type GoogleCloudVisionV1p1beta1AnnotateFileResponse struct {
1459	// InputConfig: Information about the file for which this response is
1460	// generated.
1461	InputConfig *GoogleCloudVisionV1p1beta1InputConfig `json:"inputConfig,omitempty"`
1462
1463	// Responses: Individual responses to images found within the file.
1464	Responses []*GoogleCloudVisionV1p1beta1AnnotateImageResponse `json:"responses,omitempty"`
1465
1466	// TotalPages: This field gives the total number of pages in the file.
1467	TotalPages int64 `json:"totalPages,omitempty"`
1468
1469	// ForceSendFields is a list of field names (e.g. "InputConfig") to
1470	// unconditionally include in API requests. By default, fields with
1471	// empty values are omitted from API requests. However, any non-pointer,
1472	// non-interface field appearing in ForceSendFields will be sent to the
1473	// server regardless of whether the field is empty or not. This may be
1474	// used to include empty fields in Patch requests.
1475	ForceSendFields []string `json:"-"`
1476
1477	// NullFields is a list of field names (e.g. "InputConfig") to include
1478	// in API requests with the JSON null value. By default, fields with
1479	// empty values are omitted from API requests. However, any field with
1480	// an empty value appearing in NullFields will be sent to the server as
1481	// null. It is an error if a field in this list has a non-empty value.
1482	// This may be used to include null fields in Patch requests.
1483	NullFields []string `json:"-"`
1484}
1485
1486func (s *GoogleCloudVisionV1p1beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
1487	type NoMethod GoogleCloudVisionV1p1beta1AnnotateFileResponse
1488	raw := NoMethod(*s)
1489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1490}
1491
1492// GoogleCloudVisionV1p1beta1AnnotateImageResponse: Response to an image
1493// annotation request.
1494type GoogleCloudVisionV1p1beta1AnnotateImageResponse struct {
1495	// Context: If present, contextual information is needed to understand
1496	// where this image
1497	// comes from.
1498	Context *GoogleCloudVisionV1p1beta1ImageAnnotationContext `json:"context,omitempty"`
1499
1500	// CropHintsAnnotation: If present, crop hints have completed
1501	// successfully.
1502	CropHintsAnnotation *GoogleCloudVisionV1p1beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
1503
1504	// Error: If set, represents the error message for the operation.
1505	// Note that filled-in image annotations are guaranteed to be
1506	// correct, even when `error` is set.
1507	Error *Status `json:"error,omitempty"`
1508
1509	// FaceAnnotations: If present, face detection has completed
1510	// successfully.
1511	FaceAnnotations []*GoogleCloudVisionV1p1beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
1512
1513	// FullTextAnnotation: If present, text (OCR) detection or document
1514	// (OCR) text detection has
1515	// completed successfully.
1516	// This annotation provides the structural hierarchy for the OCR
1517	// detected
1518	// text.
1519	FullTextAnnotation *GoogleCloudVisionV1p1beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
1520
1521	// ImagePropertiesAnnotation: If present, image properties were
1522	// extracted successfully.
1523	ImagePropertiesAnnotation *GoogleCloudVisionV1p1beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
1524
1525	// LabelAnnotations: If present, label detection has completed
1526	// successfully.
1527	LabelAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
1528
1529	// LandmarkAnnotations: If present, landmark detection has completed
1530	// successfully.
1531	LandmarkAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
1532
1533	// LocalizedObjectAnnotations: If present, localized object detection
1534	// has completed successfully.
1535	// This will be sorted descending by confidence score.
1536	LocalizedObjectAnnotations []*GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
1537
1538	// LogoAnnotations: If present, logo detection has completed
1539	// successfully.
1540	LogoAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
1541
1542	// ProductSearchResults: If present, product search has completed
1543	// successfully.
1544	ProductSearchResults *GoogleCloudVisionV1p1beta1ProductSearchResults `json:"productSearchResults,omitempty"`
1545
1546	// SafeSearchAnnotation: If present, safe-search annotation has
1547	// completed successfully.
1548	SafeSearchAnnotation *GoogleCloudVisionV1p1beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
1549
1550	// TextAnnotations: If present, text (OCR) detection has completed
1551	// successfully.
1552	TextAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"textAnnotations,omitempty"`
1553
1554	// WebDetection: If present, web detection has completed successfully.
1555	WebDetection *GoogleCloudVisionV1p1beta1WebDetection `json:"webDetection,omitempty"`
1556
1557	// ForceSendFields is a list of field names (e.g. "Context") to
1558	// unconditionally include in API requests. By default, fields with
1559	// empty values are omitted from API requests. However, any non-pointer,
1560	// non-interface field appearing in ForceSendFields will be sent to the
1561	// server regardless of whether the field is empty or not. This may be
1562	// used to include empty fields in Patch requests.
1563	ForceSendFields []string `json:"-"`
1564
1565	// NullFields is a list of field names (e.g. "Context") to include in
1566	// API requests with the JSON null value. By default, fields with empty
1567	// values are omitted from API requests. However, any field with an
1568	// empty value appearing in NullFields will be sent to the server as
1569	// null. It is an error if a field in this list has a non-empty value.
1570	// This may be used to include null fields in Patch requests.
1571	NullFields []string `json:"-"`
1572}
1573
1574func (s *GoogleCloudVisionV1p1beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
1575	type NoMethod GoogleCloudVisionV1p1beta1AnnotateImageResponse
1576	raw := NoMethod(*s)
1577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1578}
1579
1580// GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse: The response for
1581// a single offline file annotation request.
1582type GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse struct {
1583	// OutputConfig: The output location and metadata from
1584	// AsyncAnnotateFileRequest.
1585	OutputConfig *GoogleCloudVisionV1p1beta1OutputConfig `json:"outputConfig,omitempty"`
1586
1587	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
1588	// unconditionally include in API requests. By default, fields with
1589	// empty values are omitted from API requests. However, any non-pointer,
1590	// non-interface field appearing in ForceSendFields will be sent to the
1591	// server regardless of whether the field is empty or not. This may be
1592	// used to include empty fields in Patch requests.
1593	ForceSendFields []string `json:"-"`
1594
1595	// NullFields is a list of field names (e.g. "OutputConfig") to include
1596	// in API requests with the JSON null value. By default, fields with
1597	// empty values are omitted from API requests. However, any field with
1598	// an empty value appearing in NullFields will be sent to the server as
1599	// null. It is an error if a field in this list has a non-empty value.
1600	// This may be used to include null fields in Patch requests.
1601	NullFields []string `json:"-"`
1602}
1603
1604func (s *GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
1605	type NoMethod GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse
1606	raw := NoMethod(*s)
1607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1608}
1609
1610// GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse: Response
1611// to an async batch file annotation request.
1612type GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse struct {
1613	// Responses: The list of file annotation responses, one for each
1614	// request in
1615	// AsyncBatchAnnotateFilesRequest.
1616	Responses []*GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
1617
1618	// ForceSendFields is a list of field names (e.g. "Responses") to
1619	// unconditionally include in API requests. By default, fields with
1620	// empty values are omitted from API requests. However, any non-pointer,
1621	// non-interface field appearing in ForceSendFields will be sent to the
1622	// server regardless of whether the field is empty or not. This may be
1623	// used to include empty fields in Patch requests.
1624	ForceSendFields []string `json:"-"`
1625
1626	// NullFields is a list of field names (e.g. "Responses") to include in
1627	// API requests with the JSON null value. By default, fields with empty
1628	// values are omitted from API requests. However, any field with an
1629	// empty value appearing in NullFields will be sent to the server as
1630	// null. It is an error if a field in this list has a non-empty value.
1631	// This may be used to include null fields in Patch requests.
1632	NullFields []string `json:"-"`
1633}
1634
1635func (s *GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
1636	type NoMethod GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse
1637	raw := NoMethod(*s)
1638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1639}
1640
1641// GoogleCloudVisionV1p1beta1Block: Logical element on the page.
1642type GoogleCloudVisionV1p1beta1Block struct {
1643	// BlockType: Detected block type (text, image etc) for this block.
1644	//
1645	// Possible values:
1646	//   "UNKNOWN" - Unknown block type.
1647	//   "TEXT" - Regular text block.
1648	//   "TABLE" - Table block.
1649	//   "PICTURE" - Image block.
1650	//   "RULER" - Horizontal/vertical line box.
1651	//   "BARCODE" - Barcode block.
1652	BlockType string `json:"blockType,omitempty"`
1653
1654	// BoundingBox: The bounding box for the block.
1655	// The vertices are in the order of top-left, top-right,
1656	// bottom-right,
1657	// bottom-left. When a rotation of the bounding box is detected the
1658	// rotation
1659	// is represented as around the top-left corner as defined when the text
1660	// is
1661	// read in the 'natural' orientation.
1662	// For example:
1663	//
1664	// * when the text is horizontal it might look like:
1665	//
1666	//         0----1
1667	//         |    |
1668	//         3----2
1669	//
1670	// * when it's rotated 180 degrees around the top-left corner it
1671	// becomes:
1672	//
1673	//         2----3
1674	//         |    |
1675	//         1----0
1676	//
1677	//   and the vertex order will still be (0, 1, 2, 3).
1678	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
1679
1680	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
1681	Confidence float64 `json:"confidence,omitempty"`
1682
1683	// Paragraphs: List of paragraphs in this block (if this blocks is of
1684	// type text).
1685	Paragraphs []*GoogleCloudVisionV1p1beta1Paragraph `json:"paragraphs,omitempty"`
1686
1687	// Property: Additional information detected for the block.
1688	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
1689
1690	// ForceSendFields is a list of field names (e.g. "BlockType") to
1691	// unconditionally include in API requests. By default, fields with
1692	// empty values are omitted from API requests. However, any non-pointer,
1693	// non-interface field appearing in ForceSendFields will be sent to the
1694	// server regardless of whether the field is empty or not. This may be
1695	// used to include empty fields in Patch requests.
1696	ForceSendFields []string `json:"-"`
1697
1698	// NullFields is a list of field names (e.g. "BlockType") to include in
1699	// API requests with the JSON null value. By default, fields with empty
1700	// values are omitted from API requests. However, any field with an
1701	// empty value appearing in NullFields will be sent to the server as
1702	// null. It is an error if a field in this list has a non-empty value.
1703	// This may be used to include null fields in Patch requests.
1704	NullFields []string `json:"-"`
1705}
1706
1707func (s *GoogleCloudVisionV1p1beta1Block) MarshalJSON() ([]byte, error) {
1708	type NoMethod GoogleCloudVisionV1p1beta1Block
1709	raw := NoMethod(*s)
1710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1711}
1712
1713func (s *GoogleCloudVisionV1p1beta1Block) UnmarshalJSON(data []byte) error {
1714	type NoMethod GoogleCloudVisionV1p1beta1Block
1715	var s1 struct {
1716		Confidence gensupport.JSONFloat64 `json:"confidence"`
1717		*NoMethod
1718	}
1719	s1.NoMethod = (*NoMethod)(s)
1720	if err := json.Unmarshal(data, &s1); err != nil {
1721		return err
1722	}
1723	s.Confidence = float64(s1.Confidence)
1724	return nil
1725}
1726
1727// GoogleCloudVisionV1p1beta1BoundingPoly: A bounding polygon for the
1728// detected image annotation.
1729type GoogleCloudVisionV1p1beta1BoundingPoly struct {
1730	// NormalizedVertices: The bounding polygon normalized vertices.
1731	NormalizedVertices []*GoogleCloudVisionV1p1beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
1732
1733	// Vertices: The bounding polygon vertices.
1734	Vertices []*GoogleCloudVisionV1p1beta1Vertex `json:"vertices,omitempty"`
1735
1736	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
1737	// to unconditionally include in API requests. By default, fields with
1738	// empty values are omitted from API requests. However, any non-pointer,
1739	// non-interface field appearing in ForceSendFields will be sent to the
1740	// server regardless of whether the field is empty or not. This may be
1741	// used to include empty fields in Patch requests.
1742	ForceSendFields []string `json:"-"`
1743
1744	// NullFields is a list of field names (e.g. "NormalizedVertices") to
1745	// include in API requests with the JSON null value. By default, fields
1746	// with empty values are omitted from API requests. However, any field
1747	// with an empty value appearing in NullFields will be sent to the
1748	// server as null. It is an error if a field in this list has a
1749	// non-empty value. This may be used to include null fields in Patch
1750	// requests.
1751	NullFields []string `json:"-"`
1752}
1753
1754func (s *GoogleCloudVisionV1p1beta1BoundingPoly) MarshalJSON() ([]byte, error) {
1755	type NoMethod GoogleCloudVisionV1p1beta1BoundingPoly
1756	raw := NoMethod(*s)
1757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1758}
1759
1760// GoogleCloudVisionV1p1beta1ColorInfo: Color information consists of
1761// RGB channels, score, and the fraction of
1762// the image that the color occupies in the image.
1763type GoogleCloudVisionV1p1beta1ColorInfo struct {
1764	// Color: RGB components of the color.
1765	Color *Color `json:"color,omitempty"`
1766
1767	// PixelFraction: The fraction of pixels the color occupies in the
1768	// image.
1769	// Value in range [0, 1].
1770	PixelFraction float64 `json:"pixelFraction,omitempty"`
1771
1772	// Score: Image-specific score for this color. Value in range [0, 1].
1773	Score float64 `json:"score,omitempty"`
1774
1775	// ForceSendFields is a list of field names (e.g. "Color") to
1776	// unconditionally include in API requests. By default, fields with
1777	// empty values are omitted from API requests. However, any non-pointer,
1778	// non-interface field appearing in ForceSendFields will be sent to the
1779	// server regardless of whether the field is empty or not. This may be
1780	// used to include empty fields in Patch requests.
1781	ForceSendFields []string `json:"-"`
1782
1783	// NullFields is a list of field names (e.g. "Color") to include in API
1784	// requests with the JSON null value. By default, fields with empty
1785	// values are omitted from API requests. However, any field with an
1786	// empty value appearing in NullFields will be sent to the server as
1787	// null. It is an error if a field in this list has a non-empty value.
1788	// This may be used to include null fields in Patch requests.
1789	NullFields []string `json:"-"`
1790}
1791
1792func (s *GoogleCloudVisionV1p1beta1ColorInfo) MarshalJSON() ([]byte, error) {
1793	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
1794	raw := NoMethod(*s)
1795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1796}
1797
1798func (s *GoogleCloudVisionV1p1beta1ColorInfo) UnmarshalJSON(data []byte) error {
1799	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
1800	var s1 struct {
1801		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
1802		Score         gensupport.JSONFloat64 `json:"score"`
1803		*NoMethod
1804	}
1805	s1.NoMethod = (*NoMethod)(s)
1806	if err := json.Unmarshal(data, &s1); err != nil {
1807		return err
1808	}
1809	s.PixelFraction = float64(s1.PixelFraction)
1810	s.Score = float64(s1.Score)
1811	return nil
1812}
1813
1814// GoogleCloudVisionV1p1beta1CropHint: Single crop hint that is used to
1815// generate a new crop when serving an image.
1816type GoogleCloudVisionV1p1beta1CropHint struct {
1817	// BoundingPoly: The bounding polygon for the crop region. The
1818	// coordinates of the bounding
1819	// box are in the original image's scale.
1820	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
1821
1822	// Confidence: Confidence of this being a salient region.  Range [0, 1].
1823	Confidence float64 `json:"confidence,omitempty"`
1824
1825	// ImportanceFraction: Fraction of importance of this salient region
1826	// with respect to the original
1827	// image.
1828	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
1829
1830	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1831	// unconditionally include in API requests. By default, fields with
1832	// empty values are omitted from API requests. However, any non-pointer,
1833	// non-interface field appearing in ForceSendFields will be sent to the
1834	// server regardless of whether the field is empty or not. This may be
1835	// used to include empty fields in Patch requests.
1836	ForceSendFields []string `json:"-"`
1837
1838	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1839	// in API requests with the JSON null value. By default, fields with
1840	// empty values are omitted from API requests. However, any field with
1841	// an empty value appearing in NullFields will be sent to the server as
1842	// null. It is an error if a field in this list has a non-empty value.
1843	// This may be used to include null fields in Patch requests.
1844	NullFields []string `json:"-"`
1845}
1846
1847func (s *GoogleCloudVisionV1p1beta1CropHint) MarshalJSON() ([]byte, error) {
1848	type NoMethod GoogleCloudVisionV1p1beta1CropHint
1849	raw := NoMethod(*s)
1850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1851}
1852
1853func (s *GoogleCloudVisionV1p1beta1CropHint) UnmarshalJSON(data []byte) error {
1854	type NoMethod GoogleCloudVisionV1p1beta1CropHint
1855	var s1 struct {
1856		Confidence         gensupport.JSONFloat64 `json:"confidence"`
1857		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
1858		*NoMethod
1859	}
1860	s1.NoMethod = (*NoMethod)(s)
1861	if err := json.Unmarshal(data, &s1); err != nil {
1862		return err
1863	}
1864	s.Confidence = float64(s1.Confidence)
1865	s.ImportanceFraction = float64(s1.ImportanceFraction)
1866	return nil
1867}
1868
1869// GoogleCloudVisionV1p1beta1CropHintsAnnotation: Set of crop hints that
1870// are used to generate new crops when serving images.
1871type GoogleCloudVisionV1p1beta1CropHintsAnnotation struct {
1872	// CropHints: Crop hint results.
1873	CropHints []*GoogleCloudVisionV1p1beta1CropHint `json:"cropHints,omitempty"`
1874
1875	// ForceSendFields is a list of field names (e.g. "CropHints") to
1876	// unconditionally include in API requests. By default, fields with
1877	// empty values are omitted from API requests. However, any non-pointer,
1878	// non-interface field appearing in ForceSendFields will be sent to the
1879	// server regardless of whether the field is empty or not. This may be
1880	// used to include empty fields in Patch requests.
1881	ForceSendFields []string `json:"-"`
1882
1883	// NullFields is a list of field names (e.g. "CropHints") to include in
1884	// API requests with the JSON null value. By default, fields with empty
1885	// values are omitted from API requests. However, any field with an
1886	// empty value appearing in NullFields will be sent to the server as
1887	// null. It is an error if a field in this list has a non-empty value.
1888	// This may be used to include null fields in Patch requests.
1889	NullFields []string `json:"-"`
1890}
1891
1892func (s *GoogleCloudVisionV1p1beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
1893	type NoMethod GoogleCloudVisionV1p1beta1CropHintsAnnotation
1894	raw := NoMethod(*s)
1895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1896}
1897
1898// GoogleCloudVisionV1p1beta1DominantColorsAnnotation: Set of dominant
1899// colors and their corresponding scores.
1900type GoogleCloudVisionV1p1beta1DominantColorsAnnotation struct {
1901	// Colors: RGB color values with their score and pixel fraction.
1902	Colors []*GoogleCloudVisionV1p1beta1ColorInfo `json:"colors,omitempty"`
1903
1904	// ForceSendFields is a list of field names (e.g. "Colors") to
1905	// unconditionally include in API requests. By default, fields with
1906	// empty values are omitted from API requests. However, any non-pointer,
1907	// non-interface field appearing in ForceSendFields will be sent to the
1908	// server regardless of whether the field is empty or not. This may be
1909	// used to include empty fields in Patch requests.
1910	ForceSendFields []string `json:"-"`
1911
1912	// NullFields is a list of field names (e.g. "Colors") to include in API
1913	// requests with the JSON null value. By default, fields with empty
1914	// values are omitted from API requests. However, any field with an
1915	// empty value appearing in NullFields will be sent to the server as
1916	// null. It is an error if a field in this list has a non-empty value.
1917	// This may be used to include null fields in Patch requests.
1918	NullFields []string `json:"-"`
1919}
1920
1921func (s *GoogleCloudVisionV1p1beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1922	type NoMethod GoogleCloudVisionV1p1beta1DominantColorsAnnotation
1923	raw := NoMethod(*s)
1924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1925}
1926
1927// GoogleCloudVisionV1p1beta1EntityAnnotation: Set of detected entity
1928// features.
1929type GoogleCloudVisionV1p1beta1EntityAnnotation struct {
1930	// BoundingPoly: Image region to which this entity belongs. Not
1931	// produced
1932	// for `LABEL_DETECTION` features.
1933	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
1934
1935	// Confidence: **Deprecated. Use `score` instead.**
1936	// The accuracy of the entity detection in an image.
1937	// For example, for an image in which the "Eiffel Tower" entity is
1938	// detected,
1939	// this field represents the confidence that there is a tower in the
1940	// query
1941	// image. Range [0, 1].
1942	Confidence float64 `json:"confidence,omitempty"`
1943
1944	// Description: Entity textual description, expressed in its `locale`
1945	// language.
1946	Description string `json:"description,omitempty"`
1947
1948	// Locale: The language code for the locale in which the entity
1949	// textual
1950	// `description` is expressed.
1951	Locale string `json:"locale,omitempty"`
1952
1953	// Locations: The location information for the detected entity.
1954	// Multiple
1955	// `LocationInfo` elements can be present because one location
1956	// may
1957	// indicate the location of the scene in the image, and another
1958	// location
1959	// may indicate the location of the place where the image was
1960	// taken.
1961	// Location information is usually present for landmarks.
1962	Locations []*GoogleCloudVisionV1p1beta1LocationInfo `json:"locations,omitempty"`
1963
1964	// Mid: Opaque entity ID. Some IDs may be available in
1965	// [Google Knowledge Graph
1966	// Search
1967	// API](https://developers.google.com/knowledge-graph/).
1968	Mid string `json:"mid,omitempty"`
1969
1970	// Properties: Some entities may have optional user-supplied `Property`
1971	// (name/value)
1972	// fields, such a score or string that qualifies the entity.
1973	Properties []*GoogleCloudVisionV1p1beta1Property `json:"properties,omitempty"`
1974
1975	// Score: Overall score of the result. Range [0, 1].
1976	Score float64 `json:"score,omitempty"`
1977
1978	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1979	// to the
1980	// image. For example, the relevancy of "tower" is likely higher to an
1981	// image
1982	// containing the detected "Eiffel Tower" than to an image containing
1983	// a
1984	// detected distant towering building, even though the confidence
1985	// that
1986	// there is a tower in each image may be the same. Range [0, 1].
1987	Topicality float64 `json:"topicality,omitempty"`
1988
1989	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1990	// unconditionally include in API requests. By default, fields with
1991	// empty values are omitted from API requests. However, any non-pointer,
1992	// non-interface field appearing in ForceSendFields will be sent to the
1993	// server regardless of whether the field is empty or not. This may be
1994	// used to include empty fields in Patch requests.
1995	ForceSendFields []string `json:"-"`
1996
1997	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1998	// in API requests with the JSON null value. By default, fields with
1999	// empty values are omitted from API requests. However, any field with
2000	// an empty value appearing in NullFields will be sent to the server as
2001	// null. It is an error if a field in this list has a non-empty value.
2002	// This may be used to include null fields in Patch requests.
2003	NullFields []string `json:"-"`
2004}
2005
2006func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
2007	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2008	raw := NoMethod(*s)
2009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2010}
2011
2012func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
2013	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2014	var s1 struct {
2015		Confidence gensupport.JSONFloat64 `json:"confidence"`
2016		Score      gensupport.JSONFloat64 `json:"score"`
2017		Topicality gensupport.JSONFloat64 `json:"topicality"`
2018		*NoMethod
2019	}
2020	s1.NoMethod = (*NoMethod)(s)
2021	if err := json.Unmarshal(data, &s1); err != nil {
2022		return err
2023	}
2024	s.Confidence = float64(s1.Confidence)
2025	s.Score = float64(s1.Score)
2026	s.Topicality = float64(s1.Topicality)
2027	return nil
2028}
2029
2030// GoogleCloudVisionV1p1beta1FaceAnnotation: A face annotation object
2031// contains the results of face detection.
2032type GoogleCloudVisionV1p1beta1FaceAnnotation struct {
2033	// AngerLikelihood: Anger likelihood.
2034	//
2035	// Possible values:
2036	//   "UNKNOWN" - Unknown likelihood.
2037	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2038	// specified vertical.
2039	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2040	// vertical.
2041	//   "POSSIBLE" - It is possible that the image belongs to the specified
2042	// vertical.
2043	//   "LIKELY" - It is likely that the image belongs to the specified
2044	// vertical.
2045	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2046	// specified vertical.
2047	AngerLikelihood string `json:"angerLikelihood,omitempty"`
2048
2049	// BlurredLikelihood: Blurred likelihood.
2050	//
2051	// Possible values:
2052	//   "UNKNOWN" - Unknown likelihood.
2053	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2054	// specified vertical.
2055	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2056	// vertical.
2057	//   "POSSIBLE" - It is possible that the image belongs to the specified
2058	// vertical.
2059	//   "LIKELY" - It is likely that the image belongs to the specified
2060	// vertical.
2061	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2062	// specified vertical.
2063	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
2064
2065	// BoundingPoly: The bounding polygon around the face. The coordinates
2066	// of the bounding box
2067	// are in the original image's scale.
2068	// The bounding box is computed to "frame" the face in accordance with
2069	// human
2070	// expectations. It is based on the landmarker results.
2071	// Note that one or more x and/or y coordinates may not be generated in
2072	// the
2073	// `BoundingPoly` (the polygon will be unbounded) if only a partial
2074	// face
2075	// appears in the image to be annotated.
2076	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2077
2078	// DetectionConfidence: Detection confidence. Range [0, 1].
2079	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
2080
2081	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
2082	// than the
2083	// `boundingPoly`, and encloses only the skin part of the face.
2084	// Typically, it
2085	// is used to eliminate the face from any image analysis that detects
2086	// the
2087	// "amount of skin" visible in an image. It is not based on
2088	// the
2089	// landmarker results, only on the initial face detection, hence
2090	// the <code>fd</code> (face detection) prefix.
2091	FdBoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
2092
2093	// HeadwearLikelihood: Headwear likelihood.
2094	//
2095	// Possible values:
2096	//   "UNKNOWN" - Unknown likelihood.
2097	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2098	// specified vertical.
2099	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2100	// vertical.
2101	//   "POSSIBLE" - It is possible that the image belongs to the specified
2102	// vertical.
2103	//   "LIKELY" - It is likely that the image belongs to the specified
2104	// vertical.
2105	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2106	// specified vertical.
2107	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
2108
2109	// JoyLikelihood: Joy likelihood.
2110	//
2111	// Possible values:
2112	//   "UNKNOWN" - Unknown likelihood.
2113	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2114	// specified vertical.
2115	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2116	// vertical.
2117	//   "POSSIBLE" - It is possible that the image belongs to the specified
2118	// vertical.
2119	//   "LIKELY" - It is likely that the image belongs to the specified
2120	// vertical.
2121	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2122	// specified vertical.
2123	JoyLikelihood string `json:"joyLikelihood,omitempty"`
2124
2125	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
2126	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
2127
2128	// Landmarks: Detected face landmarks.
2129	Landmarks []*GoogleCloudVisionV1p1beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
2130
2131	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
2132	// that the face is
2133	// pointing relative to the vertical plane perpendicular to the image.
2134	// Range
2135	// [-180,180].
2136	PanAngle float64 `json:"panAngle,omitempty"`
2137
2138	// RollAngle: Roll angle, which indicates the amount of
2139	// clockwise/anti-clockwise rotation
2140	// of the face relative to the image vertical about the axis
2141	// perpendicular to
2142	// the face. Range [-180,180].
2143	RollAngle float64 `json:"rollAngle,omitempty"`
2144
2145	// SorrowLikelihood: Sorrow likelihood.
2146	//
2147	// Possible values:
2148	//   "UNKNOWN" - Unknown likelihood.
2149	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2150	// specified vertical.
2151	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2152	// vertical.
2153	//   "POSSIBLE" - It is possible that the image belongs to the specified
2154	// vertical.
2155	//   "LIKELY" - It is likely that the image belongs to the specified
2156	// vertical.
2157	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2158	// specified vertical.
2159	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
2160
2161	// SurpriseLikelihood: Surprise likelihood.
2162	//
2163	// Possible values:
2164	//   "UNKNOWN" - Unknown likelihood.
2165	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2166	// specified vertical.
2167	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2168	// vertical.
2169	//   "POSSIBLE" - It is possible that the image belongs to the specified
2170	// vertical.
2171	//   "LIKELY" - It is likely that the image belongs to the specified
2172	// vertical.
2173	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2174	// specified vertical.
2175	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
2176
2177	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
2178	// that the face is
2179	// pointing relative to the image's horizontal plane. Range [-180,180].
2180	TiltAngle float64 `json:"tiltAngle,omitempty"`
2181
2182	// UnderExposedLikelihood: Under-exposed likelihood.
2183	//
2184	// Possible values:
2185	//   "UNKNOWN" - Unknown likelihood.
2186	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
2187	// specified vertical.
2188	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
2189	// vertical.
2190	//   "POSSIBLE" - It is possible that the image belongs to the specified
2191	// vertical.
2192	//   "LIKELY" - It is likely that the image belongs to the specified
2193	// vertical.
2194	//   "VERY_LIKELY" - It is very likely that the image belongs to the
2195	// specified vertical.
2196	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
2197
2198	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
2199	// unconditionally include in API requests. By default, fields with
2200	// empty values are omitted from API requests. However, any non-pointer,
2201	// non-interface field appearing in ForceSendFields will be sent to the
2202	// server regardless of whether the field is empty or not. This may be
2203	// used to include empty fields in Patch requests.
2204	ForceSendFields []string `json:"-"`
2205
2206	// NullFields is a list of field names (e.g. "AngerLikelihood") to
2207	// include in API requests with the JSON null value. By default, fields
2208	// with empty values are omitted from API requests. However, any field
2209	// with an empty value appearing in NullFields will be sent to the
2210	// server as null. It is an error if a field in this list has a
2211	// non-empty value. This may be used to include null fields in Patch
2212	// requests.
2213	NullFields []string `json:"-"`
2214}
2215
2216func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
2217	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2218	raw := NoMethod(*s)
2219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2220}
2221
2222func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
2223	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2224	var s1 struct {
2225		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
2226		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
2227		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
2228		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
2229		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
2230		*NoMethod
2231	}
2232	s1.NoMethod = (*NoMethod)(s)
2233	if err := json.Unmarshal(data, &s1); err != nil {
2234		return err
2235	}
2236	s.DetectionConfidence = float64(s1.DetectionConfidence)
2237	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
2238	s.PanAngle = float64(s1.PanAngle)
2239	s.RollAngle = float64(s1.RollAngle)
2240	s.TiltAngle = float64(s1.TiltAngle)
2241	return nil
2242}
2243
2244// GoogleCloudVisionV1p1beta1FaceAnnotationLandmark: A face-specific
2245// landmark (for example, a face feature).
2246type GoogleCloudVisionV1p1beta1FaceAnnotationLandmark struct {
2247	// Position: Face landmark position.
2248	Position *GoogleCloudVisionV1p1beta1Position `json:"position,omitempty"`
2249
2250	// Type: Face landmark type.
2251	//
2252	// Possible values:
2253	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
2254	// filled.
2255	//   "LEFT_EYE" - Left eye.
2256	//   "RIGHT_EYE" - Right eye.
2257	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
2258	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
2259	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
2260	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
2261	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
2262	//   "NOSE_TIP" - Nose tip.
2263	//   "UPPER_LIP" - Upper lip.
2264	//   "LOWER_LIP" - Lower lip.
2265	//   "MOUTH_LEFT" - Mouth left.
2266	//   "MOUTH_RIGHT" - Mouth right.
2267	//   "MOUTH_CENTER" - Mouth center.
2268	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
2269	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
2270	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
2271	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
2272	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
2273	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
2274	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
2275	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
2276	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
2277	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
2278	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
2279	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
2280	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
2281	//   "LEFT_EAR_TRAGION" - Left ear tragion.
2282	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
2283	//   "LEFT_EYE_PUPIL" - Left eye pupil.
2284	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
2285	//   "FOREHEAD_GLABELLA" - Forehead glabella.
2286	//   "CHIN_GNATHION" - Chin gnathion.
2287	//   "CHIN_LEFT_GONION" - Chin left gonion.
2288	//   "CHIN_RIGHT_GONION" - Chin right gonion.
2289	Type string `json:"type,omitempty"`
2290
2291	// ForceSendFields is a list of field names (e.g. "Position") to
2292	// unconditionally include in API requests. By default, fields with
2293	// empty values are omitted from API requests. However, any non-pointer,
2294	// non-interface field appearing in ForceSendFields will be sent to the
2295	// server regardless of whether the field is empty or not. This may be
2296	// used to include empty fields in Patch requests.
2297	ForceSendFields []string `json:"-"`
2298
2299	// NullFields is a list of field names (e.g. "Position") to include in
2300	// API requests with the JSON null value. By default, fields with empty
2301	// values are omitted from API requests. However, any field with an
2302	// empty value appearing in NullFields will be sent to the server as
2303	// null. It is an error if a field in this list has a non-empty value.
2304	// This may be used to include null fields in Patch requests.
2305	NullFields []string `json:"-"`
2306}
2307
2308func (s *GoogleCloudVisionV1p1beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
2309	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotationLandmark
2310	raw := NoMethod(*s)
2311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2312}
2313
2314// GoogleCloudVisionV1p1beta1GcsDestination: The Google Cloud Storage
2315// location where the output will be written to.
2316type GoogleCloudVisionV1p1beta1GcsDestination struct {
2317	// Uri: Google Cloud Storage URI prefix where the results will be
2318	// stored. Results
2319	// will be in JSON format and preceded by its corresponding input URI
2320	// prefix.
2321	// This field can either represent a gcs file prefix or gcs directory.
2322	// In
2323	// either case, the uri should be unique because in order to get all of
2324	// the
2325	// output files, you will need to do a wildcard gcs search on the uri
2326	// prefix
2327	// you provide.
2328	//
2329	// Examples:
2330	//
2331	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
2332	// files
2333	// will be created in gs://bucket-name/here/ and the names of the
2334	// output files will begin with "filenameprefix".
2335	//
2336	// *    Directory Prefix: gs://bucket-name/some/location/   The output
2337	// files
2338	// will be created in gs://bucket-name/some/location/ and the names of
2339	// the
2340	// output files could be anything because there was no filename
2341	// prefix
2342	// specified.
2343	//
2344	// If multiple outputs, each response is still AnnotateFileResponse,
2345	// each of
2346	// which contains some subset of the full list of
2347	// AnnotateImageResponse.
2348	// Multiple outputs can happen if, for example, the output JSON is too
2349	// large
2350	// and overflows into multiple sharded files.
2351	Uri string `json:"uri,omitempty"`
2352
2353	// ForceSendFields is a list of field names (e.g. "Uri") to
2354	// unconditionally include in API requests. By default, fields with
2355	// empty values are omitted from API requests. However, any non-pointer,
2356	// non-interface field appearing in ForceSendFields will be sent to the
2357	// server regardless of whether the field is empty or not. This may be
2358	// used to include empty fields in Patch requests.
2359	ForceSendFields []string `json:"-"`
2360
2361	// NullFields is a list of field names (e.g. "Uri") to include in API
2362	// requests with the JSON null value. By default, fields with empty
2363	// values are omitted from API requests. However, any field with an
2364	// empty value appearing in NullFields will be sent to the server as
2365	// null. It is an error if a field in this list has a non-empty value.
2366	// This may be used to include null fields in Patch requests.
2367	NullFields []string `json:"-"`
2368}
2369
2370func (s *GoogleCloudVisionV1p1beta1GcsDestination) MarshalJSON() ([]byte, error) {
2371	type NoMethod GoogleCloudVisionV1p1beta1GcsDestination
2372	raw := NoMethod(*s)
2373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2374}
2375
2376// GoogleCloudVisionV1p1beta1GcsSource: The Google Cloud Storage
2377// location where the input will be read from.
2378type GoogleCloudVisionV1p1beta1GcsSource struct {
2379	// Uri: Google Cloud Storage URI for the input file. This must only be
2380	// a
2381	// Google Cloud Storage object. Wildcards are not currently supported.
2382	Uri string `json:"uri,omitempty"`
2383
2384	// ForceSendFields is a list of field names (e.g. "Uri") to
2385	// unconditionally include in API requests. By default, fields with
2386	// empty values are omitted from API requests. However, any non-pointer,
2387	// non-interface field appearing in ForceSendFields will be sent to the
2388	// server regardless of whether the field is empty or not. This may be
2389	// used to include empty fields in Patch requests.
2390	ForceSendFields []string `json:"-"`
2391
2392	// NullFields is a list of field names (e.g. "Uri") to include in API
2393	// requests with the JSON null value. By default, fields with empty
2394	// values are omitted from API requests. However, any field with an
2395	// empty value appearing in NullFields will be sent to the server as
2396	// null. It is an error if a field in this list has a non-empty value.
2397	// This may be used to include null fields in Patch requests.
2398	NullFields []string `json:"-"`
2399}
2400
2401func (s *GoogleCloudVisionV1p1beta1GcsSource) MarshalJSON() ([]byte, error) {
2402	type NoMethod GoogleCloudVisionV1p1beta1GcsSource
2403	raw := NoMethod(*s)
2404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2405}
2406
2407// GoogleCloudVisionV1p1beta1ImageAnnotationContext: If an image was
2408// produced from a file (e.g. a PDF), this message gives
2409// information about the source of that image.
2410type GoogleCloudVisionV1p1beta1ImageAnnotationContext struct {
2411	// PageNumber: If the file was a PDF or TIFF, this field gives the page
2412	// number within
2413	// the file used to produce the image.
2414	PageNumber int64 `json:"pageNumber,omitempty"`
2415
2416	// Uri: The URI of the file used to produce the image.
2417	Uri string `json:"uri,omitempty"`
2418
2419	// ForceSendFields is a list of field names (e.g. "PageNumber") to
2420	// unconditionally include in API requests. By default, fields with
2421	// empty values are omitted from API requests. However, any non-pointer,
2422	// non-interface field appearing in ForceSendFields will be sent to the
2423	// server regardless of whether the field is empty or not. This may be
2424	// used to include empty fields in Patch requests.
2425	ForceSendFields []string `json:"-"`
2426
2427	// NullFields is a list of field names (e.g. "PageNumber") to include in
2428	// API requests with the JSON null value. By default, fields with empty
2429	// values are omitted from API requests. However, any field with an
2430	// empty value appearing in NullFields will be sent to the server as
2431	// null. It is an error if a field in this list has a non-empty value.
2432	// This may be used to include null fields in Patch requests.
2433	NullFields []string `json:"-"`
2434}
2435
2436func (s *GoogleCloudVisionV1p1beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
2437	type NoMethod GoogleCloudVisionV1p1beta1ImageAnnotationContext
2438	raw := NoMethod(*s)
2439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2440}
2441
2442// GoogleCloudVisionV1p1beta1ImageProperties: Stores image properties,
2443// such as dominant colors.
2444type GoogleCloudVisionV1p1beta1ImageProperties struct {
2445	// DominantColors: If present, dominant colors completed successfully.
2446	DominantColors *GoogleCloudVisionV1p1beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
2447
2448	// ForceSendFields is a list of field names (e.g. "DominantColors") to
2449	// unconditionally include in API requests. By default, fields with
2450	// empty values are omitted from API requests. However, any non-pointer,
2451	// non-interface field appearing in ForceSendFields will be sent to the
2452	// server regardless of whether the field is empty or not. This may be
2453	// used to include empty fields in Patch requests.
2454	ForceSendFields []string `json:"-"`
2455
2456	// NullFields is a list of field names (e.g. "DominantColors") to
2457	// include in API requests with the JSON null value. By default, fields
2458	// with empty values are omitted from API requests. However, any field
2459	// with an empty value appearing in NullFields will be sent to the
2460	// server as null. It is an error if a field in this list has a
2461	// non-empty value. This may be used to include null fields in Patch
2462	// requests.
2463	NullFields []string `json:"-"`
2464}
2465
2466func (s *GoogleCloudVisionV1p1beta1ImageProperties) MarshalJSON() ([]byte, error) {
2467	type NoMethod GoogleCloudVisionV1p1beta1ImageProperties
2468	raw := NoMethod(*s)
2469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2470}
2471
2472// GoogleCloudVisionV1p1beta1InputConfig: The desired input location and
2473// metadata.
2474type GoogleCloudVisionV1p1beta1InputConfig struct {
2475	// Content: File content, represented as a stream of bytes.
2476	// Note: As with all `bytes` fields, protobuffers use a pure
2477	// binary
2478	// representation, whereas JSON representations use base64.
2479	//
2480	// Currently, this field only works for BatchAnnotateFiles requests. It
2481	// does
2482	// not work for AsyncBatchAnnotateFiles requests.
2483	Content string `json:"content,omitempty"`
2484
2485	// GcsSource: The Google Cloud Storage location to read the input from.
2486	GcsSource *GoogleCloudVisionV1p1beta1GcsSource `json:"gcsSource,omitempty"`
2487
2488	// MimeType: The type of the file. Currently only "application/pdf",
2489	// "image/tiff" and
2490	// "image/gif" are supported. Wildcards are not supported.
2491	MimeType string `json:"mimeType,omitempty"`
2492
2493	// ForceSendFields is a list of field names (e.g. "Content") to
2494	// unconditionally include in API requests. By default, fields with
2495	// empty values are omitted from API requests. However, any non-pointer,
2496	// non-interface field appearing in ForceSendFields will be sent to the
2497	// server regardless of whether the field is empty or not. This may be
2498	// used to include empty fields in Patch requests.
2499	ForceSendFields []string `json:"-"`
2500
2501	// NullFields is a list of field names (e.g. "Content") to include in
2502	// API requests with the JSON null value. By default, fields with empty
2503	// values are omitted from API requests. However, any field with an
2504	// empty value appearing in NullFields will be sent to the server as
2505	// null. It is an error if a field in this list has a non-empty value.
2506	// This may be used to include null fields in Patch requests.
2507	NullFields []string `json:"-"`
2508}
2509
2510func (s *GoogleCloudVisionV1p1beta1InputConfig) MarshalJSON() ([]byte, error) {
2511	type NoMethod GoogleCloudVisionV1p1beta1InputConfig
2512	raw := NoMethod(*s)
2513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2514}
2515
2516// GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation: Set of detected
2517// objects with bounding boxes.
2518type GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation struct {
2519	// BoundingPoly: Image region to which this object belongs. This must be
2520	// populated.
2521	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2522
2523	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
2524	// For more
2525	// information,
2526	// see
2527	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
2528	LanguageCode string `json:"languageCode,omitempty"`
2529
2530	// Mid: Object ID that should align with EntityAnnotation mid.
2531	Mid string `json:"mid,omitempty"`
2532
2533	// Name: Object name, expressed in its `language_code` language.
2534	Name string `json:"name,omitempty"`
2535
2536	// Score: Score of the result. Range [0, 1].
2537	Score float64 `json:"score,omitempty"`
2538
2539	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2540	// unconditionally include in API requests. By default, fields with
2541	// empty values are omitted from API requests. However, any non-pointer,
2542	// non-interface field appearing in ForceSendFields will be sent to the
2543	// server regardless of whether the field is empty or not. This may be
2544	// used to include empty fields in Patch requests.
2545	ForceSendFields []string `json:"-"`
2546
2547	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2548	// in API requests with the JSON null value. By default, fields with
2549	// empty values are omitted from API requests. However, any field with
2550	// an empty value appearing in NullFields will be sent to the server as
2551	// null. It is an error if a field in this list has a non-empty value.
2552	// This may be used to include null fields in Patch requests.
2553	NullFields []string `json:"-"`
2554}
2555
2556func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
2557	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2558	raw := NoMethod(*s)
2559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2560}
2561
2562func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
2563	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2564	var s1 struct {
2565		Score gensupport.JSONFloat64 `json:"score"`
2566		*NoMethod
2567	}
2568	s1.NoMethod = (*NoMethod)(s)
2569	if err := json.Unmarshal(data, &s1); err != nil {
2570		return err
2571	}
2572	s.Score = float64(s1.Score)
2573	return nil
2574}
2575
2576// GoogleCloudVisionV1p1beta1LocationInfo: Detected entity location
2577// information.
2578type GoogleCloudVisionV1p1beta1LocationInfo struct {
2579	// LatLng: lat/long location coordinates.
2580	LatLng *LatLng `json:"latLng,omitempty"`
2581
2582	// ForceSendFields is a list of field names (e.g. "LatLng") to
2583	// unconditionally include in API requests. By default, fields with
2584	// empty values are omitted from API requests. However, any non-pointer,
2585	// non-interface field appearing in ForceSendFields will be sent to the
2586	// server regardless of whether the field is empty or not. This may be
2587	// used to include empty fields in Patch requests.
2588	ForceSendFields []string `json:"-"`
2589
2590	// NullFields is a list of field names (e.g. "LatLng") to include in API
2591	// requests with the JSON null value. By default, fields with empty
2592	// values are omitted from API requests. However, any field with an
2593	// empty value appearing in NullFields will be sent to the server as
2594	// null. It is an error if a field in this list has a non-empty value.
2595	// This may be used to include null fields in Patch requests.
2596	NullFields []string `json:"-"`
2597}
2598
2599func (s *GoogleCloudVisionV1p1beta1LocationInfo) MarshalJSON() ([]byte, error) {
2600	type NoMethod GoogleCloudVisionV1p1beta1LocationInfo
2601	raw := NoMethod(*s)
2602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2603}
2604
2605// GoogleCloudVisionV1p1beta1NormalizedVertex: A vertex represents a 2D
2606// point in the image.
2607// NOTE: the normalized vertex coordinates are relative to the original
2608// image
2609// and range from 0 to 1.
2610type GoogleCloudVisionV1p1beta1NormalizedVertex struct {
2611	// X: X coordinate.
2612	X float64 `json:"x,omitempty"`
2613
2614	// Y: Y coordinate.
2615	Y float64 `json:"y,omitempty"`
2616
2617	// ForceSendFields is a list of field names (e.g. "X") to
2618	// unconditionally include in API requests. By default, fields with
2619	// empty values are omitted from API requests. However, any non-pointer,
2620	// non-interface field appearing in ForceSendFields will be sent to the
2621	// server regardless of whether the field is empty or not. This may be
2622	// used to include empty fields in Patch requests.
2623	ForceSendFields []string `json:"-"`
2624
2625	// NullFields is a list of field names (e.g. "X") to include in API
2626	// requests with the JSON null value. By default, fields with empty
2627	// values are omitted from API requests. However, any field with an
2628	// empty value appearing in NullFields will be sent to the server as
2629	// null. It is an error if a field in this list has a non-empty value.
2630	// This may be used to include null fields in Patch requests.
2631	NullFields []string `json:"-"`
2632}
2633
2634func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
2635	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2636	raw := NoMethod(*s)
2637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2638}
2639
2640func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
2641	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2642	var s1 struct {
2643		X gensupport.JSONFloat64 `json:"x"`
2644		Y gensupport.JSONFloat64 `json:"y"`
2645		*NoMethod
2646	}
2647	s1.NoMethod = (*NoMethod)(s)
2648	if err := json.Unmarshal(data, &s1); err != nil {
2649		return err
2650	}
2651	s.X = float64(s1.X)
2652	s.Y = float64(s1.Y)
2653	return nil
2654}
2655
2656// GoogleCloudVisionV1p1beta1OperationMetadata: Contains metadata for
2657// the BatchAnnotateImages operation.
2658type GoogleCloudVisionV1p1beta1OperationMetadata struct {
2659	// CreateTime: The time when the batch request was received.
2660	CreateTime string `json:"createTime,omitempty"`
2661
2662	// State: Current state of the batch operation.
2663	//
2664	// Possible values:
2665	//   "STATE_UNSPECIFIED" - Invalid.
2666	//   "CREATED" - Request is received.
2667	//   "RUNNING" - Request is actively being processed.
2668	//   "DONE" - The batch processing is done.
2669	//   "CANCELLED" - The batch processing was cancelled.
2670	State string `json:"state,omitempty"`
2671
2672	// UpdateTime: The time when the operation result was last updated.
2673	UpdateTime string `json:"updateTime,omitempty"`
2674
2675	// ForceSendFields is a list of field names (e.g. "CreateTime") to
2676	// unconditionally include in API requests. By default, fields with
2677	// empty values are omitted from API requests. However, any non-pointer,
2678	// non-interface field appearing in ForceSendFields will be sent to the
2679	// server regardless of whether the field is empty or not. This may be
2680	// used to include empty fields in Patch requests.
2681	ForceSendFields []string `json:"-"`
2682
2683	// NullFields is a list of field names (e.g. "CreateTime") to include in
2684	// API requests with the JSON null value. By default, fields with empty
2685	// values are omitted from API requests. However, any field with an
2686	// empty value appearing in NullFields will be sent to the server as
2687	// null. It is an error if a field in this list has a non-empty value.
2688	// This may be used to include null fields in Patch requests.
2689	NullFields []string `json:"-"`
2690}
2691
2692func (s *GoogleCloudVisionV1p1beta1OperationMetadata) MarshalJSON() ([]byte, error) {
2693	type NoMethod GoogleCloudVisionV1p1beta1OperationMetadata
2694	raw := NoMethod(*s)
2695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2696}
2697
2698// GoogleCloudVisionV1p1beta1OutputConfig: The desired output location
2699// and metadata.
2700type GoogleCloudVisionV1p1beta1OutputConfig struct {
2701	// BatchSize: The max number of response protos to put into each output
2702	// JSON file on
2703	// Google Cloud Storage.
2704	// The valid range is [1, 100]. If not specified, the default value is
2705	// 20.
2706	//
2707	// For example, for one pdf file with 100 pages, 100 response protos
2708	// will
2709	// be generated. If `batch_size` = 20, then 5 json files each
2710	// containing 20 response protos will be written under the
2711	// prefix
2712	// `gcs_destination`.`uri`.
2713	//
2714	// Currently, batch_size only applies to GcsDestination, with potential
2715	// future
2716	// support for other output configurations.
2717	BatchSize int64 `json:"batchSize,omitempty"`
2718
2719	// GcsDestination: The Google Cloud Storage location to write the
2720	// output(s) to.
2721	GcsDestination *GoogleCloudVisionV1p1beta1GcsDestination `json:"gcsDestination,omitempty"`
2722
2723	// ForceSendFields is a list of field names (e.g. "BatchSize") to
2724	// unconditionally include in API requests. By default, fields with
2725	// empty values are omitted from API requests. However, any non-pointer,
2726	// non-interface field appearing in ForceSendFields will be sent to the
2727	// server regardless of whether the field is empty or not. This may be
2728	// used to include empty fields in Patch requests.
2729	ForceSendFields []string `json:"-"`
2730
2731	// NullFields is a list of field names (e.g. "BatchSize") to include in
2732	// API requests with the JSON null value. By default, fields with empty
2733	// values are omitted from API requests. However, any field with an
2734	// empty value appearing in NullFields will be sent to the server as
2735	// null. It is an error if a field in this list has a non-empty value.
2736	// This may be used to include null fields in Patch requests.
2737	NullFields []string `json:"-"`
2738}
2739
2740func (s *GoogleCloudVisionV1p1beta1OutputConfig) MarshalJSON() ([]byte, error) {
2741	type NoMethod GoogleCloudVisionV1p1beta1OutputConfig
2742	raw := NoMethod(*s)
2743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2744}
2745
2746// GoogleCloudVisionV1p1beta1Page: Detected page from OCR.
2747type GoogleCloudVisionV1p1beta1Page struct {
2748	// Blocks: List of blocks of text, images etc on this page.
2749	Blocks []*GoogleCloudVisionV1p1beta1Block `json:"blocks,omitempty"`
2750
2751	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
2752	Confidence float64 `json:"confidence,omitempty"`
2753
2754	// Height: Page height. For PDFs the unit is points. For images
2755	// (including
2756	// TIFFs) the unit is pixels.
2757	Height int64 `json:"height,omitempty"`
2758
2759	// Property: Additional information detected on the page.
2760	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2761
2762	// Width: Page width. For PDFs the unit is points. For images
2763	// (including
2764	// TIFFs) the unit is pixels.
2765	Width int64 `json:"width,omitempty"`
2766
2767	// ForceSendFields is a list of field names (e.g. "Blocks") to
2768	// unconditionally include in API requests. By default, fields with
2769	// empty values are omitted from API requests. However, any non-pointer,
2770	// non-interface field appearing in ForceSendFields will be sent to the
2771	// server regardless of whether the field is empty or not. This may be
2772	// used to include empty fields in Patch requests.
2773	ForceSendFields []string `json:"-"`
2774
2775	// NullFields is a list of field names (e.g. "Blocks") to include in API
2776	// requests with the JSON null value. By default, fields with empty
2777	// values are omitted from API requests. However, any field with an
2778	// empty value appearing in NullFields will be sent to the server as
2779	// null. It is an error if a field in this list has a non-empty value.
2780	// This may be used to include null fields in Patch requests.
2781	NullFields []string `json:"-"`
2782}
2783
2784func (s *GoogleCloudVisionV1p1beta1Page) MarshalJSON() ([]byte, error) {
2785	type NoMethod GoogleCloudVisionV1p1beta1Page
2786	raw := NoMethod(*s)
2787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2788}
2789
2790func (s *GoogleCloudVisionV1p1beta1Page) UnmarshalJSON(data []byte) error {
2791	type NoMethod GoogleCloudVisionV1p1beta1Page
2792	var s1 struct {
2793		Confidence gensupport.JSONFloat64 `json:"confidence"`
2794		*NoMethod
2795	}
2796	s1.NoMethod = (*NoMethod)(s)
2797	if err := json.Unmarshal(data, &s1); err != nil {
2798		return err
2799	}
2800	s.Confidence = float64(s1.Confidence)
2801	return nil
2802}
2803
2804// GoogleCloudVisionV1p1beta1Paragraph: Structural unit of text
2805// representing a number of words in certain order.
2806type GoogleCloudVisionV1p1beta1Paragraph struct {
2807	// BoundingBox: The bounding box for the paragraph.
2808	// The vertices are in the order of top-left, top-right,
2809	// bottom-right,
2810	// bottom-left. When a rotation of the bounding box is detected the
2811	// rotation
2812	// is represented as around the top-left corner as defined when the text
2813	// is
2814	// read in the 'natural' orientation.
2815	// For example:
2816	//   * when the text is horizontal it might look like:
2817	//      0----1
2818	//      |    |
2819	//      3----2
2820	//   * when it's rotated 180 degrees around the top-left corner it
2821	// becomes:
2822	//      2----3
2823	//      |    |
2824	//      1----0
2825	//   and the vertex order will still be (0, 1, 2, 3).
2826	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
2827
2828	// Confidence: Confidence of the OCR results for the paragraph. Range
2829	// [0, 1].
2830	Confidence float64 `json:"confidence,omitempty"`
2831
2832	// Property: Additional information detected for the paragraph.
2833	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2834
2835	// Words: List of words in this paragraph.
2836	Words []*GoogleCloudVisionV1p1beta1Word `json:"words,omitempty"`
2837
2838	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
2839	// unconditionally include in API requests. By default, fields with
2840	// empty values are omitted from API requests. However, any non-pointer,
2841	// non-interface field appearing in ForceSendFields will be sent to the
2842	// server regardless of whether the field is empty or not. This may be
2843	// used to include empty fields in Patch requests.
2844	ForceSendFields []string `json:"-"`
2845
2846	// NullFields is a list of field names (e.g. "BoundingBox") to include
2847	// in API requests with the JSON null value. By default, fields with
2848	// empty values are omitted from API requests. However, any field with
2849	// an empty value appearing in NullFields will be sent to the server as
2850	// null. It is an error if a field in this list has a non-empty value.
2851	// This may be used to include null fields in Patch requests.
2852	NullFields []string `json:"-"`
2853}
2854
2855func (s *GoogleCloudVisionV1p1beta1Paragraph) MarshalJSON() ([]byte, error) {
2856	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
2857	raw := NoMethod(*s)
2858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2859}
2860
2861func (s *GoogleCloudVisionV1p1beta1Paragraph) UnmarshalJSON(data []byte) error {
2862	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
2863	var s1 struct {
2864		Confidence gensupport.JSONFloat64 `json:"confidence"`
2865		*NoMethod
2866	}
2867	s1.NoMethod = (*NoMethod)(s)
2868	if err := json.Unmarshal(data, &s1); err != nil {
2869		return err
2870	}
2871	s.Confidence = float64(s1.Confidence)
2872	return nil
2873}
2874
2875// GoogleCloudVisionV1p1beta1Position: A 3D position in the image, used
2876// primarily for Face detection landmarks.
2877// A valid Position must have both x and y coordinates.
2878// The position coordinates are in the same scale as the original image.
2879type GoogleCloudVisionV1p1beta1Position struct {
2880	// X: X coordinate.
2881	X float64 `json:"x,omitempty"`
2882
2883	// Y: Y coordinate.
2884	Y float64 `json:"y,omitempty"`
2885
2886	// Z: Z coordinate (or depth).
2887	Z float64 `json:"z,omitempty"`
2888
2889	// ForceSendFields is a list of field names (e.g. "X") to
2890	// unconditionally include in API requests. By default, fields with
2891	// empty values are omitted from API requests. However, any non-pointer,
2892	// non-interface field appearing in ForceSendFields will be sent to the
2893	// server regardless of whether the field is empty or not. This may be
2894	// used to include empty fields in Patch requests.
2895	ForceSendFields []string `json:"-"`
2896
2897	// NullFields is a list of field names (e.g. "X") to include in API
2898	// requests with the JSON null value. By default, fields with empty
2899	// values are omitted from API requests. However, any field with an
2900	// empty value appearing in NullFields will be sent to the server as
2901	// null. It is an error if a field in this list has a non-empty value.
2902	// This may be used to include null fields in Patch requests.
2903	NullFields []string `json:"-"`
2904}
2905
2906func (s *GoogleCloudVisionV1p1beta1Position) MarshalJSON() ([]byte, error) {
2907	type NoMethod GoogleCloudVisionV1p1beta1Position
2908	raw := NoMethod(*s)
2909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2910}
2911
2912func (s *GoogleCloudVisionV1p1beta1Position) UnmarshalJSON(data []byte) error {
2913	type NoMethod GoogleCloudVisionV1p1beta1Position
2914	var s1 struct {
2915		X gensupport.JSONFloat64 `json:"x"`
2916		Y gensupport.JSONFloat64 `json:"y"`
2917		Z gensupport.JSONFloat64 `json:"z"`
2918		*NoMethod
2919	}
2920	s1.NoMethod = (*NoMethod)(s)
2921	if err := json.Unmarshal(data, &s1); err != nil {
2922		return err
2923	}
2924	s.X = float64(s1.X)
2925	s.Y = float64(s1.Y)
2926	s.Z = float64(s1.Z)
2927	return nil
2928}
2929
2930// GoogleCloudVisionV1p1beta1Product: A Product contains
2931// ReferenceImages.
2932type GoogleCloudVisionV1p1beta1Product struct {
2933	// Description: User-provided metadata to be stored with this product.
2934	// Must be at most 4096
2935	// characters long.
2936	Description string `json:"description,omitempty"`
2937
2938	// DisplayName: The user-provided name for this Product. Must not be
2939	// empty. Must be at most
2940	// 4096 characters long.
2941	DisplayName string `json:"displayName,omitempty"`
2942
2943	// Name: The resource name of the product.
2944	//
2945	// Format
2946	// is:
2947	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
2948	//
2949	// This field is ignored when creating a product.
2950	Name string `json:"name,omitempty"`
2951
2952	// ProductCategory: The category for the product identified by the
2953	// reference image. This should
2954	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
2955	// categories
2956	// "homegoods", "apparel", and "toys" are still supported, but these
2957	// should
2958	// not be used for new products.
2959	//
2960	// This field is immutable.
2961	ProductCategory string `json:"productCategory,omitempty"`
2962
2963	// ProductLabels: Key-value pairs that can be attached to a product. At
2964	// query time,
2965	// constraints can be specified based on the product_labels.
2966	//
2967	// Note that integer values can be provided as strings, e.g. "1199".
2968	// Only
2969	// strings with integer values can match a range-based restriction which
2970	// is
2971	// to be supported soon.
2972	//
2973	// Multiple values can be assigned to the same key. One product may have
2974	// up to
2975	// 100 product_labels.
2976	ProductLabels []*GoogleCloudVisionV1p1beta1ProductKeyValue `json:"productLabels,omitempty"`
2977
2978	// ForceSendFields is a list of field names (e.g. "Description") to
2979	// unconditionally include in API requests. By default, fields with
2980	// empty values are omitted from API requests. However, any non-pointer,
2981	// non-interface field appearing in ForceSendFields will be sent to the
2982	// server regardless of whether the field is empty or not. This may be
2983	// used to include empty fields in Patch requests.
2984	ForceSendFields []string `json:"-"`
2985
2986	// NullFields is a list of field names (e.g. "Description") to include
2987	// in API requests with the JSON null value. By default, fields with
2988	// empty values are omitted from API requests. However, any field with
2989	// an empty value appearing in NullFields will be sent to the server as
2990	// null. It is an error if a field in this list has a non-empty value.
2991	// This may be used to include null fields in Patch requests.
2992	NullFields []string `json:"-"`
2993}
2994
2995func (s *GoogleCloudVisionV1p1beta1Product) MarshalJSON() ([]byte, error) {
2996	type NoMethod GoogleCloudVisionV1p1beta1Product
2997	raw := NoMethod(*s)
2998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2999}
3000
3001// GoogleCloudVisionV1p1beta1ProductKeyValue: A product label
3002// represented as a key-value pair.
3003type GoogleCloudVisionV1p1beta1ProductKeyValue struct {
3004	// Key: The key of the label attached to the product. Cannot be empty
3005	// and cannot
3006	// exceed 128 bytes.
3007	Key string `json:"key,omitempty"`
3008
3009	// Value: The value of the label attached to the product. Cannot be
3010	// empty and
3011	// cannot exceed 128 bytes.
3012	Value string `json:"value,omitempty"`
3013
3014	// ForceSendFields is a list of field names (e.g. "Key") to
3015	// unconditionally include in API requests. By default, fields with
3016	// empty values are omitted from API requests. However, any non-pointer,
3017	// non-interface field appearing in ForceSendFields will be sent to the
3018	// server regardless of whether the field is empty or not. This may be
3019	// used to include empty fields in Patch requests.
3020	ForceSendFields []string `json:"-"`
3021
3022	// NullFields is a list of field names (e.g. "Key") to include in API
3023	// requests with the JSON null value. By default, fields with empty
3024	// values are omitted from API requests. However, any field with an
3025	// empty value appearing in NullFields will be sent to the server as
3026	// null. It is an error if a field in this list has a non-empty value.
3027	// This may be used to include null fields in Patch requests.
3028	NullFields []string `json:"-"`
3029}
3030
3031func (s *GoogleCloudVisionV1p1beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
3032	type NoMethod GoogleCloudVisionV1p1beta1ProductKeyValue
3033	raw := NoMethod(*s)
3034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3035}
3036
3037// GoogleCloudVisionV1p1beta1ProductSearchResults: Results for a product
3038// search request.
3039type GoogleCloudVisionV1p1beta1ProductSearchResults struct {
3040	// IndexTime: Timestamp of the index which provided these results.
3041	// Products added to the
3042	// product set and products removed from the product set after this time
3043	// are
3044	// not reflected in the current results.
3045	IndexTime string `json:"indexTime,omitempty"`
3046
3047	// ProductGroupedResults: List of results grouped by products detected
3048	// in the query image. Each entry
3049	// corresponds to one bounding polygon in the query image, and contains
3050	// the
3051	// matching products specific to that region. There may be duplicate
3052	// product
3053	// matches in the union of all the per-product results.
3054	ProductGroupedResults []*GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
3055
3056	// Results: List of results, one for each product match.
3057	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3058
3059	// ForceSendFields is a list of field names (e.g. "IndexTime") to
3060	// unconditionally include in API requests. By default, fields with
3061	// empty values are omitted from API requests. However, any non-pointer,
3062	// non-interface field appearing in ForceSendFields will be sent to the
3063	// server regardless of whether the field is empty or not. This may be
3064	// used to include empty fields in Patch requests.
3065	ForceSendFields []string `json:"-"`
3066
3067	// NullFields is a list of field names (e.g. "IndexTime") to include in
3068	// API requests with the JSON null value. By default, fields with empty
3069	// values are omitted from API requests. However, any field with an
3070	// empty value appearing in NullFields will be sent to the server as
3071	// null. It is an error if a field in this list has a non-empty value.
3072	// This may be used to include null fields in Patch requests.
3073	NullFields []string `json:"-"`
3074}
3075
3076func (s *GoogleCloudVisionV1p1beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
3077	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResults
3078	raw := NoMethod(*s)
3079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3080}
3081
3082// GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult:
3083// Information about the products similar to a single product in a
3084// query
3085// image.
3086type GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult struct {
3087	// BoundingPoly: The bounding polygon around the product detected in the
3088	// query image.
3089	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3090
3091	// Results: List of results, one for each product match.
3092	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3093
3094	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3095	// unconditionally include in API requests. By default, fields with
3096	// empty values are omitted from API requests. However, any non-pointer,
3097	// non-interface field appearing in ForceSendFields will be sent to the
3098	// server regardless of whether the field is empty or not. This may be
3099	// used to include empty fields in Patch requests.
3100	ForceSendFields []string `json:"-"`
3101
3102	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3103	// in API requests with the JSON null value. By default, fields with
3104	// empty values are omitted from API requests. However, any field with
3105	// an empty value appearing in NullFields will be sent to the server as
3106	// null. It is an error if a field in this list has a non-empty value.
3107	// This may be used to include null fields in Patch requests.
3108	NullFields []string `json:"-"`
3109}
3110
3111func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
3112	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult
3113	raw := NoMethod(*s)
3114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3115}
3116
3117// GoogleCloudVisionV1p1beta1ProductSearchResultsResult: Information
3118// about a product.
3119type GoogleCloudVisionV1p1beta1ProductSearchResultsResult struct {
3120	// Image: The resource name of the image from the product that is the
3121	// closest match
3122	// to the query.
3123	Image string `json:"image,omitempty"`
3124
3125	// Product: The Product.
3126	Product *GoogleCloudVisionV1p1beta1Product `json:"product,omitempty"`
3127
3128	// Score: A confidence level on the match, ranging from 0 (no
3129	// confidence) to
3130	// 1 (full confidence).
3131	Score float64 `json:"score,omitempty"`
3132
3133	// ForceSendFields is a list of field names (e.g. "Image") to
3134	// unconditionally include in API requests. By default, fields with
3135	// empty values are omitted from API requests. However, any non-pointer,
3136	// non-interface field appearing in ForceSendFields will be sent to the
3137	// server regardless of whether the field is empty or not. This may be
3138	// used to include empty fields in Patch requests.
3139	ForceSendFields []string `json:"-"`
3140
3141	// NullFields is a list of field names (e.g. "Image") to include in API
3142	// requests with the JSON null value. By default, fields with empty
3143	// values are omitted from API requests. However, any field with an
3144	// empty value appearing in NullFields will be sent to the server as
3145	// null. It is an error if a field in this list has a non-empty value.
3146	// This may be used to include null fields in Patch requests.
3147	NullFields []string `json:"-"`
3148}
3149
3150func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
3151	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3152	raw := NoMethod(*s)
3153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3154}
3155
3156func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
3157	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3158	var s1 struct {
3159		Score gensupport.JSONFloat64 `json:"score"`
3160		*NoMethod
3161	}
3162	s1.NoMethod = (*NoMethod)(s)
3163	if err := json.Unmarshal(data, &s1); err != nil {
3164		return err
3165	}
3166	s.Score = float64(s1.Score)
3167	return nil
3168}
3169
3170// GoogleCloudVisionV1p1beta1Property: A `Property` consists of a
3171// user-supplied name/value pair.
3172type GoogleCloudVisionV1p1beta1Property struct {
3173	// Name: Name of the property.
3174	Name string `json:"name,omitempty"`
3175
3176	// Uint64Value: Value of numeric properties.
3177	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
3178
3179	// Value: Value of the property.
3180	Value string `json:"value,omitempty"`
3181
3182	// ForceSendFields is a list of field names (e.g. "Name") to
3183	// unconditionally include in API requests. By default, fields with
3184	// empty values are omitted from API requests. However, any non-pointer,
3185	// non-interface field appearing in ForceSendFields will be sent to the
3186	// server regardless of whether the field is empty or not. This may be
3187	// used to include empty fields in Patch requests.
3188	ForceSendFields []string `json:"-"`
3189
3190	// NullFields is a list of field names (e.g. "Name") to include in API
3191	// requests with the JSON null value. By default, fields with empty
3192	// values are omitted from API requests. However, any field with an
3193	// empty value appearing in NullFields will be sent to the server as
3194	// null. It is an error if a field in this list has a non-empty value.
3195	// This may be used to include null fields in Patch requests.
3196	NullFields []string `json:"-"`
3197}
3198
3199func (s *GoogleCloudVisionV1p1beta1Property) MarshalJSON() ([]byte, error) {
3200	type NoMethod GoogleCloudVisionV1p1beta1Property
3201	raw := NoMethod(*s)
3202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3203}
3204
3205// GoogleCloudVisionV1p1beta1SafeSearchAnnotation: Set of features
3206// pertaining to the image, computed by computer vision
3207// methods over safe-search verticals (for example, adult, spoof,
3208// medical,
3209// violence).
3210type GoogleCloudVisionV1p1beta1SafeSearchAnnotation struct {
3211	// Adult: Represents the adult content likelihood for the image. Adult
3212	// content may
3213	// contain elements such as nudity, pornographic images or cartoons,
3214	// or
3215	// sexual activities.
3216	//
3217	// Possible values:
3218	//   "UNKNOWN" - Unknown likelihood.
3219	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
3220	// specified vertical.
3221	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
3222	// vertical.
3223	//   "POSSIBLE" - It is possible that the image belongs to the specified
3224	// vertical.
3225	//   "LIKELY" - It is likely that the image belongs to the specified
3226	// vertical.
3227	//   "VERY_LIKELY" - It is very likely that the image belongs to the
3228	// specified vertical.
3229	Adult string `json:"adult,omitempty"`
3230
3231	// Medical: Likelihood that this is a medical image.
3232	//
3233	// Possible values:
3234	//   "UNKNOWN" - Unknown likelihood.
3235	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
3236	// specified vertical.
3237	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
3238	// vertical.
3239	//   "POSSIBLE" - It is possible that the image belongs to the specified
3240	// vertical.
3241	//   "LIKELY" - It is likely that the image belongs to the specified
3242	// vertical.
3243	//   "VERY_LIKELY" - It is very likely that the image belongs to the
3244	// specified vertical.
3245	Medical string `json:"medical,omitempty"`
3246
3247	// Racy: Likelihood that the request image contains racy content. Racy
3248	// content may
3249	// include (but is not limited to) skimpy or sheer clothing,
3250	// strategically
3251	// covered nudity, lewd or provocative poses, or close-ups of
3252	// sensitive
3253	// body areas.
3254	//
3255	// Possible values:
3256	//   "UNKNOWN" - Unknown likelihood.
3257	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
3258	// specified vertical.
3259	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
3260	// vertical.
3261	//   "POSSIBLE" - It is possible that the image belongs to the specified
3262	// vertical.
3263	//   "LIKELY" - It is likely that the image belongs to the specified
3264	// vertical.
3265	//   "VERY_LIKELY" - It is very likely that the image belongs to the
3266	// specified vertical.
3267	Racy string `json:"racy,omitempty"`
3268
3269	// Spoof: Spoof likelihood. The likelihood that an modification
3270	// was made to the image's canonical version to make it appear
3271	// funny or offensive.
3272	//
3273	// Possible values:
3274	//   "UNKNOWN" - Unknown likelihood.
3275	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
3276	// specified vertical.
3277	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
3278	// vertical.
3279	//   "POSSIBLE" - It is possible that the image belongs to the specified
3280	// vertical.
3281	//   "LIKELY" - It is likely that the image belongs to the specified
3282	// vertical.
3283	//   "VERY_LIKELY" - It is very likely that the image belongs to the
3284	// specified vertical.
3285	Spoof string `json:"spoof,omitempty"`
3286
3287	// Violence: Likelihood that this image contains violent content.
3288	//
3289	// Possible values:
3290	//   "UNKNOWN" - Unknown likelihood.
3291	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
3292	// specified vertical.
3293	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
3294	// vertical.
3295	//   "POSSIBLE" - It is possible that the image belongs to the specified
3296	// vertical.
3297	//   "LIKELY" - It is likely that the image belongs to the specified
3298	// vertical.
3299	//   "VERY_LIKELY" - It is very likely that the image belongs to the
3300	// specified vertical.
3301	Violence string `json:"violence,omitempty"`
3302
3303	// ForceSendFields is a list of field names (e.g. "Adult") to
3304	// unconditionally include in API requests. By default, fields with
3305	// empty values are omitted from API requests. However, any non-pointer,
3306	// non-interface field appearing in ForceSendFields will be sent to the
3307	// server regardless of whether the field is empty or not. This may be
3308	// used to include empty fields in Patch requests.
3309	ForceSendFields []string `json:"-"`
3310
3311	// NullFields is a list of field names (e.g. "Adult") to include in API
3312	// requests with the JSON null value. By default, fields with empty
3313	// values are omitted from API requests. However, any field with an
3314	// empty value appearing in NullFields will be sent to the server as
3315	// null. It is an error if a field in this list has a non-empty value.
3316	// This may be used to include null fields in Patch requests.
3317	NullFields []string `json:"-"`
3318}
3319
3320func (s *GoogleCloudVisionV1p1beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
3321	type NoMethod GoogleCloudVisionV1p1beta1SafeSearchAnnotation
3322	raw := NoMethod(*s)
3323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3324}
3325
3326// GoogleCloudVisionV1p1beta1Symbol: A single symbol representation.
3327type GoogleCloudVisionV1p1beta1Symbol struct {
3328	// BoundingBox: The bounding box for the symbol.
3329	// The vertices are in the order of top-left, top-right,
3330	// bottom-right,
3331	// bottom-left. When a rotation of the bounding box is detected the
3332	// rotation
3333	// is represented as around the top-left corner as defined when the text
3334	// is
3335	// read in the 'natural' orientation.
3336	// For example:
3337	//   * when the text is horizontal it might look like:
3338	//      0----1
3339	//      |    |
3340	//      3----2
3341	//   * when it's rotated 180 degrees around the top-left corner it
3342	// becomes:
3343	//      2----3
3344	//      |    |
3345	//      1----0
3346	//   and the vertice order will still be (0, 1, 2, 3).
3347	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3348
3349	// Confidence: Confidence of the OCR results for the symbol. Range [0,
3350	// 1].
3351	Confidence float64 `json:"confidence,omitempty"`
3352
3353	// Property: Additional information detected for the symbol.
3354	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3355
3356	// Text: The actual UTF-8 representation of the symbol.
3357	Text string `json:"text,omitempty"`
3358
3359	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3360	// unconditionally include in API requests. By default, fields with
3361	// empty values are omitted from API requests. However, any non-pointer,
3362	// non-interface field appearing in ForceSendFields will be sent to the
3363	// server regardless of whether the field is empty or not. This may be
3364	// used to include empty fields in Patch requests.
3365	ForceSendFields []string `json:"-"`
3366
3367	// NullFields is a list of field names (e.g. "BoundingBox") to include
3368	// in API requests with the JSON null value. By default, fields with
3369	// empty values are omitted from API requests. However, any field with
3370	// an empty value appearing in NullFields will be sent to the server as
3371	// null. It is an error if a field in this list has a non-empty value.
3372	// This may be used to include null fields in Patch requests.
3373	NullFields []string `json:"-"`
3374}
3375
3376func (s *GoogleCloudVisionV1p1beta1Symbol) MarshalJSON() ([]byte, error) {
3377	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3378	raw := NoMethod(*s)
3379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3380}
3381
3382func (s *GoogleCloudVisionV1p1beta1Symbol) UnmarshalJSON(data []byte) error {
3383	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3384	var s1 struct {
3385		Confidence gensupport.JSONFloat64 `json:"confidence"`
3386		*NoMethod
3387	}
3388	s1.NoMethod = (*NoMethod)(s)
3389	if err := json.Unmarshal(data, &s1); err != nil {
3390		return err
3391	}
3392	s.Confidence = float64(s1.Confidence)
3393	return nil
3394}
3395
3396// GoogleCloudVisionV1p1beta1TextAnnotation: TextAnnotation contains a
3397// structured representation of OCR extracted text.
3398// The hierarchy of an OCR extracted text structure is like this:
3399//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
3400// Symbol
3401// Each structural component, starting from Page, may further have their
3402// own
3403// properties. Properties describe detected languages, breaks etc..
3404// Please refer
3405// to the TextAnnotation.TextProperty message definition below for
3406// more
3407// detail.
3408type GoogleCloudVisionV1p1beta1TextAnnotation struct {
3409	// Pages: List of pages detected by OCR.
3410	Pages []*GoogleCloudVisionV1p1beta1Page `json:"pages,omitempty"`
3411
3412	// Text: UTF-8 text detected on the pages.
3413	Text string `json:"text,omitempty"`
3414
3415	// ForceSendFields is a list of field names (e.g. "Pages") to
3416	// unconditionally include in API requests. By default, fields with
3417	// empty values are omitted from API requests. However, any non-pointer,
3418	// non-interface field appearing in ForceSendFields will be sent to the
3419	// server regardless of whether the field is empty or not. This may be
3420	// used to include empty fields in Patch requests.
3421	ForceSendFields []string `json:"-"`
3422
3423	// NullFields is a list of field names (e.g. "Pages") to include in API
3424	// requests with the JSON null value. By default, fields with empty
3425	// values are omitted from API requests. However, any field with an
3426	// empty value appearing in NullFields will be sent to the server as
3427	// null. It is an error if a field in this list has a non-empty value.
3428	// This may be used to include null fields in Patch requests.
3429	NullFields []string `json:"-"`
3430}
3431
3432func (s *GoogleCloudVisionV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
3433	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotation
3434	raw := NoMethod(*s)
3435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3436}
3437
3438// GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak: Detected start
3439// or end of a structural component.
3440type GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak struct {
3441	// IsPrefix: True if break prepends the element.
3442	IsPrefix bool `json:"isPrefix,omitempty"`
3443
3444	// Type: Detected break type.
3445	//
3446	// Possible values:
3447	//   "UNKNOWN" - Unknown break label type.
3448	//   "SPACE" - Regular space.
3449	//   "SURE_SPACE" - Sure space (very wide).
3450	//   "EOL_SURE_SPACE" - Line-wrapping break.
3451	//   "HYPHEN" - End-line hyphen that is not present in text; does not
3452	// co-occur with
3453	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
3454	//   "LINE_BREAK" - Line break that ends a paragraph.
3455	Type string `json:"type,omitempty"`
3456
3457	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
3458	// unconditionally include in API requests. By default, fields with
3459	// empty values are omitted from API requests. However, any non-pointer,
3460	// non-interface field appearing in ForceSendFields will be sent to the
3461	// server regardless of whether the field is empty or not. This may be
3462	// used to include empty fields in Patch requests.
3463	ForceSendFields []string `json:"-"`
3464
3465	// NullFields is a list of field names (e.g. "IsPrefix") to include in
3466	// API requests with the JSON null value. By default, fields with empty
3467	// values are omitted from API requests. However, any field with an
3468	// empty value appearing in NullFields will be sent to the server as
3469	// null. It is an error if a field in this list has a non-empty value.
3470	// This may be used to include null fields in Patch requests.
3471	NullFields []string `json:"-"`
3472}
3473
3474func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
3475	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak
3476	raw := NoMethod(*s)
3477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3478}
3479
3480// GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage: Detected
3481// language for a structural component.
3482type GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage struct {
3483	// Confidence: Confidence of detected language. Range [0, 1].
3484	Confidence float64 `json:"confidence,omitempty"`
3485
3486	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3487	// For more
3488	// information,
3489	// see
3490	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3491	LanguageCode string `json:"languageCode,omitempty"`
3492
3493	// ForceSendFields is a list of field names (e.g. "Confidence") to
3494	// unconditionally include in API requests. By default, fields with
3495	// empty values are omitted from API requests. However, any non-pointer,
3496	// non-interface field appearing in ForceSendFields will be sent to the
3497	// server regardless of whether the field is empty or not. This may be
3498	// used to include empty fields in Patch requests.
3499	ForceSendFields []string `json:"-"`
3500
3501	// NullFields is a list of field names (e.g. "Confidence") to include in
3502	// API requests with the JSON null value. By default, fields with empty
3503	// values are omitted from API requests. However, any field with an
3504	// empty value appearing in NullFields will be sent to the server as
3505	// null. It is an error if a field in this list has a non-empty value.
3506	// This may be used to include null fields in Patch requests.
3507	NullFields []string `json:"-"`
3508}
3509
3510func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
3511	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3512	raw := NoMethod(*s)
3513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3514}
3515
3516func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
3517	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3518	var s1 struct {
3519		Confidence gensupport.JSONFloat64 `json:"confidence"`
3520		*NoMethod
3521	}
3522	s1.NoMethod = (*NoMethod)(s)
3523	if err := json.Unmarshal(data, &s1); err != nil {
3524		return err
3525	}
3526	s.Confidence = float64(s1.Confidence)
3527	return nil
3528}
3529
3530// GoogleCloudVisionV1p1beta1TextAnnotationTextProperty: Additional
3531// information detected on the structural component.
3532type GoogleCloudVisionV1p1beta1TextAnnotationTextProperty struct {
3533	// DetectedBreak: Detected start or end of a text segment.
3534	DetectedBreak *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
3535
3536	// DetectedLanguages: A list of detected languages together with
3537	// confidence.
3538	DetectedLanguages []*GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
3539
3540	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
3541	// unconditionally include in API requests. By default, fields with
3542	// empty values are omitted from API requests. However, any non-pointer,
3543	// non-interface field appearing in ForceSendFields will be sent to the
3544	// server regardless of whether the field is empty or not. This may be
3545	// used to include empty fields in Patch requests.
3546	ForceSendFields []string `json:"-"`
3547
3548	// NullFields is a list of field names (e.g. "DetectedBreak") to include
3549	// in API requests with the JSON null value. By default, fields with
3550	// empty values are omitted from API requests. However, any field with
3551	// an empty value appearing in NullFields will be sent to the server as
3552	// null. It is an error if a field in this list has a non-empty value.
3553	// This may be used to include null fields in Patch requests.
3554	NullFields []string `json:"-"`
3555}
3556
3557func (s *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
3558	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationTextProperty
3559	raw := NoMethod(*s)
3560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3561}
3562
3563// GoogleCloudVisionV1p1beta1Vertex: A vertex represents a 2D point in
3564// the image.
3565// NOTE: the vertex coordinates are in the same scale as the original
3566// image.
3567type GoogleCloudVisionV1p1beta1Vertex struct {
3568	// X: X coordinate.
3569	X int64 `json:"x,omitempty"`
3570
3571	// Y: Y coordinate.
3572	Y int64 `json:"y,omitempty"`
3573
3574	// ForceSendFields is a list of field names (e.g. "X") to
3575	// unconditionally include in API requests. By default, fields with
3576	// empty values are omitted from API requests. However, any non-pointer,
3577	// non-interface field appearing in ForceSendFields will be sent to the
3578	// server regardless of whether the field is empty or not. This may be
3579	// used to include empty fields in Patch requests.
3580	ForceSendFields []string `json:"-"`
3581
3582	// NullFields is a list of field names (e.g. "X") to include in API
3583	// requests with the JSON null value. By default, fields with empty
3584	// values are omitted from API requests. However, any field with an
3585	// empty value appearing in NullFields will be sent to the server as
3586	// null. It is an error if a field in this list has a non-empty value.
3587	// This may be used to include null fields in Patch requests.
3588	NullFields []string `json:"-"`
3589}
3590
3591func (s *GoogleCloudVisionV1p1beta1Vertex) MarshalJSON() ([]byte, error) {
3592	type NoMethod GoogleCloudVisionV1p1beta1Vertex
3593	raw := NoMethod(*s)
3594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3595}
3596
3597// GoogleCloudVisionV1p1beta1WebDetection: Relevant information for the
3598// image from the Internet.
3599type GoogleCloudVisionV1p1beta1WebDetection struct {
3600	// BestGuessLabels: The service's best guess as to the topic of the
3601	// request image.
3602	// Inferred from similar images on the open web.
3603	BestGuessLabels []*GoogleCloudVisionV1p1beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
3604
3605	// FullMatchingImages: Fully matching images from the Internet.
3606	// Can include resized copies of the query image.
3607	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
3608
3609	// PagesWithMatchingImages: Web pages containing the matching images
3610	// from the Internet.
3611	PagesWithMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
3612
3613	// PartialMatchingImages: Partial matching images from the
3614	// Internet.
3615	// Those images are similar enough to share some key-point features.
3616	// For
3617	// example an original image will likely have partial matching for its
3618	// crops.
3619	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
3620
3621	// VisuallySimilarImages: The visually similar image results.
3622	VisuallySimilarImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
3623
3624	// WebEntities: Deduced entities from similar images on the Internet.
3625	WebEntities []*GoogleCloudVisionV1p1beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
3626
3627	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
3628	// unconditionally include in API requests. By default, fields with
3629	// empty values are omitted from API requests. However, any non-pointer,
3630	// non-interface field appearing in ForceSendFields will be sent to the
3631	// server regardless of whether the field is empty or not. This may be
3632	// used to include empty fields in Patch requests.
3633	ForceSendFields []string `json:"-"`
3634
3635	// NullFields is a list of field names (e.g. "BestGuessLabels") to
3636	// include in API requests with the JSON null value. By default, fields
3637	// with empty values are omitted from API requests. However, any field
3638	// with an empty value appearing in NullFields will be sent to the
3639	// server as null. It is an error if a field in this list has a
3640	// non-empty value. This may be used to include null fields in Patch
3641	// requests.
3642	NullFields []string `json:"-"`
3643}
3644
3645func (s *GoogleCloudVisionV1p1beta1WebDetection) MarshalJSON() ([]byte, error) {
3646	type NoMethod GoogleCloudVisionV1p1beta1WebDetection
3647	raw := NoMethod(*s)
3648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3649}
3650
3651// GoogleCloudVisionV1p1beta1WebDetectionWebEntity: Entity deduced from
3652// similar images on the Internet.
3653type GoogleCloudVisionV1p1beta1WebDetectionWebEntity struct {
3654	// Description: Canonical description of the entity, in English.
3655	Description string `json:"description,omitempty"`
3656
3657	// EntityId: Opaque entity ID.
3658	EntityId string `json:"entityId,omitempty"`
3659
3660	// Score: Overall relevancy score for the entity.
3661	// Not normalized and not comparable across different image queries.
3662	Score float64 `json:"score,omitempty"`
3663
3664	// ForceSendFields is a list of field names (e.g. "Description") to
3665	// unconditionally include in API requests. By default, fields with
3666	// empty values are omitted from API requests. However, any non-pointer,
3667	// non-interface field appearing in ForceSendFields will be sent to the
3668	// server regardless of whether the field is empty or not. This may be
3669	// used to include empty fields in Patch requests.
3670	ForceSendFields []string `json:"-"`
3671
3672	// NullFields is a list of field names (e.g. "Description") to include
3673	// in API requests with the JSON null value. By default, fields with
3674	// empty values are omitted from API requests. However, any field with
3675	// an empty value appearing in NullFields will be sent to the server as
3676	// null. It is an error if a field in this list has a non-empty value.
3677	// This may be used to include null fields in Patch requests.
3678	NullFields []string `json:"-"`
3679}
3680
3681func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
3682	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3683	raw := NoMethod(*s)
3684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3685}
3686
3687func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
3688	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3689	var s1 struct {
3690		Score gensupport.JSONFloat64 `json:"score"`
3691		*NoMethod
3692	}
3693	s1.NoMethod = (*NoMethod)(s)
3694	if err := json.Unmarshal(data, &s1); err != nil {
3695		return err
3696	}
3697	s.Score = float64(s1.Score)
3698	return nil
3699}
3700
3701// GoogleCloudVisionV1p1beta1WebDetectionWebImage: Metadata for online
3702// images.
3703type GoogleCloudVisionV1p1beta1WebDetectionWebImage struct {
3704	// Score: (Deprecated) Overall relevancy score for the image.
3705	Score float64 `json:"score,omitempty"`
3706
3707	// Url: The result image URL.
3708	Url string `json:"url,omitempty"`
3709
3710	// ForceSendFields is a list of field names (e.g. "Score") to
3711	// unconditionally include in API requests. By default, fields with
3712	// empty values are omitted from API requests. However, any non-pointer,
3713	// non-interface field appearing in ForceSendFields will be sent to the
3714	// server regardless of whether the field is empty or not. This may be
3715	// used to include empty fields in Patch requests.
3716	ForceSendFields []string `json:"-"`
3717
3718	// NullFields is a list of field names (e.g. "Score") to include in API
3719	// requests with the JSON null value. By default, fields with empty
3720	// values are omitted from API requests. However, any field with an
3721	// empty value appearing in NullFields will be sent to the server as
3722	// null. It is an error if a field in this list has a non-empty value.
3723	// This may be used to include null fields in Patch requests.
3724	NullFields []string `json:"-"`
3725}
3726
3727func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
3728	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
3729	raw := NoMethod(*s)
3730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3731}
3732
3733func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
3734	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
3735	var s1 struct {
3736		Score gensupport.JSONFloat64 `json:"score"`
3737		*NoMethod
3738	}
3739	s1.NoMethod = (*NoMethod)(s)
3740	if err := json.Unmarshal(data, &s1); err != nil {
3741		return err
3742	}
3743	s.Score = float64(s1.Score)
3744	return nil
3745}
3746
3747// GoogleCloudVisionV1p1beta1WebDetectionWebLabel: Label to provide
3748// extra metadata for the web detection.
3749type GoogleCloudVisionV1p1beta1WebDetectionWebLabel struct {
3750	// Label: Label for extra metadata.
3751	Label string `json:"label,omitempty"`
3752
3753	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
3754	// or "sr-Latn".
3755	// For more information,
3756	// see
3757	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3758	LanguageCode string `json:"languageCode,omitempty"`
3759
3760	// ForceSendFields is a list of field names (e.g. "Label") to
3761	// unconditionally include in API requests. By default, fields with
3762	// empty values are omitted from API requests. However, any non-pointer,
3763	// non-interface field appearing in ForceSendFields will be sent to the
3764	// server regardless of whether the field is empty or not. This may be
3765	// used to include empty fields in Patch requests.
3766	ForceSendFields []string `json:"-"`
3767
3768	// NullFields is a list of field names (e.g. "Label") to include in API
3769	// requests with the JSON null value. By default, fields with empty
3770	// values are omitted from API requests. However, any field with an
3771	// empty value appearing in NullFields will be sent to the server as
3772	// null. It is an error if a field in this list has a non-empty value.
3773	// This may be used to include null fields in Patch requests.
3774	NullFields []string `json:"-"`
3775}
3776
3777func (s *GoogleCloudVisionV1p1beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
3778	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebLabel
3779	raw := NoMethod(*s)
3780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3781}
3782
3783// GoogleCloudVisionV1p1beta1WebDetectionWebPage: Metadata for web
3784// pages.
3785type GoogleCloudVisionV1p1beta1WebDetectionWebPage struct {
3786	// FullMatchingImages: Fully matching images on the page.
3787	// Can include resized copies of the query image.
3788	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
3789
3790	// PageTitle: Title for the web page, may contain HTML markups.
3791	PageTitle string `json:"pageTitle,omitempty"`
3792
3793	// PartialMatchingImages: Partial matching images on the page.
3794	// Those images are similar enough to share some key-point features.
3795	// For
3796	// example an original image will likely have partial matching for
3797	// its
3798	// crops.
3799	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
3800
3801	// Score: (Deprecated) Overall relevancy score for the web page.
3802	Score float64 `json:"score,omitempty"`
3803
3804	// Url: The result web page URL.
3805	Url string `json:"url,omitempty"`
3806
3807	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
3808	// to unconditionally include in API requests. By default, fields with
3809	// empty values are omitted from API requests. However, any non-pointer,
3810	// non-interface field appearing in ForceSendFields will be sent to the
3811	// server regardless of whether the field is empty or not. This may be
3812	// used to include empty fields in Patch requests.
3813	ForceSendFields []string `json:"-"`
3814
3815	// NullFields is a list of field names (e.g. "FullMatchingImages") to
3816	// include in API requests with the JSON null value. By default, fields
3817	// with empty values are omitted from API requests. However, any field
3818	// with an empty value appearing in NullFields will be sent to the
3819	// server as null. It is an error if a field in this list has a
3820	// non-empty value. This may be used to include null fields in Patch
3821	// requests.
3822	NullFields []string `json:"-"`
3823}
3824
3825func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
3826	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
3827	raw := NoMethod(*s)
3828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3829}
3830
3831func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
3832	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
3833	var s1 struct {
3834		Score gensupport.JSONFloat64 `json:"score"`
3835		*NoMethod
3836	}
3837	s1.NoMethod = (*NoMethod)(s)
3838	if err := json.Unmarshal(data, &s1); err != nil {
3839		return err
3840	}
3841	s.Score = float64(s1.Score)
3842	return nil
3843}
3844
3845// GoogleCloudVisionV1p1beta1Word: A word representation.
3846type GoogleCloudVisionV1p1beta1Word struct {
3847	// BoundingBox: The bounding box for the word.
3848	// The vertices are in the order of top-left, top-right,
3849	// bottom-right,
3850	// bottom-left. When a rotation of the bounding box is detected the
3851	// rotation
3852	// is represented as around the top-left corner as defined when the text
3853	// is
3854	// read in the 'natural' orientation.
3855	// For example:
3856	//   * when the text is horizontal it might look like:
3857	//      0----1
3858	//      |    |
3859	//      3----2
3860	//   * when it's rotated 180 degrees around the top-left corner it
3861	// becomes:
3862	//      2----3
3863	//      |    |
3864	//      1----0
3865	//   and the vertex order will still be (0, 1, 2, 3).
3866	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3867
3868	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
3869	Confidence float64 `json:"confidence,omitempty"`
3870
3871	// Property: Additional information detected for the word.
3872	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3873
3874	// Symbols: List of symbols in the word.
3875	// The order of the symbols follows the natural reading order.
3876	Symbols []*GoogleCloudVisionV1p1beta1Symbol `json:"symbols,omitempty"`
3877
3878	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3879	// unconditionally include in API requests. By default, fields with
3880	// empty values are omitted from API requests. However, any non-pointer,
3881	// non-interface field appearing in ForceSendFields will be sent to the
3882	// server regardless of whether the field is empty or not. This may be
3883	// used to include empty fields in Patch requests.
3884	ForceSendFields []string `json:"-"`
3885
3886	// NullFields is a list of field names (e.g. "BoundingBox") to include
3887	// in API requests with the JSON null value. By default, fields with
3888	// empty values are omitted from API requests. However, any field with
3889	// an empty value appearing in NullFields will be sent to the server as
3890	// null. It is an error if a field in this list has a non-empty value.
3891	// This may be used to include null fields in Patch requests.
3892	NullFields []string `json:"-"`
3893}
3894
3895func (s *GoogleCloudVisionV1p1beta1Word) MarshalJSON() ([]byte, error) {
3896	type NoMethod GoogleCloudVisionV1p1beta1Word
3897	raw := NoMethod(*s)
3898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3899}
3900
3901func (s *GoogleCloudVisionV1p1beta1Word) UnmarshalJSON(data []byte) error {
3902	type NoMethod GoogleCloudVisionV1p1beta1Word
3903	var s1 struct {
3904		Confidence gensupport.JSONFloat64 `json:"confidence"`
3905		*NoMethod
3906	}
3907	s1.NoMethod = (*NoMethod)(s)
3908	if err := json.Unmarshal(data, &s1); err != nil {
3909		return err
3910	}
3911	s.Confidence = float64(s1.Confidence)
3912	return nil
3913}
3914
3915// GoogleCloudVisionV1p2beta1AnnotateFileRequest: A request to annotate
3916// one single file, e.g. a PDF, TIFF or GIF file.
3917type GoogleCloudVisionV1p2beta1AnnotateFileRequest struct {
3918	// Features: Required. Requested features.
3919	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
3920
3921	// ImageContext: Additional context that may accompany the image(s) in
3922	// the file.
3923	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
3924
3925	// InputConfig: Required. Information about the input file.
3926	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
3927
3928	// Pages: Pages of the file to perform image annotation.
3929	//
3930	// Pages starts from 1, we assume the first page of the file is page
3931	// 1.
3932	// At most 5 pages are supported per request. Pages can be
3933	// negative.
3934	//
3935	// Page 1 means the first page.
3936	// Page 2 means the second page.
3937	// Page -1 means the last page.
3938	// Page -2 means the second to the last page.
3939	//
3940	// If the file is GIF instead of PDF or TIFF, page refers to GIF
3941	// frames.
3942	//
3943	// If this field is empty, by default the service performs image
3944	// annotation
3945	// for the first 5 pages of the file.
3946	Pages []int64 `json:"pages,omitempty"`
3947
3948	// ForceSendFields is a list of field names (e.g. "Features") to
3949	// unconditionally include in API requests. By default, fields with
3950	// empty values are omitted from API requests. However, any non-pointer,
3951	// non-interface field appearing in ForceSendFields will be sent to the
3952	// server regardless of whether the field is empty or not. This may be
3953	// used to include empty fields in Patch requests.
3954	ForceSendFields []string `json:"-"`
3955
3956	// NullFields is a list of field names (e.g. "Features") to include in
3957	// API requests with the JSON null value. By default, fields with empty
3958	// values are omitted from API requests. However, any field with an
3959	// empty value appearing in NullFields will be sent to the server as
3960	// null. It is an error if a field in this list has a non-empty value.
3961	// This may be used to include null fields in Patch requests.
3962	NullFields []string `json:"-"`
3963}
3964
3965func (s *GoogleCloudVisionV1p2beta1AnnotateFileRequest) MarshalJSON() ([]byte, error) {
3966	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileRequest
3967	raw := NoMethod(*s)
3968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3969}
3970
3971// GoogleCloudVisionV1p2beta1AnnotateFileResponse: Response to a single
3972// file annotation request. A file may contain one or more
3973// images, which individually have their own responses.
3974type GoogleCloudVisionV1p2beta1AnnotateFileResponse struct {
3975	// InputConfig: Information about the file for which this response is
3976	// generated.
3977	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
3978
3979	// Responses: Individual responses to images found within the file.
3980	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
3981
3982	// TotalPages: This field gives the total number of pages in the file.
3983	TotalPages int64 `json:"totalPages,omitempty"`
3984
3985	// ForceSendFields is a list of field names (e.g. "InputConfig") to
3986	// unconditionally include in API requests. By default, fields with
3987	// empty values are omitted from API requests. However, any non-pointer,
3988	// non-interface field appearing in ForceSendFields will be sent to the
3989	// server regardless of whether the field is empty or not. This may be
3990	// used to include empty fields in Patch requests.
3991	ForceSendFields []string `json:"-"`
3992
3993	// NullFields is a list of field names (e.g. "InputConfig") to include
3994	// in API requests with the JSON null value. By default, fields with
3995	// empty values are omitted from API requests. However, any field with
3996	// an empty value appearing in NullFields will be sent to the server as
3997	// null. It is an error if a field in this list has a non-empty value.
3998	// This may be used to include null fields in Patch requests.
3999	NullFields []string `json:"-"`
4000}
4001
4002func (s *GoogleCloudVisionV1p2beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
4003	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileResponse
4004	raw := NoMethod(*s)
4005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4006}
4007
4008// GoogleCloudVisionV1p2beta1AnnotateImageRequest: Request for
4009// performing Google Cloud Vision API tasks over a user-provided
4010// image, with user-requested features, and with context information.
4011type GoogleCloudVisionV1p2beta1AnnotateImageRequest struct {
4012	// Features: Requested features.
4013	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
4014
4015	// Image: The image to be processed.
4016	Image *GoogleCloudVisionV1p2beta1Image `json:"image,omitempty"`
4017
4018	// ImageContext: Additional context that may accompany the image.
4019	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
4020
4021	// ForceSendFields is a list of field names (e.g. "Features") to
4022	// unconditionally include in API requests. By default, fields with
4023	// empty values are omitted from API requests. However, any non-pointer,
4024	// non-interface field appearing in ForceSendFields will be sent to the
4025	// server regardless of whether the field is empty or not. This may be
4026	// used to include empty fields in Patch requests.
4027	ForceSendFields []string `json:"-"`
4028
4029	// NullFields is a list of field names (e.g. "Features") to include in
4030	// API requests with the JSON null value. By default, fields with empty
4031	// values are omitted from API requests. However, any field with an
4032	// empty value appearing in NullFields will be sent to the server as
4033	// null. It is an error if a field in this list has a non-empty value.
4034	// This may be used to include null fields in Patch requests.
4035	NullFields []string `json:"-"`
4036}
4037
4038func (s *GoogleCloudVisionV1p2beta1AnnotateImageRequest) MarshalJSON() ([]byte, error) {
4039	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageRequest
4040	raw := NoMethod(*s)
4041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4042}
4043
4044// GoogleCloudVisionV1p2beta1AnnotateImageResponse: Response to an image
4045// annotation request.
4046type GoogleCloudVisionV1p2beta1AnnotateImageResponse struct {
4047	// Context: If present, contextual information is needed to understand
4048	// where this image
4049	// comes from.
4050	Context *GoogleCloudVisionV1p2beta1ImageAnnotationContext `json:"context,omitempty"`
4051
4052	// CropHintsAnnotation: If present, crop hints have completed
4053	// successfully.
4054	CropHintsAnnotation *GoogleCloudVisionV1p2beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
4055
4056	// Error: If set, represents the error message for the operation.
4057	// Note that filled-in image annotations are guaranteed to be
4058	// correct, even when `error` is set.
4059	Error *Status `json:"error,omitempty"`
4060
4061	// FaceAnnotations: If present, face detection has completed
4062	// successfully.
4063	FaceAnnotations []*GoogleCloudVisionV1p2beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
4064
4065	// FullTextAnnotation: If present, text (OCR) detection or document
4066	// (OCR) text detection has
4067	// completed successfully.
4068	// This annotation provides the structural hierarchy for the OCR
4069	// detected
4070	// text.
4071	FullTextAnnotation *GoogleCloudVisionV1p2beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
4072
4073	// ImagePropertiesAnnotation: If present, image properties were
4074	// extracted successfully.
4075	ImagePropertiesAnnotation *GoogleCloudVisionV1p2beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
4076
4077	// LabelAnnotations: If present, label detection has completed
4078	// successfully.
4079	LabelAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
4080
4081	// LandmarkAnnotations: If present, landmark detection has completed
4082	// successfully.
4083	LandmarkAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
4084
4085	// LocalizedObjectAnnotations: If present, localized object detection
4086	// has completed successfully.
4087	// This will be sorted descending by confidence score.
4088	LocalizedObjectAnnotations []*GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
4089
4090	// LogoAnnotations: If present, logo detection has completed
4091	// successfully.
4092	LogoAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
4093
4094	// ProductSearchResults: If present, product search has completed
4095	// successfully.
4096	ProductSearchResults *GoogleCloudVisionV1p2beta1ProductSearchResults `json:"productSearchResults,omitempty"`
4097
4098	// SafeSearchAnnotation: If present, safe-search annotation has
4099	// completed successfully.
4100	SafeSearchAnnotation *GoogleCloudVisionV1p2beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
4101
4102	// TextAnnotations: If present, text (OCR) detection has completed
4103	// successfully.
4104	TextAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"textAnnotations,omitempty"`
4105
4106	// WebDetection: If present, web detection has completed successfully.
4107	WebDetection *GoogleCloudVisionV1p2beta1WebDetection `json:"webDetection,omitempty"`
4108
4109	// ForceSendFields is a list of field names (e.g. "Context") to
4110	// unconditionally include in API requests. By default, fields with
4111	// empty values are omitted from API requests. However, any non-pointer,
4112	// non-interface field appearing in ForceSendFields will be sent to the
4113	// server regardless of whether the field is empty or not. This may be
4114	// used to include empty fields in Patch requests.
4115	ForceSendFields []string `json:"-"`
4116
4117	// NullFields is a list of field names (e.g. "Context") to include in
4118	// API requests with the JSON null value. By default, fields with empty
4119	// values are omitted from API requests. However, any field with an
4120	// empty value appearing in NullFields will be sent to the server as
4121	// null. It is an error if a field in this list has a non-empty value.
4122	// This may be used to include null fields in Patch requests.
4123	NullFields []string `json:"-"`
4124}
4125
4126func (s *GoogleCloudVisionV1p2beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
4127	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageResponse
4128	raw := NoMethod(*s)
4129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4130}
4131
4132// GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest: An offline file
4133// annotation request.
4134type GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest struct {
4135	// Features: Required. Requested features.
4136	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
4137
4138	// ImageContext: Additional context that may accompany the image(s) in
4139	// the file.
4140	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
4141
4142	// InputConfig: Required. Information about the input file.
4143	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
4144
4145	// OutputConfig: Required. The desired output location and metadata
4146	// (e.g. format).
4147	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4148
4149	// ForceSendFields is a list of field names (e.g. "Features") to
4150	// unconditionally include in API requests. By default, fields with
4151	// empty values are omitted from API requests. However, any non-pointer,
4152	// non-interface field appearing in ForceSendFields will be sent to the
4153	// server regardless of whether the field is empty or not. This may be
4154	// used to include empty fields in Patch requests.
4155	ForceSendFields []string `json:"-"`
4156
4157	// NullFields is a list of field names (e.g. "Features") to include in
4158	// API requests with the JSON null value. By default, fields with empty
4159	// values are omitted from API requests. However, any field with an
4160	// empty value appearing in NullFields will be sent to the server as
4161	// null. It is an error if a field in this list has a non-empty value.
4162	// This may be used to include null fields in Patch requests.
4163	NullFields []string `json:"-"`
4164}
4165
4166func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest) MarshalJSON() ([]byte, error) {
4167	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest
4168	raw := NoMethod(*s)
4169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4170}
4171
4172// GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse: The response for
4173// a single offline file annotation request.
4174type GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse struct {
4175	// OutputConfig: The output location and metadata from
4176	// AsyncAnnotateFileRequest.
4177	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4178
4179	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4180	// unconditionally include in API requests. By default, fields with
4181	// empty values are omitted from API requests. However, any non-pointer,
4182	// non-interface field appearing in ForceSendFields will be sent to the
4183	// server regardless of whether the field is empty or not. This may be
4184	// used to include empty fields in Patch requests.
4185	ForceSendFields []string `json:"-"`
4186
4187	// NullFields is a list of field names (e.g. "OutputConfig") to include
4188	// in API requests with the JSON null value. By default, fields with
4189	// empty values are omitted from API requests. However, any field with
4190	// an empty value appearing in NullFields will be sent to the server as
4191	// null. It is an error if a field in this list has a non-empty value.
4192	// This may be used to include null fields in Patch requests.
4193	NullFields []string `json:"-"`
4194}
4195
4196func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
4197	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse
4198	raw := NoMethod(*s)
4199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4200}
4201
4202// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest: Multiple
4203// async file annotation requests are batched into a single
4204// service
4205// call.
4206type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest struct {
4207	// Requests: Individual async file annotation requests for this batch.
4208	Requests []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest `json:"requests,omitempty"`
4209
4210	// ForceSendFields is a list of field names (e.g. "Requests") to
4211	// unconditionally include in API requests. By default, fields with
4212	// empty values are omitted from API requests. However, any non-pointer,
4213	// non-interface field appearing in ForceSendFields will be sent to the
4214	// server regardless of whether the field is empty or not. This may be
4215	// used to include empty fields in Patch requests.
4216	ForceSendFields []string `json:"-"`
4217
4218	// NullFields is a list of field names (e.g. "Requests") to include in
4219	// API requests with the JSON null value. By default, fields with empty
4220	// values are omitted from API requests. However, any field with an
4221	// empty value appearing in NullFields will be sent to the server as
4222	// null. It is an error if a field in this list has a non-empty value.
4223	// This may be used to include null fields in Patch requests.
4224	NullFields []string `json:"-"`
4225}
4226
4227func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
4228	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
4229	raw := NoMethod(*s)
4230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4231}
4232
4233// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse: Response
4234// to an async batch file annotation request.
4235type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse struct {
4236	// Responses: The list of file annotation responses, one for each
4237	// request in
4238	// AsyncBatchAnnotateFilesRequest.
4239	Responses []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
4240
4241	// ForceSendFields is a list of field names (e.g. "Responses") to
4242	// unconditionally include in API requests. By default, fields with
4243	// empty values are omitted from API requests. However, any non-pointer,
4244	// non-interface field appearing in ForceSendFields will be sent to the
4245	// server regardless of whether the field is empty or not. This may be
4246	// used to include empty fields in Patch requests.
4247	ForceSendFields []string `json:"-"`
4248
4249	// NullFields is a list of field names (e.g. "Responses") to include in
4250	// API requests with the JSON null value. By default, fields with empty
4251	// values are omitted from API requests. However, any field with an
4252	// empty value appearing in NullFields will be sent to the server as
4253	// null. It is an error if a field in this list has a non-empty value.
4254	// This may be used to include null fields in Patch requests.
4255	NullFields []string `json:"-"`
4256}
4257
4258func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4259	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse
4260	raw := NoMethod(*s)
4261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4262}
4263
4264// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest: Request
4265// for async image annotation for a list of images.
4266type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest struct {
4267	// OutputConfig: Required. The desired output location and metadata
4268	// (e.g. format).
4269	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4270
4271	// Requests: Individual image annotation requests for this batch.
4272	Requests []*GoogleCloudVisionV1p2beta1AnnotateImageRequest `json:"requests,omitempty"`
4273
4274	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4275	// unconditionally include in API requests. By default, fields with
4276	// empty values are omitted from API requests. However, any non-pointer,
4277	// non-interface field appearing in ForceSendFields will be sent to the
4278	// server regardless of whether the field is empty or not. This may be
4279	// used to include empty fields in Patch requests.
4280	ForceSendFields []string `json:"-"`
4281
4282	// NullFields is a list of field names (e.g. "OutputConfig") to include
4283	// in API requests with the JSON null value. By default, fields with
4284	// empty values are omitted from API requests. However, any field with
4285	// an empty value appearing in NullFields will be sent to the server as
4286	// null. It is an error if a field in this list has a non-empty value.
4287	// This may be used to include null fields in Patch requests.
4288	NullFields []string `json:"-"`
4289}
4290
4291func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
4292	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
4293	raw := NoMethod(*s)
4294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4295}
4296
4297// GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest: A list of
4298// requests to annotate files using the BatchAnnotateFiles API.
4299type GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest struct {
4300	// Requests: The list of file annotation requests. Right now we support
4301	// only one
4302	// AnnotateFileRequest in BatchAnnotateFilesRequest.
4303	Requests []*GoogleCloudVisionV1p2beta1AnnotateFileRequest `json:"requests,omitempty"`
4304
4305	// ForceSendFields is a list of field names (e.g. "Requests") to
4306	// unconditionally include in API requests. By default, fields with
4307	// empty values are omitted from API requests. However, any non-pointer,
4308	// non-interface field appearing in ForceSendFields will be sent to the
4309	// server regardless of whether the field is empty or not. This may be
4310	// used to include empty fields in Patch requests.
4311	ForceSendFields []string `json:"-"`
4312
4313	// NullFields is a list of field names (e.g. "Requests") to include in
4314	// API requests with the JSON null value. By default, fields with empty
4315	// values are omitted from API requests. However, any field with an
4316	// empty value appearing in NullFields will be sent to the server as
4317	// null. It is an error if a field in this list has a non-empty value.
4318	// This may be used to include null fields in Patch requests.
4319	NullFields []string `json:"-"`
4320}
4321
4322func (s *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
4323	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
4324	raw := NoMethod(*s)
4325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4326}
4327
4328// GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse: A list of file
4329// annotation responses.
4330type GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse struct {
4331	// Responses: The list of file annotation responses, each response
4332	// corresponding to each
4333	// AnnotateFileRequest in BatchAnnotateFilesRequest.
4334	Responses []*GoogleCloudVisionV1p2beta1AnnotateFileResponse `json:"responses,omitempty"`
4335
4336	// ServerResponse contains the HTTP response code and headers from the
4337	// server.
4338	googleapi.ServerResponse `json:"-"`
4339
4340	// ForceSendFields is a list of field names (e.g. "Responses") to
4341	// unconditionally include in API requests. By default, fields with
4342	// empty values are omitted from API requests. However, any non-pointer,
4343	// non-interface field appearing in ForceSendFields will be sent to the
4344	// server regardless of whether the field is empty or not. This may be
4345	// used to include empty fields in Patch requests.
4346	ForceSendFields []string `json:"-"`
4347
4348	// NullFields is a list of field names (e.g. "Responses") to include in
4349	// API requests with the JSON null value. By default, fields with empty
4350	// values are omitted from API requests. However, any field with an
4351	// empty value appearing in NullFields will be sent to the server as
4352	// null. It is an error if a field in this list has a non-empty value.
4353	// This may be used to include null fields in Patch requests.
4354	NullFields []string `json:"-"`
4355}
4356
4357func (s *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4358	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
4359	raw := NoMethod(*s)
4360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4361}
4362
4363// GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest: Multiple image
4364// annotation requests are batched into a single service call.
4365type GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest struct {
4366	// Requests: Individual image annotation requests for this batch.
4367	Requests []*GoogleCloudVisionV1p2beta1AnnotateImageRequest `json:"requests,omitempty"`
4368
4369	// ForceSendFields is a list of field names (e.g. "Requests") to
4370	// unconditionally include in API requests. By default, fields with
4371	// empty values are omitted from API requests. However, any non-pointer,
4372	// non-interface field appearing in ForceSendFields will be sent to the
4373	// server regardless of whether the field is empty or not. This may be
4374	// used to include empty fields in Patch requests.
4375	ForceSendFields []string `json:"-"`
4376
4377	// NullFields is a list of field names (e.g. "Requests") to include in
4378	// API requests with the JSON null value. By default, fields with empty
4379	// values are omitted from API requests. However, any field with an
4380	// empty value appearing in NullFields will be sent to the server as
4381	// null. It is an error if a field in this list has a non-empty value.
4382	// This may be used to include null fields in Patch requests.
4383	NullFields []string `json:"-"`
4384}
4385
4386func (s *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
4387	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
4388	raw := NoMethod(*s)
4389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4390}
4391
4392// GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse: Response to a
4393// batch image annotation request.
4394type GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse struct {
4395	// Responses: Individual responses to image annotation requests within
4396	// the batch.
4397	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
4398
4399	// ServerResponse contains the HTTP response code and headers from the
4400	// server.
4401	googleapi.ServerResponse `json:"-"`
4402
4403	// ForceSendFields is a list of field names (e.g. "Responses") to
4404	// unconditionally include in API requests. By default, fields with
4405	// empty values are omitted from API requests. However, any non-pointer,
4406	// non-interface field appearing in ForceSendFields will be sent to the
4407	// server regardless of whether the field is empty or not. This may be
4408	// used to include empty fields in Patch requests.
4409	ForceSendFields []string `json:"-"`
4410
4411	// NullFields is a list of field names (e.g. "Responses") to include in
4412	// API requests with the JSON null value. By default, fields with empty
4413	// values are omitted from API requests. However, any field with an
4414	// empty value appearing in NullFields will be sent to the server as
4415	// null. It is an error if a field in this list has a non-empty value.
4416	// This may be used to include null fields in Patch requests.
4417	NullFields []string `json:"-"`
4418}
4419
4420func (s *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
4421	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
4422	raw := NoMethod(*s)
4423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4424}
4425
4426// GoogleCloudVisionV1p2beta1Block: Logical element on the page.
4427type GoogleCloudVisionV1p2beta1Block struct {
4428	// BlockType: Detected block type (text, image etc) for this block.
4429	//
4430	// Possible values:
4431	//   "UNKNOWN" - Unknown block type.
4432	//   "TEXT" - Regular text block.
4433	//   "TABLE" - Table block.
4434	//   "PICTURE" - Image block.
4435	//   "RULER" - Horizontal/vertical line box.
4436	//   "BARCODE" - Barcode block.
4437	BlockType string `json:"blockType,omitempty"`
4438
4439	// BoundingBox: The bounding box for the block.
4440	// The vertices are in the order of top-left, top-right,
4441	// bottom-right,
4442	// bottom-left. When a rotation of the bounding box is detected the
4443	// rotation
4444	// is represented as around the top-left corner as defined when the text
4445	// is
4446	// read in the 'natural' orientation.
4447	// For example:
4448	//
4449	// * when the text is horizontal it might look like:
4450	//
4451	//         0----1
4452	//         |    |
4453	//         3----2
4454	//
4455	// * when it's rotated 180 degrees around the top-left corner it
4456	// becomes:
4457	//
4458	//         2----3
4459	//         |    |
4460	//         1----0
4461	//
4462	//   and the vertex order will still be (0, 1, 2, 3).
4463	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
4464
4465	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
4466	Confidence float64 `json:"confidence,omitempty"`
4467
4468	// Paragraphs: List of paragraphs in this block (if this blocks is of
4469	// type text).
4470	Paragraphs []*GoogleCloudVisionV1p2beta1Paragraph `json:"paragraphs,omitempty"`
4471
4472	// Property: Additional information detected for the block.
4473	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
4474
4475	// ForceSendFields is a list of field names (e.g. "BlockType") to
4476	// unconditionally include in API requests. By default, fields with
4477	// empty values are omitted from API requests. However, any non-pointer,
4478	// non-interface field appearing in ForceSendFields will be sent to the
4479	// server regardless of whether the field is empty or not. This may be
4480	// used to include empty fields in Patch requests.
4481	ForceSendFields []string `json:"-"`
4482
4483	// NullFields is a list of field names (e.g. "BlockType") to include in
4484	// API requests with the JSON null value. By default, fields with empty
4485	// values are omitted from API requests. However, any field with an
4486	// empty value appearing in NullFields will be sent to the server as
4487	// null. It is an error if a field in this list has a non-empty value.
4488	// This may be used to include null fields in Patch requests.
4489	NullFields []string `json:"-"`
4490}
4491
4492func (s *GoogleCloudVisionV1p2beta1Block) MarshalJSON() ([]byte, error) {
4493	type NoMethod GoogleCloudVisionV1p2beta1Block
4494	raw := NoMethod(*s)
4495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4496}
4497
4498func (s *GoogleCloudVisionV1p2beta1Block) UnmarshalJSON(data []byte) error {
4499	type NoMethod GoogleCloudVisionV1p2beta1Block
4500	var s1 struct {
4501		Confidence gensupport.JSONFloat64 `json:"confidence"`
4502		*NoMethod
4503	}
4504	s1.NoMethod = (*NoMethod)(s)
4505	if err := json.Unmarshal(data, &s1); err != nil {
4506		return err
4507	}
4508	s.Confidence = float64(s1.Confidence)
4509	return nil
4510}
4511
4512// GoogleCloudVisionV1p2beta1BoundingPoly: A bounding polygon for the
4513// detected image annotation.
4514type GoogleCloudVisionV1p2beta1BoundingPoly struct {
4515	// NormalizedVertices: The bounding polygon normalized vertices.
4516	NormalizedVertices []*GoogleCloudVisionV1p2beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
4517
4518	// Vertices: The bounding polygon vertices.
4519	Vertices []*GoogleCloudVisionV1p2beta1Vertex `json:"vertices,omitempty"`
4520
4521	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
4522	// to unconditionally include in API requests. By default, fields with
4523	// empty values are omitted from API requests. However, any non-pointer,
4524	// non-interface field appearing in ForceSendFields will be sent to the
4525	// server regardless of whether the field is empty or not. This may be
4526	// used to include empty fields in Patch requests.
4527	ForceSendFields []string `json:"-"`
4528
4529	// NullFields is a list of field names (e.g. "NormalizedVertices") to
4530	// include in API requests with the JSON null value. By default, fields
4531	// with empty values are omitted from API requests. However, any field
4532	// with an empty value appearing in NullFields will be sent to the
4533	// server as null. It is an error if a field in this list has a
4534	// non-empty value. This may be used to include null fields in Patch
4535	// requests.
4536	NullFields []string `json:"-"`
4537}
4538
4539func (s *GoogleCloudVisionV1p2beta1BoundingPoly) MarshalJSON() ([]byte, error) {
4540	type NoMethod GoogleCloudVisionV1p2beta1BoundingPoly
4541	raw := NoMethod(*s)
4542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4543}
4544
4545// GoogleCloudVisionV1p2beta1ColorInfo: Color information consists of
4546// RGB channels, score, and the fraction of
4547// the image that the color occupies in the image.
4548type GoogleCloudVisionV1p2beta1ColorInfo struct {
4549	// Color: RGB components of the color.
4550	Color *Color `json:"color,omitempty"`
4551
4552	// PixelFraction: The fraction of pixels the color occupies in the
4553	// image.
4554	// Value in range [0, 1].
4555	PixelFraction float64 `json:"pixelFraction,omitempty"`
4556
4557	// Score: Image-specific score for this color. Value in range [0, 1].
4558	Score float64 `json:"score,omitempty"`
4559
4560	// ForceSendFields is a list of field names (e.g. "Color") to
4561	// unconditionally include in API requests. By default, fields with
4562	// empty values are omitted from API requests. However, any non-pointer,
4563	// non-interface field appearing in ForceSendFields will be sent to the
4564	// server regardless of whether the field is empty or not. This may be
4565	// used to include empty fields in Patch requests.
4566	ForceSendFields []string `json:"-"`
4567
4568	// NullFields is a list of field names (e.g. "Color") to include in API
4569	// requests with the JSON null value. By default, fields with empty
4570	// values are omitted from API requests. However, any field with an
4571	// empty value appearing in NullFields will be sent to the server as
4572	// null. It is an error if a field in this list has a non-empty value.
4573	// This may be used to include null fields in Patch requests.
4574	NullFields []string `json:"-"`
4575}
4576
4577func (s *GoogleCloudVisionV1p2beta1ColorInfo) MarshalJSON() ([]byte, error) {
4578	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4579	raw := NoMethod(*s)
4580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4581}
4582
4583func (s *GoogleCloudVisionV1p2beta1ColorInfo) UnmarshalJSON(data []byte) error {
4584	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4585	var s1 struct {
4586		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
4587		Score         gensupport.JSONFloat64 `json:"score"`
4588		*NoMethod
4589	}
4590	s1.NoMethod = (*NoMethod)(s)
4591	if err := json.Unmarshal(data, &s1); err != nil {
4592		return err
4593	}
4594	s.PixelFraction = float64(s1.PixelFraction)
4595	s.Score = float64(s1.Score)
4596	return nil
4597}
4598
4599// GoogleCloudVisionV1p2beta1CropHint: Single crop hint that is used to
4600// generate a new crop when serving an image.
4601type GoogleCloudVisionV1p2beta1CropHint struct {
4602	// BoundingPoly: The bounding polygon for the crop region. The
4603	// coordinates of the bounding
4604	// box are in the original image's scale.
4605	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4606
4607	// Confidence: Confidence of this being a salient region.  Range [0, 1].
4608	Confidence float64 `json:"confidence,omitempty"`
4609
4610	// ImportanceFraction: Fraction of importance of this salient region
4611	// with respect to the original
4612	// image.
4613	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
4614
4615	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4616	// unconditionally include in API requests. By default, fields with
4617	// empty values are omitted from API requests. However, any non-pointer,
4618	// non-interface field appearing in ForceSendFields will be sent to the
4619	// server regardless of whether the field is empty or not. This may be
4620	// used to include empty fields in Patch requests.
4621	ForceSendFields []string `json:"-"`
4622
4623	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4624	// in API requests with the JSON null value. By default, fields with
4625	// empty values are omitted from API requests. However, any field with
4626	// an empty value appearing in NullFields will be sent to the server as
4627	// null. It is an error if a field in this list has a non-empty value.
4628	// This may be used to include null fields in Patch requests.
4629	NullFields []string `json:"-"`
4630}
4631
4632func (s *GoogleCloudVisionV1p2beta1CropHint) MarshalJSON() ([]byte, error) {
4633	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4634	raw := NoMethod(*s)
4635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4636}
4637
4638func (s *GoogleCloudVisionV1p2beta1CropHint) UnmarshalJSON(data []byte) error {
4639	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4640	var s1 struct {
4641		Confidence         gensupport.JSONFloat64 `json:"confidence"`
4642		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
4643		*NoMethod
4644	}
4645	s1.NoMethod = (*NoMethod)(s)
4646	if err := json.Unmarshal(data, &s1); err != nil {
4647		return err
4648	}
4649	s.Confidence = float64(s1.Confidence)
4650	s.ImportanceFraction = float64(s1.ImportanceFraction)
4651	return nil
4652}
4653
4654// GoogleCloudVisionV1p2beta1CropHintsAnnotation: Set of crop hints that
4655// are used to generate new crops when serving images.
4656type GoogleCloudVisionV1p2beta1CropHintsAnnotation struct {
4657	// CropHints: Crop hint results.
4658	CropHints []*GoogleCloudVisionV1p2beta1CropHint `json:"cropHints,omitempty"`
4659
4660	// ForceSendFields is a list of field names (e.g. "CropHints") to
4661	// unconditionally include in API requests. By default, fields with
4662	// empty values are omitted from API requests. However, any non-pointer,
4663	// non-interface field appearing in ForceSendFields will be sent to the
4664	// server regardless of whether the field is empty or not. This may be
4665	// used to include empty fields in Patch requests.
4666	ForceSendFields []string `json:"-"`
4667
4668	// NullFields is a list of field names (e.g. "CropHints") to include in
4669	// API requests with the JSON null value. By default, fields with empty
4670	// values are omitted from API requests. However, any field with an
4671	// empty value appearing in NullFields will be sent to the server as
4672	// null. It is an error if a field in this list has a non-empty value.
4673	// This may be used to include null fields in Patch requests.
4674	NullFields []string `json:"-"`
4675}
4676
4677func (s *GoogleCloudVisionV1p2beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
4678	type NoMethod GoogleCloudVisionV1p2beta1CropHintsAnnotation
4679	raw := NoMethod(*s)
4680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4681}
4682
4683// GoogleCloudVisionV1p2beta1CropHintsParams: Parameters for crop hints
4684// annotation request.
4685type GoogleCloudVisionV1p2beta1CropHintsParams struct {
4686	// AspectRatios: Aspect ratios in floats, representing the ratio of the
4687	// width to the height
4688	// of the image. For example, if the desired aspect ratio is 4/3,
4689	// the
4690	// corresponding float value should be 1.33333.  If not specified,
4691	// the
4692	// best possible crop is returned. The number of provided aspect ratios
4693	// is
4694	// limited to a maximum of 16; any aspect ratios provided after the 16th
4695	// are
4696	// ignored.
4697	AspectRatios []float64 `json:"aspectRatios,omitempty"`
4698
4699	// ForceSendFields is a list of field names (e.g. "AspectRatios") to
4700	// unconditionally include in API requests. By default, fields with
4701	// empty values are omitted from API requests. However, any non-pointer,
4702	// non-interface field appearing in ForceSendFields will be sent to the
4703	// server regardless of whether the field is empty or not. This may be
4704	// used to include empty fields in Patch requests.
4705	ForceSendFields []string `json:"-"`
4706
4707	// NullFields is a list of field names (e.g. "AspectRatios") to include
4708	// in API requests with the JSON null value. By default, fields with
4709	// empty values are omitted from API requests. However, any field with
4710	// an empty value appearing in NullFields will be sent to the server as
4711	// null. It is an error if a field in this list has a non-empty value.
4712	// This may be used to include null fields in Patch requests.
4713	NullFields []string `json:"-"`
4714}
4715
4716func (s *GoogleCloudVisionV1p2beta1CropHintsParams) MarshalJSON() ([]byte, error) {
4717	type NoMethod GoogleCloudVisionV1p2beta1CropHintsParams
4718	raw := NoMethod(*s)
4719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4720}
4721
4722// GoogleCloudVisionV1p2beta1DominantColorsAnnotation: Set of dominant
4723// colors and their corresponding scores.
4724type GoogleCloudVisionV1p2beta1DominantColorsAnnotation struct {
4725	// Colors: RGB color values with their score and pixel fraction.
4726	Colors []*GoogleCloudVisionV1p2beta1ColorInfo `json:"colors,omitempty"`
4727
4728	// ForceSendFields is a list of field names (e.g. "Colors") to
4729	// unconditionally include in API requests. By default, fields with
4730	// empty values are omitted from API requests. However, any non-pointer,
4731	// non-interface field appearing in ForceSendFields will be sent to the
4732	// server regardless of whether the field is empty or not. This may be
4733	// used to include empty fields in Patch requests.
4734	ForceSendFields []string `json:"-"`
4735
4736	// NullFields is a list of field names (e.g. "Colors") to include in API
4737	// requests with the JSON null value. By default, fields with empty
4738	// values are omitted from API requests. However, any field with an
4739	// empty value appearing in NullFields will be sent to the server as
4740	// null. It is an error if a field in this list has a non-empty value.
4741	// This may be used to include null fields in Patch requests.
4742	NullFields []string `json:"-"`
4743}
4744
4745func (s *GoogleCloudVisionV1p2beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
4746	type NoMethod GoogleCloudVisionV1p2beta1DominantColorsAnnotation
4747	raw := NoMethod(*s)
4748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4749}
4750
4751// GoogleCloudVisionV1p2beta1EntityAnnotation: Set of detected entity
4752// features.
4753type GoogleCloudVisionV1p2beta1EntityAnnotation struct {
4754	// BoundingPoly: Image region to which this entity belongs. Not
4755	// produced
4756	// for `LABEL_DETECTION` features.
4757	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4758
4759	// Confidence: **Deprecated. Use `score` instead.**
4760	// The accuracy of the entity detection in an image.
4761	// For example, for an image in which the "Eiffel Tower" entity is
4762	// detected,
4763	// this field represents the confidence that there is a tower in the
4764	// query
4765	// image. Range [0, 1].
4766	Confidence float64 `json:"confidence,omitempty"`
4767
4768	// Description: Entity textual description, expressed in its `locale`
4769	// language.
4770	Description string `json:"description,omitempty"`
4771
4772	// Locale: The language code for the locale in which the entity
4773	// textual
4774	// `description` is expressed.
4775	Locale string `json:"locale,omitempty"`
4776
4777	// Locations: The location information for the detected entity.
4778	// Multiple
4779	// `LocationInfo` elements can be present because one location
4780	// may
4781	// indicate the location of the scene in the image, and another
4782	// location
4783	// may indicate the location of the place where the image was
4784	// taken.
4785	// Location information is usually present for landmarks.
4786	Locations []*GoogleCloudVisionV1p2beta1LocationInfo `json:"locations,omitempty"`
4787
4788	// Mid: Opaque entity ID. Some IDs may be available in
4789	// [Google Knowledge Graph
4790	// Search
4791	// API](https://developers.google.com/knowledge-graph/).
4792	Mid string `json:"mid,omitempty"`
4793
4794	// Properties: Some entities may have optional user-supplied `Property`
4795	// (name/value)
4796	// fields, such a score or string that qualifies the entity.
4797	Properties []*GoogleCloudVisionV1p2beta1Property `json:"properties,omitempty"`
4798
4799	// Score: Overall score of the result. Range [0, 1].
4800	Score float64 `json:"score,omitempty"`
4801
4802	// Topicality: The relevancy of the ICA (Image Content Annotation) label
4803	// to the
4804	// image. For example, the relevancy of "tower" is likely higher to an
4805	// image
4806	// containing the detected "Eiffel Tower" than to an image containing
4807	// a
4808	// detected distant towering building, even though the confidence
4809	// that
4810	// there is a tower in each image may be the same. Range [0, 1].
4811	Topicality float64 `json:"topicality,omitempty"`
4812
4813	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4814	// unconditionally include in API requests. By default, fields with
4815	// empty values are omitted from API requests. However, any non-pointer,
4816	// non-interface field appearing in ForceSendFields will be sent to the
4817	// server regardless of whether the field is empty or not. This may be
4818	// used to include empty fields in Patch requests.
4819	ForceSendFields []string `json:"-"`
4820
4821	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4822	// in API requests with the JSON null value. By default, fields with
4823	// empty values are omitted from API requests. However, any field with
4824	// an empty value appearing in NullFields will be sent to the server as
4825	// null. It is an error if a field in this list has a non-empty value.
4826	// This may be used to include null fields in Patch requests.
4827	NullFields []string `json:"-"`
4828}
4829
4830func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
4831	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4832	raw := NoMethod(*s)
4833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4834}
4835
4836func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
4837	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4838	var s1 struct {
4839		Confidence gensupport.JSONFloat64 `json:"confidence"`
4840		Score      gensupport.JSONFloat64 `json:"score"`
4841		Topicality gensupport.JSONFloat64 `json:"topicality"`
4842		*NoMethod
4843	}
4844	s1.NoMethod = (*NoMethod)(s)
4845	if err := json.Unmarshal(data, &s1); err != nil {
4846		return err
4847	}
4848	s.Confidence = float64(s1.Confidence)
4849	s.Score = float64(s1.Score)
4850	s.Topicality = float64(s1.Topicality)
4851	return nil
4852}
4853
4854// GoogleCloudVisionV1p2beta1FaceAnnotation: A face annotation object
4855// contains the results of face detection.
4856type GoogleCloudVisionV1p2beta1FaceAnnotation struct {
4857	// AngerLikelihood: Anger likelihood.
4858	//
4859	// Possible values:
4860	//   "UNKNOWN" - Unknown likelihood.
4861	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4862	// specified vertical.
4863	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4864	// vertical.
4865	//   "POSSIBLE" - It is possible that the image belongs to the specified
4866	// vertical.
4867	//   "LIKELY" - It is likely that the image belongs to the specified
4868	// vertical.
4869	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4870	// specified vertical.
4871	AngerLikelihood string `json:"angerLikelihood,omitempty"`
4872
4873	// BlurredLikelihood: Blurred likelihood.
4874	//
4875	// Possible values:
4876	//   "UNKNOWN" - Unknown likelihood.
4877	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4878	// specified vertical.
4879	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4880	// vertical.
4881	//   "POSSIBLE" - It is possible that the image belongs to the specified
4882	// vertical.
4883	//   "LIKELY" - It is likely that the image belongs to the specified
4884	// vertical.
4885	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4886	// specified vertical.
4887	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
4888
4889	// BoundingPoly: The bounding polygon around the face. The coordinates
4890	// of the bounding box
4891	// are in the original image's scale.
4892	// The bounding box is computed to "frame" the face in accordance with
4893	// human
4894	// expectations. It is based on the landmarker results.
4895	// Note that one or more x and/or y coordinates may not be generated in
4896	// the
4897	// `BoundingPoly` (the polygon will be unbounded) if only a partial
4898	// face
4899	// appears in the image to be annotated.
4900	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4901
4902	// DetectionConfidence: Detection confidence. Range [0, 1].
4903	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
4904
4905	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
4906	// than the
4907	// `boundingPoly`, and encloses only the skin part of the face.
4908	// Typically, it
4909	// is used to eliminate the face from any image analysis that detects
4910	// the
4911	// "amount of skin" visible in an image. It is not based on
4912	// the
4913	// landmarker results, only on the initial face detection, hence
4914	// the <code>fd</code> (face detection) prefix.
4915	FdBoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
4916
4917	// HeadwearLikelihood: Headwear likelihood.
4918	//
4919	// Possible values:
4920	//   "UNKNOWN" - Unknown likelihood.
4921	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4922	// specified vertical.
4923	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4924	// vertical.
4925	//   "POSSIBLE" - It is possible that the image belongs to the specified
4926	// vertical.
4927	//   "LIKELY" - It is likely that the image belongs to the specified
4928	// vertical.
4929	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4930	// specified vertical.
4931	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
4932
4933	// JoyLikelihood: Joy likelihood.
4934	//
4935	// Possible values:
4936	//   "UNKNOWN" - Unknown likelihood.
4937	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4938	// specified vertical.
4939	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4940	// vertical.
4941	//   "POSSIBLE" - It is possible that the image belongs to the specified
4942	// vertical.
4943	//   "LIKELY" - It is likely that the image belongs to the specified
4944	// vertical.
4945	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4946	// specified vertical.
4947	JoyLikelihood string `json:"joyLikelihood,omitempty"`
4948
4949	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
4950	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
4951
4952	// Landmarks: Detected face landmarks.
4953	Landmarks []*GoogleCloudVisionV1p2beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
4954
4955	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
4956	// that the face is
4957	// pointing relative to the vertical plane perpendicular to the image.
4958	// Range
4959	// [-180,180].
4960	PanAngle float64 `json:"panAngle,omitempty"`
4961
4962	// RollAngle: Roll angle, which indicates the amount of
4963	// clockwise/anti-clockwise rotation
4964	// of the face relative to the image vertical about the axis
4965	// perpendicular to
4966	// the face. Range [-180,180].
4967	RollAngle float64 `json:"rollAngle,omitempty"`
4968
4969	// SorrowLikelihood: Sorrow likelihood.
4970	//
4971	// Possible values:
4972	//   "UNKNOWN" - Unknown likelihood.
4973	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4974	// specified vertical.
4975	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4976	// vertical.
4977	//   "POSSIBLE" - It is possible that the image belongs to the specified
4978	// vertical.
4979	//   "LIKELY" - It is likely that the image belongs to the specified
4980	// vertical.
4981	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4982	// specified vertical.
4983	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
4984
4985	// SurpriseLikelihood: Surprise likelihood.
4986	//
4987	// Possible values:
4988	//   "UNKNOWN" - Unknown likelihood.
4989	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
4990	// specified vertical.
4991	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
4992	// vertical.
4993	//   "POSSIBLE" - It is possible that the image belongs to the specified
4994	// vertical.
4995	//   "LIKELY" - It is likely that the image belongs to the specified
4996	// vertical.
4997	//   "VERY_LIKELY" - It is very likely that the image belongs to the
4998	// specified vertical.
4999	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
5000
5001	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
5002	// that the face is
5003	// pointing relative to the image's horizontal plane. Range [-180,180].
5004	TiltAngle float64 `json:"tiltAngle,omitempty"`
5005
5006	// UnderExposedLikelihood: Under-exposed likelihood.
5007	//
5008	// Possible values:
5009	//   "UNKNOWN" - Unknown likelihood.
5010	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
5011	// specified vertical.
5012	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
5013	// vertical.
5014	//   "POSSIBLE" - It is possible that the image belongs to the specified
5015	// vertical.
5016	//   "LIKELY" - It is likely that the image belongs to the specified
5017	// vertical.
5018	//   "VERY_LIKELY" - It is very likely that the image belongs to the
5019	// specified vertical.
5020	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
5021
5022	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
5023	// unconditionally include in API requests. By default, fields with
5024	// empty values are omitted from API requests. However, any non-pointer,
5025	// non-interface field appearing in ForceSendFields will be sent to the
5026	// server regardless of whether the field is empty or not. This may be
5027	// used to include empty fields in Patch requests.
5028	ForceSendFields []string `json:"-"`
5029
5030	// NullFields is a list of field names (e.g. "AngerLikelihood") to
5031	// include in API requests with the JSON null value. By default, fields
5032	// with empty values are omitted from API requests. However, any field
5033	// with an empty value appearing in NullFields will be sent to the
5034	// server as null. It is an error if a field in this list has a
5035	// non-empty value. This may be used to include null fields in Patch
5036	// requests.
5037	NullFields []string `json:"-"`
5038}
5039
5040func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
5041	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5042	raw := NoMethod(*s)
5043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5044}
5045
5046func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
5047	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5048	var s1 struct {
5049		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
5050		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
5051		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
5052		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
5053		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
5054		*NoMethod
5055	}
5056	s1.NoMethod = (*NoMethod)(s)
5057	if err := json.Unmarshal(data, &s1); err != nil {
5058		return err
5059	}
5060	s.DetectionConfidence = float64(s1.DetectionConfidence)
5061	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
5062	s.PanAngle = float64(s1.PanAngle)
5063	s.RollAngle = float64(s1.RollAngle)
5064	s.TiltAngle = float64(s1.TiltAngle)
5065	return nil
5066}
5067
5068// GoogleCloudVisionV1p2beta1FaceAnnotationLandmark: A face-specific
5069// landmark (for example, a face feature).
5070type GoogleCloudVisionV1p2beta1FaceAnnotationLandmark struct {
5071	// Position: Face landmark position.
5072	Position *GoogleCloudVisionV1p2beta1Position `json:"position,omitempty"`
5073
5074	// Type: Face landmark type.
5075	//
5076	// Possible values:
5077	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
5078	// filled.
5079	//   "LEFT_EYE" - Left eye.
5080	//   "RIGHT_EYE" - Right eye.
5081	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
5082	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
5083	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
5084	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
5085	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
5086	//   "NOSE_TIP" - Nose tip.
5087	//   "UPPER_LIP" - Upper lip.
5088	//   "LOWER_LIP" - Lower lip.
5089	//   "MOUTH_LEFT" - Mouth left.
5090	//   "MOUTH_RIGHT" - Mouth right.
5091	//   "MOUTH_CENTER" - Mouth center.
5092	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
5093	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
5094	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
5095	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
5096	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
5097	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
5098	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
5099	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
5100	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
5101	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
5102	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
5103	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
5104	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
5105	//   "LEFT_EAR_TRAGION" - Left ear tragion.
5106	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
5107	//   "LEFT_EYE_PUPIL" - Left eye pupil.
5108	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
5109	//   "FOREHEAD_GLABELLA" - Forehead glabella.
5110	//   "CHIN_GNATHION" - Chin gnathion.
5111	//   "CHIN_LEFT_GONION" - Chin left gonion.
5112	//   "CHIN_RIGHT_GONION" - Chin right gonion.
5113	Type string `json:"type,omitempty"`
5114
5115	// ForceSendFields is a list of field names (e.g. "Position") to
5116	// unconditionally include in API requests. By default, fields with
5117	// empty values are omitted from API requests. However, any non-pointer,
5118	// non-interface field appearing in ForceSendFields will be sent to the
5119	// server regardless of whether the field is empty or not. This may be
5120	// used to include empty fields in Patch requests.
5121	ForceSendFields []string `json:"-"`
5122
5123	// NullFields is a list of field names (e.g. "Position") to include in
5124	// API requests with the JSON null value. By default, fields with empty
5125	// values are omitted from API requests. However, any field with an
5126	// empty value appearing in NullFields will be sent to the server as
5127	// null. It is an error if a field in this list has a non-empty value.
5128	// This may be used to include null fields in Patch requests.
5129	NullFields []string `json:"-"`
5130}
5131
5132func (s *GoogleCloudVisionV1p2beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
5133	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotationLandmark
5134	raw := NoMethod(*s)
5135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5136}
5137
5138// GoogleCloudVisionV1p2beta1Feature: The type of Google Cloud Vision
5139// API detection to perform, and the maximum
5140// number of results to return for that type. Multiple `Feature` objects
5141// can
5142// be specified in the `features` list.
5143type GoogleCloudVisionV1p2beta1Feature struct {
5144	// MaxResults: Maximum number of results of this type. Does not apply
5145	// to
5146	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
5147	MaxResults int64 `json:"maxResults,omitempty"`
5148
5149	// Model: Model to use for the feature.
5150	// Supported values: "builtin/stable" (the default if unset)
5151	// and
5152	// "builtin/latest".
5153	Model string `json:"model,omitempty"`
5154
5155	// Type: The feature type.
5156	//
5157	// Possible values:
5158	//   "TYPE_UNSPECIFIED" - Unspecified feature type.
5159	//   "FACE_DETECTION" - Run face detection.
5160	//   "LANDMARK_DETECTION" - Run landmark detection.
5161	//   "LOGO_DETECTION" - Run logo detection.
5162	//   "LABEL_DETECTION" - Run label detection.
5163	//   "TEXT_DETECTION" - Run text detection / optical character
5164	// recognition (OCR). Text detection
5165	// is optimized for areas of text within a larger image; if the image
5166	// is
5167	// a document, use `DOCUMENT_TEXT_DETECTION` instead.
5168	//   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
5169	// precedence when both
5170	// `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present.
5171	//   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
5172	// unsafe
5173	// or undesirable content.
5174	//   "IMAGE_PROPERTIES" - Compute a set of image properties, such as
5175	// the
5176	// image's dominant colors.
5177	//   "CROP_HINTS" - Run crop hints.
5178	//   "WEB_DETECTION" - Run web detection.
5179	//   "PRODUCT_SEARCH" - Run Product Search.
5180	//   "OBJECT_LOCALIZATION" - Run localizer for object detection.
5181	Type string `json:"type,omitempty"`
5182
5183	// ForceSendFields is a list of field names (e.g. "MaxResults") to
5184	// unconditionally include in API requests. By default, fields with
5185	// empty values are omitted from API requests. However, any non-pointer,
5186	// non-interface field appearing in ForceSendFields will be sent to the
5187	// server regardless of whether the field is empty or not. This may be
5188	// used to include empty fields in Patch requests.
5189	ForceSendFields []string `json:"-"`
5190
5191	// NullFields is a list of field names (e.g. "MaxResults") to include in
5192	// API requests with the JSON null value. By default, fields with empty
5193	// values are omitted from API requests. However, any field with an
5194	// empty value appearing in NullFields will be sent to the server as
5195	// null. It is an error if a field in this list has a non-empty value.
5196	// This may be used to include null fields in Patch requests.
5197	NullFields []string `json:"-"`
5198}
5199
5200func (s *GoogleCloudVisionV1p2beta1Feature) MarshalJSON() ([]byte, error) {
5201	type NoMethod GoogleCloudVisionV1p2beta1Feature
5202	raw := NoMethod(*s)
5203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5204}
5205
5206// GoogleCloudVisionV1p2beta1GcsDestination: The Google Cloud Storage
5207// location where the output will be written to.
5208type GoogleCloudVisionV1p2beta1GcsDestination struct {
5209	// Uri: Google Cloud Storage URI prefix where the results will be
5210	// stored. Results
5211	// will be in JSON format and preceded by its corresponding input URI
5212	// prefix.
5213	// This field can either represent a gcs file prefix or gcs directory.
5214	// In
5215	// either case, the uri should be unique because in order to get all of
5216	// the
5217	// output files, you will need to do a wildcard gcs search on the uri
5218	// prefix
5219	// you provide.
5220	//
5221	// Examples:
5222	//
5223	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
5224	// files
5225	// will be created in gs://bucket-name/here/ and the names of the
5226	// output files will begin with "filenameprefix".
5227	//
5228	// *    Directory Prefix: gs://bucket-name/some/location/   The output
5229	// files
5230	// will be created in gs://bucket-name/some/location/ and the names of
5231	// the
5232	// output files could be anything because there was no filename
5233	// prefix
5234	// specified.
5235	//
5236	// If multiple outputs, each response is still AnnotateFileResponse,
5237	// each of
5238	// which contains some subset of the full list of
5239	// AnnotateImageResponse.
5240	// Multiple outputs can happen if, for example, the output JSON is too
5241	// large
5242	// and overflows into multiple sharded files.
5243	Uri string `json:"uri,omitempty"`
5244
5245	// ForceSendFields is a list of field names (e.g. "Uri") to
5246	// unconditionally include in API requests. By default, fields with
5247	// empty values are omitted from API requests. However, any non-pointer,
5248	// non-interface field appearing in ForceSendFields will be sent to the
5249	// server regardless of whether the field is empty or not. This may be
5250	// used to include empty fields in Patch requests.
5251	ForceSendFields []string `json:"-"`
5252
5253	// NullFields is a list of field names (e.g. "Uri") to include in API
5254	// requests with the JSON null value. By default, fields with empty
5255	// values are omitted from API requests. However, any field with an
5256	// empty value appearing in NullFields will be sent to the server as
5257	// null. It is an error if a field in this list has a non-empty value.
5258	// This may be used to include null fields in Patch requests.
5259	NullFields []string `json:"-"`
5260}
5261
5262func (s *GoogleCloudVisionV1p2beta1GcsDestination) MarshalJSON() ([]byte, error) {
5263	type NoMethod GoogleCloudVisionV1p2beta1GcsDestination
5264	raw := NoMethod(*s)
5265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5266}
5267
5268// GoogleCloudVisionV1p2beta1GcsSource: The Google Cloud Storage
5269// location where the input will be read from.
5270type GoogleCloudVisionV1p2beta1GcsSource struct {
5271	// Uri: Google Cloud Storage URI for the input file. This must only be
5272	// a
5273	// Google Cloud Storage object. Wildcards are not currently supported.
5274	Uri string `json:"uri,omitempty"`
5275
5276	// ForceSendFields is a list of field names (e.g. "Uri") to
5277	// unconditionally include in API requests. By default, fields with
5278	// empty values are omitted from API requests. However, any non-pointer,
5279	// non-interface field appearing in ForceSendFields will be sent to the
5280	// server regardless of whether the field is empty or not. This may be
5281	// used to include empty fields in Patch requests.
5282	ForceSendFields []string `json:"-"`
5283
5284	// NullFields is a list of field names (e.g. "Uri") to include in API
5285	// requests with the JSON null value. By default, fields with empty
5286	// values are omitted from API requests. However, any field with an
5287	// empty value appearing in NullFields will be sent to the server as
5288	// null. It is an error if a field in this list has a non-empty value.
5289	// This may be used to include null fields in Patch requests.
5290	NullFields []string `json:"-"`
5291}
5292
5293func (s *GoogleCloudVisionV1p2beta1GcsSource) MarshalJSON() ([]byte, error) {
5294	type NoMethod GoogleCloudVisionV1p2beta1GcsSource
5295	raw := NoMethod(*s)
5296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5297}
5298
5299// GoogleCloudVisionV1p2beta1Image: Client image to perform Google Cloud
5300// Vision API tasks over.
5301type GoogleCloudVisionV1p2beta1Image struct {
5302	// Content: Image content, represented as a stream of bytes.
5303	// Note: As with all `bytes` fields, protobuffers use a pure
5304	// binary
5305	// representation, whereas JSON representations use base64.
5306	Content string `json:"content,omitempty"`
5307
5308	// Source: Google Cloud Storage image location, or publicly-accessible
5309	// image
5310	// URL. If both `content` and `source` are provided for an image,
5311	// `content`
5312	// takes precedence and is used to perform the image annotation request.
5313	Source *GoogleCloudVisionV1p2beta1ImageSource `json:"source,omitempty"`
5314
5315	// ForceSendFields is a list of field names (e.g. "Content") to
5316	// unconditionally include in API requests. By default, fields with
5317	// empty values are omitted from API requests. However, any non-pointer,
5318	// non-interface field appearing in ForceSendFields will be sent to the
5319	// server regardless of whether the field is empty or not. This may be
5320	// used to include empty fields in Patch requests.
5321	ForceSendFields []string `json:"-"`
5322
5323	// NullFields is a list of field names (e.g. "Content") to include in
5324	// API requests with the JSON null value. By default, fields with empty
5325	// values are omitted from API requests. However, any field with an
5326	// empty value appearing in NullFields will be sent to the server as
5327	// null. It is an error if a field in this list has a non-empty value.
5328	// This may be used to include null fields in Patch requests.
5329	NullFields []string `json:"-"`
5330}
5331
5332func (s *GoogleCloudVisionV1p2beta1Image) MarshalJSON() ([]byte, error) {
5333	type NoMethod GoogleCloudVisionV1p2beta1Image
5334	raw := NoMethod(*s)
5335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5336}
5337
5338// GoogleCloudVisionV1p2beta1ImageAnnotationContext: If an image was
5339// produced from a file (e.g. a PDF), this message gives
5340// information about the source of that image.
5341type GoogleCloudVisionV1p2beta1ImageAnnotationContext struct {
5342	// PageNumber: If the file was a PDF or TIFF, this field gives the page
5343	// number within
5344	// the file used to produce the image.
5345	PageNumber int64 `json:"pageNumber,omitempty"`
5346
5347	// Uri: The URI of the file used to produce the image.
5348	Uri string `json:"uri,omitempty"`
5349
5350	// ForceSendFields is a list of field names (e.g. "PageNumber") to
5351	// unconditionally include in API requests. By default, fields with
5352	// empty values are omitted from API requests. However, any non-pointer,
5353	// non-interface field appearing in ForceSendFields will be sent to the
5354	// server regardless of whether the field is empty or not. This may be
5355	// used to include empty fields in Patch requests.
5356	ForceSendFields []string `json:"-"`
5357
5358	// NullFields is a list of field names (e.g. "PageNumber") to include in
5359	// API requests with the JSON null value. By default, fields with empty
5360	// values are omitted from API requests. However, any field with an
5361	// empty value appearing in NullFields will be sent to the server as
5362	// null. It is an error if a field in this list has a non-empty value.
5363	// This may be used to include null fields in Patch requests.
5364	NullFields []string `json:"-"`
5365}
5366
5367func (s *GoogleCloudVisionV1p2beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
5368	type NoMethod GoogleCloudVisionV1p2beta1ImageAnnotationContext
5369	raw := NoMethod(*s)
5370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5371}
5372
5373// GoogleCloudVisionV1p2beta1ImageContext: Image context and/or
5374// feature-specific parameters.
5375type GoogleCloudVisionV1p2beta1ImageContext struct {
5376	// CropHintsParams: Parameters for crop hints annotation request.
5377	CropHintsParams *GoogleCloudVisionV1p2beta1CropHintsParams `json:"cropHintsParams,omitempty"`
5378
5379	// LanguageHints: List of languages to use for TEXT_DETECTION. In most
5380	// cases, an empty value
5381	// yields the best results since it enables automatic language
5382	// detection. For
5383	// languages based on the Latin alphabet, setting `language_hints` is
5384	// not
5385	// needed. In rare cases, when the language of the text in the image is
5386	// known,
5387	// setting a hint will help get better results (although it will be
5388	// a
5389	// significant hindrance if the hint is wrong). Text detection returns
5390	// an
5391	// error if one or more of the specified languages is not one of
5392	// the
5393	// [supported languages](/vision/docs/languages).
5394	LanguageHints []string `json:"languageHints,omitempty"`
5395
5396	// LatLongRect: Not used.
5397	LatLongRect *GoogleCloudVisionV1p2beta1LatLongRect `json:"latLongRect,omitempty"`
5398
5399	// ProductSearchParams: Parameters for product search.
5400	ProductSearchParams *GoogleCloudVisionV1p2beta1ProductSearchParams `json:"productSearchParams,omitempty"`
5401
5402	// WebDetectionParams: Parameters for web detection.
5403	WebDetectionParams *GoogleCloudVisionV1p2beta1WebDetectionParams `json:"webDetectionParams,omitempty"`
5404
5405	// ForceSendFields is a list of field names (e.g. "CropHintsParams") to
5406	// unconditionally include in API requests. By default, fields with
5407	// empty values are omitted from API requests. However, any non-pointer,
5408	// non-interface field appearing in ForceSendFields will be sent to the
5409	// server regardless of whether the field is empty or not. This may be
5410	// used to include empty fields in Patch requests.
5411	ForceSendFields []string `json:"-"`
5412
5413	// NullFields is a list of field names (e.g. "CropHintsParams") to
5414	// include in API requests with the JSON null value. By default, fields
5415	// with empty values are omitted from API requests. However, any field
5416	// with an empty value appearing in NullFields will be sent to the
5417	// server as null. It is an error if a field in this list has a
5418	// non-empty value. This may be used to include null fields in Patch
5419	// requests.
5420	NullFields []string `json:"-"`
5421}
5422
5423func (s *GoogleCloudVisionV1p2beta1ImageContext) MarshalJSON() ([]byte, error) {
5424	type NoMethod GoogleCloudVisionV1p2beta1ImageContext
5425	raw := NoMethod(*s)
5426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5427}
5428
5429// GoogleCloudVisionV1p2beta1ImageProperties: Stores image properties,
5430// such as dominant colors.
5431type GoogleCloudVisionV1p2beta1ImageProperties struct {
5432	// DominantColors: If present, dominant colors completed successfully.
5433	DominantColors *GoogleCloudVisionV1p2beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
5434
5435	// ForceSendFields is a list of field names (e.g. "DominantColors") to
5436	// unconditionally include in API requests. By default, fields with
5437	// empty values are omitted from API requests. However, any non-pointer,
5438	// non-interface field appearing in ForceSendFields will be sent to the
5439	// server regardless of whether the field is empty or not. This may be
5440	// used to include empty fields in Patch requests.
5441	ForceSendFields []string `json:"-"`
5442
5443	// NullFields is a list of field names (e.g. "DominantColors") to
5444	// include in API requests with the JSON null value. By default, fields
5445	// with empty values are omitted from API requests. However, any field
5446	// with an empty value appearing in NullFields will be sent to the
5447	// server as null. It is an error if a field in this list has a
5448	// non-empty value. This may be used to include null fields in Patch
5449	// requests.
5450	NullFields []string `json:"-"`
5451}
5452
5453func (s *GoogleCloudVisionV1p2beta1ImageProperties) MarshalJSON() ([]byte, error) {
5454	type NoMethod GoogleCloudVisionV1p2beta1ImageProperties
5455	raw := NoMethod(*s)
5456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5457}
5458
5459// GoogleCloudVisionV1p2beta1ImageSource: External image source (Google
5460// Cloud Storage or web URL image location).
5461type GoogleCloudVisionV1p2beta1ImageSource struct {
5462	// GcsImageUri: **Use `image_uri` instead.**
5463	//
5464	// The Google Cloud Storage  URI of the
5465	// form
5466	// `gs://bucket_name/object_name`. Object versioning is not supported.
5467	// See
5468	// [Google Cloud Storage
5469	// Request
5470	// URIs](https://cloud.google.com/storage/docs/reference-uris) for more
5471	// info.
5472	GcsImageUri string `json:"gcsImageUri,omitempty"`
5473
5474	// ImageUri: The URI of the source image. Can be either:
5475	//
5476	// 1. A Google Cloud Storage URI of the form
5477	//    `gs://bucket_name/object_name`. Object versioning is not
5478	// supported. See
5479	//    [Google Cloud Storage Request
5480	//    URIs](https://cloud.google.com/storage/docs/reference-uris) for
5481	// more
5482	//    info.
5483	//
5484	// 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images
5485	// from
5486	//    HTTP/HTTPS URLs, Google cannot guarantee that the request will be
5487	//    completed. Your request may fail if the specified host denies the
5488	//    request (e.g. due to request throttling or DOS prevention), or if
5489	// Google
5490	//    throttles requests to the site for abuse prevention. You should
5491	// not
5492	//    depend on externally-hosted images for production
5493	// applications.
5494	//
5495	// When both `gcs_image_uri` and `image_uri` are specified, `image_uri`
5496	// takes
5497	// precedence.
5498	ImageUri string `json:"imageUri,omitempty"`
5499
5500	// ForceSendFields is a list of field names (e.g. "GcsImageUri") to
5501	// unconditionally include in API requests. By default, fields with
5502	// empty values are omitted from API requests. However, any non-pointer,
5503	// non-interface field appearing in ForceSendFields will be sent to the
5504	// server regardless of whether the field is empty or not. This may be
5505	// used to include empty fields in Patch requests.
5506	ForceSendFields []string `json:"-"`
5507
5508	// NullFields is a list of field names (e.g. "GcsImageUri") to include
5509	// in API requests with the JSON null value. By default, fields with
5510	// empty values are omitted from API requests. However, any field with
5511	// an empty value appearing in NullFields will be sent to the server as
5512	// null. It is an error if a field in this list has a non-empty value.
5513	// This may be used to include null fields in Patch requests.
5514	NullFields []string `json:"-"`
5515}
5516
5517func (s *GoogleCloudVisionV1p2beta1ImageSource) MarshalJSON() ([]byte, error) {
5518	type NoMethod GoogleCloudVisionV1p2beta1ImageSource
5519	raw := NoMethod(*s)
5520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5521}
5522
5523// GoogleCloudVisionV1p2beta1InputConfig: The desired input location and
5524// metadata.
5525type GoogleCloudVisionV1p2beta1InputConfig struct {
5526	// Content: File content, represented as a stream of bytes.
5527	// Note: As with all `bytes` fields, protobuffers use a pure
5528	// binary
5529	// representation, whereas JSON representations use base64.
5530	//
5531	// Currently, this field only works for BatchAnnotateFiles requests. It
5532	// does
5533	// not work for AsyncBatchAnnotateFiles requests.
5534	Content string `json:"content,omitempty"`
5535
5536	// GcsSource: The Google Cloud Storage location to read the input from.
5537	GcsSource *GoogleCloudVisionV1p2beta1GcsSource `json:"gcsSource,omitempty"`
5538
5539	// MimeType: The type of the file. Currently only "application/pdf",
5540	// "image/tiff" and
5541	// "image/gif" are supported. Wildcards are not supported.
5542	MimeType string `json:"mimeType,omitempty"`
5543
5544	// ForceSendFields is a list of field names (e.g. "Content") to
5545	// unconditionally include in API requests. By default, fields with
5546	// empty values are omitted from API requests. However, any non-pointer,
5547	// non-interface field appearing in ForceSendFields will be sent to the
5548	// server regardless of whether the field is empty or not. This may be
5549	// used to include empty fields in Patch requests.
5550	ForceSendFields []string `json:"-"`
5551
5552	// NullFields is a list of field names (e.g. "Content") to include in
5553	// API requests with the JSON null value. By default, fields with empty
5554	// values are omitted from API requests. However, any field with an
5555	// empty value appearing in NullFields will be sent to the server as
5556	// null. It is an error if a field in this list has a non-empty value.
5557	// This may be used to include null fields in Patch requests.
5558	NullFields []string `json:"-"`
5559}
5560
5561func (s *GoogleCloudVisionV1p2beta1InputConfig) MarshalJSON() ([]byte, error) {
5562	type NoMethod GoogleCloudVisionV1p2beta1InputConfig
5563	raw := NoMethod(*s)
5564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5565}
5566
5567// GoogleCloudVisionV1p2beta1LatLongRect: Rectangle determined by min
5568// and max `LatLng` pairs.
5569type GoogleCloudVisionV1p2beta1LatLongRect struct {
5570	// MaxLatLng: Max lat/long pair.
5571	MaxLatLng *LatLng `json:"maxLatLng,omitempty"`
5572
5573	// MinLatLng: Min lat/long pair.
5574	MinLatLng *LatLng `json:"minLatLng,omitempty"`
5575
5576	// ForceSendFields is a list of field names (e.g. "MaxLatLng") to
5577	// unconditionally include in API requests. By default, fields with
5578	// empty values are omitted from API requests. However, any non-pointer,
5579	// non-interface field appearing in ForceSendFields will be sent to the
5580	// server regardless of whether the field is empty or not. This may be
5581	// used to include empty fields in Patch requests.
5582	ForceSendFields []string `json:"-"`
5583
5584	// NullFields is a list of field names (e.g. "MaxLatLng") to include in
5585	// API requests with the JSON null value. By default, fields with empty
5586	// values are omitted from API requests. However, any field with an
5587	// empty value appearing in NullFields will be sent to the server as
5588	// null. It is an error if a field in this list has a non-empty value.
5589	// This may be used to include null fields in Patch requests.
5590	NullFields []string `json:"-"`
5591}
5592
5593func (s *GoogleCloudVisionV1p2beta1LatLongRect) MarshalJSON() ([]byte, error) {
5594	type NoMethod GoogleCloudVisionV1p2beta1LatLongRect
5595	raw := NoMethod(*s)
5596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5597}
5598
5599// GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation: Set of detected
5600// objects with bounding boxes.
5601type GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation struct {
5602	// BoundingPoly: Image region to which this object belongs. This must be
5603	// populated.
5604	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5605
5606	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5607	// For more
5608	// information,
5609	// see
5610	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5611	LanguageCode string `json:"languageCode,omitempty"`
5612
5613	// Mid: Object ID that should align with EntityAnnotation mid.
5614	Mid string `json:"mid,omitempty"`
5615
5616	// Name: Object name, expressed in its `language_code` language.
5617	Name string `json:"name,omitempty"`
5618
5619	// Score: Score of the result. Range [0, 1].
5620	Score float64 `json:"score,omitempty"`
5621
5622	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5623	// unconditionally include in API requests. By default, fields with
5624	// empty values are omitted from API requests. However, any non-pointer,
5625	// non-interface field appearing in ForceSendFields will be sent to the
5626	// server regardless of whether the field is empty or not. This may be
5627	// used to include empty fields in Patch requests.
5628	ForceSendFields []string `json:"-"`
5629
5630	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5631	// in API requests with the JSON null value. By default, fields with
5632	// empty values are omitted from API requests. However, any field with
5633	// an empty value appearing in NullFields will be sent to the server as
5634	// null. It is an error if a field in this list has a non-empty value.
5635	// This may be used to include null fields in Patch requests.
5636	NullFields []string `json:"-"`
5637}
5638
5639func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
5640	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5641	raw := NoMethod(*s)
5642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5643}
5644
5645func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
5646	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5647	var s1 struct {
5648		Score gensupport.JSONFloat64 `json:"score"`
5649		*NoMethod
5650	}
5651	s1.NoMethod = (*NoMethod)(s)
5652	if err := json.Unmarshal(data, &s1); err != nil {
5653		return err
5654	}
5655	s.Score = float64(s1.Score)
5656	return nil
5657}
5658
5659// GoogleCloudVisionV1p2beta1LocationInfo: Detected entity location
5660// information.
5661type GoogleCloudVisionV1p2beta1LocationInfo struct {
5662	// LatLng: lat/long location coordinates.
5663	LatLng *LatLng `json:"latLng,omitempty"`
5664
5665	// ForceSendFields is a list of field names (e.g. "LatLng") to
5666	// unconditionally include in API requests. By default, fields with
5667	// empty values are omitted from API requests. However, any non-pointer,
5668	// non-interface field appearing in ForceSendFields will be sent to the
5669	// server regardless of whether the field is empty or not. This may be
5670	// used to include empty fields in Patch requests.
5671	ForceSendFields []string `json:"-"`
5672
5673	// NullFields is a list of field names (e.g. "LatLng") to include in API
5674	// requests with the JSON null value. By default, fields with empty
5675	// values are omitted from API requests. However, any field with an
5676	// empty value appearing in NullFields will be sent to the server as
5677	// null. It is an error if a field in this list has a non-empty value.
5678	// This may be used to include null fields in Patch requests.
5679	NullFields []string `json:"-"`
5680}
5681
5682func (s *GoogleCloudVisionV1p2beta1LocationInfo) MarshalJSON() ([]byte, error) {
5683	type NoMethod GoogleCloudVisionV1p2beta1LocationInfo
5684	raw := NoMethod(*s)
5685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5686}
5687
5688// GoogleCloudVisionV1p2beta1NormalizedVertex: A vertex represents a 2D
5689// point in the image.
5690// NOTE: the normalized vertex coordinates are relative to the original
5691// image
5692// and range from 0 to 1.
5693type GoogleCloudVisionV1p2beta1NormalizedVertex struct {
5694	// X: X coordinate.
5695	X float64 `json:"x,omitempty"`
5696
5697	// Y: Y coordinate.
5698	Y float64 `json:"y,omitempty"`
5699
5700	// ForceSendFields is a list of field names (e.g. "X") to
5701	// unconditionally include in API requests. By default, fields with
5702	// empty values are omitted from API requests. However, any non-pointer,
5703	// non-interface field appearing in ForceSendFields will be sent to the
5704	// server regardless of whether the field is empty or not. This may be
5705	// used to include empty fields in Patch requests.
5706	ForceSendFields []string `json:"-"`
5707
5708	// NullFields is a list of field names (e.g. "X") to include in API
5709	// requests with the JSON null value. By default, fields with empty
5710	// values are omitted from API requests. However, any field with an
5711	// empty value appearing in NullFields will be sent to the server as
5712	// null. It is an error if a field in this list has a non-empty value.
5713	// This may be used to include null fields in Patch requests.
5714	NullFields []string `json:"-"`
5715}
5716
5717func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
5718	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5719	raw := NoMethod(*s)
5720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5721}
5722
5723func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
5724	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5725	var s1 struct {
5726		X gensupport.JSONFloat64 `json:"x"`
5727		Y gensupport.JSONFloat64 `json:"y"`
5728		*NoMethod
5729	}
5730	s1.NoMethod = (*NoMethod)(s)
5731	if err := json.Unmarshal(data, &s1); err != nil {
5732		return err
5733	}
5734	s.X = float64(s1.X)
5735	s.Y = float64(s1.Y)
5736	return nil
5737}
5738
5739// GoogleCloudVisionV1p2beta1OperationMetadata: Contains metadata for
5740// the BatchAnnotateImages operation.
5741type GoogleCloudVisionV1p2beta1OperationMetadata struct {
5742	// CreateTime: The time when the batch request was received.
5743	CreateTime string `json:"createTime,omitempty"`
5744
5745	// State: Current state of the batch operation.
5746	//
5747	// Possible values:
5748	//   "STATE_UNSPECIFIED" - Invalid.
5749	//   "CREATED" - Request is received.
5750	//   "RUNNING" - Request is actively being processed.
5751	//   "DONE" - The batch processing is done.
5752	//   "CANCELLED" - The batch processing was cancelled.
5753	State string `json:"state,omitempty"`
5754
5755	// UpdateTime: The time when the operation result was last updated.
5756	UpdateTime string `json:"updateTime,omitempty"`
5757
5758	// ForceSendFields is a list of field names (e.g. "CreateTime") to
5759	// unconditionally include in API requests. By default, fields with
5760	// empty values are omitted from API requests. However, any non-pointer,
5761	// non-interface field appearing in ForceSendFields will be sent to the
5762	// server regardless of whether the field is empty or not. This may be
5763	// used to include empty fields in Patch requests.
5764	ForceSendFields []string `json:"-"`
5765
5766	// NullFields is a list of field names (e.g. "CreateTime") to include in
5767	// API requests with the JSON null value. By default, fields with empty
5768	// values are omitted from API requests. However, any field with an
5769	// empty value appearing in NullFields will be sent to the server as
5770	// null. It is an error if a field in this list has a non-empty value.
5771	// This may be used to include null fields in Patch requests.
5772	NullFields []string `json:"-"`
5773}
5774
5775func (s *GoogleCloudVisionV1p2beta1OperationMetadata) MarshalJSON() ([]byte, error) {
5776	type NoMethod GoogleCloudVisionV1p2beta1OperationMetadata
5777	raw := NoMethod(*s)
5778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5779}
5780
5781// GoogleCloudVisionV1p2beta1OutputConfig: The desired output location
5782// and metadata.
5783type GoogleCloudVisionV1p2beta1OutputConfig struct {
5784	// BatchSize: The max number of response protos to put into each output
5785	// JSON file on
5786	// Google Cloud Storage.
5787	// The valid range is [1, 100]. If not specified, the default value is
5788	// 20.
5789	//
5790	// For example, for one pdf file with 100 pages, 100 response protos
5791	// will
5792	// be generated. If `batch_size` = 20, then 5 json files each
5793	// containing 20 response protos will be written under the
5794	// prefix
5795	// `gcs_destination`.`uri`.
5796	//
5797	// Currently, batch_size only applies to GcsDestination, with potential
5798	// future
5799	// support for other output configurations.
5800	BatchSize int64 `json:"batchSize,omitempty"`
5801
5802	// GcsDestination: The Google Cloud Storage location to write the
5803	// output(s) to.
5804	GcsDestination *GoogleCloudVisionV1p2beta1GcsDestination `json:"gcsDestination,omitempty"`
5805
5806	// ForceSendFields is a list of field names (e.g. "BatchSize") to
5807	// unconditionally include in API requests. By default, fields with
5808	// empty values are omitted from API requests. However, any non-pointer,
5809	// non-interface field appearing in ForceSendFields will be sent to the
5810	// server regardless of whether the field is empty or not. This may be
5811	// used to include empty fields in Patch requests.
5812	ForceSendFields []string `json:"-"`
5813
5814	// NullFields is a list of field names (e.g. "BatchSize") to include in
5815	// API requests with the JSON null value. By default, fields with empty
5816	// values are omitted from API requests. However, any field with an
5817	// empty value appearing in NullFields will be sent to the server as
5818	// null. It is an error if a field in this list has a non-empty value.
5819	// This may be used to include null fields in Patch requests.
5820	NullFields []string `json:"-"`
5821}
5822
5823func (s *GoogleCloudVisionV1p2beta1OutputConfig) MarshalJSON() ([]byte, error) {
5824	type NoMethod GoogleCloudVisionV1p2beta1OutputConfig
5825	raw := NoMethod(*s)
5826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5827}
5828
5829// GoogleCloudVisionV1p2beta1Page: Detected page from OCR.
5830type GoogleCloudVisionV1p2beta1Page struct {
5831	// Blocks: List of blocks of text, images etc on this page.
5832	Blocks []*GoogleCloudVisionV1p2beta1Block `json:"blocks,omitempty"`
5833
5834	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
5835	Confidence float64 `json:"confidence,omitempty"`
5836
5837	// Height: Page height. For PDFs the unit is points. For images
5838	// (including
5839	// TIFFs) the unit is pixels.
5840	Height int64 `json:"height,omitempty"`
5841
5842	// Property: Additional information detected on the page.
5843	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5844
5845	// Width: Page width. For PDFs the unit is points. For images
5846	// (including
5847	// TIFFs) the unit is pixels.
5848	Width int64 `json:"width,omitempty"`
5849
5850	// ForceSendFields is a list of field names (e.g. "Blocks") to
5851	// unconditionally include in API requests. By default, fields with
5852	// empty values are omitted from API requests. However, any non-pointer,
5853	// non-interface field appearing in ForceSendFields will be sent to the
5854	// server regardless of whether the field is empty or not. This may be
5855	// used to include empty fields in Patch requests.
5856	ForceSendFields []string `json:"-"`
5857
5858	// NullFields is a list of field names (e.g. "Blocks") to include in API
5859	// requests with the JSON null value. By default, fields with empty
5860	// values are omitted from API requests. However, any field with an
5861	// empty value appearing in NullFields will be sent to the server as
5862	// null. It is an error if a field in this list has a non-empty value.
5863	// This may be used to include null fields in Patch requests.
5864	NullFields []string `json:"-"`
5865}
5866
5867func (s *GoogleCloudVisionV1p2beta1Page) MarshalJSON() ([]byte, error) {
5868	type NoMethod GoogleCloudVisionV1p2beta1Page
5869	raw := NoMethod(*s)
5870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5871}
5872
5873func (s *GoogleCloudVisionV1p2beta1Page) UnmarshalJSON(data []byte) error {
5874	type NoMethod GoogleCloudVisionV1p2beta1Page
5875	var s1 struct {
5876		Confidence gensupport.JSONFloat64 `json:"confidence"`
5877		*NoMethod
5878	}
5879	s1.NoMethod = (*NoMethod)(s)
5880	if err := json.Unmarshal(data, &s1); err != nil {
5881		return err
5882	}
5883	s.Confidence = float64(s1.Confidence)
5884	return nil
5885}
5886
5887// GoogleCloudVisionV1p2beta1Paragraph: Structural unit of text
5888// representing a number of words in certain order.
5889type GoogleCloudVisionV1p2beta1Paragraph struct {
5890	// BoundingBox: The bounding box for the paragraph.
5891	// The vertices are in the order of top-left, top-right,
5892	// bottom-right,
5893	// bottom-left. When a rotation of the bounding box is detected the
5894	// rotation
5895	// is represented as around the top-left corner as defined when the text
5896	// is
5897	// read in the 'natural' orientation.
5898	// For example:
5899	//   * when the text is horizontal it might look like:
5900	//      0----1
5901	//      |    |
5902	//      3----2
5903	//   * when it's rotated 180 degrees around the top-left corner it
5904	// becomes:
5905	//      2----3
5906	//      |    |
5907	//      1----0
5908	//   and the vertex order will still be (0, 1, 2, 3).
5909	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5910
5911	// Confidence: Confidence of the OCR results for the paragraph. Range
5912	// [0, 1].
5913	Confidence float64 `json:"confidence,omitempty"`
5914
5915	// Property: Additional information detected for the paragraph.
5916	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5917
5918	// Words: List of words in this paragraph.
5919	Words []*GoogleCloudVisionV1p2beta1Word `json:"words,omitempty"`
5920
5921	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5922	// unconditionally include in API requests. By default, fields with
5923	// empty values are omitted from API requests. However, any non-pointer,
5924	// non-interface field appearing in ForceSendFields will be sent to the
5925	// server regardless of whether the field is empty or not. This may be
5926	// used to include empty fields in Patch requests.
5927	ForceSendFields []string `json:"-"`
5928
5929	// NullFields is a list of field names (e.g. "BoundingBox") to include
5930	// in API requests with the JSON null value. By default, fields with
5931	// empty values are omitted from API requests. However, any field with
5932	// an empty value appearing in NullFields will be sent to the server as
5933	// null. It is an error if a field in this list has a non-empty value.
5934	// This may be used to include null fields in Patch requests.
5935	NullFields []string `json:"-"`
5936}
5937
5938func (s *GoogleCloudVisionV1p2beta1Paragraph) MarshalJSON() ([]byte, error) {
5939	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5940	raw := NoMethod(*s)
5941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5942}
5943
5944func (s *GoogleCloudVisionV1p2beta1Paragraph) UnmarshalJSON(data []byte) error {
5945	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5946	var s1 struct {
5947		Confidence gensupport.JSONFloat64 `json:"confidence"`
5948		*NoMethod
5949	}
5950	s1.NoMethod = (*NoMethod)(s)
5951	if err := json.Unmarshal(data, &s1); err != nil {
5952		return err
5953	}
5954	s.Confidence = float64(s1.Confidence)
5955	return nil
5956}
5957
5958// GoogleCloudVisionV1p2beta1Position: A 3D position in the image, used
5959// primarily for Face detection landmarks.
5960// A valid Position must have both x and y coordinates.
5961// The position coordinates are in the same scale as the original image.
5962type GoogleCloudVisionV1p2beta1Position struct {
5963	// X: X coordinate.
5964	X float64 `json:"x,omitempty"`
5965
5966	// Y: Y coordinate.
5967	Y float64 `json:"y,omitempty"`
5968
5969	// Z: Z coordinate (or depth).
5970	Z float64 `json:"z,omitempty"`
5971
5972	// ForceSendFields is a list of field names (e.g. "X") to
5973	// unconditionally include in API requests. By default, fields with
5974	// empty values are omitted from API requests. However, any non-pointer,
5975	// non-interface field appearing in ForceSendFields will be sent to the
5976	// server regardless of whether the field is empty or not. This may be
5977	// used to include empty fields in Patch requests.
5978	ForceSendFields []string `json:"-"`
5979
5980	// NullFields is a list of field names (e.g. "X") to include in API
5981	// requests with the JSON null value. By default, fields with empty
5982	// values are omitted from API requests. However, any field with an
5983	// empty value appearing in NullFields will be sent to the server as
5984	// null. It is an error if a field in this list has a non-empty value.
5985	// This may be used to include null fields in Patch requests.
5986	NullFields []string `json:"-"`
5987}
5988
5989func (s *GoogleCloudVisionV1p2beta1Position) MarshalJSON() ([]byte, error) {
5990	type NoMethod GoogleCloudVisionV1p2beta1Position
5991	raw := NoMethod(*s)
5992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5993}
5994
5995func (s *GoogleCloudVisionV1p2beta1Position) UnmarshalJSON(data []byte) error {
5996	type NoMethod GoogleCloudVisionV1p2beta1Position
5997	var s1 struct {
5998		X gensupport.JSONFloat64 `json:"x"`
5999		Y gensupport.JSONFloat64 `json:"y"`
6000		Z gensupport.JSONFloat64 `json:"z"`
6001		*NoMethod
6002	}
6003	s1.NoMethod = (*NoMethod)(s)
6004	if err := json.Unmarshal(data, &s1); err != nil {
6005		return err
6006	}
6007	s.X = float64(s1.X)
6008	s.Y = float64(s1.Y)
6009	s.Z = float64(s1.Z)
6010	return nil
6011}
6012
6013// GoogleCloudVisionV1p2beta1Product: A Product contains
6014// ReferenceImages.
6015type GoogleCloudVisionV1p2beta1Product struct {
6016	// Description: User-provided metadata to be stored with this product.
6017	// Must be at most 4096
6018	// characters long.
6019	Description string `json:"description,omitempty"`
6020
6021	// DisplayName: The user-provided name for this Product. Must not be
6022	// empty. Must be at most
6023	// 4096 characters long.
6024	DisplayName string `json:"displayName,omitempty"`
6025
6026	// Name: The resource name of the product.
6027	//
6028	// Format
6029	// is:
6030	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
6031	//
6032	// This field is ignored when creating a product.
6033	Name string `json:"name,omitempty"`
6034
6035	// ProductCategory: The category for the product identified by the
6036	// reference image. This should
6037	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
6038	// categories
6039	// "homegoods", "apparel", and "toys" are still supported, but these
6040	// should
6041	// not be used for new products.
6042	//
6043	// This field is immutable.
6044	ProductCategory string `json:"productCategory,omitempty"`
6045
6046	// ProductLabels: Key-value pairs that can be attached to a product. At
6047	// query time,
6048	// constraints can be specified based on the product_labels.
6049	//
6050	// Note that integer values can be provided as strings, e.g. "1199".
6051	// Only
6052	// strings with integer values can match a range-based restriction which
6053	// is
6054	// to be supported soon.
6055	//
6056	// Multiple values can be assigned to the same key. One product may have
6057	// up to
6058	// 100 product_labels.
6059	ProductLabels []*GoogleCloudVisionV1p2beta1ProductKeyValue `json:"productLabels,omitempty"`
6060
6061	// ForceSendFields is a list of field names (e.g. "Description") to
6062	// unconditionally include in API requests. By default, fields with
6063	// empty values are omitted from API requests. However, any non-pointer,
6064	// non-interface field appearing in ForceSendFields will be sent to the
6065	// server regardless of whether the field is empty or not. This may be
6066	// used to include empty fields in Patch requests.
6067	ForceSendFields []string `json:"-"`
6068
6069	// NullFields is a list of field names (e.g. "Description") to include
6070	// in API requests with the JSON null value. By default, fields with
6071	// empty values are omitted from API requests. However, any field with
6072	// an empty value appearing in NullFields will be sent to the server as
6073	// null. It is an error if a field in this list has a non-empty value.
6074	// This may be used to include null fields in Patch requests.
6075	NullFields []string `json:"-"`
6076}
6077
6078func (s *GoogleCloudVisionV1p2beta1Product) MarshalJSON() ([]byte, error) {
6079	type NoMethod GoogleCloudVisionV1p2beta1Product
6080	raw := NoMethod(*s)
6081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6082}
6083
6084// GoogleCloudVisionV1p2beta1ProductKeyValue: A product label
6085// represented as a key-value pair.
6086type GoogleCloudVisionV1p2beta1ProductKeyValue struct {
6087	// Key: The key of the label attached to the product. Cannot be empty
6088	// and cannot
6089	// exceed 128 bytes.
6090	Key string `json:"key,omitempty"`
6091
6092	// Value: The value of the label attached to the product. Cannot be
6093	// empty and
6094	// cannot exceed 128 bytes.
6095	Value string `json:"value,omitempty"`
6096
6097	// ForceSendFields is a list of field names (e.g. "Key") to
6098	// unconditionally include in API requests. By default, fields with
6099	// empty values are omitted from API requests. However, any non-pointer,
6100	// non-interface field appearing in ForceSendFields will be sent to the
6101	// server regardless of whether the field is empty or not. This may be
6102	// used to include empty fields in Patch requests.
6103	ForceSendFields []string `json:"-"`
6104
6105	// NullFields is a list of field names (e.g. "Key") to include in API
6106	// requests with the JSON null value. By default, fields with empty
6107	// values are omitted from API requests. However, any field with an
6108	// empty value appearing in NullFields will be sent to the server as
6109	// null. It is an error if a field in this list has a non-empty value.
6110	// This may be used to include null fields in Patch requests.
6111	NullFields []string `json:"-"`
6112}
6113
6114func (s *GoogleCloudVisionV1p2beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
6115	type NoMethod GoogleCloudVisionV1p2beta1ProductKeyValue
6116	raw := NoMethod(*s)
6117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6118}
6119
6120// GoogleCloudVisionV1p2beta1ProductSearchParams: Parameters for a
6121// product search request.
6122type GoogleCloudVisionV1p2beta1ProductSearchParams struct {
6123	// BoundingPoly: The bounding polygon around the area of interest in the
6124	// image.
6125	// Optional. If it is not specified, system discretion will be applied.
6126	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
6127
6128	// Filter: The filtering expression. This can be used to restrict search
6129	// results based
6130	// on Product labels. We currently support an AND of OR of
6131	// key-value
6132	// expressions, where each expression within an OR must have the same
6133	// key. An
6134	// '=' should be used to connect the key and value.
6135	//
6136	// For example, "(color = red OR color = blue) AND brand = Google"
6137	// is
6138	// acceptable, but "(color = red OR brand = Google)" is not
6139	// acceptable.
6140	// "color: red" is not acceptable because it uses a ':' instead of an
6141	// '='.
6142	Filter string `json:"filter,omitempty"`
6143
6144	// ProductCategories: The list of product categories to search in.
6145	// Currently, we only consider
6146	// the first category, and either "homegoods-v2", "apparel-v2", or
6147	// "toys-v2"
6148	// should be specified. The legacy categories "homegoods", "apparel",
6149	// and
6150	// "toys" are still supported but will be deprecated. For new products,
6151	// please
6152	// use "homegoods-v2", "apparel-v2", or "toys-v2" for better product
6153	// search
6154	// accuracy. It is recommended to migrate existing products to
6155	// these
6156	// categories as well.
6157	ProductCategories []string `json:"productCategories,omitempty"`
6158
6159	// ProductSet: The resource name of a ProductSet to be searched for
6160	// similar images.
6161	//
6162	// Format
6163	// is:
6164	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
6165	ProductSet string `json:"productSet,omitempty"`
6166
6167	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
6168	// unconditionally include in API requests. By default, fields with
6169	// empty values are omitted from API requests. However, any non-pointer,
6170	// non-interface field appearing in ForceSendFields will be sent to the
6171	// server regardless of whether the field is empty or not. This may be
6172	// used to include empty fields in Patch requests.
6173	ForceSendFields []string `json:"-"`
6174
6175	// NullFields is a list of field names (e.g. "BoundingPoly") to include
6176	// in API requests with the JSON null value. By default, fields with
6177	// empty values are omitted from API requests. However, any field with
6178	// an empty value appearing in NullFields will be sent to the server as
6179	// null. It is an error if a field in this list has a non-empty value.
6180	// This may be used to include null fields in Patch requests.
6181	NullFields []string `json:"-"`
6182}
6183
6184func (s *GoogleCloudVisionV1p2beta1ProductSearchParams) MarshalJSON() ([]byte, error) {
6185	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchParams
6186	raw := NoMethod(*s)
6187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6188}
6189
6190// GoogleCloudVisionV1p2beta1ProductSearchResults: Results for a product
6191// search request.
6192type GoogleCloudVisionV1p2beta1ProductSearchResults struct {
6193	// IndexTime: Timestamp of the index which provided these results.
6194	// Products added to the
6195	// product set and products removed from the product set after this time
6196	// are
6197	// not reflected in the current results.
6198	IndexTime string `json:"indexTime,omitempty"`
6199
6200	// ProductGroupedResults: List of results grouped by products detected
6201	// in the query image. Each entry
6202	// corresponds to one bounding polygon in the query image, and contains
6203	// the
6204	// matching products specific to that region. There may be duplicate
6205	// product
6206	// matches in the union of all the per-product results.
6207	ProductGroupedResults []*GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
6208
6209	// Results: List of results, one for each product match.
6210	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6211
6212	// ForceSendFields is a list of field names (e.g. "IndexTime") to
6213	// unconditionally include in API requests. By default, fields with
6214	// empty values are omitted from API requests. However, any non-pointer,
6215	// non-interface field appearing in ForceSendFields will be sent to the
6216	// server regardless of whether the field is empty or not. This may be
6217	// used to include empty fields in Patch requests.
6218	ForceSendFields []string `json:"-"`
6219
6220	// NullFields is a list of field names (e.g. "IndexTime") to include in
6221	// API requests with the JSON null value. By default, fields with empty
6222	// values are omitted from API requests. However, any field with an
6223	// empty value appearing in NullFields will be sent to the server as
6224	// null. It is an error if a field in this list has a non-empty value.
6225	// This may be used to include null fields in Patch requests.
6226	NullFields []string `json:"-"`
6227}
6228
6229func (s *GoogleCloudVisionV1p2beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
6230	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResults
6231	raw := NoMethod(*s)
6232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6233}
6234
6235// GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult:
6236// Information about the products similar to a single product in a
6237// query
6238// image.
6239type GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult struct {
6240	// BoundingPoly: The bounding polygon around the product detected in the
6241	// query image.
6242	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
6243
6244	// Results: List of results, one for each product match.
6245	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6246
6247	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
6248	// unconditionally include in API requests. By default, fields with
6249	// empty values are omitted from API requests. However, any non-pointer,
6250	// non-interface field appearing in ForceSendFields will be sent to the
6251	// server regardless of whether the field is empty or not. This may be
6252	// used to include empty fields in Patch requests.
6253	ForceSendFields []string `json:"-"`
6254
6255	// NullFields is a list of field names (e.g. "BoundingPoly") to include
6256	// in API requests with the JSON null value. By default, fields with
6257	// empty values are omitted from API requests. However, any field with
6258	// an empty value appearing in NullFields will be sent to the server as
6259	// null. It is an error if a field in this list has a non-empty value.
6260	// This may be used to include null fields in Patch requests.
6261	NullFields []string `json:"-"`
6262}
6263
6264func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
6265	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult
6266	raw := NoMethod(*s)
6267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6268}
6269
6270// GoogleCloudVisionV1p2beta1ProductSearchResultsResult: Information
6271// about a product.
6272type GoogleCloudVisionV1p2beta1ProductSearchResultsResult struct {
6273	// Image: The resource name of the image from the product that is the
6274	// closest match
6275	// to the query.
6276	Image string `json:"image,omitempty"`
6277
6278	// Product: The Product.
6279	Product *GoogleCloudVisionV1p2beta1Product `json:"product,omitempty"`
6280
6281	// Score: A confidence level on the match, ranging from 0 (no
6282	// confidence) to
6283	// 1 (full confidence).
6284	Score float64 `json:"score,omitempty"`
6285
6286	// ForceSendFields is a list of field names (e.g. "Image") to
6287	// unconditionally include in API requests. By default, fields with
6288	// empty values are omitted from API requests. However, any non-pointer,
6289	// non-interface field appearing in ForceSendFields will be sent to the
6290	// server regardless of whether the field is empty or not. This may be
6291	// used to include empty fields in Patch requests.
6292	ForceSendFields []string `json:"-"`
6293
6294	// NullFields is a list of field names (e.g. "Image") to include in API
6295	// requests with the JSON null value. By default, fields with empty
6296	// values are omitted from API requests. However, any field with an
6297	// empty value appearing in NullFields will be sent to the server as
6298	// null. It is an error if a field in this list has a non-empty value.
6299	// This may be used to include null fields in Patch requests.
6300	NullFields []string `json:"-"`
6301}
6302
6303func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
6304	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6305	raw := NoMethod(*s)
6306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6307}
6308
6309func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
6310	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6311	var s1 struct {
6312		Score gensupport.JSONFloat64 `json:"score"`
6313		*NoMethod
6314	}
6315	s1.NoMethod = (*NoMethod)(s)
6316	if err := json.Unmarshal(data, &s1); err != nil {
6317		return err
6318	}
6319	s.Score = float64(s1.Score)
6320	return nil
6321}
6322
6323// GoogleCloudVisionV1p2beta1Property: A `Property` consists of a
6324// user-supplied name/value pair.
6325type GoogleCloudVisionV1p2beta1Property struct {
6326	// Name: Name of the property.
6327	Name string `json:"name,omitempty"`
6328
6329	// Uint64Value: Value of numeric properties.
6330	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
6331
6332	// Value: Value of the property.
6333	Value string `json:"value,omitempty"`
6334
6335	// ForceSendFields is a list of field names (e.g. "Name") to
6336	// unconditionally include in API requests. By default, fields with
6337	// empty values are omitted from API requests. However, any non-pointer,
6338	// non-interface field appearing in ForceSendFields will be sent to the
6339	// server regardless of whether the field is empty or not. This may be
6340	// used to include empty fields in Patch requests.
6341	ForceSendFields []string `json:"-"`
6342
6343	// NullFields is a list of field names (e.g. "Name") to include in API
6344	// requests with the JSON null value. By default, fields with empty
6345	// values are omitted from API requests. However, any field with an
6346	// empty value appearing in NullFields will be sent to the server as
6347	// null. It is an error if a field in this list has a non-empty value.
6348	// This may be used to include null fields in Patch requests.
6349	NullFields []string `json:"-"`
6350}
6351
6352func (s *GoogleCloudVisionV1p2beta1Property) MarshalJSON() ([]byte, error) {
6353	type NoMethod GoogleCloudVisionV1p2beta1Property
6354	raw := NoMethod(*s)
6355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6356}
6357
6358// GoogleCloudVisionV1p2beta1SafeSearchAnnotation: Set of features
6359// pertaining to the image, computed by computer vision
6360// methods over safe-search verticals (for example, adult, spoof,
6361// medical,
6362// violence).
6363type GoogleCloudVisionV1p2beta1SafeSearchAnnotation struct {
6364	// Adult: Represents the adult content likelihood for the image. Adult
6365	// content may
6366	// contain elements such as nudity, pornographic images or cartoons,
6367	// or
6368	// sexual activities.
6369	//
6370	// Possible values:
6371	//   "UNKNOWN" - Unknown likelihood.
6372	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
6373	// specified vertical.
6374	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
6375	// vertical.
6376	//   "POSSIBLE" - It is possible that the image belongs to the specified
6377	// vertical.
6378	//   "LIKELY" - It is likely that the image belongs to the specified
6379	// vertical.
6380	//   "VERY_LIKELY" - It is very likely that the image belongs to the
6381	// specified vertical.
6382	Adult string `json:"adult,omitempty"`
6383
6384	// Medical: Likelihood that this is a medical image.
6385	//
6386	// Possible values:
6387	//   "UNKNOWN" - Unknown likelihood.
6388	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
6389	// specified vertical.
6390	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
6391	// vertical.
6392	//   "POSSIBLE" - It is possible that the image belongs to the specified
6393	// vertical.
6394	//   "LIKELY" - It is likely that the image belongs to the specified
6395	// vertical.
6396	//   "VERY_LIKELY" - It is very likely that the image belongs to the
6397	// specified vertical.
6398	Medical string `json:"medical,omitempty"`
6399
6400	// Racy: Likelihood that the request image contains racy content. Racy
6401	// content may
6402	// include (but is not limited to) skimpy or sheer clothing,
6403	// strategically
6404	// covered nudity, lewd or provocative poses, or close-ups of
6405	// sensitive
6406	// body areas.
6407	//
6408	// Possible values:
6409	//   "UNKNOWN" - Unknown likelihood.
6410	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
6411	// specified vertical.
6412	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
6413	// vertical.
6414	//   "POSSIBLE" - It is possible that the image belongs to the specified
6415	// vertical.
6416	//   "LIKELY" - It is likely that the image belongs to the specified
6417	// vertical.
6418	//   "VERY_LIKELY" - It is very likely that the image belongs to the
6419	// specified vertical.
6420	Racy string `json:"racy,omitempty"`
6421
6422	// Spoof: Spoof likelihood. The likelihood that an modification
6423	// was made to the image's canonical version to make it appear
6424	// funny or offensive.
6425	//
6426	// Possible values:
6427	//   "UNKNOWN" - Unknown likelihood.
6428	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
6429	// specified vertical.
6430	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
6431	// vertical.
6432	//   "POSSIBLE" - It is possible that the image belongs to the specified
6433	// vertical.
6434	//   "LIKELY" - It is likely that the image belongs to the specified
6435	// vertical.
6436	//   "VERY_LIKELY" - It is very likely that the image belongs to the
6437	// specified vertical.
6438	Spoof string `json:"spoof,omitempty"`
6439
6440	// Violence: Likelihood that this image contains violent content.
6441	//
6442	// Possible values:
6443	//   "UNKNOWN" - Unknown likelihood.
6444	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
6445	// specified vertical.
6446	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
6447	// vertical.
6448	//   "POSSIBLE" - It is possible that the image belongs to the specified
6449	// vertical.
6450	//   "LIKELY" - It is likely that the image belongs to the specified
6451	// vertical.
6452	//   "VERY_LIKELY" - It is very likely that the image belongs to the
6453	// specified vertical.
6454	Violence string `json:"violence,omitempty"`
6455
6456	// ForceSendFields is a list of field names (e.g. "Adult") to
6457	// unconditionally include in API requests. By default, fields with
6458	// empty values are omitted from API requests. However, any non-pointer,
6459	// non-interface field appearing in ForceSendFields will be sent to the
6460	// server regardless of whether the field is empty or not. This may be
6461	// used to include empty fields in Patch requests.
6462	ForceSendFields []string `json:"-"`
6463
6464	// NullFields is a list of field names (e.g. "Adult") to include in API
6465	// requests with the JSON null value. By default, fields with empty
6466	// values are omitted from API requests. However, any field with an
6467	// empty value appearing in NullFields will be sent to the server as
6468	// null. It is an error if a field in this list has a non-empty value.
6469	// This may be used to include null fields in Patch requests.
6470	NullFields []string `json:"-"`
6471}
6472
6473func (s *GoogleCloudVisionV1p2beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
6474	type NoMethod GoogleCloudVisionV1p2beta1SafeSearchAnnotation
6475	raw := NoMethod(*s)
6476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6477}
6478
6479// GoogleCloudVisionV1p2beta1Symbol: A single symbol representation.
6480type GoogleCloudVisionV1p2beta1Symbol struct {
6481	// BoundingBox: The bounding box for the symbol.
6482	// The vertices are in the order of top-left, top-right,
6483	// bottom-right,
6484	// bottom-left. When a rotation of the bounding box is detected the
6485	// rotation
6486	// is represented as around the top-left corner as defined when the text
6487	// is
6488	// read in the 'natural' orientation.
6489	// For example:
6490	//   * when the text is horizontal it might look like:
6491	//      0----1
6492	//      |    |
6493	//      3----2
6494	//   * when it's rotated 180 degrees around the top-left corner it
6495	// becomes:
6496	//      2----3
6497	//      |    |
6498	//      1----0
6499	//   and the vertice order will still be (0, 1, 2, 3).
6500	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6501
6502	// Confidence: Confidence of the OCR results for the symbol. Range [0,
6503	// 1].
6504	Confidence float64 `json:"confidence,omitempty"`
6505
6506	// Property: Additional information detected for the symbol.
6507	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6508
6509	// Text: The actual UTF-8 representation of the symbol.
6510	Text string `json:"text,omitempty"`
6511
6512	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6513	// unconditionally include in API requests. By default, fields with
6514	// empty values are omitted from API requests. However, any non-pointer,
6515	// non-interface field appearing in ForceSendFields will be sent to the
6516	// server regardless of whether the field is empty or not. This may be
6517	// used to include empty fields in Patch requests.
6518	ForceSendFields []string `json:"-"`
6519
6520	// NullFields is a list of field names (e.g. "BoundingBox") to include
6521	// in API requests with the JSON null value. By default, fields with
6522	// empty values are omitted from API requests. However, any field with
6523	// an empty value appearing in NullFields will be sent to the server as
6524	// null. It is an error if a field in this list has a non-empty value.
6525	// This may be used to include null fields in Patch requests.
6526	NullFields []string `json:"-"`
6527}
6528
6529func (s *GoogleCloudVisionV1p2beta1Symbol) MarshalJSON() ([]byte, error) {
6530	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6531	raw := NoMethod(*s)
6532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6533}
6534
6535func (s *GoogleCloudVisionV1p2beta1Symbol) UnmarshalJSON(data []byte) error {
6536	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6537	var s1 struct {
6538		Confidence gensupport.JSONFloat64 `json:"confidence"`
6539		*NoMethod
6540	}
6541	s1.NoMethod = (*NoMethod)(s)
6542	if err := json.Unmarshal(data, &s1); err != nil {
6543		return err
6544	}
6545	s.Confidence = float64(s1.Confidence)
6546	return nil
6547}
6548
6549// GoogleCloudVisionV1p2beta1TextAnnotation: TextAnnotation contains a
6550// structured representation of OCR extracted text.
6551// The hierarchy of an OCR extracted text structure is like this:
6552//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
6553// Symbol
6554// Each structural component, starting from Page, may further have their
6555// own
6556// properties. Properties describe detected languages, breaks etc..
6557// Please refer
6558// to the TextAnnotation.TextProperty message definition below for
6559// more
6560// detail.
6561type GoogleCloudVisionV1p2beta1TextAnnotation struct {
6562	// Pages: List of pages detected by OCR.
6563	Pages []*GoogleCloudVisionV1p2beta1Page `json:"pages,omitempty"`
6564
6565	// Text: UTF-8 text detected on the pages.
6566	Text string `json:"text,omitempty"`
6567
6568	// ForceSendFields is a list of field names (e.g. "Pages") to
6569	// unconditionally include in API requests. By default, fields with
6570	// empty values are omitted from API requests. However, any non-pointer,
6571	// non-interface field appearing in ForceSendFields will be sent to the
6572	// server regardless of whether the field is empty or not. This may be
6573	// used to include empty fields in Patch requests.
6574	ForceSendFields []string `json:"-"`
6575
6576	// NullFields is a list of field names (e.g. "Pages") to include in API
6577	// requests with the JSON null value. By default, fields with empty
6578	// values are omitted from API requests. However, any field with an
6579	// empty value appearing in NullFields will be sent to the server as
6580	// null. It is an error if a field in this list has a non-empty value.
6581	// This may be used to include null fields in Patch requests.
6582	NullFields []string `json:"-"`
6583}
6584
6585func (s *GoogleCloudVisionV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
6586	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotation
6587	raw := NoMethod(*s)
6588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6589}
6590
6591// GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak: Detected start
6592// or end of a structural component.
6593type GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak struct {
6594	// IsPrefix: True if break prepends the element.
6595	IsPrefix bool `json:"isPrefix,omitempty"`
6596
6597	// Type: Detected break type.
6598	//
6599	// Possible values:
6600	//   "UNKNOWN" - Unknown break label type.
6601	//   "SPACE" - Regular space.
6602	//   "SURE_SPACE" - Sure space (very wide).
6603	//   "EOL_SURE_SPACE" - Line-wrapping break.
6604	//   "HYPHEN" - End-line hyphen that is not present in text; does not
6605	// co-occur with
6606	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
6607	//   "LINE_BREAK" - Line break that ends a paragraph.
6608	Type string `json:"type,omitempty"`
6609
6610	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
6611	// unconditionally include in API requests. By default, fields with
6612	// empty values are omitted from API requests. However, any non-pointer,
6613	// non-interface field appearing in ForceSendFields will be sent to the
6614	// server regardless of whether the field is empty or not. This may be
6615	// used to include empty fields in Patch requests.
6616	ForceSendFields []string `json:"-"`
6617
6618	// NullFields is a list of field names (e.g. "IsPrefix") to include in
6619	// API requests with the JSON null value. By default, fields with empty
6620	// values are omitted from API requests. However, any field with an
6621	// empty value appearing in NullFields will be sent to the server as
6622	// null. It is an error if a field in this list has a non-empty value.
6623	// This may be used to include null fields in Patch requests.
6624	NullFields []string `json:"-"`
6625}
6626
6627func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
6628	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak
6629	raw := NoMethod(*s)
6630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6631}
6632
6633// GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage: Detected
6634// language for a structural component.
6635type GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage struct {
6636	// Confidence: Confidence of detected language. Range [0, 1].
6637	Confidence float64 `json:"confidence,omitempty"`
6638
6639	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6640	// For more
6641	// information,
6642	// see
6643	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6644	LanguageCode string `json:"languageCode,omitempty"`
6645
6646	// ForceSendFields is a list of field names (e.g. "Confidence") to
6647	// unconditionally include in API requests. By default, fields with
6648	// empty values are omitted from API requests. However, any non-pointer,
6649	// non-interface field appearing in ForceSendFields will be sent to the
6650	// server regardless of whether the field is empty or not. This may be
6651	// used to include empty fields in Patch requests.
6652	ForceSendFields []string `json:"-"`
6653
6654	// NullFields is a list of field names (e.g. "Confidence") to include in
6655	// API requests with the JSON null value. By default, fields with empty
6656	// values are omitted from API requests. However, any field with an
6657	// empty value appearing in NullFields will be sent to the server as
6658	// null. It is an error if a field in this list has a non-empty value.
6659	// This may be used to include null fields in Patch requests.
6660	NullFields []string `json:"-"`
6661}
6662
6663func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
6664	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6665	raw := NoMethod(*s)
6666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6667}
6668
6669func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
6670	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6671	var s1 struct {
6672		Confidence gensupport.JSONFloat64 `json:"confidence"`
6673		*NoMethod
6674	}
6675	s1.NoMethod = (*NoMethod)(s)
6676	if err := json.Unmarshal(data, &s1); err != nil {
6677		return err
6678	}
6679	s.Confidence = float64(s1.Confidence)
6680	return nil
6681}
6682
6683// GoogleCloudVisionV1p2beta1TextAnnotationTextProperty: Additional
6684// information detected on the structural component.
6685type GoogleCloudVisionV1p2beta1TextAnnotationTextProperty struct {
6686	// DetectedBreak: Detected start or end of a text segment.
6687	DetectedBreak *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
6688
6689	// DetectedLanguages: A list of detected languages together with
6690	// confidence.
6691	DetectedLanguages []*GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
6692
6693	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
6694	// unconditionally include in API requests. By default, fields with
6695	// empty values are omitted from API requests. However, any non-pointer,
6696	// non-interface field appearing in ForceSendFields will be sent to the
6697	// server regardless of whether the field is empty or not. This may be
6698	// used to include empty fields in Patch requests.
6699	ForceSendFields []string `json:"-"`
6700
6701	// NullFields is a list of field names (e.g. "DetectedBreak") to include
6702	// in API requests with the JSON null value. By default, fields with
6703	// empty values are omitted from API requests. However, any field with
6704	// an empty value appearing in NullFields will be sent to the server as
6705	// null. It is an error if a field in this list has a non-empty value.
6706	// This may be used to include null fields in Patch requests.
6707	NullFields []string `json:"-"`
6708}
6709
6710func (s *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
6711	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationTextProperty
6712	raw := NoMethod(*s)
6713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6714}
6715
6716// GoogleCloudVisionV1p2beta1Vertex: A vertex represents a 2D point in
6717// the image.
6718// NOTE: the vertex coordinates are in the same scale as the original
6719// image.
6720type GoogleCloudVisionV1p2beta1Vertex struct {
6721	// X: X coordinate.
6722	X int64 `json:"x,omitempty"`
6723
6724	// Y: Y coordinate.
6725	Y int64 `json:"y,omitempty"`
6726
6727	// ForceSendFields is a list of field names (e.g. "X") to
6728	// unconditionally include in API requests. By default, fields with
6729	// empty values are omitted from API requests. However, any non-pointer,
6730	// non-interface field appearing in ForceSendFields will be sent to the
6731	// server regardless of whether the field is empty or not. This may be
6732	// used to include empty fields in Patch requests.
6733	ForceSendFields []string `json:"-"`
6734
6735	// NullFields is a list of field names (e.g. "X") to include in API
6736	// requests with the JSON null value. By default, fields with empty
6737	// values are omitted from API requests. However, any field with an
6738	// empty value appearing in NullFields will be sent to the server as
6739	// null. It is an error if a field in this list has a non-empty value.
6740	// This may be used to include null fields in Patch requests.
6741	NullFields []string `json:"-"`
6742}
6743
6744func (s *GoogleCloudVisionV1p2beta1Vertex) MarshalJSON() ([]byte, error) {
6745	type NoMethod GoogleCloudVisionV1p2beta1Vertex
6746	raw := NoMethod(*s)
6747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6748}
6749
6750// GoogleCloudVisionV1p2beta1WebDetection: Relevant information for the
6751// image from the Internet.
6752type GoogleCloudVisionV1p2beta1WebDetection struct {
6753	// BestGuessLabels: The service's best guess as to the topic of the
6754	// request image.
6755	// Inferred from similar images on the open web.
6756	BestGuessLabels []*GoogleCloudVisionV1p2beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
6757
6758	// FullMatchingImages: Fully matching images from the Internet.
6759	// Can include resized copies of the query image.
6760	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6761
6762	// PagesWithMatchingImages: Web pages containing the matching images
6763	// from the Internet.
6764	PagesWithMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
6765
6766	// PartialMatchingImages: Partial matching images from the
6767	// Internet.
6768	// Those images are similar enough to share some key-point features.
6769	// For
6770	// example an original image will likely have partial matching for its
6771	// crops.
6772	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6773
6774	// VisuallySimilarImages: The visually similar image results.
6775	VisuallySimilarImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
6776
6777	// WebEntities: Deduced entities from similar images on the Internet.
6778	WebEntities []*GoogleCloudVisionV1p2beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
6779
6780	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
6781	// unconditionally include in API requests. By default, fields with
6782	// empty values are omitted from API requests. However, any non-pointer,
6783	// non-interface field appearing in ForceSendFields will be sent to the
6784	// server regardless of whether the field is empty or not. This may be
6785	// used to include empty fields in Patch requests.
6786	ForceSendFields []string `json:"-"`
6787
6788	// NullFields is a list of field names (e.g. "BestGuessLabels") to
6789	// include in API requests with the JSON null value. By default, fields
6790	// with empty values are omitted from API requests. However, any field
6791	// with an empty value appearing in NullFields will be sent to the
6792	// server as null. It is an error if a field in this list has a
6793	// non-empty value. This may be used to include null fields in Patch
6794	// requests.
6795	NullFields []string `json:"-"`
6796}
6797
6798func (s *GoogleCloudVisionV1p2beta1WebDetection) MarshalJSON() ([]byte, error) {
6799	type NoMethod GoogleCloudVisionV1p2beta1WebDetection
6800	raw := NoMethod(*s)
6801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6802}
6803
6804// GoogleCloudVisionV1p2beta1WebDetectionParams: Parameters for web
6805// detection request.
6806type GoogleCloudVisionV1p2beta1WebDetectionParams struct {
6807	// IncludeGeoResults: Whether to include results derived from the geo
6808	// information in the image.
6809	IncludeGeoResults bool `json:"includeGeoResults,omitempty"`
6810
6811	// ForceSendFields is a list of field names (e.g. "IncludeGeoResults")
6812	// to unconditionally include in API requests. By default, fields with
6813	// empty values are omitted from API requests. However, any non-pointer,
6814	// non-interface field appearing in ForceSendFields will be sent to the
6815	// server regardless of whether the field is empty or not. This may be
6816	// used to include empty fields in Patch requests.
6817	ForceSendFields []string `json:"-"`
6818
6819	// NullFields is a list of field names (e.g. "IncludeGeoResults") to
6820	// include in API requests with the JSON null value. By default, fields
6821	// with empty values are omitted from API requests. However, any field
6822	// with an empty value appearing in NullFields will be sent to the
6823	// server as null. It is an error if a field in this list has a
6824	// non-empty value. This may be used to include null fields in Patch
6825	// requests.
6826	NullFields []string `json:"-"`
6827}
6828
6829func (s *GoogleCloudVisionV1p2beta1WebDetectionParams) MarshalJSON() ([]byte, error) {
6830	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionParams
6831	raw := NoMethod(*s)
6832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6833}
6834
6835// GoogleCloudVisionV1p2beta1WebDetectionWebEntity: Entity deduced from
6836// similar images on the Internet.
6837type GoogleCloudVisionV1p2beta1WebDetectionWebEntity struct {
6838	// Description: Canonical description of the entity, in English.
6839	Description string `json:"description,omitempty"`
6840
6841	// EntityId: Opaque entity ID.
6842	EntityId string `json:"entityId,omitempty"`
6843
6844	// Score: Overall relevancy score for the entity.
6845	// Not normalized and not comparable across different image queries.
6846	Score float64 `json:"score,omitempty"`
6847
6848	// ForceSendFields is a list of field names (e.g. "Description") to
6849	// unconditionally include in API requests. By default, fields with
6850	// empty values are omitted from API requests. However, any non-pointer,
6851	// non-interface field appearing in ForceSendFields will be sent to the
6852	// server regardless of whether the field is empty or not. This may be
6853	// used to include empty fields in Patch requests.
6854	ForceSendFields []string `json:"-"`
6855
6856	// NullFields is a list of field names (e.g. "Description") to include
6857	// in API requests with the JSON null value. By default, fields with
6858	// empty values are omitted from API requests. However, any field with
6859	// an empty value appearing in NullFields will be sent to the server as
6860	// null. It is an error if a field in this list has a non-empty value.
6861	// This may be used to include null fields in Patch requests.
6862	NullFields []string `json:"-"`
6863}
6864
6865func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
6866	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6867	raw := NoMethod(*s)
6868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6869}
6870
6871func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
6872	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6873	var s1 struct {
6874		Score gensupport.JSONFloat64 `json:"score"`
6875		*NoMethod
6876	}
6877	s1.NoMethod = (*NoMethod)(s)
6878	if err := json.Unmarshal(data, &s1); err != nil {
6879		return err
6880	}
6881	s.Score = float64(s1.Score)
6882	return nil
6883}
6884
6885// GoogleCloudVisionV1p2beta1WebDetectionWebImage: Metadata for online
6886// images.
6887type GoogleCloudVisionV1p2beta1WebDetectionWebImage struct {
6888	// Score: (Deprecated) Overall relevancy score for the image.
6889	Score float64 `json:"score,omitempty"`
6890
6891	// Url: The result image URL.
6892	Url string `json:"url,omitempty"`
6893
6894	// ForceSendFields is a list of field names (e.g. "Score") to
6895	// unconditionally include in API requests. By default, fields with
6896	// empty values are omitted from API requests. However, any non-pointer,
6897	// non-interface field appearing in ForceSendFields will be sent to the
6898	// server regardless of whether the field is empty or not. This may be
6899	// used to include empty fields in Patch requests.
6900	ForceSendFields []string `json:"-"`
6901
6902	// NullFields is a list of field names (e.g. "Score") to include in API
6903	// requests with the JSON null value. By default, fields with empty
6904	// values are omitted from API requests. However, any field with an
6905	// empty value appearing in NullFields will be sent to the server as
6906	// null. It is an error if a field in this list has a non-empty value.
6907	// This may be used to include null fields in Patch requests.
6908	NullFields []string `json:"-"`
6909}
6910
6911func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
6912	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6913	raw := NoMethod(*s)
6914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6915}
6916
6917func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
6918	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6919	var s1 struct {
6920		Score gensupport.JSONFloat64 `json:"score"`
6921		*NoMethod
6922	}
6923	s1.NoMethod = (*NoMethod)(s)
6924	if err := json.Unmarshal(data, &s1); err != nil {
6925		return err
6926	}
6927	s.Score = float64(s1.Score)
6928	return nil
6929}
6930
6931// GoogleCloudVisionV1p2beta1WebDetectionWebLabel: Label to provide
6932// extra metadata for the web detection.
6933type GoogleCloudVisionV1p2beta1WebDetectionWebLabel struct {
6934	// Label: Label for extra metadata.
6935	Label string `json:"label,omitempty"`
6936
6937	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
6938	// or "sr-Latn".
6939	// For more information,
6940	// see
6941	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6942	LanguageCode string `json:"languageCode,omitempty"`
6943
6944	// ForceSendFields is a list of field names (e.g. "Label") to
6945	// unconditionally include in API requests. By default, fields with
6946	// empty values are omitted from API requests. However, any non-pointer,
6947	// non-interface field appearing in ForceSendFields will be sent to the
6948	// server regardless of whether the field is empty or not. This may be
6949	// used to include empty fields in Patch requests.
6950	ForceSendFields []string `json:"-"`
6951
6952	// NullFields is a list of field names (e.g. "Label") to include in API
6953	// requests with the JSON null value. By default, fields with empty
6954	// values are omitted from API requests. However, any field with an
6955	// empty value appearing in NullFields will be sent to the server as
6956	// null. It is an error if a field in this list has a non-empty value.
6957	// This may be used to include null fields in Patch requests.
6958	NullFields []string `json:"-"`
6959}
6960
6961func (s *GoogleCloudVisionV1p2beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
6962	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebLabel
6963	raw := NoMethod(*s)
6964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6965}
6966
6967// GoogleCloudVisionV1p2beta1WebDetectionWebPage: Metadata for web
6968// pages.
6969type GoogleCloudVisionV1p2beta1WebDetectionWebPage struct {
6970	// FullMatchingImages: Fully matching images on the page.
6971	// Can include resized copies of the query image.
6972	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6973
6974	// PageTitle: Title for the web page, may contain HTML markups.
6975	PageTitle string `json:"pageTitle,omitempty"`
6976
6977	// PartialMatchingImages: Partial matching images on the page.
6978	// Those images are similar enough to share some key-point features.
6979	// For
6980	// example an original image will likely have partial matching for
6981	// its
6982	// crops.
6983	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6984
6985	// Score: (Deprecated) Overall relevancy score for the web page.
6986	Score float64 `json:"score,omitempty"`
6987
6988	// Url: The result web page URL.
6989	Url string `json:"url,omitempty"`
6990
6991	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
6992	// to unconditionally include in API requests. By default, fields with
6993	// empty values are omitted from API requests. However, any non-pointer,
6994	// non-interface field appearing in ForceSendFields will be sent to the
6995	// server regardless of whether the field is empty or not. This may be
6996	// used to include empty fields in Patch requests.
6997	ForceSendFields []string `json:"-"`
6998
6999	// NullFields is a list of field names (e.g. "FullMatchingImages") to
7000	// include in API requests with the JSON null value. By default, fields
7001	// with empty values are omitted from API requests. However, any field
7002	// with an empty value appearing in NullFields will be sent to the
7003	// server as null. It is an error if a field in this list has a
7004	// non-empty value. This may be used to include null fields in Patch
7005	// requests.
7006	NullFields []string `json:"-"`
7007}
7008
7009func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
7010	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
7011	raw := NoMethod(*s)
7012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7013}
7014
7015func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
7016	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
7017	var s1 struct {
7018		Score gensupport.JSONFloat64 `json:"score"`
7019		*NoMethod
7020	}
7021	s1.NoMethod = (*NoMethod)(s)
7022	if err := json.Unmarshal(data, &s1); err != nil {
7023		return err
7024	}
7025	s.Score = float64(s1.Score)
7026	return nil
7027}
7028
7029// GoogleCloudVisionV1p2beta1Word: A word representation.
7030type GoogleCloudVisionV1p2beta1Word struct {
7031	// BoundingBox: The bounding box for the word.
7032	// The vertices are in the order of top-left, top-right,
7033	// bottom-right,
7034	// bottom-left. When a rotation of the bounding box is detected the
7035	// rotation
7036	// is represented as around the top-left corner as defined when the text
7037	// is
7038	// read in the 'natural' orientation.
7039	// For example:
7040	//   * when the text is horizontal it might look like:
7041	//      0----1
7042	//      |    |
7043	//      3----2
7044	//   * when it's rotated 180 degrees around the top-left corner it
7045	// becomes:
7046	//      2----3
7047	//      |    |
7048	//      1----0
7049	//   and the vertex order will still be (0, 1, 2, 3).
7050	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
7051
7052	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
7053	Confidence float64 `json:"confidence,omitempty"`
7054
7055	// Property: Additional information detected for the word.
7056	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
7057
7058	// Symbols: List of symbols in the word.
7059	// The order of the symbols follows the natural reading order.
7060	Symbols []*GoogleCloudVisionV1p2beta1Symbol `json:"symbols,omitempty"`
7061
7062	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
7063	// unconditionally include in API requests. By default, fields with
7064	// empty values are omitted from API requests. However, any non-pointer,
7065	// non-interface field appearing in ForceSendFields will be sent to the
7066	// server regardless of whether the field is empty or not. This may be
7067	// used to include empty fields in Patch requests.
7068	ForceSendFields []string `json:"-"`
7069
7070	// NullFields is a list of field names (e.g. "BoundingBox") to include
7071	// in API requests with the JSON null value. By default, fields with
7072	// empty values are omitted from API requests. However, any field with
7073	// an empty value appearing in NullFields will be sent to the server as
7074	// null. It is an error if a field in this list has a non-empty value.
7075	// This may be used to include null fields in Patch requests.
7076	NullFields []string `json:"-"`
7077}
7078
7079func (s *GoogleCloudVisionV1p2beta1Word) MarshalJSON() ([]byte, error) {
7080	type NoMethod GoogleCloudVisionV1p2beta1Word
7081	raw := NoMethod(*s)
7082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7083}
7084
7085func (s *GoogleCloudVisionV1p2beta1Word) UnmarshalJSON(data []byte) error {
7086	type NoMethod GoogleCloudVisionV1p2beta1Word
7087	var s1 struct {
7088		Confidence gensupport.JSONFloat64 `json:"confidence"`
7089		*NoMethod
7090	}
7091	s1.NoMethod = (*NoMethod)(s)
7092	if err := json.Unmarshal(data, &s1); err != nil {
7093		return err
7094	}
7095	s.Confidence = float64(s1.Confidence)
7096	return nil
7097}
7098
7099// GoogleCloudVisionV1p3beta1AnnotateFileResponse: Response to a single
7100// file annotation request. A file may contain one or more
7101// images, which individually have their own responses.
7102type GoogleCloudVisionV1p3beta1AnnotateFileResponse struct {
7103	// InputConfig: Information about the file for which this response is
7104	// generated.
7105	InputConfig *GoogleCloudVisionV1p3beta1InputConfig `json:"inputConfig,omitempty"`
7106
7107	// Responses: Individual responses to images found within the file.
7108	Responses []*GoogleCloudVisionV1p3beta1AnnotateImageResponse `json:"responses,omitempty"`
7109
7110	// TotalPages: This field gives the total number of pages in the file.
7111	TotalPages int64 `json:"totalPages,omitempty"`
7112
7113	// ForceSendFields is a list of field names (e.g. "InputConfig") to
7114	// unconditionally include in API requests. By default, fields with
7115	// empty values are omitted from API requests. However, any non-pointer,
7116	// non-interface field appearing in ForceSendFields will be sent to the
7117	// server regardless of whether the field is empty or not. This may be
7118	// used to include empty fields in Patch requests.
7119	ForceSendFields []string `json:"-"`
7120
7121	// NullFields is a list of field names (e.g. "InputConfig") to include
7122	// in API requests with the JSON null value. By default, fields with
7123	// empty values are omitted from API requests. However, any field with
7124	// an empty value appearing in NullFields will be sent to the server as
7125	// null. It is an error if a field in this list has a non-empty value.
7126	// This may be used to include null fields in Patch requests.
7127	NullFields []string `json:"-"`
7128}
7129
7130func (s *GoogleCloudVisionV1p3beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
7131	type NoMethod GoogleCloudVisionV1p3beta1AnnotateFileResponse
7132	raw := NoMethod(*s)
7133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7134}
7135
7136// GoogleCloudVisionV1p3beta1AnnotateImageResponse: Response to an image
7137// annotation request.
7138type GoogleCloudVisionV1p3beta1AnnotateImageResponse struct {
7139	// Context: If present, contextual information is needed to understand
7140	// where this image
7141	// comes from.
7142	Context *GoogleCloudVisionV1p3beta1ImageAnnotationContext `json:"context,omitempty"`
7143
7144	// CropHintsAnnotation: If present, crop hints have completed
7145	// successfully.
7146	CropHintsAnnotation *GoogleCloudVisionV1p3beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
7147
7148	// Error: If set, represents the error message for the operation.
7149	// Note that filled-in image annotations are guaranteed to be
7150	// correct, even when `error` is set.
7151	Error *Status `json:"error,omitempty"`
7152
7153	// FaceAnnotations: If present, face detection has completed
7154	// successfully.
7155	FaceAnnotations []*GoogleCloudVisionV1p3beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
7156
7157	// FullTextAnnotation: If present, text (OCR) detection or document
7158	// (OCR) text detection has
7159	// completed successfully.
7160	// This annotation provides the structural hierarchy for the OCR
7161	// detected
7162	// text.
7163	FullTextAnnotation *GoogleCloudVisionV1p3beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
7164
7165	// ImagePropertiesAnnotation: If present, image properties were
7166	// extracted successfully.
7167	ImagePropertiesAnnotation *GoogleCloudVisionV1p3beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
7168
7169	// LabelAnnotations: If present, label detection has completed
7170	// successfully.
7171	LabelAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
7172
7173	// LandmarkAnnotations: If present, landmark detection has completed
7174	// successfully.
7175	LandmarkAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
7176
7177	// LocalizedObjectAnnotations: If present, localized object detection
7178	// has completed successfully.
7179	// This will be sorted descending by confidence score.
7180	LocalizedObjectAnnotations []*GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
7181
7182	// LogoAnnotations: If present, logo detection has completed
7183	// successfully.
7184	LogoAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
7185
7186	// ProductSearchResults: If present, product search has completed
7187	// successfully.
7188	ProductSearchResults *GoogleCloudVisionV1p3beta1ProductSearchResults `json:"productSearchResults,omitempty"`
7189
7190	// SafeSearchAnnotation: If present, safe-search annotation has
7191	// completed successfully.
7192	SafeSearchAnnotation *GoogleCloudVisionV1p3beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
7193
7194	// TextAnnotations: If present, text (OCR) detection has completed
7195	// successfully.
7196	TextAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"textAnnotations,omitempty"`
7197
7198	// WebDetection: If present, web detection has completed successfully.
7199	WebDetection *GoogleCloudVisionV1p3beta1WebDetection `json:"webDetection,omitempty"`
7200
7201	// ForceSendFields is a list of field names (e.g. "Context") to
7202	// unconditionally include in API requests. By default, fields with
7203	// empty values are omitted from API requests. However, any non-pointer,
7204	// non-interface field appearing in ForceSendFields will be sent to the
7205	// server regardless of whether the field is empty or not. This may be
7206	// used to include empty fields in Patch requests.
7207	ForceSendFields []string `json:"-"`
7208
7209	// NullFields is a list of field names (e.g. "Context") to include in
7210	// API requests with the JSON null value. By default, fields with empty
7211	// values are omitted from API requests. However, any field with an
7212	// empty value appearing in NullFields will be sent to the server as
7213	// null. It is an error if a field in this list has a non-empty value.
7214	// This may be used to include null fields in Patch requests.
7215	NullFields []string `json:"-"`
7216}
7217
7218func (s *GoogleCloudVisionV1p3beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
7219	type NoMethod GoogleCloudVisionV1p3beta1AnnotateImageResponse
7220	raw := NoMethod(*s)
7221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7222}
7223
7224// GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse: The response for
7225// a single offline file annotation request.
7226type GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse struct {
7227	// OutputConfig: The output location and metadata from
7228	// AsyncAnnotateFileRequest.
7229	OutputConfig *GoogleCloudVisionV1p3beta1OutputConfig `json:"outputConfig,omitempty"`
7230
7231	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
7232	// unconditionally include in API requests. By default, fields with
7233	// empty values are omitted from API requests. However, any non-pointer,
7234	// non-interface field appearing in ForceSendFields will be sent to the
7235	// server regardless of whether the field is empty or not. This may be
7236	// used to include empty fields in Patch requests.
7237	ForceSendFields []string `json:"-"`
7238
7239	// NullFields is a list of field names (e.g. "OutputConfig") to include
7240	// in API requests with the JSON null value. By default, fields with
7241	// empty values are omitted from API requests. However, any field with
7242	// an empty value appearing in NullFields will be sent to the server as
7243	// null. It is an error if a field in this list has a non-empty value.
7244	// This may be used to include null fields in Patch requests.
7245	NullFields []string `json:"-"`
7246}
7247
7248func (s *GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
7249	type NoMethod GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse
7250	raw := NoMethod(*s)
7251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7252}
7253
7254// GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse: Response
7255// to an async batch file annotation request.
7256type GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse struct {
7257	// Responses: The list of file annotation responses, one for each
7258	// request in
7259	// AsyncBatchAnnotateFilesRequest.
7260	Responses []*GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
7261
7262	// ForceSendFields is a list of field names (e.g. "Responses") to
7263	// unconditionally include in API requests. By default, fields with
7264	// empty values are omitted from API requests. However, any non-pointer,
7265	// non-interface field appearing in ForceSendFields will be sent to the
7266	// server regardless of whether the field is empty or not. This may be
7267	// used to include empty fields in Patch requests.
7268	ForceSendFields []string `json:"-"`
7269
7270	// NullFields is a list of field names (e.g. "Responses") to include in
7271	// API requests with the JSON null value. By default, fields with empty
7272	// values are omitted from API requests. However, any field with an
7273	// empty value appearing in NullFields will be sent to the server as
7274	// null. It is an error if a field in this list has a non-empty value.
7275	// This may be used to include null fields in Patch requests.
7276	NullFields []string `json:"-"`
7277}
7278
7279func (s *GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
7280	type NoMethod GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse
7281	raw := NoMethod(*s)
7282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7283}
7284
7285// GoogleCloudVisionV1p3beta1BatchOperationMetadata: Metadata for the
7286// batch operations such as the current state.
7287//
7288// This is included in the `metadata` field of the `Operation` returned
7289// by the
7290// `GetOperation` call of the `google::longrunning::Operations` service.
7291type GoogleCloudVisionV1p3beta1BatchOperationMetadata struct {
7292	// EndTime: The time when the batch request is finished
7293	// and
7294	// google.longrunning.Operation.done is set to true.
7295	EndTime string `json:"endTime,omitempty"`
7296
7297	// State: The current state of the batch operation.
7298	//
7299	// Possible values:
7300	//   "STATE_UNSPECIFIED" - Invalid.
7301	//   "PROCESSING" - Request is actively being processed.
7302	//   "SUCCESSFUL" - The request is done and at least one item has been
7303	// successfully
7304	// processed.
7305	//   "FAILED" - The request is done and no item has been successfully
7306	// processed.
7307	//   "CANCELLED" - The request is done after the
7308	// longrunning.Operations.CancelOperation has
7309	// been called by the user.  Any records that were processed before
7310	// the
7311	// cancel command are output as specified in the request.
7312	State string `json:"state,omitempty"`
7313
7314	// SubmitTime: The time when the batch request was submitted to the
7315	// server.
7316	SubmitTime string `json:"submitTime,omitempty"`
7317
7318	// ForceSendFields is a list of field names (e.g. "EndTime") to
7319	// unconditionally include in API requests. By default, fields with
7320	// empty values are omitted from API requests. However, any non-pointer,
7321	// non-interface field appearing in ForceSendFields will be sent to the
7322	// server regardless of whether the field is empty or not. This may be
7323	// used to include empty fields in Patch requests.
7324	ForceSendFields []string `json:"-"`
7325
7326	// NullFields is a list of field names (e.g. "EndTime") to include in
7327	// API requests with the JSON null value. By default, fields with empty
7328	// values are omitted from API requests. However, any field with an
7329	// empty value appearing in NullFields will be sent to the server as
7330	// null. It is an error if a field in this list has a non-empty value.
7331	// This may be used to include null fields in Patch requests.
7332	NullFields []string `json:"-"`
7333}
7334
7335func (s *GoogleCloudVisionV1p3beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
7336	type NoMethod GoogleCloudVisionV1p3beta1BatchOperationMetadata
7337	raw := NoMethod(*s)
7338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7339}
7340
7341// GoogleCloudVisionV1p3beta1Block: Logical element on the page.
7342type GoogleCloudVisionV1p3beta1Block struct {
7343	// BlockType: Detected block type (text, image etc) for this block.
7344	//
7345	// Possible values:
7346	//   "UNKNOWN" - Unknown block type.
7347	//   "TEXT" - Regular text block.
7348	//   "TABLE" - Table block.
7349	//   "PICTURE" - Image block.
7350	//   "RULER" - Horizontal/vertical line box.
7351	//   "BARCODE" - Barcode block.
7352	BlockType string `json:"blockType,omitempty"`
7353
7354	// BoundingBox: The bounding box for the block.
7355	// The vertices are in the order of top-left, top-right,
7356	// bottom-right,
7357	// bottom-left. When a rotation of the bounding box is detected the
7358	// rotation
7359	// is represented as around the top-left corner as defined when the text
7360	// is
7361	// read in the 'natural' orientation.
7362	// For example:
7363	//
7364	// * when the text is horizontal it might look like:
7365	//
7366	//         0----1
7367	//         |    |
7368	//         3----2
7369	//
7370	// * when it's rotated 180 degrees around the top-left corner it
7371	// becomes:
7372	//
7373	//         2----3
7374	//         |    |
7375	//         1----0
7376	//
7377	//   and the vertex order will still be (0, 1, 2, 3).
7378	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
7379
7380	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
7381	Confidence float64 `json:"confidence,omitempty"`
7382
7383	// Paragraphs: List of paragraphs in this block (if this blocks is of
7384	// type text).
7385	Paragraphs []*GoogleCloudVisionV1p3beta1Paragraph `json:"paragraphs,omitempty"`
7386
7387	// Property: Additional information detected for the block.
7388	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7389
7390	// ForceSendFields is a list of field names (e.g. "BlockType") to
7391	// unconditionally include in API requests. By default, fields with
7392	// empty values are omitted from API requests. However, any non-pointer,
7393	// non-interface field appearing in ForceSendFields will be sent to the
7394	// server regardless of whether the field is empty or not. This may be
7395	// used to include empty fields in Patch requests.
7396	ForceSendFields []string `json:"-"`
7397
7398	// NullFields is a list of field names (e.g. "BlockType") to include in
7399	// API requests with the JSON null value. By default, fields with empty
7400	// values are omitted from API requests. However, any field with an
7401	// empty value appearing in NullFields will be sent to the server as
7402	// null. It is an error if a field in this list has a non-empty value.
7403	// This may be used to include null fields in Patch requests.
7404	NullFields []string `json:"-"`
7405}
7406
7407func (s *GoogleCloudVisionV1p3beta1Block) MarshalJSON() ([]byte, error) {
7408	type NoMethod GoogleCloudVisionV1p3beta1Block
7409	raw := NoMethod(*s)
7410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7411}
7412
7413func (s *GoogleCloudVisionV1p3beta1Block) UnmarshalJSON(data []byte) error {
7414	type NoMethod GoogleCloudVisionV1p3beta1Block
7415	var s1 struct {
7416		Confidence gensupport.JSONFloat64 `json:"confidence"`
7417		*NoMethod
7418	}
7419	s1.NoMethod = (*NoMethod)(s)
7420	if err := json.Unmarshal(data, &s1); err != nil {
7421		return err
7422	}
7423	s.Confidence = float64(s1.Confidence)
7424	return nil
7425}
7426
7427// GoogleCloudVisionV1p3beta1BoundingPoly: A bounding polygon for the
7428// detected image annotation.
7429type GoogleCloudVisionV1p3beta1BoundingPoly struct {
7430	// NormalizedVertices: The bounding polygon normalized vertices.
7431	NormalizedVertices []*GoogleCloudVisionV1p3beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
7432
7433	// Vertices: The bounding polygon vertices.
7434	Vertices []*GoogleCloudVisionV1p3beta1Vertex `json:"vertices,omitempty"`
7435
7436	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
7437	// to unconditionally include in API requests. By default, fields with
7438	// empty values are omitted from API requests. However, any non-pointer,
7439	// non-interface field appearing in ForceSendFields will be sent to the
7440	// server regardless of whether the field is empty or not. This may be
7441	// used to include empty fields in Patch requests.
7442	ForceSendFields []string `json:"-"`
7443
7444	// NullFields is a list of field names (e.g. "NormalizedVertices") to
7445	// include in API requests with the JSON null value. By default, fields
7446	// with empty values are omitted from API requests. However, any field
7447	// with an empty value appearing in NullFields will be sent to the
7448	// server as null. It is an error if a field in this list has a
7449	// non-empty value. This may be used to include null fields in Patch
7450	// requests.
7451	NullFields []string `json:"-"`
7452}
7453
7454func (s *GoogleCloudVisionV1p3beta1BoundingPoly) MarshalJSON() ([]byte, error) {
7455	type NoMethod GoogleCloudVisionV1p3beta1BoundingPoly
7456	raw := NoMethod(*s)
7457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7458}
7459
7460// GoogleCloudVisionV1p3beta1ColorInfo: Color information consists of
7461// RGB channels, score, and the fraction of
7462// the image that the color occupies in the image.
7463type GoogleCloudVisionV1p3beta1ColorInfo struct {
7464	// Color: RGB components of the color.
7465	Color *Color `json:"color,omitempty"`
7466
7467	// PixelFraction: The fraction of pixels the color occupies in the
7468	// image.
7469	// Value in range [0, 1].
7470	PixelFraction float64 `json:"pixelFraction,omitempty"`
7471
7472	// Score: Image-specific score for this color. Value in range [0, 1].
7473	Score float64 `json:"score,omitempty"`
7474
7475	// ForceSendFields is a list of field names (e.g. "Color") to
7476	// unconditionally include in API requests. By default, fields with
7477	// empty values are omitted from API requests. However, any non-pointer,
7478	// non-interface field appearing in ForceSendFields will be sent to the
7479	// server regardless of whether the field is empty or not. This may be
7480	// used to include empty fields in Patch requests.
7481	ForceSendFields []string `json:"-"`
7482
7483	// NullFields is a list of field names (e.g. "Color") to include in API
7484	// requests with the JSON null value. By default, fields with empty
7485	// values are omitted from API requests. However, any field with an
7486	// empty value appearing in NullFields will be sent to the server as
7487	// null. It is an error if a field in this list has a non-empty value.
7488	// This may be used to include null fields in Patch requests.
7489	NullFields []string `json:"-"`
7490}
7491
7492func (s *GoogleCloudVisionV1p3beta1ColorInfo) MarshalJSON() ([]byte, error) {
7493	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7494	raw := NoMethod(*s)
7495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7496}
7497
7498func (s *GoogleCloudVisionV1p3beta1ColorInfo) UnmarshalJSON(data []byte) error {
7499	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7500	var s1 struct {
7501		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
7502		Score         gensupport.JSONFloat64 `json:"score"`
7503		*NoMethod
7504	}
7505	s1.NoMethod = (*NoMethod)(s)
7506	if err := json.Unmarshal(data, &s1); err != nil {
7507		return err
7508	}
7509	s.PixelFraction = float64(s1.PixelFraction)
7510	s.Score = float64(s1.Score)
7511	return nil
7512}
7513
7514// GoogleCloudVisionV1p3beta1CropHint: Single crop hint that is used to
7515// generate a new crop when serving an image.
7516type GoogleCloudVisionV1p3beta1CropHint struct {
7517	// BoundingPoly: The bounding polygon for the crop region. The
7518	// coordinates of the bounding
7519	// box are in the original image's scale.
7520	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7521
7522	// Confidence: Confidence of this being a salient region.  Range [0, 1].
7523	Confidence float64 `json:"confidence,omitempty"`
7524
7525	// ImportanceFraction: Fraction of importance of this salient region
7526	// with respect to the original
7527	// image.
7528	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
7529
7530	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7531	// unconditionally include in API requests. By default, fields with
7532	// empty values are omitted from API requests. However, any non-pointer,
7533	// non-interface field appearing in ForceSendFields will be sent to the
7534	// server regardless of whether the field is empty or not. This may be
7535	// used to include empty fields in Patch requests.
7536	ForceSendFields []string `json:"-"`
7537
7538	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7539	// in API requests with the JSON null value. By default, fields with
7540	// empty values are omitted from API requests. However, any field with
7541	// an empty value appearing in NullFields will be sent to the server as
7542	// null. It is an error if a field in this list has a non-empty value.
7543	// This may be used to include null fields in Patch requests.
7544	NullFields []string `json:"-"`
7545}
7546
7547func (s *GoogleCloudVisionV1p3beta1CropHint) MarshalJSON() ([]byte, error) {
7548	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7549	raw := NoMethod(*s)
7550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7551}
7552
7553func (s *GoogleCloudVisionV1p3beta1CropHint) UnmarshalJSON(data []byte) error {
7554	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7555	var s1 struct {
7556		Confidence         gensupport.JSONFloat64 `json:"confidence"`
7557		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
7558		*NoMethod
7559	}
7560	s1.NoMethod = (*NoMethod)(s)
7561	if err := json.Unmarshal(data, &s1); err != nil {
7562		return err
7563	}
7564	s.Confidence = float64(s1.Confidence)
7565	s.ImportanceFraction = float64(s1.ImportanceFraction)
7566	return nil
7567}
7568
7569// GoogleCloudVisionV1p3beta1CropHintsAnnotation: Set of crop hints that
7570// are used to generate new crops when serving images.
7571type GoogleCloudVisionV1p3beta1CropHintsAnnotation struct {
7572	// CropHints: Crop hint results.
7573	CropHints []*GoogleCloudVisionV1p3beta1CropHint `json:"cropHints,omitempty"`
7574
7575	// ForceSendFields is a list of field names (e.g. "CropHints") to
7576	// unconditionally include in API requests. By default, fields with
7577	// empty values are omitted from API requests. However, any non-pointer,
7578	// non-interface field appearing in ForceSendFields will be sent to the
7579	// server regardless of whether the field is empty or not. This may be
7580	// used to include empty fields in Patch requests.
7581	ForceSendFields []string `json:"-"`
7582
7583	// NullFields is a list of field names (e.g. "CropHints") to include in
7584	// API requests with the JSON null value. By default, fields with empty
7585	// values are omitted from API requests. However, any field with an
7586	// empty value appearing in NullFields will be sent to the server as
7587	// null. It is an error if a field in this list has a non-empty value.
7588	// This may be used to include null fields in Patch requests.
7589	NullFields []string `json:"-"`
7590}
7591
7592func (s *GoogleCloudVisionV1p3beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
7593	type NoMethod GoogleCloudVisionV1p3beta1CropHintsAnnotation
7594	raw := NoMethod(*s)
7595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7596}
7597
7598// GoogleCloudVisionV1p3beta1DominantColorsAnnotation: Set of dominant
7599// colors and their corresponding scores.
7600type GoogleCloudVisionV1p3beta1DominantColorsAnnotation struct {
7601	// Colors: RGB color values with their score and pixel fraction.
7602	Colors []*GoogleCloudVisionV1p3beta1ColorInfo `json:"colors,omitempty"`
7603
7604	// ForceSendFields is a list of field names (e.g. "Colors") to
7605	// unconditionally include in API requests. By default, fields with
7606	// empty values are omitted from API requests. However, any non-pointer,
7607	// non-interface field appearing in ForceSendFields will be sent to the
7608	// server regardless of whether the field is empty or not. This may be
7609	// used to include empty fields in Patch requests.
7610	ForceSendFields []string `json:"-"`
7611
7612	// NullFields is a list of field names (e.g. "Colors") to include in API
7613	// requests with the JSON null value. By default, fields with empty
7614	// values are omitted from API requests. However, any field with an
7615	// empty value appearing in NullFields will be sent to the server as
7616	// null. It is an error if a field in this list has a non-empty value.
7617	// This may be used to include null fields in Patch requests.
7618	NullFields []string `json:"-"`
7619}
7620
7621func (s *GoogleCloudVisionV1p3beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
7622	type NoMethod GoogleCloudVisionV1p3beta1DominantColorsAnnotation
7623	raw := NoMethod(*s)
7624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7625}
7626
7627// GoogleCloudVisionV1p3beta1EntityAnnotation: Set of detected entity
7628// features.
7629type GoogleCloudVisionV1p3beta1EntityAnnotation struct {
7630	// BoundingPoly: Image region to which this entity belongs. Not
7631	// produced
7632	// for `LABEL_DETECTION` features.
7633	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7634
7635	// Confidence: **Deprecated. Use `score` instead.**
7636	// The accuracy of the entity detection in an image.
7637	// For example, for an image in which the "Eiffel Tower" entity is
7638	// detected,
7639	// this field represents the confidence that there is a tower in the
7640	// query
7641	// image. Range [0, 1].
7642	Confidence float64 `json:"confidence,omitempty"`
7643
7644	// Description: Entity textual description, expressed in its `locale`
7645	// language.
7646	Description string `json:"description,omitempty"`
7647
7648	// Locale: The language code for the locale in which the entity
7649	// textual
7650	// `description` is expressed.
7651	Locale string `json:"locale,omitempty"`
7652
7653	// Locations: The location information for the detected entity.
7654	// Multiple
7655	// `LocationInfo` elements can be present because one location
7656	// may
7657	// indicate the location of the scene in the image, and another
7658	// location
7659	// may indicate the location of the place where the image was
7660	// taken.
7661	// Location information is usually present for landmarks.
7662	Locations []*GoogleCloudVisionV1p3beta1LocationInfo `json:"locations,omitempty"`
7663
7664	// Mid: Opaque entity ID. Some IDs may be available in
7665	// [Google Knowledge Graph
7666	// Search
7667	// API](https://developers.google.com/knowledge-graph/).
7668	Mid string `json:"mid,omitempty"`
7669
7670	// Properties: Some entities may have optional user-supplied `Property`
7671	// (name/value)
7672	// fields, such a score or string that qualifies the entity.
7673	Properties []*GoogleCloudVisionV1p3beta1Property `json:"properties,omitempty"`
7674
7675	// Score: Overall score of the result. Range [0, 1].
7676	Score float64 `json:"score,omitempty"`
7677
7678	// Topicality: The relevancy of the ICA (Image Content Annotation) label
7679	// to the
7680	// image. For example, the relevancy of "tower" is likely higher to an
7681	// image
7682	// containing the detected "Eiffel Tower" than to an image containing
7683	// a
7684	// detected distant towering building, even though the confidence
7685	// that
7686	// there is a tower in each image may be the same. Range [0, 1].
7687	Topicality float64 `json:"topicality,omitempty"`
7688
7689	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7690	// unconditionally include in API requests. By default, fields with
7691	// empty values are omitted from API requests. However, any non-pointer,
7692	// non-interface field appearing in ForceSendFields will be sent to the
7693	// server regardless of whether the field is empty or not. This may be
7694	// used to include empty fields in Patch requests.
7695	ForceSendFields []string `json:"-"`
7696
7697	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7698	// in API requests with the JSON null value. By default, fields with
7699	// empty values are omitted from API requests. However, any field with
7700	// an empty value appearing in NullFields will be sent to the server as
7701	// null. It is an error if a field in this list has a non-empty value.
7702	// This may be used to include null fields in Patch requests.
7703	NullFields []string `json:"-"`
7704}
7705
7706func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
7707	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7708	raw := NoMethod(*s)
7709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7710}
7711
7712func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
7713	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7714	var s1 struct {
7715		Confidence gensupport.JSONFloat64 `json:"confidence"`
7716		Score      gensupport.JSONFloat64 `json:"score"`
7717		Topicality gensupport.JSONFloat64 `json:"topicality"`
7718		*NoMethod
7719	}
7720	s1.NoMethod = (*NoMethod)(s)
7721	if err := json.Unmarshal(data, &s1); err != nil {
7722		return err
7723	}
7724	s.Confidence = float64(s1.Confidence)
7725	s.Score = float64(s1.Score)
7726	s.Topicality = float64(s1.Topicality)
7727	return nil
7728}
7729
7730// GoogleCloudVisionV1p3beta1FaceAnnotation: A face annotation object
7731// contains the results of face detection.
7732type GoogleCloudVisionV1p3beta1FaceAnnotation struct {
7733	// AngerLikelihood: Anger likelihood.
7734	//
7735	// Possible values:
7736	//   "UNKNOWN" - Unknown likelihood.
7737	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7738	// specified vertical.
7739	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7740	// vertical.
7741	//   "POSSIBLE" - It is possible that the image belongs to the specified
7742	// vertical.
7743	//   "LIKELY" - It is likely that the image belongs to the specified
7744	// vertical.
7745	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7746	// specified vertical.
7747	AngerLikelihood string `json:"angerLikelihood,omitempty"`
7748
7749	// BlurredLikelihood: Blurred likelihood.
7750	//
7751	// Possible values:
7752	//   "UNKNOWN" - Unknown likelihood.
7753	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7754	// specified vertical.
7755	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7756	// vertical.
7757	//   "POSSIBLE" - It is possible that the image belongs to the specified
7758	// vertical.
7759	//   "LIKELY" - It is likely that the image belongs to the specified
7760	// vertical.
7761	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7762	// specified vertical.
7763	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
7764
7765	// BoundingPoly: The bounding polygon around the face. The coordinates
7766	// of the bounding box
7767	// are in the original image's scale.
7768	// The bounding box is computed to "frame" the face in accordance with
7769	// human
7770	// expectations. It is based on the landmarker results.
7771	// Note that one or more x and/or y coordinates may not be generated in
7772	// the
7773	// `BoundingPoly` (the polygon will be unbounded) if only a partial
7774	// face
7775	// appears in the image to be annotated.
7776	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7777
7778	// DetectionConfidence: Detection confidence. Range [0, 1].
7779	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
7780
7781	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
7782	// than the
7783	// `boundingPoly`, and encloses only the skin part of the face.
7784	// Typically, it
7785	// is used to eliminate the face from any image analysis that detects
7786	// the
7787	// "amount of skin" visible in an image. It is not based on
7788	// the
7789	// landmarker results, only on the initial face detection, hence
7790	// the <code>fd</code> (face detection) prefix.
7791	FdBoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
7792
7793	// HeadwearLikelihood: Headwear likelihood.
7794	//
7795	// Possible values:
7796	//   "UNKNOWN" - Unknown likelihood.
7797	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7798	// specified vertical.
7799	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7800	// vertical.
7801	//   "POSSIBLE" - It is possible that the image belongs to the specified
7802	// vertical.
7803	//   "LIKELY" - It is likely that the image belongs to the specified
7804	// vertical.
7805	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7806	// specified vertical.
7807	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
7808
7809	// JoyLikelihood: Joy likelihood.
7810	//
7811	// Possible values:
7812	//   "UNKNOWN" - Unknown likelihood.
7813	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7814	// specified vertical.
7815	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7816	// vertical.
7817	//   "POSSIBLE" - It is possible that the image belongs to the specified
7818	// vertical.
7819	//   "LIKELY" - It is likely that the image belongs to the specified
7820	// vertical.
7821	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7822	// specified vertical.
7823	JoyLikelihood string `json:"joyLikelihood,omitempty"`
7824
7825	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
7826	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
7827
7828	// Landmarks: Detected face landmarks.
7829	Landmarks []*GoogleCloudVisionV1p3beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
7830
7831	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
7832	// that the face is
7833	// pointing relative to the vertical plane perpendicular to the image.
7834	// Range
7835	// [-180,180].
7836	PanAngle float64 `json:"panAngle,omitempty"`
7837
7838	// RollAngle: Roll angle, which indicates the amount of
7839	// clockwise/anti-clockwise rotation
7840	// of the face relative to the image vertical about the axis
7841	// perpendicular to
7842	// the face. Range [-180,180].
7843	RollAngle float64 `json:"rollAngle,omitempty"`
7844
7845	// SorrowLikelihood: Sorrow likelihood.
7846	//
7847	// Possible values:
7848	//   "UNKNOWN" - Unknown likelihood.
7849	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7850	// specified vertical.
7851	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7852	// vertical.
7853	//   "POSSIBLE" - It is possible that the image belongs to the specified
7854	// vertical.
7855	//   "LIKELY" - It is likely that the image belongs to the specified
7856	// vertical.
7857	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7858	// specified vertical.
7859	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
7860
7861	// SurpriseLikelihood: Surprise likelihood.
7862	//
7863	// Possible values:
7864	//   "UNKNOWN" - Unknown likelihood.
7865	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7866	// specified vertical.
7867	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7868	// vertical.
7869	//   "POSSIBLE" - It is possible that the image belongs to the specified
7870	// vertical.
7871	//   "LIKELY" - It is likely that the image belongs to the specified
7872	// vertical.
7873	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7874	// specified vertical.
7875	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
7876
7877	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
7878	// that the face is
7879	// pointing relative to the image's horizontal plane. Range [-180,180].
7880	TiltAngle float64 `json:"tiltAngle,omitempty"`
7881
7882	// UnderExposedLikelihood: Under-exposed likelihood.
7883	//
7884	// Possible values:
7885	//   "UNKNOWN" - Unknown likelihood.
7886	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
7887	// specified vertical.
7888	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
7889	// vertical.
7890	//   "POSSIBLE" - It is possible that the image belongs to the specified
7891	// vertical.
7892	//   "LIKELY" - It is likely that the image belongs to the specified
7893	// vertical.
7894	//   "VERY_LIKELY" - It is very likely that the image belongs to the
7895	// specified vertical.
7896	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
7897
7898	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
7899	// unconditionally include in API requests. By default, fields with
7900	// empty values are omitted from API requests. However, any non-pointer,
7901	// non-interface field appearing in ForceSendFields will be sent to the
7902	// server regardless of whether the field is empty or not. This may be
7903	// used to include empty fields in Patch requests.
7904	ForceSendFields []string `json:"-"`
7905
7906	// NullFields is a list of field names (e.g. "AngerLikelihood") to
7907	// include in API requests with the JSON null value. By default, fields
7908	// with empty values are omitted from API requests. However, any field
7909	// with an empty value appearing in NullFields will be sent to the
7910	// server as null. It is an error if a field in this list has a
7911	// non-empty value. This may be used to include null fields in Patch
7912	// requests.
7913	NullFields []string `json:"-"`
7914}
7915
7916func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
7917	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7918	raw := NoMethod(*s)
7919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7920}
7921
7922func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
7923	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7924	var s1 struct {
7925		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
7926		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
7927		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
7928		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
7929		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
7930		*NoMethod
7931	}
7932	s1.NoMethod = (*NoMethod)(s)
7933	if err := json.Unmarshal(data, &s1); err != nil {
7934		return err
7935	}
7936	s.DetectionConfidence = float64(s1.DetectionConfidence)
7937	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
7938	s.PanAngle = float64(s1.PanAngle)
7939	s.RollAngle = float64(s1.RollAngle)
7940	s.TiltAngle = float64(s1.TiltAngle)
7941	return nil
7942}
7943
7944// GoogleCloudVisionV1p3beta1FaceAnnotationLandmark: A face-specific
7945// landmark (for example, a face feature).
7946type GoogleCloudVisionV1p3beta1FaceAnnotationLandmark struct {
7947	// Position: Face landmark position.
7948	Position *GoogleCloudVisionV1p3beta1Position `json:"position,omitempty"`
7949
7950	// Type: Face landmark type.
7951	//
7952	// Possible values:
7953	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
7954	// filled.
7955	//   "LEFT_EYE" - Left eye.
7956	//   "RIGHT_EYE" - Right eye.
7957	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
7958	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
7959	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
7960	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
7961	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
7962	//   "NOSE_TIP" - Nose tip.
7963	//   "UPPER_LIP" - Upper lip.
7964	//   "LOWER_LIP" - Lower lip.
7965	//   "MOUTH_LEFT" - Mouth left.
7966	//   "MOUTH_RIGHT" - Mouth right.
7967	//   "MOUTH_CENTER" - Mouth center.
7968	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
7969	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
7970	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
7971	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
7972	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
7973	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
7974	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
7975	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
7976	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
7977	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
7978	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
7979	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
7980	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
7981	//   "LEFT_EAR_TRAGION" - Left ear tragion.
7982	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
7983	//   "LEFT_EYE_PUPIL" - Left eye pupil.
7984	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
7985	//   "FOREHEAD_GLABELLA" - Forehead glabella.
7986	//   "CHIN_GNATHION" - Chin gnathion.
7987	//   "CHIN_LEFT_GONION" - Chin left gonion.
7988	//   "CHIN_RIGHT_GONION" - Chin right gonion.
7989	Type string `json:"type,omitempty"`
7990
7991	// ForceSendFields is a list of field names (e.g. "Position") to
7992	// unconditionally include in API requests. By default, fields with
7993	// empty values are omitted from API requests. However, any non-pointer,
7994	// non-interface field appearing in ForceSendFields will be sent to the
7995	// server regardless of whether the field is empty or not. This may be
7996	// used to include empty fields in Patch requests.
7997	ForceSendFields []string `json:"-"`
7998
7999	// NullFields is a list of field names (e.g. "Position") to include in
8000	// API requests with the JSON null value. By default, fields with empty
8001	// values are omitted from API requests. However, any field with an
8002	// empty value appearing in NullFields will be sent to the server as
8003	// null. It is an error if a field in this list has a non-empty value.
8004	// This may be used to include null fields in Patch requests.
8005	NullFields []string `json:"-"`
8006}
8007
8008func (s *GoogleCloudVisionV1p3beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
8009	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotationLandmark
8010	raw := NoMethod(*s)
8011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8012}
8013
8014// GoogleCloudVisionV1p3beta1GcsDestination: The Google Cloud Storage
8015// location where the output will be written to.
8016type GoogleCloudVisionV1p3beta1GcsDestination struct {
8017	// Uri: Google Cloud Storage URI prefix where the results will be
8018	// stored. Results
8019	// will be in JSON format and preceded by its corresponding input URI
8020	// prefix.
8021	// This field can either represent a gcs file prefix or gcs directory.
8022	// In
8023	// either case, the uri should be unique because in order to get all of
8024	// the
8025	// output files, you will need to do a wildcard gcs search on the uri
8026	// prefix
8027	// you provide.
8028	//
8029	// Examples:
8030	//
8031	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
8032	// files
8033	// will be created in gs://bucket-name/here/ and the names of the
8034	// output files will begin with "filenameprefix".
8035	//
8036	// *    Directory Prefix: gs://bucket-name/some/location/   The output
8037	// files
8038	// will be created in gs://bucket-name/some/location/ and the names of
8039	// the
8040	// output files could be anything because there was no filename
8041	// prefix
8042	// specified.
8043	//
8044	// If multiple outputs, each response is still AnnotateFileResponse,
8045	// each of
8046	// which contains some subset of the full list of
8047	// AnnotateImageResponse.
8048	// Multiple outputs can happen if, for example, the output JSON is too
8049	// large
8050	// and overflows into multiple sharded files.
8051	Uri string `json:"uri,omitempty"`
8052
8053	// ForceSendFields is a list of field names (e.g. "Uri") to
8054	// unconditionally include in API requests. By default, fields with
8055	// empty values are omitted from API requests. However, any non-pointer,
8056	// non-interface field appearing in ForceSendFields will be sent to the
8057	// server regardless of whether the field is empty or not. This may be
8058	// used to include empty fields in Patch requests.
8059	ForceSendFields []string `json:"-"`
8060
8061	// NullFields is a list of field names (e.g. "Uri") to include in API
8062	// requests with the JSON null value. By default, fields with empty
8063	// values are omitted from API requests. However, any field with an
8064	// empty value appearing in NullFields will be sent to the server as
8065	// null. It is an error if a field in this list has a non-empty value.
8066	// This may be used to include null fields in Patch requests.
8067	NullFields []string `json:"-"`
8068}
8069
8070func (s *GoogleCloudVisionV1p3beta1GcsDestination) MarshalJSON() ([]byte, error) {
8071	type NoMethod GoogleCloudVisionV1p3beta1GcsDestination
8072	raw := NoMethod(*s)
8073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8074}
8075
8076// GoogleCloudVisionV1p3beta1GcsSource: The Google Cloud Storage
8077// location where the input will be read from.
8078type GoogleCloudVisionV1p3beta1GcsSource struct {
8079	// Uri: Google Cloud Storage URI for the input file. This must only be
8080	// a
8081	// Google Cloud Storage object. Wildcards are not currently supported.
8082	Uri string `json:"uri,omitempty"`
8083
8084	// ForceSendFields is a list of field names (e.g. "Uri") to
8085	// unconditionally include in API requests. By default, fields with
8086	// empty values are omitted from API requests. However, any non-pointer,
8087	// non-interface field appearing in ForceSendFields will be sent to the
8088	// server regardless of whether the field is empty or not. This may be
8089	// used to include empty fields in Patch requests.
8090	ForceSendFields []string `json:"-"`
8091
8092	// NullFields is a list of field names (e.g. "Uri") to include in API
8093	// requests with the JSON null value. By default, fields with empty
8094	// values are omitted from API requests. However, any field with an
8095	// empty value appearing in NullFields will be sent to the server as
8096	// null. It is an error if a field in this list has a non-empty value.
8097	// This may be used to include null fields in Patch requests.
8098	NullFields []string `json:"-"`
8099}
8100
8101func (s *GoogleCloudVisionV1p3beta1GcsSource) MarshalJSON() ([]byte, error) {
8102	type NoMethod GoogleCloudVisionV1p3beta1GcsSource
8103	raw := NoMethod(*s)
8104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8105}
8106
8107// GoogleCloudVisionV1p3beta1ImageAnnotationContext: If an image was
8108// produced from a file (e.g. a PDF), this message gives
8109// information about the source of that image.
8110type GoogleCloudVisionV1p3beta1ImageAnnotationContext struct {
8111	// PageNumber: If the file was a PDF or TIFF, this field gives the page
8112	// number within
8113	// the file used to produce the image.
8114	PageNumber int64 `json:"pageNumber,omitempty"`
8115
8116	// Uri: The URI of the file used to produce the image.
8117	Uri string `json:"uri,omitempty"`
8118
8119	// ForceSendFields is a list of field names (e.g. "PageNumber") to
8120	// unconditionally include in API requests. By default, fields with
8121	// empty values are omitted from API requests. However, any non-pointer,
8122	// non-interface field appearing in ForceSendFields will be sent to the
8123	// server regardless of whether the field is empty or not. This may be
8124	// used to include empty fields in Patch requests.
8125	ForceSendFields []string `json:"-"`
8126
8127	// NullFields is a list of field names (e.g. "PageNumber") to include in
8128	// API requests with the JSON null value. By default, fields with empty
8129	// values are omitted from API requests. However, any field with an
8130	// empty value appearing in NullFields will be sent to the server as
8131	// null. It is an error if a field in this list has a non-empty value.
8132	// This may be used to include null fields in Patch requests.
8133	NullFields []string `json:"-"`
8134}
8135
8136func (s *GoogleCloudVisionV1p3beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
8137	type NoMethod GoogleCloudVisionV1p3beta1ImageAnnotationContext
8138	raw := NoMethod(*s)
8139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8140}
8141
8142// GoogleCloudVisionV1p3beta1ImageProperties: Stores image properties,
8143// such as dominant colors.
8144type GoogleCloudVisionV1p3beta1ImageProperties struct {
8145	// DominantColors: If present, dominant colors completed successfully.
8146	DominantColors *GoogleCloudVisionV1p3beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
8147
8148	// ForceSendFields is a list of field names (e.g. "DominantColors") to
8149	// unconditionally include in API requests. By default, fields with
8150	// empty values are omitted from API requests. However, any non-pointer,
8151	// non-interface field appearing in ForceSendFields will be sent to the
8152	// server regardless of whether the field is empty or not. This may be
8153	// used to include empty fields in Patch requests.
8154	ForceSendFields []string `json:"-"`
8155
8156	// NullFields is a list of field names (e.g. "DominantColors") to
8157	// include in API requests with the JSON null value. By default, fields
8158	// with empty values are omitted from API requests. However, any field
8159	// with an empty value appearing in NullFields will be sent to the
8160	// server as null. It is an error if a field in this list has a
8161	// non-empty value. This may be used to include null fields in Patch
8162	// requests.
8163	NullFields []string `json:"-"`
8164}
8165
8166func (s *GoogleCloudVisionV1p3beta1ImageProperties) MarshalJSON() ([]byte, error) {
8167	type NoMethod GoogleCloudVisionV1p3beta1ImageProperties
8168	raw := NoMethod(*s)
8169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8170}
8171
8172// GoogleCloudVisionV1p3beta1ImportProductSetsResponse: Response message
8173// for the `ImportProductSets` method.
8174//
8175// This message is returned by
8176// the
8177// google.longrunning.Operations.GetOperation method in the
8178// returned
8179// google.longrunning.Operation.response field.
8180type GoogleCloudVisionV1p3beta1ImportProductSetsResponse struct {
8181	// ReferenceImages: The list of reference_images that are imported
8182	// successfully.
8183	ReferenceImages []*GoogleCloudVisionV1p3beta1ReferenceImage `json:"referenceImages,omitempty"`
8184
8185	// Statuses: The rpc status for each ImportProductSet request, including
8186	// both successes
8187	// and errors.
8188	//
8189	// The number of statuses here matches the number of lines in the csv
8190	// file,
8191	// and statuses[i] stores the success or failure status of processing
8192	// the i-th
8193	// line of the csv, starting from line 0.
8194	Statuses []*Status `json:"statuses,omitempty"`
8195
8196	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
8197	// unconditionally include in API requests. By default, fields with
8198	// empty values are omitted from API requests. However, any non-pointer,
8199	// non-interface field appearing in ForceSendFields will be sent to the
8200	// server regardless of whether the field is empty or not. This may be
8201	// used to include empty fields in Patch requests.
8202	ForceSendFields []string `json:"-"`
8203
8204	// NullFields is a list of field names (e.g. "ReferenceImages") to
8205	// include in API requests with the JSON null value. By default, fields
8206	// with empty values are omitted from API requests. However, any field
8207	// with an empty value appearing in NullFields will be sent to the
8208	// server as null. It is an error if a field in this list has a
8209	// non-empty value. This may be used to include null fields in Patch
8210	// requests.
8211	NullFields []string `json:"-"`
8212}
8213
8214func (s *GoogleCloudVisionV1p3beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
8215	type NoMethod GoogleCloudVisionV1p3beta1ImportProductSetsResponse
8216	raw := NoMethod(*s)
8217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8218}
8219
8220// GoogleCloudVisionV1p3beta1InputConfig: The desired input location and
8221// metadata.
8222type GoogleCloudVisionV1p3beta1InputConfig struct {
8223	// Content: File content, represented as a stream of bytes.
8224	// Note: As with all `bytes` fields, protobuffers use a pure
8225	// binary
8226	// representation, whereas JSON representations use base64.
8227	//
8228	// Currently, this field only works for BatchAnnotateFiles requests. It
8229	// does
8230	// not work for AsyncBatchAnnotateFiles requests.
8231	Content string `json:"content,omitempty"`
8232
8233	// GcsSource: The Google Cloud Storage location to read the input from.
8234	GcsSource *GoogleCloudVisionV1p3beta1GcsSource `json:"gcsSource,omitempty"`
8235
8236	// MimeType: The type of the file. Currently only "application/pdf",
8237	// "image/tiff" and
8238	// "image/gif" are supported. Wildcards are not supported.
8239	MimeType string `json:"mimeType,omitempty"`
8240
8241	// ForceSendFields is a list of field names (e.g. "Content") to
8242	// unconditionally include in API requests. By default, fields with
8243	// empty values are omitted from API requests. However, any non-pointer,
8244	// non-interface field appearing in ForceSendFields will be sent to the
8245	// server regardless of whether the field is empty or not. This may be
8246	// used to include empty fields in Patch requests.
8247	ForceSendFields []string `json:"-"`
8248
8249	// NullFields is a list of field names (e.g. "Content") to include in
8250	// API requests with the JSON null value. By default, fields with empty
8251	// values are omitted from API requests. However, any field with an
8252	// empty value appearing in NullFields will be sent to the server as
8253	// null. It is an error if a field in this list has a non-empty value.
8254	// This may be used to include null fields in Patch requests.
8255	NullFields []string `json:"-"`
8256}
8257
8258func (s *GoogleCloudVisionV1p3beta1InputConfig) MarshalJSON() ([]byte, error) {
8259	type NoMethod GoogleCloudVisionV1p3beta1InputConfig
8260	raw := NoMethod(*s)
8261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8262}
8263
8264// GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation: Set of detected
8265// objects with bounding boxes.
8266type GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation struct {
8267	// BoundingPoly: Image region to which this object belongs. This must be
8268	// populated.
8269	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8270
8271	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8272	// For more
8273	// information,
8274	// see
8275	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8276	LanguageCode string `json:"languageCode,omitempty"`
8277
8278	// Mid: Object ID that should align with EntityAnnotation mid.
8279	Mid string `json:"mid,omitempty"`
8280
8281	// Name: Object name, expressed in its `language_code` language.
8282	Name string `json:"name,omitempty"`
8283
8284	// Score: Score of the result. Range [0, 1].
8285	Score float64 `json:"score,omitempty"`
8286
8287	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8288	// unconditionally include in API requests. By default, fields with
8289	// empty values are omitted from API requests. However, any non-pointer,
8290	// non-interface field appearing in ForceSendFields will be sent to the
8291	// server regardless of whether the field is empty or not. This may be
8292	// used to include empty fields in Patch requests.
8293	ForceSendFields []string `json:"-"`
8294
8295	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8296	// in API requests with the JSON null value. By default, fields with
8297	// empty values are omitted from API requests. However, any field with
8298	// an empty value appearing in NullFields will be sent to the server as
8299	// null. It is an error if a field in this list has a non-empty value.
8300	// This may be used to include null fields in Patch requests.
8301	NullFields []string `json:"-"`
8302}
8303
8304func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
8305	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8306	raw := NoMethod(*s)
8307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8308}
8309
8310func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
8311	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8312	var s1 struct {
8313		Score gensupport.JSONFloat64 `json:"score"`
8314		*NoMethod
8315	}
8316	s1.NoMethod = (*NoMethod)(s)
8317	if err := json.Unmarshal(data, &s1); err != nil {
8318		return err
8319	}
8320	s.Score = float64(s1.Score)
8321	return nil
8322}
8323
8324// GoogleCloudVisionV1p3beta1LocationInfo: Detected entity location
8325// information.
8326type GoogleCloudVisionV1p3beta1LocationInfo struct {
8327	// LatLng: lat/long location coordinates.
8328	LatLng *LatLng `json:"latLng,omitempty"`
8329
8330	// ForceSendFields is a list of field names (e.g. "LatLng") to
8331	// unconditionally include in API requests. By default, fields with
8332	// empty values are omitted from API requests. However, any non-pointer,
8333	// non-interface field appearing in ForceSendFields will be sent to the
8334	// server regardless of whether the field is empty or not. This may be
8335	// used to include empty fields in Patch requests.
8336	ForceSendFields []string `json:"-"`
8337
8338	// NullFields is a list of field names (e.g. "LatLng") to include in API
8339	// requests with the JSON null value. By default, fields with empty
8340	// values are omitted from API requests. However, any field with an
8341	// empty value appearing in NullFields will be sent to the server as
8342	// null. It is an error if a field in this list has a non-empty value.
8343	// This may be used to include null fields in Patch requests.
8344	NullFields []string `json:"-"`
8345}
8346
8347func (s *GoogleCloudVisionV1p3beta1LocationInfo) MarshalJSON() ([]byte, error) {
8348	type NoMethod GoogleCloudVisionV1p3beta1LocationInfo
8349	raw := NoMethod(*s)
8350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8351}
8352
8353// GoogleCloudVisionV1p3beta1NormalizedVertex: A vertex represents a 2D
8354// point in the image.
8355// NOTE: the normalized vertex coordinates are relative to the original
8356// image
8357// and range from 0 to 1.
8358type GoogleCloudVisionV1p3beta1NormalizedVertex struct {
8359	// X: X coordinate.
8360	X float64 `json:"x,omitempty"`
8361
8362	// Y: Y coordinate.
8363	Y float64 `json:"y,omitempty"`
8364
8365	// ForceSendFields is a list of field names (e.g. "X") to
8366	// unconditionally include in API requests. By default, fields with
8367	// empty values are omitted from API requests. However, any non-pointer,
8368	// non-interface field appearing in ForceSendFields will be sent to the
8369	// server regardless of whether the field is empty or not. This may be
8370	// used to include empty fields in Patch requests.
8371	ForceSendFields []string `json:"-"`
8372
8373	// NullFields is a list of field names (e.g. "X") to include in API
8374	// requests with the JSON null value. By default, fields with empty
8375	// values are omitted from API requests. However, any field with an
8376	// empty value appearing in NullFields will be sent to the server as
8377	// null. It is an error if a field in this list has a non-empty value.
8378	// This may be used to include null fields in Patch requests.
8379	NullFields []string `json:"-"`
8380}
8381
8382func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
8383	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8384	raw := NoMethod(*s)
8385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8386}
8387
8388func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
8389	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8390	var s1 struct {
8391		X gensupport.JSONFloat64 `json:"x"`
8392		Y gensupport.JSONFloat64 `json:"y"`
8393		*NoMethod
8394	}
8395	s1.NoMethod = (*NoMethod)(s)
8396	if err := json.Unmarshal(data, &s1); err != nil {
8397		return err
8398	}
8399	s.X = float64(s1.X)
8400	s.Y = float64(s1.Y)
8401	return nil
8402}
8403
8404// GoogleCloudVisionV1p3beta1OperationMetadata: Contains metadata for
8405// the BatchAnnotateImages operation.
8406type GoogleCloudVisionV1p3beta1OperationMetadata struct {
8407	// CreateTime: The time when the batch request was received.
8408	CreateTime string `json:"createTime,omitempty"`
8409
8410	// State: Current state of the batch operation.
8411	//
8412	// Possible values:
8413	//   "STATE_UNSPECIFIED" - Invalid.
8414	//   "CREATED" - Request is received.
8415	//   "RUNNING" - Request is actively being processed.
8416	//   "DONE" - The batch processing is done.
8417	//   "CANCELLED" - The batch processing was cancelled.
8418	State string `json:"state,omitempty"`
8419
8420	// UpdateTime: The time when the operation result was last updated.
8421	UpdateTime string `json:"updateTime,omitempty"`
8422
8423	// ForceSendFields is a list of field names (e.g. "CreateTime") to
8424	// unconditionally include in API requests. By default, fields with
8425	// empty values are omitted from API requests. However, any non-pointer,
8426	// non-interface field appearing in ForceSendFields will be sent to the
8427	// server regardless of whether the field is empty or not. This may be
8428	// used to include empty fields in Patch requests.
8429	ForceSendFields []string `json:"-"`
8430
8431	// NullFields is a list of field names (e.g. "CreateTime") to include in
8432	// API requests with the JSON null value. By default, fields with empty
8433	// values are omitted from API requests. However, any field with an
8434	// empty value appearing in NullFields will be sent to the server as
8435	// null. It is an error if a field in this list has a non-empty value.
8436	// This may be used to include null fields in Patch requests.
8437	NullFields []string `json:"-"`
8438}
8439
8440func (s *GoogleCloudVisionV1p3beta1OperationMetadata) MarshalJSON() ([]byte, error) {
8441	type NoMethod GoogleCloudVisionV1p3beta1OperationMetadata
8442	raw := NoMethod(*s)
8443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8444}
8445
8446// GoogleCloudVisionV1p3beta1OutputConfig: The desired output location
8447// and metadata.
8448type GoogleCloudVisionV1p3beta1OutputConfig struct {
8449	// BatchSize: The max number of response protos to put into each output
8450	// JSON file on
8451	// Google Cloud Storage.
8452	// The valid range is [1, 100]. If not specified, the default value is
8453	// 20.
8454	//
8455	// For example, for one pdf file with 100 pages, 100 response protos
8456	// will
8457	// be generated. If `batch_size` = 20, then 5 json files each
8458	// containing 20 response protos will be written under the
8459	// prefix
8460	// `gcs_destination`.`uri`.
8461	//
8462	// Currently, batch_size only applies to GcsDestination, with potential
8463	// future
8464	// support for other output configurations.
8465	BatchSize int64 `json:"batchSize,omitempty"`
8466
8467	// GcsDestination: The Google Cloud Storage location to write the
8468	// output(s) to.
8469	GcsDestination *GoogleCloudVisionV1p3beta1GcsDestination `json:"gcsDestination,omitempty"`
8470
8471	// ForceSendFields is a list of field names (e.g. "BatchSize") to
8472	// unconditionally include in API requests. By default, fields with
8473	// empty values are omitted from API requests. However, any non-pointer,
8474	// non-interface field appearing in ForceSendFields will be sent to the
8475	// server regardless of whether the field is empty or not. This may be
8476	// used to include empty fields in Patch requests.
8477	ForceSendFields []string `json:"-"`
8478
8479	// NullFields is a list of field names (e.g. "BatchSize") to include in
8480	// API requests with the JSON null value. By default, fields with empty
8481	// values are omitted from API requests. However, any field with an
8482	// empty value appearing in NullFields will be sent to the server as
8483	// null. It is an error if a field in this list has a non-empty value.
8484	// This may be used to include null fields in Patch requests.
8485	NullFields []string `json:"-"`
8486}
8487
8488func (s *GoogleCloudVisionV1p3beta1OutputConfig) MarshalJSON() ([]byte, error) {
8489	type NoMethod GoogleCloudVisionV1p3beta1OutputConfig
8490	raw := NoMethod(*s)
8491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8492}
8493
8494// GoogleCloudVisionV1p3beta1Page: Detected page from OCR.
8495type GoogleCloudVisionV1p3beta1Page struct {
8496	// Blocks: List of blocks of text, images etc on this page.
8497	Blocks []*GoogleCloudVisionV1p3beta1Block `json:"blocks,omitempty"`
8498
8499	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
8500	Confidence float64 `json:"confidence,omitempty"`
8501
8502	// Height: Page height. For PDFs the unit is points. For images
8503	// (including
8504	// TIFFs) the unit is pixels.
8505	Height int64 `json:"height,omitempty"`
8506
8507	// Property: Additional information detected on the page.
8508	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8509
8510	// Width: Page width. For PDFs the unit is points. For images
8511	// (including
8512	// TIFFs) the unit is pixels.
8513	Width int64 `json:"width,omitempty"`
8514
8515	// ForceSendFields is a list of field names (e.g. "Blocks") to
8516	// unconditionally include in API requests. By default, fields with
8517	// empty values are omitted from API requests. However, any non-pointer,
8518	// non-interface field appearing in ForceSendFields will be sent to the
8519	// server regardless of whether the field is empty or not. This may be
8520	// used to include empty fields in Patch requests.
8521	ForceSendFields []string `json:"-"`
8522
8523	// NullFields is a list of field names (e.g. "Blocks") to include in API
8524	// requests with the JSON null value. By default, fields with empty
8525	// values are omitted from API requests. However, any field with an
8526	// empty value appearing in NullFields will be sent to the server as
8527	// null. It is an error if a field in this list has a non-empty value.
8528	// This may be used to include null fields in Patch requests.
8529	NullFields []string `json:"-"`
8530}
8531
8532func (s *GoogleCloudVisionV1p3beta1Page) MarshalJSON() ([]byte, error) {
8533	type NoMethod GoogleCloudVisionV1p3beta1Page
8534	raw := NoMethod(*s)
8535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8536}
8537
8538func (s *GoogleCloudVisionV1p3beta1Page) UnmarshalJSON(data []byte) error {
8539	type NoMethod GoogleCloudVisionV1p3beta1Page
8540	var s1 struct {
8541		Confidence gensupport.JSONFloat64 `json:"confidence"`
8542		*NoMethod
8543	}
8544	s1.NoMethod = (*NoMethod)(s)
8545	if err := json.Unmarshal(data, &s1); err != nil {
8546		return err
8547	}
8548	s.Confidence = float64(s1.Confidence)
8549	return nil
8550}
8551
8552// GoogleCloudVisionV1p3beta1Paragraph: Structural unit of text
8553// representing a number of words in certain order.
8554type GoogleCloudVisionV1p3beta1Paragraph struct {
8555	// BoundingBox: The bounding box for the paragraph.
8556	// The vertices are in the order of top-left, top-right,
8557	// bottom-right,
8558	// bottom-left. When a rotation of the bounding box is detected the
8559	// rotation
8560	// is represented as around the top-left corner as defined when the text
8561	// is
8562	// read in the 'natural' orientation.
8563	// For example:
8564	//   * when the text is horizontal it might look like:
8565	//      0----1
8566	//      |    |
8567	//      3----2
8568	//   * when it's rotated 180 degrees around the top-left corner it
8569	// becomes:
8570	//      2----3
8571	//      |    |
8572	//      1----0
8573	//   and the vertex order will still be (0, 1, 2, 3).
8574	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8575
8576	// Confidence: Confidence of the OCR results for the paragraph. Range
8577	// [0, 1].
8578	Confidence float64 `json:"confidence,omitempty"`
8579
8580	// Property: Additional information detected for the paragraph.
8581	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8582
8583	// Words: List of words in this paragraph.
8584	Words []*GoogleCloudVisionV1p3beta1Word `json:"words,omitempty"`
8585
8586	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8587	// unconditionally include in API requests. By default, fields with
8588	// empty values are omitted from API requests. However, any non-pointer,
8589	// non-interface field appearing in ForceSendFields will be sent to the
8590	// server regardless of whether the field is empty or not. This may be
8591	// used to include empty fields in Patch requests.
8592	ForceSendFields []string `json:"-"`
8593
8594	// NullFields is a list of field names (e.g. "BoundingBox") to include
8595	// in API requests with the JSON null value. By default, fields with
8596	// empty values are omitted from API requests. However, any field with
8597	// an empty value appearing in NullFields will be sent to the server as
8598	// null. It is an error if a field in this list has a non-empty value.
8599	// This may be used to include null fields in Patch requests.
8600	NullFields []string `json:"-"`
8601}
8602
8603func (s *GoogleCloudVisionV1p3beta1Paragraph) MarshalJSON() ([]byte, error) {
8604	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8605	raw := NoMethod(*s)
8606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8607}
8608
8609func (s *GoogleCloudVisionV1p3beta1Paragraph) UnmarshalJSON(data []byte) error {
8610	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8611	var s1 struct {
8612		Confidence gensupport.JSONFloat64 `json:"confidence"`
8613		*NoMethod
8614	}
8615	s1.NoMethod = (*NoMethod)(s)
8616	if err := json.Unmarshal(data, &s1); err != nil {
8617		return err
8618	}
8619	s.Confidence = float64(s1.Confidence)
8620	return nil
8621}
8622
8623// GoogleCloudVisionV1p3beta1Position: A 3D position in the image, used
8624// primarily for Face detection landmarks.
8625// A valid Position must have both x and y coordinates.
8626// The position coordinates are in the same scale as the original image.
8627type GoogleCloudVisionV1p3beta1Position struct {
8628	// X: X coordinate.
8629	X float64 `json:"x,omitempty"`
8630
8631	// Y: Y coordinate.
8632	Y float64 `json:"y,omitempty"`
8633
8634	// Z: Z coordinate (or depth).
8635	Z float64 `json:"z,omitempty"`
8636
8637	// ForceSendFields is a list of field names (e.g. "X") to
8638	// unconditionally include in API requests. By default, fields with
8639	// empty values are omitted from API requests. However, any non-pointer,
8640	// non-interface field appearing in ForceSendFields will be sent to the
8641	// server regardless of whether the field is empty or not. This may be
8642	// used to include empty fields in Patch requests.
8643	ForceSendFields []string `json:"-"`
8644
8645	// NullFields is a list of field names (e.g. "X") to include in API
8646	// requests with the JSON null value. By default, fields with empty
8647	// values are omitted from API requests. However, any field with an
8648	// empty value appearing in NullFields will be sent to the server as
8649	// null. It is an error if a field in this list has a non-empty value.
8650	// This may be used to include null fields in Patch requests.
8651	NullFields []string `json:"-"`
8652}
8653
8654func (s *GoogleCloudVisionV1p3beta1Position) MarshalJSON() ([]byte, error) {
8655	type NoMethod GoogleCloudVisionV1p3beta1Position
8656	raw := NoMethod(*s)
8657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8658}
8659
8660func (s *GoogleCloudVisionV1p3beta1Position) UnmarshalJSON(data []byte) error {
8661	type NoMethod GoogleCloudVisionV1p3beta1Position
8662	var s1 struct {
8663		X gensupport.JSONFloat64 `json:"x"`
8664		Y gensupport.JSONFloat64 `json:"y"`
8665		Z gensupport.JSONFloat64 `json:"z"`
8666		*NoMethod
8667	}
8668	s1.NoMethod = (*NoMethod)(s)
8669	if err := json.Unmarshal(data, &s1); err != nil {
8670		return err
8671	}
8672	s.X = float64(s1.X)
8673	s.Y = float64(s1.Y)
8674	s.Z = float64(s1.Z)
8675	return nil
8676}
8677
8678// GoogleCloudVisionV1p3beta1Product: A Product contains
8679// ReferenceImages.
8680type GoogleCloudVisionV1p3beta1Product struct {
8681	// Description: User-provided metadata to be stored with this product.
8682	// Must be at most 4096
8683	// characters long.
8684	Description string `json:"description,omitempty"`
8685
8686	// DisplayName: The user-provided name for this Product. Must not be
8687	// empty. Must be at most
8688	// 4096 characters long.
8689	DisplayName string `json:"displayName,omitempty"`
8690
8691	// Name: The resource name of the product.
8692	//
8693	// Format
8694	// is:
8695	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
8696	//
8697	// This field is ignored when creating a product.
8698	Name string `json:"name,omitempty"`
8699
8700	// ProductCategory: The category for the product identified by the
8701	// reference image. This should
8702	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
8703	// categories
8704	// "homegoods", "apparel", and "toys" are still supported, but these
8705	// should
8706	// not be used for new products.
8707	//
8708	// This field is immutable.
8709	ProductCategory string `json:"productCategory,omitempty"`
8710
8711	// ProductLabels: Key-value pairs that can be attached to a product. At
8712	// query time,
8713	// constraints can be specified based on the product_labels.
8714	//
8715	// Note that integer values can be provided as strings, e.g. "1199".
8716	// Only
8717	// strings with integer values can match a range-based restriction which
8718	// is
8719	// to be supported soon.
8720	//
8721	// Multiple values can be assigned to the same key. One product may have
8722	// up to
8723	// 100 product_labels.
8724	ProductLabels []*GoogleCloudVisionV1p3beta1ProductKeyValue `json:"productLabels,omitempty"`
8725
8726	// ForceSendFields is a list of field names (e.g. "Description") to
8727	// unconditionally include in API requests. By default, fields with
8728	// empty values are omitted from API requests. However, any non-pointer,
8729	// non-interface field appearing in ForceSendFields will be sent to the
8730	// server regardless of whether the field is empty or not. This may be
8731	// used to include empty fields in Patch requests.
8732	ForceSendFields []string `json:"-"`
8733
8734	// NullFields is a list of field names (e.g. "Description") to include
8735	// in API requests with the JSON null value. By default, fields with
8736	// empty values are omitted from API requests. However, any field with
8737	// an empty value appearing in NullFields will be sent to the server as
8738	// null. It is an error if a field in this list has a non-empty value.
8739	// This may be used to include null fields in Patch requests.
8740	NullFields []string `json:"-"`
8741}
8742
8743func (s *GoogleCloudVisionV1p3beta1Product) MarshalJSON() ([]byte, error) {
8744	type NoMethod GoogleCloudVisionV1p3beta1Product
8745	raw := NoMethod(*s)
8746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8747}
8748
8749// GoogleCloudVisionV1p3beta1ProductKeyValue: A product label
8750// represented as a key-value pair.
8751type GoogleCloudVisionV1p3beta1ProductKeyValue struct {
8752	// Key: The key of the label attached to the product. Cannot be empty
8753	// and cannot
8754	// exceed 128 bytes.
8755	Key string `json:"key,omitempty"`
8756
8757	// Value: The value of the label attached to the product. Cannot be
8758	// empty and
8759	// cannot exceed 128 bytes.
8760	Value string `json:"value,omitempty"`
8761
8762	// ForceSendFields is a list of field names (e.g. "Key") to
8763	// unconditionally include in API requests. By default, fields with
8764	// empty values are omitted from API requests. However, any non-pointer,
8765	// non-interface field appearing in ForceSendFields will be sent to the
8766	// server regardless of whether the field is empty or not. This may be
8767	// used to include empty fields in Patch requests.
8768	ForceSendFields []string `json:"-"`
8769
8770	// NullFields is a list of field names (e.g. "Key") to include in API
8771	// requests with the JSON null value. By default, fields with empty
8772	// values are omitted from API requests. However, any field with an
8773	// empty value appearing in NullFields will be sent to the server as
8774	// null. It is an error if a field in this list has a non-empty value.
8775	// This may be used to include null fields in Patch requests.
8776	NullFields []string `json:"-"`
8777}
8778
8779func (s *GoogleCloudVisionV1p3beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
8780	type NoMethod GoogleCloudVisionV1p3beta1ProductKeyValue
8781	raw := NoMethod(*s)
8782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8783}
8784
8785// GoogleCloudVisionV1p3beta1ProductSearchResults: Results for a product
8786// search request.
8787type GoogleCloudVisionV1p3beta1ProductSearchResults struct {
8788	// IndexTime: Timestamp of the index which provided these results.
8789	// Products added to the
8790	// product set and products removed from the product set after this time
8791	// are
8792	// not reflected in the current results.
8793	IndexTime string `json:"indexTime,omitempty"`
8794
8795	// ProductGroupedResults: List of results grouped by products detected
8796	// in the query image. Each entry
8797	// corresponds to one bounding polygon in the query image, and contains
8798	// the
8799	// matching products specific to that region. There may be duplicate
8800	// product
8801	// matches in the union of all the per-product results.
8802	ProductGroupedResults []*GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
8803
8804	// Results: List of results, one for each product match.
8805	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8806
8807	// ForceSendFields is a list of field names (e.g. "IndexTime") to
8808	// unconditionally include in API requests. By default, fields with
8809	// empty values are omitted from API requests. However, any non-pointer,
8810	// non-interface field appearing in ForceSendFields will be sent to the
8811	// server regardless of whether the field is empty or not. This may be
8812	// used to include empty fields in Patch requests.
8813	ForceSendFields []string `json:"-"`
8814
8815	// NullFields is a list of field names (e.g. "IndexTime") to include in
8816	// API requests with the JSON null value. By default, fields with empty
8817	// values are omitted from API requests. However, any field with an
8818	// empty value appearing in NullFields will be sent to the server as
8819	// null. It is an error if a field in this list has a non-empty value.
8820	// This may be used to include null fields in Patch requests.
8821	NullFields []string `json:"-"`
8822}
8823
8824func (s *GoogleCloudVisionV1p3beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
8825	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResults
8826	raw := NoMethod(*s)
8827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8828}
8829
8830// GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult:
8831// Information about the products similar to a single product in a
8832// query
8833// image.
8834type GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult struct {
8835	// BoundingPoly: The bounding polygon around the product detected in the
8836	// query image.
8837	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8838
8839	// Results: List of results, one for each product match.
8840	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8841
8842	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8843	// unconditionally include in API requests. By default, fields with
8844	// empty values are omitted from API requests. However, any non-pointer,
8845	// non-interface field appearing in ForceSendFields will be sent to the
8846	// server regardless of whether the field is empty or not. This may be
8847	// used to include empty fields in Patch requests.
8848	ForceSendFields []string `json:"-"`
8849
8850	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8851	// in API requests with the JSON null value. By default, fields with
8852	// empty values are omitted from API requests. However, any field with
8853	// an empty value appearing in NullFields will be sent to the server as
8854	// null. It is an error if a field in this list has a non-empty value.
8855	// This may be used to include null fields in Patch requests.
8856	NullFields []string `json:"-"`
8857}
8858
8859func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
8860	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult
8861	raw := NoMethod(*s)
8862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8863}
8864
8865// GoogleCloudVisionV1p3beta1ProductSearchResultsResult: Information
8866// about a product.
8867type GoogleCloudVisionV1p3beta1ProductSearchResultsResult struct {
8868	// Image: The resource name of the image from the product that is the
8869	// closest match
8870	// to the query.
8871	Image string `json:"image,omitempty"`
8872
8873	// Product: The Product.
8874	Product *GoogleCloudVisionV1p3beta1Product `json:"product,omitempty"`
8875
8876	// Score: A confidence level on the match, ranging from 0 (no
8877	// confidence) to
8878	// 1 (full confidence).
8879	Score float64 `json:"score,omitempty"`
8880
8881	// ForceSendFields is a list of field names (e.g. "Image") to
8882	// unconditionally include in API requests. By default, fields with
8883	// empty values are omitted from API requests. However, any non-pointer,
8884	// non-interface field appearing in ForceSendFields will be sent to the
8885	// server regardless of whether the field is empty or not. This may be
8886	// used to include empty fields in Patch requests.
8887	ForceSendFields []string `json:"-"`
8888
8889	// NullFields is a list of field names (e.g. "Image") to include in API
8890	// requests with the JSON null value. By default, fields with empty
8891	// values are omitted from API requests. However, any field with an
8892	// empty value appearing in NullFields will be sent to the server as
8893	// null. It is an error if a field in this list has a non-empty value.
8894	// This may be used to include null fields in Patch requests.
8895	NullFields []string `json:"-"`
8896}
8897
8898func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
8899	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8900	raw := NoMethod(*s)
8901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8902}
8903
8904func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
8905	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8906	var s1 struct {
8907		Score gensupport.JSONFloat64 `json:"score"`
8908		*NoMethod
8909	}
8910	s1.NoMethod = (*NoMethod)(s)
8911	if err := json.Unmarshal(data, &s1); err != nil {
8912		return err
8913	}
8914	s.Score = float64(s1.Score)
8915	return nil
8916}
8917
8918// GoogleCloudVisionV1p3beta1Property: A `Property` consists of a
8919// user-supplied name/value pair.
8920type GoogleCloudVisionV1p3beta1Property struct {
8921	// Name: Name of the property.
8922	Name string `json:"name,omitempty"`
8923
8924	// Uint64Value: Value of numeric properties.
8925	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
8926
8927	// Value: Value of the property.
8928	Value string `json:"value,omitempty"`
8929
8930	// ForceSendFields is a list of field names (e.g. "Name") to
8931	// unconditionally include in API requests. By default, fields with
8932	// empty values are omitted from API requests. However, any non-pointer,
8933	// non-interface field appearing in ForceSendFields will be sent to the
8934	// server regardless of whether the field is empty or not. This may be
8935	// used to include empty fields in Patch requests.
8936	ForceSendFields []string `json:"-"`
8937
8938	// NullFields is a list of field names (e.g. "Name") to include in API
8939	// requests with the JSON null value. By default, fields with empty
8940	// values are omitted from API requests. However, any field with an
8941	// empty value appearing in NullFields will be sent to the server as
8942	// null. It is an error if a field in this list has a non-empty value.
8943	// This may be used to include null fields in Patch requests.
8944	NullFields []string `json:"-"`
8945}
8946
8947func (s *GoogleCloudVisionV1p3beta1Property) MarshalJSON() ([]byte, error) {
8948	type NoMethod GoogleCloudVisionV1p3beta1Property
8949	raw := NoMethod(*s)
8950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8951}
8952
8953// GoogleCloudVisionV1p3beta1ReferenceImage: A `ReferenceImage`
8954// represents a product image and its associated metadata,
8955// such as bounding boxes.
8956type GoogleCloudVisionV1p3beta1ReferenceImage struct {
8957	// BoundingPolys: Bounding polygons around the areas of interest in the
8958	// reference image.
8959	// Optional. If this field is empty, the system will try to detect
8960	// regions of
8961	// interest. At most 10 bounding polygons will be used.
8962	//
8963	// The provided shape is converted into a non-rotated rectangle.
8964	// Once
8965	// converted, the small edge of the rectangle must be greater than or
8966	// equal
8967	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
8968	// 1:5
8969	// is not).
8970	BoundingPolys []*GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPolys,omitempty"`
8971
8972	// Name: The resource name of the reference image.
8973	//
8974	// Format
8975	// is:
8976	//
8977	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
8978	// ceImages/IMAGE_ID`.
8979	//
8980	// This field is ignored when creating a reference image.
8981	Name string `json:"name,omitempty"`
8982
8983	// Uri: The Google Cloud Storage URI of the reference image.
8984	//
8985	// The URI must start with `gs://`.
8986	//
8987	// Required.
8988	Uri string `json:"uri,omitempty"`
8989
8990	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
8991	// unconditionally include in API requests. By default, fields with
8992	// empty values are omitted from API requests. However, any non-pointer,
8993	// non-interface field appearing in ForceSendFields will be sent to the
8994	// server regardless of whether the field is empty or not. This may be
8995	// used to include empty fields in Patch requests.
8996	ForceSendFields []string `json:"-"`
8997
8998	// NullFields is a list of field names (e.g. "BoundingPolys") to include
8999	// in API requests with the JSON null value. By default, fields with
9000	// empty values are omitted from API requests. However, any field with
9001	// an empty value appearing in NullFields will be sent to the server as
9002	// null. It is an error if a field in this list has a non-empty value.
9003	// This may be used to include null fields in Patch requests.
9004	NullFields []string `json:"-"`
9005}
9006
9007func (s *GoogleCloudVisionV1p3beta1ReferenceImage) MarshalJSON() ([]byte, error) {
9008	type NoMethod GoogleCloudVisionV1p3beta1ReferenceImage
9009	raw := NoMethod(*s)
9010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9011}
9012
9013// GoogleCloudVisionV1p3beta1SafeSearchAnnotation: Set of features
9014// pertaining to the image, computed by computer vision
9015// methods over safe-search verticals (for example, adult, spoof,
9016// medical,
9017// violence).
9018type GoogleCloudVisionV1p3beta1SafeSearchAnnotation struct {
9019	// Adult: Represents the adult content likelihood for the image. Adult
9020	// content may
9021	// contain elements such as nudity, pornographic images or cartoons,
9022	// or
9023	// sexual activities.
9024	//
9025	// Possible values:
9026	//   "UNKNOWN" - Unknown likelihood.
9027	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
9028	// specified vertical.
9029	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
9030	// vertical.
9031	//   "POSSIBLE" - It is possible that the image belongs to the specified
9032	// vertical.
9033	//   "LIKELY" - It is likely that the image belongs to the specified
9034	// vertical.
9035	//   "VERY_LIKELY" - It is very likely that the image belongs to the
9036	// specified vertical.
9037	Adult string `json:"adult,omitempty"`
9038
9039	// Medical: Likelihood that this is a medical image.
9040	//
9041	// Possible values:
9042	//   "UNKNOWN" - Unknown likelihood.
9043	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
9044	// specified vertical.
9045	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
9046	// vertical.
9047	//   "POSSIBLE" - It is possible that the image belongs to the specified
9048	// vertical.
9049	//   "LIKELY" - It is likely that the image belongs to the specified
9050	// vertical.
9051	//   "VERY_LIKELY" - It is very likely that the image belongs to the
9052	// specified vertical.
9053	Medical string `json:"medical,omitempty"`
9054
9055	// Racy: Likelihood that the request image contains racy content. Racy
9056	// content may
9057	// include (but is not limited to) skimpy or sheer clothing,
9058	// strategically
9059	// covered nudity, lewd or provocative poses, or close-ups of
9060	// sensitive
9061	// body areas.
9062	//
9063	// Possible values:
9064	//   "UNKNOWN" - Unknown likelihood.
9065	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
9066	// specified vertical.
9067	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
9068	// vertical.
9069	//   "POSSIBLE" - It is possible that the image belongs to the specified
9070	// vertical.
9071	//   "LIKELY" - It is likely that the image belongs to the specified
9072	// vertical.
9073	//   "VERY_LIKELY" - It is very likely that the image belongs to the
9074	// specified vertical.
9075	Racy string `json:"racy,omitempty"`
9076
9077	// Spoof: Spoof likelihood. The likelihood that an modification
9078	// was made to the image's canonical version to make it appear
9079	// funny or offensive.
9080	//
9081	// Possible values:
9082	//   "UNKNOWN" - Unknown likelihood.
9083	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
9084	// specified vertical.
9085	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
9086	// vertical.
9087	//   "POSSIBLE" - It is possible that the image belongs to the specified
9088	// vertical.
9089	//   "LIKELY" - It is likely that the image belongs to the specified
9090	// vertical.
9091	//   "VERY_LIKELY" - It is very likely that the image belongs to the
9092	// specified vertical.
9093	Spoof string `json:"spoof,omitempty"`
9094
9095	// Violence: Likelihood that this image contains violent content.
9096	//
9097	// Possible values:
9098	//   "UNKNOWN" - Unknown likelihood.
9099	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
9100	// specified vertical.
9101	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
9102	// vertical.
9103	//   "POSSIBLE" - It is possible that the image belongs to the specified
9104	// vertical.
9105	//   "LIKELY" - It is likely that the image belongs to the specified
9106	// vertical.
9107	//   "VERY_LIKELY" - It is very likely that the image belongs to the
9108	// specified vertical.
9109	Violence string `json:"violence,omitempty"`
9110
9111	// ForceSendFields is a list of field names (e.g. "Adult") to
9112	// unconditionally include in API requests. By default, fields with
9113	// empty values are omitted from API requests. However, any non-pointer,
9114	// non-interface field appearing in ForceSendFields will be sent to the
9115	// server regardless of whether the field is empty or not. This may be
9116	// used to include empty fields in Patch requests.
9117	ForceSendFields []string `json:"-"`
9118
9119	// NullFields is a list of field names (e.g. "Adult") to include in API
9120	// requests with the JSON null value. By default, fields with empty
9121	// values are omitted from API requests. However, any field with an
9122	// empty value appearing in NullFields will be sent to the server as
9123	// null. It is an error if a field in this list has a non-empty value.
9124	// This may be used to include null fields in Patch requests.
9125	NullFields []string `json:"-"`
9126}
9127
9128func (s *GoogleCloudVisionV1p3beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
9129	type NoMethod GoogleCloudVisionV1p3beta1SafeSearchAnnotation
9130	raw := NoMethod(*s)
9131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9132}
9133
9134// GoogleCloudVisionV1p3beta1Symbol: A single symbol representation.
9135type GoogleCloudVisionV1p3beta1Symbol struct {
9136	// BoundingBox: The bounding box for the symbol.
9137	// The vertices are in the order of top-left, top-right,
9138	// bottom-right,
9139	// bottom-left. When a rotation of the bounding box is detected the
9140	// rotation
9141	// is represented as around the top-left corner as defined when the text
9142	// is
9143	// read in the 'natural' orientation.
9144	// For example:
9145	//   * when the text is horizontal it might look like:
9146	//      0----1
9147	//      |    |
9148	//      3----2
9149	//   * when it's rotated 180 degrees around the top-left corner it
9150	// becomes:
9151	//      2----3
9152	//      |    |
9153	//      1----0
9154	//   and the vertice order will still be (0, 1, 2, 3).
9155	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9156
9157	// Confidence: Confidence of the OCR results for the symbol. Range [0,
9158	// 1].
9159	Confidence float64 `json:"confidence,omitempty"`
9160
9161	// Property: Additional information detected for the symbol.
9162	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9163
9164	// Text: The actual UTF-8 representation of the symbol.
9165	Text string `json:"text,omitempty"`
9166
9167	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9168	// unconditionally include in API requests. By default, fields with
9169	// empty values are omitted from API requests. However, any non-pointer,
9170	// non-interface field appearing in ForceSendFields will be sent to the
9171	// server regardless of whether the field is empty or not. This may be
9172	// used to include empty fields in Patch requests.
9173	ForceSendFields []string `json:"-"`
9174
9175	// NullFields is a list of field names (e.g. "BoundingBox") to include
9176	// in API requests with the JSON null value. By default, fields with
9177	// empty values are omitted from API requests. However, any field with
9178	// an empty value appearing in NullFields will be sent to the server as
9179	// null. It is an error if a field in this list has a non-empty value.
9180	// This may be used to include null fields in Patch requests.
9181	NullFields []string `json:"-"`
9182}
9183
9184func (s *GoogleCloudVisionV1p3beta1Symbol) MarshalJSON() ([]byte, error) {
9185	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9186	raw := NoMethod(*s)
9187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9188}
9189
9190func (s *GoogleCloudVisionV1p3beta1Symbol) UnmarshalJSON(data []byte) error {
9191	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9192	var s1 struct {
9193		Confidence gensupport.JSONFloat64 `json:"confidence"`
9194		*NoMethod
9195	}
9196	s1.NoMethod = (*NoMethod)(s)
9197	if err := json.Unmarshal(data, &s1); err != nil {
9198		return err
9199	}
9200	s.Confidence = float64(s1.Confidence)
9201	return nil
9202}
9203
9204// GoogleCloudVisionV1p3beta1TextAnnotation: TextAnnotation contains a
9205// structured representation of OCR extracted text.
9206// The hierarchy of an OCR extracted text structure is like this:
9207//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
9208// Symbol
9209// Each structural component, starting from Page, may further have their
9210// own
9211// properties. Properties describe detected languages, breaks etc..
9212// Please refer
9213// to the TextAnnotation.TextProperty message definition below for
9214// more
9215// detail.
9216type GoogleCloudVisionV1p3beta1TextAnnotation struct {
9217	// Pages: List of pages detected by OCR.
9218	Pages []*GoogleCloudVisionV1p3beta1Page `json:"pages,omitempty"`
9219
9220	// Text: UTF-8 text detected on the pages.
9221	Text string `json:"text,omitempty"`
9222
9223	// ForceSendFields is a list of field names (e.g. "Pages") to
9224	// unconditionally include in API requests. By default, fields with
9225	// empty values are omitted from API requests. However, any non-pointer,
9226	// non-interface field appearing in ForceSendFields will be sent to the
9227	// server regardless of whether the field is empty or not. This may be
9228	// used to include empty fields in Patch requests.
9229	ForceSendFields []string `json:"-"`
9230
9231	// NullFields is a list of field names (e.g. "Pages") to include in API
9232	// requests with the JSON null value. By default, fields with empty
9233	// values are omitted from API requests. However, any field with an
9234	// empty value appearing in NullFields will be sent to the server as
9235	// null. It is an error if a field in this list has a non-empty value.
9236	// This may be used to include null fields in Patch requests.
9237	NullFields []string `json:"-"`
9238}
9239
9240func (s *GoogleCloudVisionV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
9241	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotation
9242	raw := NoMethod(*s)
9243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9244}
9245
9246// GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak: Detected start
9247// or end of a structural component.
9248type GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak struct {
9249	// IsPrefix: True if break prepends the element.
9250	IsPrefix bool `json:"isPrefix,omitempty"`
9251
9252	// Type: Detected break type.
9253	//
9254	// Possible values:
9255	//   "UNKNOWN" - Unknown break label type.
9256	//   "SPACE" - Regular space.
9257	//   "SURE_SPACE" - Sure space (very wide).
9258	//   "EOL_SURE_SPACE" - Line-wrapping break.
9259	//   "HYPHEN" - End-line hyphen that is not present in text; does not
9260	// co-occur with
9261	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
9262	//   "LINE_BREAK" - Line break that ends a paragraph.
9263	Type string `json:"type,omitempty"`
9264
9265	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
9266	// unconditionally include in API requests. By default, fields with
9267	// empty values are omitted from API requests. However, any non-pointer,
9268	// non-interface field appearing in ForceSendFields will be sent to the
9269	// server regardless of whether the field is empty or not. This may be
9270	// used to include empty fields in Patch requests.
9271	ForceSendFields []string `json:"-"`
9272
9273	// NullFields is a list of field names (e.g. "IsPrefix") to include in
9274	// API requests with the JSON null value. By default, fields with empty
9275	// values are omitted from API requests. However, any field with an
9276	// empty value appearing in NullFields will be sent to the server as
9277	// null. It is an error if a field in this list has a non-empty value.
9278	// This may be used to include null fields in Patch requests.
9279	NullFields []string `json:"-"`
9280}
9281
9282func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
9283	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak
9284	raw := NoMethod(*s)
9285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9286}
9287
9288// GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage: Detected
9289// language for a structural component.
9290type GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage struct {
9291	// Confidence: Confidence of detected language. Range [0, 1].
9292	Confidence float64 `json:"confidence,omitempty"`
9293
9294	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
9295	// For more
9296	// information,
9297	// see
9298	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9299	LanguageCode string `json:"languageCode,omitempty"`
9300
9301	// ForceSendFields is a list of field names (e.g. "Confidence") to
9302	// unconditionally include in API requests. By default, fields with
9303	// empty values are omitted from API requests. However, any non-pointer,
9304	// non-interface field appearing in ForceSendFields will be sent to the
9305	// server regardless of whether the field is empty or not. This may be
9306	// used to include empty fields in Patch requests.
9307	ForceSendFields []string `json:"-"`
9308
9309	// NullFields is a list of field names (e.g. "Confidence") to include in
9310	// API requests with the JSON null value. By default, fields with empty
9311	// values are omitted from API requests. However, any field with an
9312	// empty value appearing in NullFields will be sent to the server as
9313	// null. It is an error if a field in this list has a non-empty value.
9314	// This may be used to include null fields in Patch requests.
9315	NullFields []string `json:"-"`
9316}
9317
9318func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
9319	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9320	raw := NoMethod(*s)
9321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9322}
9323
9324func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
9325	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9326	var s1 struct {
9327		Confidence gensupport.JSONFloat64 `json:"confidence"`
9328		*NoMethod
9329	}
9330	s1.NoMethod = (*NoMethod)(s)
9331	if err := json.Unmarshal(data, &s1); err != nil {
9332		return err
9333	}
9334	s.Confidence = float64(s1.Confidence)
9335	return nil
9336}
9337
9338// GoogleCloudVisionV1p3beta1TextAnnotationTextProperty: Additional
9339// information detected on the structural component.
9340type GoogleCloudVisionV1p3beta1TextAnnotationTextProperty struct {
9341	// DetectedBreak: Detected start or end of a text segment.
9342	DetectedBreak *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
9343
9344	// DetectedLanguages: A list of detected languages together with
9345	// confidence.
9346	DetectedLanguages []*GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
9347
9348	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
9349	// unconditionally include in API requests. By default, fields with
9350	// empty values are omitted from API requests. However, any non-pointer,
9351	// non-interface field appearing in ForceSendFields will be sent to the
9352	// server regardless of whether the field is empty or not. This may be
9353	// used to include empty fields in Patch requests.
9354	ForceSendFields []string `json:"-"`
9355
9356	// NullFields is a list of field names (e.g. "DetectedBreak") to include
9357	// in API requests with the JSON null value. By default, fields with
9358	// empty values are omitted from API requests. However, any field with
9359	// an empty value appearing in NullFields will be sent to the server as
9360	// null. It is an error if a field in this list has a non-empty value.
9361	// This may be used to include null fields in Patch requests.
9362	NullFields []string `json:"-"`
9363}
9364
9365func (s *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
9366	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationTextProperty
9367	raw := NoMethod(*s)
9368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9369}
9370
9371// GoogleCloudVisionV1p3beta1Vertex: A vertex represents a 2D point in
9372// the image.
9373// NOTE: the vertex coordinates are in the same scale as the original
9374// image.
9375type GoogleCloudVisionV1p3beta1Vertex struct {
9376	// X: X coordinate.
9377	X int64 `json:"x,omitempty"`
9378
9379	// Y: Y coordinate.
9380	Y int64 `json:"y,omitempty"`
9381
9382	// ForceSendFields is a list of field names (e.g. "X") to
9383	// unconditionally include in API requests. By default, fields with
9384	// empty values are omitted from API requests. However, any non-pointer,
9385	// non-interface field appearing in ForceSendFields will be sent to the
9386	// server regardless of whether the field is empty or not. This may be
9387	// used to include empty fields in Patch requests.
9388	ForceSendFields []string `json:"-"`
9389
9390	// NullFields is a list of field names (e.g. "X") to include in API
9391	// requests with the JSON null value. By default, fields with empty
9392	// values are omitted from API requests. However, any field with an
9393	// empty value appearing in NullFields will be sent to the server as
9394	// null. It is an error if a field in this list has a non-empty value.
9395	// This may be used to include null fields in Patch requests.
9396	NullFields []string `json:"-"`
9397}
9398
9399func (s *GoogleCloudVisionV1p3beta1Vertex) MarshalJSON() ([]byte, error) {
9400	type NoMethod GoogleCloudVisionV1p3beta1Vertex
9401	raw := NoMethod(*s)
9402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9403}
9404
9405// GoogleCloudVisionV1p3beta1WebDetection: Relevant information for the
9406// image from the Internet.
9407type GoogleCloudVisionV1p3beta1WebDetection struct {
9408	// BestGuessLabels: The service's best guess as to the topic of the
9409	// request image.
9410	// Inferred from similar images on the open web.
9411	BestGuessLabels []*GoogleCloudVisionV1p3beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
9412
9413	// FullMatchingImages: Fully matching images from the Internet.
9414	// Can include resized copies of the query image.
9415	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9416
9417	// PagesWithMatchingImages: Web pages containing the matching images
9418	// from the Internet.
9419	PagesWithMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
9420
9421	// PartialMatchingImages: Partial matching images from the
9422	// Internet.
9423	// Those images are similar enough to share some key-point features.
9424	// For
9425	// example an original image will likely have partial matching for its
9426	// crops.
9427	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9428
9429	// VisuallySimilarImages: The visually similar image results.
9430	VisuallySimilarImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
9431
9432	// WebEntities: Deduced entities from similar images on the Internet.
9433	WebEntities []*GoogleCloudVisionV1p3beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
9434
9435	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
9436	// unconditionally include in API requests. By default, fields with
9437	// empty values are omitted from API requests. However, any non-pointer,
9438	// non-interface field appearing in ForceSendFields will be sent to the
9439	// server regardless of whether the field is empty or not. This may be
9440	// used to include empty fields in Patch requests.
9441	ForceSendFields []string `json:"-"`
9442
9443	// NullFields is a list of field names (e.g. "BestGuessLabels") to
9444	// include in API requests with the JSON null value. By default, fields
9445	// with empty values are omitted from API requests. However, any field
9446	// with an empty value appearing in NullFields will be sent to the
9447	// server as null. It is an error if a field in this list has a
9448	// non-empty value. This may be used to include null fields in Patch
9449	// requests.
9450	NullFields []string `json:"-"`
9451}
9452
9453func (s *GoogleCloudVisionV1p3beta1WebDetection) MarshalJSON() ([]byte, error) {
9454	type NoMethod GoogleCloudVisionV1p3beta1WebDetection
9455	raw := NoMethod(*s)
9456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9457}
9458
9459// GoogleCloudVisionV1p3beta1WebDetectionWebEntity: Entity deduced from
9460// similar images on the Internet.
9461type GoogleCloudVisionV1p3beta1WebDetectionWebEntity struct {
9462	// Description: Canonical description of the entity, in English.
9463	Description string `json:"description,omitempty"`
9464
9465	// EntityId: Opaque entity ID.
9466	EntityId string `json:"entityId,omitempty"`
9467
9468	// Score: Overall relevancy score for the entity.
9469	// Not normalized and not comparable across different image queries.
9470	Score float64 `json:"score,omitempty"`
9471
9472	// ForceSendFields is a list of field names (e.g. "Description") to
9473	// unconditionally include in API requests. By default, fields with
9474	// empty values are omitted from API requests. However, any non-pointer,
9475	// non-interface field appearing in ForceSendFields will be sent to the
9476	// server regardless of whether the field is empty or not. This may be
9477	// used to include empty fields in Patch requests.
9478	ForceSendFields []string `json:"-"`
9479
9480	// NullFields is a list of field names (e.g. "Description") to include
9481	// in API requests with the JSON null value. By default, fields with
9482	// empty values are omitted from API requests. However, any field with
9483	// an empty value appearing in NullFields will be sent to the server as
9484	// null. It is an error if a field in this list has a non-empty value.
9485	// This may be used to include null fields in Patch requests.
9486	NullFields []string `json:"-"`
9487}
9488
9489func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
9490	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9491	raw := NoMethod(*s)
9492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9493}
9494
9495func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
9496	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9497	var s1 struct {
9498		Score gensupport.JSONFloat64 `json:"score"`
9499		*NoMethod
9500	}
9501	s1.NoMethod = (*NoMethod)(s)
9502	if err := json.Unmarshal(data, &s1); err != nil {
9503		return err
9504	}
9505	s.Score = float64(s1.Score)
9506	return nil
9507}
9508
9509// GoogleCloudVisionV1p3beta1WebDetectionWebImage: Metadata for online
9510// images.
9511type GoogleCloudVisionV1p3beta1WebDetectionWebImage struct {
9512	// Score: (Deprecated) Overall relevancy score for the image.
9513	Score float64 `json:"score,omitempty"`
9514
9515	// Url: The result image URL.
9516	Url string `json:"url,omitempty"`
9517
9518	// ForceSendFields is a list of field names (e.g. "Score") to
9519	// unconditionally include in API requests. By default, fields with
9520	// empty values are omitted from API requests. However, any non-pointer,
9521	// non-interface field appearing in ForceSendFields will be sent to the
9522	// server regardless of whether the field is empty or not. This may be
9523	// used to include empty fields in Patch requests.
9524	ForceSendFields []string `json:"-"`
9525
9526	// NullFields is a list of field names (e.g. "Score") to include in API
9527	// requests with the JSON null value. By default, fields with empty
9528	// values are omitted from API requests. However, any field with an
9529	// empty value appearing in NullFields will be sent to the server as
9530	// null. It is an error if a field in this list has a non-empty value.
9531	// This may be used to include null fields in Patch requests.
9532	NullFields []string `json:"-"`
9533}
9534
9535func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
9536	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9537	raw := NoMethod(*s)
9538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9539}
9540
9541func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
9542	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9543	var s1 struct {
9544		Score gensupport.JSONFloat64 `json:"score"`
9545		*NoMethod
9546	}
9547	s1.NoMethod = (*NoMethod)(s)
9548	if err := json.Unmarshal(data, &s1); err != nil {
9549		return err
9550	}
9551	s.Score = float64(s1.Score)
9552	return nil
9553}
9554
9555// GoogleCloudVisionV1p3beta1WebDetectionWebLabel: Label to provide
9556// extra metadata for the web detection.
9557type GoogleCloudVisionV1p3beta1WebDetectionWebLabel struct {
9558	// Label: Label for extra metadata.
9559	Label string `json:"label,omitempty"`
9560
9561	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
9562	// or "sr-Latn".
9563	// For more information,
9564	// see
9565	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9566	LanguageCode string `json:"languageCode,omitempty"`
9567
9568	// ForceSendFields is a list of field names (e.g. "Label") to
9569	// unconditionally include in API requests. By default, fields with
9570	// empty values are omitted from API requests. However, any non-pointer,
9571	// non-interface field appearing in ForceSendFields will be sent to the
9572	// server regardless of whether the field is empty or not. This may be
9573	// used to include empty fields in Patch requests.
9574	ForceSendFields []string `json:"-"`
9575
9576	// NullFields is a list of field names (e.g. "Label") to include in API
9577	// requests with the JSON null value. By default, fields with empty
9578	// values are omitted from API requests. However, any field with an
9579	// empty value appearing in NullFields will be sent to the server as
9580	// null. It is an error if a field in this list has a non-empty value.
9581	// This may be used to include null fields in Patch requests.
9582	NullFields []string `json:"-"`
9583}
9584
9585func (s *GoogleCloudVisionV1p3beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
9586	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebLabel
9587	raw := NoMethod(*s)
9588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9589}
9590
9591// GoogleCloudVisionV1p3beta1WebDetectionWebPage: Metadata for web
9592// pages.
9593type GoogleCloudVisionV1p3beta1WebDetectionWebPage struct {
9594	// FullMatchingImages: Fully matching images on the page.
9595	// Can include resized copies of the query image.
9596	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9597
9598	// PageTitle: Title for the web page, may contain HTML markups.
9599	PageTitle string `json:"pageTitle,omitempty"`
9600
9601	// PartialMatchingImages: Partial matching images on the page.
9602	// Those images are similar enough to share some key-point features.
9603	// For
9604	// example an original image will likely have partial matching for
9605	// its
9606	// crops.
9607	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9608
9609	// Score: (Deprecated) Overall relevancy score for the web page.
9610	Score float64 `json:"score,omitempty"`
9611
9612	// Url: The result web page URL.
9613	Url string `json:"url,omitempty"`
9614
9615	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
9616	// to unconditionally include in API requests. By default, fields with
9617	// empty values are omitted from API requests. However, any non-pointer,
9618	// non-interface field appearing in ForceSendFields will be sent to the
9619	// server regardless of whether the field is empty or not. This may be
9620	// used to include empty fields in Patch requests.
9621	ForceSendFields []string `json:"-"`
9622
9623	// NullFields is a list of field names (e.g. "FullMatchingImages") to
9624	// include in API requests with the JSON null value. By default, fields
9625	// with empty values are omitted from API requests. However, any field
9626	// with an empty value appearing in NullFields will be sent to the
9627	// server as null. It is an error if a field in this list has a
9628	// non-empty value. This may be used to include null fields in Patch
9629	// requests.
9630	NullFields []string `json:"-"`
9631}
9632
9633func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
9634	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9635	raw := NoMethod(*s)
9636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9637}
9638
9639func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
9640	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9641	var s1 struct {
9642		Score gensupport.JSONFloat64 `json:"score"`
9643		*NoMethod
9644	}
9645	s1.NoMethod = (*NoMethod)(s)
9646	if err := json.Unmarshal(data, &s1); err != nil {
9647		return err
9648	}
9649	s.Score = float64(s1.Score)
9650	return nil
9651}
9652
9653// GoogleCloudVisionV1p3beta1Word: A word representation.
9654type GoogleCloudVisionV1p3beta1Word struct {
9655	// BoundingBox: The bounding box for the word.
9656	// The vertices are in the order of top-left, top-right,
9657	// bottom-right,
9658	// bottom-left. When a rotation of the bounding box is detected the
9659	// rotation
9660	// is represented as around the top-left corner as defined when the text
9661	// is
9662	// read in the 'natural' orientation.
9663	// For example:
9664	//   * when the text is horizontal it might look like:
9665	//      0----1
9666	//      |    |
9667	//      3----2
9668	//   * when it's rotated 180 degrees around the top-left corner it
9669	// becomes:
9670	//      2----3
9671	//      |    |
9672	//      1----0
9673	//   and the vertex order will still be (0, 1, 2, 3).
9674	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9675
9676	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
9677	Confidence float64 `json:"confidence,omitempty"`
9678
9679	// Property: Additional information detected for the word.
9680	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9681
9682	// Symbols: List of symbols in the word.
9683	// The order of the symbols follows the natural reading order.
9684	Symbols []*GoogleCloudVisionV1p3beta1Symbol `json:"symbols,omitempty"`
9685
9686	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9687	// unconditionally include in API requests. By default, fields with
9688	// empty values are omitted from API requests. However, any non-pointer,
9689	// non-interface field appearing in ForceSendFields will be sent to the
9690	// server regardless of whether the field is empty or not. This may be
9691	// used to include empty fields in Patch requests.
9692	ForceSendFields []string `json:"-"`
9693
9694	// NullFields is a list of field names (e.g. "BoundingBox") to include
9695	// in API requests with the JSON null value. By default, fields with
9696	// empty values are omitted from API requests. However, any field with
9697	// an empty value appearing in NullFields will be sent to the server as
9698	// null. It is an error if a field in this list has a non-empty value.
9699	// This may be used to include null fields in Patch requests.
9700	NullFields []string `json:"-"`
9701}
9702
9703func (s *GoogleCloudVisionV1p3beta1Word) MarshalJSON() ([]byte, error) {
9704	type NoMethod GoogleCloudVisionV1p3beta1Word
9705	raw := NoMethod(*s)
9706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9707}
9708
9709func (s *GoogleCloudVisionV1p3beta1Word) UnmarshalJSON(data []byte) error {
9710	type NoMethod GoogleCloudVisionV1p3beta1Word
9711	var s1 struct {
9712		Confidence gensupport.JSONFloat64 `json:"confidence"`
9713		*NoMethod
9714	}
9715	s1.NoMethod = (*NoMethod)(s)
9716	if err := json.Unmarshal(data, &s1); err != nil {
9717		return err
9718	}
9719	s.Confidence = float64(s1.Confidence)
9720	return nil
9721}
9722
9723// GoogleCloudVisionV1p4beta1AnnotateFileResponse: Response to a single
9724// file annotation request. A file may contain one or more
9725// images, which individually have their own responses.
9726type GoogleCloudVisionV1p4beta1AnnotateFileResponse struct {
9727	// InputConfig: Information about the file for which this response is
9728	// generated.
9729	InputConfig *GoogleCloudVisionV1p4beta1InputConfig `json:"inputConfig,omitempty"`
9730
9731	// Responses: Individual responses to images found within the file.
9732	Responses []*GoogleCloudVisionV1p4beta1AnnotateImageResponse `json:"responses,omitempty"`
9733
9734	// TotalPages: This field gives the total number of pages in the file.
9735	TotalPages int64 `json:"totalPages,omitempty"`
9736
9737	// ForceSendFields is a list of field names (e.g. "InputConfig") to
9738	// unconditionally include in API requests. By default, fields with
9739	// empty values are omitted from API requests. However, any non-pointer,
9740	// non-interface field appearing in ForceSendFields will be sent to the
9741	// server regardless of whether the field is empty or not. This may be
9742	// used to include empty fields in Patch requests.
9743	ForceSendFields []string `json:"-"`
9744
9745	// NullFields is a list of field names (e.g. "InputConfig") to include
9746	// in API requests with the JSON null value. By default, fields with
9747	// empty values are omitted from API requests. However, any field with
9748	// an empty value appearing in NullFields will be sent to the server as
9749	// null. It is an error if a field in this list has a non-empty value.
9750	// This may be used to include null fields in Patch requests.
9751	NullFields []string `json:"-"`
9752}
9753
9754func (s *GoogleCloudVisionV1p4beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
9755	type NoMethod GoogleCloudVisionV1p4beta1AnnotateFileResponse
9756	raw := NoMethod(*s)
9757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9758}
9759
9760// GoogleCloudVisionV1p4beta1AnnotateImageResponse: Response to an image
9761// annotation request.
9762type GoogleCloudVisionV1p4beta1AnnotateImageResponse struct {
9763	// Context: If present, contextual information is needed to understand
9764	// where this image
9765	// comes from.
9766	Context *GoogleCloudVisionV1p4beta1ImageAnnotationContext `json:"context,omitempty"`
9767
9768	// CropHintsAnnotation: If present, crop hints have completed
9769	// successfully.
9770	CropHintsAnnotation *GoogleCloudVisionV1p4beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
9771
9772	// Error: If set, represents the error message for the operation.
9773	// Note that filled-in image annotations are guaranteed to be
9774	// correct, even when `error` is set.
9775	Error *Status `json:"error,omitempty"`
9776
9777	// FaceAnnotations: If present, face detection has completed
9778	// successfully.
9779	FaceAnnotations []*GoogleCloudVisionV1p4beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
9780
9781	// FullTextAnnotation: If present, text (OCR) detection or document
9782	// (OCR) text detection has
9783	// completed successfully.
9784	// This annotation provides the structural hierarchy for the OCR
9785	// detected
9786	// text.
9787	FullTextAnnotation *GoogleCloudVisionV1p4beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
9788
9789	// ImagePropertiesAnnotation: If present, image properties were
9790	// extracted successfully.
9791	ImagePropertiesAnnotation *GoogleCloudVisionV1p4beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
9792
9793	// LabelAnnotations: If present, label detection has completed
9794	// successfully.
9795	LabelAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
9796
9797	// LandmarkAnnotations: If present, landmark detection has completed
9798	// successfully.
9799	LandmarkAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
9800
9801	// LocalizedObjectAnnotations: If present, localized object detection
9802	// has completed successfully.
9803	// This will be sorted descending by confidence score.
9804	LocalizedObjectAnnotations []*GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
9805
9806	// LogoAnnotations: If present, logo detection has completed
9807	// successfully.
9808	LogoAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
9809
9810	// ProductSearchResults: If present, product search has completed
9811	// successfully.
9812	ProductSearchResults *GoogleCloudVisionV1p4beta1ProductSearchResults `json:"productSearchResults,omitempty"`
9813
9814	// SafeSearchAnnotation: If present, safe-search annotation has
9815	// completed successfully.
9816	SafeSearchAnnotation *GoogleCloudVisionV1p4beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
9817
9818	// TextAnnotations: If present, text (OCR) detection has completed
9819	// successfully.
9820	TextAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"textAnnotations,omitempty"`
9821
9822	// WebDetection: If present, web detection has completed successfully.
9823	WebDetection *GoogleCloudVisionV1p4beta1WebDetection `json:"webDetection,omitempty"`
9824
9825	// ForceSendFields is a list of field names (e.g. "Context") to
9826	// unconditionally include in API requests. By default, fields with
9827	// empty values are omitted from API requests. However, any non-pointer,
9828	// non-interface field appearing in ForceSendFields will be sent to the
9829	// server regardless of whether the field is empty or not. This may be
9830	// used to include empty fields in Patch requests.
9831	ForceSendFields []string `json:"-"`
9832
9833	// NullFields is a list of field names (e.g. "Context") to include in
9834	// API requests with the JSON null value. By default, fields with empty
9835	// values are omitted from API requests. However, any field with an
9836	// empty value appearing in NullFields will be sent to the server as
9837	// null. It is an error if a field in this list has a non-empty value.
9838	// This may be used to include null fields in Patch requests.
9839	NullFields []string `json:"-"`
9840}
9841
9842func (s *GoogleCloudVisionV1p4beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
9843	type NoMethod GoogleCloudVisionV1p4beta1AnnotateImageResponse
9844	raw := NoMethod(*s)
9845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9846}
9847
9848// GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse: The response for
9849// a single offline file annotation request.
9850type GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse struct {
9851	// OutputConfig: The output location and metadata from
9852	// AsyncAnnotateFileRequest.
9853	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9854
9855	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9856	// unconditionally include in API requests. By default, fields with
9857	// empty values are omitted from API requests. However, any non-pointer,
9858	// non-interface field appearing in ForceSendFields will be sent to the
9859	// server regardless of whether the field is empty or not. This may be
9860	// used to include empty fields in Patch requests.
9861	ForceSendFields []string `json:"-"`
9862
9863	// NullFields is a list of field names (e.g. "OutputConfig") to include
9864	// in API requests with the JSON null value. By default, fields with
9865	// empty values are omitted from API requests. However, any field with
9866	// an empty value appearing in NullFields will be sent to the server as
9867	// null. It is an error if a field in this list has a non-empty value.
9868	// This may be used to include null fields in Patch requests.
9869	NullFields []string `json:"-"`
9870}
9871
9872func (s *GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
9873	type NoMethod GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse
9874	raw := NoMethod(*s)
9875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9876}
9877
9878// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse: Response
9879// to an async batch file annotation request.
9880type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse struct {
9881	// Responses: The list of file annotation responses, one for each
9882	// request in
9883	// AsyncBatchAnnotateFilesRequest.
9884	Responses []*GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
9885
9886	// ForceSendFields is a list of field names (e.g. "Responses") to
9887	// unconditionally include in API requests. By default, fields with
9888	// empty values are omitted from API requests. However, any non-pointer,
9889	// non-interface field appearing in ForceSendFields will be sent to the
9890	// server regardless of whether the field is empty or not. This may be
9891	// used to include empty fields in Patch requests.
9892	ForceSendFields []string `json:"-"`
9893
9894	// NullFields is a list of field names (e.g. "Responses") to include in
9895	// API requests with the JSON null value. By default, fields with empty
9896	// values are omitted from API requests. However, any field with an
9897	// empty value appearing in NullFields will be sent to the server as
9898	// null. It is an error if a field in this list has a non-empty value.
9899	// This may be used to include null fields in Patch requests.
9900	NullFields []string `json:"-"`
9901}
9902
9903func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9904	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse
9905	raw := NoMethod(*s)
9906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9907}
9908
9909// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse: Response
9910// to an async batch image annotation request.
9911type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse struct {
9912	// OutputConfig: The output location and metadata from
9913	// AsyncBatchAnnotateImagesRequest.
9914	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9915
9916	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9917	// unconditionally include in API requests. By default, fields with
9918	// empty values are omitted from API requests. However, any non-pointer,
9919	// non-interface field appearing in ForceSendFields will be sent to the
9920	// server regardless of whether the field is empty or not. This may be
9921	// used to include empty fields in Patch requests.
9922	ForceSendFields []string `json:"-"`
9923
9924	// NullFields is a list of field names (e.g. "OutputConfig") to include
9925	// in API requests with the JSON null value. By default, fields with
9926	// empty values are omitted from API requests. However, any field with
9927	// an empty value appearing in NullFields will be sent to the server as
9928	// null. It is an error if a field in this list has a non-empty value.
9929	// This may be used to include null fields in Patch requests.
9930	NullFields []string `json:"-"`
9931}
9932
9933func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
9934	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse
9935	raw := NoMethod(*s)
9936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9937}
9938
9939// GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse: A list of file
9940// annotation responses.
9941type GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse struct {
9942	// Responses: The list of file annotation responses, each response
9943	// corresponding to each
9944	// AnnotateFileRequest in BatchAnnotateFilesRequest.
9945	Responses []*GoogleCloudVisionV1p4beta1AnnotateFileResponse `json:"responses,omitempty"`
9946
9947	// ForceSendFields is a list of field names (e.g. "Responses") to
9948	// unconditionally include in API requests. By default, fields with
9949	// empty values are omitted from API requests. However, any non-pointer,
9950	// non-interface field appearing in ForceSendFields will be sent to the
9951	// server regardless of whether the field is empty or not. This may be
9952	// used to include empty fields in Patch requests.
9953	ForceSendFields []string `json:"-"`
9954
9955	// NullFields is a list of field names (e.g. "Responses") to include in
9956	// API requests with the JSON null value. By default, fields with empty
9957	// values are omitted from API requests. However, any field with an
9958	// empty value appearing in NullFields will be sent to the server as
9959	// null. It is an error if a field in this list has a non-empty value.
9960	// This may be used to include null fields in Patch requests.
9961	NullFields []string `json:"-"`
9962}
9963
9964func (s *GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9965	type NoMethod GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse
9966	raw := NoMethod(*s)
9967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9968}
9969
9970// GoogleCloudVisionV1p4beta1BatchOperationMetadata: Metadata for the
9971// batch operations such as the current state.
9972//
9973// This is included in the `metadata` field of the `Operation` returned
9974// by the
9975// `GetOperation` call of the `google::longrunning::Operations` service.
9976type GoogleCloudVisionV1p4beta1BatchOperationMetadata struct {
9977	// EndTime: The time when the batch request is finished
9978	// and
9979	// google.longrunning.Operation.done is set to true.
9980	EndTime string `json:"endTime,omitempty"`
9981
9982	// State: The current state of the batch operation.
9983	//
9984	// Possible values:
9985	//   "STATE_UNSPECIFIED" - Invalid.
9986	//   "PROCESSING" - Request is actively being processed.
9987	//   "SUCCESSFUL" - The request is done and at least one item has been
9988	// successfully
9989	// processed.
9990	//   "FAILED" - The request is done and no item has been successfully
9991	// processed.
9992	//   "CANCELLED" - The request is done after the
9993	// longrunning.Operations.CancelOperation has
9994	// been called by the user.  Any records that were processed before
9995	// the
9996	// cancel command are output as specified in the request.
9997	State string `json:"state,omitempty"`
9998
9999	// SubmitTime: The time when the batch request was submitted to the
10000	// server.
10001	SubmitTime string `json:"submitTime,omitempty"`
10002
10003	// ForceSendFields is a list of field names (e.g. "EndTime") to
10004	// unconditionally include in API requests. By default, fields with
10005	// empty values are omitted from API requests. However, any non-pointer,
10006	// non-interface field appearing in ForceSendFields will be sent to the
10007	// server regardless of whether the field is empty or not. This may be
10008	// used to include empty fields in Patch requests.
10009	ForceSendFields []string `json:"-"`
10010
10011	// NullFields is a list of field names (e.g. "EndTime") to include in
10012	// API requests with the JSON null value. By default, fields with empty
10013	// values are omitted from API requests. However, any field with an
10014	// empty value appearing in NullFields will be sent to the server as
10015	// null. It is an error if a field in this list has a non-empty value.
10016	// This may be used to include null fields in Patch requests.
10017	NullFields []string `json:"-"`
10018}
10019
10020func (s *GoogleCloudVisionV1p4beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
10021	type NoMethod GoogleCloudVisionV1p4beta1BatchOperationMetadata
10022	raw := NoMethod(*s)
10023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10024}
10025
10026// GoogleCloudVisionV1p4beta1Block: Logical element on the page.
10027type GoogleCloudVisionV1p4beta1Block struct {
10028	// BlockType: Detected block type (text, image etc) for this block.
10029	//
10030	// Possible values:
10031	//   "UNKNOWN" - Unknown block type.
10032	//   "TEXT" - Regular text block.
10033	//   "TABLE" - Table block.
10034	//   "PICTURE" - Image block.
10035	//   "RULER" - Horizontal/vertical line box.
10036	//   "BARCODE" - Barcode block.
10037	BlockType string `json:"blockType,omitempty"`
10038
10039	// BoundingBox: The bounding box for the block.
10040	// The vertices are in the order of top-left, top-right,
10041	// bottom-right,
10042	// bottom-left. When a rotation of the bounding box is detected the
10043	// rotation
10044	// is represented as around the top-left corner as defined when the text
10045	// is
10046	// read in the 'natural' orientation.
10047	// For example:
10048	//
10049	// * when the text is horizontal it might look like:
10050	//
10051	//         0----1
10052	//         |    |
10053	//         3----2
10054	//
10055	// * when it's rotated 180 degrees around the top-left corner it
10056	// becomes:
10057	//
10058	//         2----3
10059	//         |    |
10060	//         1----0
10061	//
10062	//   and the vertex order will still be (0, 1, 2, 3).
10063	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10064
10065	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
10066	Confidence float64 `json:"confidence,omitempty"`
10067
10068	// Paragraphs: List of paragraphs in this block (if this blocks is of
10069	// type text).
10070	Paragraphs []*GoogleCloudVisionV1p4beta1Paragraph `json:"paragraphs,omitempty"`
10071
10072	// Property: Additional information detected for the block.
10073	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10074
10075	// ForceSendFields is a list of field names (e.g. "BlockType") to
10076	// unconditionally include in API requests. By default, fields with
10077	// empty values are omitted from API requests. However, any non-pointer,
10078	// non-interface field appearing in ForceSendFields will be sent to the
10079	// server regardless of whether the field is empty or not. This may be
10080	// used to include empty fields in Patch requests.
10081	ForceSendFields []string `json:"-"`
10082
10083	// NullFields is a list of field names (e.g. "BlockType") to include in
10084	// API requests with the JSON null value. By default, fields with empty
10085	// values are omitted from API requests. However, any field with an
10086	// empty value appearing in NullFields will be sent to the server as
10087	// null. It is an error if a field in this list has a non-empty value.
10088	// This may be used to include null fields in Patch requests.
10089	NullFields []string `json:"-"`
10090}
10091
10092func (s *GoogleCloudVisionV1p4beta1Block) MarshalJSON() ([]byte, error) {
10093	type NoMethod GoogleCloudVisionV1p4beta1Block
10094	raw := NoMethod(*s)
10095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10096}
10097
10098func (s *GoogleCloudVisionV1p4beta1Block) UnmarshalJSON(data []byte) error {
10099	type NoMethod GoogleCloudVisionV1p4beta1Block
10100	var s1 struct {
10101		Confidence gensupport.JSONFloat64 `json:"confidence"`
10102		*NoMethod
10103	}
10104	s1.NoMethod = (*NoMethod)(s)
10105	if err := json.Unmarshal(data, &s1); err != nil {
10106		return err
10107	}
10108	s.Confidence = float64(s1.Confidence)
10109	return nil
10110}
10111
10112// GoogleCloudVisionV1p4beta1BoundingPoly: A bounding polygon for the
10113// detected image annotation.
10114type GoogleCloudVisionV1p4beta1BoundingPoly struct {
10115	// NormalizedVertices: The bounding polygon normalized vertices.
10116	NormalizedVertices []*GoogleCloudVisionV1p4beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
10117
10118	// Vertices: The bounding polygon vertices.
10119	Vertices []*GoogleCloudVisionV1p4beta1Vertex `json:"vertices,omitempty"`
10120
10121	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
10122	// to unconditionally include in API requests. By default, fields with
10123	// empty values are omitted from API requests. However, any non-pointer,
10124	// non-interface field appearing in ForceSendFields will be sent to the
10125	// server regardless of whether the field is empty or not. This may be
10126	// used to include empty fields in Patch requests.
10127	ForceSendFields []string `json:"-"`
10128
10129	// NullFields is a list of field names (e.g. "NormalizedVertices") to
10130	// include in API requests with the JSON null value. By default, fields
10131	// with empty values are omitted from API requests. However, any field
10132	// with an empty value appearing in NullFields will be sent to the
10133	// server as null. It is an error if a field in this list has a
10134	// non-empty value. This may be used to include null fields in Patch
10135	// requests.
10136	NullFields []string `json:"-"`
10137}
10138
10139func (s *GoogleCloudVisionV1p4beta1BoundingPoly) MarshalJSON() ([]byte, error) {
10140	type NoMethod GoogleCloudVisionV1p4beta1BoundingPoly
10141	raw := NoMethod(*s)
10142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10143}
10144
10145// GoogleCloudVisionV1p4beta1ColorInfo: Color information consists of
10146// RGB channels, score, and the fraction of
10147// the image that the color occupies in the image.
10148type GoogleCloudVisionV1p4beta1ColorInfo struct {
10149	// Color: RGB components of the color.
10150	Color *Color `json:"color,omitempty"`
10151
10152	// PixelFraction: The fraction of pixels the color occupies in the
10153	// image.
10154	// Value in range [0, 1].
10155	PixelFraction float64 `json:"pixelFraction,omitempty"`
10156
10157	// Score: Image-specific score for this color. Value in range [0, 1].
10158	Score float64 `json:"score,omitempty"`
10159
10160	// ForceSendFields is a list of field names (e.g. "Color") to
10161	// unconditionally include in API requests. By default, fields with
10162	// empty values are omitted from API requests. However, any non-pointer,
10163	// non-interface field appearing in ForceSendFields will be sent to the
10164	// server regardless of whether the field is empty or not. This may be
10165	// used to include empty fields in Patch requests.
10166	ForceSendFields []string `json:"-"`
10167
10168	// NullFields is a list of field names (e.g. "Color") to include in API
10169	// requests with the JSON null value. By default, fields with empty
10170	// values are omitted from API requests. However, any field with an
10171	// empty value appearing in NullFields will be sent to the server as
10172	// null. It is an error if a field in this list has a non-empty value.
10173	// This may be used to include null fields in Patch requests.
10174	NullFields []string `json:"-"`
10175}
10176
10177func (s *GoogleCloudVisionV1p4beta1ColorInfo) MarshalJSON() ([]byte, error) {
10178	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10179	raw := NoMethod(*s)
10180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10181}
10182
10183func (s *GoogleCloudVisionV1p4beta1ColorInfo) UnmarshalJSON(data []byte) error {
10184	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10185	var s1 struct {
10186		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
10187		Score         gensupport.JSONFloat64 `json:"score"`
10188		*NoMethod
10189	}
10190	s1.NoMethod = (*NoMethod)(s)
10191	if err := json.Unmarshal(data, &s1); err != nil {
10192		return err
10193	}
10194	s.PixelFraction = float64(s1.PixelFraction)
10195	s.Score = float64(s1.Score)
10196	return nil
10197}
10198
10199// GoogleCloudVisionV1p4beta1CropHint: Single crop hint that is used to
10200// generate a new crop when serving an image.
10201type GoogleCloudVisionV1p4beta1CropHint struct {
10202	// BoundingPoly: The bounding polygon for the crop region. The
10203	// coordinates of the bounding
10204	// box are in the original image's scale.
10205	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10206
10207	// Confidence: Confidence of this being a salient region.  Range [0, 1].
10208	Confidence float64 `json:"confidence,omitempty"`
10209
10210	// ImportanceFraction: Fraction of importance of this salient region
10211	// with respect to the original
10212	// image.
10213	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
10214
10215	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10216	// unconditionally include in API requests. By default, fields with
10217	// empty values are omitted from API requests. However, any non-pointer,
10218	// non-interface field appearing in ForceSendFields will be sent to the
10219	// server regardless of whether the field is empty or not. This may be
10220	// used to include empty fields in Patch requests.
10221	ForceSendFields []string `json:"-"`
10222
10223	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10224	// in API requests with the JSON null value. By default, fields with
10225	// empty values are omitted from API requests. However, any field with
10226	// an empty value appearing in NullFields will be sent to the server as
10227	// null. It is an error if a field in this list has a non-empty value.
10228	// This may be used to include null fields in Patch requests.
10229	NullFields []string `json:"-"`
10230}
10231
10232func (s *GoogleCloudVisionV1p4beta1CropHint) MarshalJSON() ([]byte, error) {
10233	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10234	raw := NoMethod(*s)
10235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10236}
10237
10238func (s *GoogleCloudVisionV1p4beta1CropHint) UnmarshalJSON(data []byte) error {
10239	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10240	var s1 struct {
10241		Confidence         gensupport.JSONFloat64 `json:"confidence"`
10242		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
10243		*NoMethod
10244	}
10245	s1.NoMethod = (*NoMethod)(s)
10246	if err := json.Unmarshal(data, &s1); err != nil {
10247		return err
10248	}
10249	s.Confidence = float64(s1.Confidence)
10250	s.ImportanceFraction = float64(s1.ImportanceFraction)
10251	return nil
10252}
10253
10254// GoogleCloudVisionV1p4beta1CropHintsAnnotation: Set of crop hints that
10255// are used to generate new crops when serving images.
10256type GoogleCloudVisionV1p4beta1CropHintsAnnotation struct {
10257	// CropHints: Crop hint results.
10258	CropHints []*GoogleCloudVisionV1p4beta1CropHint `json:"cropHints,omitempty"`
10259
10260	// ForceSendFields is a list of field names (e.g. "CropHints") to
10261	// unconditionally include in API requests. By default, fields with
10262	// empty values are omitted from API requests. However, any non-pointer,
10263	// non-interface field appearing in ForceSendFields will be sent to the
10264	// server regardless of whether the field is empty or not. This may be
10265	// used to include empty fields in Patch requests.
10266	ForceSendFields []string `json:"-"`
10267
10268	// NullFields is a list of field names (e.g. "CropHints") to include in
10269	// API requests with the JSON null value. By default, fields with empty
10270	// values are omitted from API requests. However, any field with an
10271	// empty value appearing in NullFields will be sent to the server as
10272	// null. It is an error if a field in this list has a non-empty value.
10273	// This may be used to include null fields in Patch requests.
10274	NullFields []string `json:"-"`
10275}
10276
10277func (s *GoogleCloudVisionV1p4beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
10278	type NoMethod GoogleCloudVisionV1p4beta1CropHintsAnnotation
10279	raw := NoMethod(*s)
10280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10281}
10282
10283// GoogleCloudVisionV1p4beta1DominantColorsAnnotation: Set of dominant
10284// colors and their corresponding scores.
10285type GoogleCloudVisionV1p4beta1DominantColorsAnnotation struct {
10286	// Colors: RGB color values with their score and pixel fraction.
10287	Colors []*GoogleCloudVisionV1p4beta1ColorInfo `json:"colors,omitempty"`
10288
10289	// ForceSendFields is a list of field names (e.g. "Colors") to
10290	// unconditionally include in API requests. By default, fields with
10291	// empty values are omitted from API requests. However, any non-pointer,
10292	// non-interface field appearing in ForceSendFields will be sent to the
10293	// server regardless of whether the field is empty or not. This may be
10294	// used to include empty fields in Patch requests.
10295	ForceSendFields []string `json:"-"`
10296
10297	// NullFields is a list of field names (e.g. "Colors") to include in API
10298	// requests with the JSON null value. By default, fields with empty
10299	// values are omitted from API requests. However, any field with an
10300	// empty value appearing in NullFields will be sent to the server as
10301	// null. It is an error if a field in this list has a non-empty value.
10302	// This may be used to include null fields in Patch requests.
10303	NullFields []string `json:"-"`
10304}
10305
10306func (s *GoogleCloudVisionV1p4beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
10307	type NoMethod GoogleCloudVisionV1p4beta1DominantColorsAnnotation
10308	raw := NoMethod(*s)
10309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10310}
10311
10312// GoogleCloudVisionV1p4beta1EntityAnnotation: Set of detected entity
10313// features.
10314type GoogleCloudVisionV1p4beta1EntityAnnotation struct {
10315	// BoundingPoly: Image region to which this entity belongs. Not
10316	// produced
10317	// for `LABEL_DETECTION` features.
10318	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10319
10320	// Confidence: **Deprecated. Use `score` instead.**
10321	// The accuracy of the entity detection in an image.
10322	// For example, for an image in which the "Eiffel Tower" entity is
10323	// detected,
10324	// this field represents the confidence that there is a tower in the
10325	// query
10326	// image. Range [0, 1].
10327	Confidence float64 `json:"confidence,omitempty"`
10328
10329	// Description: Entity textual description, expressed in its `locale`
10330	// language.
10331	Description string `json:"description,omitempty"`
10332
10333	// Locale: The language code for the locale in which the entity
10334	// textual
10335	// `description` is expressed.
10336	Locale string `json:"locale,omitempty"`
10337
10338	// Locations: The location information for the detected entity.
10339	// Multiple
10340	// `LocationInfo` elements can be present because one location
10341	// may
10342	// indicate the location of the scene in the image, and another
10343	// location
10344	// may indicate the location of the place where the image was
10345	// taken.
10346	// Location information is usually present for landmarks.
10347	Locations []*GoogleCloudVisionV1p4beta1LocationInfo `json:"locations,omitempty"`
10348
10349	// Mid: Opaque entity ID. Some IDs may be available in
10350	// [Google Knowledge Graph
10351	// Search
10352	// API](https://developers.google.com/knowledge-graph/).
10353	Mid string `json:"mid,omitempty"`
10354
10355	// Properties: Some entities may have optional user-supplied `Property`
10356	// (name/value)
10357	// fields, such a score or string that qualifies the entity.
10358	Properties []*GoogleCloudVisionV1p4beta1Property `json:"properties,omitempty"`
10359
10360	// Score: Overall score of the result. Range [0, 1].
10361	Score float64 `json:"score,omitempty"`
10362
10363	// Topicality: The relevancy of the ICA (Image Content Annotation) label
10364	// to the
10365	// image. For example, the relevancy of "tower" is likely higher to an
10366	// image
10367	// containing the detected "Eiffel Tower" than to an image containing
10368	// a
10369	// detected distant towering building, even though the confidence
10370	// that
10371	// there is a tower in each image may be the same. Range [0, 1].
10372	Topicality float64 `json:"topicality,omitempty"`
10373
10374	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10375	// unconditionally include in API requests. By default, fields with
10376	// empty values are omitted from API requests. However, any non-pointer,
10377	// non-interface field appearing in ForceSendFields will be sent to the
10378	// server regardless of whether the field is empty or not. This may be
10379	// used to include empty fields in Patch requests.
10380	ForceSendFields []string `json:"-"`
10381
10382	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10383	// in API requests with the JSON null value. By default, fields with
10384	// empty values are omitted from API requests. However, any field with
10385	// an empty value appearing in NullFields will be sent to the server as
10386	// null. It is an error if a field in this list has a non-empty value.
10387	// This may be used to include null fields in Patch requests.
10388	NullFields []string `json:"-"`
10389}
10390
10391func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
10392	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10393	raw := NoMethod(*s)
10394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10395}
10396
10397func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
10398	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10399	var s1 struct {
10400		Confidence gensupport.JSONFloat64 `json:"confidence"`
10401		Score      gensupport.JSONFloat64 `json:"score"`
10402		Topicality gensupport.JSONFloat64 `json:"topicality"`
10403		*NoMethod
10404	}
10405	s1.NoMethod = (*NoMethod)(s)
10406	if err := json.Unmarshal(data, &s1); err != nil {
10407		return err
10408	}
10409	s.Confidence = float64(s1.Confidence)
10410	s.Score = float64(s1.Score)
10411	s.Topicality = float64(s1.Topicality)
10412	return nil
10413}
10414
10415// GoogleCloudVisionV1p4beta1FaceAnnotation: A face annotation object
10416// contains the results of face detection.
10417type GoogleCloudVisionV1p4beta1FaceAnnotation struct {
10418	// AngerLikelihood: Anger likelihood.
10419	//
10420	// Possible values:
10421	//   "UNKNOWN" - Unknown likelihood.
10422	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10423	// specified vertical.
10424	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10425	// vertical.
10426	//   "POSSIBLE" - It is possible that the image belongs to the specified
10427	// vertical.
10428	//   "LIKELY" - It is likely that the image belongs to the specified
10429	// vertical.
10430	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10431	// specified vertical.
10432	AngerLikelihood string `json:"angerLikelihood,omitempty"`
10433
10434	// BlurredLikelihood: Blurred likelihood.
10435	//
10436	// Possible values:
10437	//   "UNKNOWN" - Unknown likelihood.
10438	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10439	// specified vertical.
10440	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10441	// vertical.
10442	//   "POSSIBLE" - It is possible that the image belongs to the specified
10443	// vertical.
10444	//   "LIKELY" - It is likely that the image belongs to the specified
10445	// vertical.
10446	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10447	// specified vertical.
10448	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
10449
10450	// BoundingPoly: The bounding polygon around the face. The coordinates
10451	// of the bounding box
10452	// are in the original image's scale.
10453	// The bounding box is computed to "frame" the face in accordance with
10454	// human
10455	// expectations. It is based on the landmarker results.
10456	// Note that one or more x and/or y coordinates may not be generated in
10457	// the
10458	// `BoundingPoly` (the polygon will be unbounded) if only a partial
10459	// face
10460	// appears in the image to be annotated.
10461	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10462
10463	// DetectionConfidence: Detection confidence. Range [0, 1].
10464	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
10465
10466	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
10467	// than the
10468	// `boundingPoly`, and encloses only the skin part of the face.
10469	// Typically, it
10470	// is used to eliminate the face from any image analysis that detects
10471	// the
10472	// "amount of skin" visible in an image. It is not based on
10473	// the
10474	// landmarker results, only on the initial face detection, hence
10475	// the <code>fd</code> (face detection) prefix.
10476	FdBoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
10477
10478	// HeadwearLikelihood: Headwear likelihood.
10479	//
10480	// Possible values:
10481	//   "UNKNOWN" - Unknown likelihood.
10482	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10483	// specified vertical.
10484	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10485	// vertical.
10486	//   "POSSIBLE" - It is possible that the image belongs to the specified
10487	// vertical.
10488	//   "LIKELY" - It is likely that the image belongs to the specified
10489	// vertical.
10490	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10491	// specified vertical.
10492	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
10493
10494	// JoyLikelihood: Joy likelihood.
10495	//
10496	// Possible values:
10497	//   "UNKNOWN" - Unknown likelihood.
10498	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10499	// specified vertical.
10500	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10501	// vertical.
10502	//   "POSSIBLE" - It is possible that the image belongs to the specified
10503	// vertical.
10504	//   "LIKELY" - It is likely that the image belongs to the specified
10505	// vertical.
10506	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10507	// specified vertical.
10508	JoyLikelihood string `json:"joyLikelihood,omitempty"`
10509
10510	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
10511	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
10512
10513	// Landmarks: Detected face landmarks.
10514	Landmarks []*GoogleCloudVisionV1p4beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
10515
10516	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
10517	// that the face is
10518	// pointing relative to the vertical plane perpendicular to the image.
10519	// Range
10520	// [-180,180].
10521	PanAngle float64 `json:"panAngle,omitempty"`
10522
10523	// RollAngle: Roll angle, which indicates the amount of
10524	// clockwise/anti-clockwise rotation
10525	// of the face relative to the image vertical about the axis
10526	// perpendicular to
10527	// the face. Range [-180,180].
10528	RollAngle float64 `json:"rollAngle,omitempty"`
10529
10530	// SorrowLikelihood: Sorrow likelihood.
10531	//
10532	// Possible values:
10533	//   "UNKNOWN" - Unknown likelihood.
10534	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10535	// specified vertical.
10536	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10537	// vertical.
10538	//   "POSSIBLE" - It is possible that the image belongs to the specified
10539	// vertical.
10540	//   "LIKELY" - It is likely that the image belongs to the specified
10541	// vertical.
10542	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10543	// specified vertical.
10544	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
10545
10546	// SurpriseLikelihood: Surprise likelihood.
10547	//
10548	// Possible values:
10549	//   "UNKNOWN" - Unknown likelihood.
10550	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10551	// specified vertical.
10552	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10553	// vertical.
10554	//   "POSSIBLE" - It is possible that the image belongs to the specified
10555	// vertical.
10556	//   "LIKELY" - It is likely that the image belongs to the specified
10557	// vertical.
10558	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10559	// specified vertical.
10560	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
10561
10562	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
10563	// that the face is
10564	// pointing relative to the image's horizontal plane. Range [-180,180].
10565	TiltAngle float64 `json:"tiltAngle,omitempty"`
10566
10567	// UnderExposedLikelihood: Under-exposed likelihood.
10568	//
10569	// Possible values:
10570	//   "UNKNOWN" - Unknown likelihood.
10571	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
10572	// specified vertical.
10573	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
10574	// vertical.
10575	//   "POSSIBLE" - It is possible that the image belongs to the specified
10576	// vertical.
10577	//   "LIKELY" - It is likely that the image belongs to the specified
10578	// vertical.
10579	//   "VERY_LIKELY" - It is very likely that the image belongs to the
10580	// specified vertical.
10581	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
10582
10583	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
10584	// unconditionally include in API requests. By default, fields with
10585	// empty values are omitted from API requests. However, any non-pointer,
10586	// non-interface field appearing in ForceSendFields will be sent to the
10587	// server regardless of whether the field is empty or not. This may be
10588	// used to include empty fields in Patch requests.
10589	ForceSendFields []string `json:"-"`
10590
10591	// NullFields is a list of field names (e.g. "AngerLikelihood") to
10592	// include in API requests with the JSON null value. By default, fields
10593	// with empty values are omitted from API requests. However, any field
10594	// with an empty value appearing in NullFields will be sent to the
10595	// server as null. It is an error if a field in this list has a
10596	// non-empty value. This may be used to include null fields in Patch
10597	// requests.
10598	NullFields []string `json:"-"`
10599}
10600
10601func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
10602	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10603	raw := NoMethod(*s)
10604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10605}
10606
10607func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
10608	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10609	var s1 struct {
10610		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
10611		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
10612		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
10613		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
10614		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
10615		*NoMethod
10616	}
10617	s1.NoMethod = (*NoMethod)(s)
10618	if err := json.Unmarshal(data, &s1); err != nil {
10619		return err
10620	}
10621	s.DetectionConfidence = float64(s1.DetectionConfidence)
10622	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
10623	s.PanAngle = float64(s1.PanAngle)
10624	s.RollAngle = float64(s1.RollAngle)
10625	s.TiltAngle = float64(s1.TiltAngle)
10626	return nil
10627}
10628
10629// GoogleCloudVisionV1p4beta1FaceAnnotationLandmark: A face-specific
10630// landmark (for example, a face feature).
10631type GoogleCloudVisionV1p4beta1FaceAnnotationLandmark struct {
10632	// Position: Face landmark position.
10633	Position *GoogleCloudVisionV1p4beta1Position `json:"position,omitempty"`
10634
10635	// Type: Face landmark type.
10636	//
10637	// Possible values:
10638	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
10639	// filled.
10640	//   "LEFT_EYE" - Left eye.
10641	//   "RIGHT_EYE" - Right eye.
10642	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
10643	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
10644	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
10645	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
10646	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
10647	//   "NOSE_TIP" - Nose tip.
10648	//   "UPPER_LIP" - Upper lip.
10649	//   "LOWER_LIP" - Lower lip.
10650	//   "MOUTH_LEFT" - Mouth left.
10651	//   "MOUTH_RIGHT" - Mouth right.
10652	//   "MOUTH_CENTER" - Mouth center.
10653	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
10654	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
10655	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
10656	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
10657	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
10658	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
10659	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
10660	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
10661	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
10662	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
10663	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
10664	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
10665	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
10666	//   "LEFT_EAR_TRAGION" - Left ear tragion.
10667	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
10668	//   "LEFT_EYE_PUPIL" - Left eye pupil.
10669	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
10670	//   "FOREHEAD_GLABELLA" - Forehead glabella.
10671	//   "CHIN_GNATHION" - Chin gnathion.
10672	//   "CHIN_LEFT_GONION" - Chin left gonion.
10673	//   "CHIN_RIGHT_GONION" - Chin right gonion.
10674	Type string `json:"type,omitempty"`
10675
10676	// ForceSendFields is a list of field names (e.g. "Position") to
10677	// unconditionally include in API requests. By default, fields with
10678	// empty values are omitted from API requests. However, any non-pointer,
10679	// non-interface field appearing in ForceSendFields will be sent to the
10680	// server regardless of whether the field is empty or not. This may be
10681	// used to include empty fields in Patch requests.
10682	ForceSendFields []string `json:"-"`
10683
10684	// NullFields is a list of field names (e.g. "Position") to include in
10685	// API requests with the JSON null value. By default, fields with empty
10686	// values are omitted from API requests. However, any field with an
10687	// empty value appearing in NullFields will be sent to the server as
10688	// null. It is an error if a field in this list has a non-empty value.
10689	// This may be used to include null fields in Patch requests.
10690	NullFields []string `json:"-"`
10691}
10692
10693func (s *GoogleCloudVisionV1p4beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
10694	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotationLandmark
10695	raw := NoMethod(*s)
10696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10697}
10698
10699// GoogleCloudVisionV1p4beta1GcsDestination: The Google Cloud Storage
10700// location where the output will be written to.
10701type GoogleCloudVisionV1p4beta1GcsDestination struct {
10702	// Uri: Google Cloud Storage URI prefix where the results will be
10703	// stored. Results
10704	// will be in JSON format and preceded by its corresponding input URI
10705	// prefix.
10706	// This field can either represent a gcs file prefix or gcs directory.
10707	// In
10708	// either case, the uri should be unique because in order to get all of
10709	// the
10710	// output files, you will need to do a wildcard gcs search on the uri
10711	// prefix
10712	// you provide.
10713	//
10714	// Examples:
10715	//
10716	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
10717	// files
10718	// will be created in gs://bucket-name/here/ and the names of the
10719	// output files will begin with "filenameprefix".
10720	//
10721	// *    Directory Prefix: gs://bucket-name/some/location/   The output
10722	// files
10723	// will be created in gs://bucket-name/some/location/ and the names of
10724	// the
10725	// output files could be anything because there was no filename
10726	// prefix
10727	// specified.
10728	//
10729	// If multiple outputs, each response is still AnnotateFileResponse,
10730	// each of
10731	// which contains some subset of the full list of
10732	// AnnotateImageResponse.
10733	// Multiple outputs can happen if, for example, the output JSON is too
10734	// large
10735	// and overflows into multiple sharded files.
10736	Uri string `json:"uri,omitempty"`
10737
10738	// ForceSendFields is a list of field names (e.g. "Uri") to
10739	// unconditionally include in API requests. By default, fields with
10740	// empty values are omitted from API requests. However, any non-pointer,
10741	// non-interface field appearing in ForceSendFields will be sent to the
10742	// server regardless of whether the field is empty or not. This may be
10743	// used to include empty fields in Patch requests.
10744	ForceSendFields []string `json:"-"`
10745
10746	// NullFields is a list of field names (e.g. "Uri") to include in API
10747	// requests with the JSON null value. By default, fields with empty
10748	// values are omitted from API requests. However, any field with an
10749	// empty value appearing in NullFields will be sent to the server as
10750	// null. It is an error if a field in this list has a non-empty value.
10751	// This may be used to include null fields in Patch requests.
10752	NullFields []string `json:"-"`
10753}
10754
10755func (s *GoogleCloudVisionV1p4beta1GcsDestination) MarshalJSON() ([]byte, error) {
10756	type NoMethod GoogleCloudVisionV1p4beta1GcsDestination
10757	raw := NoMethod(*s)
10758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10759}
10760
10761// GoogleCloudVisionV1p4beta1GcsSource: The Google Cloud Storage
10762// location where the input will be read from.
10763type GoogleCloudVisionV1p4beta1GcsSource struct {
10764	// Uri: Google Cloud Storage URI for the input file. This must only be
10765	// a
10766	// Google Cloud Storage object. Wildcards are not currently supported.
10767	Uri string `json:"uri,omitempty"`
10768
10769	// ForceSendFields is a list of field names (e.g. "Uri") to
10770	// unconditionally include in API requests. By default, fields with
10771	// empty values are omitted from API requests. However, any non-pointer,
10772	// non-interface field appearing in ForceSendFields will be sent to the
10773	// server regardless of whether the field is empty or not. This may be
10774	// used to include empty fields in Patch requests.
10775	ForceSendFields []string `json:"-"`
10776
10777	// NullFields is a list of field names (e.g. "Uri") to include in API
10778	// requests with the JSON null value. By default, fields with empty
10779	// values are omitted from API requests. However, any field with an
10780	// empty value appearing in NullFields will be sent to the server as
10781	// null. It is an error if a field in this list has a non-empty value.
10782	// This may be used to include null fields in Patch requests.
10783	NullFields []string `json:"-"`
10784}
10785
10786func (s *GoogleCloudVisionV1p4beta1GcsSource) MarshalJSON() ([]byte, error) {
10787	type NoMethod GoogleCloudVisionV1p4beta1GcsSource
10788	raw := NoMethod(*s)
10789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10790}
10791
10792// GoogleCloudVisionV1p4beta1ImageAnnotationContext: If an image was
10793// produced from a file (e.g. a PDF), this message gives
10794// information about the source of that image.
10795type GoogleCloudVisionV1p4beta1ImageAnnotationContext struct {
10796	// PageNumber: If the file was a PDF or TIFF, this field gives the page
10797	// number within
10798	// the file used to produce the image.
10799	PageNumber int64 `json:"pageNumber,omitempty"`
10800
10801	// Uri: The URI of the file used to produce the image.
10802	Uri string `json:"uri,omitempty"`
10803
10804	// ForceSendFields is a list of field names (e.g. "PageNumber") to
10805	// unconditionally include in API requests. By default, fields with
10806	// empty values are omitted from API requests. However, any non-pointer,
10807	// non-interface field appearing in ForceSendFields will be sent to the
10808	// server regardless of whether the field is empty or not. This may be
10809	// used to include empty fields in Patch requests.
10810	ForceSendFields []string `json:"-"`
10811
10812	// NullFields is a list of field names (e.g. "PageNumber") to include in
10813	// API requests with the JSON null value. By default, fields with empty
10814	// values are omitted from API requests. However, any field with an
10815	// empty value appearing in NullFields will be sent to the server as
10816	// null. It is an error if a field in this list has a non-empty value.
10817	// This may be used to include null fields in Patch requests.
10818	NullFields []string `json:"-"`
10819}
10820
10821func (s *GoogleCloudVisionV1p4beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
10822	type NoMethod GoogleCloudVisionV1p4beta1ImageAnnotationContext
10823	raw := NoMethod(*s)
10824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10825}
10826
10827// GoogleCloudVisionV1p4beta1ImageProperties: Stores image properties,
10828// such as dominant colors.
10829type GoogleCloudVisionV1p4beta1ImageProperties struct {
10830	// DominantColors: If present, dominant colors completed successfully.
10831	DominantColors *GoogleCloudVisionV1p4beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
10832
10833	// ForceSendFields is a list of field names (e.g. "DominantColors") to
10834	// unconditionally include in API requests. By default, fields with
10835	// empty values are omitted from API requests. However, any non-pointer,
10836	// non-interface field appearing in ForceSendFields will be sent to the
10837	// server regardless of whether the field is empty or not. This may be
10838	// used to include empty fields in Patch requests.
10839	ForceSendFields []string `json:"-"`
10840
10841	// NullFields is a list of field names (e.g. "DominantColors") to
10842	// include in API requests with the JSON null value. By default, fields
10843	// with empty values are omitted from API requests. However, any field
10844	// with an empty value appearing in NullFields will be sent to the
10845	// server as null. It is an error if a field in this list has a
10846	// non-empty value. This may be used to include null fields in Patch
10847	// requests.
10848	NullFields []string `json:"-"`
10849}
10850
10851func (s *GoogleCloudVisionV1p4beta1ImageProperties) MarshalJSON() ([]byte, error) {
10852	type NoMethod GoogleCloudVisionV1p4beta1ImageProperties
10853	raw := NoMethod(*s)
10854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10855}
10856
10857// GoogleCloudVisionV1p4beta1ImportProductSetsResponse: Response message
10858// for the `ImportProductSets` method.
10859//
10860// This message is returned by
10861// the
10862// google.longrunning.Operations.GetOperation method in the
10863// returned
10864// google.longrunning.Operation.response field.
10865type GoogleCloudVisionV1p4beta1ImportProductSetsResponse struct {
10866	// ReferenceImages: The list of reference_images that are imported
10867	// successfully.
10868	ReferenceImages []*GoogleCloudVisionV1p4beta1ReferenceImage `json:"referenceImages,omitempty"`
10869
10870	// Statuses: The rpc status for each ImportProductSet request, including
10871	// both successes
10872	// and errors.
10873	//
10874	// The number of statuses here matches the number of lines in the csv
10875	// file,
10876	// and statuses[i] stores the success or failure status of processing
10877	// the i-th
10878	// line of the csv, starting from line 0.
10879	Statuses []*Status `json:"statuses,omitempty"`
10880
10881	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
10882	// unconditionally include in API requests. By default, fields with
10883	// empty values are omitted from API requests. However, any non-pointer,
10884	// non-interface field appearing in ForceSendFields will be sent to the
10885	// server regardless of whether the field is empty or not. This may be
10886	// used to include empty fields in Patch requests.
10887	ForceSendFields []string `json:"-"`
10888
10889	// NullFields is a list of field names (e.g. "ReferenceImages") to
10890	// include in API requests with the JSON null value. By default, fields
10891	// with empty values are omitted from API requests. However, any field
10892	// with an empty value appearing in NullFields will be sent to the
10893	// server as null. It is an error if a field in this list has a
10894	// non-empty value. This may be used to include null fields in Patch
10895	// requests.
10896	NullFields []string `json:"-"`
10897}
10898
10899func (s *GoogleCloudVisionV1p4beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
10900	type NoMethod GoogleCloudVisionV1p4beta1ImportProductSetsResponse
10901	raw := NoMethod(*s)
10902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10903}
10904
10905// GoogleCloudVisionV1p4beta1InputConfig: The desired input location and
10906// metadata.
10907type GoogleCloudVisionV1p4beta1InputConfig struct {
10908	// Content: File content, represented as a stream of bytes.
10909	// Note: As with all `bytes` fields, protobuffers use a pure
10910	// binary
10911	// representation, whereas JSON representations use base64.
10912	//
10913	// Currently, this field only works for BatchAnnotateFiles requests. It
10914	// does
10915	// not work for AsyncBatchAnnotateFiles requests.
10916	Content string `json:"content,omitempty"`
10917
10918	// GcsSource: The Google Cloud Storage location to read the input from.
10919	GcsSource *GoogleCloudVisionV1p4beta1GcsSource `json:"gcsSource,omitempty"`
10920
10921	// MimeType: The type of the file. Currently only "application/pdf",
10922	// "image/tiff" and
10923	// "image/gif" are supported. Wildcards are not supported.
10924	MimeType string `json:"mimeType,omitempty"`
10925
10926	// ForceSendFields is a list of field names (e.g. "Content") to
10927	// unconditionally include in API requests. By default, fields with
10928	// empty values are omitted from API requests. However, any non-pointer,
10929	// non-interface field appearing in ForceSendFields will be sent to the
10930	// server regardless of whether the field is empty or not. This may be
10931	// used to include empty fields in Patch requests.
10932	ForceSendFields []string `json:"-"`
10933
10934	// NullFields is a list of field names (e.g. "Content") to include in
10935	// API requests with the JSON null value. By default, fields with empty
10936	// values are omitted from API requests. However, any field with an
10937	// empty value appearing in NullFields will be sent to the server as
10938	// null. It is an error if a field in this list has a non-empty value.
10939	// This may be used to include null fields in Patch requests.
10940	NullFields []string `json:"-"`
10941}
10942
10943func (s *GoogleCloudVisionV1p4beta1InputConfig) MarshalJSON() ([]byte, error) {
10944	type NoMethod GoogleCloudVisionV1p4beta1InputConfig
10945	raw := NoMethod(*s)
10946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10947}
10948
10949// GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation: Set of detected
10950// objects with bounding boxes.
10951type GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation struct {
10952	// BoundingPoly: Image region to which this object belongs. This must be
10953	// populated.
10954	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10955
10956	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
10957	// For more
10958	// information,
10959	// see
10960	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
10961	LanguageCode string `json:"languageCode,omitempty"`
10962
10963	// Mid: Object ID that should align with EntityAnnotation mid.
10964	Mid string `json:"mid,omitempty"`
10965
10966	// Name: Object name, expressed in its `language_code` language.
10967	Name string `json:"name,omitempty"`
10968
10969	// Score: Score of the result. Range [0, 1].
10970	Score float64 `json:"score,omitempty"`
10971
10972	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10973	// unconditionally include in API requests. By default, fields with
10974	// empty values are omitted from API requests. However, any non-pointer,
10975	// non-interface field appearing in ForceSendFields will be sent to the
10976	// server regardless of whether the field is empty or not. This may be
10977	// used to include empty fields in Patch requests.
10978	ForceSendFields []string `json:"-"`
10979
10980	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10981	// in API requests with the JSON null value. By default, fields with
10982	// empty values are omitted from API requests. However, any field with
10983	// an empty value appearing in NullFields will be sent to the server as
10984	// null. It is an error if a field in this list has a non-empty value.
10985	// This may be used to include null fields in Patch requests.
10986	NullFields []string `json:"-"`
10987}
10988
10989func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
10990	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10991	raw := NoMethod(*s)
10992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10993}
10994
10995func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
10996	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10997	var s1 struct {
10998		Score gensupport.JSONFloat64 `json:"score"`
10999		*NoMethod
11000	}
11001	s1.NoMethod = (*NoMethod)(s)
11002	if err := json.Unmarshal(data, &s1); err != nil {
11003		return err
11004	}
11005	s.Score = float64(s1.Score)
11006	return nil
11007}
11008
11009// GoogleCloudVisionV1p4beta1LocationInfo: Detected entity location
11010// information.
11011type GoogleCloudVisionV1p4beta1LocationInfo struct {
11012	// LatLng: lat/long location coordinates.
11013	LatLng *LatLng `json:"latLng,omitempty"`
11014
11015	// ForceSendFields is a list of field names (e.g. "LatLng") to
11016	// unconditionally include in API requests. By default, fields with
11017	// empty values are omitted from API requests. However, any non-pointer,
11018	// non-interface field appearing in ForceSendFields will be sent to the
11019	// server regardless of whether the field is empty or not. This may be
11020	// used to include empty fields in Patch requests.
11021	ForceSendFields []string `json:"-"`
11022
11023	// NullFields is a list of field names (e.g. "LatLng") to include in API
11024	// requests with the JSON null value. By default, fields with empty
11025	// values are omitted from API requests. However, any field with an
11026	// empty value appearing in NullFields will be sent to the server as
11027	// null. It is an error if a field in this list has a non-empty value.
11028	// This may be used to include null fields in Patch requests.
11029	NullFields []string `json:"-"`
11030}
11031
11032func (s *GoogleCloudVisionV1p4beta1LocationInfo) MarshalJSON() ([]byte, error) {
11033	type NoMethod GoogleCloudVisionV1p4beta1LocationInfo
11034	raw := NoMethod(*s)
11035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11036}
11037
11038// GoogleCloudVisionV1p4beta1NormalizedVertex: A vertex represents a 2D
11039// point in the image.
11040// NOTE: the normalized vertex coordinates are relative to the original
11041// image
11042// and range from 0 to 1.
11043type GoogleCloudVisionV1p4beta1NormalizedVertex struct {
11044	// X: X coordinate.
11045	X float64 `json:"x,omitempty"`
11046
11047	// Y: Y coordinate.
11048	Y float64 `json:"y,omitempty"`
11049
11050	// ForceSendFields is a list of field names (e.g. "X") to
11051	// unconditionally include in API requests. By default, fields with
11052	// empty values are omitted from API requests. However, any non-pointer,
11053	// non-interface field appearing in ForceSendFields will be sent to the
11054	// server regardless of whether the field is empty or not. This may be
11055	// used to include empty fields in Patch requests.
11056	ForceSendFields []string `json:"-"`
11057
11058	// NullFields is a list of field names (e.g. "X") to include in API
11059	// requests with the JSON null value. By default, fields with empty
11060	// values are omitted from API requests. However, any field with an
11061	// empty value appearing in NullFields will be sent to the server as
11062	// null. It is an error if a field in this list has a non-empty value.
11063	// This may be used to include null fields in Patch requests.
11064	NullFields []string `json:"-"`
11065}
11066
11067func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
11068	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11069	raw := NoMethod(*s)
11070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11071}
11072
11073func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
11074	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11075	var s1 struct {
11076		X gensupport.JSONFloat64 `json:"x"`
11077		Y gensupport.JSONFloat64 `json:"y"`
11078		*NoMethod
11079	}
11080	s1.NoMethod = (*NoMethod)(s)
11081	if err := json.Unmarshal(data, &s1); err != nil {
11082		return err
11083	}
11084	s.X = float64(s1.X)
11085	s.Y = float64(s1.Y)
11086	return nil
11087}
11088
11089// GoogleCloudVisionV1p4beta1OperationMetadata: Contains metadata for
11090// the BatchAnnotateImages operation.
11091type GoogleCloudVisionV1p4beta1OperationMetadata struct {
11092	// CreateTime: The time when the batch request was received.
11093	CreateTime string `json:"createTime,omitempty"`
11094
11095	// State: Current state of the batch operation.
11096	//
11097	// Possible values:
11098	//   "STATE_UNSPECIFIED" - Invalid.
11099	//   "CREATED" - Request is received.
11100	//   "RUNNING" - Request is actively being processed.
11101	//   "DONE" - The batch processing is done.
11102	//   "CANCELLED" - The batch processing was cancelled.
11103	State string `json:"state,omitempty"`
11104
11105	// UpdateTime: The time when the operation result was last updated.
11106	UpdateTime string `json:"updateTime,omitempty"`
11107
11108	// ForceSendFields is a list of field names (e.g. "CreateTime") to
11109	// unconditionally include in API requests. By default, fields with
11110	// empty values are omitted from API requests. However, any non-pointer,
11111	// non-interface field appearing in ForceSendFields will be sent to the
11112	// server regardless of whether the field is empty or not. This may be
11113	// used to include empty fields in Patch requests.
11114	ForceSendFields []string `json:"-"`
11115
11116	// NullFields is a list of field names (e.g. "CreateTime") to include in
11117	// API requests with the JSON null value. By default, fields with empty
11118	// values are omitted from API requests. However, any field with an
11119	// empty value appearing in NullFields will be sent to the server as
11120	// null. It is an error if a field in this list has a non-empty value.
11121	// This may be used to include null fields in Patch requests.
11122	NullFields []string `json:"-"`
11123}
11124
11125func (s *GoogleCloudVisionV1p4beta1OperationMetadata) MarshalJSON() ([]byte, error) {
11126	type NoMethod GoogleCloudVisionV1p4beta1OperationMetadata
11127	raw := NoMethod(*s)
11128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11129}
11130
11131// GoogleCloudVisionV1p4beta1OutputConfig: The desired output location
11132// and metadata.
11133type GoogleCloudVisionV1p4beta1OutputConfig struct {
11134	// BatchSize: The max number of response protos to put into each output
11135	// JSON file on
11136	// Google Cloud Storage.
11137	// The valid range is [1, 100]. If not specified, the default value is
11138	// 20.
11139	//
11140	// For example, for one pdf file with 100 pages, 100 response protos
11141	// will
11142	// be generated. If `batch_size` = 20, then 5 json files each
11143	// containing 20 response protos will be written under the
11144	// prefix
11145	// `gcs_destination`.`uri`.
11146	//
11147	// Currently, batch_size only applies to GcsDestination, with potential
11148	// future
11149	// support for other output configurations.
11150	BatchSize int64 `json:"batchSize,omitempty"`
11151
11152	// GcsDestination: The Google Cloud Storage location to write the
11153	// output(s) to.
11154	GcsDestination *GoogleCloudVisionV1p4beta1GcsDestination `json:"gcsDestination,omitempty"`
11155
11156	// ForceSendFields is a list of field names (e.g. "BatchSize") to
11157	// unconditionally include in API requests. By default, fields with
11158	// empty values are omitted from API requests. However, any non-pointer,
11159	// non-interface field appearing in ForceSendFields will be sent to the
11160	// server regardless of whether the field is empty or not. This may be
11161	// used to include empty fields in Patch requests.
11162	ForceSendFields []string `json:"-"`
11163
11164	// NullFields is a list of field names (e.g. "BatchSize") to include in
11165	// API requests with the JSON null value. By default, fields with empty
11166	// values are omitted from API requests. However, any field with an
11167	// empty value appearing in NullFields will be sent to the server as
11168	// null. It is an error if a field in this list has a non-empty value.
11169	// This may be used to include null fields in Patch requests.
11170	NullFields []string `json:"-"`
11171}
11172
11173func (s *GoogleCloudVisionV1p4beta1OutputConfig) MarshalJSON() ([]byte, error) {
11174	type NoMethod GoogleCloudVisionV1p4beta1OutputConfig
11175	raw := NoMethod(*s)
11176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11177}
11178
11179// GoogleCloudVisionV1p4beta1Page: Detected page from OCR.
11180type GoogleCloudVisionV1p4beta1Page struct {
11181	// Blocks: List of blocks of text, images etc on this page.
11182	Blocks []*GoogleCloudVisionV1p4beta1Block `json:"blocks,omitempty"`
11183
11184	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
11185	Confidence float64 `json:"confidence,omitempty"`
11186
11187	// Height: Page height. For PDFs the unit is points. For images
11188	// (including
11189	// TIFFs) the unit is pixels.
11190	Height int64 `json:"height,omitempty"`
11191
11192	// Property: Additional information detected on the page.
11193	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11194
11195	// Width: Page width. For PDFs the unit is points. For images
11196	// (including
11197	// TIFFs) the unit is pixels.
11198	Width int64 `json:"width,omitempty"`
11199
11200	// ForceSendFields is a list of field names (e.g. "Blocks") to
11201	// unconditionally include in API requests. By default, fields with
11202	// empty values are omitted from API requests. However, any non-pointer,
11203	// non-interface field appearing in ForceSendFields will be sent to the
11204	// server regardless of whether the field is empty or not. This may be
11205	// used to include empty fields in Patch requests.
11206	ForceSendFields []string `json:"-"`
11207
11208	// NullFields is a list of field names (e.g. "Blocks") to include in API
11209	// requests with the JSON null value. By default, fields with empty
11210	// values are omitted from API requests. However, any field with an
11211	// empty value appearing in NullFields will be sent to the server as
11212	// null. It is an error if a field in this list has a non-empty value.
11213	// This may be used to include null fields in Patch requests.
11214	NullFields []string `json:"-"`
11215}
11216
11217func (s *GoogleCloudVisionV1p4beta1Page) MarshalJSON() ([]byte, error) {
11218	type NoMethod GoogleCloudVisionV1p4beta1Page
11219	raw := NoMethod(*s)
11220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11221}
11222
11223func (s *GoogleCloudVisionV1p4beta1Page) UnmarshalJSON(data []byte) error {
11224	type NoMethod GoogleCloudVisionV1p4beta1Page
11225	var s1 struct {
11226		Confidence gensupport.JSONFloat64 `json:"confidence"`
11227		*NoMethod
11228	}
11229	s1.NoMethod = (*NoMethod)(s)
11230	if err := json.Unmarshal(data, &s1); err != nil {
11231		return err
11232	}
11233	s.Confidence = float64(s1.Confidence)
11234	return nil
11235}
11236
11237// GoogleCloudVisionV1p4beta1Paragraph: Structural unit of text
11238// representing a number of words in certain order.
11239type GoogleCloudVisionV1p4beta1Paragraph struct {
11240	// BoundingBox: The bounding box for the paragraph.
11241	// The vertices are in the order of top-left, top-right,
11242	// bottom-right,
11243	// bottom-left. When a rotation of the bounding box is detected the
11244	// rotation
11245	// is represented as around the top-left corner as defined when the text
11246	// is
11247	// read in the 'natural' orientation.
11248	// For example:
11249	//   * when the text is horizontal it might look like:
11250	//      0----1
11251	//      |    |
11252	//      3----2
11253	//   * when it's rotated 180 degrees around the top-left corner it
11254	// becomes:
11255	//      2----3
11256	//      |    |
11257	//      1----0
11258	//   and the vertex order will still be (0, 1, 2, 3).
11259	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11260
11261	// Confidence: Confidence of the OCR results for the paragraph. Range
11262	// [0, 1].
11263	Confidence float64 `json:"confidence,omitempty"`
11264
11265	// Property: Additional information detected for the paragraph.
11266	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11267
11268	// Words: List of words in this paragraph.
11269	Words []*GoogleCloudVisionV1p4beta1Word `json:"words,omitempty"`
11270
11271	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11272	// unconditionally include in API requests. By default, fields with
11273	// empty values are omitted from API requests. However, any non-pointer,
11274	// non-interface field appearing in ForceSendFields will be sent to the
11275	// server regardless of whether the field is empty or not. This may be
11276	// used to include empty fields in Patch requests.
11277	ForceSendFields []string `json:"-"`
11278
11279	// NullFields is a list of field names (e.g. "BoundingBox") to include
11280	// in API requests with the JSON null value. By default, fields with
11281	// empty values are omitted from API requests. However, any field with
11282	// an empty value appearing in NullFields will be sent to the server as
11283	// null. It is an error if a field in this list has a non-empty value.
11284	// This may be used to include null fields in Patch requests.
11285	NullFields []string `json:"-"`
11286}
11287
11288func (s *GoogleCloudVisionV1p4beta1Paragraph) MarshalJSON() ([]byte, error) {
11289	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11290	raw := NoMethod(*s)
11291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11292}
11293
11294func (s *GoogleCloudVisionV1p4beta1Paragraph) UnmarshalJSON(data []byte) error {
11295	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11296	var s1 struct {
11297		Confidence gensupport.JSONFloat64 `json:"confidence"`
11298		*NoMethod
11299	}
11300	s1.NoMethod = (*NoMethod)(s)
11301	if err := json.Unmarshal(data, &s1); err != nil {
11302		return err
11303	}
11304	s.Confidence = float64(s1.Confidence)
11305	return nil
11306}
11307
11308// GoogleCloudVisionV1p4beta1Position: A 3D position in the image, used
11309// primarily for Face detection landmarks.
11310// A valid Position must have both x and y coordinates.
11311// The position coordinates are in the same scale as the original image.
11312type GoogleCloudVisionV1p4beta1Position struct {
11313	// X: X coordinate.
11314	X float64 `json:"x,omitempty"`
11315
11316	// Y: Y coordinate.
11317	Y float64 `json:"y,omitempty"`
11318
11319	// Z: Z coordinate (or depth).
11320	Z float64 `json:"z,omitempty"`
11321
11322	// ForceSendFields is a list of field names (e.g. "X") to
11323	// unconditionally include in API requests. By default, fields with
11324	// empty values are omitted from API requests. However, any non-pointer,
11325	// non-interface field appearing in ForceSendFields will be sent to the
11326	// server regardless of whether the field is empty or not. This may be
11327	// used to include empty fields in Patch requests.
11328	ForceSendFields []string `json:"-"`
11329
11330	// NullFields is a list of field names (e.g. "X") to include in API
11331	// requests with the JSON null value. By default, fields with empty
11332	// values are omitted from API requests. However, any field with an
11333	// empty value appearing in NullFields will be sent to the server as
11334	// null. It is an error if a field in this list has a non-empty value.
11335	// This may be used to include null fields in Patch requests.
11336	NullFields []string `json:"-"`
11337}
11338
11339func (s *GoogleCloudVisionV1p4beta1Position) MarshalJSON() ([]byte, error) {
11340	type NoMethod GoogleCloudVisionV1p4beta1Position
11341	raw := NoMethod(*s)
11342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11343}
11344
11345func (s *GoogleCloudVisionV1p4beta1Position) UnmarshalJSON(data []byte) error {
11346	type NoMethod GoogleCloudVisionV1p4beta1Position
11347	var s1 struct {
11348		X gensupport.JSONFloat64 `json:"x"`
11349		Y gensupport.JSONFloat64 `json:"y"`
11350		Z gensupport.JSONFloat64 `json:"z"`
11351		*NoMethod
11352	}
11353	s1.NoMethod = (*NoMethod)(s)
11354	if err := json.Unmarshal(data, &s1); err != nil {
11355		return err
11356	}
11357	s.X = float64(s1.X)
11358	s.Y = float64(s1.Y)
11359	s.Z = float64(s1.Z)
11360	return nil
11361}
11362
11363// GoogleCloudVisionV1p4beta1Product: A Product contains
11364// ReferenceImages.
11365type GoogleCloudVisionV1p4beta1Product struct {
11366	// Description: User-provided metadata to be stored with this product.
11367	// Must be at most 4096
11368	// characters long.
11369	Description string `json:"description,omitempty"`
11370
11371	// DisplayName: The user-provided name for this Product. Must not be
11372	// empty. Must be at most
11373	// 4096 characters long.
11374	DisplayName string `json:"displayName,omitempty"`
11375
11376	// Name: The resource name of the product.
11377	//
11378	// Format
11379	// is:
11380	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
11381	//
11382	// This field is ignored when creating a product.
11383	Name string `json:"name,omitempty"`
11384
11385	// ProductCategory: The category for the product identified by the
11386	// reference image. This should
11387	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
11388	// categories
11389	// "homegoods", "apparel", and "toys" are still supported, but these
11390	// should
11391	// not be used for new products.
11392	//
11393	// This field is immutable.
11394	ProductCategory string `json:"productCategory,omitempty"`
11395
11396	// ProductLabels: Key-value pairs that can be attached to a product. At
11397	// query time,
11398	// constraints can be specified based on the product_labels.
11399	//
11400	// Note that integer values can be provided as strings, e.g. "1199".
11401	// Only
11402	// strings with integer values can match a range-based restriction which
11403	// is
11404	// to be supported soon.
11405	//
11406	// Multiple values can be assigned to the same key. One product may have
11407	// up to
11408	// 100 product_labels.
11409	ProductLabels []*GoogleCloudVisionV1p4beta1ProductKeyValue `json:"productLabels,omitempty"`
11410
11411	// ForceSendFields is a list of field names (e.g. "Description") to
11412	// unconditionally include in API requests. By default, fields with
11413	// empty values are omitted from API requests. However, any non-pointer,
11414	// non-interface field appearing in ForceSendFields will be sent to the
11415	// server regardless of whether the field is empty or not. This may be
11416	// used to include empty fields in Patch requests.
11417	ForceSendFields []string `json:"-"`
11418
11419	// NullFields is a list of field names (e.g. "Description") to include
11420	// in API requests with the JSON null value. By default, fields with
11421	// empty values are omitted from API requests. However, any field with
11422	// an empty value appearing in NullFields will be sent to the server as
11423	// null. It is an error if a field in this list has a non-empty value.
11424	// This may be used to include null fields in Patch requests.
11425	NullFields []string `json:"-"`
11426}
11427
11428func (s *GoogleCloudVisionV1p4beta1Product) MarshalJSON() ([]byte, error) {
11429	type NoMethod GoogleCloudVisionV1p4beta1Product
11430	raw := NoMethod(*s)
11431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11432}
11433
11434// GoogleCloudVisionV1p4beta1ProductKeyValue: A product label
11435// represented as a key-value pair.
11436type GoogleCloudVisionV1p4beta1ProductKeyValue struct {
11437	// Key: The key of the label attached to the product. Cannot be empty
11438	// and cannot
11439	// exceed 128 bytes.
11440	Key string `json:"key,omitempty"`
11441
11442	// Value: The value of the label attached to the product. Cannot be
11443	// empty and
11444	// cannot exceed 128 bytes.
11445	Value string `json:"value,omitempty"`
11446
11447	// ForceSendFields is a list of field names (e.g. "Key") to
11448	// unconditionally include in API requests. By default, fields with
11449	// empty values are omitted from API requests. However, any non-pointer,
11450	// non-interface field appearing in ForceSendFields will be sent to the
11451	// server regardless of whether the field is empty or not. This may be
11452	// used to include empty fields in Patch requests.
11453	ForceSendFields []string `json:"-"`
11454
11455	// NullFields is a list of field names (e.g. "Key") to include in API
11456	// requests with the JSON null value. By default, fields with empty
11457	// values are omitted from API requests. However, any field with an
11458	// empty value appearing in NullFields will be sent to the server as
11459	// null. It is an error if a field in this list has a non-empty value.
11460	// This may be used to include null fields in Patch requests.
11461	NullFields []string `json:"-"`
11462}
11463
11464func (s *GoogleCloudVisionV1p4beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
11465	type NoMethod GoogleCloudVisionV1p4beta1ProductKeyValue
11466	raw := NoMethod(*s)
11467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11468}
11469
11470// GoogleCloudVisionV1p4beta1ProductSearchResults: Results for a product
11471// search request.
11472type GoogleCloudVisionV1p4beta1ProductSearchResults struct {
11473	// IndexTime: Timestamp of the index which provided these results.
11474	// Products added to the
11475	// product set and products removed from the product set after this time
11476	// are
11477	// not reflected in the current results.
11478	IndexTime string `json:"indexTime,omitempty"`
11479
11480	// ProductGroupedResults: List of results grouped by products detected
11481	// in the query image. Each entry
11482	// corresponds to one bounding polygon in the query image, and contains
11483	// the
11484	// matching products specific to that region. There may be duplicate
11485	// product
11486	// matches in the union of all the per-product results.
11487	ProductGroupedResults []*GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
11488
11489	// Results: List of results, one for each product match.
11490	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11491
11492	// ForceSendFields is a list of field names (e.g. "IndexTime") to
11493	// unconditionally include in API requests. By default, fields with
11494	// empty values are omitted from API requests. However, any non-pointer,
11495	// non-interface field appearing in ForceSendFields will be sent to the
11496	// server regardless of whether the field is empty or not. This may be
11497	// used to include empty fields in Patch requests.
11498	ForceSendFields []string `json:"-"`
11499
11500	// NullFields is a list of field names (e.g. "IndexTime") to include in
11501	// API requests with the JSON null value. By default, fields with empty
11502	// values are omitted from API requests. However, any field with an
11503	// empty value appearing in NullFields will be sent to the server as
11504	// null. It is an error if a field in this list has a non-empty value.
11505	// This may be used to include null fields in Patch requests.
11506	NullFields []string `json:"-"`
11507}
11508
11509func (s *GoogleCloudVisionV1p4beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
11510	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResults
11511	raw := NoMethod(*s)
11512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11513}
11514
11515// GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult:
11516// Information about the products similar to a single product in a
11517// query
11518// image.
11519type GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult struct {
11520	// BoundingPoly: The bounding polygon around the product detected in the
11521	// query image.
11522	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
11523
11524	// Results: List of results, one for each product match.
11525	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11526
11527	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11528	// unconditionally include in API requests. By default, fields with
11529	// empty values are omitted from API requests. However, any non-pointer,
11530	// non-interface field appearing in ForceSendFields will be sent to the
11531	// server regardless of whether the field is empty or not. This may be
11532	// used to include empty fields in Patch requests.
11533	ForceSendFields []string `json:"-"`
11534
11535	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11536	// in API requests with the JSON null value. By default, fields with
11537	// empty values are omitted from API requests. However, any field with
11538	// an empty value appearing in NullFields will be sent to the server as
11539	// null. It is an error if a field in this list has a non-empty value.
11540	// This may be used to include null fields in Patch requests.
11541	NullFields []string `json:"-"`
11542}
11543
11544func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
11545	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult
11546	raw := NoMethod(*s)
11547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11548}
11549
11550// GoogleCloudVisionV1p4beta1ProductSearchResultsResult: Information
11551// about a product.
11552type GoogleCloudVisionV1p4beta1ProductSearchResultsResult struct {
11553	// Image: The resource name of the image from the product that is the
11554	// closest match
11555	// to the query.
11556	Image string `json:"image,omitempty"`
11557
11558	// Product: The Product.
11559	Product *GoogleCloudVisionV1p4beta1Product `json:"product,omitempty"`
11560
11561	// Score: A confidence level on the match, ranging from 0 (no
11562	// confidence) to
11563	// 1 (full confidence).
11564	Score float64 `json:"score,omitempty"`
11565
11566	// ForceSendFields is a list of field names (e.g. "Image") to
11567	// unconditionally include in API requests. By default, fields with
11568	// empty values are omitted from API requests. However, any non-pointer,
11569	// non-interface field appearing in ForceSendFields will be sent to the
11570	// server regardless of whether the field is empty or not. This may be
11571	// used to include empty fields in Patch requests.
11572	ForceSendFields []string `json:"-"`
11573
11574	// NullFields is a list of field names (e.g. "Image") to include in API
11575	// requests with the JSON null value. By default, fields with empty
11576	// values are omitted from API requests. However, any field with an
11577	// empty value appearing in NullFields will be sent to the server as
11578	// null. It is an error if a field in this list has a non-empty value.
11579	// This may be used to include null fields in Patch requests.
11580	NullFields []string `json:"-"`
11581}
11582
11583func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
11584	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11585	raw := NoMethod(*s)
11586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11587}
11588
11589func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
11590	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11591	var s1 struct {
11592		Score gensupport.JSONFloat64 `json:"score"`
11593		*NoMethod
11594	}
11595	s1.NoMethod = (*NoMethod)(s)
11596	if err := json.Unmarshal(data, &s1); err != nil {
11597		return err
11598	}
11599	s.Score = float64(s1.Score)
11600	return nil
11601}
11602
11603// GoogleCloudVisionV1p4beta1Property: A `Property` consists of a
11604// user-supplied name/value pair.
11605type GoogleCloudVisionV1p4beta1Property struct {
11606	// Name: Name of the property.
11607	Name string `json:"name,omitempty"`
11608
11609	// Uint64Value: Value of numeric properties.
11610	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
11611
11612	// Value: Value of the property.
11613	Value string `json:"value,omitempty"`
11614
11615	// ForceSendFields is a list of field names (e.g. "Name") to
11616	// unconditionally include in API requests. By default, fields with
11617	// empty values are omitted from API requests. However, any non-pointer,
11618	// non-interface field appearing in ForceSendFields will be sent to the
11619	// server regardless of whether the field is empty or not. This may be
11620	// used to include empty fields in Patch requests.
11621	ForceSendFields []string `json:"-"`
11622
11623	// NullFields is a list of field names (e.g. "Name") to include in API
11624	// requests with the JSON null value. By default, fields with empty
11625	// values are omitted from API requests. However, any field with an
11626	// empty value appearing in NullFields will be sent to the server as
11627	// null. It is an error if a field in this list has a non-empty value.
11628	// This may be used to include null fields in Patch requests.
11629	NullFields []string `json:"-"`
11630}
11631
11632func (s *GoogleCloudVisionV1p4beta1Property) MarshalJSON() ([]byte, error) {
11633	type NoMethod GoogleCloudVisionV1p4beta1Property
11634	raw := NoMethod(*s)
11635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11636}
11637
11638// GoogleCloudVisionV1p4beta1ReferenceImage: A `ReferenceImage`
11639// represents a product image and its associated metadata,
11640// such as bounding boxes.
11641type GoogleCloudVisionV1p4beta1ReferenceImage struct {
11642	// BoundingPolys: Bounding polygons around the areas of interest in the
11643	// reference image.
11644	// Optional. If this field is empty, the system will try to detect
11645	// regions of
11646	// interest. At most 10 bounding polygons will be used.
11647	//
11648	// The provided shape is converted into a non-rotated rectangle.
11649	// Once
11650	// converted, the small edge of the rectangle must be greater than or
11651	// equal
11652	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
11653	// 1:5
11654	// is not).
11655	BoundingPolys []*GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPolys,omitempty"`
11656
11657	// Name: The resource name of the reference image.
11658	//
11659	// Format
11660	// is:
11661	//
11662	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
11663	// ceImages/IMAGE_ID`.
11664	//
11665	// This field is ignored when creating a reference image.
11666	Name string `json:"name,omitempty"`
11667
11668	// Uri: The Google Cloud Storage URI of the reference image.
11669	//
11670	// The URI must start with `gs://`.
11671	//
11672	// Required.
11673	Uri string `json:"uri,omitempty"`
11674
11675	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
11676	// unconditionally include in API requests. By default, fields with
11677	// empty values are omitted from API requests. However, any non-pointer,
11678	// non-interface field appearing in ForceSendFields will be sent to the
11679	// server regardless of whether the field is empty or not. This may be
11680	// used to include empty fields in Patch requests.
11681	ForceSendFields []string `json:"-"`
11682
11683	// NullFields is a list of field names (e.g. "BoundingPolys") to include
11684	// in API requests with the JSON null value. By default, fields with
11685	// empty values are omitted from API requests. However, any field with
11686	// an empty value appearing in NullFields will be sent to the server as
11687	// null. It is an error if a field in this list has a non-empty value.
11688	// This may be used to include null fields in Patch requests.
11689	NullFields []string `json:"-"`
11690}
11691
11692func (s *GoogleCloudVisionV1p4beta1ReferenceImage) MarshalJSON() ([]byte, error) {
11693	type NoMethod GoogleCloudVisionV1p4beta1ReferenceImage
11694	raw := NoMethod(*s)
11695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11696}
11697
11698// GoogleCloudVisionV1p4beta1SafeSearchAnnotation: Set of features
11699// pertaining to the image, computed by computer vision
11700// methods over safe-search verticals (for example, adult, spoof,
11701// medical,
11702// violence).
11703type GoogleCloudVisionV1p4beta1SafeSearchAnnotation struct {
11704	// Adult: Represents the adult content likelihood for the image. Adult
11705	// content may
11706	// contain elements such as nudity, pornographic images or cartoons,
11707	// or
11708	// sexual activities.
11709	//
11710	// Possible values:
11711	//   "UNKNOWN" - Unknown likelihood.
11712	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
11713	// specified vertical.
11714	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
11715	// vertical.
11716	//   "POSSIBLE" - It is possible that the image belongs to the specified
11717	// vertical.
11718	//   "LIKELY" - It is likely that the image belongs to the specified
11719	// vertical.
11720	//   "VERY_LIKELY" - It is very likely that the image belongs to the
11721	// specified vertical.
11722	Adult string `json:"adult,omitempty"`
11723
11724	// Medical: Likelihood that this is a medical image.
11725	//
11726	// Possible values:
11727	//   "UNKNOWN" - Unknown likelihood.
11728	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
11729	// specified vertical.
11730	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
11731	// vertical.
11732	//   "POSSIBLE" - It is possible that the image belongs to the specified
11733	// vertical.
11734	//   "LIKELY" - It is likely that the image belongs to the specified
11735	// vertical.
11736	//   "VERY_LIKELY" - It is very likely that the image belongs to the
11737	// specified vertical.
11738	Medical string `json:"medical,omitempty"`
11739
11740	// Racy: Likelihood that the request image contains racy content. Racy
11741	// content may
11742	// include (but is not limited to) skimpy or sheer clothing,
11743	// strategically
11744	// covered nudity, lewd or provocative poses, or close-ups of
11745	// sensitive
11746	// body areas.
11747	//
11748	// Possible values:
11749	//   "UNKNOWN" - Unknown likelihood.
11750	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
11751	// specified vertical.
11752	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
11753	// vertical.
11754	//   "POSSIBLE" - It is possible that the image belongs to the specified
11755	// vertical.
11756	//   "LIKELY" - It is likely that the image belongs to the specified
11757	// vertical.
11758	//   "VERY_LIKELY" - It is very likely that the image belongs to the
11759	// specified vertical.
11760	Racy string `json:"racy,omitempty"`
11761
11762	// Spoof: Spoof likelihood. The likelihood that an modification
11763	// was made to the image's canonical version to make it appear
11764	// funny or offensive.
11765	//
11766	// Possible values:
11767	//   "UNKNOWN" - Unknown likelihood.
11768	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
11769	// specified vertical.
11770	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
11771	// vertical.
11772	//   "POSSIBLE" - It is possible that the image belongs to the specified
11773	// vertical.
11774	//   "LIKELY" - It is likely that the image belongs to the specified
11775	// vertical.
11776	//   "VERY_LIKELY" - It is very likely that the image belongs to the
11777	// specified vertical.
11778	Spoof string `json:"spoof,omitempty"`
11779
11780	// Violence: Likelihood that this image contains violent content.
11781	//
11782	// Possible values:
11783	//   "UNKNOWN" - Unknown likelihood.
11784	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
11785	// specified vertical.
11786	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
11787	// vertical.
11788	//   "POSSIBLE" - It is possible that the image belongs to the specified
11789	// vertical.
11790	//   "LIKELY" - It is likely that the image belongs to the specified
11791	// vertical.
11792	//   "VERY_LIKELY" - It is very likely that the image belongs to the
11793	// specified vertical.
11794	Violence string `json:"violence,omitempty"`
11795
11796	// ForceSendFields is a list of field names (e.g. "Adult") to
11797	// unconditionally include in API requests. By default, fields with
11798	// empty values are omitted from API requests. However, any non-pointer,
11799	// non-interface field appearing in ForceSendFields will be sent to the
11800	// server regardless of whether the field is empty or not. This may be
11801	// used to include empty fields in Patch requests.
11802	ForceSendFields []string `json:"-"`
11803
11804	// NullFields is a list of field names (e.g. "Adult") to include in API
11805	// requests with the JSON null value. By default, fields with empty
11806	// values are omitted from API requests. However, any field with an
11807	// empty value appearing in NullFields will be sent to the server as
11808	// null. It is an error if a field in this list has a non-empty value.
11809	// This may be used to include null fields in Patch requests.
11810	NullFields []string `json:"-"`
11811}
11812
11813func (s *GoogleCloudVisionV1p4beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
11814	type NoMethod GoogleCloudVisionV1p4beta1SafeSearchAnnotation
11815	raw := NoMethod(*s)
11816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11817}
11818
11819// GoogleCloudVisionV1p4beta1Symbol: A single symbol representation.
11820type GoogleCloudVisionV1p4beta1Symbol struct {
11821	// BoundingBox: The bounding box for the symbol.
11822	// The vertices are in the order of top-left, top-right,
11823	// bottom-right,
11824	// bottom-left. When a rotation of the bounding box is detected the
11825	// rotation
11826	// is represented as around the top-left corner as defined when the text
11827	// is
11828	// read in the 'natural' orientation.
11829	// For example:
11830	//   * when the text is horizontal it might look like:
11831	//      0----1
11832	//      |    |
11833	//      3----2
11834	//   * when it's rotated 180 degrees around the top-left corner it
11835	// becomes:
11836	//      2----3
11837	//      |    |
11838	//      1----0
11839	//   and the vertice order will still be (0, 1, 2, 3).
11840	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11841
11842	// Confidence: Confidence of the OCR results for the symbol. Range [0,
11843	// 1].
11844	Confidence float64 `json:"confidence,omitempty"`
11845
11846	// Property: Additional information detected for the symbol.
11847	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11848
11849	// Text: The actual UTF-8 representation of the symbol.
11850	Text string `json:"text,omitempty"`
11851
11852	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11853	// unconditionally include in API requests. By default, fields with
11854	// empty values are omitted from API requests. However, any non-pointer,
11855	// non-interface field appearing in ForceSendFields will be sent to the
11856	// server regardless of whether the field is empty or not. This may be
11857	// used to include empty fields in Patch requests.
11858	ForceSendFields []string `json:"-"`
11859
11860	// NullFields is a list of field names (e.g. "BoundingBox") to include
11861	// in API requests with the JSON null value. By default, fields with
11862	// empty values are omitted from API requests. However, any field with
11863	// an empty value appearing in NullFields will be sent to the server as
11864	// null. It is an error if a field in this list has a non-empty value.
11865	// This may be used to include null fields in Patch requests.
11866	NullFields []string `json:"-"`
11867}
11868
11869func (s *GoogleCloudVisionV1p4beta1Symbol) MarshalJSON() ([]byte, error) {
11870	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11871	raw := NoMethod(*s)
11872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11873}
11874
11875func (s *GoogleCloudVisionV1p4beta1Symbol) UnmarshalJSON(data []byte) error {
11876	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11877	var s1 struct {
11878		Confidence gensupport.JSONFloat64 `json:"confidence"`
11879		*NoMethod
11880	}
11881	s1.NoMethod = (*NoMethod)(s)
11882	if err := json.Unmarshal(data, &s1); err != nil {
11883		return err
11884	}
11885	s.Confidence = float64(s1.Confidence)
11886	return nil
11887}
11888
11889// GoogleCloudVisionV1p4beta1TextAnnotation: TextAnnotation contains a
11890// structured representation of OCR extracted text.
11891// The hierarchy of an OCR extracted text structure is like this:
11892//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
11893// Symbol
11894// Each structural component, starting from Page, may further have their
11895// own
11896// properties. Properties describe detected languages, breaks etc..
11897// Please refer
11898// to the TextAnnotation.TextProperty message definition below for
11899// more
11900// detail.
11901type GoogleCloudVisionV1p4beta1TextAnnotation struct {
11902	// Pages: List of pages detected by OCR.
11903	Pages []*GoogleCloudVisionV1p4beta1Page `json:"pages,omitempty"`
11904
11905	// Text: UTF-8 text detected on the pages.
11906	Text string `json:"text,omitempty"`
11907
11908	// ForceSendFields is a list of field names (e.g. "Pages") to
11909	// unconditionally include in API requests. By default, fields with
11910	// empty values are omitted from API requests. However, any non-pointer,
11911	// non-interface field appearing in ForceSendFields will be sent to the
11912	// server regardless of whether the field is empty or not. This may be
11913	// used to include empty fields in Patch requests.
11914	ForceSendFields []string `json:"-"`
11915
11916	// NullFields is a list of field names (e.g. "Pages") to include in API
11917	// requests with the JSON null value. By default, fields with empty
11918	// values are omitted from API requests. However, any field with an
11919	// empty value appearing in NullFields will be sent to the server as
11920	// null. It is an error if a field in this list has a non-empty value.
11921	// This may be used to include null fields in Patch requests.
11922	NullFields []string `json:"-"`
11923}
11924
11925func (s *GoogleCloudVisionV1p4beta1TextAnnotation) MarshalJSON() ([]byte, error) {
11926	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotation
11927	raw := NoMethod(*s)
11928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11929}
11930
11931// GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak: Detected start
11932// or end of a structural component.
11933type GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak struct {
11934	// IsPrefix: True if break prepends the element.
11935	IsPrefix bool `json:"isPrefix,omitempty"`
11936
11937	// Type: Detected break type.
11938	//
11939	// Possible values:
11940	//   "UNKNOWN" - Unknown break label type.
11941	//   "SPACE" - Regular space.
11942	//   "SURE_SPACE" - Sure space (very wide).
11943	//   "EOL_SURE_SPACE" - Line-wrapping break.
11944	//   "HYPHEN" - End-line hyphen that is not present in text; does not
11945	// co-occur with
11946	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
11947	//   "LINE_BREAK" - Line break that ends a paragraph.
11948	Type string `json:"type,omitempty"`
11949
11950	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
11951	// unconditionally include in API requests. By default, fields with
11952	// empty values are omitted from API requests. However, any non-pointer,
11953	// non-interface field appearing in ForceSendFields will be sent to the
11954	// server regardless of whether the field is empty or not. This may be
11955	// used to include empty fields in Patch requests.
11956	ForceSendFields []string `json:"-"`
11957
11958	// NullFields is a list of field names (e.g. "IsPrefix") to include in
11959	// API requests with the JSON null value. By default, fields with empty
11960	// values are omitted from API requests. However, any field with an
11961	// empty value appearing in NullFields will be sent to the server as
11962	// null. It is an error if a field in this list has a non-empty value.
11963	// This may be used to include null fields in Patch requests.
11964	NullFields []string `json:"-"`
11965}
11966
11967func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
11968	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak
11969	raw := NoMethod(*s)
11970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11971}
11972
11973// GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage: Detected
11974// language for a structural component.
11975type GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage struct {
11976	// Confidence: Confidence of detected language. Range [0, 1].
11977	Confidence float64 `json:"confidence,omitempty"`
11978
11979	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11980	// For more
11981	// information,
11982	// see
11983	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11984	LanguageCode string `json:"languageCode,omitempty"`
11985
11986	// ForceSendFields is a list of field names (e.g. "Confidence") to
11987	// unconditionally include in API requests. By default, fields with
11988	// empty values are omitted from API requests. However, any non-pointer,
11989	// non-interface field appearing in ForceSendFields will be sent to the
11990	// server regardless of whether the field is empty or not. This may be
11991	// used to include empty fields in Patch requests.
11992	ForceSendFields []string `json:"-"`
11993
11994	// NullFields is a list of field names (e.g. "Confidence") to include in
11995	// API requests with the JSON null value. By default, fields with empty
11996	// values are omitted from API requests. However, any field with an
11997	// empty value appearing in NullFields will be sent to the server as
11998	// null. It is an error if a field in this list has a non-empty value.
11999	// This may be used to include null fields in Patch requests.
12000	NullFields []string `json:"-"`
12001}
12002
12003func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
12004	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12005	raw := NoMethod(*s)
12006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12007}
12008
12009func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
12010	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12011	var s1 struct {
12012		Confidence gensupport.JSONFloat64 `json:"confidence"`
12013		*NoMethod
12014	}
12015	s1.NoMethod = (*NoMethod)(s)
12016	if err := json.Unmarshal(data, &s1); err != nil {
12017		return err
12018	}
12019	s.Confidence = float64(s1.Confidence)
12020	return nil
12021}
12022
12023// GoogleCloudVisionV1p4beta1TextAnnotationTextProperty: Additional
12024// information detected on the structural component.
12025type GoogleCloudVisionV1p4beta1TextAnnotationTextProperty struct {
12026	// DetectedBreak: Detected start or end of a text segment.
12027	DetectedBreak *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
12028
12029	// DetectedLanguages: A list of detected languages together with
12030	// confidence.
12031	DetectedLanguages []*GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
12032
12033	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
12034	// unconditionally include in API requests. By default, fields with
12035	// empty values are omitted from API requests. However, any non-pointer,
12036	// non-interface field appearing in ForceSendFields will be sent to the
12037	// server regardless of whether the field is empty or not. This may be
12038	// used to include empty fields in Patch requests.
12039	ForceSendFields []string `json:"-"`
12040
12041	// NullFields is a list of field names (e.g. "DetectedBreak") to include
12042	// in API requests with the JSON null value. By default, fields with
12043	// empty values are omitted from API requests. However, any field with
12044	// an empty value appearing in NullFields will be sent to the server as
12045	// null. It is an error if a field in this list has a non-empty value.
12046	// This may be used to include null fields in Patch requests.
12047	NullFields []string `json:"-"`
12048}
12049
12050func (s *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
12051	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationTextProperty
12052	raw := NoMethod(*s)
12053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12054}
12055
12056// GoogleCloudVisionV1p4beta1Vertex: A vertex represents a 2D point in
12057// the image.
12058// NOTE: the vertex coordinates are in the same scale as the original
12059// image.
12060type GoogleCloudVisionV1p4beta1Vertex struct {
12061	// X: X coordinate.
12062	X int64 `json:"x,omitempty"`
12063
12064	// Y: Y coordinate.
12065	Y int64 `json:"y,omitempty"`
12066
12067	// ForceSendFields is a list of field names (e.g. "X") to
12068	// unconditionally include in API requests. By default, fields with
12069	// empty values are omitted from API requests. However, any non-pointer,
12070	// non-interface field appearing in ForceSendFields will be sent to the
12071	// server regardless of whether the field is empty or not. This may be
12072	// used to include empty fields in Patch requests.
12073	ForceSendFields []string `json:"-"`
12074
12075	// NullFields is a list of field names (e.g. "X") to include in API
12076	// requests with the JSON null value. By default, fields with empty
12077	// values are omitted from API requests. However, any field with an
12078	// empty value appearing in NullFields will be sent to the server as
12079	// null. It is an error if a field in this list has a non-empty value.
12080	// This may be used to include null fields in Patch requests.
12081	NullFields []string `json:"-"`
12082}
12083
12084func (s *GoogleCloudVisionV1p4beta1Vertex) MarshalJSON() ([]byte, error) {
12085	type NoMethod GoogleCloudVisionV1p4beta1Vertex
12086	raw := NoMethod(*s)
12087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12088}
12089
12090// GoogleCloudVisionV1p4beta1WebDetection: Relevant information for the
12091// image from the Internet.
12092type GoogleCloudVisionV1p4beta1WebDetection struct {
12093	// BestGuessLabels: The service's best guess as to the topic of the
12094	// request image.
12095	// Inferred from similar images on the open web.
12096	BestGuessLabels []*GoogleCloudVisionV1p4beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
12097
12098	// FullMatchingImages: Fully matching images from the Internet.
12099	// Can include resized copies of the query image.
12100	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12101
12102	// PagesWithMatchingImages: Web pages containing the matching images
12103	// from the Internet.
12104	PagesWithMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
12105
12106	// PartialMatchingImages: Partial matching images from the
12107	// Internet.
12108	// Those images are similar enough to share some key-point features.
12109	// For
12110	// example an original image will likely have partial matching for its
12111	// crops.
12112	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12113
12114	// VisuallySimilarImages: The visually similar image results.
12115	VisuallySimilarImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
12116
12117	// WebEntities: Deduced entities from similar images on the Internet.
12118	WebEntities []*GoogleCloudVisionV1p4beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
12119
12120	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
12121	// unconditionally include in API requests. By default, fields with
12122	// empty values are omitted from API requests. However, any non-pointer,
12123	// non-interface field appearing in ForceSendFields will be sent to the
12124	// server regardless of whether the field is empty or not. This may be
12125	// used to include empty fields in Patch requests.
12126	ForceSendFields []string `json:"-"`
12127
12128	// NullFields is a list of field names (e.g. "BestGuessLabels") to
12129	// include in API requests with the JSON null value. By default, fields
12130	// with empty values are omitted from API requests. However, any field
12131	// with an empty value appearing in NullFields will be sent to the
12132	// server as null. It is an error if a field in this list has a
12133	// non-empty value. This may be used to include null fields in Patch
12134	// requests.
12135	NullFields []string `json:"-"`
12136}
12137
12138func (s *GoogleCloudVisionV1p4beta1WebDetection) MarshalJSON() ([]byte, error) {
12139	type NoMethod GoogleCloudVisionV1p4beta1WebDetection
12140	raw := NoMethod(*s)
12141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12142}
12143
12144// GoogleCloudVisionV1p4beta1WebDetectionWebEntity: Entity deduced from
12145// similar images on the Internet.
12146type GoogleCloudVisionV1p4beta1WebDetectionWebEntity struct {
12147	// Description: Canonical description of the entity, in English.
12148	Description string `json:"description,omitempty"`
12149
12150	// EntityId: Opaque entity ID.
12151	EntityId string `json:"entityId,omitempty"`
12152
12153	// Score: Overall relevancy score for the entity.
12154	// Not normalized and not comparable across different image queries.
12155	Score float64 `json:"score,omitempty"`
12156
12157	// ForceSendFields is a list of field names (e.g. "Description") to
12158	// unconditionally include in API requests. By default, fields with
12159	// empty values are omitted from API requests. However, any non-pointer,
12160	// non-interface field appearing in ForceSendFields will be sent to the
12161	// server regardless of whether the field is empty or not. This may be
12162	// used to include empty fields in Patch requests.
12163	ForceSendFields []string `json:"-"`
12164
12165	// NullFields is a list of field names (e.g. "Description") to include
12166	// in API requests with the JSON null value. By default, fields with
12167	// empty values are omitted from API requests. However, any field with
12168	// an empty value appearing in NullFields will be sent to the server as
12169	// null. It is an error if a field in this list has a non-empty value.
12170	// This may be used to include null fields in Patch requests.
12171	NullFields []string `json:"-"`
12172}
12173
12174func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
12175	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12176	raw := NoMethod(*s)
12177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12178}
12179
12180func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
12181	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12182	var s1 struct {
12183		Score gensupport.JSONFloat64 `json:"score"`
12184		*NoMethod
12185	}
12186	s1.NoMethod = (*NoMethod)(s)
12187	if err := json.Unmarshal(data, &s1); err != nil {
12188		return err
12189	}
12190	s.Score = float64(s1.Score)
12191	return nil
12192}
12193
12194// GoogleCloudVisionV1p4beta1WebDetectionWebImage: Metadata for online
12195// images.
12196type GoogleCloudVisionV1p4beta1WebDetectionWebImage struct {
12197	// Score: (Deprecated) Overall relevancy score for the image.
12198	Score float64 `json:"score,omitempty"`
12199
12200	// Url: The result image URL.
12201	Url string `json:"url,omitempty"`
12202
12203	// ForceSendFields is a list of field names (e.g. "Score") to
12204	// unconditionally include in API requests. By default, fields with
12205	// empty values are omitted from API requests. However, any non-pointer,
12206	// non-interface field appearing in ForceSendFields will be sent to the
12207	// server regardless of whether the field is empty or not. This may be
12208	// used to include empty fields in Patch requests.
12209	ForceSendFields []string `json:"-"`
12210
12211	// NullFields is a list of field names (e.g. "Score") to include in API
12212	// requests with the JSON null value. By default, fields with empty
12213	// values are omitted from API requests. However, any field with an
12214	// empty value appearing in NullFields will be sent to the server as
12215	// null. It is an error if a field in this list has a non-empty value.
12216	// This may be used to include null fields in Patch requests.
12217	NullFields []string `json:"-"`
12218}
12219
12220func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
12221	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12222	raw := NoMethod(*s)
12223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12224}
12225
12226func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
12227	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12228	var s1 struct {
12229		Score gensupport.JSONFloat64 `json:"score"`
12230		*NoMethod
12231	}
12232	s1.NoMethod = (*NoMethod)(s)
12233	if err := json.Unmarshal(data, &s1); err != nil {
12234		return err
12235	}
12236	s.Score = float64(s1.Score)
12237	return nil
12238}
12239
12240// GoogleCloudVisionV1p4beta1WebDetectionWebLabel: Label to provide
12241// extra metadata for the web detection.
12242type GoogleCloudVisionV1p4beta1WebDetectionWebLabel struct {
12243	// Label: Label for extra metadata.
12244	Label string `json:"label,omitempty"`
12245
12246	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
12247	// or "sr-Latn".
12248	// For more information,
12249	// see
12250	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12251	LanguageCode string `json:"languageCode,omitempty"`
12252
12253	// ForceSendFields is a list of field names (e.g. "Label") to
12254	// unconditionally include in API requests. By default, fields with
12255	// empty values are omitted from API requests. However, any non-pointer,
12256	// non-interface field appearing in ForceSendFields will be sent to the
12257	// server regardless of whether the field is empty or not. This may be
12258	// used to include empty fields in Patch requests.
12259	ForceSendFields []string `json:"-"`
12260
12261	// NullFields is a list of field names (e.g. "Label") to include in API
12262	// requests with the JSON null value. By default, fields with empty
12263	// values are omitted from API requests. However, any field with an
12264	// empty value appearing in NullFields will be sent to the server as
12265	// null. It is an error if a field in this list has a non-empty value.
12266	// This may be used to include null fields in Patch requests.
12267	NullFields []string `json:"-"`
12268}
12269
12270func (s *GoogleCloudVisionV1p4beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
12271	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebLabel
12272	raw := NoMethod(*s)
12273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12274}
12275
12276// GoogleCloudVisionV1p4beta1WebDetectionWebPage: Metadata for web
12277// pages.
12278type GoogleCloudVisionV1p4beta1WebDetectionWebPage struct {
12279	// FullMatchingImages: Fully matching images on the page.
12280	// Can include resized copies of the query image.
12281	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12282
12283	// PageTitle: Title for the web page, may contain HTML markups.
12284	PageTitle string `json:"pageTitle,omitempty"`
12285
12286	// PartialMatchingImages: Partial matching images on the page.
12287	// Those images are similar enough to share some key-point features.
12288	// For
12289	// example an original image will likely have partial matching for
12290	// its
12291	// crops.
12292	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12293
12294	// Score: (Deprecated) Overall relevancy score for the web page.
12295	Score float64 `json:"score,omitempty"`
12296
12297	// Url: The result web page URL.
12298	Url string `json:"url,omitempty"`
12299
12300	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
12301	// to unconditionally include in API requests. By default, fields with
12302	// empty values are omitted from API requests. However, any non-pointer,
12303	// non-interface field appearing in ForceSendFields will be sent to the
12304	// server regardless of whether the field is empty or not. This may be
12305	// used to include empty fields in Patch requests.
12306	ForceSendFields []string `json:"-"`
12307
12308	// NullFields is a list of field names (e.g. "FullMatchingImages") to
12309	// include in API requests with the JSON null value. By default, fields
12310	// with empty values are omitted from API requests. However, any field
12311	// with an empty value appearing in NullFields will be sent to the
12312	// server as null. It is an error if a field in this list has a
12313	// non-empty value. This may be used to include null fields in Patch
12314	// requests.
12315	NullFields []string `json:"-"`
12316}
12317
12318func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
12319	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12320	raw := NoMethod(*s)
12321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12322}
12323
12324func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
12325	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12326	var s1 struct {
12327		Score gensupport.JSONFloat64 `json:"score"`
12328		*NoMethod
12329	}
12330	s1.NoMethod = (*NoMethod)(s)
12331	if err := json.Unmarshal(data, &s1); err != nil {
12332		return err
12333	}
12334	s.Score = float64(s1.Score)
12335	return nil
12336}
12337
12338// GoogleCloudVisionV1p4beta1Word: A word representation.
12339type GoogleCloudVisionV1p4beta1Word struct {
12340	// BoundingBox: The bounding box for the word.
12341	// The vertices are in the order of top-left, top-right,
12342	// bottom-right,
12343	// bottom-left. When a rotation of the bounding box is detected the
12344	// rotation
12345	// is represented as around the top-left corner as defined when the text
12346	// is
12347	// read in the 'natural' orientation.
12348	// For example:
12349	//   * when the text is horizontal it might look like:
12350	//      0----1
12351	//      |    |
12352	//      3----2
12353	//   * when it's rotated 180 degrees around the top-left corner it
12354	// becomes:
12355	//      2----3
12356	//      |    |
12357	//      1----0
12358	//   and the vertex order will still be (0, 1, 2, 3).
12359	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
12360
12361	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
12362	Confidence float64 `json:"confidence,omitempty"`
12363
12364	// Property: Additional information detected for the word.
12365	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
12366
12367	// Symbols: List of symbols in the word.
12368	// The order of the symbols follows the natural reading order.
12369	Symbols []*GoogleCloudVisionV1p4beta1Symbol `json:"symbols,omitempty"`
12370
12371	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12372	// unconditionally include in API requests. By default, fields with
12373	// empty values are omitted from API requests. However, any non-pointer,
12374	// non-interface field appearing in ForceSendFields will be sent to the
12375	// server regardless of whether the field is empty or not. This may be
12376	// used to include empty fields in Patch requests.
12377	ForceSendFields []string `json:"-"`
12378
12379	// NullFields is a list of field names (e.g. "BoundingBox") to include
12380	// in API requests with the JSON null value. By default, fields with
12381	// empty values are omitted from API requests. However, any field with
12382	// an empty value appearing in NullFields will be sent to the server as
12383	// null. It is an error if a field in this list has a non-empty value.
12384	// This may be used to include null fields in Patch requests.
12385	NullFields []string `json:"-"`
12386}
12387
12388func (s *GoogleCloudVisionV1p4beta1Word) MarshalJSON() ([]byte, error) {
12389	type NoMethod GoogleCloudVisionV1p4beta1Word
12390	raw := NoMethod(*s)
12391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12392}
12393
12394func (s *GoogleCloudVisionV1p4beta1Word) UnmarshalJSON(data []byte) error {
12395	type NoMethod GoogleCloudVisionV1p4beta1Word
12396	var s1 struct {
12397		Confidence gensupport.JSONFloat64 `json:"confidence"`
12398		*NoMethod
12399	}
12400	s1.NoMethod = (*NoMethod)(s)
12401	if err := json.Unmarshal(data, &s1); err != nil {
12402		return err
12403	}
12404	s.Confidence = float64(s1.Confidence)
12405	return nil
12406}
12407
12408// GoogleCloudVisionV1p5beta1AnnotateFileResponse: Response to a single
12409// file annotation request. A file may contain one or more
12410// images, which individually have their own responses.
12411type GoogleCloudVisionV1p5beta1AnnotateFileResponse struct {
12412	// InputConfig: Information about the file for which this response is
12413	// generated.
12414	InputConfig *GoogleCloudVisionV1p5beta1InputConfig `json:"inputConfig,omitempty"`
12415
12416	// Responses: Individual responses to images found within the file.
12417	Responses []*GoogleCloudVisionV1p5beta1AnnotateImageResponse `json:"responses,omitempty"`
12418
12419	// TotalPages: This field gives the total number of pages in the file.
12420	TotalPages int64 `json:"totalPages,omitempty"`
12421
12422	// ForceSendFields is a list of field names (e.g. "InputConfig") to
12423	// unconditionally include in API requests. By default, fields with
12424	// empty values are omitted from API requests. However, any non-pointer,
12425	// non-interface field appearing in ForceSendFields will be sent to the
12426	// server regardless of whether the field is empty or not. This may be
12427	// used to include empty fields in Patch requests.
12428	ForceSendFields []string `json:"-"`
12429
12430	// NullFields is a list of field names (e.g. "InputConfig") to include
12431	// in API requests with the JSON null value. By default, fields with
12432	// empty values are omitted from API requests. However, any field with
12433	// an empty value appearing in NullFields will be sent to the server as
12434	// null. It is an error if a field in this list has a non-empty value.
12435	// This may be used to include null fields in Patch requests.
12436	NullFields []string `json:"-"`
12437}
12438
12439func (s *GoogleCloudVisionV1p5beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
12440	type NoMethod GoogleCloudVisionV1p5beta1AnnotateFileResponse
12441	raw := NoMethod(*s)
12442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12443}
12444
12445// GoogleCloudVisionV1p5beta1AnnotateImageResponse: Response to an image
12446// annotation request.
12447type GoogleCloudVisionV1p5beta1AnnotateImageResponse struct {
12448	// Context: If present, contextual information is needed to understand
12449	// where this image
12450	// comes from.
12451	Context *GoogleCloudVisionV1p5beta1ImageAnnotationContext `json:"context,omitempty"`
12452
12453	// CropHintsAnnotation: If present, crop hints have completed
12454	// successfully.
12455	CropHintsAnnotation *GoogleCloudVisionV1p5beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
12456
12457	// Error: If set, represents the error message for the operation.
12458	// Note that filled-in image annotations are guaranteed to be
12459	// correct, even when `error` is set.
12460	Error *Status `json:"error,omitempty"`
12461
12462	// FaceAnnotations: If present, face detection has completed
12463	// successfully.
12464	FaceAnnotations []*GoogleCloudVisionV1p5beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
12465
12466	// FullTextAnnotation: If present, text (OCR) detection or document
12467	// (OCR) text detection has
12468	// completed successfully.
12469	// This annotation provides the structural hierarchy for the OCR
12470	// detected
12471	// text.
12472	FullTextAnnotation *GoogleCloudVisionV1p5beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
12473
12474	// ImagePropertiesAnnotation: If present, image properties were
12475	// extracted successfully.
12476	ImagePropertiesAnnotation *GoogleCloudVisionV1p5beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
12477
12478	// LabelAnnotations: If present, label detection has completed
12479	// successfully.
12480	LabelAnnotations []*GoogleCloudVisionV1p5beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
12481
12482	// LandmarkAnnotations: If present, landmark detection has completed
12483	// successfully.
12484	LandmarkAnnotations []*GoogleCloudVisionV1p5beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
12485
12486	// LocalizedObjectAnnotations: If present, localized object detection
12487	// has completed successfully.
12488	// This will be sorted descending by confidence score.
12489	LocalizedObjectAnnotations []*GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
12490
12491	// LogoAnnotations: If present, logo detection has completed
12492	// successfully.
12493	LogoAnnotations []*GoogleCloudVisionV1p5beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
12494
12495	// ProductSearchResults: If present, product search has completed
12496	// successfully.
12497	ProductSearchResults *GoogleCloudVisionV1p5beta1ProductSearchResults `json:"productSearchResults,omitempty"`
12498
12499	// SafeSearchAnnotation: If present, safe-search annotation has
12500	// completed successfully.
12501	SafeSearchAnnotation *GoogleCloudVisionV1p5beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
12502
12503	// TextAnnotations: If present, text (OCR) detection has completed
12504	// successfully.
12505	TextAnnotations []*GoogleCloudVisionV1p5beta1EntityAnnotation `json:"textAnnotations,omitempty"`
12506
12507	// WebDetection: If present, web detection has completed successfully.
12508	WebDetection *GoogleCloudVisionV1p5beta1WebDetection `json:"webDetection,omitempty"`
12509
12510	// ForceSendFields is a list of field names (e.g. "Context") to
12511	// unconditionally include in API requests. By default, fields with
12512	// empty values are omitted from API requests. However, any non-pointer,
12513	// non-interface field appearing in ForceSendFields will be sent to the
12514	// server regardless of whether the field is empty or not. This may be
12515	// used to include empty fields in Patch requests.
12516	ForceSendFields []string `json:"-"`
12517
12518	// NullFields is a list of field names (e.g. "Context") to include in
12519	// API requests with the JSON null value. By default, fields with empty
12520	// values are omitted from API requests. However, any field with an
12521	// empty value appearing in NullFields will be sent to the server as
12522	// null. It is an error if a field in this list has a non-empty value.
12523	// This may be used to include null fields in Patch requests.
12524	NullFields []string `json:"-"`
12525}
12526
12527func (s *GoogleCloudVisionV1p5beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
12528	type NoMethod GoogleCloudVisionV1p5beta1AnnotateImageResponse
12529	raw := NoMethod(*s)
12530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12531}
12532
12533// GoogleCloudVisionV1p5beta1AsyncAnnotateFileResponse: The response for
12534// a single offline file annotation request.
12535type GoogleCloudVisionV1p5beta1AsyncAnnotateFileResponse struct {
12536	// OutputConfig: The output location and metadata from
12537	// AsyncAnnotateFileRequest.
12538	OutputConfig *GoogleCloudVisionV1p5beta1OutputConfig `json:"outputConfig,omitempty"`
12539
12540	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
12541	// unconditionally include in API requests. By default, fields with
12542	// empty values are omitted from API requests. However, any non-pointer,
12543	// non-interface field appearing in ForceSendFields will be sent to the
12544	// server regardless of whether the field is empty or not. This may be
12545	// used to include empty fields in Patch requests.
12546	ForceSendFields []string `json:"-"`
12547
12548	// NullFields is a list of field names (e.g. "OutputConfig") to include
12549	// in API requests with the JSON null value. By default, fields with
12550	// empty values are omitted from API requests. However, any field with
12551	// an empty value appearing in NullFields will be sent to the server as
12552	// null. It is an error if a field in this list has a non-empty value.
12553	// This may be used to include null fields in Patch requests.
12554	NullFields []string `json:"-"`
12555}
12556
12557func (s *GoogleCloudVisionV1p5beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
12558	type NoMethod GoogleCloudVisionV1p5beta1AsyncAnnotateFileResponse
12559	raw := NoMethod(*s)
12560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12561}
12562
12563// GoogleCloudVisionV1p5beta1AsyncBatchAnnotateFilesResponse: Response
12564// to an async batch file annotation request.
12565type GoogleCloudVisionV1p5beta1AsyncBatchAnnotateFilesResponse struct {
12566	// Responses: The list of file annotation responses, one for each
12567	// request in
12568	// AsyncBatchAnnotateFilesRequest.
12569	Responses []*GoogleCloudVisionV1p5beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
12570
12571	// ForceSendFields is a list of field names (e.g. "Responses") to
12572	// unconditionally include in API requests. By default, fields with
12573	// empty values are omitted from API requests. However, any non-pointer,
12574	// non-interface field appearing in ForceSendFields will be sent to the
12575	// server regardless of whether the field is empty or not. This may be
12576	// used to include empty fields in Patch requests.
12577	ForceSendFields []string `json:"-"`
12578
12579	// NullFields is a list of field names (e.g. "Responses") to include in
12580	// API requests with the JSON null value. By default, fields with empty
12581	// values are omitted from API requests. However, any field with an
12582	// empty value appearing in NullFields will be sent to the server as
12583	// null. It is an error if a field in this list has a non-empty value.
12584	// This may be used to include null fields in Patch requests.
12585	NullFields []string `json:"-"`
12586}
12587
12588func (s *GoogleCloudVisionV1p5beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
12589	type NoMethod GoogleCloudVisionV1p5beta1AsyncBatchAnnotateFilesResponse
12590	raw := NoMethod(*s)
12591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12592}
12593
12594// GoogleCloudVisionV1p5beta1AsyncBatchAnnotateImagesResponse: Response
12595// to an async batch image annotation request.
12596type GoogleCloudVisionV1p5beta1AsyncBatchAnnotateImagesResponse struct {
12597	// OutputConfig: The output location and metadata from
12598	// AsyncBatchAnnotateImagesRequest.
12599	OutputConfig *GoogleCloudVisionV1p5beta1OutputConfig `json:"outputConfig,omitempty"`
12600
12601	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
12602	// unconditionally include in API requests. By default, fields with
12603	// empty values are omitted from API requests. However, any non-pointer,
12604	// non-interface field appearing in ForceSendFields will be sent to the
12605	// server regardless of whether the field is empty or not. This may be
12606	// used to include empty fields in Patch requests.
12607	ForceSendFields []string `json:"-"`
12608
12609	// NullFields is a list of field names (e.g. "OutputConfig") to include
12610	// in API requests with the JSON null value. By default, fields with
12611	// empty values are omitted from API requests. However, any field with
12612	// an empty value appearing in NullFields will be sent to the server as
12613	// null. It is an error if a field in this list has a non-empty value.
12614	// This may be used to include null fields in Patch requests.
12615	NullFields []string `json:"-"`
12616}
12617
12618func (s *GoogleCloudVisionV1p5beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
12619	type NoMethod GoogleCloudVisionV1p5beta1AsyncBatchAnnotateImagesResponse
12620	raw := NoMethod(*s)
12621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12622}
12623
12624// GoogleCloudVisionV1p5beta1BatchAnnotateFilesResponse: A list of file
12625// annotation responses.
12626type GoogleCloudVisionV1p5beta1BatchAnnotateFilesResponse struct {
12627	// Responses: The list of file annotation responses, each response
12628	// corresponding to each
12629	// AnnotateFileRequest in BatchAnnotateFilesRequest.
12630	Responses []*GoogleCloudVisionV1p5beta1AnnotateFileResponse `json:"responses,omitempty"`
12631
12632	// ForceSendFields is a list of field names (e.g. "Responses") to
12633	// unconditionally include in API requests. By default, fields with
12634	// empty values are omitted from API requests. However, any non-pointer,
12635	// non-interface field appearing in ForceSendFields will be sent to the
12636	// server regardless of whether the field is empty or not. This may be
12637	// used to include empty fields in Patch requests.
12638	ForceSendFields []string `json:"-"`
12639
12640	// NullFields is a list of field names (e.g. "Responses") to include in
12641	// API requests with the JSON null value. By default, fields with empty
12642	// values are omitted from API requests. However, any field with an
12643	// empty value appearing in NullFields will be sent to the server as
12644	// null. It is an error if a field in this list has a non-empty value.
12645	// This may be used to include null fields in Patch requests.
12646	NullFields []string `json:"-"`
12647}
12648
12649func (s *GoogleCloudVisionV1p5beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
12650	type NoMethod GoogleCloudVisionV1p5beta1BatchAnnotateFilesResponse
12651	raw := NoMethod(*s)
12652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12653}
12654
12655// GoogleCloudVisionV1p5beta1BatchOperationMetadata: Metadata for the
12656// batch operations such as the current state.
12657//
12658// This is included in the `metadata` field of the `Operation` returned
12659// by the
12660// `GetOperation` call of the `google::longrunning::Operations` service.
12661type GoogleCloudVisionV1p5beta1BatchOperationMetadata struct {
12662	// EndTime: The time when the batch request is finished
12663	// and
12664	// google.longrunning.Operation.done is set to true.
12665	EndTime string `json:"endTime,omitempty"`
12666
12667	// State: The current state of the batch operation.
12668	//
12669	// Possible values:
12670	//   "STATE_UNSPECIFIED" - Invalid.
12671	//   "PROCESSING" - Request is actively being processed.
12672	//   "SUCCESSFUL" - The request is done and at least one item has been
12673	// successfully
12674	// processed.
12675	//   "FAILED" - The request is done and no item has been successfully
12676	// processed.
12677	//   "CANCELLED" - The request is done after the
12678	// longrunning.Operations.CancelOperation has
12679	// been called by the user.  Any records that were processed before
12680	// the
12681	// cancel command are output as specified in the request.
12682	State string `json:"state,omitempty"`
12683
12684	// SubmitTime: The time when the batch request was submitted to the
12685	// server.
12686	SubmitTime string `json:"submitTime,omitempty"`
12687
12688	// ForceSendFields is a list of field names (e.g. "EndTime") to
12689	// unconditionally include in API requests. By default, fields with
12690	// empty values are omitted from API requests. However, any non-pointer,
12691	// non-interface field appearing in ForceSendFields will be sent to the
12692	// server regardless of whether the field is empty or not. This may be
12693	// used to include empty fields in Patch requests.
12694	ForceSendFields []string `json:"-"`
12695
12696	// NullFields is a list of field names (e.g. "EndTime") to include in
12697	// API requests with the JSON null value. By default, fields with empty
12698	// values are omitted from API requests. However, any field with an
12699	// empty value appearing in NullFields will be sent to the server as
12700	// null. It is an error if a field in this list has a non-empty value.
12701	// This may be used to include null fields in Patch requests.
12702	NullFields []string `json:"-"`
12703}
12704
12705func (s *GoogleCloudVisionV1p5beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
12706	type NoMethod GoogleCloudVisionV1p5beta1BatchOperationMetadata
12707	raw := NoMethod(*s)
12708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12709}
12710
12711// GoogleCloudVisionV1p5beta1Block: Logical element on the page.
12712type GoogleCloudVisionV1p5beta1Block struct {
12713	// BlockType: Detected block type (text, image etc) for this block.
12714	//
12715	// Possible values:
12716	//   "UNKNOWN" - Unknown block type.
12717	//   "TEXT" - Regular text block.
12718	//   "TABLE" - Table block.
12719	//   "PICTURE" - Image block.
12720	//   "RULER" - Horizontal/vertical line box.
12721	//   "BARCODE" - Barcode block.
12722	//   "KEY_VALUE_PAIR" - A key-value pair block.
12723	BlockType string `json:"blockType,omitempty"`
12724
12725	// BoundingBox: The bounding box for the block.
12726	// The vertices are in the order of top-left, top-right,
12727	// bottom-right,
12728	// bottom-left. When a rotation of the bounding box is detected the
12729	// rotation
12730	// is represented as around the top-left corner as defined when the text
12731	// is
12732	// read in the 'natural' orientation.
12733	// For example:
12734	//
12735	// * when the text is horizontal it might look like:
12736	//
12737	//         0----1
12738	//         |    |
12739	//         3----2
12740	//
12741	// * when it's rotated 180 degrees around the top-left corner it
12742	// becomes:
12743	//
12744	//         2----3
12745	//         |    |
12746	//         1----0
12747	//
12748	//   and the vertex order will still be (0, 1, 2, 3).
12749	BoundingBox *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingBox,omitempty"`
12750
12751	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
12752	Confidence float64 `json:"confidence,omitempty"`
12753
12754	// KeyValuePair: Detected pair for KEY_VALUE_PAIR block_type. This
12755	// detection can be turned
12756	// off by explicitly setting desired fields
12757	// in
12758	// DocumentParsingParams.block_filter.
12759	KeyValuePair *GoogleCloudVisionV1p5beta1KeyValuePair `json:"keyValuePair,omitempty"`
12760
12761	// MergedText: All UTF-8 text detected in this block. This field is by
12762	// default not
12763	// returned unless specified in TextDetectionParams.block_filter
12764	// or
12765	// DocumentParsingParams.block_filter.
12766	MergedText string `json:"mergedText,omitempty"`
12767
12768	// Paragraphs: List of paragraphs in this block (if this blocks is of
12769	// type text).
12770	Paragraphs []*GoogleCloudVisionV1p5beta1Paragraph `json:"paragraphs,omitempty"`
12771
12772	// Property: Additional information detected for the block.
12773	Property *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty `json:"property,omitempty"`
12774
12775	// Table: Detected table for TABLE block_type. This detection can be
12776	// turned off by
12777	// explicitly setting desired fields in
12778	// DocumentParsingParams.block_filter.
12779	Table *GoogleCloudVisionV1p5beta1Table `json:"table,omitempty"`
12780
12781	// ForceSendFields is a list of field names (e.g. "BlockType") to
12782	// unconditionally include in API requests. By default, fields with
12783	// empty values are omitted from API requests. However, any non-pointer,
12784	// non-interface field appearing in ForceSendFields will be sent to the
12785	// server regardless of whether the field is empty or not. This may be
12786	// used to include empty fields in Patch requests.
12787	ForceSendFields []string `json:"-"`
12788
12789	// NullFields is a list of field names (e.g. "BlockType") to include in
12790	// API requests with the JSON null value. By default, fields with empty
12791	// values are omitted from API requests. However, any field with an
12792	// empty value appearing in NullFields will be sent to the server as
12793	// null. It is an error if a field in this list has a non-empty value.
12794	// This may be used to include null fields in Patch requests.
12795	NullFields []string `json:"-"`
12796}
12797
12798func (s *GoogleCloudVisionV1p5beta1Block) MarshalJSON() ([]byte, error) {
12799	type NoMethod GoogleCloudVisionV1p5beta1Block
12800	raw := NoMethod(*s)
12801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12802}
12803
12804func (s *GoogleCloudVisionV1p5beta1Block) UnmarshalJSON(data []byte) error {
12805	type NoMethod GoogleCloudVisionV1p5beta1Block
12806	var s1 struct {
12807		Confidence gensupport.JSONFloat64 `json:"confidence"`
12808		*NoMethod
12809	}
12810	s1.NoMethod = (*NoMethod)(s)
12811	if err := json.Unmarshal(data, &s1); err != nil {
12812		return err
12813	}
12814	s.Confidence = float64(s1.Confidence)
12815	return nil
12816}
12817
12818// GoogleCloudVisionV1p5beta1BoundingPoly: A bounding polygon for the
12819// detected image annotation.
12820type GoogleCloudVisionV1p5beta1BoundingPoly struct {
12821	// NormalizedVertices: The bounding polygon normalized vertices.
12822	NormalizedVertices []*GoogleCloudVisionV1p5beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
12823
12824	// Vertices: The bounding polygon vertices.
12825	Vertices []*GoogleCloudVisionV1p5beta1Vertex `json:"vertices,omitempty"`
12826
12827	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
12828	// to unconditionally include in API requests. By default, fields with
12829	// empty values are omitted from API requests. However, any non-pointer,
12830	// non-interface field appearing in ForceSendFields will be sent to the
12831	// server regardless of whether the field is empty or not. This may be
12832	// used to include empty fields in Patch requests.
12833	ForceSendFields []string `json:"-"`
12834
12835	// NullFields is a list of field names (e.g. "NormalizedVertices") to
12836	// include in API requests with the JSON null value. By default, fields
12837	// with empty values are omitted from API requests. However, any field
12838	// with an empty value appearing in NullFields will be sent to the
12839	// server as null. It is an error if a field in this list has a
12840	// non-empty value. This may be used to include null fields in Patch
12841	// requests.
12842	NullFields []string `json:"-"`
12843}
12844
12845func (s *GoogleCloudVisionV1p5beta1BoundingPoly) MarshalJSON() ([]byte, error) {
12846	type NoMethod GoogleCloudVisionV1p5beta1BoundingPoly
12847	raw := NoMethod(*s)
12848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12849}
12850
12851// GoogleCloudVisionV1p5beta1ColorInfo: Color information consists of
12852// RGB channels, score, and the fraction of
12853// the image that the color occupies in the image.
12854type GoogleCloudVisionV1p5beta1ColorInfo struct {
12855	// Color: RGB components of the color.
12856	Color *Color `json:"color,omitempty"`
12857
12858	// PixelFraction: The fraction of pixels the color occupies in the
12859	// image.
12860	// Value in range [0, 1].
12861	PixelFraction float64 `json:"pixelFraction,omitempty"`
12862
12863	// Score: Image-specific score for this color. Value in range [0, 1].
12864	Score float64 `json:"score,omitempty"`
12865
12866	// ForceSendFields is a list of field names (e.g. "Color") to
12867	// unconditionally include in API requests. By default, fields with
12868	// empty values are omitted from API requests. However, any non-pointer,
12869	// non-interface field appearing in ForceSendFields will be sent to the
12870	// server regardless of whether the field is empty or not. This may be
12871	// used to include empty fields in Patch requests.
12872	ForceSendFields []string `json:"-"`
12873
12874	// NullFields is a list of field names (e.g. "Color") to include in API
12875	// requests with the JSON null value. By default, fields with empty
12876	// values are omitted from API requests. However, any field with an
12877	// empty value appearing in NullFields will be sent to the server as
12878	// null. It is an error if a field in this list has a non-empty value.
12879	// This may be used to include null fields in Patch requests.
12880	NullFields []string `json:"-"`
12881}
12882
12883func (s *GoogleCloudVisionV1p5beta1ColorInfo) MarshalJSON() ([]byte, error) {
12884	type NoMethod GoogleCloudVisionV1p5beta1ColorInfo
12885	raw := NoMethod(*s)
12886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12887}
12888
12889func (s *GoogleCloudVisionV1p5beta1ColorInfo) UnmarshalJSON(data []byte) error {
12890	type NoMethod GoogleCloudVisionV1p5beta1ColorInfo
12891	var s1 struct {
12892		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
12893		Score         gensupport.JSONFloat64 `json:"score"`
12894		*NoMethod
12895	}
12896	s1.NoMethod = (*NoMethod)(s)
12897	if err := json.Unmarshal(data, &s1); err != nil {
12898		return err
12899	}
12900	s.PixelFraction = float64(s1.PixelFraction)
12901	s.Score = float64(s1.Score)
12902	return nil
12903}
12904
12905// GoogleCloudVisionV1p5beta1CropHint: Single crop hint that is used to
12906// generate a new crop when serving an image.
12907type GoogleCloudVisionV1p5beta1CropHint struct {
12908	// BoundingPoly: The bounding polygon for the crop region. The
12909	// coordinates of the bounding
12910	// box are in the original image's scale.
12911	BoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPoly,omitempty"`
12912
12913	// Confidence: Confidence of this being a salient region.  Range [0, 1].
12914	Confidence float64 `json:"confidence,omitempty"`
12915
12916	// ImportanceFraction: Fraction of importance of this salient region
12917	// with respect to the original
12918	// image.
12919	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
12920
12921	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12922	// unconditionally include in API requests. By default, fields with
12923	// empty values are omitted from API requests. However, any non-pointer,
12924	// non-interface field appearing in ForceSendFields will be sent to the
12925	// server regardless of whether the field is empty or not. This may be
12926	// used to include empty fields in Patch requests.
12927	ForceSendFields []string `json:"-"`
12928
12929	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12930	// in API requests with the JSON null value. By default, fields with
12931	// empty values are omitted from API requests. However, any field with
12932	// an empty value appearing in NullFields will be sent to the server as
12933	// null. It is an error if a field in this list has a non-empty value.
12934	// This may be used to include null fields in Patch requests.
12935	NullFields []string `json:"-"`
12936}
12937
12938func (s *GoogleCloudVisionV1p5beta1CropHint) MarshalJSON() ([]byte, error) {
12939	type NoMethod GoogleCloudVisionV1p5beta1CropHint
12940	raw := NoMethod(*s)
12941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12942}
12943
12944func (s *GoogleCloudVisionV1p5beta1CropHint) UnmarshalJSON(data []byte) error {
12945	type NoMethod GoogleCloudVisionV1p5beta1CropHint
12946	var s1 struct {
12947		Confidence         gensupport.JSONFloat64 `json:"confidence"`
12948		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
12949		*NoMethod
12950	}
12951	s1.NoMethod = (*NoMethod)(s)
12952	if err := json.Unmarshal(data, &s1); err != nil {
12953		return err
12954	}
12955	s.Confidence = float64(s1.Confidence)
12956	s.ImportanceFraction = float64(s1.ImportanceFraction)
12957	return nil
12958}
12959
12960// GoogleCloudVisionV1p5beta1CropHintsAnnotation: Set of crop hints that
12961// are used to generate new crops when serving images.
12962type GoogleCloudVisionV1p5beta1CropHintsAnnotation struct {
12963	// CropHints: Crop hint results.
12964	CropHints []*GoogleCloudVisionV1p5beta1CropHint `json:"cropHints,omitempty"`
12965
12966	// ForceSendFields is a list of field names (e.g. "CropHints") to
12967	// unconditionally include in API requests. By default, fields with
12968	// empty values are omitted from API requests. However, any non-pointer,
12969	// non-interface field appearing in ForceSendFields will be sent to the
12970	// server regardless of whether the field is empty or not. This may be
12971	// used to include empty fields in Patch requests.
12972	ForceSendFields []string `json:"-"`
12973
12974	// NullFields is a list of field names (e.g. "CropHints") to include in
12975	// API requests with the JSON null value. By default, fields with empty
12976	// values are omitted from API requests. However, any field with an
12977	// empty value appearing in NullFields will be sent to the server as
12978	// null. It is an error if a field in this list has a non-empty value.
12979	// This may be used to include null fields in Patch requests.
12980	NullFields []string `json:"-"`
12981}
12982
12983func (s *GoogleCloudVisionV1p5beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
12984	type NoMethod GoogleCloudVisionV1p5beta1CropHintsAnnotation
12985	raw := NoMethod(*s)
12986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12987}
12988
12989// GoogleCloudVisionV1p5beta1DominantColorsAnnotation: Set of dominant
12990// colors and their corresponding scores.
12991type GoogleCloudVisionV1p5beta1DominantColorsAnnotation struct {
12992	// Colors: RGB color values with their score and pixel fraction.
12993	Colors []*GoogleCloudVisionV1p5beta1ColorInfo `json:"colors,omitempty"`
12994
12995	// ForceSendFields is a list of field names (e.g. "Colors") to
12996	// unconditionally include in API requests. By default, fields with
12997	// empty values are omitted from API requests. However, any non-pointer,
12998	// non-interface field appearing in ForceSendFields will be sent to the
12999	// server regardless of whether the field is empty or not. This may be
13000	// used to include empty fields in Patch requests.
13001	ForceSendFields []string `json:"-"`
13002
13003	// NullFields is a list of field names (e.g. "Colors") to include in API
13004	// requests with the JSON null value. By default, fields with empty
13005	// values are omitted from API requests. However, any field with an
13006	// empty value appearing in NullFields will be sent to the server as
13007	// null. It is an error if a field in this list has a non-empty value.
13008	// This may be used to include null fields in Patch requests.
13009	NullFields []string `json:"-"`
13010}
13011
13012func (s *GoogleCloudVisionV1p5beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
13013	type NoMethod GoogleCloudVisionV1p5beta1DominantColorsAnnotation
13014	raw := NoMethod(*s)
13015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13016}
13017
13018// GoogleCloudVisionV1p5beta1EntityAnnotation: Set of detected entity
13019// features.
13020type GoogleCloudVisionV1p5beta1EntityAnnotation struct {
13021	// BoundingPoly: Image region to which this entity belongs. Not
13022	// produced
13023	// for `LABEL_DETECTION` features.
13024	BoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPoly,omitempty"`
13025
13026	// Confidence: **Deprecated. Use `score` instead.**
13027	// The accuracy of the entity detection in an image.
13028	// For example, for an image in which the "Eiffel Tower" entity is
13029	// detected,
13030	// this field represents the confidence that there is a tower in the
13031	// query
13032	// image. Range [0, 1].
13033	Confidence float64 `json:"confidence,omitempty"`
13034
13035	// Description: Entity textual description, expressed in its `locale`
13036	// language.
13037	Description string `json:"description,omitempty"`
13038
13039	// Locale: The language code for the locale in which the entity
13040	// textual
13041	// `description` is expressed.
13042	Locale string `json:"locale,omitempty"`
13043
13044	// Locations: The location information for the detected entity.
13045	// Multiple
13046	// `LocationInfo` elements can be present because one location
13047	// may
13048	// indicate the location of the scene in the image, and another
13049	// location
13050	// may indicate the location of the place where the image was
13051	// taken.
13052	// Location information is usually present for landmarks.
13053	Locations []*GoogleCloudVisionV1p5beta1LocationInfo `json:"locations,omitempty"`
13054
13055	// Mid: Opaque entity ID. Some IDs may be available in
13056	// [Google Knowledge Graph
13057	// Search
13058	// API](https://developers.google.com/knowledge-graph/).
13059	Mid string `json:"mid,omitempty"`
13060
13061	// Properties: Some entities may have optional user-supplied `Property`
13062	// (name/value)
13063	// fields, such a score or string that qualifies the entity.
13064	Properties []*GoogleCloudVisionV1p5beta1Property `json:"properties,omitempty"`
13065
13066	// Score: Overall score of the result. Range [0, 1].
13067	Score float64 `json:"score,omitempty"`
13068
13069	// Topicality: The relevancy of the ICA (Image Content Annotation) label
13070	// to the
13071	// image. For example, the relevancy of "tower" is likely higher to an
13072	// image
13073	// containing the detected "Eiffel Tower" than to an image containing
13074	// a
13075	// detected distant towering building, even though the confidence
13076	// that
13077	// there is a tower in each image may be the same. Range [0, 1].
13078	Topicality float64 `json:"topicality,omitempty"`
13079
13080	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
13081	// unconditionally include in API requests. By default, fields with
13082	// empty values are omitted from API requests. However, any non-pointer,
13083	// non-interface field appearing in ForceSendFields will be sent to the
13084	// server regardless of whether the field is empty or not. This may be
13085	// used to include empty fields in Patch requests.
13086	ForceSendFields []string `json:"-"`
13087
13088	// NullFields is a list of field names (e.g. "BoundingPoly") to include
13089	// in API requests with the JSON null value. By default, fields with
13090	// empty values are omitted from API requests. However, any field with
13091	// an empty value appearing in NullFields will be sent to the server as
13092	// null. It is an error if a field in this list has a non-empty value.
13093	// This may be used to include null fields in Patch requests.
13094	NullFields []string `json:"-"`
13095}
13096
13097func (s *GoogleCloudVisionV1p5beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
13098	type NoMethod GoogleCloudVisionV1p5beta1EntityAnnotation
13099	raw := NoMethod(*s)
13100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13101}
13102
13103func (s *GoogleCloudVisionV1p5beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
13104	type NoMethod GoogleCloudVisionV1p5beta1EntityAnnotation
13105	var s1 struct {
13106		Confidence gensupport.JSONFloat64 `json:"confidence"`
13107		Score      gensupport.JSONFloat64 `json:"score"`
13108		Topicality gensupport.JSONFloat64 `json:"topicality"`
13109		*NoMethod
13110	}
13111	s1.NoMethod = (*NoMethod)(s)
13112	if err := json.Unmarshal(data, &s1); err != nil {
13113		return err
13114	}
13115	s.Confidence = float64(s1.Confidence)
13116	s.Score = float64(s1.Score)
13117	s.Topicality = float64(s1.Topicality)
13118	return nil
13119}
13120
13121// GoogleCloudVisionV1p5beta1FaceAnnotation: A face annotation object
13122// contains the results of face detection.
13123type GoogleCloudVisionV1p5beta1FaceAnnotation struct {
13124	// AngerLikelihood: Anger likelihood.
13125	//
13126	// Possible values:
13127	//   "UNKNOWN" - Unknown likelihood.
13128	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13129	// specified vertical.
13130	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13131	// vertical.
13132	//   "POSSIBLE" - It is possible that the image belongs to the specified
13133	// vertical.
13134	//   "LIKELY" - It is likely that the image belongs to the specified
13135	// vertical.
13136	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13137	// specified vertical.
13138	AngerLikelihood string `json:"angerLikelihood,omitempty"`
13139
13140	// BlurredLikelihood: Blurred likelihood.
13141	//
13142	// Possible values:
13143	//   "UNKNOWN" - Unknown likelihood.
13144	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13145	// specified vertical.
13146	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13147	// vertical.
13148	//   "POSSIBLE" - It is possible that the image belongs to the specified
13149	// vertical.
13150	//   "LIKELY" - It is likely that the image belongs to the specified
13151	// vertical.
13152	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13153	// specified vertical.
13154	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
13155
13156	// BoundingPoly: The bounding polygon around the face. The coordinates
13157	// of the bounding box
13158	// are in the original image's scale.
13159	// The bounding box is computed to "frame" the face in accordance with
13160	// human
13161	// expectations. It is based on the landmarker results.
13162	// Note that one or more x and/or y coordinates may not be generated in
13163	// the
13164	// `BoundingPoly` (the polygon will be unbounded) if only a partial
13165	// face
13166	// appears in the image to be annotated.
13167	BoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPoly,omitempty"`
13168
13169	// DetectionConfidence: Detection confidence. Range [0, 1].
13170	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
13171
13172	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
13173	// than the
13174	// `boundingPoly`, and encloses only the skin part of the face.
13175	// Typically, it
13176	// is used to eliminate the face from any image analysis that detects
13177	// the
13178	// "amount of skin" visible in an image. It is not based on
13179	// the
13180	// landmarker results, only on the initial face detection, hence
13181	// the <code>fd</code> (face detection) prefix.
13182	FdBoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
13183
13184	// HeadwearLikelihood: Headwear likelihood.
13185	//
13186	// Possible values:
13187	//   "UNKNOWN" - Unknown likelihood.
13188	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13189	// specified vertical.
13190	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13191	// vertical.
13192	//   "POSSIBLE" - It is possible that the image belongs to the specified
13193	// vertical.
13194	//   "LIKELY" - It is likely that the image belongs to the specified
13195	// vertical.
13196	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13197	// specified vertical.
13198	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
13199
13200	// JoyLikelihood: Joy likelihood.
13201	//
13202	// Possible values:
13203	//   "UNKNOWN" - Unknown likelihood.
13204	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13205	// specified vertical.
13206	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13207	// vertical.
13208	//   "POSSIBLE" - It is possible that the image belongs to the specified
13209	// vertical.
13210	//   "LIKELY" - It is likely that the image belongs to the specified
13211	// vertical.
13212	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13213	// specified vertical.
13214	JoyLikelihood string `json:"joyLikelihood,omitempty"`
13215
13216	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
13217	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
13218
13219	// Landmarks: Detected face landmarks.
13220	Landmarks []*GoogleCloudVisionV1p5beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
13221
13222	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
13223	// that the face is
13224	// pointing relative to the vertical plane perpendicular to the image.
13225	// Range
13226	// [-180,180].
13227	PanAngle float64 `json:"panAngle,omitempty"`
13228
13229	// RollAngle: Roll angle, which indicates the amount of
13230	// clockwise/anti-clockwise rotation
13231	// of the face relative to the image vertical about the axis
13232	// perpendicular to
13233	// the face. Range [-180,180].
13234	RollAngle float64 `json:"rollAngle,omitempty"`
13235
13236	// SorrowLikelihood: Sorrow likelihood.
13237	//
13238	// Possible values:
13239	//   "UNKNOWN" - Unknown likelihood.
13240	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13241	// specified vertical.
13242	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13243	// vertical.
13244	//   "POSSIBLE" - It is possible that the image belongs to the specified
13245	// vertical.
13246	//   "LIKELY" - It is likely that the image belongs to the specified
13247	// vertical.
13248	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13249	// specified vertical.
13250	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
13251
13252	// SurpriseLikelihood: Surprise likelihood.
13253	//
13254	// Possible values:
13255	//   "UNKNOWN" - Unknown likelihood.
13256	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13257	// specified vertical.
13258	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13259	// vertical.
13260	//   "POSSIBLE" - It is possible that the image belongs to the specified
13261	// vertical.
13262	//   "LIKELY" - It is likely that the image belongs to the specified
13263	// vertical.
13264	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13265	// specified vertical.
13266	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
13267
13268	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
13269	// that the face is
13270	// pointing relative to the image's horizontal plane. Range [-180,180].
13271	TiltAngle float64 `json:"tiltAngle,omitempty"`
13272
13273	// UnderExposedLikelihood: Under-exposed likelihood.
13274	//
13275	// Possible values:
13276	//   "UNKNOWN" - Unknown likelihood.
13277	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
13278	// specified vertical.
13279	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
13280	// vertical.
13281	//   "POSSIBLE" - It is possible that the image belongs to the specified
13282	// vertical.
13283	//   "LIKELY" - It is likely that the image belongs to the specified
13284	// vertical.
13285	//   "VERY_LIKELY" - It is very likely that the image belongs to the
13286	// specified vertical.
13287	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
13288
13289	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
13290	// unconditionally include in API requests. By default, fields with
13291	// empty values are omitted from API requests. However, any non-pointer,
13292	// non-interface field appearing in ForceSendFields will be sent to the
13293	// server regardless of whether the field is empty or not. This may be
13294	// used to include empty fields in Patch requests.
13295	ForceSendFields []string `json:"-"`
13296
13297	// NullFields is a list of field names (e.g. "AngerLikelihood") to
13298	// include in API requests with the JSON null value. By default, fields
13299	// with empty values are omitted from API requests. However, any field
13300	// with an empty value appearing in NullFields will be sent to the
13301	// server as null. It is an error if a field in this list has a
13302	// non-empty value. This may be used to include null fields in Patch
13303	// requests.
13304	NullFields []string `json:"-"`
13305}
13306
13307func (s *GoogleCloudVisionV1p5beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
13308	type NoMethod GoogleCloudVisionV1p5beta1FaceAnnotation
13309	raw := NoMethod(*s)
13310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13311}
13312
13313func (s *GoogleCloudVisionV1p5beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
13314	type NoMethod GoogleCloudVisionV1p5beta1FaceAnnotation
13315	var s1 struct {
13316		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
13317		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
13318		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
13319		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
13320		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
13321		*NoMethod
13322	}
13323	s1.NoMethod = (*NoMethod)(s)
13324	if err := json.Unmarshal(data, &s1); err != nil {
13325		return err
13326	}
13327	s.DetectionConfidence = float64(s1.DetectionConfidence)
13328	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
13329	s.PanAngle = float64(s1.PanAngle)
13330	s.RollAngle = float64(s1.RollAngle)
13331	s.TiltAngle = float64(s1.TiltAngle)
13332	return nil
13333}
13334
13335// GoogleCloudVisionV1p5beta1FaceAnnotationLandmark: A face-specific
13336// landmark (for example, a face feature).
13337type GoogleCloudVisionV1p5beta1FaceAnnotationLandmark struct {
13338	// Position: Face landmark position.
13339	Position *GoogleCloudVisionV1p5beta1Position `json:"position,omitempty"`
13340
13341	// Type: Face landmark type.
13342	//
13343	// Possible values:
13344	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
13345	// filled.
13346	//   "LEFT_EYE" - Left eye.
13347	//   "RIGHT_EYE" - Right eye.
13348	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
13349	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
13350	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
13351	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
13352	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
13353	//   "NOSE_TIP" - Nose tip.
13354	//   "UPPER_LIP" - Upper lip.
13355	//   "LOWER_LIP" - Lower lip.
13356	//   "MOUTH_LEFT" - Mouth left.
13357	//   "MOUTH_RIGHT" - Mouth right.
13358	//   "MOUTH_CENTER" - Mouth center.
13359	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
13360	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
13361	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
13362	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
13363	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
13364	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
13365	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
13366	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
13367	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
13368	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
13369	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
13370	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
13371	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
13372	//   "LEFT_EAR_TRAGION" - Left ear tragion.
13373	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
13374	//   "LEFT_EYE_PUPIL" - Left eye pupil.
13375	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
13376	//   "FOREHEAD_GLABELLA" - Forehead glabella.
13377	//   "CHIN_GNATHION" - Chin gnathion.
13378	//   "CHIN_LEFT_GONION" - Chin left gonion.
13379	//   "CHIN_RIGHT_GONION" - Chin right gonion.
13380	Type string `json:"type,omitempty"`
13381
13382	// ForceSendFields is a list of field names (e.g. "Position") to
13383	// unconditionally include in API requests. By default, fields with
13384	// empty values are omitted from API requests. However, any non-pointer,
13385	// non-interface field appearing in ForceSendFields will be sent to the
13386	// server regardless of whether the field is empty or not. This may be
13387	// used to include empty fields in Patch requests.
13388	ForceSendFields []string `json:"-"`
13389
13390	// NullFields is a list of field names (e.g. "Position") to include in
13391	// API requests with the JSON null value. By default, fields with empty
13392	// values are omitted from API requests. However, any field with an
13393	// empty value appearing in NullFields will be sent to the server as
13394	// null. It is an error if a field in this list has a non-empty value.
13395	// This may be used to include null fields in Patch requests.
13396	NullFields []string `json:"-"`
13397}
13398
13399func (s *GoogleCloudVisionV1p5beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
13400	type NoMethod GoogleCloudVisionV1p5beta1FaceAnnotationLandmark
13401	raw := NoMethod(*s)
13402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13403}
13404
13405// GoogleCloudVisionV1p5beta1GcsDestination: The Google Cloud Storage
13406// location where the output will be written to.
13407type GoogleCloudVisionV1p5beta1GcsDestination struct {
13408	// Uri: Google Cloud Storage URI prefix where the results will be
13409	// stored. Results
13410	// will be in JSON format and preceded by its corresponding input URI
13411	// prefix.
13412	// This field can either represent a gcs file prefix or gcs directory.
13413	// In
13414	// either case, the uri should be unique because in order to get all of
13415	// the
13416	// output files, you will need to do a wildcard gcs search on the uri
13417	// prefix
13418	// you provide.
13419	//
13420	// Examples:
13421	//
13422	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
13423	// files
13424	// will be created in gs://bucket-name/here/ and the names of the
13425	// output files will begin with "filenameprefix".
13426	//
13427	// *    Directory Prefix: gs://bucket-name/some/location/   The output
13428	// files
13429	// will be created in gs://bucket-name/some/location/ and the names of
13430	// the
13431	// output files could be anything because there was no filename
13432	// prefix
13433	// specified.
13434	//
13435	// If multiple outputs, each response is still AnnotateFileResponse,
13436	// each of
13437	// which contains some subset of the full list of
13438	// AnnotateImageResponse.
13439	// Multiple outputs can happen if, for example, the output JSON is too
13440	// large
13441	// and overflows into multiple sharded files.
13442	Uri string `json:"uri,omitempty"`
13443
13444	// ForceSendFields is a list of field names (e.g. "Uri") to
13445	// unconditionally include in API requests. By default, fields with
13446	// empty values are omitted from API requests. However, any non-pointer,
13447	// non-interface field appearing in ForceSendFields will be sent to the
13448	// server regardless of whether the field is empty or not. This may be
13449	// used to include empty fields in Patch requests.
13450	ForceSendFields []string `json:"-"`
13451
13452	// NullFields is a list of field names (e.g. "Uri") to include in API
13453	// requests with the JSON null value. By default, fields with empty
13454	// values are omitted from API requests. However, any field with an
13455	// empty value appearing in NullFields will be sent to the server as
13456	// null. It is an error if a field in this list has a non-empty value.
13457	// This may be used to include null fields in Patch requests.
13458	NullFields []string `json:"-"`
13459}
13460
13461func (s *GoogleCloudVisionV1p5beta1GcsDestination) MarshalJSON() ([]byte, error) {
13462	type NoMethod GoogleCloudVisionV1p5beta1GcsDestination
13463	raw := NoMethod(*s)
13464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13465}
13466
13467// GoogleCloudVisionV1p5beta1GcsSource: The Google Cloud Storage
13468// location where the input will be read from.
13469type GoogleCloudVisionV1p5beta1GcsSource struct {
13470	// Uri: Google Cloud Storage URI for the input file. This must only be
13471	// a
13472	// Google Cloud Storage object. Wildcards are not currently supported.
13473	Uri string `json:"uri,omitempty"`
13474
13475	// ForceSendFields is a list of field names (e.g. "Uri") to
13476	// unconditionally include in API requests. By default, fields with
13477	// empty values are omitted from API requests. However, any non-pointer,
13478	// non-interface field appearing in ForceSendFields will be sent to the
13479	// server regardless of whether the field is empty or not. This may be
13480	// used to include empty fields in Patch requests.
13481	ForceSendFields []string `json:"-"`
13482
13483	// NullFields is a list of field names (e.g. "Uri") to include in API
13484	// requests with the JSON null value. By default, fields with empty
13485	// values are omitted from API requests. However, any field with an
13486	// empty value appearing in NullFields will be sent to the server as
13487	// null. It is an error if a field in this list has a non-empty value.
13488	// This may be used to include null fields in Patch requests.
13489	NullFields []string `json:"-"`
13490}
13491
13492func (s *GoogleCloudVisionV1p5beta1GcsSource) MarshalJSON() ([]byte, error) {
13493	type NoMethod GoogleCloudVisionV1p5beta1GcsSource
13494	raw := NoMethod(*s)
13495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13496}
13497
13498// GoogleCloudVisionV1p5beta1ImageAnnotationContext: If an image was
13499// produced from a file (e.g. a PDF), this message gives
13500// information about the source of that image.
13501type GoogleCloudVisionV1p5beta1ImageAnnotationContext struct {
13502	// PageNumber: If the file was a PDF or TIFF, this field gives the page
13503	// number within
13504	// the file used to produce the image.
13505	PageNumber int64 `json:"pageNumber,omitempty"`
13506
13507	// Uri: The URI of the file used to produce the image.
13508	Uri string `json:"uri,omitempty"`
13509
13510	// ForceSendFields is a list of field names (e.g. "PageNumber") to
13511	// unconditionally include in API requests. By default, fields with
13512	// empty values are omitted from API requests. However, any non-pointer,
13513	// non-interface field appearing in ForceSendFields will be sent to the
13514	// server regardless of whether the field is empty or not. This may be
13515	// used to include empty fields in Patch requests.
13516	ForceSendFields []string `json:"-"`
13517
13518	// NullFields is a list of field names (e.g. "PageNumber") to include in
13519	// API requests with the JSON null value. By default, fields with empty
13520	// values are omitted from API requests. However, any field with an
13521	// empty value appearing in NullFields will be sent to the server as
13522	// null. It is an error if a field in this list has a non-empty value.
13523	// This may be used to include null fields in Patch requests.
13524	NullFields []string `json:"-"`
13525}
13526
13527func (s *GoogleCloudVisionV1p5beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
13528	type NoMethod GoogleCloudVisionV1p5beta1ImageAnnotationContext
13529	raw := NoMethod(*s)
13530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13531}
13532
13533// GoogleCloudVisionV1p5beta1ImageProperties: Stores image properties,
13534// such as dominant colors.
13535type GoogleCloudVisionV1p5beta1ImageProperties struct {
13536	// DominantColors: If present, dominant colors completed successfully.
13537	DominantColors *GoogleCloudVisionV1p5beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
13538
13539	// ForceSendFields is a list of field names (e.g. "DominantColors") to
13540	// unconditionally include in API requests. By default, fields with
13541	// empty values are omitted from API requests. However, any non-pointer,
13542	// non-interface field appearing in ForceSendFields will be sent to the
13543	// server regardless of whether the field is empty or not. This may be
13544	// used to include empty fields in Patch requests.
13545	ForceSendFields []string `json:"-"`
13546
13547	// NullFields is a list of field names (e.g. "DominantColors") to
13548	// include in API requests with the JSON null value. By default, fields
13549	// with empty values are omitted from API requests. However, any field
13550	// with an empty value appearing in NullFields will be sent to the
13551	// server as null. It is an error if a field in this list has a
13552	// non-empty value. This may be used to include null fields in Patch
13553	// requests.
13554	NullFields []string `json:"-"`
13555}
13556
13557func (s *GoogleCloudVisionV1p5beta1ImageProperties) MarshalJSON() ([]byte, error) {
13558	type NoMethod GoogleCloudVisionV1p5beta1ImageProperties
13559	raw := NoMethod(*s)
13560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13561}
13562
13563// GoogleCloudVisionV1p5beta1ImportProductSetsResponse: Response message
13564// for the `ImportProductSets` method.
13565//
13566// This message is returned by
13567// the
13568// google.longrunning.Operations.GetOperation method in the
13569// returned
13570// google.longrunning.Operation.response field.
13571type GoogleCloudVisionV1p5beta1ImportProductSetsResponse struct {
13572	// ReferenceImages: The list of reference_images that are imported
13573	// successfully.
13574	ReferenceImages []*GoogleCloudVisionV1p5beta1ReferenceImage `json:"referenceImages,omitempty"`
13575
13576	// Statuses: The rpc status for each ImportProductSet request, including
13577	// both successes
13578	// and errors.
13579	//
13580	// The number of statuses here matches the number of lines in the csv
13581	// file,
13582	// and statuses[i] stores the success or failure status of processing
13583	// the i-th
13584	// line of the csv, starting from line 0.
13585	Statuses []*Status `json:"statuses,omitempty"`
13586
13587	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
13588	// unconditionally include in API requests. By default, fields with
13589	// empty values are omitted from API requests. However, any non-pointer,
13590	// non-interface field appearing in ForceSendFields will be sent to the
13591	// server regardless of whether the field is empty or not. This may be
13592	// used to include empty fields in Patch requests.
13593	ForceSendFields []string `json:"-"`
13594
13595	// NullFields is a list of field names (e.g. "ReferenceImages") to
13596	// include in API requests with the JSON null value. By default, fields
13597	// with empty values are omitted from API requests. However, any field
13598	// with an empty value appearing in NullFields will be sent to the
13599	// server as null. It is an error if a field in this list has a
13600	// non-empty value. This may be used to include null fields in Patch
13601	// requests.
13602	NullFields []string `json:"-"`
13603}
13604
13605func (s *GoogleCloudVisionV1p5beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
13606	type NoMethod GoogleCloudVisionV1p5beta1ImportProductSetsResponse
13607	raw := NoMethod(*s)
13608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13609}
13610
13611// GoogleCloudVisionV1p5beta1InputConfig: The desired input location and
13612// metadata.
13613type GoogleCloudVisionV1p5beta1InputConfig struct {
13614	// Content: File content, represented as a stream of bytes.
13615	// Note: As with all `bytes` fields, protobuffers use a pure
13616	// binary
13617	// representation, whereas JSON representations use base64.
13618	//
13619	// Currently, this field only works for BatchAnnotateFiles requests. It
13620	// does
13621	// not work for AsyncBatchAnnotateFiles requests.
13622	Content string `json:"content,omitempty"`
13623
13624	// GcsSource: The Google Cloud Storage location to read the input from.
13625	GcsSource *GoogleCloudVisionV1p5beta1GcsSource `json:"gcsSource,omitempty"`
13626
13627	// MimeType: The type of the file. Currently only "application/pdf",
13628	// "image/tiff" and
13629	// "image/gif" are supported. Wildcards are not supported.
13630	MimeType string `json:"mimeType,omitempty"`
13631
13632	// ForceSendFields is a list of field names (e.g. "Content") to
13633	// unconditionally include in API requests. By default, fields with
13634	// empty values are omitted from API requests. However, any non-pointer,
13635	// non-interface field appearing in ForceSendFields will be sent to the
13636	// server regardless of whether the field is empty or not. This may be
13637	// used to include empty fields in Patch requests.
13638	ForceSendFields []string `json:"-"`
13639
13640	// NullFields is a list of field names (e.g. "Content") to include in
13641	// API requests with the JSON null value. By default, fields with empty
13642	// values are omitted from API requests. However, any field with an
13643	// empty value appearing in NullFields will be sent to the server as
13644	// null. It is an error if a field in this list has a non-empty value.
13645	// This may be used to include null fields in Patch requests.
13646	NullFields []string `json:"-"`
13647}
13648
13649func (s *GoogleCloudVisionV1p5beta1InputConfig) MarshalJSON() ([]byte, error) {
13650	type NoMethod GoogleCloudVisionV1p5beta1InputConfig
13651	raw := NoMethod(*s)
13652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13653}
13654
13655// GoogleCloudVisionV1p5beta1KeyValuePair: Proto for a key value pair.
13656type GoogleCloudVisionV1p5beta1KeyValuePair struct {
13657	// Key: The key string value.
13658	Key string `json:"key,omitempty"`
13659
13660	// KeyBlock: Key block of the pair containing the normalized bounding
13661	// box and key text.
13662	KeyBlock *GoogleCloudVisionV1p5beta1Block `json:"keyBlock,omitempty"`
13663
13664	// NormalizedKey: Optional. The translation of key text if the text is
13665	// not in English.
13666	NormalizedKey string `json:"normalizedKey,omitempty"`
13667
13668	// ValueBlock: Value block of the pair containing the normalized
13669	// bounding box and value
13670	// text, including potentially deeper structures within the value text.
13671	ValueBlock *GoogleCloudVisionV1p5beta1Block `json:"valueBlock,omitempty"`
13672
13673	// ValueType: Type of the value. Valid strings are the following:
13674	//
13675	//  "generic" - For generic text that is mapped to a value.
13676	//  "number" - for numeric types
13677	//  "id" - for generic identifiers.
13678	//  "currency" - for currency values.
13679	//  "date" - for dates.
13680	//  "time" - for time and duration values.
13681	//  "date_range" - for date ranges.
13682	//  "address" - for address values (can be long).
13683	//  "person" - for names of people or other personal identifiers.
13684	//  "phone" - for phone numbers.
13685	ValueType string `json:"valueType,omitempty"`
13686
13687	// ForceSendFields is a list of field names (e.g. "Key") to
13688	// unconditionally include in API requests. By default, fields with
13689	// empty values are omitted from API requests. However, any non-pointer,
13690	// non-interface field appearing in ForceSendFields will be sent to the
13691	// server regardless of whether the field is empty or not. This may be
13692	// used to include empty fields in Patch requests.
13693	ForceSendFields []string `json:"-"`
13694
13695	// NullFields is a list of field names (e.g. "Key") to include in API
13696	// requests with the JSON null value. By default, fields with empty
13697	// values are omitted from API requests. However, any field with an
13698	// empty value appearing in NullFields will be sent to the server as
13699	// null. It is an error if a field in this list has a non-empty value.
13700	// This may be used to include null fields in Patch requests.
13701	NullFields []string `json:"-"`
13702}
13703
13704func (s *GoogleCloudVisionV1p5beta1KeyValuePair) MarshalJSON() ([]byte, error) {
13705	type NoMethod GoogleCloudVisionV1p5beta1KeyValuePair
13706	raw := NoMethod(*s)
13707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13708}
13709
13710// GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation: Set of detected
13711// objects with bounding boxes.
13712type GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation struct {
13713	// BoundingPoly: Image region to which this object belongs. This must be
13714	// populated.
13715	BoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPoly,omitempty"`
13716
13717	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
13718	// For more
13719	// information,
13720	// see
13721	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13722	LanguageCode string `json:"languageCode,omitempty"`
13723
13724	// Mid: Object ID that should align with EntityAnnotation mid.
13725	Mid string `json:"mid,omitempty"`
13726
13727	// Name: Object name, expressed in its `language_code` language.
13728	Name string `json:"name,omitempty"`
13729
13730	// Score: Score of the result. Range [0, 1].
13731	Score float64 `json:"score,omitempty"`
13732
13733	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
13734	// unconditionally include in API requests. By default, fields with
13735	// empty values are omitted from API requests. However, any non-pointer,
13736	// non-interface field appearing in ForceSendFields will be sent to the
13737	// server regardless of whether the field is empty or not. This may be
13738	// used to include empty fields in Patch requests.
13739	ForceSendFields []string `json:"-"`
13740
13741	// NullFields is a list of field names (e.g. "BoundingPoly") to include
13742	// in API requests with the JSON null value. By default, fields with
13743	// empty values are omitted from API requests. However, any field with
13744	// an empty value appearing in NullFields will be sent to the server as
13745	// null. It is an error if a field in this list has a non-empty value.
13746	// This may be used to include null fields in Patch requests.
13747	NullFields []string `json:"-"`
13748}
13749
13750func (s *GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
13751	type NoMethod GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation
13752	raw := NoMethod(*s)
13753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13754}
13755
13756func (s *GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
13757	type NoMethod GoogleCloudVisionV1p5beta1LocalizedObjectAnnotation
13758	var s1 struct {
13759		Score gensupport.JSONFloat64 `json:"score"`
13760		*NoMethod
13761	}
13762	s1.NoMethod = (*NoMethod)(s)
13763	if err := json.Unmarshal(data, &s1); err != nil {
13764		return err
13765	}
13766	s.Score = float64(s1.Score)
13767	return nil
13768}
13769
13770// GoogleCloudVisionV1p5beta1LocationInfo: Detected entity location
13771// information.
13772type GoogleCloudVisionV1p5beta1LocationInfo struct {
13773	// LatLng: lat/long location coordinates.
13774	LatLng *LatLng `json:"latLng,omitempty"`
13775
13776	// ForceSendFields is a list of field names (e.g. "LatLng") to
13777	// unconditionally include in API requests. By default, fields with
13778	// empty values are omitted from API requests. However, any non-pointer,
13779	// non-interface field appearing in ForceSendFields will be sent to the
13780	// server regardless of whether the field is empty or not. This may be
13781	// used to include empty fields in Patch requests.
13782	ForceSendFields []string `json:"-"`
13783
13784	// NullFields is a list of field names (e.g. "LatLng") to include in API
13785	// requests with the JSON null value. By default, fields with empty
13786	// values are omitted from API requests. However, any field with an
13787	// empty value appearing in NullFields will be sent to the server as
13788	// null. It is an error if a field in this list has a non-empty value.
13789	// This may be used to include null fields in Patch requests.
13790	NullFields []string `json:"-"`
13791}
13792
13793func (s *GoogleCloudVisionV1p5beta1LocationInfo) MarshalJSON() ([]byte, error) {
13794	type NoMethod GoogleCloudVisionV1p5beta1LocationInfo
13795	raw := NoMethod(*s)
13796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13797}
13798
13799// GoogleCloudVisionV1p5beta1NormalizedVertex: A vertex represents a 2D
13800// point in the image.
13801// NOTE: the normalized vertex coordinates are relative to the original
13802// image
13803// and range from 0 to 1.
13804type GoogleCloudVisionV1p5beta1NormalizedVertex struct {
13805	// X: X coordinate.
13806	X float64 `json:"x,omitempty"`
13807
13808	// Y: Y coordinate.
13809	Y float64 `json:"y,omitempty"`
13810
13811	// ForceSendFields is a list of field names (e.g. "X") to
13812	// unconditionally include in API requests. By default, fields with
13813	// empty values are omitted from API requests. However, any non-pointer,
13814	// non-interface field appearing in ForceSendFields will be sent to the
13815	// server regardless of whether the field is empty or not. This may be
13816	// used to include empty fields in Patch requests.
13817	ForceSendFields []string `json:"-"`
13818
13819	// NullFields is a list of field names (e.g. "X") to include in API
13820	// requests with the JSON null value. By default, fields with empty
13821	// values are omitted from API requests. However, any field with an
13822	// empty value appearing in NullFields will be sent to the server as
13823	// null. It is an error if a field in this list has a non-empty value.
13824	// This may be used to include null fields in Patch requests.
13825	NullFields []string `json:"-"`
13826}
13827
13828func (s *GoogleCloudVisionV1p5beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
13829	type NoMethod GoogleCloudVisionV1p5beta1NormalizedVertex
13830	raw := NoMethod(*s)
13831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13832}
13833
13834func (s *GoogleCloudVisionV1p5beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
13835	type NoMethod GoogleCloudVisionV1p5beta1NormalizedVertex
13836	var s1 struct {
13837		X gensupport.JSONFloat64 `json:"x"`
13838		Y gensupport.JSONFloat64 `json:"y"`
13839		*NoMethod
13840	}
13841	s1.NoMethod = (*NoMethod)(s)
13842	if err := json.Unmarshal(data, &s1); err != nil {
13843		return err
13844	}
13845	s.X = float64(s1.X)
13846	s.Y = float64(s1.Y)
13847	return nil
13848}
13849
13850// GoogleCloudVisionV1p5beta1OperationMetadata: Contains metadata for
13851// the BatchAnnotateImages operation.
13852type GoogleCloudVisionV1p5beta1OperationMetadata struct {
13853	// CreateTime: The time when the batch request was received.
13854	CreateTime string `json:"createTime,omitempty"`
13855
13856	// State: Current state of the batch operation.
13857	//
13858	// Possible values:
13859	//   "STATE_UNSPECIFIED" - Invalid.
13860	//   "CREATED" - Request is received.
13861	//   "RUNNING" - Request is actively being processed.
13862	//   "DONE" - The batch processing is done.
13863	//   "CANCELLED" - The batch processing was cancelled.
13864	State string `json:"state,omitempty"`
13865
13866	// UpdateTime: The time when the operation result was last updated.
13867	UpdateTime string `json:"updateTime,omitempty"`
13868
13869	// ForceSendFields is a list of field names (e.g. "CreateTime") to
13870	// unconditionally include in API requests. By default, fields with
13871	// empty values are omitted from API requests. However, any non-pointer,
13872	// non-interface field appearing in ForceSendFields will be sent to the
13873	// server regardless of whether the field is empty or not. This may be
13874	// used to include empty fields in Patch requests.
13875	ForceSendFields []string `json:"-"`
13876
13877	// NullFields is a list of field names (e.g. "CreateTime") to include in
13878	// API requests with the JSON null value. By default, fields with empty
13879	// values are omitted from API requests. However, any field with an
13880	// empty value appearing in NullFields will be sent to the server as
13881	// null. It is an error if a field in this list has a non-empty value.
13882	// This may be used to include null fields in Patch requests.
13883	NullFields []string `json:"-"`
13884}
13885
13886func (s *GoogleCloudVisionV1p5beta1OperationMetadata) MarshalJSON() ([]byte, error) {
13887	type NoMethod GoogleCloudVisionV1p5beta1OperationMetadata
13888	raw := NoMethod(*s)
13889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13890}
13891
13892// GoogleCloudVisionV1p5beta1OutputConfig: The desired output location
13893// and metadata.
13894type GoogleCloudVisionV1p5beta1OutputConfig struct {
13895	// BatchSize: The max number of response protos to put into each output
13896	// JSON file on
13897	// Google Cloud Storage.
13898	// The valid range is [1, 100]. If not specified, the default value is
13899	// 20.
13900	//
13901	// For example, for one pdf file with 100 pages, 100 response protos
13902	// will
13903	// be generated. If `batch_size` = 20, then 5 json files each
13904	// containing 20 response protos will be written under the
13905	// prefix
13906	// `gcs_destination`.`uri`.
13907	//
13908	// Currently, batch_size only applies to GcsDestination, with potential
13909	// future
13910	// support for other output configurations.
13911	BatchSize int64 `json:"batchSize,omitempty"`
13912
13913	// GcsDestination: The Google Cloud Storage location to write the
13914	// output(s) to.
13915	GcsDestination *GoogleCloudVisionV1p5beta1GcsDestination `json:"gcsDestination,omitempty"`
13916
13917	// ForceSendFields is a list of field names (e.g. "BatchSize") to
13918	// unconditionally include in API requests. By default, fields with
13919	// empty values are omitted from API requests. However, any non-pointer,
13920	// non-interface field appearing in ForceSendFields will be sent to the
13921	// server regardless of whether the field is empty or not. This may be
13922	// used to include empty fields in Patch requests.
13923	ForceSendFields []string `json:"-"`
13924
13925	// NullFields is a list of field names (e.g. "BatchSize") to include in
13926	// API requests with the JSON null value. By default, fields with empty
13927	// values are omitted from API requests. However, any field with an
13928	// empty value appearing in NullFields will be sent to the server as
13929	// null. It is an error if a field in this list has a non-empty value.
13930	// This may be used to include null fields in Patch requests.
13931	NullFields []string `json:"-"`
13932}
13933
13934func (s *GoogleCloudVisionV1p5beta1OutputConfig) MarshalJSON() ([]byte, error) {
13935	type NoMethod GoogleCloudVisionV1p5beta1OutputConfig
13936	raw := NoMethod(*s)
13937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13938}
13939
13940// GoogleCloudVisionV1p5beta1Page: Detected page from OCR.
13941type GoogleCloudVisionV1p5beta1Page struct {
13942	// Blocks: List of blocks of text, images etc on this page.
13943	Blocks []*GoogleCloudVisionV1p5beta1Block `json:"blocks,omitempty"`
13944
13945	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
13946	Confidence float64 `json:"confidence,omitempty"`
13947
13948	// Height: Page height. For PDFs the unit is points. For images
13949	// (including
13950	// TIFFs) the unit is pixels.
13951	Height int64 `json:"height,omitempty"`
13952
13953	// MergedText: All UTF-8 text detected in this page. This field is by
13954	// default not
13955	// returned unless specified in TextDetectionParams.page_filter.
13956	MergedText string `json:"mergedText,omitempty"`
13957
13958	// Property: Additional information detected on the page.
13959	Property *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty `json:"property,omitempty"`
13960
13961	// Width: Page width. For PDFs the unit is points. For images
13962	// (including
13963	// TIFFs) the unit is pixels.
13964	Width int64 `json:"width,omitempty"`
13965
13966	// ForceSendFields is a list of field names (e.g. "Blocks") to
13967	// unconditionally include in API requests. By default, fields with
13968	// empty values are omitted from API requests. However, any non-pointer,
13969	// non-interface field appearing in ForceSendFields will be sent to the
13970	// server regardless of whether the field is empty or not. This may be
13971	// used to include empty fields in Patch requests.
13972	ForceSendFields []string `json:"-"`
13973
13974	// NullFields is a list of field names (e.g. "Blocks") to include in API
13975	// requests with the JSON null value. By default, fields with empty
13976	// values are omitted from API requests. However, any field with an
13977	// empty value appearing in NullFields will be sent to the server as
13978	// null. It is an error if a field in this list has a non-empty value.
13979	// This may be used to include null fields in Patch requests.
13980	NullFields []string `json:"-"`
13981}
13982
13983func (s *GoogleCloudVisionV1p5beta1Page) MarshalJSON() ([]byte, error) {
13984	type NoMethod GoogleCloudVisionV1p5beta1Page
13985	raw := NoMethod(*s)
13986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13987}
13988
13989func (s *GoogleCloudVisionV1p5beta1Page) UnmarshalJSON(data []byte) error {
13990	type NoMethod GoogleCloudVisionV1p5beta1Page
13991	var s1 struct {
13992		Confidence gensupport.JSONFloat64 `json:"confidence"`
13993		*NoMethod
13994	}
13995	s1.NoMethod = (*NoMethod)(s)
13996	if err := json.Unmarshal(data, &s1); err != nil {
13997		return err
13998	}
13999	s.Confidence = float64(s1.Confidence)
14000	return nil
14001}
14002
14003// GoogleCloudVisionV1p5beta1Paragraph: Structural unit of text
14004// representing a number of words in certain order.
14005type GoogleCloudVisionV1p5beta1Paragraph struct {
14006	// BoundingBox: The bounding box for the paragraph.
14007	// The vertices are in the order of top-left, top-right,
14008	// bottom-right,
14009	// bottom-left. When a rotation of the bounding box is detected the
14010	// rotation
14011	// is represented as around the top-left corner as defined when the text
14012	// is
14013	// read in the 'natural' orientation.
14014	// For example:
14015	//   * when the text is horizontal it might look like:
14016	//      0----1
14017	//      |    |
14018	//      3----2
14019	//   * when it's rotated 180 degrees around the top-left corner it
14020	// becomes:
14021	//      2----3
14022	//      |    |
14023	//      1----0
14024	//   and the vertex order will still be (0, 1, 2, 3).
14025	BoundingBox *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingBox,omitempty"`
14026
14027	// Confidence: Confidence of the OCR results for the paragraph. Range
14028	// [0, 1].
14029	Confidence float64 `json:"confidence,omitempty"`
14030
14031	// MergedText: All UTF-8 text detected in this paragraph. This field is
14032	// by default not
14033	// returned unless specified in
14034	// TextDetectionParams.paragraph_filter.
14035	MergedText string `json:"mergedText,omitempty"`
14036
14037	// Property: Additional information detected for the paragraph.
14038	Property *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty `json:"property,omitempty"`
14039
14040	// Words: List of words in this paragraph.
14041	Words []*GoogleCloudVisionV1p5beta1Word `json:"words,omitempty"`
14042
14043	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
14044	// unconditionally include in API requests. By default, fields with
14045	// empty values are omitted from API requests. However, any non-pointer,
14046	// non-interface field appearing in ForceSendFields will be sent to the
14047	// server regardless of whether the field is empty or not. This may be
14048	// used to include empty fields in Patch requests.
14049	ForceSendFields []string `json:"-"`
14050
14051	// NullFields is a list of field names (e.g. "BoundingBox") to include
14052	// in API requests with the JSON null value. By default, fields with
14053	// empty values are omitted from API requests. However, any field with
14054	// an empty value appearing in NullFields will be sent to the server as
14055	// null. It is an error if a field in this list has a non-empty value.
14056	// This may be used to include null fields in Patch requests.
14057	NullFields []string `json:"-"`
14058}
14059
14060func (s *GoogleCloudVisionV1p5beta1Paragraph) MarshalJSON() ([]byte, error) {
14061	type NoMethod GoogleCloudVisionV1p5beta1Paragraph
14062	raw := NoMethod(*s)
14063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14064}
14065
14066func (s *GoogleCloudVisionV1p5beta1Paragraph) UnmarshalJSON(data []byte) error {
14067	type NoMethod GoogleCloudVisionV1p5beta1Paragraph
14068	var s1 struct {
14069		Confidence gensupport.JSONFloat64 `json:"confidence"`
14070		*NoMethod
14071	}
14072	s1.NoMethod = (*NoMethod)(s)
14073	if err := json.Unmarshal(data, &s1); err != nil {
14074		return err
14075	}
14076	s.Confidence = float64(s1.Confidence)
14077	return nil
14078}
14079
14080// GoogleCloudVisionV1p5beta1Position: A 3D position in the image, used
14081// primarily for Face detection landmarks.
14082// A valid Position must have both x and y coordinates.
14083// The position coordinates are in the same scale as the original image.
14084type GoogleCloudVisionV1p5beta1Position struct {
14085	// X: X coordinate.
14086	X float64 `json:"x,omitempty"`
14087
14088	// Y: Y coordinate.
14089	Y float64 `json:"y,omitempty"`
14090
14091	// Z: Z coordinate (or depth).
14092	Z float64 `json:"z,omitempty"`
14093
14094	// ForceSendFields is a list of field names (e.g. "X") to
14095	// unconditionally include in API requests. By default, fields with
14096	// empty values are omitted from API requests. However, any non-pointer,
14097	// non-interface field appearing in ForceSendFields will be sent to the
14098	// server regardless of whether the field is empty or not. This may be
14099	// used to include empty fields in Patch requests.
14100	ForceSendFields []string `json:"-"`
14101
14102	// NullFields is a list of field names (e.g. "X") to include in API
14103	// requests with the JSON null value. By default, fields with empty
14104	// values are omitted from API requests. However, any field with an
14105	// empty value appearing in NullFields will be sent to the server as
14106	// null. It is an error if a field in this list has a non-empty value.
14107	// This may be used to include null fields in Patch requests.
14108	NullFields []string `json:"-"`
14109}
14110
14111func (s *GoogleCloudVisionV1p5beta1Position) MarshalJSON() ([]byte, error) {
14112	type NoMethod GoogleCloudVisionV1p5beta1Position
14113	raw := NoMethod(*s)
14114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14115}
14116
14117func (s *GoogleCloudVisionV1p5beta1Position) UnmarshalJSON(data []byte) error {
14118	type NoMethod GoogleCloudVisionV1p5beta1Position
14119	var s1 struct {
14120		X gensupport.JSONFloat64 `json:"x"`
14121		Y gensupport.JSONFloat64 `json:"y"`
14122		Z gensupport.JSONFloat64 `json:"z"`
14123		*NoMethod
14124	}
14125	s1.NoMethod = (*NoMethod)(s)
14126	if err := json.Unmarshal(data, &s1); err != nil {
14127		return err
14128	}
14129	s.X = float64(s1.X)
14130	s.Y = float64(s1.Y)
14131	s.Z = float64(s1.Z)
14132	return nil
14133}
14134
14135// GoogleCloudVisionV1p5beta1Product: A Product contains
14136// ReferenceImages.
14137type GoogleCloudVisionV1p5beta1Product struct {
14138	// Description: User-provided metadata to be stored with this product.
14139	// Must be at most 4096
14140	// characters long.
14141	Description string `json:"description,omitempty"`
14142
14143	// DisplayName: The user-provided name for this Product. Must not be
14144	// empty. Must be at most
14145	// 4096 characters long.
14146	DisplayName string `json:"displayName,omitempty"`
14147
14148	// Name: The resource name of the product.
14149	//
14150	// Format
14151	// is:
14152	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
14153	//
14154	// This field is ignored when creating a product.
14155	Name string `json:"name,omitempty"`
14156
14157	// ProductCategory: The category for the product identified by the
14158	// reference image. This should
14159	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
14160	// categories
14161	// "homegoods", "apparel", and "toys" are still supported, but these
14162	// should
14163	// not be used for new products.
14164	//
14165	// This field is immutable.
14166	ProductCategory string `json:"productCategory,omitempty"`
14167
14168	// ProductLabels: Key-value pairs that can be attached to a product. At
14169	// query time,
14170	// constraints can be specified based on the product_labels.
14171	//
14172	// Note that integer values can be provided as strings, e.g. "1199".
14173	// Only
14174	// strings with integer values can match a range-based restriction which
14175	// is
14176	// to be supported soon.
14177	//
14178	// Multiple values can be assigned to the same key. One product may have
14179	// up to
14180	// 100 product_labels.
14181	ProductLabels []*GoogleCloudVisionV1p5beta1ProductKeyValue `json:"productLabels,omitempty"`
14182
14183	// ForceSendFields is a list of field names (e.g. "Description") to
14184	// unconditionally include in API requests. By default, fields with
14185	// empty values are omitted from API requests. However, any non-pointer,
14186	// non-interface field appearing in ForceSendFields will be sent to the
14187	// server regardless of whether the field is empty or not. This may be
14188	// used to include empty fields in Patch requests.
14189	ForceSendFields []string `json:"-"`
14190
14191	// NullFields is a list of field names (e.g. "Description") to include
14192	// in API requests with the JSON null value. By default, fields with
14193	// empty values are omitted from API requests. However, any field with
14194	// an empty value appearing in NullFields will be sent to the server as
14195	// null. It is an error if a field in this list has a non-empty value.
14196	// This may be used to include null fields in Patch requests.
14197	NullFields []string `json:"-"`
14198}
14199
14200func (s *GoogleCloudVisionV1p5beta1Product) MarshalJSON() ([]byte, error) {
14201	type NoMethod GoogleCloudVisionV1p5beta1Product
14202	raw := NoMethod(*s)
14203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14204}
14205
14206// GoogleCloudVisionV1p5beta1ProductKeyValue: A product label
14207// represented as a key-value pair.
14208type GoogleCloudVisionV1p5beta1ProductKeyValue struct {
14209	// Key: The key of the label attached to the product. Cannot be empty
14210	// and cannot
14211	// exceed 128 bytes.
14212	Key string `json:"key,omitempty"`
14213
14214	// Value: The value of the label attached to the product. Cannot be
14215	// empty and
14216	// cannot exceed 128 bytes.
14217	Value string `json:"value,omitempty"`
14218
14219	// ForceSendFields is a list of field names (e.g. "Key") to
14220	// unconditionally include in API requests. By default, fields with
14221	// empty values are omitted from API requests. However, any non-pointer,
14222	// non-interface field appearing in ForceSendFields will be sent to the
14223	// server regardless of whether the field is empty or not. This may be
14224	// used to include empty fields in Patch requests.
14225	ForceSendFields []string `json:"-"`
14226
14227	// NullFields is a list of field names (e.g. "Key") to include in API
14228	// requests with the JSON null value. By default, fields with empty
14229	// values are omitted from API requests. However, any field with an
14230	// empty value appearing in NullFields will be sent to the server as
14231	// null. It is an error if a field in this list has a non-empty value.
14232	// This may be used to include null fields in Patch requests.
14233	NullFields []string `json:"-"`
14234}
14235
14236func (s *GoogleCloudVisionV1p5beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
14237	type NoMethod GoogleCloudVisionV1p5beta1ProductKeyValue
14238	raw := NoMethod(*s)
14239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14240}
14241
14242// GoogleCloudVisionV1p5beta1ProductSearchResults: Results for a product
14243// search request.
14244type GoogleCloudVisionV1p5beta1ProductSearchResults struct {
14245	// IndexTime: Timestamp of the index which provided these results.
14246	// Products added to the
14247	// product set and products removed from the product set after this time
14248	// are
14249	// not reflected in the current results.
14250	IndexTime string `json:"indexTime,omitempty"`
14251
14252	// ProductGroupedResults: List of results grouped by products detected
14253	// in the query image. Each entry
14254	// corresponds to one bounding polygon in the query image, and contains
14255	// the
14256	// matching products specific to that region. There may be duplicate
14257	// product
14258	// matches in the union of all the per-product results.
14259	ProductGroupedResults []*GoogleCloudVisionV1p5beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
14260
14261	// Results: List of results, one for each product match.
14262	Results []*GoogleCloudVisionV1p5beta1ProductSearchResultsResult `json:"results,omitempty"`
14263
14264	// ForceSendFields is a list of field names (e.g. "IndexTime") to
14265	// unconditionally include in API requests. By default, fields with
14266	// empty values are omitted from API requests. However, any non-pointer,
14267	// non-interface field appearing in ForceSendFields will be sent to the
14268	// server regardless of whether the field is empty or not. This may be
14269	// used to include empty fields in Patch requests.
14270	ForceSendFields []string `json:"-"`
14271
14272	// NullFields is a list of field names (e.g. "IndexTime") to include in
14273	// API requests with the JSON null value. By default, fields with empty
14274	// values are omitted from API requests. However, any field with an
14275	// empty value appearing in NullFields will be sent to the server as
14276	// null. It is an error if a field in this list has a non-empty value.
14277	// This may be used to include null fields in Patch requests.
14278	NullFields []string `json:"-"`
14279}
14280
14281func (s *GoogleCloudVisionV1p5beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
14282	type NoMethod GoogleCloudVisionV1p5beta1ProductSearchResults
14283	raw := NoMethod(*s)
14284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14285}
14286
14287// GoogleCloudVisionV1p5beta1ProductSearchResultsGroupedResult:
14288// Information about the products similar to a single product in a
14289// query
14290// image.
14291type GoogleCloudVisionV1p5beta1ProductSearchResultsGroupedResult struct {
14292	// BoundingPoly: The bounding polygon around the product detected in the
14293	// query image.
14294	BoundingPoly *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPoly,omitempty"`
14295
14296	// Results: List of results, one for each product match.
14297	Results []*GoogleCloudVisionV1p5beta1ProductSearchResultsResult `json:"results,omitempty"`
14298
14299	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
14300	// unconditionally include in API requests. By default, fields with
14301	// empty values are omitted from API requests. However, any non-pointer,
14302	// non-interface field appearing in ForceSendFields will be sent to the
14303	// server regardless of whether the field is empty or not. This may be
14304	// used to include empty fields in Patch requests.
14305	ForceSendFields []string `json:"-"`
14306
14307	// NullFields is a list of field names (e.g. "BoundingPoly") to include
14308	// in API requests with the JSON null value. By default, fields with
14309	// empty values are omitted from API requests. However, any field with
14310	// an empty value appearing in NullFields will be sent to the server as
14311	// null. It is an error if a field in this list has a non-empty value.
14312	// This may be used to include null fields in Patch requests.
14313	NullFields []string `json:"-"`
14314}
14315
14316func (s *GoogleCloudVisionV1p5beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
14317	type NoMethod GoogleCloudVisionV1p5beta1ProductSearchResultsGroupedResult
14318	raw := NoMethod(*s)
14319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14320}
14321
14322// GoogleCloudVisionV1p5beta1ProductSearchResultsResult: Information
14323// about a product.
14324type GoogleCloudVisionV1p5beta1ProductSearchResultsResult struct {
14325	// Image: The resource name of the image from the product that is the
14326	// closest match
14327	// to the query.
14328	Image string `json:"image,omitempty"`
14329
14330	// Product: The Product.
14331	Product *GoogleCloudVisionV1p5beta1Product `json:"product,omitempty"`
14332
14333	// Score: A confidence level on the match, ranging from 0 (no
14334	// confidence) to
14335	// 1 (full confidence).
14336	Score float64 `json:"score,omitempty"`
14337
14338	// ForceSendFields is a list of field names (e.g. "Image") to
14339	// unconditionally include in API requests. By default, fields with
14340	// empty values are omitted from API requests. However, any non-pointer,
14341	// non-interface field appearing in ForceSendFields will be sent to the
14342	// server regardless of whether the field is empty or not. This may be
14343	// used to include empty fields in Patch requests.
14344	ForceSendFields []string `json:"-"`
14345
14346	// NullFields is a list of field names (e.g. "Image") to include in API
14347	// requests with the JSON null value. By default, fields with empty
14348	// values are omitted from API requests. However, any field with an
14349	// empty value appearing in NullFields will be sent to the server as
14350	// null. It is an error if a field in this list has a non-empty value.
14351	// This may be used to include null fields in Patch requests.
14352	NullFields []string `json:"-"`
14353}
14354
14355func (s *GoogleCloudVisionV1p5beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
14356	type NoMethod GoogleCloudVisionV1p5beta1ProductSearchResultsResult
14357	raw := NoMethod(*s)
14358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14359}
14360
14361func (s *GoogleCloudVisionV1p5beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
14362	type NoMethod GoogleCloudVisionV1p5beta1ProductSearchResultsResult
14363	var s1 struct {
14364		Score gensupport.JSONFloat64 `json:"score"`
14365		*NoMethod
14366	}
14367	s1.NoMethod = (*NoMethod)(s)
14368	if err := json.Unmarshal(data, &s1); err != nil {
14369		return err
14370	}
14371	s.Score = float64(s1.Score)
14372	return nil
14373}
14374
14375// GoogleCloudVisionV1p5beta1Property: A `Property` consists of a
14376// user-supplied name/value pair.
14377type GoogleCloudVisionV1p5beta1Property struct {
14378	// Name: Name of the property.
14379	Name string `json:"name,omitempty"`
14380
14381	// Uint64Value: Value of numeric properties.
14382	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
14383
14384	// Value: Value of the property.
14385	Value string `json:"value,omitempty"`
14386
14387	// ForceSendFields is a list of field names (e.g. "Name") to
14388	// unconditionally include in API requests. By default, fields with
14389	// empty values are omitted from API requests. However, any non-pointer,
14390	// non-interface field appearing in ForceSendFields will be sent to the
14391	// server regardless of whether the field is empty or not. This may be
14392	// used to include empty fields in Patch requests.
14393	ForceSendFields []string `json:"-"`
14394
14395	// NullFields is a list of field names (e.g. "Name") to include in API
14396	// requests with the JSON null value. By default, fields with empty
14397	// values are omitted from API requests. However, any field with an
14398	// empty value appearing in NullFields will be sent to the server as
14399	// null. It is an error if a field in this list has a non-empty value.
14400	// This may be used to include null fields in Patch requests.
14401	NullFields []string `json:"-"`
14402}
14403
14404func (s *GoogleCloudVisionV1p5beta1Property) MarshalJSON() ([]byte, error) {
14405	type NoMethod GoogleCloudVisionV1p5beta1Property
14406	raw := NoMethod(*s)
14407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14408}
14409
14410// GoogleCloudVisionV1p5beta1ReferenceImage: A `ReferenceImage`
14411// represents a product image and its associated metadata,
14412// such as bounding boxes.
14413type GoogleCloudVisionV1p5beta1ReferenceImage struct {
14414	// BoundingPolys: Bounding polygons around the areas of interest in the
14415	// reference image.
14416	// Optional. If this field is empty, the system will try to detect
14417	// regions of
14418	// interest. At most 10 bounding polygons will be used.
14419	//
14420	// The provided shape is converted into a non-rotated rectangle.
14421	// Once
14422	// converted, the small edge of the rectangle must be greater than or
14423	// equal
14424	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
14425	// 1:5
14426	// is not).
14427	BoundingPolys []*GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingPolys,omitempty"`
14428
14429	// Name: The resource name of the reference image.
14430	//
14431	// Format
14432	// is:
14433	//
14434	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
14435	// ceImages/IMAGE_ID`.
14436	//
14437	// This field is ignored when creating a reference image.
14438	Name string `json:"name,omitempty"`
14439
14440	// Uri: The Google Cloud Storage URI of the reference image.
14441	//
14442	// The URI must start with `gs://`.
14443	//
14444	// Required.
14445	Uri string `json:"uri,omitempty"`
14446
14447	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
14448	// unconditionally include in API requests. By default, fields with
14449	// empty values are omitted from API requests. However, any non-pointer,
14450	// non-interface field appearing in ForceSendFields will be sent to the
14451	// server regardless of whether the field is empty or not. This may be
14452	// used to include empty fields in Patch requests.
14453	ForceSendFields []string `json:"-"`
14454
14455	// NullFields is a list of field names (e.g. "BoundingPolys") to include
14456	// in API requests with the JSON null value. By default, fields with
14457	// empty values are omitted from API requests. However, any field with
14458	// an empty value appearing in NullFields will be sent to the server as
14459	// null. It is an error if a field in this list has a non-empty value.
14460	// This may be used to include null fields in Patch requests.
14461	NullFields []string `json:"-"`
14462}
14463
14464func (s *GoogleCloudVisionV1p5beta1ReferenceImage) MarshalJSON() ([]byte, error) {
14465	type NoMethod GoogleCloudVisionV1p5beta1ReferenceImage
14466	raw := NoMethod(*s)
14467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14468}
14469
14470// GoogleCloudVisionV1p5beta1SafeSearchAnnotation: Set of features
14471// pertaining to the image, computed by computer vision
14472// methods over safe-search verticals (for example, adult, spoof,
14473// medical,
14474// violence).
14475type GoogleCloudVisionV1p5beta1SafeSearchAnnotation struct {
14476	// Adult: Represents the adult content likelihood for the image. Adult
14477	// content may
14478	// contain elements such as nudity, pornographic images or cartoons,
14479	// or
14480	// sexual activities.
14481	//
14482	// Possible values:
14483	//   "UNKNOWN" - Unknown likelihood.
14484	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
14485	// specified vertical.
14486	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
14487	// vertical.
14488	//   "POSSIBLE" - It is possible that the image belongs to the specified
14489	// vertical.
14490	//   "LIKELY" - It is likely that the image belongs to the specified
14491	// vertical.
14492	//   "VERY_LIKELY" - It is very likely that the image belongs to the
14493	// specified vertical.
14494	Adult string `json:"adult,omitempty"`
14495
14496	// Medical: Likelihood that this is a medical image.
14497	//
14498	// Possible values:
14499	//   "UNKNOWN" - Unknown likelihood.
14500	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
14501	// specified vertical.
14502	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
14503	// vertical.
14504	//   "POSSIBLE" - It is possible that the image belongs to the specified
14505	// vertical.
14506	//   "LIKELY" - It is likely that the image belongs to the specified
14507	// vertical.
14508	//   "VERY_LIKELY" - It is very likely that the image belongs to the
14509	// specified vertical.
14510	Medical string `json:"medical,omitempty"`
14511
14512	// Racy: Likelihood that the request image contains racy content. Racy
14513	// content may
14514	// include (but is not limited to) skimpy or sheer clothing,
14515	// strategically
14516	// covered nudity, lewd or provocative poses, or close-ups of
14517	// sensitive
14518	// body areas.
14519	//
14520	// Possible values:
14521	//   "UNKNOWN" - Unknown likelihood.
14522	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
14523	// specified vertical.
14524	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
14525	// vertical.
14526	//   "POSSIBLE" - It is possible that the image belongs to the specified
14527	// vertical.
14528	//   "LIKELY" - It is likely that the image belongs to the specified
14529	// vertical.
14530	//   "VERY_LIKELY" - It is very likely that the image belongs to the
14531	// specified vertical.
14532	Racy string `json:"racy,omitempty"`
14533
14534	// Spoof: Spoof likelihood. The likelihood that an modification
14535	// was made to the image's canonical version to make it appear
14536	// funny or offensive.
14537	//
14538	// Possible values:
14539	//   "UNKNOWN" - Unknown likelihood.
14540	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
14541	// specified vertical.
14542	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
14543	// vertical.
14544	//   "POSSIBLE" - It is possible that the image belongs to the specified
14545	// vertical.
14546	//   "LIKELY" - It is likely that the image belongs to the specified
14547	// vertical.
14548	//   "VERY_LIKELY" - It is very likely that the image belongs to the
14549	// specified vertical.
14550	Spoof string `json:"spoof,omitempty"`
14551
14552	// Violence: Likelihood that this image contains violent content.
14553	//
14554	// Possible values:
14555	//   "UNKNOWN" - Unknown likelihood.
14556	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
14557	// specified vertical.
14558	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
14559	// vertical.
14560	//   "POSSIBLE" - It is possible that the image belongs to the specified
14561	// vertical.
14562	//   "LIKELY" - It is likely that the image belongs to the specified
14563	// vertical.
14564	//   "VERY_LIKELY" - It is very likely that the image belongs to the
14565	// specified vertical.
14566	Violence string `json:"violence,omitempty"`
14567
14568	// ForceSendFields is a list of field names (e.g. "Adult") to
14569	// unconditionally include in API requests. By default, fields with
14570	// empty values are omitted from API requests. However, any non-pointer,
14571	// non-interface field appearing in ForceSendFields will be sent to the
14572	// server regardless of whether the field is empty or not. This may be
14573	// used to include empty fields in Patch requests.
14574	ForceSendFields []string `json:"-"`
14575
14576	// NullFields is a list of field names (e.g. "Adult") to include in API
14577	// requests with the JSON null value. By default, fields with empty
14578	// values are omitted from API requests. However, any field with an
14579	// empty value appearing in NullFields will be sent to the server as
14580	// null. It is an error if a field in this list has a non-empty value.
14581	// This may be used to include null fields in Patch requests.
14582	NullFields []string `json:"-"`
14583}
14584
14585func (s *GoogleCloudVisionV1p5beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
14586	type NoMethod GoogleCloudVisionV1p5beta1SafeSearchAnnotation
14587	raw := NoMethod(*s)
14588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14589}
14590
14591// GoogleCloudVisionV1p5beta1Symbol: A single symbol representation.
14592type GoogleCloudVisionV1p5beta1Symbol struct {
14593	// BoundingBox: The bounding box for the symbol.
14594	// The vertices are in the order of top-left, top-right,
14595	// bottom-right,
14596	// bottom-left. When a rotation of the bounding box is detected the
14597	// rotation
14598	// is represented as around the top-left corner as defined when the text
14599	// is
14600	// read in the 'natural' orientation.
14601	// For example:
14602	//   * when the text is horizontal it might look like:
14603	//      0----1
14604	//      |    |
14605	//      3----2
14606	//   * when it's rotated 180 degrees around the top-left corner it
14607	// becomes:
14608	//      2----3
14609	//      |    |
14610	//      1----0
14611	//   and the vertice order will still be (0, 1, 2, 3).
14612	BoundingBox *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingBox,omitempty"`
14613
14614	// Confidence: Confidence of the OCR results for the symbol. Range [0,
14615	// 1].
14616	Confidence float64 `json:"confidence,omitempty"`
14617
14618	// Property: Additional information detected for the symbol.
14619	Property *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty `json:"property,omitempty"`
14620
14621	// Text: The actual UTF-8 representation of the symbol.
14622	Text string `json:"text,omitempty"`
14623
14624	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
14625	// unconditionally include in API requests. By default, fields with
14626	// empty values are omitted from API requests. However, any non-pointer,
14627	// non-interface field appearing in ForceSendFields will be sent to the
14628	// server regardless of whether the field is empty or not. This may be
14629	// used to include empty fields in Patch requests.
14630	ForceSendFields []string `json:"-"`
14631
14632	// NullFields is a list of field names (e.g. "BoundingBox") to include
14633	// in API requests with the JSON null value. By default, fields with
14634	// empty values are omitted from API requests. However, any field with
14635	// an empty value appearing in NullFields will be sent to the server as
14636	// null. It is an error if a field in this list has a non-empty value.
14637	// This may be used to include null fields in Patch requests.
14638	NullFields []string `json:"-"`
14639}
14640
14641func (s *GoogleCloudVisionV1p5beta1Symbol) MarshalJSON() ([]byte, error) {
14642	type NoMethod GoogleCloudVisionV1p5beta1Symbol
14643	raw := NoMethod(*s)
14644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14645}
14646
14647func (s *GoogleCloudVisionV1p5beta1Symbol) UnmarshalJSON(data []byte) error {
14648	type NoMethod GoogleCloudVisionV1p5beta1Symbol
14649	var s1 struct {
14650		Confidence gensupport.JSONFloat64 `json:"confidence"`
14651		*NoMethod
14652	}
14653	s1.NoMethod = (*NoMethod)(s)
14654	if err := json.Unmarshal(data, &s1); err != nil {
14655		return err
14656	}
14657	s.Confidence = float64(s1.Confidence)
14658	return nil
14659}
14660
14661// GoogleCloudVisionV1p5beta1Table: A table representation similar to
14662// HTML table structure.
14663type GoogleCloudVisionV1p5beta1Table struct {
14664	// BodyRows: Body rows of the table
14665	BodyRows []*GoogleCloudVisionV1p5beta1TableTableRow `json:"bodyRows,omitempty"`
14666
14667	// HeaderRows: Header rows of the table
14668	HeaderRows []*GoogleCloudVisionV1p5beta1TableTableRow `json:"headerRows,omitempty"`
14669
14670	// ForceSendFields is a list of field names (e.g. "BodyRows") to
14671	// unconditionally include in API requests. By default, fields with
14672	// empty values are omitted from API requests. However, any non-pointer,
14673	// non-interface field appearing in ForceSendFields will be sent to the
14674	// server regardless of whether the field is empty or not. This may be
14675	// used to include empty fields in Patch requests.
14676	ForceSendFields []string `json:"-"`
14677
14678	// NullFields is a list of field names (e.g. "BodyRows") to include in
14679	// API requests with the JSON null value. By default, fields with empty
14680	// values are omitted from API requests. However, any field with an
14681	// empty value appearing in NullFields will be sent to the server as
14682	// null. It is an error if a field in this list has a non-empty value.
14683	// This may be used to include null fields in Patch requests.
14684	NullFields []string `json:"-"`
14685}
14686
14687func (s *GoogleCloudVisionV1p5beta1Table) MarshalJSON() ([]byte, error) {
14688	type NoMethod GoogleCloudVisionV1p5beta1Table
14689	raw := NoMethod(*s)
14690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14691}
14692
14693// GoogleCloudVisionV1p5beta1TableTableCell: A cell representation
14694// inside of tables.
14695type GoogleCloudVisionV1p5beta1TableTableCell struct {
14696	// ColSpan: How many columns this cell spans.
14697	ColSpan int64 `json:"colSpan,omitempty"`
14698
14699	// RowSpan: How many rows this cell spans.
14700	RowSpan int64 `json:"rowSpan,omitempty"`
14701
14702	// Text: The merged text value of this cell, omitting any deeper
14703	// structural
14704	// information unlike `text_block`. This is useful for simple cells.
14705	Text string `json:"text,omitempty"`
14706
14707	// TextBlock: Text block for this cell which also contains the
14708	// normalized bounding box
14709	// for the cell and deeper structures within a cell if present.
14710	TextBlock *GoogleCloudVisionV1p5beta1Block `json:"textBlock,omitempty"`
14711
14712	// ForceSendFields is a list of field names (e.g. "ColSpan") to
14713	// unconditionally include in API requests. By default, fields with
14714	// empty values are omitted from API requests. However, any non-pointer,
14715	// non-interface field appearing in ForceSendFields will be sent to the
14716	// server regardless of whether the field is empty or not. This may be
14717	// used to include empty fields in Patch requests.
14718	ForceSendFields []string `json:"-"`
14719
14720	// NullFields is a list of field names (e.g. "ColSpan") to include in
14721	// API requests with the JSON null value. By default, fields with empty
14722	// values are omitted from API requests. However, any field with an
14723	// empty value appearing in NullFields will be sent to the server as
14724	// null. It is an error if a field in this list has a non-empty value.
14725	// This may be used to include null fields in Patch requests.
14726	NullFields []string `json:"-"`
14727}
14728
14729func (s *GoogleCloudVisionV1p5beta1TableTableCell) MarshalJSON() ([]byte, error) {
14730	type NoMethod GoogleCloudVisionV1p5beta1TableTableCell
14731	raw := NoMethod(*s)
14732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14733}
14734
14735// GoogleCloudVisionV1p5beta1TableTableRow: A row of table cells.
14736type GoogleCloudVisionV1p5beta1TableTableRow struct {
14737	// Cells: Cells that make up this row.
14738	Cells []*GoogleCloudVisionV1p5beta1TableTableCell `json:"cells,omitempty"`
14739
14740	// ForceSendFields is a list of field names (e.g. "Cells") to
14741	// unconditionally include in API requests. By default, fields with
14742	// empty values are omitted from API requests. However, any non-pointer,
14743	// non-interface field appearing in ForceSendFields will be sent to the
14744	// server regardless of whether the field is empty or not. This may be
14745	// used to include empty fields in Patch requests.
14746	ForceSendFields []string `json:"-"`
14747
14748	// NullFields is a list of field names (e.g. "Cells") to include in API
14749	// requests with the JSON null value. By default, fields with empty
14750	// values are omitted from API requests. However, any field with an
14751	// empty value appearing in NullFields will be sent to the server as
14752	// null. It is an error if a field in this list has a non-empty value.
14753	// This may be used to include null fields in Patch requests.
14754	NullFields []string `json:"-"`
14755}
14756
14757func (s *GoogleCloudVisionV1p5beta1TableTableRow) MarshalJSON() ([]byte, error) {
14758	type NoMethod GoogleCloudVisionV1p5beta1TableTableRow
14759	raw := NoMethod(*s)
14760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14761}
14762
14763// GoogleCloudVisionV1p5beta1TextAnnotation: TextAnnotation contains a
14764// structured representation of OCR extracted text.
14765// The hierarchy of an OCR extracted text structure is like this:
14766//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
14767// Symbol
14768// Each structural component, starting from Page, may further have their
14769// own
14770// properties. Properties describe detected languages, breaks etc..
14771// Please refer
14772// to the TextAnnotation.TextProperty message definition below for
14773// more
14774// detail.
14775type GoogleCloudVisionV1p5beta1TextAnnotation struct {
14776	// Pages: List of pages detected by OCR.
14777	Pages []*GoogleCloudVisionV1p5beta1Page `json:"pages,omitempty"`
14778
14779	// Text: UTF-8 text detected on the pages.
14780	Text string `json:"text,omitempty"`
14781
14782	// ForceSendFields is a list of field names (e.g. "Pages") to
14783	// unconditionally include in API requests. By default, fields with
14784	// empty values are omitted from API requests. However, any non-pointer,
14785	// non-interface field appearing in ForceSendFields will be sent to the
14786	// server regardless of whether the field is empty or not. This may be
14787	// used to include empty fields in Patch requests.
14788	ForceSendFields []string `json:"-"`
14789
14790	// NullFields is a list of field names (e.g. "Pages") to include in API
14791	// requests with the JSON null value. By default, fields with empty
14792	// values are omitted from API requests. However, any field with an
14793	// empty value appearing in NullFields will be sent to the server as
14794	// null. It is an error if a field in this list has a non-empty value.
14795	// This may be used to include null fields in Patch requests.
14796	NullFields []string `json:"-"`
14797}
14798
14799func (s *GoogleCloudVisionV1p5beta1TextAnnotation) MarshalJSON() ([]byte, error) {
14800	type NoMethod GoogleCloudVisionV1p5beta1TextAnnotation
14801	raw := NoMethod(*s)
14802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14803}
14804
14805// GoogleCloudVisionV1p5beta1TextAnnotationDetectedBreak: Detected start
14806// or end of a structural component.
14807type GoogleCloudVisionV1p5beta1TextAnnotationDetectedBreak struct {
14808	// IsPrefix: True if break prepends the element.
14809	IsPrefix bool `json:"isPrefix,omitempty"`
14810
14811	// Type: Detected break type.
14812	//
14813	// Possible values:
14814	//   "UNKNOWN" - Unknown break label type.
14815	//   "SPACE" - Regular space.
14816	//   "SURE_SPACE" - Sure space (very wide).
14817	//   "EOL_SURE_SPACE" - Line-wrapping break.
14818	//   "HYPHEN" - End-line hyphen that is not present in text; does not
14819	// co-occur with
14820	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
14821	//   "LINE_BREAK" - Line break that ends a paragraph.
14822	Type string `json:"type,omitempty"`
14823
14824	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
14825	// unconditionally include in API requests. By default, fields with
14826	// empty values are omitted from API requests. However, any non-pointer,
14827	// non-interface field appearing in ForceSendFields will be sent to the
14828	// server regardless of whether the field is empty or not. This may be
14829	// used to include empty fields in Patch requests.
14830	ForceSendFields []string `json:"-"`
14831
14832	// NullFields is a list of field names (e.g. "IsPrefix") to include in
14833	// API requests with the JSON null value. By default, fields with empty
14834	// values are omitted from API requests. However, any field with an
14835	// empty value appearing in NullFields will be sent to the server as
14836	// null. It is an error if a field in this list has a non-empty value.
14837	// This may be used to include null fields in Patch requests.
14838	NullFields []string `json:"-"`
14839}
14840
14841func (s *GoogleCloudVisionV1p5beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
14842	type NoMethod GoogleCloudVisionV1p5beta1TextAnnotationDetectedBreak
14843	raw := NoMethod(*s)
14844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14845}
14846
14847// GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage: Detected
14848// language for a structural component.
14849type GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage struct {
14850	// Confidence: Confidence of detected language. Range [0, 1].
14851	Confidence float64 `json:"confidence,omitempty"`
14852
14853	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
14854	// For more
14855	// information,
14856	// see
14857	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
14858	LanguageCode string `json:"languageCode,omitempty"`
14859
14860	// ForceSendFields is a list of field names (e.g. "Confidence") to
14861	// unconditionally include in API requests. By default, fields with
14862	// empty values are omitted from API requests. However, any non-pointer,
14863	// non-interface field appearing in ForceSendFields will be sent to the
14864	// server regardless of whether the field is empty or not. This may be
14865	// used to include empty fields in Patch requests.
14866	ForceSendFields []string `json:"-"`
14867
14868	// NullFields is a list of field names (e.g. "Confidence") to include in
14869	// API requests with the JSON null value. By default, fields with empty
14870	// values are omitted from API requests. However, any field with an
14871	// empty value appearing in NullFields will be sent to the server as
14872	// null. It is an error if a field in this list has a non-empty value.
14873	// This may be used to include null fields in Patch requests.
14874	NullFields []string `json:"-"`
14875}
14876
14877func (s *GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
14878	type NoMethod GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage
14879	raw := NoMethod(*s)
14880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14881}
14882
14883func (s *GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
14884	type NoMethod GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage
14885	var s1 struct {
14886		Confidence gensupport.JSONFloat64 `json:"confidence"`
14887		*NoMethod
14888	}
14889	s1.NoMethod = (*NoMethod)(s)
14890	if err := json.Unmarshal(data, &s1); err != nil {
14891		return err
14892	}
14893	s.Confidence = float64(s1.Confidence)
14894	return nil
14895}
14896
14897// GoogleCloudVisionV1p5beta1TextAnnotationTextProperty: Additional
14898// information detected on the structural component.
14899type GoogleCloudVisionV1p5beta1TextAnnotationTextProperty struct {
14900	// DetectedBreak: Detected start or end of a text segment.
14901	DetectedBreak *GoogleCloudVisionV1p5beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
14902
14903	// DetectedLanguages: A list of detected languages together with
14904	// confidence.
14905	DetectedLanguages []*GoogleCloudVisionV1p5beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
14906
14907	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
14908	// unconditionally include in API requests. By default, fields with
14909	// empty values are omitted from API requests. However, any non-pointer,
14910	// non-interface field appearing in ForceSendFields will be sent to the
14911	// server regardless of whether the field is empty or not. This may be
14912	// used to include empty fields in Patch requests.
14913	ForceSendFields []string `json:"-"`
14914
14915	// NullFields is a list of field names (e.g. "DetectedBreak") to include
14916	// in API requests with the JSON null value. By default, fields with
14917	// empty values are omitted from API requests. However, any field with
14918	// an empty value appearing in NullFields will be sent to the server as
14919	// null. It is an error if a field in this list has a non-empty value.
14920	// This may be used to include null fields in Patch requests.
14921	NullFields []string `json:"-"`
14922}
14923
14924func (s *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
14925	type NoMethod GoogleCloudVisionV1p5beta1TextAnnotationTextProperty
14926	raw := NoMethod(*s)
14927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14928}
14929
14930// GoogleCloudVisionV1p5beta1Vertex: A vertex represents a 2D point in
14931// the image.
14932// NOTE: the vertex coordinates are in the same scale as the original
14933// image.
14934type GoogleCloudVisionV1p5beta1Vertex struct {
14935	// X: X coordinate.
14936	X int64 `json:"x,omitempty"`
14937
14938	// Y: Y coordinate.
14939	Y int64 `json:"y,omitempty"`
14940
14941	// ForceSendFields is a list of field names (e.g. "X") to
14942	// unconditionally include in API requests. By default, fields with
14943	// empty values are omitted from API requests. However, any non-pointer,
14944	// non-interface field appearing in ForceSendFields will be sent to the
14945	// server regardless of whether the field is empty or not. This may be
14946	// used to include empty fields in Patch requests.
14947	ForceSendFields []string `json:"-"`
14948
14949	// NullFields is a list of field names (e.g. "X") to include in API
14950	// requests with the JSON null value. By default, fields with empty
14951	// values are omitted from API requests. However, any field with an
14952	// empty value appearing in NullFields will be sent to the server as
14953	// null. It is an error if a field in this list has a non-empty value.
14954	// This may be used to include null fields in Patch requests.
14955	NullFields []string `json:"-"`
14956}
14957
14958func (s *GoogleCloudVisionV1p5beta1Vertex) MarshalJSON() ([]byte, error) {
14959	type NoMethod GoogleCloudVisionV1p5beta1Vertex
14960	raw := NoMethod(*s)
14961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14962}
14963
14964// GoogleCloudVisionV1p5beta1WebDetection: Relevant information for the
14965// image from the Internet.
14966type GoogleCloudVisionV1p5beta1WebDetection struct {
14967	// BestGuessLabels: The service's best guess as to the topic of the
14968	// request image.
14969	// Inferred from similar images on the open web.
14970	BestGuessLabels []*GoogleCloudVisionV1p5beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
14971
14972	// FullMatchingImages: Fully matching images from the Internet.
14973	// Can include resized copies of the query image.
14974	FullMatchingImages []*GoogleCloudVisionV1p5beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
14975
14976	// PagesWithMatchingImages: Web pages containing the matching images
14977	// from the Internet.
14978	PagesWithMatchingImages []*GoogleCloudVisionV1p5beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
14979
14980	// PartialMatchingImages: Partial matching images from the
14981	// Internet.
14982	// Those images are similar enough to share some key-point features.
14983	// For
14984	// example an original image will likely have partial matching for its
14985	// crops.
14986	PartialMatchingImages []*GoogleCloudVisionV1p5beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
14987
14988	// VisuallySimilarImages: The visually similar image results.
14989	VisuallySimilarImages []*GoogleCloudVisionV1p5beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
14990
14991	// WebEntities: Deduced entities from similar images on the Internet.
14992	WebEntities []*GoogleCloudVisionV1p5beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
14993
14994	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
14995	// unconditionally include in API requests. By default, fields with
14996	// empty values are omitted from API requests. However, any non-pointer,
14997	// non-interface field appearing in ForceSendFields will be sent to the
14998	// server regardless of whether the field is empty or not. This may be
14999	// used to include empty fields in Patch requests.
15000	ForceSendFields []string `json:"-"`
15001
15002	// NullFields is a list of field names (e.g. "BestGuessLabels") to
15003	// include in API requests with the JSON null value. By default, fields
15004	// with empty values are omitted from API requests. However, any field
15005	// with an empty value appearing in NullFields will be sent to the
15006	// server as null. It is an error if a field in this list has a
15007	// non-empty value. This may be used to include null fields in Patch
15008	// requests.
15009	NullFields []string `json:"-"`
15010}
15011
15012func (s *GoogleCloudVisionV1p5beta1WebDetection) MarshalJSON() ([]byte, error) {
15013	type NoMethod GoogleCloudVisionV1p5beta1WebDetection
15014	raw := NoMethod(*s)
15015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15016}
15017
15018// GoogleCloudVisionV1p5beta1WebDetectionWebEntity: Entity deduced from
15019// similar images on the Internet.
15020type GoogleCloudVisionV1p5beta1WebDetectionWebEntity struct {
15021	// Description: Canonical description of the entity, in English.
15022	Description string `json:"description,omitempty"`
15023
15024	// EntityId: Opaque entity ID.
15025	EntityId string `json:"entityId,omitempty"`
15026
15027	// Score: Overall relevancy score for the entity.
15028	// Not normalized and not comparable across different image queries.
15029	Score float64 `json:"score,omitempty"`
15030
15031	// ForceSendFields is a list of field names (e.g. "Description") to
15032	// unconditionally include in API requests. By default, fields with
15033	// empty values are omitted from API requests. However, any non-pointer,
15034	// non-interface field appearing in ForceSendFields will be sent to the
15035	// server regardless of whether the field is empty or not. This may be
15036	// used to include empty fields in Patch requests.
15037	ForceSendFields []string `json:"-"`
15038
15039	// NullFields is a list of field names (e.g. "Description") to include
15040	// in API requests with the JSON null value. By default, fields with
15041	// empty values are omitted from API requests. However, any field with
15042	// an empty value appearing in NullFields will be sent to the server as
15043	// null. It is an error if a field in this list has a non-empty value.
15044	// This may be used to include null fields in Patch requests.
15045	NullFields []string `json:"-"`
15046}
15047
15048func (s *GoogleCloudVisionV1p5beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
15049	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebEntity
15050	raw := NoMethod(*s)
15051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15052}
15053
15054func (s *GoogleCloudVisionV1p5beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
15055	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebEntity
15056	var s1 struct {
15057		Score gensupport.JSONFloat64 `json:"score"`
15058		*NoMethod
15059	}
15060	s1.NoMethod = (*NoMethod)(s)
15061	if err := json.Unmarshal(data, &s1); err != nil {
15062		return err
15063	}
15064	s.Score = float64(s1.Score)
15065	return nil
15066}
15067
15068// GoogleCloudVisionV1p5beta1WebDetectionWebImage: Metadata for online
15069// images.
15070type GoogleCloudVisionV1p5beta1WebDetectionWebImage struct {
15071	// Score: (Deprecated) Overall relevancy score for the image.
15072	Score float64 `json:"score,omitempty"`
15073
15074	// Url: The result image URL.
15075	Url string `json:"url,omitempty"`
15076
15077	// ForceSendFields is a list of field names (e.g. "Score") to
15078	// unconditionally include in API requests. By default, fields with
15079	// empty values are omitted from API requests. However, any non-pointer,
15080	// non-interface field appearing in ForceSendFields will be sent to the
15081	// server regardless of whether the field is empty or not. This may be
15082	// used to include empty fields in Patch requests.
15083	ForceSendFields []string `json:"-"`
15084
15085	// NullFields is a list of field names (e.g. "Score") to include in API
15086	// requests with the JSON null value. By default, fields with empty
15087	// values are omitted from API requests. However, any field with an
15088	// empty value appearing in NullFields will be sent to the server as
15089	// null. It is an error if a field in this list has a non-empty value.
15090	// This may be used to include null fields in Patch requests.
15091	NullFields []string `json:"-"`
15092}
15093
15094func (s *GoogleCloudVisionV1p5beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
15095	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebImage
15096	raw := NoMethod(*s)
15097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15098}
15099
15100func (s *GoogleCloudVisionV1p5beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
15101	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebImage
15102	var s1 struct {
15103		Score gensupport.JSONFloat64 `json:"score"`
15104		*NoMethod
15105	}
15106	s1.NoMethod = (*NoMethod)(s)
15107	if err := json.Unmarshal(data, &s1); err != nil {
15108		return err
15109	}
15110	s.Score = float64(s1.Score)
15111	return nil
15112}
15113
15114// GoogleCloudVisionV1p5beta1WebDetectionWebLabel: Label to provide
15115// extra metadata for the web detection.
15116type GoogleCloudVisionV1p5beta1WebDetectionWebLabel struct {
15117	// Label: Label for extra metadata.
15118	Label string `json:"label,omitempty"`
15119
15120	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
15121	// or "sr-Latn".
15122	// For more information,
15123	// see
15124	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
15125	LanguageCode string `json:"languageCode,omitempty"`
15126
15127	// ForceSendFields is a list of field names (e.g. "Label") to
15128	// unconditionally include in API requests. By default, fields with
15129	// empty values are omitted from API requests. However, any non-pointer,
15130	// non-interface field appearing in ForceSendFields will be sent to the
15131	// server regardless of whether the field is empty or not. This may be
15132	// used to include empty fields in Patch requests.
15133	ForceSendFields []string `json:"-"`
15134
15135	// NullFields is a list of field names (e.g. "Label") to include in API
15136	// requests with the JSON null value. By default, fields with empty
15137	// values are omitted from API requests. However, any field with an
15138	// empty value appearing in NullFields will be sent to the server as
15139	// null. It is an error if a field in this list has a non-empty value.
15140	// This may be used to include null fields in Patch requests.
15141	NullFields []string `json:"-"`
15142}
15143
15144func (s *GoogleCloudVisionV1p5beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
15145	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebLabel
15146	raw := NoMethod(*s)
15147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15148}
15149
15150// GoogleCloudVisionV1p5beta1WebDetectionWebPage: Metadata for web
15151// pages.
15152type GoogleCloudVisionV1p5beta1WebDetectionWebPage struct {
15153	// FullMatchingImages: Fully matching images on the page.
15154	// Can include resized copies of the query image.
15155	FullMatchingImages []*GoogleCloudVisionV1p5beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
15156
15157	// PageTitle: Title for the web page, may contain HTML markups.
15158	PageTitle string `json:"pageTitle,omitempty"`
15159
15160	// PartialMatchingImages: Partial matching images on the page.
15161	// Those images are similar enough to share some key-point features.
15162	// For
15163	// example an original image will likely have partial matching for
15164	// its
15165	// crops.
15166	PartialMatchingImages []*GoogleCloudVisionV1p5beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
15167
15168	// Score: (Deprecated) Overall relevancy score for the web page.
15169	Score float64 `json:"score,omitempty"`
15170
15171	// Url: The result web page URL.
15172	Url string `json:"url,omitempty"`
15173
15174	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
15175	// to unconditionally include in API requests. By default, fields with
15176	// empty values are omitted from API requests. However, any non-pointer,
15177	// non-interface field appearing in ForceSendFields will be sent to the
15178	// server regardless of whether the field is empty or not. This may be
15179	// used to include empty fields in Patch requests.
15180	ForceSendFields []string `json:"-"`
15181
15182	// NullFields is a list of field names (e.g. "FullMatchingImages") to
15183	// include in API requests with the JSON null value. By default, fields
15184	// with empty values are omitted from API requests. However, any field
15185	// with an empty value appearing in NullFields will be sent to the
15186	// server as null. It is an error if a field in this list has a
15187	// non-empty value. This may be used to include null fields in Patch
15188	// requests.
15189	NullFields []string `json:"-"`
15190}
15191
15192func (s *GoogleCloudVisionV1p5beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
15193	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebPage
15194	raw := NoMethod(*s)
15195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15196}
15197
15198func (s *GoogleCloudVisionV1p5beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
15199	type NoMethod GoogleCloudVisionV1p5beta1WebDetectionWebPage
15200	var s1 struct {
15201		Score gensupport.JSONFloat64 `json:"score"`
15202		*NoMethod
15203	}
15204	s1.NoMethod = (*NoMethod)(s)
15205	if err := json.Unmarshal(data, &s1); err != nil {
15206		return err
15207	}
15208	s.Score = float64(s1.Score)
15209	return nil
15210}
15211
15212// GoogleCloudVisionV1p5beta1Word: A word representation.
15213type GoogleCloudVisionV1p5beta1Word struct {
15214	// BoundingBox: The bounding box for the word.
15215	// The vertices are in the order of top-left, top-right,
15216	// bottom-right,
15217	// bottom-left. When a rotation of the bounding box is detected the
15218	// rotation
15219	// is represented as around the top-left corner as defined when the text
15220	// is
15221	// read in the 'natural' orientation.
15222	// For example:
15223	//   * when the text is horizontal it might look like:
15224	//      0----1
15225	//      |    |
15226	//      3----2
15227	//   * when it's rotated 180 degrees around the top-left corner it
15228	// becomes:
15229	//      2----3
15230	//      |    |
15231	//      1----0
15232	//   and the vertex order will still be (0, 1, 2, 3).
15233	BoundingBox *GoogleCloudVisionV1p5beta1BoundingPoly `json:"boundingBox,omitempty"`
15234
15235	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
15236	Confidence float64 `json:"confidence,omitempty"`
15237
15238	// MergedText: All UTF-8 text detected in this word. This field is by
15239	// default not
15240	// returned unless specified in TextDetectionParams.word_filter.
15241	MergedText string `json:"mergedText,omitempty"`
15242
15243	// Property: Additional information detected for the word.
15244	Property *GoogleCloudVisionV1p5beta1TextAnnotationTextProperty `json:"property,omitempty"`
15245
15246	// Symbols: List of symbols in the word.
15247	// The order of the symbols follows the natural reading order.
15248	Symbols []*GoogleCloudVisionV1p5beta1Symbol `json:"symbols,omitempty"`
15249
15250	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
15251	// unconditionally include in API requests. By default, fields with
15252	// empty values are omitted from API requests. However, any non-pointer,
15253	// non-interface field appearing in ForceSendFields will be sent to the
15254	// server regardless of whether the field is empty or not. This may be
15255	// used to include empty fields in Patch requests.
15256	ForceSendFields []string `json:"-"`
15257
15258	// NullFields is a list of field names (e.g. "BoundingBox") to include
15259	// in API requests with the JSON null value. By default, fields with
15260	// empty values are omitted from API requests. However, any field with
15261	// an empty value appearing in NullFields will be sent to the server as
15262	// null. It is an error if a field in this list has a non-empty value.
15263	// This may be used to include null fields in Patch requests.
15264	NullFields []string `json:"-"`
15265}
15266
15267func (s *GoogleCloudVisionV1p5beta1Word) MarshalJSON() ([]byte, error) {
15268	type NoMethod GoogleCloudVisionV1p5beta1Word
15269	raw := NoMethod(*s)
15270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15271}
15272
15273func (s *GoogleCloudVisionV1p5beta1Word) UnmarshalJSON(data []byte) error {
15274	type NoMethod GoogleCloudVisionV1p5beta1Word
15275	var s1 struct {
15276		Confidence gensupport.JSONFloat64 `json:"confidence"`
15277		*NoMethod
15278	}
15279	s1.NoMethod = (*NoMethod)(s)
15280	if err := json.Unmarshal(data, &s1); err != nil {
15281		return err
15282	}
15283	s.Confidence = float64(s1.Confidence)
15284	return nil
15285}
15286
15287// GroupedResult: Information about the products similar to a single
15288// product in a query
15289// image.
15290type GroupedResult struct {
15291	// BoundingPoly: The bounding polygon around the product detected in the
15292	// query image.
15293	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
15294
15295	// Results: List of results, one for each product match.
15296	Results []*Result `json:"results,omitempty"`
15297
15298	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
15299	// unconditionally include in API requests. By default, fields with
15300	// empty values are omitted from API requests. However, any non-pointer,
15301	// non-interface field appearing in ForceSendFields will be sent to the
15302	// server regardless of whether the field is empty or not. This may be
15303	// used to include empty fields in Patch requests.
15304	ForceSendFields []string `json:"-"`
15305
15306	// NullFields is a list of field names (e.g. "BoundingPoly") to include
15307	// in API requests with the JSON null value. By default, fields with
15308	// empty values are omitted from API requests. However, any field with
15309	// an empty value appearing in NullFields will be sent to the server as
15310	// null. It is an error if a field in this list has a non-empty value.
15311	// This may be used to include null fields in Patch requests.
15312	NullFields []string `json:"-"`
15313}
15314
15315func (s *GroupedResult) MarshalJSON() ([]byte, error) {
15316	type NoMethod GroupedResult
15317	raw := NoMethod(*s)
15318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15319}
15320
15321// ImageAnnotationContext: If an image was produced from a file (e.g. a
15322// PDF), this message gives
15323// information about the source of that image.
15324type ImageAnnotationContext struct {
15325	// PageNumber: If the file was a PDF or TIFF, this field gives the page
15326	// number within
15327	// the file used to produce the image.
15328	PageNumber int64 `json:"pageNumber,omitempty"`
15329
15330	// Uri: The URI of the file used to produce the image.
15331	Uri string `json:"uri,omitempty"`
15332
15333	// ForceSendFields is a list of field names (e.g. "PageNumber") to
15334	// unconditionally include in API requests. By default, fields with
15335	// empty values are omitted from API requests. However, any non-pointer,
15336	// non-interface field appearing in ForceSendFields will be sent to the
15337	// server regardless of whether the field is empty or not. This may be
15338	// used to include empty fields in Patch requests.
15339	ForceSendFields []string `json:"-"`
15340
15341	// NullFields is a list of field names (e.g. "PageNumber") to include in
15342	// API requests with the JSON null value. By default, fields with empty
15343	// values are omitted from API requests. However, any field with an
15344	// empty value appearing in NullFields will be sent to the server as
15345	// null. It is an error if a field in this list has a non-empty value.
15346	// This may be used to include null fields in Patch requests.
15347	NullFields []string `json:"-"`
15348}
15349
15350func (s *ImageAnnotationContext) MarshalJSON() ([]byte, error) {
15351	type NoMethod ImageAnnotationContext
15352	raw := NoMethod(*s)
15353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15354}
15355
15356// ImageProperties: Stores image properties, such as dominant colors.
15357type ImageProperties struct {
15358	// DominantColors: If present, dominant colors completed successfully.
15359	DominantColors *DominantColorsAnnotation `json:"dominantColors,omitempty"`
15360
15361	// ForceSendFields is a list of field names (e.g. "DominantColors") to
15362	// unconditionally include in API requests. By default, fields with
15363	// empty values are omitted from API requests. However, any non-pointer,
15364	// non-interface field appearing in ForceSendFields will be sent to the
15365	// server regardless of whether the field is empty or not. This may be
15366	// used to include empty fields in Patch requests.
15367	ForceSendFields []string `json:"-"`
15368
15369	// NullFields is a list of field names (e.g. "DominantColors") to
15370	// include in API requests with the JSON null value. By default, fields
15371	// with empty values are omitted from API requests. However, any field
15372	// with an empty value appearing in NullFields will be sent to the
15373	// server as null. It is an error if a field in this list has a
15374	// non-empty value. This may be used to include null fields in Patch
15375	// requests.
15376	NullFields []string `json:"-"`
15377}
15378
15379func (s *ImageProperties) MarshalJSON() ([]byte, error) {
15380	type NoMethod ImageProperties
15381	raw := NoMethod(*s)
15382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15383}
15384
15385// ImportProductSetsResponse: Response message for the
15386// `ImportProductSets` method.
15387//
15388// This message is returned by
15389// the
15390// google.longrunning.Operations.GetOperation method in the
15391// returned
15392// google.longrunning.Operation.response field.
15393type ImportProductSetsResponse struct {
15394	// ReferenceImages: The list of reference_images that are imported
15395	// successfully.
15396	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
15397
15398	// Statuses: The rpc status for each ImportProductSet request, including
15399	// both successes
15400	// and errors.
15401	//
15402	// The number of statuses here matches the number of lines in the csv
15403	// file,
15404	// and statuses[i] stores the success or failure status of processing
15405	// the i-th
15406	// line of the csv, starting from line 0.
15407	Statuses []*Status `json:"statuses,omitempty"`
15408
15409	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
15410	// unconditionally include in API requests. By default, fields with
15411	// empty values are omitted from API requests. However, any non-pointer,
15412	// non-interface field appearing in ForceSendFields will be sent to the
15413	// server regardless of whether the field is empty or not. This may be
15414	// used to include empty fields in Patch requests.
15415	ForceSendFields []string `json:"-"`
15416
15417	// NullFields is a list of field names (e.g. "ReferenceImages") to
15418	// include in API requests with the JSON null value. By default, fields
15419	// with empty values are omitted from API requests. However, any field
15420	// with an empty value appearing in NullFields will be sent to the
15421	// server as null. It is an error if a field in this list has a
15422	// non-empty value. This may be used to include null fields in Patch
15423	// requests.
15424	NullFields []string `json:"-"`
15425}
15426
15427func (s *ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
15428	type NoMethod ImportProductSetsResponse
15429	raw := NoMethod(*s)
15430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15431}
15432
15433// InputConfig: The desired input location and metadata.
15434type InputConfig struct {
15435	// Content: File content, represented as a stream of bytes.
15436	// Note: As with all `bytes` fields, protobuffers use a pure
15437	// binary
15438	// representation, whereas JSON representations use base64.
15439	//
15440	// Currently, this field only works for BatchAnnotateFiles requests. It
15441	// does
15442	// not work for AsyncBatchAnnotateFiles requests.
15443	Content string `json:"content,omitempty"`
15444
15445	// GcsSource: The Google Cloud Storage location to read the input from.
15446	GcsSource *GcsSource `json:"gcsSource,omitempty"`
15447
15448	// MimeType: The type of the file. Currently only "application/pdf",
15449	// "image/tiff" and
15450	// "image/gif" are supported. Wildcards are not supported.
15451	MimeType string `json:"mimeType,omitempty"`
15452
15453	// ForceSendFields is a list of field names (e.g. "Content") to
15454	// unconditionally include in API requests. By default, fields with
15455	// empty values are omitted from API requests. However, any non-pointer,
15456	// non-interface field appearing in ForceSendFields will be sent to the
15457	// server regardless of whether the field is empty or not. This may be
15458	// used to include empty fields in Patch requests.
15459	ForceSendFields []string `json:"-"`
15460
15461	// NullFields is a list of field names (e.g. "Content") to include in
15462	// API requests with the JSON null value. By default, fields with empty
15463	// values are omitted from API requests. However, any field with an
15464	// empty value appearing in NullFields will be sent to the server as
15465	// null. It is an error if a field in this list has a non-empty value.
15466	// This may be used to include null fields in Patch requests.
15467	NullFields []string `json:"-"`
15468}
15469
15470func (s *InputConfig) MarshalJSON() ([]byte, error) {
15471	type NoMethod InputConfig
15472	raw := NoMethod(*s)
15473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15474}
15475
15476// KeyValue: A product label represented as a key-value pair.
15477type KeyValue struct {
15478	// Key: The key of the label attached to the product. Cannot be empty
15479	// and cannot
15480	// exceed 128 bytes.
15481	Key string `json:"key,omitempty"`
15482
15483	// Value: The value of the label attached to the product. Cannot be
15484	// empty and
15485	// cannot exceed 128 bytes.
15486	Value string `json:"value,omitempty"`
15487
15488	// ForceSendFields is a list of field names (e.g. "Key") to
15489	// unconditionally include in API requests. By default, fields with
15490	// empty values are omitted from API requests. However, any non-pointer,
15491	// non-interface field appearing in ForceSendFields will be sent to the
15492	// server regardless of whether the field is empty or not. This may be
15493	// used to include empty fields in Patch requests.
15494	ForceSendFields []string `json:"-"`
15495
15496	// NullFields is a list of field names (e.g. "Key") to include in API
15497	// requests with the JSON null value. By default, fields with empty
15498	// values are omitted from API requests. However, any field with an
15499	// empty value appearing in NullFields will be sent to the server as
15500	// null. It is an error if a field in this list has a non-empty value.
15501	// This may be used to include null fields in Patch requests.
15502	NullFields []string `json:"-"`
15503}
15504
15505func (s *KeyValue) MarshalJSON() ([]byte, error) {
15506	type NoMethod KeyValue
15507	raw := NoMethod(*s)
15508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15509}
15510
15511// Landmark: A face-specific landmark (for example, a face feature).
15512type Landmark struct {
15513	// Position: Face landmark position.
15514	Position *Position `json:"position,omitempty"`
15515
15516	// Type: Face landmark type.
15517	//
15518	// Possible values:
15519	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
15520	// filled.
15521	//   "LEFT_EYE" - Left eye.
15522	//   "RIGHT_EYE" - Right eye.
15523	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
15524	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
15525	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
15526	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
15527	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
15528	//   "NOSE_TIP" - Nose tip.
15529	//   "UPPER_LIP" - Upper lip.
15530	//   "LOWER_LIP" - Lower lip.
15531	//   "MOUTH_LEFT" - Mouth left.
15532	//   "MOUTH_RIGHT" - Mouth right.
15533	//   "MOUTH_CENTER" - Mouth center.
15534	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
15535	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
15536	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
15537	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
15538	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
15539	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
15540	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
15541	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
15542	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
15543	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
15544	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
15545	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
15546	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
15547	//   "LEFT_EAR_TRAGION" - Left ear tragion.
15548	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
15549	//   "LEFT_EYE_PUPIL" - Left eye pupil.
15550	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
15551	//   "FOREHEAD_GLABELLA" - Forehead glabella.
15552	//   "CHIN_GNATHION" - Chin gnathion.
15553	//   "CHIN_LEFT_GONION" - Chin left gonion.
15554	//   "CHIN_RIGHT_GONION" - Chin right gonion.
15555	Type string `json:"type,omitempty"`
15556
15557	// ForceSendFields is a list of field names (e.g. "Position") to
15558	// unconditionally include in API requests. By default, fields with
15559	// empty values are omitted from API requests. However, any non-pointer,
15560	// non-interface field appearing in ForceSendFields will be sent to the
15561	// server regardless of whether the field is empty or not. This may be
15562	// used to include empty fields in Patch requests.
15563	ForceSendFields []string `json:"-"`
15564
15565	// NullFields is a list of field names (e.g. "Position") to include in
15566	// API requests with the JSON null value. By default, fields with empty
15567	// values are omitted from API requests. However, any field with an
15568	// empty value appearing in NullFields will be sent to the server as
15569	// null. It is an error if a field in this list has a non-empty value.
15570	// This may be used to include null fields in Patch requests.
15571	NullFields []string `json:"-"`
15572}
15573
15574func (s *Landmark) MarshalJSON() ([]byte, error) {
15575	type NoMethod Landmark
15576	raw := NoMethod(*s)
15577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15578}
15579
15580// LatLng: An object representing a latitude/longitude pair. This is
15581// expressed as a pair
15582// of doubles representing degrees latitude and degrees longitude.
15583// Unless
15584// specified otherwise, this must conform to the
15585// <a
15586// href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
15587// st
15588// andard</a>. Values must be within normalized ranges.
15589type LatLng struct {
15590	// Latitude: The latitude in degrees. It must be in the range [-90.0,
15591	// +90.0].
15592	Latitude float64 `json:"latitude,omitempty"`
15593
15594	// Longitude: The longitude in degrees. It must be in the range [-180.0,
15595	// +180.0].
15596	Longitude float64 `json:"longitude,omitempty"`
15597
15598	// ForceSendFields is a list of field names (e.g. "Latitude") to
15599	// unconditionally include in API requests. By default, fields with
15600	// empty values are omitted from API requests. However, any non-pointer,
15601	// non-interface field appearing in ForceSendFields will be sent to the
15602	// server regardless of whether the field is empty or not. This may be
15603	// used to include empty fields in Patch requests.
15604	ForceSendFields []string `json:"-"`
15605
15606	// NullFields is a list of field names (e.g. "Latitude") to include in
15607	// API requests with the JSON null value. By default, fields with empty
15608	// values are omitted from API requests. However, any field with an
15609	// empty value appearing in NullFields will be sent to the server as
15610	// null. It is an error if a field in this list has a non-empty value.
15611	// This may be used to include null fields in Patch requests.
15612	NullFields []string `json:"-"`
15613}
15614
15615func (s *LatLng) MarshalJSON() ([]byte, error) {
15616	type NoMethod LatLng
15617	raw := NoMethod(*s)
15618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15619}
15620
15621func (s *LatLng) UnmarshalJSON(data []byte) error {
15622	type NoMethod LatLng
15623	var s1 struct {
15624		Latitude  gensupport.JSONFloat64 `json:"latitude"`
15625		Longitude gensupport.JSONFloat64 `json:"longitude"`
15626		*NoMethod
15627	}
15628	s1.NoMethod = (*NoMethod)(s)
15629	if err := json.Unmarshal(data, &s1); err != nil {
15630		return err
15631	}
15632	s.Latitude = float64(s1.Latitude)
15633	s.Longitude = float64(s1.Longitude)
15634	return nil
15635}
15636
15637// LocalizedObjectAnnotation: Set of detected objects with bounding
15638// boxes.
15639type LocalizedObjectAnnotation struct {
15640	// BoundingPoly: Image region to which this object belongs. This must be
15641	// populated.
15642	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
15643
15644	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
15645	// For more
15646	// information,
15647	// see
15648	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
15649	LanguageCode string `json:"languageCode,omitempty"`
15650
15651	// Mid: Object ID that should align with EntityAnnotation mid.
15652	Mid string `json:"mid,omitempty"`
15653
15654	// Name: Object name, expressed in its `language_code` language.
15655	Name string `json:"name,omitempty"`
15656
15657	// Score: Score of the result. Range [0, 1].
15658	Score float64 `json:"score,omitempty"`
15659
15660	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
15661	// unconditionally include in API requests. By default, fields with
15662	// empty values are omitted from API requests. However, any non-pointer,
15663	// non-interface field appearing in ForceSendFields will be sent to the
15664	// server regardless of whether the field is empty or not. This may be
15665	// used to include empty fields in Patch requests.
15666	ForceSendFields []string `json:"-"`
15667
15668	// NullFields is a list of field names (e.g. "BoundingPoly") to include
15669	// in API requests with the JSON null value. By default, fields with
15670	// empty values are omitted from API requests. However, any field with
15671	// an empty value appearing in NullFields will be sent to the server as
15672	// null. It is an error if a field in this list has a non-empty value.
15673	// This may be used to include null fields in Patch requests.
15674	NullFields []string `json:"-"`
15675}
15676
15677func (s *LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
15678	type NoMethod LocalizedObjectAnnotation
15679	raw := NoMethod(*s)
15680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15681}
15682
15683func (s *LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
15684	type NoMethod LocalizedObjectAnnotation
15685	var s1 struct {
15686		Score gensupport.JSONFloat64 `json:"score"`
15687		*NoMethod
15688	}
15689	s1.NoMethod = (*NoMethod)(s)
15690	if err := json.Unmarshal(data, &s1); err != nil {
15691		return err
15692	}
15693	s.Score = float64(s1.Score)
15694	return nil
15695}
15696
15697// LocationInfo: Detected entity location information.
15698type LocationInfo struct {
15699	// LatLng: lat/long location coordinates.
15700	LatLng *LatLng `json:"latLng,omitempty"`
15701
15702	// ForceSendFields is a list of field names (e.g. "LatLng") to
15703	// unconditionally include in API requests. By default, fields with
15704	// empty values are omitted from API requests. However, any non-pointer,
15705	// non-interface field appearing in ForceSendFields will be sent to the
15706	// server regardless of whether the field is empty or not. This may be
15707	// used to include empty fields in Patch requests.
15708	ForceSendFields []string `json:"-"`
15709
15710	// NullFields is a list of field names (e.g. "LatLng") to include in API
15711	// requests with the JSON null value. By default, fields with empty
15712	// values are omitted from API requests. However, any field with an
15713	// empty value appearing in NullFields will be sent to the server as
15714	// null. It is an error if a field in this list has a non-empty value.
15715	// This may be used to include null fields in Patch requests.
15716	NullFields []string `json:"-"`
15717}
15718
15719func (s *LocationInfo) MarshalJSON() ([]byte, error) {
15720	type NoMethod LocationInfo
15721	raw := NoMethod(*s)
15722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15723}
15724
15725// NormalizedVertex: A vertex represents a 2D point in the image.
15726// NOTE: the normalized vertex coordinates are relative to the original
15727// image
15728// and range from 0 to 1.
15729type NormalizedVertex struct {
15730	// X: X coordinate.
15731	X float64 `json:"x,omitempty"`
15732
15733	// Y: Y coordinate.
15734	Y float64 `json:"y,omitempty"`
15735
15736	// ForceSendFields is a list of field names (e.g. "X") to
15737	// unconditionally include in API requests. By default, fields with
15738	// empty values are omitted from API requests. However, any non-pointer,
15739	// non-interface field appearing in ForceSendFields will be sent to the
15740	// server regardless of whether the field is empty or not. This may be
15741	// used to include empty fields in Patch requests.
15742	ForceSendFields []string `json:"-"`
15743
15744	// NullFields is a list of field names (e.g. "X") to include in API
15745	// requests with the JSON null value. By default, fields with empty
15746	// values are omitted from API requests. However, any field with an
15747	// empty value appearing in NullFields will be sent to the server as
15748	// null. It is an error if a field in this list has a non-empty value.
15749	// This may be used to include null fields in Patch requests.
15750	NullFields []string `json:"-"`
15751}
15752
15753func (s *NormalizedVertex) MarshalJSON() ([]byte, error) {
15754	type NoMethod NormalizedVertex
15755	raw := NoMethod(*s)
15756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15757}
15758
15759func (s *NormalizedVertex) UnmarshalJSON(data []byte) error {
15760	type NoMethod NormalizedVertex
15761	var s1 struct {
15762		X gensupport.JSONFloat64 `json:"x"`
15763		Y gensupport.JSONFloat64 `json:"y"`
15764		*NoMethod
15765	}
15766	s1.NoMethod = (*NoMethod)(s)
15767	if err := json.Unmarshal(data, &s1); err != nil {
15768		return err
15769	}
15770	s.X = float64(s1.X)
15771	s.Y = float64(s1.Y)
15772	return nil
15773}
15774
15775// Operation: This resource represents a long-running operation that is
15776// the result of a
15777// network API call.
15778type Operation struct {
15779	// Done: If the value is `false`, it means the operation is still in
15780	// progress.
15781	// If `true`, the operation is completed, and either `error` or
15782	// `response` is
15783	// available.
15784	Done bool `json:"done,omitempty"`
15785
15786	// Error: The error result of the operation in case of failure or
15787	// cancellation.
15788	Error *Status `json:"error,omitempty"`
15789
15790	// Metadata: Service-specific metadata associated with the operation.
15791	// It typically
15792	// contains progress information and common metadata such as create
15793	// time.
15794	// Some services might not provide such metadata.  Any method that
15795	// returns a
15796	// long-running operation should document the metadata type, if any.
15797	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
15798
15799	// Name: The server-assigned name, which is only unique within the same
15800	// service that
15801	// originally returns it. If you use the default HTTP mapping,
15802	// the
15803	// `name` should be a resource name ending with
15804	// `operations/{unique_id}`.
15805	Name string `json:"name,omitempty"`
15806
15807	// Response: The normal response of the operation in case of success.
15808	// If the original
15809	// method returns no data on success, such as `Delete`, the response
15810	// is
15811	// `google.protobuf.Empty`.  If the original method is
15812	// standard
15813	// `Get`/`Create`/`Update`, the response should be the resource.  For
15814	// other
15815	// methods, the response should have the type `XxxResponse`, where
15816	// `Xxx`
15817	// is the original method name.  For example, if the original method
15818	// name
15819	// is `TakeSnapshot()`, the inferred response type
15820	// is
15821	// `TakeSnapshotResponse`.
15822	Response googleapi.RawMessage `json:"response,omitempty"`
15823
15824	// ServerResponse contains the HTTP response code and headers from the
15825	// server.
15826	googleapi.ServerResponse `json:"-"`
15827
15828	// ForceSendFields is a list of field names (e.g. "Done") to
15829	// unconditionally include in API requests. By default, fields with
15830	// empty values are omitted from API requests. However, any non-pointer,
15831	// non-interface field appearing in ForceSendFields will be sent to the
15832	// server regardless of whether the field is empty or not. This may be
15833	// used to include empty fields in Patch requests.
15834	ForceSendFields []string `json:"-"`
15835
15836	// NullFields is a list of field names (e.g. "Done") to include in API
15837	// requests with the JSON null value. By default, fields with empty
15838	// values are omitted from API requests. However, any field with an
15839	// empty value appearing in NullFields will be sent to the server as
15840	// null. It is an error if a field in this list has a non-empty value.
15841	// This may be used to include null fields in Patch requests.
15842	NullFields []string `json:"-"`
15843}
15844
15845func (s *Operation) MarshalJSON() ([]byte, error) {
15846	type NoMethod Operation
15847	raw := NoMethod(*s)
15848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15849}
15850
15851// OperationMetadata: Contains metadata for the BatchAnnotateImages
15852// operation.
15853type OperationMetadata struct {
15854	// CreateTime: The time when the batch request was received.
15855	CreateTime string `json:"createTime,omitempty"`
15856
15857	// State: Current state of the batch operation.
15858	//
15859	// Possible values:
15860	//   "STATE_UNSPECIFIED" - Invalid.
15861	//   "CREATED" - Request is received.
15862	//   "RUNNING" - Request is actively being processed.
15863	//   "DONE" - The batch processing is done.
15864	//   "CANCELLED" - The batch processing was cancelled.
15865	State string `json:"state,omitempty"`
15866
15867	// UpdateTime: The time when the operation result was last updated.
15868	UpdateTime string `json:"updateTime,omitempty"`
15869
15870	// ForceSendFields is a list of field names (e.g. "CreateTime") to
15871	// unconditionally include in API requests. By default, fields with
15872	// empty values are omitted from API requests. However, any non-pointer,
15873	// non-interface field appearing in ForceSendFields will be sent to the
15874	// server regardless of whether the field is empty or not. This may be
15875	// used to include empty fields in Patch requests.
15876	ForceSendFields []string `json:"-"`
15877
15878	// NullFields is a list of field names (e.g. "CreateTime") to include in
15879	// API requests with the JSON null value. By default, fields with empty
15880	// values are omitted from API requests. However, any field with an
15881	// empty value appearing in NullFields will be sent to the server as
15882	// null. It is an error if a field in this list has a non-empty value.
15883	// This may be used to include null fields in Patch requests.
15884	NullFields []string `json:"-"`
15885}
15886
15887func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
15888	type NoMethod OperationMetadata
15889	raw := NoMethod(*s)
15890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15891}
15892
15893// OutputConfig: The desired output location and metadata.
15894type OutputConfig struct {
15895	// BatchSize: The max number of response protos to put into each output
15896	// JSON file on
15897	// Google Cloud Storage.
15898	// The valid range is [1, 100]. If not specified, the default value is
15899	// 20.
15900	//
15901	// For example, for one pdf file with 100 pages, 100 response protos
15902	// will
15903	// be generated. If `batch_size` = 20, then 5 json files each
15904	// containing 20 response protos will be written under the
15905	// prefix
15906	// `gcs_destination`.`uri`.
15907	//
15908	// Currently, batch_size only applies to GcsDestination, with potential
15909	// future
15910	// support for other output configurations.
15911	BatchSize int64 `json:"batchSize,omitempty"`
15912
15913	// GcsDestination: The Google Cloud Storage location to write the
15914	// output(s) to.
15915	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
15916
15917	// ForceSendFields is a list of field names (e.g. "BatchSize") to
15918	// unconditionally include in API requests. By default, fields with
15919	// empty values are omitted from API requests. However, any non-pointer,
15920	// non-interface field appearing in ForceSendFields will be sent to the
15921	// server regardless of whether the field is empty or not. This may be
15922	// used to include empty fields in Patch requests.
15923	ForceSendFields []string `json:"-"`
15924
15925	// NullFields is a list of field names (e.g. "BatchSize") to include in
15926	// API requests with the JSON null value. By default, fields with empty
15927	// values are omitted from API requests. However, any field with an
15928	// empty value appearing in NullFields will be sent to the server as
15929	// null. It is an error if a field in this list has a non-empty value.
15930	// This may be used to include null fields in Patch requests.
15931	NullFields []string `json:"-"`
15932}
15933
15934func (s *OutputConfig) MarshalJSON() ([]byte, error) {
15935	type NoMethod OutputConfig
15936	raw := NoMethod(*s)
15937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15938}
15939
15940// Page: Detected page from OCR.
15941type Page struct {
15942	// Blocks: List of blocks of text, images etc on this page.
15943	Blocks []*Block `json:"blocks,omitempty"`
15944
15945	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
15946	Confidence float64 `json:"confidence,omitempty"`
15947
15948	// Height: Page height. For PDFs the unit is points. For images
15949	// (including
15950	// TIFFs) the unit is pixels.
15951	Height int64 `json:"height,omitempty"`
15952
15953	// Property: Additional information detected on the page.
15954	Property *TextProperty `json:"property,omitempty"`
15955
15956	// Width: Page width. For PDFs the unit is points. For images
15957	// (including
15958	// TIFFs) the unit is pixels.
15959	Width int64 `json:"width,omitempty"`
15960
15961	// ForceSendFields is a list of field names (e.g. "Blocks") to
15962	// unconditionally include in API requests. By default, fields with
15963	// empty values are omitted from API requests. However, any non-pointer,
15964	// non-interface field appearing in ForceSendFields will be sent to the
15965	// server regardless of whether the field is empty or not. This may be
15966	// used to include empty fields in Patch requests.
15967	ForceSendFields []string `json:"-"`
15968
15969	// NullFields is a list of field names (e.g. "Blocks") to include in API
15970	// requests with the JSON null value. By default, fields with empty
15971	// values are omitted from API requests. However, any field with an
15972	// empty value appearing in NullFields will be sent to the server as
15973	// null. It is an error if a field in this list has a non-empty value.
15974	// This may be used to include null fields in Patch requests.
15975	NullFields []string `json:"-"`
15976}
15977
15978func (s *Page) MarshalJSON() ([]byte, error) {
15979	type NoMethod Page
15980	raw := NoMethod(*s)
15981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15982}
15983
15984func (s *Page) UnmarshalJSON(data []byte) error {
15985	type NoMethod Page
15986	var s1 struct {
15987		Confidence gensupport.JSONFloat64 `json:"confidence"`
15988		*NoMethod
15989	}
15990	s1.NoMethod = (*NoMethod)(s)
15991	if err := json.Unmarshal(data, &s1); err != nil {
15992		return err
15993	}
15994	s.Confidence = float64(s1.Confidence)
15995	return nil
15996}
15997
15998// Paragraph: Structural unit of text representing a number of words in
15999// certain order.
16000type Paragraph struct {
16001	// BoundingBox: The bounding box for the paragraph.
16002	// The vertices are in the order of top-left, top-right,
16003	// bottom-right,
16004	// bottom-left. When a rotation of the bounding box is detected the
16005	// rotation
16006	// is represented as around the top-left corner as defined when the text
16007	// is
16008	// read in the 'natural' orientation.
16009	// For example:
16010	//   * when the text is horizontal it might look like:
16011	//      0----1
16012	//      |    |
16013	//      3----2
16014	//   * when it's rotated 180 degrees around the top-left corner it
16015	// becomes:
16016	//      2----3
16017	//      |    |
16018	//      1----0
16019	//   and the vertex order will still be (0, 1, 2, 3).
16020	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
16021
16022	// Confidence: Confidence of the OCR results for the paragraph. Range
16023	// [0, 1].
16024	Confidence float64 `json:"confidence,omitempty"`
16025
16026	// Property: Additional information detected for the paragraph.
16027	Property *TextProperty `json:"property,omitempty"`
16028
16029	// Words: List of words in this paragraph.
16030	Words []*Word `json:"words,omitempty"`
16031
16032	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
16033	// unconditionally include in API requests. By default, fields with
16034	// empty values are omitted from API requests. However, any non-pointer,
16035	// non-interface field appearing in ForceSendFields will be sent to the
16036	// server regardless of whether the field is empty or not. This may be
16037	// used to include empty fields in Patch requests.
16038	ForceSendFields []string `json:"-"`
16039
16040	// NullFields is a list of field names (e.g. "BoundingBox") to include
16041	// in API requests with the JSON null value. By default, fields with
16042	// empty values are omitted from API requests. However, any field with
16043	// an empty value appearing in NullFields will be sent to the server as
16044	// null. It is an error if a field in this list has a non-empty value.
16045	// This may be used to include null fields in Patch requests.
16046	NullFields []string `json:"-"`
16047}
16048
16049func (s *Paragraph) MarshalJSON() ([]byte, error) {
16050	type NoMethod Paragraph
16051	raw := NoMethod(*s)
16052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16053}
16054
16055func (s *Paragraph) UnmarshalJSON(data []byte) error {
16056	type NoMethod Paragraph
16057	var s1 struct {
16058		Confidence gensupport.JSONFloat64 `json:"confidence"`
16059		*NoMethod
16060	}
16061	s1.NoMethod = (*NoMethod)(s)
16062	if err := json.Unmarshal(data, &s1); err != nil {
16063		return err
16064	}
16065	s.Confidence = float64(s1.Confidence)
16066	return nil
16067}
16068
16069// Position: A 3D position in the image, used primarily for Face
16070// detection landmarks.
16071// A valid Position must have both x and y coordinates.
16072// The position coordinates are in the same scale as the original image.
16073type Position struct {
16074	// X: X coordinate.
16075	X float64 `json:"x,omitempty"`
16076
16077	// Y: Y coordinate.
16078	Y float64 `json:"y,omitempty"`
16079
16080	// Z: Z coordinate (or depth).
16081	Z float64 `json:"z,omitempty"`
16082
16083	// ForceSendFields is a list of field names (e.g. "X") to
16084	// unconditionally include in API requests. By default, fields with
16085	// empty values are omitted from API requests. However, any non-pointer,
16086	// non-interface field appearing in ForceSendFields will be sent to the
16087	// server regardless of whether the field is empty or not. This may be
16088	// used to include empty fields in Patch requests.
16089	ForceSendFields []string `json:"-"`
16090
16091	// NullFields is a list of field names (e.g. "X") to include in API
16092	// requests with the JSON null value. By default, fields with empty
16093	// values are omitted from API requests. However, any field with an
16094	// empty value appearing in NullFields will be sent to the server as
16095	// null. It is an error if a field in this list has a non-empty value.
16096	// This may be used to include null fields in Patch requests.
16097	NullFields []string `json:"-"`
16098}
16099
16100func (s *Position) MarshalJSON() ([]byte, error) {
16101	type NoMethod Position
16102	raw := NoMethod(*s)
16103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16104}
16105
16106func (s *Position) UnmarshalJSON(data []byte) error {
16107	type NoMethod Position
16108	var s1 struct {
16109		X gensupport.JSONFloat64 `json:"x"`
16110		Y gensupport.JSONFloat64 `json:"y"`
16111		Z gensupport.JSONFloat64 `json:"z"`
16112		*NoMethod
16113	}
16114	s1.NoMethod = (*NoMethod)(s)
16115	if err := json.Unmarshal(data, &s1); err != nil {
16116		return err
16117	}
16118	s.X = float64(s1.X)
16119	s.Y = float64(s1.Y)
16120	s.Z = float64(s1.Z)
16121	return nil
16122}
16123
16124// Product: A Product contains ReferenceImages.
16125type Product struct {
16126	// Description: User-provided metadata to be stored with this product.
16127	// Must be at most 4096
16128	// characters long.
16129	Description string `json:"description,omitempty"`
16130
16131	// DisplayName: The user-provided name for this Product. Must not be
16132	// empty. Must be at most
16133	// 4096 characters long.
16134	DisplayName string `json:"displayName,omitempty"`
16135
16136	// Name: The resource name of the product.
16137	//
16138	// Format
16139	// is:
16140	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
16141	//
16142	// This field is ignored when creating a product.
16143	Name string `json:"name,omitempty"`
16144
16145	// ProductCategory: The category for the product identified by the
16146	// reference image. This should
16147	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
16148	// categories
16149	// "homegoods", "apparel", and "toys" are still supported, but these
16150	// should
16151	// not be used for new products.
16152	//
16153	// This field is immutable.
16154	ProductCategory string `json:"productCategory,omitempty"`
16155
16156	// ProductLabels: Key-value pairs that can be attached to a product. At
16157	// query time,
16158	// constraints can be specified based on the product_labels.
16159	//
16160	// Note that integer values can be provided as strings, e.g. "1199".
16161	// Only
16162	// strings with integer values can match a range-based restriction which
16163	// is
16164	// to be supported soon.
16165	//
16166	// Multiple values can be assigned to the same key. One product may have
16167	// up to
16168	// 100 product_labels.
16169	ProductLabels []*KeyValue `json:"productLabels,omitempty"`
16170
16171	// ForceSendFields is a list of field names (e.g. "Description") to
16172	// unconditionally include in API requests. By default, fields with
16173	// empty values are omitted from API requests. However, any non-pointer,
16174	// non-interface field appearing in ForceSendFields will be sent to the
16175	// server regardless of whether the field is empty or not. This may be
16176	// used to include empty fields in Patch requests.
16177	ForceSendFields []string `json:"-"`
16178
16179	// NullFields is a list of field names (e.g. "Description") to include
16180	// in API requests with the JSON null value. By default, fields with
16181	// empty values are omitted from API requests. However, any field with
16182	// an empty value appearing in NullFields will be sent to the server as
16183	// null. It is an error if a field in this list has a non-empty value.
16184	// This may be used to include null fields in Patch requests.
16185	NullFields []string `json:"-"`
16186}
16187
16188func (s *Product) MarshalJSON() ([]byte, error) {
16189	type NoMethod Product
16190	raw := NoMethod(*s)
16191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16192}
16193
16194// ProductSearchResults: Results for a product search request.
16195type ProductSearchResults struct {
16196	// IndexTime: Timestamp of the index which provided these results.
16197	// Products added to the
16198	// product set and products removed from the product set after this time
16199	// are
16200	// not reflected in the current results.
16201	IndexTime string `json:"indexTime,omitempty"`
16202
16203	// ProductGroupedResults: List of results grouped by products detected
16204	// in the query image. Each entry
16205	// corresponds to one bounding polygon in the query image, and contains
16206	// the
16207	// matching products specific to that region. There may be duplicate
16208	// product
16209	// matches in the union of all the per-product results.
16210	ProductGroupedResults []*GroupedResult `json:"productGroupedResults,omitempty"`
16211
16212	// Results: List of results, one for each product match.
16213	Results []*Result `json:"results,omitempty"`
16214
16215	// ForceSendFields is a list of field names (e.g. "IndexTime") to
16216	// unconditionally include in API requests. By default, fields with
16217	// empty values are omitted from API requests. However, any non-pointer,
16218	// non-interface field appearing in ForceSendFields will be sent to the
16219	// server regardless of whether the field is empty or not. This may be
16220	// used to include empty fields in Patch requests.
16221	ForceSendFields []string `json:"-"`
16222
16223	// NullFields is a list of field names (e.g. "IndexTime") to include in
16224	// API requests with the JSON null value. By default, fields with empty
16225	// values are omitted from API requests. However, any field with an
16226	// empty value appearing in NullFields will be sent to the server as
16227	// null. It is an error if a field in this list has a non-empty value.
16228	// This may be used to include null fields in Patch requests.
16229	NullFields []string `json:"-"`
16230}
16231
16232func (s *ProductSearchResults) MarshalJSON() ([]byte, error) {
16233	type NoMethod ProductSearchResults
16234	raw := NoMethod(*s)
16235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16236}
16237
16238// Property: A `Property` consists of a user-supplied name/value pair.
16239type Property struct {
16240	// Name: Name of the property.
16241	Name string `json:"name,omitempty"`
16242
16243	// Uint64Value: Value of numeric properties.
16244	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
16245
16246	// Value: Value of the property.
16247	Value string `json:"value,omitempty"`
16248
16249	// ForceSendFields is a list of field names (e.g. "Name") to
16250	// unconditionally include in API requests. By default, fields with
16251	// empty values are omitted from API requests. However, any non-pointer,
16252	// non-interface field appearing in ForceSendFields will be sent to the
16253	// server regardless of whether the field is empty or not. This may be
16254	// used to include empty fields in Patch requests.
16255	ForceSendFields []string `json:"-"`
16256
16257	// NullFields is a list of field names (e.g. "Name") to include in API
16258	// requests with the JSON null value. By default, fields with empty
16259	// values are omitted from API requests. However, any field with an
16260	// empty value appearing in NullFields will be sent to the server as
16261	// null. It is an error if a field in this list has a non-empty value.
16262	// This may be used to include null fields in Patch requests.
16263	NullFields []string `json:"-"`
16264}
16265
16266func (s *Property) MarshalJSON() ([]byte, error) {
16267	type NoMethod Property
16268	raw := NoMethod(*s)
16269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16270}
16271
16272// ReferenceImage: A `ReferenceImage` represents a product image and its
16273// associated metadata,
16274// such as bounding boxes.
16275type ReferenceImage struct {
16276	// BoundingPolys: Bounding polygons around the areas of interest in the
16277	// reference image.
16278	// Optional. If this field is empty, the system will try to detect
16279	// regions of
16280	// interest. At most 10 bounding polygons will be used.
16281	//
16282	// The provided shape is converted into a non-rotated rectangle.
16283	// Once
16284	// converted, the small edge of the rectangle must be greater than or
16285	// equal
16286	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
16287	// 1:5
16288	// is not).
16289	BoundingPolys []*BoundingPoly `json:"boundingPolys,omitempty"`
16290
16291	// Name: The resource name of the reference image.
16292	//
16293	// Format
16294	// is:
16295	//
16296	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
16297	// ceImages/IMAGE_ID`.
16298	//
16299	// This field is ignored when creating a reference image.
16300	Name string `json:"name,omitempty"`
16301
16302	// Uri: The Google Cloud Storage URI of the reference image.
16303	//
16304	// The URI must start with `gs://`.
16305	//
16306	// Required.
16307	Uri string `json:"uri,omitempty"`
16308
16309	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
16310	// unconditionally include in API requests. By default, fields with
16311	// empty values are omitted from API requests. However, any non-pointer,
16312	// non-interface field appearing in ForceSendFields will be sent to the
16313	// server regardless of whether the field is empty or not. This may be
16314	// used to include empty fields in Patch requests.
16315	ForceSendFields []string `json:"-"`
16316
16317	// NullFields is a list of field names (e.g. "BoundingPolys") to include
16318	// in API requests with the JSON null value. By default, fields with
16319	// empty values are omitted from API requests. However, any field with
16320	// an empty value appearing in NullFields will be sent to the server as
16321	// null. It is an error if a field in this list has a non-empty value.
16322	// This may be used to include null fields in Patch requests.
16323	NullFields []string `json:"-"`
16324}
16325
16326func (s *ReferenceImage) MarshalJSON() ([]byte, error) {
16327	type NoMethod ReferenceImage
16328	raw := NoMethod(*s)
16329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16330}
16331
16332// Result: Information about a product.
16333type Result struct {
16334	// Image: The resource name of the image from the product that is the
16335	// closest match
16336	// to the query.
16337	Image string `json:"image,omitempty"`
16338
16339	// Product: The Product.
16340	Product *Product `json:"product,omitempty"`
16341
16342	// Score: A confidence level on the match, ranging from 0 (no
16343	// confidence) to
16344	// 1 (full confidence).
16345	Score float64 `json:"score,omitempty"`
16346
16347	// ForceSendFields is a list of field names (e.g. "Image") to
16348	// unconditionally include in API requests. By default, fields with
16349	// empty values are omitted from API requests. However, any non-pointer,
16350	// non-interface field appearing in ForceSendFields will be sent to the
16351	// server regardless of whether the field is empty or not. This may be
16352	// used to include empty fields in Patch requests.
16353	ForceSendFields []string `json:"-"`
16354
16355	// NullFields is a list of field names (e.g. "Image") to include in API
16356	// requests with the JSON null value. By default, fields with empty
16357	// values are omitted from API requests. However, any field with an
16358	// empty value appearing in NullFields will be sent to the server as
16359	// null. It is an error if a field in this list has a non-empty value.
16360	// This may be used to include null fields in Patch requests.
16361	NullFields []string `json:"-"`
16362}
16363
16364func (s *Result) MarshalJSON() ([]byte, error) {
16365	type NoMethod Result
16366	raw := NoMethod(*s)
16367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16368}
16369
16370func (s *Result) UnmarshalJSON(data []byte) error {
16371	type NoMethod Result
16372	var s1 struct {
16373		Score gensupport.JSONFloat64 `json:"score"`
16374		*NoMethod
16375	}
16376	s1.NoMethod = (*NoMethod)(s)
16377	if err := json.Unmarshal(data, &s1); err != nil {
16378		return err
16379	}
16380	s.Score = float64(s1.Score)
16381	return nil
16382}
16383
16384// SafeSearchAnnotation: Set of features pertaining to the image,
16385// computed by computer vision
16386// methods over safe-search verticals (for example, adult, spoof,
16387// medical,
16388// violence).
16389type SafeSearchAnnotation struct {
16390	// Adult: Represents the adult content likelihood for the image. Adult
16391	// content may
16392	// contain elements such as nudity, pornographic images or cartoons,
16393	// or
16394	// sexual activities.
16395	//
16396	// Possible values:
16397	//   "UNKNOWN" - Unknown likelihood.
16398	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
16399	// specified vertical.
16400	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
16401	// vertical.
16402	//   "POSSIBLE" - It is possible that the image belongs to the specified
16403	// vertical.
16404	//   "LIKELY" - It is likely that the image belongs to the specified
16405	// vertical.
16406	//   "VERY_LIKELY" - It is very likely that the image belongs to the
16407	// specified vertical.
16408	Adult string `json:"adult,omitempty"`
16409
16410	// Medical: Likelihood that this is a medical image.
16411	//
16412	// Possible values:
16413	//   "UNKNOWN" - Unknown likelihood.
16414	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
16415	// specified vertical.
16416	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
16417	// vertical.
16418	//   "POSSIBLE" - It is possible that the image belongs to the specified
16419	// vertical.
16420	//   "LIKELY" - It is likely that the image belongs to the specified
16421	// vertical.
16422	//   "VERY_LIKELY" - It is very likely that the image belongs to the
16423	// specified vertical.
16424	Medical string `json:"medical,omitempty"`
16425
16426	// Racy: Likelihood that the request image contains racy content. Racy
16427	// content may
16428	// include (but is not limited to) skimpy or sheer clothing,
16429	// strategically
16430	// covered nudity, lewd or provocative poses, or close-ups of
16431	// sensitive
16432	// body areas.
16433	//
16434	// Possible values:
16435	//   "UNKNOWN" - Unknown likelihood.
16436	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
16437	// specified vertical.
16438	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
16439	// vertical.
16440	//   "POSSIBLE" - It is possible that the image belongs to the specified
16441	// vertical.
16442	//   "LIKELY" - It is likely that the image belongs to the specified
16443	// vertical.
16444	//   "VERY_LIKELY" - It is very likely that the image belongs to the
16445	// specified vertical.
16446	Racy string `json:"racy,omitempty"`
16447
16448	// Spoof: Spoof likelihood. The likelihood that an modification
16449	// was made to the image's canonical version to make it appear
16450	// funny or offensive.
16451	//
16452	// Possible values:
16453	//   "UNKNOWN" - Unknown likelihood.
16454	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
16455	// specified vertical.
16456	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
16457	// vertical.
16458	//   "POSSIBLE" - It is possible that the image belongs to the specified
16459	// vertical.
16460	//   "LIKELY" - It is likely that the image belongs to the specified
16461	// vertical.
16462	//   "VERY_LIKELY" - It is very likely that the image belongs to the
16463	// specified vertical.
16464	Spoof string `json:"spoof,omitempty"`
16465
16466	// Violence: Likelihood that this image contains violent content.
16467	//
16468	// Possible values:
16469	//   "UNKNOWN" - Unknown likelihood.
16470	//   "VERY_UNLIKELY" - It is very unlikely that the image belongs to the
16471	// specified vertical.
16472	//   "UNLIKELY" - It is unlikely that the image belongs to the specified
16473	// vertical.
16474	//   "POSSIBLE" - It is possible that the image belongs to the specified
16475	// vertical.
16476	//   "LIKELY" - It is likely that the image belongs to the specified
16477	// vertical.
16478	//   "VERY_LIKELY" - It is very likely that the image belongs to the
16479	// specified vertical.
16480	Violence string `json:"violence,omitempty"`
16481
16482	// ForceSendFields is a list of field names (e.g. "Adult") to
16483	// unconditionally include in API requests. By default, fields with
16484	// empty values are omitted from API requests. However, any non-pointer,
16485	// non-interface field appearing in ForceSendFields will be sent to the
16486	// server regardless of whether the field is empty or not. This may be
16487	// used to include empty fields in Patch requests.
16488	ForceSendFields []string `json:"-"`
16489
16490	// NullFields is a list of field names (e.g. "Adult") to include in API
16491	// requests with the JSON null value. By default, fields with empty
16492	// values are omitted from API requests. However, any field with an
16493	// empty value appearing in NullFields will be sent to the server as
16494	// null. It is an error if a field in this list has a non-empty value.
16495	// This may be used to include null fields in Patch requests.
16496	NullFields []string `json:"-"`
16497}
16498
16499func (s *SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
16500	type NoMethod SafeSearchAnnotation
16501	raw := NoMethod(*s)
16502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16503}
16504
16505// Status: The `Status` type defines a logical error model that is
16506// suitable for
16507// different programming environments, including REST APIs and RPC APIs.
16508// It is
16509// used by [gRPC](https://github.com/grpc). Each `Status` message
16510// contains
16511// three pieces of data: error code, error message, and error
16512// details.
16513//
16514// You can find out more about this error model and how to work with it
16515// in the
16516// [API Design Guide](https://cloud.google.com/apis/design/errors).
16517type Status struct {
16518	// Code: The status code, which should be an enum value of
16519	// google.rpc.Code.
16520	Code int64 `json:"code,omitempty"`
16521
16522	// Details: A list of messages that carry the error details.  There is a
16523	// common set of
16524	// message types for APIs to use.
16525	Details []googleapi.RawMessage `json:"details,omitempty"`
16526
16527	// Message: A developer-facing error message, which should be in
16528	// English. Any
16529	// user-facing error message should be localized and sent in
16530	// the
16531	// google.rpc.Status.details field, or localized by the client.
16532	Message string `json:"message,omitempty"`
16533
16534	// ForceSendFields is a list of field names (e.g. "Code") to
16535	// unconditionally include in API requests. By default, fields with
16536	// empty values are omitted from API requests. However, any non-pointer,
16537	// non-interface field appearing in ForceSendFields will be sent to the
16538	// server regardless of whether the field is empty or not. This may be
16539	// used to include empty fields in Patch requests.
16540	ForceSendFields []string `json:"-"`
16541
16542	// NullFields is a list of field names (e.g. "Code") to include in API
16543	// requests with the JSON null value. By default, fields with empty
16544	// values are omitted from API requests. However, any field with an
16545	// empty value appearing in NullFields will be sent to the server as
16546	// null. It is an error if a field in this list has a non-empty value.
16547	// This may be used to include null fields in Patch requests.
16548	NullFields []string `json:"-"`
16549}
16550
16551func (s *Status) MarshalJSON() ([]byte, error) {
16552	type NoMethod Status
16553	raw := NoMethod(*s)
16554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16555}
16556
16557// Symbol: A single symbol representation.
16558type Symbol struct {
16559	// BoundingBox: The bounding box for the symbol.
16560	// The vertices are in the order of top-left, top-right,
16561	// bottom-right,
16562	// bottom-left. When a rotation of the bounding box is detected the
16563	// rotation
16564	// is represented as around the top-left corner as defined when the text
16565	// is
16566	// read in the 'natural' orientation.
16567	// For example:
16568	//   * when the text is horizontal it might look like:
16569	//      0----1
16570	//      |    |
16571	//      3----2
16572	//   * when it's rotated 180 degrees around the top-left corner it
16573	// becomes:
16574	//      2----3
16575	//      |    |
16576	//      1----0
16577	//   and the vertice order will still be (0, 1, 2, 3).
16578	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
16579
16580	// Confidence: Confidence of the OCR results for the symbol. Range [0,
16581	// 1].
16582	Confidence float64 `json:"confidence,omitempty"`
16583
16584	// Property: Additional information detected for the symbol.
16585	Property *TextProperty `json:"property,omitempty"`
16586
16587	// Text: The actual UTF-8 representation of the symbol.
16588	Text string `json:"text,omitempty"`
16589
16590	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
16591	// unconditionally include in API requests. By default, fields with
16592	// empty values are omitted from API requests. However, any non-pointer,
16593	// non-interface field appearing in ForceSendFields will be sent to the
16594	// server regardless of whether the field is empty or not. This may be
16595	// used to include empty fields in Patch requests.
16596	ForceSendFields []string `json:"-"`
16597
16598	// NullFields is a list of field names (e.g. "BoundingBox") to include
16599	// in API requests with the JSON null value. By default, fields with
16600	// empty values are omitted from API requests. However, any field with
16601	// an empty value appearing in NullFields will be sent to the server as
16602	// null. It is an error if a field in this list has a non-empty value.
16603	// This may be used to include null fields in Patch requests.
16604	NullFields []string `json:"-"`
16605}
16606
16607func (s *Symbol) MarshalJSON() ([]byte, error) {
16608	type NoMethod Symbol
16609	raw := NoMethod(*s)
16610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16611}
16612
16613func (s *Symbol) UnmarshalJSON(data []byte) error {
16614	type NoMethod Symbol
16615	var s1 struct {
16616		Confidence gensupport.JSONFloat64 `json:"confidence"`
16617		*NoMethod
16618	}
16619	s1.NoMethod = (*NoMethod)(s)
16620	if err := json.Unmarshal(data, &s1); err != nil {
16621		return err
16622	}
16623	s.Confidence = float64(s1.Confidence)
16624	return nil
16625}
16626
16627// TextAnnotation: TextAnnotation contains a structured representation
16628// of OCR extracted text.
16629// The hierarchy of an OCR extracted text structure is like this:
16630//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
16631// Symbol
16632// Each structural component, starting from Page, may further have their
16633// own
16634// properties. Properties describe detected languages, breaks etc..
16635// Please refer
16636// to the TextAnnotation.TextProperty message definition below for
16637// more
16638// detail.
16639type TextAnnotation struct {
16640	// Pages: List of pages detected by OCR.
16641	Pages []*Page `json:"pages,omitempty"`
16642
16643	// Text: UTF-8 text detected on the pages.
16644	Text string `json:"text,omitempty"`
16645
16646	// ForceSendFields is a list of field names (e.g. "Pages") to
16647	// unconditionally include in API requests. By default, fields with
16648	// empty values are omitted from API requests. However, any non-pointer,
16649	// non-interface field appearing in ForceSendFields will be sent to the
16650	// server regardless of whether the field is empty or not. This may be
16651	// used to include empty fields in Patch requests.
16652	ForceSendFields []string `json:"-"`
16653
16654	// NullFields is a list of field names (e.g. "Pages") to include in API
16655	// requests with the JSON null value. By default, fields with empty
16656	// values are omitted from API requests. However, any field with an
16657	// empty value appearing in NullFields will be sent to the server as
16658	// null. It is an error if a field in this list has a non-empty value.
16659	// This may be used to include null fields in Patch requests.
16660	NullFields []string `json:"-"`
16661}
16662
16663func (s *TextAnnotation) MarshalJSON() ([]byte, error) {
16664	type NoMethod TextAnnotation
16665	raw := NoMethod(*s)
16666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16667}
16668
16669// TextProperty: Additional information detected on the structural
16670// component.
16671type TextProperty struct {
16672	// DetectedBreak: Detected start or end of a text segment.
16673	DetectedBreak *DetectedBreak `json:"detectedBreak,omitempty"`
16674
16675	// DetectedLanguages: A list of detected languages together with
16676	// confidence.
16677	DetectedLanguages []*DetectedLanguage `json:"detectedLanguages,omitempty"`
16678
16679	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
16680	// unconditionally include in API requests. By default, fields with
16681	// empty values are omitted from API requests. However, any non-pointer,
16682	// non-interface field appearing in ForceSendFields will be sent to the
16683	// server regardless of whether the field is empty or not. This may be
16684	// used to include empty fields in Patch requests.
16685	ForceSendFields []string `json:"-"`
16686
16687	// NullFields is a list of field names (e.g. "DetectedBreak") to include
16688	// in API requests with the JSON null value. By default, fields with
16689	// empty values are omitted from API requests. However, any field with
16690	// an empty value appearing in NullFields will be sent to the server as
16691	// null. It is an error if a field in this list has a non-empty value.
16692	// This may be used to include null fields in Patch requests.
16693	NullFields []string `json:"-"`
16694}
16695
16696func (s *TextProperty) MarshalJSON() ([]byte, error) {
16697	type NoMethod TextProperty
16698	raw := NoMethod(*s)
16699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16700}
16701
16702// Vertex: A vertex represents a 2D point in the image.
16703// NOTE: the vertex coordinates are in the same scale as the original
16704// image.
16705type Vertex struct {
16706	// X: X coordinate.
16707	X int64 `json:"x,omitempty"`
16708
16709	// Y: Y coordinate.
16710	Y int64 `json:"y,omitempty"`
16711
16712	// ForceSendFields is a list of field names (e.g. "X") to
16713	// unconditionally include in API requests. By default, fields with
16714	// empty values are omitted from API requests. However, any non-pointer,
16715	// non-interface field appearing in ForceSendFields will be sent to the
16716	// server regardless of whether the field is empty or not. This may be
16717	// used to include empty fields in Patch requests.
16718	ForceSendFields []string `json:"-"`
16719
16720	// NullFields is a list of field names (e.g. "X") to include in API
16721	// requests with the JSON null value. By default, fields with empty
16722	// values are omitted from API requests. However, any field with an
16723	// empty value appearing in NullFields will be sent to the server as
16724	// null. It is an error if a field in this list has a non-empty value.
16725	// This may be used to include null fields in Patch requests.
16726	NullFields []string `json:"-"`
16727}
16728
16729func (s *Vertex) MarshalJSON() ([]byte, error) {
16730	type NoMethod Vertex
16731	raw := NoMethod(*s)
16732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16733}
16734
16735// WebDetection: Relevant information for the image from the Internet.
16736type WebDetection struct {
16737	// BestGuessLabels: The service's best guess as to the topic of the
16738	// request image.
16739	// Inferred from similar images on the open web.
16740	BestGuessLabels []*WebLabel `json:"bestGuessLabels,omitempty"`
16741
16742	// FullMatchingImages: Fully matching images from the Internet.
16743	// Can include resized copies of the query image.
16744	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
16745
16746	// PagesWithMatchingImages: Web pages containing the matching images
16747	// from the Internet.
16748	PagesWithMatchingImages []*WebPage `json:"pagesWithMatchingImages,omitempty"`
16749
16750	// PartialMatchingImages: Partial matching images from the
16751	// Internet.
16752	// Those images are similar enough to share some key-point features.
16753	// For
16754	// example an original image will likely have partial matching for its
16755	// crops.
16756	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
16757
16758	// VisuallySimilarImages: The visually similar image results.
16759	VisuallySimilarImages []*WebImage `json:"visuallySimilarImages,omitempty"`
16760
16761	// WebEntities: Deduced entities from similar images on the Internet.
16762	WebEntities []*WebEntity `json:"webEntities,omitempty"`
16763
16764	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
16765	// unconditionally include in API requests. By default, fields with
16766	// empty values are omitted from API requests. However, any non-pointer,
16767	// non-interface field appearing in ForceSendFields will be sent to the
16768	// server regardless of whether the field is empty or not. This may be
16769	// used to include empty fields in Patch requests.
16770	ForceSendFields []string `json:"-"`
16771
16772	// NullFields is a list of field names (e.g. "BestGuessLabels") to
16773	// include in API requests with the JSON null value. By default, fields
16774	// with empty values are omitted from API requests. However, any field
16775	// with an empty value appearing in NullFields will be sent to the
16776	// server as null. It is an error if a field in this list has a
16777	// non-empty value. This may be used to include null fields in Patch
16778	// requests.
16779	NullFields []string `json:"-"`
16780}
16781
16782func (s *WebDetection) MarshalJSON() ([]byte, error) {
16783	type NoMethod WebDetection
16784	raw := NoMethod(*s)
16785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16786}
16787
16788// WebEntity: Entity deduced from similar images on the Internet.
16789type WebEntity struct {
16790	// Description: Canonical description of the entity, in English.
16791	Description string `json:"description,omitempty"`
16792
16793	// EntityId: Opaque entity ID.
16794	EntityId string `json:"entityId,omitempty"`
16795
16796	// Score: Overall relevancy score for the entity.
16797	// Not normalized and not comparable across different image queries.
16798	Score float64 `json:"score,omitempty"`
16799
16800	// ForceSendFields is a list of field names (e.g. "Description") to
16801	// unconditionally include in API requests. By default, fields with
16802	// empty values are omitted from API requests. However, any non-pointer,
16803	// non-interface field appearing in ForceSendFields will be sent to the
16804	// server regardless of whether the field is empty or not. This may be
16805	// used to include empty fields in Patch requests.
16806	ForceSendFields []string `json:"-"`
16807
16808	// NullFields is a list of field names (e.g. "Description") to include
16809	// in API requests with the JSON null value. By default, fields with
16810	// empty values are omitted from API requests. However, any field with
16811	// an empty value appearing in NullFields will be sent to the server as
16812	// null. It is an error if a field in this list has a non-empty value.
16813	// This may be used to include null fields in Patch requests.
16814	NullFields []string `json:"-"`
16815}
16816
16817func (s *WebEntity) MarshalJSON() ([]byte, error) {
16818	type NoMethod WebEntity
16819	raw := NoMethod(*s)
16820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16821}
16822
16823func (s *WebEntity) UnmarshalJSON(data []byte) error {
16824	type NoMethod WebEntity
16825	var s1 struct {
16826		Score gensupport.JSONFloat64 `json:"score"`
16827		*NoMethod
16828	}
16829	s1.NoMethod = (*NoMethod)(s)
16830	if err := json.Unmarshal(data, &s1); err != nil {
16831		return err
16832	}
16833	s.Score = float64(s1.Score)
16834	return nil
16835}
16836
16837// WebImage: Metadata for online images.
16838type WebImage struct {
16839	// Score: (Deprecated) Overall relevancy score for the image.
16840	Score float64 `json:"score,omitempty"`
16841
16842	// Url: The result image URL.
16843	Url string `json:"url,omitempty"`
16844
16845	// ForceSendFields is a list of field names (e.g. "Score") to
16846	// unconditionally include in API requests. By default, fields with
16847	// empty values are omitted from API requests. However, any non-pointer,
16848	// non-interface field appearing in ForceSendFields will be sent to the
16849	// server regardless of whether the field is empty or not. This may be
16850	// used to include empty fields in Patch requests.
16851	ForceSendFields []string `json:"-"`
16852
16853	// NullFields is a list of field names (e.g. "Score") to include in API
16854	// requests with the JSON null value. By default, fields with empty
16855	// values are omitted from API requests. However, any field with an
16856	// empty value appearing in NullFields will be sent to the server as
16857	// null. It is an error if a field in this list has a non-empty value.
16858	// This may be used to include null fields in Patch requests.
16859	NullFields []string `json:"-"`
16860}
16861
16862func (s *WebImage) MarshalJSON() ([]byte, error) {
16863	type NoMethod WebImage
16864	raw := NoMethod(*s)
16865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16866}
16867
16868func (s *WebImage) UnmarshalJSON(data []byte) error {
16869	type NoMethod WebImage
16870	var s1 struct {
16871		Score gensupport.JSONFloat64 `json:"score"`
16872		*NoMethod
16873	}
16874	s1.NoMethod = (*NoMethod)(s)
16875	if err := json.Unmarshal(data, &s1); err != nil {
16876		return err
16877	}
16878	s.Score = float64(s1.Score)
16879	return nil
16880}
16881
16882// WebLabel: Label to provide extra metadata for the web detection.
16883type WebLabel struct {
16884	// Label: Label for extra metadata.
16885	Label string `json:"label,omitempty"`
16886
16887	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
16888	// or "sr-Latn".
16889	// For more information,
16890	// see
16891	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
16892	LanguageCode string `json:"languageCode,omitempty"`
16893
16894	// ForceSendFields is a list of field names (e.g. "Label") to
16895	// unconditionally include in API requests. By default, fields with
16896	// empty values are omitted from API requests. However, any non-pointer,
16897	// non-interface field appearing in ForceSendFields will be sent to the
16898	// server regardless of whether the field is empty or not. This may be
16899	// used to include empty fields in Patch requests.
16900	ForceSendFields []string `json:"-"`
16901
16902	// NullFields is a list of field names (e.g. "Label") to include in API
16903	// requests with the JSON null value. By default, fields with empty
16904	// values are omitted from API requests. However, any field with an
16905	// empty value appearing in NullFields will be sent to the server as
16906	// null. It is an error if a field in this list has a non-empty value.
16907	// This may be used to include null fields in Patch requests.
16908	NullFields []string `json:"-"`
16909}
16910
16911func (s *WebLabel) MarshalJSON() ([]byte, error) {
16912	type NoMethod WebLabel
16913	raw := NoMethod(*s)
16914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16915}
16916
16917// WebPage: Metadata for web pages.
16918type WebPage struct {
16919	// FullMatchingImages: Fully matching images on the page.
16920	// Can include resized copies of the query image.
16921	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
16922
16923	// PageTitle: Title for the web page, may contain HTML markups.
16924	PageTitle string `json:"pageTitle,omitempty"`
16925
16926	// PartialMatchingImages: Partial matching images on the page.
16927	// Those images are similar enough to share some key-point features.
16928	// For
16929	// example an original image will likely have partial matching for
16930	// its
16931	// crops.
16932	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
16933
16934	// Score: (Deprecated) Overall relevancy score for the web page.
16935	Score float64 `json:"score,omitempty"`
16936
16937	// Url: The result web page URL.
16938	Url string `json:"url,omitempty"`
16939
16940	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
16941	// to unconditionally include in API requests. By default, fields with
16942	// empty values are omitted from API requests. However, any non-pointer,
16943	// non-interface field appearing in ForceSendFields will be sent to the
16944	// server regardless of whether the field is empty or not. This may be
16945	// used to include empty fields in Patch requests.
16946	ForceSendFields []string `json:"-"`
16947
16948	// NullFields is a list of field names (e.g. "FullMatchingImages") to
16949	// include in API requests with the JSON null value. By default, fields
16950	// with empty values are omitted from API requests. However, any field
16951	// with an empty value appearing in NullFields will be sent to the
16952	// server as null. It is an error if a field in this list has a
16953	// non-empty value. This may be used to include null fields in Patch
16954	// requests.
16955	NullFields []string `json:"-"`
16956}
16957
16958func (s *WebPage) MarshalJSON() ([]byte, error) {
16959	type NoMethod WebPage
16960	raw := NoMethod(*s)
16961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16962}
16963
16964func (s *WebPage) UnmarshalJSON(data []byte) error {
16965	type NoMethod WebPage
16966	var s1 struct {
16967		Score gensupport.JSONFloat64 `json:"score"`
16968		*NoMethod
16969	}
16970	s1.NoMethod = (*NoMethod)(s)
16971	if err := json.Unmarshal(data, &s1); err != nil {
16972		return err
16973	}
16974	s.Score = float64(s1.Score)
16975	return nil
16976}
16977
16978// Word: A word representation.
16979type Word struct {
16980	// BoundingBox: The bounding box for the word.
16981	// The vertices are in the order of top-left, top-right,
16982	// bottom-right,
16983	// bottom-left. When a rotation of the bounding box is detected the
16984	// rotation
16985	// is represented as around the top-left corner as defined when the text
16986	// is
16987	// read in the 'natural' orientation.
16988	// For example:
16989	//   * when the text is horizontal it might look like:
16990	//      0----1
16991	//      |    |
16992	//      3----2
16993	//   * when it's rotated 180 degrees around the top-left corner it
16994	// becomes:
16995	//      2----3
16996	//      |    |
16997	//      1----0
16998	//   and the vertex order will still be (0, 1, 2, 3).
16999	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
17000
17001	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
17002	Confidence float64 `json:"confidence,omitempty"`
17003
17004	// Property: Additional information detected for the word.
17005	Property *TextProperty `json:"property,omitempty"`
17006
17007	// Symbols: List of symbols in the word.
17008	// The order of the symbols follows the natural reading order.
17009	Symbols []*Symbol `json:"symbols,omitempty"`
17010
17011	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
17012	// unconditionally include in API requests. By default, fields with
17013	// empty values are omitted from API requests. However, any non-pointer,
17014	// non-interface field appearing in ForceSendFields will be sent to the
17015	// server regardless of whether the field is empty or not. This may be
17016	// used to include empty fields in Patch requests.
17017	ForceSendFields []string `json:"-"`
17018
17019	// NullFields is a list of field names (e.g. "BoundingBox") to include
17020	// in API requests with the JSON null value. By default, fields with
17021	// empty values are omitted from API requests. However, any field with
17022	// an empty value appearing in NullFields will be sent to the server as
17023	// null. It is an error if a field in this list has a non-empty value.
17024	// This may be used to include null fields in Patch requests.
17025	NullFields []string `json:"-"`
17026}
17027
17028func (s *Word) MarshalJSON() ([]byte, error) {
17029	type NoMethod Word
17030	raw := NoMethod(*s)
17031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17032}
17033
17034func (s *Word) UnmarshalJSON(data []byte) error {
17035	type NoMethod Word
17036	var s1 struct {
17037		Confidence gensupport.JSONFloat64 `json:"confidence"`
17038		*NoMethod
17039	}
17040	s1.NoMethod = (*NoMethod)(s)
17041	if err := json.Unmarshal(data, &s1); err != nil {
17042		return err
17043	}
17044	s.Confidence = float64(s1.Confidence)
17045	return nil
17046}
17047
17048// method id "vision.files.annotate":
17049
17050type FilesAnnotateCall struct {
17051	s                                                   *Service
17052	googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
17053	urlParams_                                          gensupport.URLParams
17054	ctx_                                                context.Context
17055	header_                                             http.Header
17056}
17057
17058// Annotate: Service that performs image detection and annotation for a
17059// batch of files.
17060// Now only "application/pdf", "image/tiff" and "image/gif" are
17061// supported.
17062//
17063// This service will extract at most 5 (customers can specify which 5
17064// in
17065// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
17066// each
17067// file provided and perform detection and annotation for each
17068// image
17069// extracted.
17070func (r *FilesService) Annotate(googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) *FilesAnnotateCall {
17071	c := &FilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17072	c.googlecloudvisionv1p2beta1batchannotatefilesrequest = googlecloudvisionv1p2beta1batchannotatefilesrequest
17073	return c
17074}
17075
17076// Fields allows partial responses to be retrieved. See
17077// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17078// for more information.
17079func (c *FilesAnnotateCall) Fields(s ...googleapi.Field) *FilesAnnotateCall {
17080	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17081	return c
17082}
17083
17084// Context sets the context to be used in this call's Do method. Any
17085// pending HTTP request will be aborted if the provided context is
17086// canceled.
17087func (c *FilesAnnotateCall) Context(ctx context.Context) *FilesAnnotateCall {
17088	c.ctx_ = ctx
17089	return c
17090}
17091
17092// Header returns an http.Header that can be modified by the caller to
17093// add HTTP headers to the request.
17094func (c *FilesAnnotateCall) Header() http.Header {
17095	if c.header_ == nil {
17096		c.header_ = make(http.Header)
17097	}
17098	return c.header_
17099}
17100
17101func (c *FilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17102	reqHeaders := make(http.Header)
17103	for k, v := range c.header_ {
17104		reqHeaders[k] = v
17105	}
17106	reqHeaders.Set("User-Agent", c.s.userAgent())
17107	var body io.Reader = nil
17108	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotatefilesrequest)
17109	if err != nil {
17110		return nil, err
17111	}
17112	reqHeaders.Set("Content-Type", "application/json")
17113	c.urlParams_.Set("alt", alt)
17114	c.urlParams_.Set("prettyPrint", "false")
17115	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/files:annotate")
17116	urls += "?" + c.urlParams_.Encode()
17117	req, err := http.NewRequest("POST", urls, body)
17118	if err != nil {
17119		return nil, err
17120	}
17121	req.Header = reqHeaders
17122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17123}
17124
17125// Do executes the "vision.files.annotate" call.
17126// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
17127// or error will be non-nil. Any non-2xx status code is an error.
17128// Response headers are in either
17129// *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse.ServerResponse.H
17130// eader or (if a response was returned at all) in
17131// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
17132// whether the returned error was because http.StatusNotModified was
17133// returned.
17134func (c *FilesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse, error) {
17135	gensupport.SetOptions(c.urlParams_, opts...)
17136	res, err := c.doRequest("json")
17137	if res != nil && res.StatusCode == http.StatusNotModified {
17138		if res.Body != nil {
17139			res.Body.Close()
17140		}
17141		return nil, &googleapi.Error{
17142			Code:   res.StatusCode,
17143			Header: res.Header,
17144		}
17145	}
17146	if err != nil {
17147		return nil, err
17148	}
17149	defer googleapi.CloseBody(res)
17150	if err := googleapi.CheckResponse(res); err != nil {
17151		return nil, err
17152	}
17153	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse{
17154		ServerResponse: googleapi.ServerResponse{
17155			Header:         res.Header,
17156			HTTPStatusCode: res.StatusCode,
17157		},
17158	}
17159	target := &ret
17160	if err := gensupport.DecodeResponse(target, res); err != nil {
17161		return nil, err
17162	}
17163	return ret, nil
17164	// {
17165	//   "description": "Service that performs image detection and annotation for a batch of files.\nNow only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported.\n\nThis service will extract at most 5 (customers can specify which 5 in\nAnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each\nfile provided and perform detection and annotation for each image\nextracted.",
17166	//   "flatPath": "v1p2beta1/files:annotate",
17167	//   "httpMethod": "POST",
17168	//   "id": "vision.files.annotate",
17169	//   "parameterOrder": [],
17170	//   "parameters": {},
17171	//   "path": "v1p2beta1/files:annotate",
17172	//   "request": {
17173	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest"
17174	//   },
17175	//   "response": {
17176	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse"
17177	//   },
17178	//   "scopes": [
17179	//     "https://www.googleapis.com/auth/cloud-platform",
17180	//     "https://www.googleapis.com/auth/cloud-vision"
17181	//   ]
17182	// }
17183
17184}
17185
17186// method id "vision.files.asyncBatchAnnotate":
17187
17188type FilesAsyncBatchAnnotateCall struct {
17189	s                                                        *Service
17190	googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
17191	urlParams_                                               gensupport.URLParams
17192	ctx_                                                     context.Context
17193	header_                                                  http.Header
17194}
17195
17196// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17197// for a list of generic
17198// files, such as PDF files, which may contain multiple pages and
17199// multiple
17200// images per page. Progress and results can be retrieved through
17201// the
17202// `google.longrunning.Operations` interface.
17203// `Operation.metadata` contains `OperationMetadata`
17204// (metadata).
17205// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
17206// (results).
17207func (r *FilesService) AsyncBatchAnnotate(googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) *FilesAsyncBatchAnnotateCall {
17208	c := &FilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17209	c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest = googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest
17210	return c
17211}
17212
17213// Fields allows partial responses to be retrieved. See
17214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17215// for more information.
17216func (c *FilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *FilesAsyncBatchAnnotateCall {
17217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17218	return c
17219}
17220
17221// Context sets the context to be used in this call's Do method. Any
17222// pending HTTP request will be aborted if the provided context is
17223// canceled.
17224func (c *FilesAsyncBatchAnnotateCall) Context(ctx context.Context) *FilesAsyncBatchAnnotateCall {
17225	c.ctx_ = ctx
17226	return c
17227}
17228
17229// Header returns an http.Header that can be modified by the caller to
17230// add HTTP headers to the request.
17231func (c *FilesAsyncBatchAnnotateCall) Header() http.Header {
17232	if c.header_ == nil {
17233		c.header_ = make(http.Header)
17234	}
17235	return c.header_
17236}
17237
17238func (c *FilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17239	reqHeaders := make(http.Header)
17240	for k, v := range c.header_ {
17241		reqHeaders[k] = v
17242	}
17243	reqHeaders.Set("User-Agent", c.s.userAgent())
17244	var body io.Reader = nil
17245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest)
17246	if err != nil {
17247		return nil, err
17248	}
17249	reqHeaders.Set("Content-Type", "application/json")
17250	c.urlParams_.Set("alt", alt)
17251	c.urlParams_.Set("prettyPrint", "false")
17252	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/files:asyncBatchAnnotate")
17253	urls += "?" + c.urlParams_.Encode()
17254	req, err := http.NewRequest("POST", urls, body)
17255	if err != nil {
17256		return nil, err
17257	}
17258	req.Header = reqHeaders
17259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17260}
17261
17262// Do executes the "vision.files.asyncBatchAnnotate" call.
17263// Exactly one of *Operation or error will be non-nil. Any non-2xx
17264// status code is an error. Response headers are in either
17265// *Operation.ServerResponse.Header or (if a response was returned at
17266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17267// to check whether the returned error was because
17268// http.StatusNotModified was returned.
17269func (c *FilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17270	gensupport.SetOptions(c.urlParams_, opts...)
17271	res, err := c.doRequest("json")
17272	if res != nil && res.StatusCode == http.StatusNotModified {
17273		if res.Body != nil {
17274			res.Body.Close()
17275		}
17276		return nil, &googleapi.Error{
17277			Code:   res.StatusCode,
17278			Header: res.Header,
17279		}
17280	}
17281	if err != nil {
17282		return nil, err
17283	}
17284	defer googleapi.CloseBody(res)
17285	if err := googleapi.CheckResponse(res); err != nil {
17286		return nil, err
17287	}
17288	ret := &Operation{
17289		ServerResponse: googleapi.ServerResponse{
17290			Header:         res.Header,
17291			HTTPStatusCode: res.StatusCode,
17292		},
17293	}
17294	target := &ret
17295	if err := gensupport.DecodeResponse(target, res); err != nil {
17296		return nil, err
17297	}
17298	return ret, nil
17299	// {
17300	//   "description": "Run asynchronous image detection and annotation for a list of generic\nfiles, such as PDF files, which may contain multiple pages and multiple\nimages per page. Progress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
17301	//   "flatPath": "v1p2beta1/files:asyncBatchAnnotate",
17302	//   "httpMethod": "POST",
17303	//   "id": "vision.files.asyncBatchAnnotate",
17304	//   "parameterOrder": [],
17305	//   "parameters": {},
17306	//   "path": "v1p2beta1/files:asyncBatchAnnotate",
17307	//   "request": {
17308	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest"
17309	//   },
17310	//   "response": {
17311	//     "$ref": "Operation"
17312	//   },
17313	//   "scopes": [
17314	//     "https://www.googleapis.com/auth/cloud-platform",
17315	//     "https://www.googleapis.com/auth/cloud-vision"
17316	//   ]
17317	// }
17318
17319}
17320
17321// method id "vision.images.annotate":
17322
17323type ImagesAnnotateCall struct {
17324	s                                                    *Service
17325	googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
17326	urlParams_                                           gensupport.URLParams
17327	ctx_                                                 context.Context
17328	header_                                              http.Header
17329}
17330
17331// Annotate: Run image detection and annotation for a batch of images.
17332func (r *ImagesService) Annotate(googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) *ImagesAnnotateCall {
17333	c := &ImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17334	c.googlecloudvisionv1p2beta1batchannotateimagesrequest = googlecloudvisionv1p2beta1batchannotateimagesrequest
17335	return c
17336}
17337
17338// Fields allows partial responses to be retrieved. See
17339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17340// for more information.
17341func (c *ImagesAnnotateCall) Fields(s ...googleapi.Field) *ImagesAnnotateCall {
17342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17343	return c
17344}
17345
17346// Context sets the context to be used in this call's Do method. Any
17347// pending HTTP request will be aborted if the provided context is
17348// canceled.
17349func (c *ImagesAnnotateCall) Context(ctx context.Context) *ImagesAnnotateCall {
17350	c.ctx_ = ctx
17351	return c
17352}
17353
17354// Header returns an http.Header that can be modified by the caller to
17355// add HTTP headers to the request.
17356func (c *ImagesAnnotateCall) Header() http.Header {
17357	if c.header_ == nil {
17358		c.header_ = make(http.Header)
17359	}
17360	return c.header_
17361}
17362
17363func (c *ImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17364	reqHeaders := make(http.Header)
17365	for k, v := range c.header_ {
17366		reqHeaders[k] = v
17367	}
17368	reqHeaders.Set("User-Agent", c.s.userAgent())
17369	var body io.Reader = nil
17370	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotateimagesrequest)
17371	if err != nil {
17372		return nil, err
17373	}
17374	reqHeaders.Set("Content-Type", "application/json")
17375	c.urlParams_.Set("alt", alt)
17376	c.urlParams_.Set("prettyPrint", "false")
17377	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/images:annotate")
17378	urls += "?" + c.urlParams_.Encode()
17379	req, err := http.NewRequest("POST", urls, body)
17380	if err != nil {
17381		return nil, err
17382	}
17383	req.Header = reqHeaders
17384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17385}
17386
17387// Do executes the "vision.images.annotate" call.
17388// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
17389// or error will be non-nil. Any non-2xx status code is an error.
17390// Response headers are in either
17391// *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse.ServerResponse.
17392// Header or (if a response was returned at all) in
17393// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
17394// whether the returned error was because http.StatusNotModified was
17395// returned.
17396func (c *ImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse, error) {
17397	gensupport.SetOptions(c.urlParams_, opts...)
17398	res, err := c.doRequest("json")
17399	if res != nil && res.StatusCode == http.StatusNotModified {
17400		if res.Body != nil {
17401			res.Body.Close()
17402		}
17403		return nil, &googleapi.Error{
17404			Code:   res.StatusCode,
17405			Header: res.Header,
17406		}
17407	}
17408	if err != nil {
17409		return nil, err
17410	}
17411	defer googleapi.CloseBody(res)
17412	if err := googleapi.CheckResponse(res); err != nil {
17413		return nil, err
17414	}
17415	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse{
17416		ServerResponse: googleapi.ServerResponse{
17417			Header:         res.Header,
17418			HTTPStatusCode: res.StatusCode,
17419		},
17420	}
17421	target := &ret
17422	if err := gensupport.DecodeResponse(target, res); err != nil {
17423		return nil, err
17424	}
17425	return ret, nil
17426	// {
17427	//   "description": "Run image detection and annotation for a batch of images.",
17428	//   "flatPath": "v1p2beta1/images:annotate",
17429	//   "httpMethod": "POST",
17430	//   "id": "vision.images.annotate",
17431	//   "parameterOrder": [],
17432	//   "parameters": {},
17433	//   "path": "v1p2beta1/images:annotate",
17434	//   "request": {
17435	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest"
17436	//   },
17437	//   "response": {
17438	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse"
17439	//   },
17440	//   "scopes": [
17441	//     "https://www.googleapis.com/auth/cloud-platform",
17442	//     "https://www.googleapis.com/auth/cloud-vision"
17443	//   ]
17444	// }
17445
17446}
17447
17448// method id "vision.images.asyncBatchAnnotate":
17449
17450type ImagesAsyncBatchAnnotateCall struct {
17451	s                                                         *Service
17452	googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
17453	urlParams_                                                gensupport.URLParams
17454	ctx_                                                      context.Context
17455	header_                                                   http.Header
17456}
17457
17458// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17459// for a list of images.
17460//
17461// Progress and results can be retrieved through
17462// the
17463// `google.longrunning.Operations` interface.
17464// `Operation.metadata` contains `OperationMetadata`
17465// (metadata).
17466// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
17467// (results).
17468//
17469// This service will write image annotation outputs to json files in
17470// customer
17471// GCS bucket, each json file containing BatchAnnotateImagesResponse
17472// proto.
17473func (r *ImagesService) AsyncBatchAnnotate(googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) *ImagesAsyncBatchAnnotateCall {
17474	c := &ImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17475	c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest = googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest
17476	return c
17477}
17478
17479// Fields allows partial responses to be retrieved. See
17480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17481// for more information.
17482func (c *ImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ImagesAsyncBatchAnnotateCall {
17483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17484	return c
17485}
17486
17487// Context sets the context to be used in this call's Do method. Any
17488// pending HTTP request will be aborted if the provided context is
17489// canceled.
17490func (c *ImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ImagesAsyncBatchAnnotateCall {
17491	c.ctx_ = ctx
17492	return c
17493}
17494
17495// Header returns an http.Header that can be modified by the caller to
17496// add HTTP headers to the request.
17497func (c *ImagesAsyncBatchAnnotateCall) Header() http.Header {
17498	if c.header_ == nil {
17499		c.header_ = make(http.Header)
17500	}
17501	return c.header_
17502}
17503
17504func (c *ImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17505	reqHeaders := make(http.Header)
17506	for k, v := range c.header_ {
17507		reqHeaders[k] = v
17508	}
17509	reqHeaders.Set("User-Agent", c.s.userAgent())
17510	var body io.Reader = nil
17511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest)
17512	if err != nil {
17513		return nil, err
17514	}
17515	reqHeaders.Set("Content-Type", "application/json")
17516	c.urlParams_.Set("alt", alt)
17517	c.urlParams_.Set("prettyPrint", "false")
17518	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/images:asyncBatchAnnotate")
17519	urls += "?" + c.urlParams_.Encode()
17520	req, err := http.NewRequest("POST", urls, body)
17521	if err != nil {
17522		return nil, err
17523	}
17524	req.Header = reqHeaders
17525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17526}
17527
17528// Do executes the "vision.images.asyncBatchAnnotate" call.
17529// Exactly one of *Operation or error will be non-nil. Any non-2xx
17530// status code is an error. Response headers are in either
17531// *Operation.ServerResponse.Header or (if a response was returned at
17532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17533// to check whether the returned error was because
17534// http.StatusNotModified was returned.
17535func (c *ImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17536	gensupport.SetOptions(c.urlParams_, opts...)
17537	res, err := c.doRequest("json")
17538	if res != nil && res.StatusCode == http.StatusNotModified {
17539		if res.Body != nil {
17540			res.Body.Close()
17541		}
17542		return nil, &googleapi.Error{
17543			Code:   res.StatusCode,
17544			Header: res.Header,
17545		}
17546	}
17547	if err != nil {
17548		return nil, err
17549	}
17550	defer googleapi.CloseBody(res)
17551	if err := googleapi.CheckResponse(res); err != nil {
17552		return nil, err
17553	}
17554	ret := &Operation{
17555		ServerResponse: googleapi.ServerResponse{
17556			Header:         res.Header,
17557			HTTPStatusCode: res.StatusCode,
17558		},
17559	}
17560	target := &ret
17561	if err := gensupport.DecodeResponse(target, res); err != nil {
17562		return nil, err
17563	}
17564	return ret, nil
17565	// {
17566	//   "description": "Run asynchronous image detection and annotation for a list of images.\n\nProgress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results).\n\nThis service will write image annotation outputs to json files in customer\nGCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
17567	//   "flatPath": "v1p2beta1/images:asyncBatchAnnotate",
17568	//   "httpMethod": "POST",
17569	//   "id": "vision.images.asyncBatchAnnotate",
17570	//   "parameterOrder": [],
17571	//   "parameters": {},
17572	//   "path": "v1p2beta1/images:asyncBatchAnnotate",
17573	//   "request": {
17574	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest"
17575	//   },
17576	//   "response": {
17577	//     "$ref": "Operation"
17578	//   },
17579	//   "scopes": [
17580	//     "https://www.googleapis.com/auth/cloud-platform",
17581	//     "https://www.googleapis.com/auth/cloud-vision"
17582	//   ]
17583	// }
17584
17585}
17586