1// Copyright 2021 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	googleapi "google.golang.org/api/googleapi"
59	gensupport "google.golang.org/api/internal/gensupport"
60	option "google.golang.org/api/option"
61	internaloption "google.golang.org/api/option/internaloption"
62	htransport "google.golang.org/api/transport/http"
63)
64
65// Always reference these packages, just in case the auto-generated code
66// below doesn't.
67var _ = bytes.NewBuffer
68var _ = strconv.Itoa
69var _ = fmt.Sprintf
70var _ = json.NewDecoder
71var _ = io.Copy
72var _ = url.Parse
73var _ = gensupport.MarshalJSON
74var _ = googleapi.Version
75var _ = errors.New
76var _ = strings.Replace
77var _ = context.Canceled
78var _ = internaloption.WithDefaultEndpoint
79
80const apiId = "vision:v1p2beta1"
81const apiName = "vision"
82const apiVersion = "v1p2beta1"
83const basePath = "https://vision.googleapis.com/"
84const mtlsBasePath = "https://vision.mtls.googleapis.com/"
85
86// OAuth2 scopes used by this API.
87const (
88	// See, edit, configure, and delete your Google Cloud data and see the
89	// email address for your Google Account.
90	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
91
92	// Apply machine learning models to understand and label images
93	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
94)
95
96// NewService creates a new Service.
97func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
98	scopesOption := option.WithScopes(
99		"https://www.googleapis.com/auth/cloud-platform",
100		"https://www.googleapis.com/auth/cloud-vision",
101	)
102	// NOTE: prepend, so we don't override user-specified scopes.
103	opts = append([]option.ClientOption{scopesOption}, opts...)
104	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
105	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
106	client, endpoint, err := htransport.NewClient(ctx, opts...)
107	if err != nil {
108		return nil, err
109	}
110	s, err := New(client)
111	if err != nil {
112		return nil, err
113	}
114	if endpoint != "" {
115		s.BasePath = endpoint
116	}
117	return s, nil
118}
119
120// New creates a new Service. It uses the provided http.Client for requests.
121//
122// Deprecated: please use NewService instead.
123// To provide a custom HTTP client, use option.WithHTTPClient.
124// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
125func New(client *http.Client) (*Service, error) {
126	if client == nil {
127		return nil, errors.New("client is nil")
128	}
129	s := &Service{client: client, BasePath: basePath}
130	s.Files = NewFilesService(s)
131	s.Images = NewImagesService(s)
132	s.Projects = NewProjectsService(s)
133	return s, nil
134}
135
136type Service struct {
137	client    *http.Client
138	BasePath  string // API endpoint base URL
139	UserAgent string // optional additional User-Agent fragment
140
141	Files *FilesService
142
143	Images *ImagesService
144
145	Projects *ProjectsService
146}
147
148func (s *Service) userAgent() string {
149	if s.UserAgent == "" {
150		return googleapi.UserAgent
151	}
152	return googleapi.UserAgent + " " + s.UserAgent
153}
154
155func NewFilesService(s *Service) *FilesService {
156	rs := &FilesService{s: s}
157	return rs
158}
159
160type FilesService struct {
161	s *Service
162}
163
164func NewImagesService(s *Service) *ImagesService {
165	rs := &ImagesService{s: s}
166	return rs
167}
168
169type ImagesService struct {
170	s *Service
171}
172
173func NewProjectsService(s *Service) *ProjectsService {
174	rs := &ProjectsService{s: s}
175	rs.Files = NewProjectsFilesService(s)
176	rs.Images = NewProjectsImagesService(s)
177	rs.Locations = NewProjectsLocationsService(s)
178	return rs
179}
180
181type ProjectsService struct {
182	s *Service
183
184	Files *ProjectsFilesService
185
186	Images *ProjectsImagesService
187
188	Locations *ProjectsLocationsService
189}
190
191func NewProjectsFilesService(s *Service) *ProjectsFilesService {
192	rs := &ProjectsFilesService{s: s}
193	return rs
194}
195
196type ProjectsFilesService struct {
197	s *Service
198}
199
200func NewProjectsImagesService(s *Service) *ProjectsImagesService {
201	rs := &ProjectsImagesService{s: s}
202	return rs
203}
204
205type ProjectsImagesService struct {
206	s *Service
207}
208
209func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
210	rs := &ProjectsLocationsService{s: s}
211	rs.Files = NewProjectsLocationsFilesService(s)
212	rs.Images = NewProjectsLocationsImagesService(s)
213	return rs
214}
215
216type ProjectsLocationsService struct {
217	s *Service
218
219	Files *ProjectsLocationsFilesService
220
221	Images *ProjectsLocationsImagesService
222}
223
224func NewProjectsLocationsFilesService(s *Service) *ProjectsLocationsFilesService {
225	rs := &ProjectsLocationsFilesService{s: s}
226	return rs
227}
228
229type ProjectsLocationsFilesService struct {
230	s *Service
231}
232
233func NewProjectsLocationsImagesService(s *Service) *ProjectsLocationsImagesService {
234	rs := &ProjectsLocationsImagesService{s: s}
235	return rs
236}
237
238type ProjectsLocationsImagesService struct {
239	s *Service
240}
241
242// AnnotateFileResponse: Response to a single file annotation request. A
243// file may contain one or more images, which individually have their
244// own responses.
245type AnnotateFileResponse struct {
246	// Error: If set, represents the error message for the failed request.
247	// The `responses` field will not be set in this case.
248	Error *Status `json:"error,omitempty"`
249
250	// InputConfig: Information about the file for which this response is
251	// generated.
252	InputConfig *InputConfig `json:"inputConfig,omitempty"`
253
254	// Responses: Individual responses to images found within the file. This
255	// field will be empty if the `error` field is set.
256	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
257
258	// TotalPages: This field gives the total number of pages in the file.
259	TotalPages int64 `json:"totalPages,omitempty"`
260
261	// ForceSendFields is a list of field names (e.g. "Error") to
262	// unconditionally include in API requests. By default, fields with
263	// empty or default values are omitted from API requests. However, any
264	// non-pointer, non-interface field appearing in ForceSendFields will be
265	// sent to the server regardless of whether the field is empty or not.
266	// This may be used to include empty fields in Patch requests.
267	ForceSendFields []string `json:"-"`
268
269	// NullFields is a list of field names (e.g. "Error") to include in API
270	// requests with the JSON null value. By default, fields with empty
271	// values are omitted from API requests. However, any field with an
272	// empty value appearing in NullFields will be sent to the server as
273	// null. It is an error if a field in this list has a non-empty value.
274	// This may be used to include null fields in Patch requests.
275	NullFields []string `json:"-"`
276}
277
278func (s *AnnotateFileResponse) MarshalJSON() ([]byte, error) {
279	type NoMethod AnnotateFileResponse
280	raw := NoMethod(*s)
281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
282}
283
284// AnnotateImageResponse: Response to an image annotation request.
285type AnnotateImageResponse struct {
286	// Context: If present, contextual information is needed to understand
287	// where this image comes from.
288	Context *ImageAnnotationContext `json:"context,omitempty"`
289
290	// CropHintsAnnotation: If present, crop hints have completed
291	// successfully.
292	CropHintsAnnotation *CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
293
294	// Error: If set, represents the error message for the operation. Note
295	// that filled-in image annotations are guaranteed to be correct, even
296	// when `error` is set.
297	Error *Status `json:"error,omitempty"`
298
299	// FaceAnnotations: If present, face detection has completed
300	// successfully.
301	FaceAnnotations []*FaceAnnotation `json:"faceAnnotations,omitempty"`
302
303	// FullTextAnnotation: If present, text (OCR) detection or document
304	// (OCR) text detection has completed successfully. This annotation
305	// provides the structural hierarchy for the OCR detected text.
306	FullTextAnnotation *TextAnnotation `json:"fullTextAnnotation,omitempty"`
307
308	// ImagePropertiesAnnotation: If present, image properties were
309	// extracted successfully.
310	ImagePropertiesAnnotation *ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
311
312	// LabelAnnotations: If present, label detection has completed
313	// successfully.
314	LabelAnnotations []*EntityAnnotation `json:"labelAnnotations,omitempty"`
315
316	// LandmarkAnnotations: If present, landmark detection has completed
317	// successfully.
318	LandmarkAnnotations []*EntityAnnotation `json:"landmarkAnnotations,omitempty"`
319
320	// LocalizedObjectAnnotations: If present, localized object detection
321	// has completed successfully. This will be sorted descending by
322	// confidence score.
323	LocalizedObjectAnnotations []*LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
324
325	// LogoAnnotations: If present, logo detection has completed
326	// successfully.
327	LogoAnnotations []*EntityAnnotation `json:"logoAnnotations,omitempty"`
328
329	// ProductSearchResults: If present, product search has completed
330	// successfully.
331	ProductSearchResults *ProductSearchResults `json:"productSearchResults,omitempty"`
332
333	// SafeSearchAnnotation: If present, safe-search annotation has
334	// completed successfully.
335	SafeSearchAnnotation *SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
336
337	// TextAnnotations: If present, text (OCR) detection has completed
338	// successfully.
339	TextAnnotations []*EntityAnnotation `json:"textAnnotations,omitempty"`
340
341	// WebDetection: If present, web detection has completed successfully.
342	WebDetection *WebDetection `json:"webDetection,omitempty"`
343
344	// ForceSendFields is a list of field names (e.g. "Context") to
345	// unconditionally include in API requests. By default, fields with
346	// empty or default values are omitted from API requests. However, any
347	// non-pointer, non-interface field appearing in ForceSendFields will be
348	// sent to the server regardless of whether the field is empty or not.
349	// This may be used to include empty fields in Patch requests.
350	ForceSendFields []string `json:"-"`
351
352	// NullFields is a list of field names (e.g. "Context") to include in
353	// API requests with the JSON null value. By default, fields with empty
354	// values are omitted from API requests. However, any field with an
355	// empty value appearing in NullFields will be sent to the server as
356	// null. It is an error if a field in this list has a non-empty value.
357	// This may be used to include null fields in Patch requests.
358	NullFields []string `json:"-"`
359}
360
361func (s *AnnotateImageResponse) MarshalJSON() ([]byte, error) {
362	type NoMethod AnnotateImageResponse
363	raw := NoMethod(*s)
364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
365}
366
367// AsyncAnnotateFileResponse: The response for a single offline file
368// annotation request.
369type AsyncAnnotateFileResponse struct {
370	// OutputConfig: The output location and metadata from
371	// AsyncAnnotateFileRequest.
372	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
373
374	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
375	// unconditionally include in API requests. By default, fields with
376	// empty or default values are omitted from API requests. However, any
377	// non-pointer, non-interface field appearing in ForceSendFields will be
378	// sent to the server regardless of whether the field is empty or not.
379	// This may be used to include empty fields in Patch requests.
380	ForceSendFields []string `json:"-"`
381
382	// NullFields is a list of field names (e.g. "OutputConfig") to include
383	// in API requests with the JSON null value. By default, fields with
384	// empty values are omitted from API requests. However, any field with
385	// an empty value appearing in NullFields will be sent to the server as
386	// null. It is an error if a field in this list has a non-empty value.
387	// This may be used to include null fields in Patch requests.
388	NullFields []string `json:"-"`
389}
390
391func (s *AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
392	type NoMethod AsyncAnnotateFileResponse
393	raw := NoMethod(*s)
394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
395}
396
397// AsyncBatchAnnotateFilesResponse: Response to an async batch file
398// annotation request.
399type AsyncBatchAnnotateFilesResponse struct {
400	// Responses: The list of file annotation responses, one for each
401	// request in AsyncBatchAnnotateFilesRequest.
402	Responses []*AsyncAnnotateFileResponse `json:"responses,omitempty"`
403
404	// ForceSendFields is a list of field names (e.g. "Responses") to
405	// unconditionally include in API requests. By default, fields with
406	// empty or default values are omitted from API requests. However, any
407	// non-pointer, non-interface field appearing in ForceSendFields will be
408	// sent to the server regardless of whether the field is empty or not.
409	// This may be used to include empty fields in Patch requests.
410	ForceSendFields []string `json:"-"`
411
412	// NullFields is a list of field names (e.g. "Responses") to include in
413	// API requests with the JSON null value. By default, fields with empty
414	// values are omitted from API requests. However, any field with an
415	// empty value appearing in NullFields will be sent to the server as
416	// null. It is an error if a field in this list has a non-empty value.
417	// This may be used to include null fields in Patch requests.
418	NullFields []string `json:"-"`
419}
420
421func (s *AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
422	type NoMethod AsyncBatchAnnotateFilesResponse
423	raw := NoMethod(*s)
424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
425}
426
427// AsyncBatchAnnotateImagesResponse: Response to an async batch image
428// annotation request.
429type AsyncBatchAnnotateImagesResponse struct {
430	// OutputConfig: The output location and metadata from
431	// AsyncBatchAnnotateImagesRequest.
432	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
433
434	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
435	// unconditionally include in API requests. By default, fields with
436	// empty or default values are omitted from API requests. However, any
437	// non-pointer, non-interface field appearing in ForceSendFields will be
438	// sent to the server regardless of whether the field is empty or not.
439	// This may be used to include empty fields in Patch requests.
440	ForceSendFields []string `json:"-"`
441
442	// NullFields is a list of field names (e.g. "OutputConfig") to include
443	// in API requests with the JSON null value. By default, fields with
444	// empty values are omitted from API requests. However, any field with
445	// an empty value appearing in NullFields will be sent to the server as
446	// null. It is an error if a field in this list has a non-empty value.
447	// This may be used to include null fields in Patch requests.
448	NullFields []string `json:"-"`
449}
450
451func (s *AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
452	type NoMethod AsyncBatchAnnotateImagesResponse
453	raw := NoMethod(*s)
454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
455}
456
457// BatchAnnotateFilesResponse: A list of file annotation responses.
458type BatchAnnotateFilesResponse struct {
459	// Responses: The list of file annotation responses, each response
460	// corresponding to each AnnotateFileRequest in
461	// BatchAnnotateFilesRequest.
462	Responses []*AnnotateFileResponse `json:"responses,omitempty"`
463
464	// ForceSendFields is a list of field names (e.g. "Responses") to
465	// unconditionally include in API requests. By default, fields with
466	// empty or default values are omitted from API requests. However, any
467	// non-pointer, non-interface field appearing in ForceSendFields will be
468	// sent to the server regardless of whether the field is empty or not.
469	// This may be used to include empty fields in Patch requests.
470	ForceSendFields []string `json:"-"`
471
472	// NullFields is a list of field names (e.g. "Responses") to include in
473	// API requests with the JSON null value. By default, fields with empty
474	// values are omitted from API requests. However, any field with an
475	// empty value appearing in NullFields will be sent to the server as
476	// null. It is an error if a field in this list has a non-empty value.
477	// This may be used to include null fields in Patch requests.
478	NullFields []string `json:"-"`
479}
480
481func (s *BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
482	type NoMethod BatchAnnotateFilesResponse
483	raw := NoMethod(*s)
484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
485}
486
487// BatchOperationMetadata: Metadata for the batch operations such as the
488// current state. This is included in the `metadata` field of the
489// `Operation` returned by the `GetOperation` call of the
490// `google::longrunning::Operations` service.
491type BatchOperationMetadata struct {
492	// EndTime: The time when the batch request is finished and
493	// google.longrunning.Operation.done is set to true.
494	EndTime string `json:"endTime,omitempty"`
495
496	// State: The current state of the batch operation.
497	//
498	// Possible values:
499	//   "STATE_UNSPECIFIED" - Invalid.
500	//   "PROCESSING" - Request is actively being processed.
501	//   "SUCCESSFUL" - The request is done and at least one item has been
502	// successfully processed.
503	//   "FAILED" - The request is done and no item has been successfully
504	// processed.
505	//   "CANCELLED" - The request is done after the
506	// longrunning.Operations.CancelOperation has been called by the user.
507	// Any records that were processed before the cancel command are output
508	// as specified in the request.
509	State string `json:"state,omitempty"`
510
511	// SubmitTime: The time when the batch request was submitted to the
512	// server.
513	SubmitTime string `json:"submitTime,omitempty"`
514
515	// ForceSendFields is a list of field names (e.g. "EndTime") to
516	// unconditionally include in API requests. By default, fields with
517	// empty or default values are omitted from API requests. However, any
518	// non-pointer, non-interface field appearing in ForceSendFields will be
519	// sent to the server regardless of whether the field is empty or not.
520	// This may be used to include empty fields in Patch requests.
521	ForceSendFields []string `json:"-"`
522
523	// NullFields is a list of field names (e.g. "EndTime") to include in
524	// API requests with the JSON null value. By default, fields with empty
525	// values are omitted from API requests. However, any field with an
526	// empty value appearing in NullFields will be sent to the server as
527	// null. It is an error if a field in this list has a non-empty value.
528	// This may be used to include null fields in Patch requests.
529	NullFields []string `json:"-"`
530}
531
532func (s *BatchOperationMetadata) MarshalJSON() ([]byte, error) {
533	type NoMethod BatchOperationMetadata
534	raw := NoMethod(*s)
535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
536}
537
538// Block: Logical element on the page.
539type Block struct {
540	// BlockType: Detected block type (text, image etc) for this block.
541	//
542	// Possible values:
543	//   "UNKNOWN" - Unknown block type.
544	//   "TEXT" - Regular text block.
545	//   "TABLE" - Table block.
546	//   "PICTURE" - Image block.
547	//   "RULER" - Horizontal/vertical line box.
548	//   "BARCODE" - Barcode block.
549	BlockType string `json:"blockType,omitempty"`
550
551	// BoundingBox: The bounding box for the block. The vertices are in the
552	// order of top-left, top-right, bottom-right, bottom-left. When a
553	// rotation of the bounding box is detected the rotation is represented
554	// as around the top-left corner as defined when the text is read in the
555	// 'natural' orientation. For example: * when the text is horizontal it
556	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
557	// around the top-left corner it becomes: 2----3 | | 1----0 and the
558	// vertex order will still be (0, 1, 2, 3).
559	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
560
561	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
562	Confidence float64 `json:"confidence,omitempty"`
563
564	// Paragraphs: List of paragraphs in this block (if this blocks is of
565	// type text).
566	Paragraphs []*Paragraph `json:"paragraphs,omitempty"`
567
568	// Property: Additional information detected for the block.
569	Property *TextProperty `json:"property,omitempty"`
570
571	// ForceSendFields is a list of field names (e.g. "BlockType") to
572	// unconditionally include in API requests. By default, fields with
573	// empty or default values are omitted from API requests. However, any
574	// non-pointer, non-interface field appearing in ForceSendFields will be
575	// sent to the server regardless of whether the field is empty or not.
576	// This may be used to include empty fields in Patch requests.
577	ForceSendFields []string `json:"-"`
578
579	// NullFields is a list of field names (e.g. "BlockType") to include in
580	// API requests with the JSON null value. By default, fields with empty
581	// values are omitted from API requests. However, any field with an
582	// empty value appearing in NullFields will be sent to the server as
583	// null. It is an error if a field in this list has a non-empty value.
584	// This may be used to include null fields in Patch requests.
585	NullFields []string `json:"-"`
586}
587
588func (s *Block) MarshalJSON() ([]byte, error) {
589	type NoMethod Block
590	raw := NoMethod(*s)
591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
592}
593
594func (s *Block) UnmarshalJSON(data []byte) error {
595	type NoMethod Block
596	var s1 struct {
597		Confidence gensupport.JSONFloat64 `json:"confidence"`
598		*NoMethod
599	}
600	s1.NoMethod = (*NoMethod)(s)
601	if err := json.Unmarshal(data, &s1); err != nil {
602		return err
603	}
604	s.Confidence = float64(s1.Confidence)
605	return nil
606}
607
608// BoundingPoly: A bounding polygon for the detected image annotation.
609type BoundingPoly struct {
610	// NormalizedVertices: The bounding polygon normalized vertices.
611	NormalizedVertices []*NormalizedVertex `json:"normalizedVertices,omitempty"`
612
613	// Vertices: The bounding polygon vertices.
614	Vertices []*Vertex `json:"vertices,omitempty"`
615
616	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
617	// to unconditionally include in API requests. By default, fields with
618	// empty or default values are omitted from API requests. However, any
619	// non-pointer, non-interface field appearing in ForceSendFields will be
620	// sent to the server regardless of whether the field is empty or not.
621	// This may be used to include empty fields in Patch requests.
622	ForceSendFields []string `json:"-"`
623
624	// NullFields is a list of field names (e.g. "NormalizedVertices") to
625	// include in API requests with the JSON null value. By default, fields
626	// with empty values are omitted from API requests. However, any field
627	// with an empty value appearing in NullFields will be sent to the
628	// server as null. It is an error if a field in this list has a
629	// non-empty value. This may be used to include null fields in Patch
630	// requests.
631	NullFields []string `json:"-"`
632}
633
634func (s *BoundingPoly) MarshalJSON() ([]byte, error) {
635	type NoMethod BoundingPoly
636	raw := NoMethod(*s)
637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
638}
639
640// Color: Represents a color in the RGBA color space. This
641// representation is designed for simplicity of conversion to/from color
642// representations in various languages over compactness. For example,
643// the fields of this representation can be trivially provided to the
644// constructor of `java.awt.Color` in Java; it can also be trivially
645// provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS;
646// and, with just a little work, it can be easily formatted into a CSS
647// `rgba()` string in JavaScript. This reference page doesn't carry
648// information about the absolute color space that should be used to
649// interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020,
650// etc.). By default, applications should assume the sRGB color space.
651// When color equality needs to be decided, implementations, unless
652// documented otherwise, treat two colors as equal if all their red,
653// green, blue, and alpha values each differ by at most 1e-5. Example
654// (Java): import com.google.type.Color; // ... public static
655// java.awt.Color fromProto(Color protocolor) { float alpha =
656// protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0;
657// return new java.awt.Color( protocolor.getRed(),
658// protocolor.getGreen(), protocolor.getBlue(), alpha); } public static
659// Color toProto(java.awt.Color color) { float red = (float)
660// color.getRed(); float green = (float) color.getGreen(); float blue =
661// (float) color.getBlue(); float denominator = 255.0; Color.Builder
662// resultBuilder = Color .newBuilder() .setRed(red / denominator)
663// .setGreen(green / denominator) .setBlue(blue / denominator); int
664// alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha(
665// FloatValue .newBuilder() .setValue(((float) alpha) / denominator)
666// .build()); } return resultBuilder.build(); } // ... Example (iOS /
667// Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float
668// red = [protocolor red]; float green = [protocolor green]; float blue
669// = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha];
670// float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper
671// value]; } return [UIColor colorWithRed:red green:green blue:blue
672// alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red,
673// green, blue, alpha; if (![color getRed:&red green:&green blue:&blue
674// alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init];
675// [result setRed:red]; [result setGreen:green]; [result setBlue:blue];
676// if (alpha <= 0.9999) { [result
677// setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease];
678// return result; } // ... Example (JavaScript): // ... var
679// protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red
680// || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac =
681// rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green
682// = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255);
683// if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green,
684// blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams
685// = [red, green, blue].join(','); return ['rgba(', rgbParams, ',',
686// alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green,
687// blue) { var rgbNumber = new Number((red << 16) | (green << 8) |
688// blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 -
689// hexString.length; var resultBuilder = ['#']; for (var i = 0; i <
690// missingZeros; i++) { resultBuilder.push('0'); }
691// resultBuilder.push(hexString); return resultBuilder.join(''); }; //
692// ...
693type Color struct {
694	// Alpha: The fraction of this color that should be applied to the
695	// pixel. That is, the final pixel color is defined by the equation:
696	// `pixel color = alpha * (this color) + (1.0 - alpha) * (background
697	// color)` This means that a value of 1.0 corresponds to a solid color,
698	// whereas a value of 0.0 corresponds to a completely transparent color.
699	// This uses a wrapper message rather than a simple float scalar so that
700	// it is possible to distinguish between a default value and the value
701	// being unset. If omitted, this color object is rendered as a solid
702	// color (as if the alpha value had been explicitly given a value of
703	// 1.0).
704	Alpha float64 `json:"alpha,omitempty"`
705
706	// Blue: The amount of blue in the color as a value in the interval [0,
707	// 1].
708	Blue float64 `json:"blue,omitempty"`
709
710	// Green: The amount of green in the color as a value in the interval
711	// [0, 1].
712	Green float64 `json:"green,omitempty"`
713
714	// Red: The amount of red in the color as a value in the interval [0,
715	// 1].
716	Red float64 `json:"red,omitempty"`
717
718	// ForceSendFields is a list of field names (e.g. "Alpha") to
719	// unconditionally include in API requests. By default, fields with
720	// empty or default values are omitted from API requests. However, any
721	// non-pointer, non-interface field appearing in ForceSendFields will be
722	// sent to the server regardless of whether the field is empty or not.
723	// This may be used to include empty fields in Patch requests.
724	ForceSendFields []string `json:"-"`
725
726	// NullFields is a list of field names (e.g. "Alpha") to include in API
727	// requests with the JSON null value. By default, fields with empty
728	// values are omitted from API requests. However, any field with an
729	// empty value appearing in NullFields will be sent to the server as
730	// null. It is an error if a field in this list has a non-empty value.
731	// This may be used to include null fields in Patch requests.
732	NullFields []string `json:"-"`
733}
734
735func (s *Color) MarshalJSON() ([]byte, error) {
736	type NoMethod Color
737	raw := NoMethod(*s)
738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
739}
740
741func (s *Color) UnmarshalJSON(data []byte) error {
742	type NoMethod Color
743	var s1 struct {
744		Alpha gensupport.JSONFloat64 `json:"alpha"`
745		Blue  gensupport.JSONFloat64 `json:"blue"`
746		Green gensupport.JSONFloat64 `json:"green"`
747		Red   gensupport.JSONFloat64 `json:"red"`
748		*NoMethod
749	}
750	s1.NoMethod = (*NoMethod)(s)
751	if err := json.Unmarshal(data, &s1); err != nil {
752		return err
753	}
754	s.Alpha = float64(s1.Alpha)
755	s.Blue = float64(s1.Blue)
756	s.Green = float64(s1.Green)
757	s.Red = float64(s1.Red)
758	return nil
759}
760
761// ColorInfo: Color information consists of RGB channels, score, and the
762// fraction of the image that the color occupies in the image.
763type ColorInfo struct {
764	// Color: RGB components of the color.
765	Color *Color `json:"color,omitempty"`
766
767	// PixelFraction: The fraction of pixels the color occupies in the
768	// image. Value in range [0, 1].
769	PixelFraction float64 `json:"pixelFraction,omitempty"`
770
771	// Score: Image-specific score for this color. Value in range [0, 1].
772	Score float64 `json:"score,omitempty"`
773
774	// ForceSendFields is a list of field names (e.g. "Color") to
775	// unconditionally include in API requests. By default, fields with
776	// empty or default values are omitted from API requests. However, any
777	// non-pointer, non-interface field appearing in ForceSendFields will be
778	// sent to the server regardless of whether the field is empty or not.
779	// This may be used to include empty fields in Patch requests.
780	ForceSendFields []string `json:"-"`
781
782	// NullFields is a list of field names (e.g. "Color") to include in API
783	// requests with the JSON null value. By default, fields with empty
784	// values are omitted from API requests. However, any field with an
785	// empty value appearing in NullFields will be sent to the server as
786	// null. It is an error if a field in this list has a non-empty value.
787	// This may be used to include null fields in Patch requests.
788	NullFields []string `json:"-"`
789}
790
791func (s *ColorInfo) MarshalJSON() ([]byte, error) {
792	type NoMethod ColorInfo
793	raw := NoMethod(*s)
794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
795}
796
797func (s *ColorInfo) UnmarshalJSON(data []byte) error {
798	type NoMethod ColorInfo
799	var s1 struct {
800		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
801		Score         gensupport.JSONFloat64 `json:"score"`
802		*NoMethod
803	}
804	s1.NoMethod = (*NoMethod)(s)
805	if err := json.Unmarshal(data, &s1); err != nil {
806		return err
807	}
808	s.PixelFraction = float64(s1.PixelFraction)
809	s.Score = float64(s1.Score)
810	return nil
811}
812
813// CropHint: Single crop hint that is used to generate a new crop when
814// serving an image.
815type CropHint struct {
816	// BoundingPoly: The bounding polygon for the crop region. The
817	// coordinates of the bounding box are in the original image's scale.
818	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
819
820	// Confidence: Confidence of this being a salient region. Range [0, 1].
821	Confidence float64 `json:"confidence,omitempty"`
822
823	// ImportanceFraction: Fraction of importance of this salient region
824	// with respect to the original image.
825	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
826
827	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
828	// unconditionally include in API requests. By default, fields with
829	// empty or default values are omitted from API requests. However, any
830	// non-pointer, non-interface field appearing in ForceSendFields will be
831	// sent to the server regardless of whether the field is empty or not.
832	// This may be used to include empty fields in Patch requests.
833	ForceSendFields []string `json:"-"`
834
835	// NullFields is a list of field names (e.g. "BoundingPoly") to include
836	// in API requests with the JSON null value. By default, fields with
837	// empty values are omitted from API requests. However, any field with
838	// an empty value appearing in NullFields will be sent to the server as
839	// null. It is an error if a field in this list has a non-empty value.
840	// This may be used to include null fields in Patch requests.
841	NullFields []string `json:"-"`
842}
843
844func (s *CropHint) MarshalJSON() ([]byte, error) {
845	type NoMethod CropHint
846	raw := NoMethod(*s)
847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
848}
849
850func (s *CropHint) UnmarshalJSON(data []byte) error {
851	type NoMethod CropHint
852	var s1 struct {
853		Confidence         gensupport.JSONFloat64 `json:"confidence"`
854		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
855		*NoMethod
856	}
857	s1.NoMethod = (*NoMethod)(s)
858	if err := json.Unmarshal(data, &s1); err != nil {
859		return err
860	}
861	s.Confidence = float64(s1.Confidence)
862	s.ImportanceFraction = float64(s1.ImportanceFraction)
863	return nil
864}
865
866// CropHintsAnnotation: Set of crop hints that are used to generate new
867// crops when serving images.
868type CropHintsAnnotation struct {
869	// CropHints: Crop hint results.
870	CropHints []*CropHint `json:"cropHints,omitempty"`
871
872	// ForceSendFields is a list of field names (e.g. "CropHints") to
873	// unconditionally include in API requests. By default, fields with
874	// empty or default values are omitted from API requests. However, any
875	// non-pointer, non-interface field appearing in ForceSendFields will be
876	// sent to the server regardless of whether the field is empty or not.
877	// This may be used to include empty fields in Patch requests.
878	ForceSendFields []string `json:"-"`
879
880	// NullFields is a list of field names (e.g. "CropHints") to include in
881	// API requests with the JSON null value. By default, fields with empty
882	// values are omitted from API requests. However, any field with an
883	// empty value appearing in NullFields will be sent to the server as
884	// null. It is an error if a field in this list has a non-empty value.
885	// This may be used to include null fields in Patch requests.
886	NullFields []string `json:"-"`
887}
888
889func (s *CropHintsAnnotation) MarshalJSON() ([]byte, error) {
890	type NoMethod CropHintsAnnotation
891	raw := NoMethod(*s)
892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
893}
894
895// DetectedBreak: Detected start or end of a structural component.
896type DetectedBreak struct {
897	// IsPrefix: True if break prepends the element.
898	IsPrefix bool `json:"isPrefix,omitempty"`
899
900	// Type: Detected break type.
901	//
902	// Possible values:
903	//   "UNKNOWN" - Unknown break label type.
904	//   "SPACE" - Regular space.
905	//   "SURE_SPACE" - Sure space (very wide).
906	//   "EOL_SURE_SPACE" - Line-wrapping break.
907	//   "HYPHEN" - End-line hyphen that is not present in text; does not
908	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
909	//   "LINE_BREAK" - Line break that ends a paragraph.
910	Type string `json:"type,omitempty"`
911
912	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
913	// unconditionally include in API requests. By default, fields with
914	// empty or default values are omitted from API requests. However, any
915	// non-pointer, non-interface field appearing in ForceSendFields will be
916	// sent to the server regardless of whether the field is empty or not.
917	// This may be used to include empty fields in Patch requests.
918	ForceSendFields []string `json:"-"`
919
920	// NullFields is a list of field names (e.g. "IsPrefix") to include in
921	// API requests with the JSON null value. By default, fields with empty
922	// values are omitted from API requests. However, any field with an
923	// empty value appearing in NullFields will be sent to the server as
924	// null. It is an error if a field in this list has a non-empty value.
925	// This may be used to include null fields in Patch requests.
926	NullFields []string `json:"-"`
927}
928
929func (s *DetectedBreak) MarshalJSON() ([]byte, error) {
930	type NoMethod DetectedBreak
931	raw := NoMethod(*s)
932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
933}
934
935// DetectedLanguage: Detected language for a structural component.
936type DetectedLanguage struct {
937	// Confidence: Confidence of detected language. Range [0, 1].
938	Confidence float64 `json:"confidence,omitempty"`
939
940	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
941	// For more information, see
942	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
943	LanguageCode string `json:"languageCode,omitempty"`
944
945	// ForceSendFields is a list of field names (e.g. "Confidence") to
946	// unconditionally include in API requests. By default, fields with
947	// empty or default values are omitted from API requests. However, any
948	// non-pointer, non-interface field appearing in ForceSendFields will be
949	// sent to the server regardless of whether the field is empty or not.
950	// This may be used to include empty fields in Patch requests.
951	ForceSendFields []string `json:"-"`
952
953	// NullFields is a list of field names (e.g. "Confidence") 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 *DetectedLanguage) MarshalJSON() ([]byte, error) {
963	type NoMethod DetectedLanguage
964	raw := NoMethod(*s)
965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
966}
967
968func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
969	type NoMethod DetectedLanguage
970	var s1 struct {
971		Confidence gensupport.JSONFloat64 `json:"confidence"`
972		*NoMethod
973	}
974	s1.NoMethod = (*NoMethod)(s)
975	if err := json.Unmarshal(data, &s1); err != nil {
976		return err
977	}
978	s.Confidence = float64(s1.Confidence)
979	return nil
980}
981
982// DominantColorsAnnotation: Set of dominant colors and their
983// corresponding scores.
984type DominantColorsAnnotation struct {
985	// Colors: RGB color values with their score and pixel fraction.
986	Colors []*ColorInfo `json:"colors,omitempty"`
987
988	// ForceSendFields is a list of field names (e.g. "Colors") to
989	// unconditionally include in API requests. By default, fields with
990	// empty or default values are omitted from API requests. However, any
991	// non-pointer, non-interface field appearing in ForceSendFields will be
992	// sent to the server regardless of whether the field is empty or not.
993	// This may be used to include empty fields in Patch requests.
994	ForceSendFields []string `json:"-"`
995
996	// NullFields is a list of field names (e.g. "Colors") to include in API
997	// requests with the JSON null value. By default, fields with empty
998	// values are omitted from API requests. However, any field with an
999	// empty value appearing in NullFields will be sent to the server as
1000	// null. It is an error if a field in this list has a non-empty value.
1001	// This may be used to include null fields in Patch requests.
1002	NullFields []string `json:"-"`
1003}
1004
1005func (s *DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1006	type NoMethod DominantColorsAnnotation
1007	raw := NoMethod(*s)
1008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1009}
1010
1011// EntityAnnotation: Set of detected entity features.
1012type EntityAnnotation struct {
1013	// BoundingPoly: Image region to which this entity belongs. Not produced
1014	// for `LABEL_DETECTION` features.
1015	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1016
1017	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
1018	// entity detection in an image. For example, for an image in which the
1019	// "Eiffel Tower" entity is detected, this field represents the
1020	// confidence that there is a tower in the query image. Range [0, 1].
1021	Confidence float64 `json:"confidence,omitempty"`
1022
1023	// Description: Entity textual description, expressed in its `locale`
1024	// language.
1025	Description string `json:"description,omitempty"`
1026
1027	// Locale: The language code for the locale in which the entity textual
1028	// `description` is expressed.
1029	Locale string `json:"locale,omitempty"`
1030
1031	// Locations: The location information for the detected entity. Multiple
1032	// `LocationInfo` elements can be present because one location may
1033	// indicate the location of the scene in the image, and another location
1034	// may indicate the location of the place where the image was taken.
1035	// Location information is usually present for landmarks.
1036	Locations []*LocationInfo `json:"locations,omitempty"`
1037
1038	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
1039	// Graph Search API (https://developers.google.com/knowledge-graph/).
1040	Mid string `json:"mid,omitempty"`
1041
1042	// Properties: Some entities may have optional user-supplied `Property`
1043	// (name/value) fields, such a score or string that qualifies the
1044	// entity.
1045	Properties []*Property `json:"properties,omitempty"`
1046
1047	// Score: Overall score of the result. Range [0, 1].
1048	Score float64 `json:"score,omitempty"`
1049
1050	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1051	// to the image. For example, the relevancy of "tower" is likely higher
1052	// to an image containing the detected "Eiffel Tower" than to an image
1053	// containing a detected distant towering building, even though the
1054	// confidence that there is a tower in each image may be the same. Range
1055	// [0, 1].
1056	Topicality float64 `json:"topicality,omitempty"`
1057
1058	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1059	// unconditionally include in API requests. By default, fields with
1060	// empty or default values are omitted from API requests. However, any
1061	// non-pointer, non-interface field appearing in ForceSendFields will be
1062	// sent to the server regardless of whether the field is empty or not.
1063	// This may be used to include empty fields in Patch requests.
1064	ForceSendFields []string `json:"-"`
1065
1066	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1067	// in API requests with the JSON null value. By default, fields with
1068	// empty values are omitted from API requests. However, any field with
1069	// an empty value appearing in NullFields will be sent to the server as
1070	// null. It is an error if a field in this list has a non-empty value.
1071	// This may be used to include null fields in Patch requests.
1072	NullFields []string `json:"-"`
1073}
1074
1075func (s *EntityAnnotation) MarshalJSON() ([]byte, error) {
1076	type NoMethod EntityAnnotation
1077	raw := NoMethod(*s)
1078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1079}
1080
1081func (s *EntityAnnotation) UnmarshalJSON(data []byte) error {
1082	type NoMethod EntityAnnotation
1083	var s1 struct {
1084		Confidence gensupport.JSONFloat64 `json:"confidence"`
1085		Score      gensupport.JSONFloat64 `json:"score"`
1086		Topicality gensupport.JSONFloat64 `json:"topicality"`
1087		*NoMethod
1088	}
1089	s1.NoMethod = (*NoMethod)(s)
1090	if err := json.Unmarshal(data, &s1); err != nil {
1091		return err
1092	}
1093	s.Confidence = float64(s1.Confidence)
1094	s.Score = float64(s1.Score)
1095	s.Topicality = float64(s1.Topicality)
1096	return nil
1097}
1098
1099// FaceAnnotation: A face annotation object contains the results of face
1100// detection.
1101type FaceAnnotation struct {
1102	// AngerLikelihood: Anger likelihood.
1103	//
1104	// Possible values:
1105	//   "UNKNOWN" - Unknown likelihood.
1106	//   "VERY_UNLIKELY" - It is very unlikely.
1107	//   "UNLIKELY" - It is unlikely.
1108	//   "POSSIBLE" - It is possible.
1109	//   "LIKELY" - It is likely.
1110	//   "VERY_LIKELY" - It is very likely.
1111	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1112
1113	// BlurredLikelihood: Blurred likelihood.
1114	//
1115	// Possible values:
1116	//   "UNKNOWN" - Unknown likelihood.
1117	//   "VERY_UNLIKELY" - It is very unlikely.
1118	//   "UNLIKELY" - It is unlikely.
1119	//   "POSSIBLE" - It is possible.
1120	//   "LIKELY" - It is likely.
1121	//   "VERY_LIKELY" - It is very likely.
1122	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1123
1124	// BoundingPoly: The bounding polygon around the face. The coordinates
1125	// of the bounding box are in the original image's scale. The bounding
1126	// box is computed to "frame" the face in accordance with human
1127	// expectations. It is based on the landmarker results. Note that one or
1128	// more x and/or y coordinates may not be generated in the
1129	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
1130	// appears in the image to be annotated.
1131	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1132
1133	// DetectionConfidence: Detection confidence. Range [0, 1].
1134	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1135
1136	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1137	// than the `boundingPoly`, and encloses only the skin part of the face.
1138	// Typically, it is used to eliminate the face from any image analysis
1139	// that detects the "amount of skin" visible in an image. It is not
1140	// based on the landmarker results, only on the initial face detection,
1141	// hence the fd (face detection) prefix.
1142	FdBoundingPoly *BoundingPoly `json:"fdBoundingPoly,omitempty"`
1143
1144	// HeadwearLikelihood: Headwear likelihood.
1145	//
1146	// Possible values:
1147	//   "UNKNOWN" - Unknown likelihood.
1148	//   "VERY_UNLIKELY" - It is very unlikely.
1149	//   "UNLIKELY" - It is unlikely.
1150	//   "POSSIBLE" - It is possible.
1151	//   "LIKELY" - It is likely.
1152	//   "VERY_LIKELY" - It is very likely.
1153	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1154
1155	// JoyLikelihood: Joy likelihood.
1156	//
1157	// Possible values:
1158	//   "UNKNOWN" - Unknown likelihood.
1159	//   "VERY_UNLIKELY" - It is very unlikely.
1160	//   "UNLIKELY" - It is unlikely.
1161	//   "POSSIBLE" - It is possible.
1162	//   "LIKELY" - It is likely.
1163	//   "VERY_LIKELY" - It is very likely.
1164	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1165
1166	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1167	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1168
1169	// Landmarks: Detected face landmarks.
1170	Landmarks []*Landmark `json:"landmarks,omitempty"`
1171
1172	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1173	// that the face is pointing relative to the vertical plane
1174	// perpendicular to the image. Range [-180,180].
1175	PanAngle float64 `json:"panAngle,omitempty"`
1176
1177	// RollAngle: Roll angle, which indicates the amount of
1178	// clockwise/anti-clockwise rotation of the face relative to the image
1179	// vertical about the axis perpendicular to the face. Range [-180,180].
1180	RollAngle float64 `json:"rollAngle,omitempty"`
1181
1182	// SorrowLikelihood: Sorrow likelihood.
1183	//
1184	// Possible values:
1185	//   "UNKNOWN" - Unknown likelihood.
1186	//   "VERY_UNLIKELY" - It is very unlikely.
1187	//   "UNLIKELY" - It is unlikely.
1188	//   "POSSIBLE" - It is possible.
1189	//   "LIKELY" - It is likely.
1190	//   "VERY_LIKELY" - It is very likely.
1191	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1192
1193	// SurpriseLikelihood: Surprise likelihood.
1194	//
1195	// Possible values:
1196	//   "UNKNOWN" - Unknown likelihood.
1197	//   "VERY_UNLIKELY" - It is very unlikely.
1198	//   "UNLIKELY" - It is unlikely.
1199	//   "POSSIBLE" - It is possible.
1200	//   "LIKELY" - It is likely.
1201	//   "VERY_LIKELY" - It is very likely.
1202	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1203
1204	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1205	// that the face is pointing relative to the image's horizontal plane.
1206	// Range [-180,180].
1207	TiltAngle float64 `json:"tiltAngle,omitempty"`
1208
1209	// UnderExposedLikelihood: Under-exposed likelihood.
1210	//
1211	// Possible values:
1212	//   "UNKNOWN" - Unknown likelihood.
1213	//   "VERY_UNLIKELY" - It is very unlikely.
1214	//   "UNLIKELY" - It is unlikely.
1215	//   "POSSIBLE" - It is possible.
1216	//   "LIKELY" - It is likely.
1217	//   "VERY_LIKELY" - It is very likely.
1218	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
1219
1220	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
1221	// unconditionally include in API requests. By default, fields with
1222	// empty or default values are omitted from API requests. However, any
1223	// non-pointer, non-interface field appearing in ForceSendFields will be
1224	// sent to the server regardless of whether the field is empty or not.
1225	// This may be used to include empty fields in Patch requests.
1226	ForceSendFields []string `json:"-"`
1227
1228	// NullFields is a list of field names (e.g. "AngerLikelihood") to
1229	// include in API requests with the JSON null value. By default, fields
1230	// with empty values are omitted from API requests. However, any field
1231	// with an empty value appearing in NullFields will be sent to the
1232	// server as null. It is an error if a field in this list has a
1233	// non-empty value. This may be used to include null fields in Patch
1234	// requests.
1235	NullFields []string `json:"-"`
1236}
1237
1238func (s *FaceAnnotation) MarshalJSON() ([]byte, error) {
1239	type NoMethod FaceAnnotation
1240	raw := NoMethod(*s)
1241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1242}
1243
1244func (s *FaceAnnotation) UnmarshalJSON(data []byte) error {
1245	type NoMethod FaceAnnotation
1246	var s1 struct {
1247		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
1248		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
1249		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
1250		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
1251		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
1252		*NoMethod
1253	}
1254	s1.NoMethod = (*NoMethod)(s)
1255	if err := json.Unmarshal(data, &s1); err != nil {
1256		return err
1257	}
1258	s.DetectionConfidence = float64(s1.DetectionConfidence)
1259	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
1260	s.PanAngle = float64(s1.PanAngle)
1261	s.RollAngle = float64(s1.RollAngle)
1262	s.TiltAngle = float64(s1.TiltAngle)
1263	return nil
1264}
1265
1266// GcsDestination: The Google Cloud Storage location where the output
1267// will be written to.
1268type GcsDestination struct {
1269	// Uri: Google Cloud Storage URI prefix where the results will be
1270	// stored. Results will be in JSON format and preceded by its
1271	// corresponding input URI prefix. This field can either represent a gcs
1272	// file prefix or gcs directory. In either case, the uri should be
1273	// unique because in order to get all of the output files, you will need
1274	// to do a wildcard gcs search on the uri prefix you provide. Examples:
1275	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
1276	// will be created in gs://bucket-name/here/ and the names of the output
1277	// files will begin with "filenameprefix". * Directory Prefix:
1278	// gs://bucket-name/some/location/ The output files will be created in
1279	// gs://bucket-name/some/location/ and the names of the output files
1280	// could be anything because there was no filename prefix specified. If
1281	// multiple outputs, each response is still AnnotateFileResponse, each
1282	// of which contains some subset of the full list of
1283	// AnnotateImageResponse. Multiple outputs can happen if, for example,
1284	// the output JSON is too large and overflows into multiple sharded
1285	// files.
1286	Uri string `json:"uri,omitempty"`
1287
1288	// ForceSendFields is a list of field names (e.g. "Uri") to
1289	// unconditionally include in API requests. By default, fields with
1290	// empty or default values are omitted from API requests. However, any
1291	// non-pointer, non-interface field appearing in ForceSendFields will be
1292	// sent to the server regardless of whether the field is empty or not.
1293	// This may be used to include empty fields in Patch requests.
1294	ForceSendFields []string `json:"-"`
1295
1296	// NullFields is a list of field names (e.g. "Uri") to include in API
1297	// requests with the JSON null value. By default, fields with empty
1298	// values are omitted from API requests. However, any field with an
1299	// empty value appearing in NullFields will be sent to the server as
1300	// null. It is an error if a field in this list has a non-empty value.
1301	// This may be used to include null fields in Patch requests.
1302	NullFields []string `json:"-"`
1303}
1304
1305func (s *GcsDestination) MarshalJSON() ([]byte, error) {
1306	type NoMethod GcsDestination
1307	raw := NoMethod(*s)
1308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1309}
1310
1311// GcsSource: The Google Cloud Storage location where the input will be
1312// read from.
1313type GcsSource struct {
1314	// Uri: Google Cloud Storage URI for the input file. This must only be a
1315	// Google Cloud Storage object. Wildcards are not currently supported.
1316	Uri string `json:"uri,omitempty"`
1317
1318	// ForceSendFields is a list of field names (e.g. "Uri") to
1319	// unconditionally include in API requests. By default, fields with
1320	// empty or default values are omitted from API requests. However, any
1321	// non-pointer, non-interface field appearing in ForceSendFields will be
1322	// sent to the server regardless of whether the field is empty or not.
1323	// This may be used to include empty fields in Patch requests.
1324	ForceSendFields []string `json:"-"`
1325
1326	// NullFields is a list of field names (e.g. "Uri") to include in API
1327	// requests with the JSON null value. By default, fields with empty
1328	// values are omitted from API requests. However, any field with an
1329	// empty value appearing in NullFields will be sent to the server as
1330	// null. It is an error if a field in this list has a non-empty value.
1331	// This may be used to include null fields in Patch requests.
1332	NullFields []string `json:"-"`
1333}
1334
1335func (s *GcsSource) MarshalJSON() ([]byte, error) {
1336	type NoMethod GcsSource
1337	raw := NoMethod(*s)
1338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1339}
1340
1341// GoogleCloudVisionV1p1beta1AnnotateFileResponse: Response to a single
1342// file annotation request. A file may contain one or more images, which
1343// individually have their own responses.
1344type GoogleCloudVisionV1p1beta1AnnotateFileResponse struct {
1345	// Error: If set, represents the error message for the failed request.
1346	// The `responses` field will not be set in this case.
1347	Error *Status `json:"error,omitempty"`
1348
1349	// InputConfig: Information about the file for which this response is
1350	// generated.
1351	InputConfig *GoogleCloudVisionV1p1beta1InputConfig `json:"inputConfig,omitempty"`
1352
1353	// Responses: Individual responses to images found within the file. This
1354	// field will be empty if the `error` field is set.
1355	Responses []*GoogleCloudVisionV1p1beta1AnnotateImageResponse `json:"responses,omitempty"`
1356
1357	// TotalPages: This field gives the total number of pages in the file.
1358	TotalPages int64 `json:"totalPages,omitempty"`
1359
1360	// ForceSendFields is a list of field names (e.g. "Error") to
1361	// unconditionally include in API requests. By default, fields with
1362	// empty or default values are omitted from API requests. However, any
1363	// non-pointer, non-interface field appearing in ForceSendFields will be
1364	// sent to the server regardless of whether the field is empty or not.
1365	// This may be used to include empty fields in Patch requests.
1366	ForceSendFields []string `json:"-"`
1367
1368	// NullFields is a list of field names (e.g. "Error") to include in API
1369	// requests with the JSON null value. By default, fields with empty
1370	// values are omitted from API requests. However, any field with an
1371	// empty value appearing in NullFields will be sent to the server as
1372	// null. It is an error if a field in this list has a non-empty value.
1373	// This may be used to include null fields in Patch requests.
1374	NullFields []string `json:"-"`
1375}
1376
1377func (s *GoogleCloudVisionV1p1beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
1378	type NoMethod GoogleCloudVisionV1p1beta1AnnotateFileResponse
1379	raw := NoMethod(*s)
1380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1381}
1382
1383// GoogleCloudVisionV1p1beta1AnnotateImageResponse: Response to an image
1384// annotation request.
1385type GoogleCloudVisionV1p1beta1AnnotateImageResponse struct {
1386	// Context: If present, contextual information is needed to understand
1387	// where this image comes from.
1388	Context *GoogleCloudVisionV1p1beta1ImageAnnotationContext `json:"context,omitempty"`
1389
1390	// CropHintsAnnotation: If present, crop hints have completed
1391	// successfully.
1392	CropHintsAnnotation *GoogleCloudVisionV1p1beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
1393
1394	// Error: If set, represents the error message for the operation. Note
1395	// that filled-in image annotations are guaranteed to be correct, even
1396	// when `error` is set.
1397	Error *Status `json:"error,omitempty"`
1398
1399	// FaceAnnotations: If present, face detection has completed
1400	// successfully.
1401	FaceAnnotations []*GoogleCloudVisionV1p1beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
1402
1403	// FullTextAnnotation: If present, text (OCR) detection or document
1404	// (OCR) text detection has completed successfully. This annotation
1405	// provides the structural hierarchy for the OCR detected text.
1406	FullTextAnnotation *GoogleCloudVisionV1p1beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
1407
1408	// ImagePropertiesAnnotation: If present, image properties were
1409	// extracted successfully.
1410	ImagePropertiesAnnotation *GoogleCloudVisionV1p1beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
1411
1412	// LabelAnnotations: If present, label detection has completed
1413	// successfully.
1414	LabelAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
1415
1416	// LandmarkAnnotations: If present, landmark detection has completed
1417	// successfully.
1418	LandmarkAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
1419
1420	// LocalizedObjectAnnotations: If present, localized object detection
1421	// has completed successfully. This will be sorted descending by
1422	// confidence score.
1423	LocalizedObjectAnnotations []*GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
1424
1425	// LogoAnnotations: If present, logo detection has completed
1426	// successfully.
1427	LogoAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
1428
1429	// ProductSearchResults: If present, product search has completed
1430	// successfully.
1431	ProductSearchResults *GoogleCloudVisionV1p1beta1ProductSearchResults `json:"productSearchResults,omitempty"`
1432
1433	// SafeSearchAnnotation: If present, safe-search annotation has
1434	// completed successfully.
1435	SafeSearchAnnotation *GoogleCloudVisionV1p1beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
1436
1437	// TextAnnotations: If present, text (OCR) detection has completed
1438	// successfully.
1439	TextAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"textAnnotations,omitempty"`
1440
1441	// WebDetection: If present, web detection has completed successfully.
1442	WebDetection *GoogleCloudVisionV1p1beta1WebDetection `json:"webDetection,omitempty"`
1443
1444	// ForceSendFields is a list of field names (e.g. "Context") to
1445	// unconditionally include in API requests. By default, fields with
1446	// empty or default values are omitted from API requests. However, any
1447	// non-pointer, non-interface field appearing in ForceSendFields will be
1448	// sent to the server regardless of whether the field is empty or not.
1449	// This may be used to include empty fields in Patch requests.
1450	ForceSendFields []string `json:"-"`
1451
1452	// NullFields is a list of field names (e.g. "Context") to include in
1453	// API requests with the JSON null value. By default, fields with empty
1454	// values are omitted from API requests. However, any field with an
1455	// empty value appearing in NullFields will be sent to the server as
1456	// null. It is an error if a field in this list has a non-empty value.
1457	// This may be used to include null fields in Patch requests.
1458	NullFields []string `json:"-"`
1459}
1460
1461func (s *GoogleCloudVisionV1p1beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
1462	type NoMethod GoogleCloudVisionV1p1beta1AnnotateImageResponse
1463	raw := NoMethod(*s)
1464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1465}
1466
1467// GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse: The response for
1468// a single offline file annotation request.
1469type GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse struct {
1470	// OutputConfig: The output location and metadata from
1471	// AsyncAnnotateFileRequest.
1472	OutputConfig *GoogleCloudVisionV1p1beta1OutputConfig `json:"outputConfig,omitempty"`
1473
1474	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
1475	// unconditionally include in API requests. By default, fields with
1476	// empty or default values are omitted from API requests. However, any
1477	// non-pointer, non-interface field appearing in ForceSendFields will be
1478	// sent to the server regardless of whether the field is empty or not.
1479	// This may be used to include empty fields in Patch requests.
1480	ForceSendFields []string `json:"-"`
1481
1482	// NullFields is a list of field names (e.g. "OutputConfig") to include
1483	// in API requests with the JSON null value. By default, fields with
1484	// empty values are omitted from API requests. However, any field with
1485	// an empty value appearing in NullFields will be sent to the server as
1486	// null. It is an error if a field in this list has a non-empty value.
1487	// This may be used to include null fields in Patch requests.
1488	NullFields []string `json:"-"`
1489}
1490
1491func (s *GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
1492	type NoMethod GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse
1493	raw := NoMethod(*s)
1494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1495}
1496
1497// GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse: Response
1498// to an async batch file annotation request.
1499type GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse struct {
1500	// Responses: The list of file annotation responses, one for each
1501	// request in AsyncBatchAnnotateFilesRequest.
1502	Responses []*GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
1503
1504	// ForceSendFields is a list of field names (e.g. "Responses") to
1505	// unconditionally include in API requests. By default, fields with
1506	// empty or default values are omitted from API requests. However, any
1507	// non-pointer, non-interface field appearing in ForceSendFields will be
1508	// sent to the server regardless of whether the field is empty or not.
1509	// This may be used to include empty fields in Patch requests.
1510	ForceSendFields []string `json:"-"`
1511
1512	// NullFields is a list of field names (e.g. "Responses") to include in
1513	// API requests with the JSON null value. By default, fields with empty
1514	// values are omitted from API requests. However, any field with an
1515	// empty value appearing in NullFields will be sent to the server as
1516	// null. It is an error if a field in this list has a non-empty value.
1517	// This may be used to include null fields in Patch requests.
1518	NullFields []string `json:"-"`
1519}
1520
1521func (s *GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
1522	type NoMethod GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse
1523	raw := NoMethod(*s)
1524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1525}
1526
1527// GoogleCloudVisionV1p1beta1Block: Logical element on the page.
1528type GoogleCloudVisionV1p1beta1Block struct {
1529	// BlockType: Detected block type (text, image etc) for this block.
1530	//
1531	// Possible values:
1532	//   "UNKNOWN" - Unknown block type.
1533	//   "TEXT" - Regular text block.
1534	//   "TABLE" - Table block.
1535	//   "PICTURE" - Image block.
1536	//   "RULER" - Horizontal/vertical line box.
1537	//   "BARCODE" - Barcode block.
1538	BlockType string `json:"blockType,omitempty"`
1539
1540	// BoundingBox: The bounding box for the block. The vertices are in the
1541	// order of top-left, top-right, bottom-right, bottom-left. When a
1542	// rotation of the bounding box is detected the rotation is represented
1543	// as around the top-left corner as defined when the text is read in the
1544	// 'natural' orientation. For example: * when the text is horizontal it
1545	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
1546	// around the top-left corner it becomes: 2----3 | | 1----0 and the
1547	// vertex order will still be (0, 1, 2, 3).
1548	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
1549
1550	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
1551	Confidence float64 `json:"confidence,omitempty"`
1552
1553	// Paragraphs: List of paragraphs in this block (if this blocks is of
1554	// type text).
1555	Paragraphs []*GoogleCloudVisionV1p1beta1Paragraph `json:"paragraphs,omitempty"`
1556
1557	// Property: Additional information detected for the block.
1558	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
1559
1560	// ForceSendFields is a list of field names (e.g. "BlockType") to
1561	// unconditionally include in API requests. By default, fields with
1562	// empty or default values are omitted from API requests. However, any
1563	// non-pointer, non-interface field appearing in ForceSendFields will be
1564	// sent to the server regardless of whether the field is empty or not.
1565	// This may be used to include empty fields in Patch requests.
1566	ForceSendFields []string `json:"-"`
1567
1568	// NullFields is a list of field names (e.g. "BlockType") to include in
1569	// API requests with the JSON null value. By default, fields with empty
1570	// values are omitted from API requests. However, any field with an
1571	// empty value appearing in NullFields will be sent to the server as
1572	// null. It is an error if a field in this list has a non-empty value.
1573	// This may be used to include null fields in Patch requests.
1574	NullFields []string `json:"-"`
1575}
1576
1577func (s *GoogleCloudVisionV1p1beta1Block) MarshalJSON() ([]byte, error) {
1578	type NoMethod GoogleCloudVisionV1p1beta1Block
1579	raw := NoMethod(*s)
1580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1581}
1582
1583func (s *GoogleCloudVisionV1p1beta1Block) UnmarshalJSON(data []byte) error {
1584	type NoMethod GoogleCloudVisionV1p1beta1Block
1585	var s1 struct {
1586		Confidence gensupport.JSONFloat64 `json:"confidence"`
1587		*NoMethod
1588	}
1589	s1.NoMethod = (*NoMethod)(s)
1590	if err := json.Unmarshal(data, &s1); err != nil {
1591		return err
1592	}
1593	s.Confidence = float64(s1.Confidence)
1594	return nil
1595}
1596
1597// GoogleCloudVisionV1p1beta1BoundingPoly: A bounding polygon for the
1598// detected image annotation.
1599type GoogleCloudVisionV1p1beta1BoundingPoly struct {
1600	// NormalizedVertices: The bounding polygon normalized vertices.
1601	NormalizedVertices []*GoogleCloudVisionV1p1beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
1602
1603	// Vertices: The bounding polygon vertices.
1604	Vertices []*GoogleCloudVisionV1p1beta1Vertex `json:"vertices,omitempty"`
1605
1606	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
1607	// to unconditionally include in API requests. By default, fields with
1608	// empty or default values are omitted from API requests. However, any
1609	// non-pointer, non-interface field appearing in ForceSendFields will be
1610	// sent to the server regardless of whether the field is empty or not.
1611	// This may be used to include empty fields in Patch requests.
1612	ForceSendFields []string `json:"-"`
1613
1614	// NullFields is a list of field names (e.g. "NormalizedVertices") to
1615	// include in API requests with the JSON null value. By default, fields
1616	// with empty values are omitted from API requests. However, any field
1617	// with an empty value appearing in NullFields will be sent to the
1618	// server as null. It is an error if a field in this list has a
1619	// non-empty value. This may be used to include null fields in Patch
1620	// requests.
1621	NullFields []string `json:"-"`
1622}
1623
1624func (s *GoogleCloudVisionV1p1beta1BoundingPoly) MarshalJSON() ([]byte, error) {
1625	type NoMethod GoogleCloudVisionV1p1beta1BoundingPoly
1626	raw := NoMethod(*s)
1627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1628}
1629
1630// GoogleCloudVisionV1p1beta1ColorInfo: Color information consists of
1631// RGB channels, score, and the fraction of the image that the color
1632// occupies in the image.
1633type GoogleCloudVisionV1p1beta1ColorInfo struct {
1634	// Color: RGB components of the color.
1635	Color *Color `json:"color,omitempty"`
1636
1637	// PixelFraction: The fraction of pixels the color occupies in the
1638	// image. Value in range [0, 1].
1639	PixelFraction float64 `json:"pixelFraction,omitempty"`
1640
1641	// Score: Image-specific score for this color. Value in range [0, 1].
1642	Score float64 `json:"score,omitempty"`
1643
1644	// ForceSendFields is a list of field names (e.g. "Color") to
1645	// unconditionally include in API requests. By default, fields with
1646	// empty or default values are omitted from API requests. However, any
1647	// non-pointer, non-interface field appearing in ForceSendFields will be
1648	// sent to the server regardless of whether the field is empty or not.
1649	// This may be used to include empty fields in Patch requests.
1650	ForceSendFields []string `json:"-"`
1651
1652	// NullFields is a list of field names (e.g. "Color") to include in API
1653	// requests with the JSON null value. By default, fields with empty
1654	// values are omitted from API requests. However, any field with an
1655	// empty value appearing in NullFields will be sent to the server as
1656	// null. It is an error if a field in this list has a non-empty value.
1657	// This may be used to include null fields in Patch requests.
1658	NullFields []string `json:"-"`
1659}
1660
1661func (s *GoogleCloudVisionV1p1beta1ColorInfo) MarshalJSON() ([]byte, error) {
1662	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
1663	raw := NoMethod(*s)
1664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1665}
1666
1667func (s *GoogleCloudVisionV1p1beta1ColorInfo) UnmarshalJSON(data []byte) error {
1668	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
1669	var s1 struct {
1670		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
1671		Score         gensupport.JSONFloat64 `json:"score"`
1672		*NoMethod
1673	}
1674	s1.NoMethod = (*NoMethod)(s)
1675	if err := json.Unmarshal(data, &s1); err != nil {
1676		return err
1677	}
1678	s.PixelFraction = float64(s1.PixelFraction)
1679	s.Score = float64(s1.Score)
1680	return nil
1681}
1682
1683// GoogleCloudVisionV1p1beta1CropHint: Single crop hint that is used to
1684// generate a new crop when serving an image.
1685type GoogleCloudVisionV1p1beta1CropHint struct {
1686	// BoundingPoly: The bounding polygon for the crop region. The
1687	// coordinates of the bounding box are in the original image's scale.
1688	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
1689
1690	// Confidence: Confidence of this being a salient region. Range [0, 1].
1691	Confidence float64 `json:"confidence,omitempty"`
1692
1693	// ImportanceFraction: Fraction of importance of this salient region
1694	// with respect to the original image.
1695	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
1696
1697	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1698	// unconditionally include in API requests. By default, fields with
1699	// empty or default values are omitted from API requests. However, any
1700	// non-pointer, non-interface field appearing in ForceSendFields will be
1701	// sent to the server regardless of whether the field is empty or not.
1702	// This may be used to include empty fields in Patch requests.
1703	ForceSendFields []string `json:"-"`
1704
1705	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1706	// in API requests with the JSON null value. By default, fields with
1707	// empty values are omitted from API requests. However, any field with
1708	// an empty value appearing in NullFields will be sent to the server as
1709	// null. It is an error if a field in this list has a non-empty value.
1710	// This may be used to include null fields in Patch requests.
1711	NullFields []string `json:"-"`
1712}
1713
1714func (s *GoogleCloudVisionV1p1beta1CropHint) MarshalJSON() ([]byte, error) {
1715	type NoMethod GoogleCloudVisionV1p1beta1CropHint
1716	raw := NoMethod(*s)
1717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1718}
1719
1720func (s *GoogleCloudVisionV1p1beta1CropHint) UnmarshalJSON(data []byte) error {
1721	type NoMethod GoogleCloudVisionV1p1beta1CropHint
1722	var s1 struct {
1723		Confidence         gensupport.JSONFloat64 `json:"confidence"`
1724		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
1725		*NoMethod
1726	}
1727	s1.NoMethod = (*NoMethod)(s)
1728	if err := json.Unmarshal(data, &s1); err != nil {
1729		return err
1730	}
1731	s.Confidence = float64(s1.Confidence)
1732	s.ImportanceFraction = float64(s1.ImportanceFraction)
1733	return nil
1734}
1735
1736// GoogleCloudVisionV1p1beta1CropHintsAnnotation: Set of crop hints that
1737// are used to generate new crops when serving images.
1738type GoogleCloudVisionV1p1beta1CropHintsAnnotation struct {
1739	// CropHints: Crop hint results.
1740	CropHints []*GoogleCloudVisionV1p1beta1CropHint `json:"cropHints,omitempty"`
1741
1742	// ForceSendFields is a list of field names (e.g. "CropHints") to
1743	// unconditionally include in API requests. By default, fields with
1744	// empty or default values are omitted from API requests. However, any
1745	// non-pointer, non-interface field appearing in ForceSendFields will be
1746	// sent to the server regardless of whether the field is empty or not.
1747	// This may be used to include empty fields in Patch requests.
1748	ForceSendFields []string `json:"-"`
1749
1750	// NullFields is a list of field names (e.g. "CropHints") to include in
1751	// API requests with the JSON null value. By default, fields with empty
1752	// values are omitted from API requests. However, any field with an
1753	// empty value appearing in NullFields will be sent to the server as
1754	// null. It is an error if a field in this list has a non-empty value.
1755	// This may be used to include null fields in Patch requests.
1756	NullFields []string `json:"-"`
1757}
1758
1759func (s *GoogleCloudVisionV1p1beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
1760	type NoMethod GoogleCloudVisionV1p1beta1CropHintsAnnotation
1761	raw := NoMethod(*s)
1762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1763}
1764
1765// GoogleCloudVisionV1p1beta1DominantColorsAnnotation: Set of dominant
1766// colors and their corresponding scores.
1767type GoogleCloudVisionV1p1beta1DominantColorsAnnotation struct {
1768	// Colors: RGB color values with their score and pixel fraction.
1769	Colors []*GoogleCloudVisionV1p1beta1ColorInfo `json:"colors,omitempty"`
1770
1771	// ForceSendFields is a list of field names (e.g. "Colors") to
1772	// unconditionally include in API requests. By default, fields with
1773	// empty or default values are omitted from API requests. However, any
1774	// non-pointer, non-interface field appearing in ForceSendFields will be
1775	// sent to the server regardless of whether the field is empty or not.
1776	// This may be used to include empty fields in Patch requests.
1777	ForceSendFields []string `json:"-"`
1778
1779	// NullFields is a list of field names (e.g. "Colors") to include in API
1780	// requests with the JSON null value. By default, fields with empty
1781	// values are omitted from API requests. However, any field with an
1782	// empty value appearing in NullFields will be sent to the server as
1783	// null. It is an error if a field in this list has a non-empty value.
1784	// This may be used to include null fields in Patch requests.
1785	NullFields []string `json:"-"`
1786}
1787
1788func (s *GoogleCloudVisionV1p1beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1789	type NoMethod GoogleCloudVisionV1p1beta1DominantColorsAnnotation
1790	raw := NoMethod(*s)
1791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1792}
1793
1794// GoogleCloudVisionV1p1beta1EntityAnnotation: Set of detected entity
1795// features.
1796type GoogleCloudVisionV1p1beta1EntityAnnotation struct {
1797	// BoundingPoly: Image region to which this entity belongs. Not produced
1798	// for `LABEL_DETECTION` features.
1799	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
1800
1801	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
1802	// entity detection in an image. For example, for an image in which the
1803	// "Eiffel Tower" entity is detected, this field represents the
1804	// confidence that there is a tower in the query image. Range [0, 1].
1805	Confidence float64 `json:"confidence,omitempty"`
1806
1807	// Description: Entity textual description, expressed in its `locale`
1808	// language.
1809	Description string `json:"description,omitempty"`
1810
1811	// Locale: The language code for the locale in which the entity textual
1812	// `description` is expressed.
1813	Locale string `json:"locale,omitempty"`
1814
1815	// Locations: The location information for the detected entity. Multiple
1816	// `LocationInfo` elements can be present because one location may
1817	// indicate the location of the scene in the image, and another location
1818	// may indicate the location of the place where the image was taken.
1819	// Location information is usually present for landmarks.
1820	Locations []*GoogleCloudVisionV1p1beta1LocationInfo `json:"locations,omitempty"`
1821
1822	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
1823	// Graph Search API (https://developers.google.com/knowledge-graph/).
1824	Mid string `json:"mid,omitempty"`
1825
1826	// Properties: Some entities may have optional user-supplied `Property`
1827	// (name/value) fields, such a score or string that qualifies the
1828	// entity.
1829	Properties []*GoogleCloudVisionV1p1beta1Property `json:"properties,omitempty"`
1830
1831	// Score: Overall score of the result. Range [0, 1].
1832	Score float64 `json:"score,omitempty"`
1833
1834	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1835	// to the image. For example, the relevancy of "tower" is likely higher
1836	// to an image containing the detected "Eiffel Tower" than to an image
1837	// containing a detected distant towering building, even though the
1838	// confidence that there is a tower in each image may be the same. Range
1839	// [0, 1].
1840	Topicality float64 `json:"topicality,omitempty"`
1841
1842	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1843	// unconditionally include in API requests. By default, fields with
1844	// empty or default values are omitted from API requests. However, any
1845	// non-pointer, non-interface field appearing in ForceSendFields will be
1846	// sent to the server regardless of whether the field is empty or not.
1847	// This may be used to include empty fields in Patch requests.
1848	ForceSendFields []string `json:"-"`
1849
1850	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1851	// in API requests with the JSON null value. By default, fields with
1852	// empty values are omitted from API requests. However, any field with
1853	// an empty value appearing in NullFields will be sent to the server as
1854	// null. It is an error if a field in this list has a non-empty value.
1855	// This may be used to include null fields in Patch requests.
1856	NullFields []string `json:"-"`
1857}
1858
1859func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
1860	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
1861	raw := NoMethod(*s)
1862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1863}
1864
1865func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
1866	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
1867	var s1 struct {
1868		Confidence gensupport.JSONFloat64 `json:"confidence"`
1869		Score      gensupport.JSONFloat64 `json:"score"`
1870		Topicality gensupport.JSONFloat64 `json:"topicality"`
1871		*NoMethod
1872	}
1873	s1.NoMethod = (*NoMethod)(s)
1874	if err := json.Unmarshal(data, &s1); err != nil {
1875		return err
1876	}
1877	s.Confidence = float64(s1.Confidence)
1878	s.Score = float64(s1.Score)
1879	s.Topicality = float64(s1.Topicality)
1880	return nil
1881}
1882
1883// GoogleCloudVisionV1p1beta1FaceAnnotation: A face annotation object
1884// contains the results of face detection.
1885type GoogleCloudVisionV1p1beta1FaceAnnotation struct {
1886	// AngerLikelihood: Anger likelihood.
1887	//
1888	// Possible values:
1889	//   "UNKNOWN" - Unknown likelihood.
1890	//   "VERY_UNLIKELY" - It is very unlikely.
1891	//   "UNLIKELY" - It is unlikely.
1892	//   "POSSIBLE" - It is possible.
1893	//   "LIKELY" - It is likely.
1894	//   "VERY_LIKELY" - It is very likely.
1895	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1896
1897	// BlurredLikelihood: Blurred likelihood.
1898	//
1899	// Possible values:
1900	//   "UNKNOWN" - Unknown likelihood.
1901	//   "VERY_UNLIKELY" - It is very unlikely.
1902	//   "UNLIKELY" - It is unlikely.
1903	//   "POSSIBLE" - It is possible.
1904	//   "LIKELY" - It is likely.
1905	//   "VERY_LIKELY" - It is very likely.
1906	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1907
1908	// BoundingPoly: The bounding polygon around the face. The coordinates
1909	// of the bounding box are in the original image's scale. The bounding
1910	// box is computed to "frame" the face in accordance with human
1911	// expectations. It is based on the landmarker results. Note that one or
1912	// more x and/or y coordinates may not be generated in the
1913	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
1914	// appears in the image to be annotated.
1915	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
1916
1917	// DetectionConfidence: Detection confidence. Range [0, 1].
1918	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1919
1920	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1921	// than the `boundingPoly`, and encloses only the skin part of the face.
1922	// Typically, it is used to eliminate the face from any image analysis
1923	// that detects the "amount of skin" visible in an image. It is not
1924	// based on the landmarker results, only on the initial face detection,
1925	// hence the fd (face detection) prefix.
1926	FdBoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
1927
1928	// HeadwearLikelihood: Headwear likelihood.
1929	//
1930	// Possible values:
1931	//   "UNKNOWN" - Unknown likelihood.
1932	//   "VERY_UNLIKELY" - It is very unlikely.
1933	//   "UNLIKELY" - It is unlikely.
1934	//   "POSSIBLE" - It is possible.
1935	//   "LIKELY" - It is likely.
1936	//   "VERY_LIKELY" - It is very likely.
1937	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1938
1939	// JoyLikelihood: Joy likelihood.
1940	//
1941	// Possible values:
1942	//   "UNKNOWN" - Unknown likelihood.
1943	//   "VERY_UNLIKELY" - It is very unlikely.
1944	//   "UNLIKELY" - It is unlikely.
1945	//   "POSSIBLE" - It is possible.
1946	//   "LIKELY" - It is likely.
1947	//   "VERY_LIKELY" - It is very likely.
1948	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1949
1950	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1951	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1952
1953	// Landmarks: Detected face landmarks.
1954	Landmarks []*GoogleCloudVisionV1p1beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
1955
1956	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1957	// that the face is pointing relative to the vertical plane
1958	// perpendicular to the image. Range [-180,180].
1959	PanAngle float64 `json:"panAngle,omitempty"`
1960
1961	// RollAngle: Roll angle, which indicates the amount of
1962	// clockwise/anti-clockwise rotation of the face relative to the image
1963	// vertical about the axis perpendicular to the face. Range [-180,180].
1964	RollAngle float64 `json:"rollAngle,omitempty"`
1965
1966	// SorrowLikelihood: Sorrow likelihood.
1967	//
1968	// Possible values:
1969	//   "UNKNOWN" - Unknown likelihood.
1970	//   "VERY_UNLIKELY" - It is very unlikely.
1971	//   "UNLIKELY" - It is unlikely.
1972	//   "POSSIBLE" - It is possible.
1973	//   "LIKELY" - It is likely.
1974	//   "VERY_LIKELY" - It is very likely.
1975	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1976
1977	// SurpriseLikelihood: Surprise likelihood.
1978	//
1979	// Possible values:
1980	//   "UNKNOWN" - Unknown likelihood.
1981	//   "VERY_UNLIKELY" - It is very unlikely.
1982	//   "UNLIKELY" - It is unlikely.
1983	//   "POSSIBLE" - It is possible.
1984	//   "LIKELY" - It is likely.
1985	//   "VERY_LIKELY" - It is very likely.
1986	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1987
1988	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1989	// that the face is pointing relative to the image's horizontal plane.
1990	// Range [-180,180].
1991	TiltAngle float64 `json:"tiltAngle,omitempty"`
1992
1993	// UnderExposedLikelihood: Under-exposed likelihood.
1994	//
1995	// Possible values:
1996	//   "UNKNOWN" - Unknown likelihood.
1997	//   "VERY_UNLIKELY" - It is very unlikely.
1998	//   "UNLIKELY" - It is unlikely.
1999	//   "POSSIBLE" - It is possible.
2000	//   "LIKELY" - It is likely.
2001	//   "VERY_LIKELY" - It is very likely.
2002	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
2003
2004	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
2005	// unconditionally include in API requests. By default, fields with
2006	// empty or default values are omitted from API requests. However, any
2007	// non-pointer, non-interface field appearing in ForceSendFields will be
2008	// sent to the server regardless of whether the field is empty or not.
2009	// This may be used to include empty fields in Patch requests.
2010	ForceSendFields []string `json:"-"`
2011
2012	// NullFields is a list of field names (e.g. "AngerLikelihood") to
2013	// include in API requests with the JSON null value. By default, fields
2014	// with empty values are omitted from API requests. However, any field
2015	// with an empty value appearing in NullFields will be sent to the
2016	// server as null. It is an error if a field in this list has a
2017	// non-empty value. This may be used to include null fields in Patch
2018	// requests.
2019	NullFields []string `json:"-"`
2020}
2021
2022func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
2023	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2024	raw := NoMethod(*s)
2025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2026}
2027
2028func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
2029	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2030	var s1 struct {
2031		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
2032		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
2033		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
2034		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
2035		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
2036		*NoMethod
2037	}
2038	s1.NoMethod = (*NoMethod)(s)
2039	if err := json.Unmarshal(data, &s1); err != nil {
2040		return err
2041	}
2042	s.DetectionConfidence = float64(s1.DetectionConfidence)
2043	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
2044	s.PanAngle = float64(s1.PanAngle)
2045	s.RollAngle = float64(s1.RollAngle)
2046	s.TiltAngle = float64(s1.TiltAngle)
2047	return nil
2048}
2049
2050// GoogleCloudVisionV1p1beta1FaceAnnotationLandmark: A face-specific
2051// landmark (for example, a face feature).
2052type GoogleCloudVisionV1p1beta1FaceAnnotationLandmark struct {
2053	// Position: Face landmark position.
2054	Position *GoogleCloudVisionV1p1beta1Position `json:"position,omitempty"`
2055
2056	// Type: Face landmark type.
2057	//
2058	// Possible values:
2059	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
2060	// filled.
2061	//   "LEFT_EYE" - Left eye.
2062	//   "RIGHT_EYE" - Right eye.
2063	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
2064	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
2065	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
2066	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
2067	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
2068	//   "NOSE_TIP" - Nose tip.
2069	//   "UPPER_LIP" - Upper lip.
2070	//   "LOWER_LIP" - Lower lip.
2071	//   "MOUTH_LEFT" - Mouth left.
2072	//   "MOUTH_RIGHT" - Mouth right.
2073	//   "MOUTH_CENTER" - Mouth center.
2074	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
2075	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
2076	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
2077	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
2078	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
2079	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
2080	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
2081	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
2082	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
2083	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
2084	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
2085	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
2086	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
2087	//   "LEFT_EAR_TRAGION" - Left ear tragion.
2088	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
2089	//   "LEFT_EYE_PUPIL" - Left eye pupil.
2090	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
2091	//   "FOREHEAD_GLABELLA" - Forehead glabella.
2092	//   "CHIN_GNATHION" - Chin gnathion.
2093	//   "CHIN_LEFT_GONION" - Chin left gonion.
2094	//   "CHIN_RIGHT_GONION" - Chin right gonion.
2095	//   "LEFT_CHEEK_CENTER" - Left cheek center.
2096	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
2097	Type string `json:"type,omitempty"`
2098
2099	// ForceSendFields is a list of field names (e.g. "Position") to
2100	// unconditionally include in API requests. By default, fields with
2101	// empty or default values are omitted from API requests. However, any
2102	// non-pointer, non-interface field appearing in ForceSendFields will be
2103	// sent to the server regardless of whether the field is empty or not.
2104	// This may be used to include empty fields in Patch requests.
2105	ForceSendFields []string `json:"-"`
2106
2107	// NullFields is a list of field names (e.g. "Position") to include in
2108	// API requests with the JSON null value. By default, fields with empty
2109	// values are omitted from API requests. However, any field with an
2110	// empty value appearing in NullFields will be sent to the server as
2111	// null. It is an error if a field in this list has a non-empty value.
2112	// This may be used to include null fields in Patch requests.
2113	NullFields []string `json:"-"`
2114}
2115
2116func (s *GoogleCloudVisionV1p1beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
2117	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotationLandmark
2118	raw := NoMethod(*s)
2119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2120}
2121
2122// GoogleCloudVisionV1p1beta1GcsDestination: The Google Cloud Storage
2123// location where the output will be written to.
2124type GoogleCloudVisionV1p1beta1GcsDestination struct {
2125	// Uri: Google Cloud Storage URI prefix where the results will be
2126	// stored. Results will be in JSON format and preceded by its
2127	// corresponding input URI prefix. This field can either represent a gcs
2128	// file prefix or gcs directory. In either case, the uri should be
2129	// unique because in order to get all of the output files, you will need
2130	// to do a wildcard gcs search on the uri prefix you provide. Examples:
2131	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
2132	// will be created in gs://bucket-name/here/ and the names of the output
2133	// files will begin with "filenameprefix". * Directory Prefix:
2134	// gs://bucket-name/some/location/ The output files will be created in
2135	// gs://bucket-name/some/location/ and the names of the output files
2136	// could be anything because there was no filename prefix specified. If
2137	// multiple outputs, each response is still AnnotateFileResponse, each
2138	// of which contains some subset of the full list of
2139	// AnnotateImageResponse. Multiple outputs can happen if, for example,
2140	// the output JSON is too large and overflows into multiple sharded
2141	// files.
2142	Uri string `json:"uri,omitempty"`
2143
2144	// ForceSendFields is a list of field names (e.g. "Uri") to
2145	// unconditionally include in API requests. By default, fields with
2146	// empty or default values are omitted from API requests. However, any
2147	// non-pointer, non-interface field appearing in ForceSendFields will be
2148	// sent to the server regardless of whether the field is empty or not.
2149	// This may be used to include empty fields in Patch requests.
2150	ForceSendFields []string `json:"-"`
2151
2152	// NullFields is a list of field names (e.g. "Uri") to include in API
2153	// requests with the JSON null value. By default, fields with empty
2154	// values are omitted from API requests. However, any field with an
2155	// empty value appearing in NullFields will be sent to the server as
2156	// null. It is an error if a field in this list has a non-empty value.
2157	// This may be used to include null fields in Patch requests.
2158	NullFields []string `json:"-"`
2159}
2160
2161func (s *GoogleCloudVisionV1p1beta1GcsDestination) MarshalJSON() ([]byte, error) {
2162	type NoMethod GoogleCloudVisionV1p1beta1GcsDestination
2163	raw := NoMethod(*s)
2164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2165}
2166
2167// GoogleCloudVisionV1p1beta1GcsSource: The Google Cloud Storage
2168// location where the input will be read from.
2169type GoogleCloudVisionV1p1beta1GcsSource struct {
2170	// Uri: Google Cloud Storage URI for the input file. This must only be a
2171	// Google Cloud Storage object. Wildcards are not currently supported.
2172	Uri string `json:"uri,omitempty"`
2173
2174	// ForceSendFields is a list of field names (e.g. "Uri") to
2175	// unconditionally include in API requests. By default, fields with
2176	// empty or default values are omitted from API requests. However, any
2177	// non-pointer, non-interface field appearing in ForceSendFields will be
2178	// sent to the server regardless of whether the field is empty or not.
2179	// This may be used to include empty fields in Patch requests.
2180	ForceSendFields []string `json:"-"`
2181
2182	// NullFields is a list of field names (e.g. "Uri") to include in API
2183	// requests with the JSON null value. By default, fields with empty
2184	// values are omitted from API requests. However, any field with an
2185	// empty value appearing in NullFields will be sent to the server as
2186	// null. It is an error if a field in this list has a non-empty value.
2187	// This may be used to include null fields in Patch requests.
2188	NullFields []string `json:"-"`
2189}
2190
2191func (s *GoogleCloudVisionV1p1beta1GcsSource) MarshalJSON() ([]byte, error) {
2192	type NoMethod GoogleCloudVisionV1p1beta1GcsSource
2193	raw := NoMethod(*s)
2194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2195}
2196
2197// GoogleCloudVisionV1p1beta1ImageAnnotationContext: If an image was
2198// produced from a file (e.g. a PDF), this message gives information
2199// about the source of that image.
2200type GoogleCloudVisionV1p1beta1ImageAnnotationContext struct {
2201	// PageNumber: If the file was a PDF or TIFF, this field gives the page
2202	// number within the file used to produce the image.
2203	PageNumber int64 `json:"pageNumber,omitempty"`
2204
2205	// Uri: The URI of the file used to produce the image.
2206	Uri string `json:"uri,omitempty"`
2207
2208	// ForceSendFields is a list of field names (e.g. "PageNumber") to
2209	// unconditionally include in API requests. By default, fields with
2210	// empty or default values are omitted from API requests. However, any
2211	// non-pointer, non-interface field appearing in ForceSendFields will be
2212	// sent to the server regardless of whether the field is empty or not.
2213	// This may be used to include empty fields in Patch requests.
2214	ForceSendFields []string `json:"-"`
2215
2216	// NullFields is a list of field names (e.g. "PageNumber") to include in
2217	// API requests with the JSON null value. By default, fields with empty
2218	// values are omitted from API requests. However, any field with an
2219	// empty value appearing in NullFields will be sent to the server as
2220	// null. It is an error if a field in this list has a non-empty value.
2221	// This may be used to include null fields in Patch requests.
2222	NullFields []string `json:"-"`
2223}
2224
2225func (s *GoogleCloudVisionV1p1beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
2226	type NoMethod GoogleCloudVisionV1p1beta1ImageAnnotationContext
2227	raw := NoMethod(*s)
2228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2229}
2230
2231// GoogleCloudVisionV1p1beta1ImageProperties: Stores image properties,
2232// such as dominant colors.
2233type GoogleCloudVisionV1p1beta1ImageProperties struct {
2234	// DominantColors: If present, dominant colors completed successfully.
2235	DominantColors *GoogleCloudVisionV1p1beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
2236
2237	// ForceSendFields is a list of field names (e.g. "DominantColors") to
2238	// unconditionally include in API requests. By default, fields with
2239	// empty or default values are omitted from API requests. However, any
2240	// non-pointer, non-interface field appearing in ForceSendFields will be
2241	// sent to the server regardless of whether the field is empty or not.
2242	// This may be used to include empty fields in Patch requests.
2243	ForceSendFields []string `json:"-"`
2244
2245	// NullFields is a list of field names (e.g. "DominantColors") to
2246	// include in API requests with the JSON null value. By default, fields
2247	// with empty values are omitted from API requests. However, any field
2248	// with an empty value appearing in NullFields will be sent to the
2249	// server as null. It is an error if a field in this list has a
2250	// non-empty value. This may be used to include null fields in Patch
2251	// requests.
2252	NullFields []string `json:"-"`
2253}
2254
2255func (s *GoogleCloudVisionV1p1beta1ImageProperties) MarshalJSON() ([]byte, error) {
2256	type NoMethod GoogleCloudVisionV1p1beta1ImageProperties
2257	raw := NoMethod(*s)
2258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2259}
2260
2261// GoogleCloudVisionV1p1beta1InputConfig: The desired input location and
2262// metadata.
2263type GoogleCloudVisionV1p1beta1InputConfig struct {
2264	// Content: File content, represented as a stream of bytes. Note: As
2265	// with all `bytes` fields, protobuffers use a pure binary
2266	// representation, whereas JSON representations use base64. Currently,
2267	// this field only works for BatchAnnotateFiles requests. It does not
2268	// work for AsyncBatchAnnotateFiles requests.
2269	Content string `json:"content,omitempty"`
2270
2271	// GcsSource: The Google Cloud Storage location to read the input from.
2272	GcsSource *GoogleCloudVisionV1p1beta1GcsSource `json:"gcsSource,omitempty"`
2273
2274	// MimeType: The type of the file. Currently only "application/pdf",
2275	// "image/tiff" and "image/gif" are supported. Wildcards are not
2276	// supported.
2277	MimeType string `json:"mimeType,omitempty"`
2278
2279	// ForceSendFields is a list of field names (e.g. "Content") to
2280	// unconditionally include in API requests. By default, fields with
2281	// empty or default values are omitted from API requests. However, any
2282	// non-pointer, non-interface field appearing in ForceSendFields will be
2283	// sent to the server regardless of whether the field is empty or not.
2284	// This may be used to include empty fields in Patch requests.
2285	ForceSendFields []string `json:"-"`
2286
2287	// NullFields is a list of field names (e.g. "Content") to include in
2288	// API requests with the JSON null value. By default, fields with empty
2289	// values are omitted from API requests. However, any field with an
2290	// empty value appearing in NullFields will be sent to the server as
2291	// null. It is an error if a field in this list has a non-empty value.
2292	// This may be used to include null fields in Patch requests.
2293	NullFields []string `json:"-"`
2294}
2295
2296func (s *GoogleCloudVisionV1p1beta1InputConfig) MarshalJSON() ([]byte, error) {
2297	type NoMethod GoogleCloudVisionV1p1beta1InputConfig
2298	raw := NoMethod(*s)
2299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2300}
2301
2302// GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation: Set of detected
2303// objects with bounding boxes.
2304type GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation struct {
2305	// BoundingPoly: Image region to which this object belongs. This must be
2306	// populated.
2307	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2308
2309	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
2310	// For more information, see
2311	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
2312	LanguageCode string `json:"languageCode,omitempty"`
2313
2314	// Mid: Object ID that should align with EntityAnnotation mid.
2315	Mid string `json:"mid,omitempty"`
2316
2317	// Name: Object name, expressed in its `language_code` language.
2318	Name string `json:"name,omitempty"`
2319
2320	// Score: Score of the result. Range [0, 1].
2321	Score float64 `json:"score,omitempty"`
2322
2323	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2324	// unconditionally include in API requests. By default, fields with
2325	// empty or default values are omitted from API requests. However, any
2326	// non-pointer, non-interface field appearing in ForceSendFields will be
2327	// sent to the server regardless of whether the field is empty or not.
2328	// This may be used to include empty fields in Patch requests.
2329	ForceSendFields []string `json:"-"`
2330
2331	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2332	// in API requests with the JSON null value. By default, fields with
2333	// empty values are omitted from API requests. However, any field with
2334	// an empty value appearing in NullFields will be sent to the server as
2335	// null. It is an error if a field in this list has a non-empty value.
2336	// This may be used to include null fields in Patch requests.
2337	NullFields []string `json:"-"`
2338}
2339
2340func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
2341	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2342	raw := NoMethod(*s)
2343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2344}
2345
2346func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
2347	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2348	var s1 struct {
2349		Score gensupport.JSONFloat64 `json:"score"`
2350		*NoMethod
2351	}
2352	s1.NoMethod = (*NoMethod)(s)
2353	if err := json.Unmarshal(data, &s1); err != nil {
2354		return err
2355	}
2356	s.Score = float64(s1.Score)
2357	return nil
2358}
2359
2360// GoogleCloudVisionV1p1beta1LocationInfo: Detected entity location
2361// information.
2362type GoogleCloudVisionV1p1beta1LocationInfo struct {
2363	// LatLng: lat/long location coordinates.
2364	LatLng *LatLng `json:"latLng,omitempty"`
2365
2366	// ForceSendFields is a list of field names (e.g. "LatLng") to
2367	// unconditionally include in API requests. By default, fields with
2368	// empty or default values are omitted from API requests. However, any
2369	// non-pointer, non-interface field appearing in ForceSendFields will be
2370	// sent to the server regardless of whether the field is empty or not.
2371	// This may be used to include empty fields in Patch requests.
2372	ForceSendFields []string `json:"-"`
2373
2374	// NullFields is a list of field names (e.g. "LatLng") to include in API
2375	// requests with the JSON null value. By default, fields with empty
2376	// values are omitted from API requests. However, any field with an
2377	// empty value appearing in NullFields will be sent to the server as
2378	// null. It is an error if a field in this list has a non-empty value.
2379	// This may be used to include null fields in Patch requests.
2380	NullFields []string `json:"-"`
2381}
2382
2383func (s *GoogleCloudVisionV1p1beta1LocationInfo) MarshalJSON() ([]byte, error) {
2384	type NoMethod GoogleCloudVisionV1p1beta1LocationInfo
2385	raw := NoMethod(*s)
2386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2387}
2388
2389// GoogleCloudVisionV1p1beta1NormalizedVertex: A vertex represents a 2D
2390// point in the image. NOTE: the normalized vertex coordinates are
2391// relative to the original image and range from 0 to 1.
2392type GoogleCloudVisionV1p1beta1NormalizedVertex struct {
2393	// X: X coordinate.
2394	X float64 `json:"x,omitempty"`
2395
2396	// Y: Y coordinate.
2397	Y float64 `json:"y,omitempty"`
2398
2399	// ForceSendFields is a list of field names (e.g. "X") to
2400	// unconditionally include in API requests. By default, fields with
2401	// empty or default values are omitted from API requests. However, any
2402	// non-pointer, non-interface field appearing in ForceSendFields will be
2403	// sent to the server regardless of whether the field is empty or not.
2404	// This may be used to include empty fields in Patch requests.
2405	ForceSendFields []string `json:"-"`
2406
2407	// NullFields is a list of field names (e.g. "X") to include in API
2408	// requests with the JSON null value. By default, fields with empty
2409	// values are omitted from API requests. However, any field with an
2410	// empty value appearing in NullFields will be sent to the server as
2411	// null. It is an error if a field in this list has a non-empty value.
2412	// This may be used to include null fields in Patch requests.
2413	NullFields []string `json:"-"`
2414}
2415
2416func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
2417	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2418	raw := NoMethod(*s)
2419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2420}
2421
2422func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
2423	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2424	var s1 struct {
2425		X gensupport.JSONFloat64 `json:"x"`
2426		Y gensupport.JSONFloat64 `json:"y"`
2427		*NoMethod
2428	}
2429	s1.NoMethod = (*NoMethod)(s)
2430	if err := json.Unmarshal(data, &s1); err != nil {
2431		return err
2432	}
2433	s.X = float64(s1.X)
2434	s.Y = float64(s1.Y)
2435	return nil
2436}
2437
2438// GoogleCloudVisionV1p1beta1OperationMetadata: Contains metadata for
2439// the BatchAnnotateImages operation.
2440type GoogleCloudVisionV1p1beta1OperationMetadata struct {
2441	// CreateTime: The time when the batch request was received.
2442	CreateTime string `json:"createTime,omitempty"`
2443
2444	// State: Current state of the batch operation.
2445	//
2446	// Possible values:
2447	//   "STATE_UNSPECIFIED" - Invalid.
2448	//   "CREATED" - Request is received.
2449	//   "RUNNING" - Request is actively being processed.
2450	//   "DONE" - The batch processing is done.
2451	//   "CANCELLED" - The batch processing was cancelled.
2452	State string `json:"state,omitempty"`
2453
2454	// UpdateTime: The time when the operation result was last updated.
2455	UpdateTime string `json:"updateTime,omitempty"`
2456
2457	// ForceSendFields is a list of field names (e.g. "CreateTime") to
2458	// unconditionally include in API requests. By default, fields with
2459	// empty or default values are omitted from API requests. However, any
2460	// non-pointer, non-interface field appearing in ForceSendFields will be
2461	// sent to the server regardless of whether the field is empty or not.
2462	// This may be used to include empty fields in Patch requests.
2463	ForceSendFields []string `json:"-"`
2464
2465	// NullFields is a list of field names (e.g. "CreateTime") to include in
2466	// API requests with the JSON null value. By default, fields with empty
2467	// values are omitted from API requests. However, any field with an
2468	// empty value appearing in NullFields will be sent to the server as
2469	// null. It is an error if a field in this list has a non-empty value.
2470	// This may be used to include null fields in Patch requests.
2471	NullFields []string `json:"-"`
2472}
2473
2474func (s *GoogleCloudVisionV1p1beta1OperationMetadata) MarshalJSON() ([]byte, error) {
2475	type NoMethod GoogleCloudVisionV1p1beta1OperationMetadata
2476	raw := NoMethod(*s)
2477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2478}
2479
2480// GoogleCloudVisionV1p1beta1OutputConfig: The desired output location
2481// and metadata.
2482type GoogleCloudVisionV1p1beta1OutputConfig struct {
2483	// BatchSize: The max number of response protos to put into each output
2484	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
2485	// not specified, the default value is 20. For example, for one pdf file
2486	// with 100 pages, 100 response protos will be generated. If
2487	// `batch_size` = 20, then 5 json files each containing 20 response
2488	// protos will be written under the prefix `gcs_destination`.`uri`.
2489	// Currently, batch_size only applies to GcsDestination, with potential
2490	// future support for other output configurations.
2491	BatchSize int64 `json:"batchSize,omitempty"`
2492
2493	// GcsDestination: The Google Cloud Storage location to write the
2494	// output(s) to.
2495	GcsDestination *GoogleCloudVisionV1p1beta1GcsDestination `json:"gcsDestination,omitempty"`
2496
2497	// ForceSendFields is a list of field names (e.g. "BatchSize") to
2498	// unconditionally include in API requests. By default, fields with
2499	// empty or default values are omitted from API requests. However, any
2500	// non-pointer, non-interface field appearing in ForceSendFields will be
2501	// sent to the server regardless of whether the field is empty or not.
2502	// This may be used to include empty fields in Patch requests.
2503	ForceSendFields []string `json:"-"`
2504
2505	// NullFields is a list of field names (e.g. "BatchSize") to include in
2506	// API requests with the JSON null value. By default, fields with empty
2507	// values are omitted from API requests. However, any field with an
2508	// empty value appearing in NullFields will be sent to the server as
2509	// null. It is an error if a field in this list has a non-empty value.
2510	// This may be used to include null fields in Patch requests.
2511	NullFields []string `json:"-"`
2512}
2513
2514func (s *GoogleCloudVisionV1p1beta1OutputConfig) MarshalJSON() ([]byte, error) {
2515	type NoMethod GoogleCloudVisionV1p1beta1OutputConfig
2516	raw := NoMethod(*s)
2517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2518}
2519
2520// GoogleCloudVisionV1p1beta1Page: Detected page from OCR.
2521type GoogleCloudVisionV1p1beta1Page struct {
2522	// Blocks: List of blocks of text, images etc on this page.
2523	Blocks []*GoogleCloudVisionV1p1beta1Block `json:"blocks,omitempty"`
2524
2525	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
2526	Confidence float64 `json:"confidence,omitempty"`
2527
2528	// Height: Page height. For PDFs the unit is points. For images
2529	// (including TIFFs) the unit is pixels.
2530	Height int64 `json:"height,omitempty"`
2531
2532	// Property: Additional information detected on the page.
2533	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2534
2535	// Width: Page width. For PDFs the unit is points. For images (including
2536	// TIFFs) the unit is pixels.
2537	Width int64 `json:"width,omitempty"`
2538
2539	// ForceSendFields is a list of field names (e.g. "Blocks") to
2540	// unconditionally include in API requests. By default, fields with
2541	// empty or default values are omitted from API requests. However, any
2542	// non-pointer, non-interface field appearing in ForceSendFields will be
2543	// sent to the server regardless of whether the field is empty or not.
2544	// This may be used to include empty fields in Patch requests.
2545	ForceSendFields []string `json:"-"`
2546
2547	// NullFields is a list of field names (e.g. "Blocks") to include in API
2548	// requests with the JSON null value. By default, fields with empty
2549	// values are omitted from API requests. However, any field with an
2550	// 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 *GoogleCloudVisionV1p1beta1Page) MarshalJSON() ([]byte, error) {
2557	type NoMethod GoogleCloudVisionV1p1beta1Page
2558	raw := NoMethod(*s)
2559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2560}
2561
2562func (s *GoogleCloudVisionV1p1beta1Page) UnmarshalJSON(data []byte) error {
2563	type NoMethod GoogleCloudVisionV1p1beta1Page
2564	var s1 struct {
2565		Confidence gensupport.JSONFloat64 `json:"confidence"`
2566		*NoMethod
2567	}
2568	s1.NoMethod = (*NoMethod)(s)
2569	if err := json.Unmarshal(data, &s1); err != nil {
2570		return err
2571	}
2572	s.Confidence = float64(s1.Confidence)
2573	return nil
2574}
2575
2576// GoogleCloudVisionV1p1beta1Paragraph: Structural unit of text
2577// representing a number of words in certain order.
2578type GoogleCloudVisionV1p1beta1Paragraph struct {
2579	// BoundingBox: The bounding box for the paragraph. The vertices are in
2580	// the order of top-left, top-right, bottom-right, bottom-left. When a
2581	// rotation of the bounding box is detected the rotation is represented
2582	// as around the top-left corner as defined when the text is read in the
2583	// 'natural' orientation. For example: * when the text is horizontal it
2584	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
2585	// around the top-left corner it becomes: 2----3 | | 1----0 and the
2586	// vertex order will still be (0, 1, 2, 3).
2587	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
2588
2589	// Confidence: Confidence of the OCR results for the paragraph. Range
2590	// [0, 1].
2591	Confidence float64 `json:"confidence,omitempty"`
2592
2593	// Property: Additional information detected for the paragraph.
2594	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2595
2596	// Words: List of all words in this paragraph.
2597	Words []*GoogleCloudVisionV1p1beta1Word `json:"words,omitempty"`
2598
2599	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
2600	// unconditionally include in API requests. By default, fields with
2601	// empty or default values are omitted from API requests. However, any
2602	// non-pointer, non-interface field appearing in ForceSendFields will be
2603	// sent to the server regardless of whether the field is empty or not.
2604	// This may be used to include empty fields in Patch requests.
2605	ForceSendFields []string `json:"-"`
2606
2607	// NullFields is a list of field names (e.g. "BoundingBox") to include
2608	// in API requests with the JSON null value. By default, fields with
2609	// empty values are omitted from API requests. However, any field with
2610	// an empty value appearing in NullFields will be sent to the server as
2611	// null. It is an error if a field in this list has a non-empty value.
2612	// This may be used to include null fields in Patch requests.
2613	NullFields []string `json:"-"`
2614}
2615
2616func (s *GoogleCloudVisionV1p1beta1Paragraph) MarshalJSON() ([]byte, error) {
2617	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
2618	raw := NoMethod(*s)
2619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2620}
2621
2622func (s *GoogleCloudVisionV1p1beta1Paragraph) UnmarshalJSON(data []byte) error {
2623	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
2624	var s1 struct {
2625		Confidence gensupport.JSONFloat64 `json:"confidence"`
2626		*NoMethod
2627	}
2628	s1.NoMethod = (*NoMethod)(s)
2629	if err := json.Unmarshal(data, &s1); err != nil {
2630		return err
2631	}
2632	s.Confidence = float64(s1.Confidence)
2633	return nil
2634}
2635
2636// GoogleCloudVisionV1p1beta1Position: A 3D position in the image, used
2637// primarily for Face detection landmarks. A valid Position must have
2638// both x and y coordinates. The position coordinates are in the same
2639// scale as the original image.
2640type GoogleCloudVisionV1p1beta1Position struct {
2641	// X: X coordinate.
2642	X float64 `json:"x,omitempty"`
2643
2644	// Y: Y coordinate.
2645	Y float64 `json:"y,omitempty"`
2646
2647	// Z: Z coordinate (or depth).
2648	Z float64 `json:"z,omitempty"`
2649
2650	// ForceSendFields is a list of field names (e.g. "X") to
2651	// unconditionally include in API requests. By default, fields with
2652	// empty or default values are omitted from API requests. However, any
2653	// non-pointer, non-interface field appearing in ForceSendFields will be
2654	// sent to the server regardless of whether the field is empty or not.
2655	// This may be used to include empty fields in Patch requests.
2656	ForceSendFields []string `json:"-"`
2657
2658	// NullFields is a list of field names (e.g. "X") to include in API
2659	// requests with the JSON null value. By default, fields with empty
2660	// values are omitted from API requests. However, any field with an
2661	// empty value appearing in NullFields will be sent to the server as
2662	// null. It is an error if a field in this list has a non-empty value.
2663	// This may be used to include null fields in Patch requests.
2664	NullFields []string `json:"-"`
2665}
2666
2667func (s *GoogleCloudVisionV1p1beta1Position) MarshalJSON() ([]byte, error) {
2668	type NoMethod GoogleCloudVisionV1p1beta1Position
2669	raw := NoMethod(*s)
2670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2671}
2672
2673func (s *GoogleCloudVisionV1p1beta1Position) UnmarshalJSON(data []byte) error {
2674	type NoMethod GoogleCloudVisionV1p1beta1Position
2675	var s1 struct {
2676		X gensupport.JSONFloat64 `json:"x"`
2677		Y gensupport.JSONFloat64 `json:"y"`
2678		Z gensupport.JSONFloat64 `json:"z"`
2679		*NoMethod
2680	}
2681	s1.NoMethod = (*NoMethod)(s)
2682	if err := json.Unmarshal(data, &s1); err != nil {
2683		return err
2684	}
2685	s.X = float64(s1.X)
2686	s.Y = float64(s1.Y)
2687	s.Z = float64(s1.Z)
2688	return nil
2689}
2690
2691// GoogleCloudVisionV1p1beta1Product: A Product contains
2692// ReferenceImages.
2693type GoogleCloudVisionV1p1beta1Product struct {
2694	// Description: User-provided metadata to be stored with this product.
2695	// Must be at most 4096 characters long.
2696	Description string `json:"description,omitempty"`
2697
2698	// DisplayName: The user-provided name for this Product. Must not be
2699	// empty. Must be at most 4096 characters long.
2700	DisplayName string `json:"displayName,omitempty"`
2701
2702	// Name: The resource name of the product. Format is:
2703	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
2704	// field is ignored when creating a product.
2705	Name string `json:"name,omitempty"`
2706
2707	// ProductCategory: Immutable. The category for the product identified
2708	// by the reference image. This should be one of "homegoods-v2",
2709	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
2710	// legacy categories "homegoods", "apparel", and "toys" are still
2711	// supported, but these should not be used for new products.
2712	ProductCategory string `json:"productCategory,omitempty"`
2713
2714	// ProductLabels: Key-value pairs that can be attached to a product. At
2715	// query time, constraints can be specified based on the product_labels.
2716	// Note that integer values can be provided as strings, e.g. "1199".
2717	// Only strings with integer values can match a range-based restriction
2718	// which is to be supported soon. Multiple values can be assigned to the
2719	// same key. One product may have up to 500 product_labels. Notice that
2720	// the total number of distinct product_labels over all products in one
2721	// ProductSet cannot exceed 1M, otherwise the product search pipeline
2722	// will refuse to work for that ProductSet.
2723	ProductLabels []*GoogleCloudVisionV1p1beta1ProductKeyValue `json:"productLabels,omitempty"`
2724
2725	// ForceSendFields is a list of field names (e.g. "Description") to
2726	// unconditionally include in API requests. By default, fields with
2727	// empty or default values are omitted from API requests. However, any
2728	// non-pointer, non-interface field appearing in ForceSendFields will be
2729	// sent to the server regardless of whether the field is empty or not.
2730	// This may be used to include empty fields in Patch requests.
2731	ForceSendFields []string `json:"-"`
2732
2733	// NullFields is a list of field names (e.g. "Description") to include
2734	// in API requests with the JSON null value. By default, fields with
2735	// empty values are omitted from API requests. However, any field with
2736	// an empty value appearing in NullFields will be sent to the server as
2737	// null. It is an error if a field in this list has a non-empty value.
2738	// This may be used to include null fields in Patch requests.
2739	NullFields []string `json:"-"`
2740}
2741
2742func (s *GoogleCloudVisionV1p1beta1Product) MarshalJSON() ([]byte, error) {
2743	type NoMethod GoogleCloudVisionV1p1beta1Product
2744	raw := NoMethod(*s)
2745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2746}
2747
2748// GoogleCloudVisionV1p1beta1ProductKeyValue: A product label
2749// represented as a key-value pair.
2750type GoogleCloudVisionV1p1beta1ProductKeyValue struct {
2751	// Key: The key of the label attached to the product. Cannot be empty
2752	// and cannot exceed 128 bytes.
2753	Key string `json:"key,omitempty"`
2754
2755	// Value: The value of the label attached to the product. Cannot be
2756	// empty and cannot exceed 128 bytes.
2757	Value string `json:"value,omitempty"`
2758
2759	// ForceSendFields is a list of field names (e.g. "Key") to
2760	// unconditionally include in API requests. By default, fields with
2761	// empty or default values are omitted from API requests. However, any
2762	// non-pointer, non-interface field appearing in ForceSendFields will be
2763	// sent to the server regardless of whether the field is empty or not.
2764	// This may be used to include empty fields in Patch requests.
2765	ForceSendFields []string `json:"-"`
2766
2767	// NullFields is a list of field names (e.g. "Key") to include in API
2768	// requests with the JSON null value. By default, fields with empty
2769	// values are omitted from API requests. However, any field with an
2770	// empty value appearing in NullFields will be sent to the server as
2771	// null. It is an error if a field in this list has a non-empty value.
2772	// This may be used to include null fields in Patch requests.
2773	NullFields []string `json:"-"`
2774}
2775
2776func (s *GoogleCloudVisionV1p1beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
2777	type NoMethod GoogleCloudVisionV1p1beta1ProductKeyValue
2778	raw := NoMethod(*s)
2779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2780}
2781
2782// GoogleCloudVisionV1p1beta1ProductSearchResults: Results for a product
2783// search request.
2784type GoogleCloudVisionV1p1beta1ProductSearchResults struct {
2785	// IndexTime: Timestamp of the index which provided these results.
2786	// Products added to the product set and products removed from the
2787	// product set after this time are not reflected in the current results.
2788	IndexTime string `json:"indexTime,omitempty"`
2789
2790	// ProductGroupedResults: List of results grouped by products detected
2791	// in the query image. Each entry corresponds to one bounding polygon in
2792	// the query image, and contains the matching products specific to that
2793	// region. There may be duplicate product matches in the union of all
2794	// the per-product results.
2795	ProductGroupedResults []*GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
2796
2797	// Results: List of results, one for each product match.
2798	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
2799
2800	// ForceSendFields is a list of field names (e.g. "IndexTime") to
2801	// unconditionally include in API requests. By default, fields with
2802	// empty or default values are omitted from API requests. However, any
2803	// non-pointer, non-interface field appearing in ForceSendFields will be
2804	// sent to the server regardless of whether the field is empty or not.
2805	// This may be used to include empty fields in Patch requests.
2806	ForceSendFields []string `json:"-"`
2807
2808	// NullFields is a list of field names (e.g. "IndexTime") to include in
2809	// API requests with the JSON null value. By default, fields with empty
2810	// values are omitted from API requests. However, any field with an
2811	// empty value appearing in NullFields will be sent to the server as
2812	// null. It is an error if a field in this list has a non-empty value.
2813	// This may be used to include null fields in Patch requests.
2814	NullFields []string `json:"-"`
2815}
2816
2817func (s *GoogleCloudVisionV1p1beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
2818	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResults
2819	raw := NoMethod(*s)
2820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2821}
2822
2823// GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult:
2824// Information about the products similar to a single product in a query
2825// image.
2826type GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult struct {
2827	// BoundingPoly: The bounding polygon around the product detected in the
2828	// query image.
2829	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2830
2831	// ObjectAnnotations: List of generic predictions for the object in the
2832	// bounding box.
2833	ObjectAnnotations []*GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
2834
2835	// Results: List of results, one for each product match.
2836	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
2837
2838	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2839	// unconditionally include in API requests. By default, fields with
2840	// empty or default values are omitted from API requests. However, any
2841	// non-pointer, non-interface field appearing in ForceSendFields will be
2842	// sent to the server regardless of whether the field is empty or not.
2843	// This may be used to include empty fields in Patch requests.
2844	ForceSendFields []string `json:"-"`
2845
2846	// NullFields is a list of field names (e.g. "BoundingPoly") 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 *GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
2856	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult
2857	raw := NoMethod(*s)
2858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2859}
2860
2861// GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation:
2862// Prediction for what the object in the bounding box is.
2863type GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation struct {
2864	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
2865	// For more information, see
2866	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
2867	LanguageCode string `json:"languageCode,omitempty"`
2868
2869	// Mid: Object ID that should align with EntityAnnotation mid.
2870	Mid string `json:"mid,omitempty"`
2871
2872	// Name: Object name, expressed in its `language_code` language.
2873	Name string `json:"name,omitempty"`
2874
2875	// Score: Score of the result. Range [0, 1].
2876	Score float64 `json:"score,omitempty"`
2877
2878	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
2879	// unconditionally include in API requests. By default, fields with
2880	// empty or default values are omitted from API requests. However, any
2881	// non-pointer, non-interface field appearing in ForceSendFields will be
2882	// sent to the server regardless of whether the field is empty or not.
2883	// This may be used to include empty fields in Patch requests.
2884	ForceSendFields []string `json:"-"`
2885
2886	// NullFields is a list of field names (e.g. "LanguageCode") to include
2887	// in API requests with the JSON null value. By default, fields with
2888	// empty values are omitted from API requests. However, any field with
2889	// an empty value appearing in NullFields will be sent to the server as
2890	// null. It is an error if a field in this list has a non-empty value.
2891	// This may be used to include null fields in Patch requests.
2892	NullFields []string `json:"-"`
2893}
2894
2895func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
2896	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
2897	raw := NoMethod(*s)
2898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2899}
2900
2901func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
2902	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
2903	var s1 struct {
2904		Score gensupport.JSONFloat64 `json:"score"`
2905		*NoMethod
2906	}
2907	s1.NoMethod = (*NoMethod)(s)
2908	if err := json.Unmarshal(data, &s1); err != nil {
2909		return err
2910	}
2911	s.Score = float64(s1.Score)
2912	return nil
2913}
2914
2915// GoogleCloudVisionV1p1beta1ProductSearchResultsResult: Information
2916// about a product.
2917type GoogleCloudVisionV1p1beta1ProductSearchResultsResult struct {
2918	// Image: The resource name of the image from the product that is the
2919	// closest match to the query.
2920	Image string `json:"image,omitempty"`
2921
2922	// Product: The Product.
2923	Product *GoogleCloudVisionV1p1beta1Product `json:"product,omitempty"`
2924
2925	// Score: A confidence level on the match, ranging from 0 (no
2926	// confidence) to 1 (full confidence).
2927	Score float64 `json:"score,omitempty"`
2928
2929	// ForceSendFields is a list of field names (e.g. "Image") to
2930	// unconditionally include in API requests. By default, fields with
2931	// empty or default values are omitted from API requests. However, any
2932	// non-pointer, non-interface field appearing in ForceSendFields will be
2933	// sent to the server regardless of whether the field is empty or not.
2934	// This may be used to include empty fields in Patch requests.
2935	ForceSendFields []string `json:"-"`
2936
2937	// NullFields is a list of field names (e.g. "Image") to include in API
2938	// requests with the JSON null value. By default, fields with empty
2939	// values are omitted from API requests. However, any field with an
2940	// empty value appearing in NullFields will be sent to the server as
2941	// null. It is an error if a field in this list has a non-empty value.
2942	// This may be used to include null fields in Patch requests.
2943	NullFields []string `json:"-"`
2944}
2945
2946func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
2947	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
2948	raw := NoMethod(*s)
2949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2950}
2951
2952func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
2953	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
2954	var s1 struct {
2955		Score gensupport.JSONFloat64 `json:"score"`
2956		*NoMethod
2957	}
2958	s1.NoMethod = (*NoMethod)(s)
2959	if err := json.Unmarshal(data, &s1); err != nil {
2960		return err
2961	}
2962	s.Score = float64(s1.Score)
2963	return nil
2964}
2965
2966// GoogleCloudVisionV1p1beta1Property: A `Property` consists of a
2967// user-supplied name/value pair.
2968type GoogleCloudVisionV1p1beta1Property struct {
2969	// Name: Name of the property.
2970	Name string `json:"name,omitempty"`
2971
2972	// Uint64Value: Value of numeric properties.
2973	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
2974
2975	// Value: Value of the property.
2976	Value string `json:"value,omitempty"`
2977
2978	// ForceSendFields is a list of field names (e.g. "Name") to
2979	// unconditionally include in API requests. By default, fields with
2980	// empty or default values are omitted from API requests. However, any
2981	// non-pointer, non-interface field appearing in ForceSendFields will be
2982	// sent to the server regardless of whether the field is empty or not.
2983	// This may be used to include empty fields in Patch requests.
2984	ForceSendFields []string `json:"-"`
2985
2986	// NullFields is a list of field names (e.g. "Name") to include in API
2987	// requests with the JSON null value. By default, fields with empty
2988	// values are omitted from API requests. However, any field with an
2989	// 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 *GoogleCloudVisionV1p1beta1Property) MarshalJSON() ([]byte, error) {
2996	type NoMethod GoogleCloudVisionV1p1beta1Property
2997	raw := NoMethod(*s)
2998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2999}
3000
3001// GoogleCloudVisionV1p1beta1SafeSearchAnnotation: Set of features
3002// pertaining to the image, computed by computer vision methods over
3003// safe-search verticals (for example, adult, spoof, medical, violence).
3004type GoogleCloudVisionV1p1beta1SafeSearchAnnotation struct {
3005	// Adult: Represents the adult content likelihood for the image. Adult
3006	// content may contain elements such as nudity, pornographic images or
3007	// cartoons, or sexual activities.
3008	//
3009	// Possible values:
3010	//   "UNKNOWN" - Unknown likelihood.
3011	//   "VERY_UNLIKELY" - It is very unlikely.
3012	//   "UNLIKELY" - It is unlikely.
3013	//   "POSSIBLE" - It is possible.
3014	//   "LIKELY" - It is likely.
3015	//   "VERY_LIKELY" - It is very likely.
3016	Adult string `json:"adult,omitempty"`
3017
3018	// Medical: Likelihood that this is a medical image.
3019	//
3020	// Possible values:
3021	//   "UNKNOWN" - Unknown likelihood.
3022	//   "VERY_UNLIKELY" - It is very unlikely.
3023	//   "UNLIKELY" - It is unlikely.
3024	//   "POSSIBLE" - It is possible.
3025	//   "LIKELY" - It is likely.
3026	//   "VERY_LIKELY" - It is very likely.
3027	Medical string `json:"medical,omitempty"`
3028
3029	// Racy: Likelihood that the request image contains racy content. Racy
3030	// content may include (but is not limited to) skimpy or sheer clothing,
3031	// strategically covered nudity, lewd or provocative poses, or close-ups
3032	// of sensitive body areas.
3033	//
3034	// Possible values:
3035	//   "UNKNOWN" - Unknown likelihood.
3036	//   "VERY_UNLIKELY" - It is very unlikely.
3037	//   "UNLIKELY" - It is unlikely.
3038	//   "POSSIBLE" - It is possible.
3039	//   "LIKELY" - It is likely.
3040	//   "VERY_LIKELY" - It is very likely.
3041	Racy string `json:"racy,omitempty"`
3042
3043	// Spoof: Spoof likelihood. The likelihood that an modification was made
3044	// to the image's canonical version to make it appear funny or
3045	// offensive.
3046	//
3047	// Possible values:
3048	//   "UNKNOWN" - Unknown likelihood.
3049	//   "VERY_UNLIKELY" - It is very unlikely.
3050	//   "UNLIKELY" - It is unlikely.
3051	//   "POSSIBLE" - It is possible.
3052	//   "LIKELY" - It is likely.
3053	//   "VERY_LIKELY" - It is very likely.
3054	Spoof string `json:"spoof,omitempty"`
3055
3056	// Violence: Likelihood that this image contains violent content.
3057	//
3058	// Possible values:
3059	//   "UNKNOWN" - Unknown likelihood.
3060	//   "VERY_UNLIKELY" - It is very unlikely.
3061	//   "UNLIKELY" - It is unlikely.
3062	//   "POSSIBLE" - It is possible.
3063	//   "LIKELY" - It is likely.
3064	//   "VERY_LIKELY" - It is very likely.
3065	Violence string `json:"violence,omitempty"`
3066
3067	// ForceSendFields is a list of field names (e.g. "Adult") to
3068	// unconditionally include in API requests. By default, fields with
3069	// empty or default values are omitted from API requests. However, any
3070	// non-pointer, non-interface field appearing in ForceSendFields will be
3071	// sent to the server regardless of whether the field is empty or not.
3072	// This may be used to include empty fields in Patch requests.
3073	ForceSendFields []string `json:"-"`
3074
3075	// NullFields is a list of field names (e.g. "Adult") to include in API
3076	// requests with the JSON null value. By default, fields with empty
3077	// values are omitted from API requests. However, any field with an
3078	// empty value appearing in NullFields will be sent to the server as
3079	// null. It is an error if a field in this list has a non-empty value.
3080	// This may be used to include null fields in Patch requests.
3081	NullFields []string `json:"-"`
3082}
3083
3084func (s *GoogleCloudVisionV1p1beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
3085	type NoMethod GoogleCloudVisionV1p1beta1SafeSearchAnnotation
3086	raw := NoMethod(*s)
3087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3088}
3089
3090// GoogleCloudVisionV1p1beta1Symbol: A single symbol representation.
3091type GoogleCloudVisionV1p1beta1Symbol struct {
3092	// BoundingBox: The bounding box for the symbol. The vertices are in the
3093	// order of top-left, top-right, bottom-right, bottom-left. When a
3094	// rotation of the bounding box is detected the rotation is represented
3095	// as around the top-left corner as defined when the text is read in the
3096	// 'natural' orientation. For example: * when the text is horizontal it
3097	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
3098	// around the top-left corner it becomes: 2----3 | | 1----0 and the
3099	// vertex order will still be (0, 1, 2, 3).
3100	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3101
3102	// Confidence: Confidence of the OCR results for the symbol. Range [0,
3103	// 1].
3104	Confidence float64 `json:"confidence,omitempty"`
3105
3106	// Property: Additional information detected for the symbol.
3107	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3108
3109	// Text: The actual UTF-8 representation of the symbol.
3110	Text string `json:"text,omitempty"`
3111
3112	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3113	// unconditionally include in API requests. By default, fields with
3114	// empty or default values are omitted from API requests. However, any
3115	// non-pointer, non-interface field appearing in ForceSendFields will be
3116	// sent to the server regardless of whether the field is empty or not.
3117	// This may be used to include empty fields in Patch requests.
3118	ForceSendFields []string `json:"-"`
3119
3120	// NullFields is a list of field names (e.g. "BoundingBox") to include
3121	// in API requests with the JSON null value. By default, fields with
3122	// empty values are omitted from API requests. However, any field with
3123	// an empty value appearing in NullFields will be sent to the server as
3124	// null. It is an error if a field in this list has a non-empty value.
3125	// This may be used to include null fields in Patch requests.
3126	NullFields []string `json:"-"`
3127}
3128
3129func (s *GoogleCloudVisionV1p1beta1Symbol) MarshalJSON() ([]byte, error) {
3130	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3131	raw := NoMethod(*s)
3132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3133}
3134
3135func (s *GoogleCloudVisionV1p1beta1Symbol) UnmarshalJSON(data []byte) error {
3136	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3137	var s1 struct {
3138		Confidence gensupport.JSONFloat64 `json:"confidence"`
3139		*NoMethod
3140	}
3141	s1.NoMethod = (*NoMethod)(s)
3142	if err := json.Unmarshal(data, &s1); err != nil {
3143		return err
3144	}
3145	s.Confidence = float64(s1.Confidence)
3146	return nil
3147}
3148
3149// GoogleCloudVisionV1p1beta1TextAnnotation: TextAnnotation contains a
3150// structured representation of OCR extracted text. The hierarchy of an
3151// OCR extracted text structure is like this: TextAnnotation -> Page ->
3152// Block -> Paragraph -> Word -> Symbol Each structural component,
3153// starting from Page, may further have their own properties. Properties
3154// describe detected languages, breaks etc.. Please refer to the
3155// TextAnnotation.TextProperty message definition below for more detail.
3156type GoogleCloudVisionV1p1beta1TextAnnotation struct {
3157	// Pages: List of pages detected by OCR.
3158	Pages []*GoogleCloudVisionV1p1beta1Page `json:"pages,omitempty"`
3159
3160	// Text: UTF-8 text detected on the pages.
3161	Text string `json:"text,omitempty"`
3162
3163	// ForceSendFields is a list of field names (e.g. "Pages") to
3164	// unconditionally include in API requests. By default, fields with
3165	// empty or default values are omitted from API requests. However, any
3166	// non-pointer, non-interface field appearing in ForceSendFields will be
3167	// sent to the server regardless of whether the field is empty or not.
3168	// This may be used to include empty fields in Patch requests.
3169	ForceSendFields []string `json:"-"`
3170
3171	// NullFields is a list of field names (e.g. "Pages") to include in API
3172	// requests with the JSON null value. By default, fields with empty
3173	// values are omitted from API requests. However, any field with an
3174	// empty value appearing in NullFields will be sent to the server as
3175	// null. It is an error if a field in this list has a non-empty value.
3176	// This may be used to include null fields in Patch requests.
3177	NullFields []string `json:"-"`
3178}
3179
3180func (s *GoogleCloudVisionV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
3181	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotation
3182	raw := NoMethod(*s)
3183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3184}
3185
3186// GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak: Detected start
3187// or end of a structural component.
3188type GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak struct {
3189	// IsPrefix: True if break prepends the element.
3190	IsPrefix bool `json:"isPrefix,omitempty"`
3191
3192	// Type: Detected break type.
3193	//
3194	// Possible values:
3195	//   "UNKNOWN" - Unknown break label type.
3196	//   "SPACE" - Regular space.
3197	//   "SURE_SPACE" - Sure space (very wide).
3198	//   "EOL_SURE_SPACE" - Line-wrapping break.
3199	//   "HYPHEN" - End-line hyphen that is not present in text; does not
3200	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
3201	//   "LINE_BREAK" - Line break that ends a paragraph.
3202	Type string `json:"type,omitempty"`
3203
3204	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
3205	// unconditionally include in API requests. By default, fields with
3206	// empty or default values are omitted from API requests. However, any
3207	// non-pointer, non-interface field appearing in ForceSendFields will be
3208	// sent to the server regardless of whether the field is empty or not.
3209	// This may be used to include empty fields in Patch requests.
3210	ForceSendFields []string `json:"-"`
3211
3212	// NullFields is a list of field names (e.g. "IsPrefix") to include in
3213	// API requests with the JSON null value. By default, fields with empty
3214	// values are omitted from API requests. However, any field with an
3215	// empty value appearing in NullFields will be sent to the server as
3216	// null. It is an error if a field in this list has a non-empty value.
3217	// This may be used to include null fields in Patch requests.
3218	NullFields []string `json:"-"`
3219}
3220
3221func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
3222	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak
3223	raw := NoMethod(*s)
3224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3225}
3226
3227// GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage: Detected
3228// language for a structural component.
3229type GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage struct {
3230	// Confidence: Confidence of detected language. Range [0, 1].
3231	Confidence float64 `json:"confidence,omitempty"`
3232
3233	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3234	// For more information, see
3235	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3236	LanguageCode string `json:"languageCode,omitempty"`
3237
3238	// ForceSendFields is a list of field names (e.g. "Confidence") to
3239	// unconditionally include in API requests. By default, fields with
3240	// empty or default values are omitted from API requests. However, any
3241	// non-pointer, non-interface field appearing in ForceSendFields will be
3242	// sent to the server regardless of whether the field is empty or not.
3243	// This may be used to include empty fields in Patch requests.
3244	ForceSendFields []string `json:"-"`
3245
3246	// NullFields is a list of field names (e.g. "Confidence") to include in
3247	// API requests with the JSON null value. By default, fields with empty
3248	// values are omitted from API requests. However, any field with an
3249	// empty value appearing in NullFields will be sent to the server as
3250	// null. It is an error if a field in this list has a non-empty value.
3251	// This may be used to include null fields in Patch requests.
3252	NullFields []string `json:"-"`
3253}
3254
3255func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
3256	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3257	raw := NoMethod(*s)
3258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3259}
3260
3261func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
3262	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3263	var s1 struct {
3264		Confidence gensupport.JSONFloat64 `json:"confidence"`
3265		*NoMethod
3266	}
3267	s1.NoMethod = (*NoMethod)(s)
3268	if err := json.Unmarshal(data, &s1); err != nil {
3269		return err
3270	}
3271	s.Confidence = float64(s1.Confidence)
3272	return nil
3273}
3274
3275// GoogleCloudVisionV1p1beta1TextAnnotationTextProperty: Additional
3276// information detected on the structural component.
3277type GoogleCloudVisionV1p1beta1TextAnnotationTextProperty struct {
3278	// DetectedBreak: Detected start or end of a text segment.
3279	DetectedBreak *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
3280
3281	// DetectedLanguages: A list of detected languages together with
3282	// confidence.
3283	DetectedLanguages []*GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
3284
3285	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
3286	// unconditionally include in API requests. By default, fields with
3287	// empty or default values are omitted from API requests. However, any
3288	// non-pointer, non-interface field appearing in ForceSendFields will be
3289	// sent to the server regardless of whether the field is empty or not.
3290	// This may be used to include empty fields in Patch requests.
3291	ForceSendFields []string `json:"-"`
3292
3293	// NullFields is a list of field names (e.g. "DetectedBreak") to include
3294	// in API requests with the JSON null value. By default, fields with
3295	// empty values are omitted from API requests. However, any field with
3296	// an empty value appearing in NullFields will be sent to the server as
3297	// null. It is an error if a field in this list has a non-empty value.
3298	// This may be used to include null fields in Patch requests.
3299	NullFields []string `json:"-"`
3300}
3301
3302func (s *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
3303	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationTextProperty
3304	raw := NoMethod(*s)
3305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3306}
3307
3308// GoogleCloudVisionV1p1beta1Vertex: A vertex represents a 2D point in
3309// the image. NOTE: the vertex coordinates are in the same scale as the
3310// original image.
3311type GoogleCloudVisionV1p1beta1Vertex struct {
3312	// X: X coordinate.
3313	X int64 `json:"x,omitempty"`
3314
3315	// Y: Y coordinate.
3316	Y int64 `json:"y,omitempty"`
3317
3318	// ForceSendFields is a list of field names (e.g. "X") to
3319	// unconditionally include in API requests. By default, fields with
3320	// empty or default values are omitted from API requests. However, any
3321	// non-pointer, non-interface field appearing in ForceSendFields will be
3322	// sent to the server regardless of whether the field is empty or not.
3323	// This may be used to include empty fields in Patch requests.
3324	ForceSendFields []string `json:"-"`
3325
3326	// NullFields is a list of field names (e.g. "X") to include in API
3327	// requests with the JSON null value. By default, fields with empty
3328	// values are omitted from API requests. However, any field with an
3329	// empty value appearing in NullFields will be sent to the server as
3330	// null. It is an error if a field in this list has a non-empty value.
3331	// This may be used to include null fields in Patch requests.
3332	NullFields []string `json:"-"`
3333}
3334
3335func (s *GoogleCloudVisionV1p1beta1Vertex) MarshalJSON() ([]byte, error) {
3336	type NoMethod GoogleCloudVisionV1p1beta1Vertex
3337	raw := NoMethod(*s)
3338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3339}
3340
3341// GoogleCloudVisionV1p1beta1WebDetection: Relevant information for the
3342// image from the Internet.
3343type GoogleCloudVisionV1p1beta1WebDetection struct {
3344	// BestGuessLabels: The service's best guess as to the topic of the
3345	// request image. Inferred from similar images on the open web.
3346	BestGuessLabels []*GoogleCloudVisionV1p1beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
3347
3348	// FullMatchingImages: Fully matching images from the Internet. Can
3349	// include resized copies of the query image.
3350	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
3351
3352	// PagesWithMatchingImages: Web pages containing the matching images
3353	// from the Internet.
3354	PagesWithMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
3355
3356	// PartialMatchingImages: Partial matching images from the Internet.
3357	// Those images are similar enough to share some key-point features. For
3358	// example an original image will likely have partial matching for its
3359	// crops.
3360	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
3361
3362	// VisuallySimilarImages: The visually similar image results.
3363	VisuallySimilarImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
3364
3365	// WebEntities: Deduced entities from similar images on the Internet.
3366	WebEntities []*GoogleCloudVisionV1p1beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
3367
3368	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
3369	// unconditionally include in API requests. By default, fields with
3370	// empty or default values are omitted from API requests. However, any
3371	// non-pointer, non-interface field appearing in ForceSendFields will be
3372	// sent to the server regardless of whether the field is empty or not.
3373	// This may be used to include empty fields in Patch requests.
3374	ForceSendFields []string `json:"-"`
3375
3376	// NullFields is a list of field names (e.g. "BestGuessLabels") to
3377	// include in API requests with the JSON null value. By default, fields
3378	// with empty values are omitted from API requests. However, any field
3379	// with an empty value appearing in NullFields will be sent to the
3380	// server as null. It is an error if a field in this list has a
3381	// non-empty value. This may be used to include null fields in Patch
3382	// requests.
3383	NullFields []string `json:"-"`
3384}
3385
3386func (s *GoogleCloudVisionV1p1beta1WebDetection) MarshalJSON() ([]byte, error) {
3387	type NoMethod GoogleCloudVisionV1p1beta1WebDetection
3388	raw := NoMethod(*s)
3389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3390}
3391
3392// GoogleCloudVisionV1p1beta1WebDetectionWebEntity: Entity deduced from
3393// similar images on the Internet.
3394type GoogleCloudVisionV1p1beta1WebDetectionWebEntity struct {
3395	// Description: Canonical description of the entity, in English.
3396	Description string `json:"description,omitempty"`
3397
3398	// EntityId: Opaque entity ID.
3399	EntityId string `json:"entityId,omitempty"`
3400
3401	// Score: Overall relevancy score for the entity. Not normalized and not
3402	// comparable across different image queries.
3403	Score float64 `json:"score,omitempty"`
3404
3405	// ForceSendFields is a list of field names (e.g. "Description") to
3406	// unconditionally include in API requests. By default, fields with
3407	// empty or default values are omitted from API requests. However, any
3408	// non-pointer, non-interface field appearing in ForceSendFields will be
3409	// sent to the server regardless of whether the field is empty or not.
3410	// This may be used to include empty fields in Patch requests.
3411	ForceSendFields []string `json:"-"`
3412
3413	// NullFields is a list of field names (e.g. "Description") to include
3414	// in API requests with the JSON null value. By default, fields with
3415	// empty values are omitted from API requests. However, any field with
3416	// an empty value appearing in NullFields will be sent to the server as
3417	// null. It is an error if a field in this list has a non-empty value.
3418	// This may be used to include null fields in Patch requests.
3419	NullFields []string `json:"-"`
3420}
3421
3422func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
3423	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3424	raw := NoMethod(*s)
3425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3426}
3427
3428func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
3429	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3430	var s1 struct {
3431		Score gensupport.JSONFloat64 `json:"score"`
3432		*NoMethod
3433	}
3434	s1.NoMethod = (*NoMethod)(s)
3435	if err := json.Unmarshal(data, &s1); err != nil {
3436		return err
3437	}
3438	s.Score = float64(s1.Score)
3439	return nil
3440}
3441
3442// GoogleCloudVisionV1p1beta1WebDetectionWebImage: Metadata for online
3443// images.
3444type GoogleCloudVisionV1p1beta1WebDetectionWebImage struct {
3445	// Score: (Deprecated) Overall relevancy score for the image.
3446	Score float64 `json:"score,omitempty"`
3447
3448	// Url: The result image URL.
3449	Url string `json:"url,omitempty"`
3450
3451	// ForceSendFields is a list of field names (e.g. "Score") to
3452	// unconditionally include in API requests. By default, fields with
3453	// empty or default values are omitted from API requests. However, any
3454	// non-pointer, non-interface field appearing in ForceSendFields will be
3455	// sent to the server regardless of whether the field is empty or not.
3456	// This may be used to include empty fields in Patch requests.
3457	ForceSendFields []string `json:"-"`
3458
3459	// NullFields is a list of field names (e.g. "Score") to include in API
3460	// requests with the JSON null value. By default, fields with empty
3461	// values are omitted from API requests. However, any field with an
3462	// empty value appearing in NullFields will be sent to the server as
3463	// null. It is an error if a field in this list has a non-empty value.
3464	// This may be used to include null fields in Patch requests.
3465	NullFields []string `json:"-"`
3466}
3467
3468func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
3469	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
3470	raw := NoMethod(*s)
3471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3472}
3473
3474func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
3475	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
3476	var s1 struct {
3477		Score gensupport.JSONFloat64 `json:"score"`
3478		*NoMethod
3479	}
3480	s1.NoMethod = (*NoMethod)(s)
3481	if err := json.Unmarshal(data, &s1); err != nil {
3482		return err
3483	}
3484	s.Score = float64(s1.Score)
3485	return nil
3486}
3487
3488// GoogleCloudVisionV1p1beta1WebDetectionWebLabel: Label to provide
3489// extra metadata for the web detection.
3490type GoogleCloudVisionV1p1beta1WebDetectionWebLabel struct {
3491	// Label: Label for extra metadata.
3492	Label string `json:"label,omitempty"`
3493
3494	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
3495	// or "sr-Latn". For more information, see
3496	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3497	LanguageCode string `json:"languageCode,omitempty"`
3498
3499	// ForceSendFields is a list of field names (e.g. "Label") to
3500	// unconditionally include in API requests. By default, fields with
3501	// empty or default values are omitted from API requests. However, any
3502	// non-pointer, non-interface field appearing in ForceSendFields will be
3503	// sent to the server regardless of whether the field is empty or not.
3504	// This may be used to include empty fields in Patch requests.
3505	ForceSendFields []string `json:"-"`
3506
3507	// NullFields is a list of field names (e.g. "Label") to include in API
3508	// requests with the JSON null value. By default, fields with empty
3509	// values are omitted from API requests. However, any field with an
3510	// empty value appearing in NullFields will be sent to the server as
3511	// null. It is an error if a field in this list has a non-empty value.
3512	// This may be used to include null fields in Patch requests.
3513	NullFields []string `json:"-"`
3514}
3515
3516func (s *GoogleCloudVisionV1p1beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
3517	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebLabel
3518	raw := NoMethod(*s)
3519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3520}
3521
3522// GoogleCloudVisionV1p1beta1WebDetectionWebPage: Metadata for web
3523// pages.
3524type GoogleCloudVisionV1p1beta1WebDetectionWebPage struct {
3525	// FullMatchingImages: Fully matching images on the page. Can include
3526	// resized copies of the query image.
3527	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
3528
3529	// PageTitle: Title for the web page, may contain HTML markups.
3530	PageTitle string `json:"pageTitle,omitempty"`
3531
3532	// PartialMatchingImages: Partial matching images on the page. Those
3533	// images are similar enough to share some key-point features. For
3534	// example an original image will likely have partial matching for its
3535	// crops.
3536	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
3537
3538	// Score: (Deprecated) Overall relevancy score for the web page.
3539	Score float64 `json:"score,omitempty"`
3540
3541	// Url: The result web page URL.
3542	Url string `json:"url,omitempty"`
3543
3544	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
3545	// to unconditionally include in API requests. By default, fields with
3546	// empty or default values are omitted from API requests. However, any
3547	// non-pointer, non-interface field appearing in ForceSendFields will be
3548	// sent to the server regardless of whether the field is empty or not.
3549	// This may be used to include empty fields in Patch requests.
3550	ForceSendFields []string `json:"-"`
3551
3552	// NullFields is a list of field names (e.g. "FullMatchingImages") to
3553	// include in API requests with the JSON null value. By default, fields
3554	// with empty values are omitted from API requests. However, any field
3555	// with an empty value appearing in NullFields will be sent to the
3556	// server as null. It is an error if a field in this list has a
3557	// non-empty value. This may be used to include null fields in Patch
3558	// requests.
3559	NullFields []string `json:"-"`
3560}
3561
3562func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
3563	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
3564	raw := NoMethod(*s)
3565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3566}
3567
3568func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
3569	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
3570	var s1 struct {
3571		Score gensupport.JSONFloat64 `json:"score"`
3572		*NoMethod
3573	}
3574	s1.NoMethod = (*NoMethod)(s)
3575	if err := json.Unmarshal(data, &s1); err != nil {
3576		return err
3577	}
3578	s.Score = float64(s1.Score)
3579	return nil
3580}
3581
3582// GoogleCloudVisionV1p1beta1Word: A word representation.
3583type GoogleCloudVisionV1p1beta1Word struct {
3584	// BoundingBox: The bounding box for the word. The vertices are in the
3585	// order of top-left, top-right, bottom-right, bottom-left. When a
3586	// rotation of the bounding box is detected the rotation is represented
3587	// as around the top-left corner as defined when the text is read in the
3588	// 'natural' orientation. For example: * when the text is horizontal it
3589	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
3590	// around the top-left corner it becomes: 2----3 | | 1----0 and the
3591	// vertex order will still be (0, 1, 2, 3).
3592	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3593
3594	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
3595	Confidence float64 `json:"confidence,omitempty"`
3596
3597	// Property: Additional information detected for the word.
3598	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3599
3600	// Symbols: List of symbols in the word. The order of the symbols
3601	// follows the natural reading order.
3602	Symbols []*GoogleCloudVisionV1p1beta1Symbol `json:"symbols,omitempty"`
3603
3604	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3605	// unconditionally include in API requests. By default, fields with
3606	// empty or default values are omitted from API requests. However, any
3607	// non-pointer, non-interface field appearing in ForceSendFields will be
3608	// sent to the server regardless of whether the field is empty or not.
3609	// This may be used to include empty fields in Patch requests.
3610	ForceSendFields []string `json:"-"`
3611
3612	// NullFields is a list of field names (e.g. "BoundingBox") to include
3613	// in API requests with the JSON null value. By default, fields with
3614	// empty values are omitted from API requests. However, any field with
3615	// an empty value appearing in NullFields will be sent to the server as
3616	// null. It is an error if a field in this list has a non-empty value.
3617	// This may be used to include null fields in Patch requests.
3618	NullFields []string `json:"-"`
3619}
3620
3621func (s *GoogleCloudVisionV1p1beta1Word) MarshalJSON() ([]byte, error) {
3622	type NoMethod GoogleCloudVisionV1p1beta1Word
3623	raw := NoMethod(*s)
3624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3625}
3626
3627func (s *GoogleCloudVisionV1p1beta1Word) UnmarshalJSON(data []byte) error {
3628	type NoMethod GoogleCloudVisionV1p1beta1Word
3629	var s1 struct {
3630		Confidence gensupport.JSONFloat64 `json:"confidence"`
3631		*NoMethod
3632	}
3633	s1.NoMethod = (*NoMethod)(s)
3634	if err := json.Unmarshal(data, &s1); err != nil {
3635		return err
3636	}
3637	s.Confidence = float64(s1.Confidence)
3638	return nil
3639}
3640
3641// GoogleCloudVisionV1p2beta1AnnotateFileRequest: A request to annotate
3642// one single file, e.g. a PDF, TIFF or GIF file.
3643type GoogleCloudVisionV1p2beta1AnnotateFileRequest struct {
3644	// Features: Required. Requested features.
3645	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
3646
3647	// ImageContext: Additional context that may accompany the image(s) in
3648	// the file.
3649	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
3650
3651	// InputConfig: Required. Information about the input file.
3652	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
3653
3654	// Pages: Pages of the file to perform image annotation. Pages starts
3655	// from 1, we assume the first page of the file is page 1. At most 5
3656	// pages are supported per request. Pages can be negative. Page 1 means
3657	// the first page. Page 2 means the second page. Page -1 means the last
3658	// page. Page -2 means the second to the last page. If the file is GIF
3659	// instead of PDF or TIFF, page refers to GIF frames. If this field is
3660	// empty, by default the service performs image annotation for the first
3661	// 5 pages of the file.
3662	Pages []int64 `json:"pages,omitempty"`
3663
3664	// ForceSendFields is a list of field names (e.g. "Features") to
3665	// unconditionally include in API requests. By default, fields with
3666	// empty or default values are omitted from API requests. However, any
3667	// non-pointer, non-interface field appearing in ForceSendFields will be
3668	// sent to the server regardless of whether the field is empty or not.
3669	// This may be used to include empty fields in Patch requests.
3670	ForceSendFields []string `json:"-"`
3671
3672	// NullFields is a list of field names (e.g. "Features") to include in
3673	// API requests with the JSON null value. By default, fields with empty
3674	// values are omitted from API requests. However, any field with an
3675	// 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 *GoogleCloudVisionV1p2beta1AnnotateFileRequest) MarshalJSON() ([]byte, error) {
3682	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileRequest
3683	raw := NoMethod(*s)
3684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3685}
3686
3687// GoogleCloudVisionV1p2beta1AnnotateFileResponse: Response to a single
3688// file annotation request. A file may contain one or more images, which
3689// individually have their own responses.
3690type GoogleCloudVisionV1p2beta1AnnotateFileResponse struct {
3691	// Error: If set, represents the error message for the failed request.
3692	// The `responses` field will not be set in this case.
3693	Error *Status `json:"error,omitempty"`
3694
3695	// InputConfig: Information about the file for which this response is
3696	// generated.
3697	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
3698
3699	// Responses: Individual responses to images found within the file. This
3700	// field will be empty if the `error` field is set.
3701	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
3702
3703	// TotalPages: This field gives the total number of pages in the file.
3704	TotalPages int64 `json:"totalPages,omitempty"`
3705
3706	// ForceSendFields is a list of field names (e.g. "Error") to
3707	// unconditionally include in API requests. By default, fields with
3708	// empty or default values are omitted from API requests. However, any
3709	// non-pointer, non-interface field appearing in ForceSendFields will be
3710	// sent to the server regardless of whether the field is empty or not.
3711	// This may be used to include empty fields in Patch requests.
3712	ForceSendFields []string `json:"-"`
3713
3714	// NullFields is a list of field names (e.g. "Error") to include in API
3715	// requests with the JSON null value. By default, fields with empty
3716	// values are omitted from API requests. However, any field with an
3717	// empty value appearing in NullFields will be sent to the server as
3718	// null. It is an error if a field in this list has a non-empty value.
3719	// This may be used to include null fields in Patch requests.
3720	NullFields []string `json:"-"`
3721}
3722
3723func (s *GoogleCloudVisionV1p2beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
3724	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileResponse
3725	raw := NoMethod(*s)
3726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3727}
3728
3729// GoogleCloudVisionV1p2beta1AnnotateImageRequest: Request for
3730// performing Google Cloud Vision API tasks over a user-provided image,
3731// with user-requested features, and with context information.
3732type GoogleCloudVisionV1p2beta1AnnotateImageRequest struct {
3733	// Features: Requested features.
3734	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
3735
3736	// Image: The image to be processed.
3737	Image *GoogleCloudVisionV1p2beta1Image `json:"image,omitempty"`
3738
3739	// ImageContext: Additional context that may accompany the image.
3740	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
3741
3742	// ForceSendFields is a list of field names (e.g. "Features") to
3743	// unconditionally include in API requests. By default, fields with
3744	// empty or default values are omitted from API requests. However, any
3745	// non-pointer, non-interface field appearing in ForceSendFields will be
3746	// sent to the server regardless of whether the field is empty or not.
3747	// This may be used to include empty fields in Patch requests.
3748	ForceSendFields []string `json:"-"`
3749
3750	// NullFields is a list of field names (e.g. "Features") to include in
3751	// API requests with the JSON null value. By default, fields with empty
3752	// values are omitted from API requests. However, any field with an
3753	// empty value appearing in NullFields will be sent to the server as
3754	// null. It is an error if a field in this list has a non-empty value.
3755	// This may be used to include null fields in Patch requests.
3756	NullFields []string `json:"-"`
3757}
3758
3759func (s *GoogleCloudVisionV1p2beta1AnnotateImageRequest) MarshalJSON() ([]byte, error) {
3760	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageRequest
3761	raw := NoMethod(*s)
3762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3763}
3764
3765// GoogleCloudVisionV1p2beta1AnnotateImageResponse: Response to an image
3766// annotation request.
3767type GoogleCloudVisionV1p2beta1AnnotateImageResponse struct {
3768	// Context: If present, contextual information is needed to understand
3769	// where this image comes from.
3770	Context *GoogleCloudVisionV1p2beta1ImageAnnotationContext `json:"context,omitempty"`
3771
3772	// CropHintsAnnotation: If present, crop hints have completed
3773	// successfully.
3774	CropHintsAnnotation *GoogleCloudVisionV1p2beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
3775
3776	// Error: If set, represents the error message for the operation. Note
3777	// that filled-in image annotations are guaranteed to be correct, even
3778	// when `error` is set.
3779	Error *Status `json:"error,omitempty"`
3780
3781	// FaceAnnotations: If present, face detection has completed
3782	// successfully.
3783	FaceAnnotations []*GoogleCloudVisionV1p2beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
3784
3785	// FullTextAnnotation: If present, text (OCR) detection or document
3786	// (OCR) text detection has completed successfully. This annotation
3787	// provides the structural hierarchy for the OCR detected text.
3788	FullTextAnnotation *GoogleCloudVisionV1p2beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
3789
3790	// ImagePropertiesAnnotation: If present, image properties were
3791	// extracted successfully.
3792	ImagePropertiesAnnotation *GoogleCloudVisionV1p2beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
3793
3794	// LabelAnnotations: If present, label detection has completed
3795	// successfully.
3796	LabelAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
3797
3798	// LandmarkAnnotations: If present, landmark detection has completed
3799	// successfully.
3800	LandmarkAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
3801
3802	// LocalizedObjectAnnotations: If present, localized object detection
3803	// has completed successfully. This will be sorted descending by
3804	// confidence score.
3805	LocalizedObjectAnnotations []*GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
3806
3807	// LogoAnnotations: If present, logo detection has completed
3808	// successfully.
3809	LogoAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
3810
3811	// ProductSearchResults: If present, product search has completed
3812	// successfully.
3813	ProductSearchResults *GoogleCloudVisionV1p2beta1ProductSearchResults `json:"productSearchResults,omitempty"`
3814
3815	// SafeSearchAnnotation: If present, safe-search annotation has
3816	// completed successfully.
3817	SafeSearchAnnotation *GoogleCloudVisionV1p2beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
3818
3819	// TextAnnotations: If present, text (OCR) detection has completed
3820	// successfully.
3821	TextAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"textAnnotations,omitempty"`
3822
3823	// WebDetection: If present, web detection has completed successfully.
3824	WebDetection *GoogleCloudVisionV1p2beta1WebDetection `json:"webDetection,omitempty"`
3825
3826	// ForceSendFields is a list of field names (e.g. "Context") to
3827	// unconditionally include in API requests. By default, fields with
3828	// empty or default values are omitted from API requests. However, any
3829	// non-pointer, non-interface field appearing in ForceSendFields will be
3830	// sent to the server regardless of whether the field is empty or not.
3831	// This may be used to include empty fields in Patch requests.
3832	ForceSendFields []string `json:"-"`
3833
3834	// NullFields is a list of field names (e.g. "Context") to include in
3835	// API requests with the JSON null value. By default, fields with empty
3836	// values are omitted from API requests. However, any field with an
3837	// empty value appearing in NullFields will be sent to the server as
3838	// null. It is an error if a field in this list has a non-empty value.
3839	// This may be used to include null fields in Patch requests.
3840	NullFields []string `json:"-"`
3841}
3842
3843func (s *GoogleCloudVisionV1p2beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
3844	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageResponse
3845	raw := NoMethod(*s)
3846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3847}
3848
3849// GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest: An offline file
3850// annotation request.
3851type GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest struct {
3852	// Features: Required. Requested features.
3853	Features []*GoogleCloudVisionV1p2beta1Feature `json:"features,omitempty"`
3854
3855	// ImageContext: Additional context that may accompany the image(s) in
3856	// the file.
3857	ImageContext *GoogleCloudVisionV1p2beta1ImageContext `json:"imageContext,omitempty"`
3858
3859	// InputConfig: Required. Information about the input file.
3860	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
3861
3862	// OutputConfig: Required. The desired output location and metadata
3863	// (e.g. format).
3864	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
3865
3866	// ForceSendFields is a list of field names (e.g. "Features") to
3867	// unconditionally include in API requests. By default, fields with
3868	// empty or default values are omitted from API requests. However, any
3869	// non-pointer, non-interface field appearing in ForceSendFields will be
3870	// sent to the server regardless of whether the field is empty or not.
3871	// This may be used to include empty fields in Patch requests.
3872	ForceSendFields []string `json:"-"`
3873
3874	// NullFields is a list of field names (e.g. "Features") to include in
3875	// API requests with the JSON null value. By default, fields with empty
3876	// values are omitted from API requests. However, any field with an
3877	// empty value appearing in NullFields will be sent to the server as
3878	// null. It is an error if a field in this list has a non-empty value.
3879	// This may be used to include null fields in Patch requests.
3880	NullFields []string `json:"-"`
3881}
3882
3883func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest) MarshalJSON() ([]byte, error) {
3884	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest
3885	raw := NoMethod(*s)
3886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3887}
3888
3889// GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse: The response for
3890// a single offline file annotation request.
3891type GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse struct {
3892	// OutputConfig: The output location and metadata from
3893	// AsyncAnnotateFileRequest.
3894	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
3895
3896	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
3897	// unconditionally include in API requests. By default, fields with
3898	// empty or default values are omitted from API requests. However, any
3899	// non-pointer, non-interface field appearing in ForceSendFields will be
3900	// sent to the server regardless of whether the field is empty or not.
3901	// This may be used to include empty fields in Patch requests.
3902	ForceSendFields []string `json:"-"`
3903
3904	// NullFields is a list of field names (e.g. "OutputConfig") to include
3905	// in API requests with the JSON null value. By default, fields with
3906	// empty values are omitted from API requests. However, any field with
3907	// an empty value appearing in NullFields will be sent to the server as
3908	// null. It is an error if a field in this list has a non-empty value.
3909	// This may be used to include null fields in Patch requests.
3910	NullFields []string `json:"-"`
3911}
3912
3913func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
3914	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse
3915	raw := NoMethod(*s)
3916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3917}
3918
3919// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest: Multiple
3920// async file annotation requests are batched into a single service
3921// call.
3922type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest struct {
3923	// Parent: Optional. Target project and location to make a call. Format:
3924	// `projects/{project-id}/locations/{location-id}`. If no parent is
3925	// specified, a region will be chosen automatically. Supported
3926	// location-ids: `us`: USA country only, `asia`: East asia areas, like
3927	// Japan, Taiwan, `eu`: The European Union. Example:
3928	// `projects/project-A/locations/eu`.
3929	Parent string `json:"parent,omitempty"`
3930
3931	// Requests: Required. Individual async file annotation requests for
3932	// this batch.
3933	Requests []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest `json:"requests,omitempty"`
3934
3935	// ForceSendFields is a list of field names (e.g. "Parent") to
3936	// unconditionally include in API requests. By default, fields with
3937	// empty or default values are omitted from API requests. However, any
3938	// non-pointer, non-interface field appearing in ForceSendFields will be
3939	// sent to the server regardless of whether the field is empty or not.
3940	// This may be used to include empty fields in Patch requests.
3941	ForceSendFields []string `json:"-"`
3942
3943	// NullFields is a list of field names (e.g. "Parent") to include in API
3944	// requests with the JSON null value. By default, fields with empty
3945	// values are omitted from API requests. However, any field with an
3946	// empty value appearing in NullFields will be sent to the server as
3947	// null. It is an error if a field in this list has a non-empty value.
3948	// This may be used to include null fields in Patch requests.
3949	NullFields []string `json:"-"`
3950}
3951
3952func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
3953	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
3954	raw := NoMethod(*s)
3955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3956}
3957
3958// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse: Response
3959// to an async batch file annotation request.
3960type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse struct {
3961	// Responses: The list of file annotation responses, one for each
3962	// request in AsyncBatchAnnotateFilesRequest.
3963	Responses []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
3964
3965	// ForceSendFields is a list of field names (e.g. "Responses") to
3966	// unconditionally include in API requests. By default, fields with
3967	// empty or default values are omitted from API requests. However, any
3968	// non-pointer, non-interface field appearing in ForceSendFields will be
3969	// sent to the server regardless of whether the field is empty or not.
3970	// This may be used to include empty fields in Patch requests.
3971	ForceSendFields []string `json:"-"`
3972
3973	// NullFields is a list of field names (e.g. "Responses") to include in
3974	// API requests with the JSON null value. By default, fields with empty
3975	// values are omitted from API requests. However, any field with an
3976	// empty value appearing in NullFields will be sent to the server as
3977	// null. It is an error if a field in this list has a non-empty value.
3978	// This may be used to include null fields in Patch requests.
3979	NullFields []string `json:"-"`
3980}
3981
3982func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
3983	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse
3984	raw := NoMethod(*s)
3985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3986}
3987
3988// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest: Request
3989// for async image annotation for a list of images.
3990type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest struct {
3991	// OutputConfig: Required. The desired output location and metadata
3992	// (e.g. format).
3993	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
3994
3995	// Parent: Optional. Target project and location to make a call. Format:
3996	// `projects/{project-id}/locations/{location-id}`. If no parent is
3997	// specified, a region will be chosen automatically. Supported
3998	// location-ids: `us`: USA country only, `asia`: East asia areas, like
3999	// Japan, Taiwan, `eu`: The European Union. Example:
4000	// `projects/project-A/locations/eu`.
4001	Parent string `json:"parent,omitempty"`
4002
4003	// Requests: Required. Individual image annotation requests for this
4004	// batch.
4005	Requests []*GoogleCloudVisionV1p2beta1AnnotateImageRequest `json:"requests,omitempty"`
4006
4007	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4008	// unconditionally include in API requests. By default, fields with
4009	// empty or default values are omitted from API requests. However, any
4010	// non-pointer, non-interface field appearing in ForceSendFields will be
4011	// sent to the server regardless of whether the field is empty or not.
4012	// This may be used to include empty fields in Patch requests.
4013	ForceSendFields []string `json:"-"`
4014
4015	// NullFields is a list of field names (e.g. "OutputConfig") to include
4016	// in API requests with the JSON null value. By default, fields with
4017	// empty values are omitted from API requests. However, any field with
4018	// an empty value appearing in NullFields will be sent to the server as
4019	// null. It is an error if a field in this list has a non-empty value.
4020	// This may be used to include null fields in Patch requests.
4021	NullFields []string `json:"-"`
4022}
4023
4024func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
4025	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
4026	raw := NoMethod(*s)
4027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4028}
4029
4030// GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest: A list of
4031// requests to annotate files using the BatchAnnotateFiles API.
4032type GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest struct {
4033	// Parent: Optional. Target project and location to make a call. Format:
4034	// `projects/{project-id}/locations/{location-id}`. If no parent is
4035	// specified, a region will be chosen automatically. Supported
4036	// location-ids: `us`: USA country only, `asia`: East asia areas, like
4037	// Japan, Taiwan, `eu`: The European Union. Example:
4038	// `projects/project-A/locations/eu`.
4039	Parent string `json:"parent,omitempty"`
4040
4041	// Requests: Required. The list of file annotation requests. Right now
4042	// we support only one AnnotateFileRequest in BatchAnnotateFilesRequest.
4043	Requests []*GoogleCloudVisionV1p2beta1AnnotateFileRequest `json:"requests,omitempty"`
4044
4045	// ForceSendFields is a list of field names (e.g. "Parent") to
4046	// unconditionally include in API requests. By default, fields with
4047	// empty or default values are omitted from API requests. However, any
4048	// non-pointer, non-interface field appearing in ForceSendFields will be
4049	// sent to the server regardless of whether the field is empty or not.
4050	// This may be used to include empty fields in Patch requests.
4051	ForceSendFields []string `json:"-"`
4052
4053	// NullFields is a list of field names (e.g. "Parent") to include in API
4054	// requests with the JSON null value. By default, fields with empty
4055	// values are omitted from API requests. However, any field with an
4056	// empty value appearing in NullFields will be sent to the server as
4057	// null. It is an error if a field in this list has a non-empty value.
4058	// This may be used to include null fields in Patch requests.
4059	NullFields []string `json:"-"`
4060}
4061
4062func (s *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
4063	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
4064	raw := NoMethod(*s)
4065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4066}
4067
4068// GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse: A list of file
4069// annotation responses.
4070type GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse struct {
4071	// Responses: The list of file annotation responses, each response
4072	// corresponding to each AnnotateFileRequest in
4073	// BatchAnnotateFilesRequest.
4074	Responses []*GoogleCloudVisionV1p2beta1AnnotateFileResponse `json:"responses,omitempty"`
4075
4076	// ServerResponse contains the HTTP response code and headers from the
4077	// server.
4078	googleapi.ServerResponse `json:"-"`
4079
4080	// ForceSendFields is a list of field names (e.g. "Responses") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty or default values are omitted from API requests. However, any
4083	// non-pointer, non-interface field appearing in ForceSendFields will be
4084	// sent to the server regardless of whether the field is empty or not.
4085	// This may be used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "Responses") to include in
4089	// API requests with the JSON null value. By default, fields with empty
4090	// values are omitted from API requests. However, any field with an
4091	// empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4098	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest: Multiple image
4104// annotation requests are batched into a single service call.
4105type GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest struct {
4106	// Parent: Optional. Target project and location to make a call. Format:
4107	// `projects/{project-id}/locations/{location-id}`. If no parent is
4108	// specified, a region will be chosen automatically. Supported
4109	// location-ids: `us`: USA country only, `asia`: East asia areas, like
4110	// Japan, Taiwan, `eu`: The European Union. Example:
4111	// `projects/project-A/locations/eu`.
4112	Parent string `json:"parent,omitempty"`
4113
4114	// Requests: Required. Individual image annotation requests for this
4115	// batch.
4116	Requests []*GoogleCloudVisionV1p2beta1AnnotateImageRequest `json:"requests,omitempty"`
4117
4118	// ForceSendFields is a list of field names (e.g. "Parent") to
4119	// unconditionally include in API requests. By default, fields with
4120	// empty or default values are omitted from API requests. However, any
4121	// non-pointer, non-interface field appearing in ForceSendFields will be
4122	// sent to the server regardless of whether the field is empty or not.
4123	// This may be used to include empty fields in Patch requests.
4124	ForceSendFields []string `json:"-"`
4125
4126	// NullFields is a list of field names (e.g. "Parent") to include in API
4127	// requests with the JSON null value. By default, fields with empty
4128	// values are omitted from API requests. However, any field with an
4129	// empty value appearing in NullFields will be sent to the server as
4130	// null. It is an error if a field in this list has a non-empty value.
4131	// This may be used to include null fields in Patch requests.
4132	NullFields []string `json:"-"`
4133}
4134
4135func (s *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
4136	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
4137	raw := NoMethod(*s)
4138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4139}
4140
4141// GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse: Response to a
4142// batch image annotation request.
4143type GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse struct {
4144	// Responses: Individual responses to image annotation requests within
4145	// the batch.
4146	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
4147
4148	// ServerResponse contains the HTTP response code and headers from the
4149	// server.
4150	googleapi.ServerResponse `json:"-"`
4151
4152	// ForceSendFields is a list of field names (e.g. "Responses") to
4153	// unconditionally include in API requests. By default, fields with
4154	// empty or default values are omitted from API requests. However, any
4155	// non-pointer, non-interface field appearing in ForceSendFields will be
4156	// sent to the server regardless of whether the field is empty or not.
4157	// This may be used to include empty fields in Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "Responses") to include in
4161	// API requests with the JSON null value. By default, fields with empty
4162	// values are omitted from API requests. However, any field with an
4163	// empty value appearing in NullFields will be sent to the server as
4164	// null. It is an error if a field in this list has a non-empty value.
4165	// This may be used to include null fields in Patch requests.
4166	NullFields []string `json:"-"`
4167}
4168
4169func (s *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
4170	type NoMethod GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
4171	raw := NoMethod(*s)
4172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4173}
4174
4175// GoogleCloudVisionV1p2beta1Block: Logical element on the page.
4176type GoogleCloudVisionV1p2beta1Block struct {
4177	// BlockType: Detected block type (text, image etc) for this block.
4178	//
4179	// Possible values:
4180	//   "UNKNOWN" - Unknown block type.
4181	//   "TEXT" - Regular text block.
4182	//   "TABLE" - Table block.
4183	//   "PICTURE" - Image block.
4184	//   "RULER" - Horizontal/vertical line box.
4185	//   "BARCODE" - Barcode block.
4186	BlockType string `json:"blockType,omitempty"`
4187
4188	// BoundingBox: The bounding box for the block. The vertices are in the
4189	// order of top-left, top-right, bottom-right, bottom-left. When a
4190	// rotation of the bounding box is detected the rotation is represented
4191	// as around the top-left corner as defined when the text is read in the
4192	// 'natural' orientation. For example: * when the text is horizontal it
4193	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
4194	// around the top-left corner it becomes: 2----3 | | 1----0 and the
4195	// vertex order will still be (0, 1, 2, 3).
4196	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
4197
4198	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
4199	Confidence float64 `json:"confidence,omitempty"`
4200
4201	// Paragraphs: List of paragraphs in this block (if this blocks is of
4202	// type text).
4203	Paragraphs []*GoogleCloudVisionV1p2beta1Paragraph `json:"paragraphs,omitempty"`
4204
4205	// Property: Additional information detected for the block.
4206	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
4207
4208	// ForceSendFields is a list of field names (e.g. "BlockType") to
4209	// unconditionally include in API requests. By default, fields with
4210	// empty or default values are omitted from API requests. However, any
4211	// non-pointer, non-interface field appearing in ForceSendFields will be
4212	// sent to the server regardless of whether the field is empty or not.
4213	// This may be used to include empty fields in Patch requests.
4214	ForceSendFields []string `json:"-"`
4215
4216	// NullFields is a list of field names (e.g. "BlockType") to include in
4217	// API requests with the JSON null value. By default, fields with empty
4218	// values are omitted from API requests. However, any field with an
4219	// empty value appearing in NullFields will be sent to the server as
4220	// null. It is an error if a field in this list has a non-empty value.
4221	// This may be used to include null fields in Patch requests.
4222	NullFields []string `json:"-"`
4223}
4224
4225func (s *GoogleCloudVisionV1p2beta1Block) MarshalJSON() ([]byte, error) {
4226	type NoMethod GoogleCloudVisionV1p2beta1Block
4227	raw := NoMethod(*s)
4228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4229}
4230
4231func (s *GoogleCloudVisionV1p2beta1Block) UnmarshalJSON(data []byte) error {
4232	type NoMethod GoogleCloudVisionV1p2beta1Block
4233	var s1 struct {
4234		Confidence gensupport.JSONFloat64 `json:"confidence"`
4235		*NoMethod
4236	}
4237	s1.NoMethod = (*NoMethod)(s)
4238	if err := json.Unmarshal(data, &s1); err != nil {
4239		return err
4240	}
4241	s.Confidence = float64(s1.Confidence)
4242	return nil
4243}
4244
4245// GoogleCloudVisionV1p2beta1BoundingPoly: A bounding polygon for the
4246// detected image annotation.
4247type GoogleCloudVisionV1p2beta1BoundingPoly struct {
4248	// NormalizedVertices: The bounding polygon normalized vertices.
4249	NormalizedVertices []*GoogleCloudVisionV1p2beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
4250
4251	// Vertices: The bounding polygon vertices.
4252	Vertices []*GoogleCloudVisionV1p2beta1Vertex `json:"vertices,omitempty"`
4253
4254	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
4255	// to unconditionally include in API requests. By default, fields with
4256	// empty or default values are omitted from API requests. However, any
4257	// non-pointer, non-interface field appearing in ForceSendFields will be
4258	// sent to the server regardless of whether the field is empty or not.
4259	// This may be used to include empty fields in Patch requests.
4260	ForceSendFields []string `json:"-"`
4261
4262	// NullFields is a list of field names (e.g. "NormalizedVertices") to
4263	// include in API requests with the JSON null value. By default, fields
4264	// with empty values are omitted from API requests. However, any field
4265	// with an empty value appearing in NullFields will be sent to the
4266	// server as null. It is an error if a field in this list has a
4267	// non-empty value. This may be used to include null fields in Patch
4268	// requests.
4269	NullFields []string `json:"-"`
4270}
4271
4272func (s *GoogleCloudVisionV1p2beta1BoundingPoly) MarshalJSON() ([]byte, error) {
4273	type NoMethod GoogleCloudVisionV1p2beta1BoundingPoly
4274	raw := NoMethod(*s)
4275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4276}
4277
4278// GoogleCloudVisionV1p2beta1ColorInfo: Color information consists of
4279// RGB channels, score, and the fraction of the image that the color
4280// occupies in the image.
4281type GoogleCloudVisionV1p2beta1ColorInfo struct {
4282	// Color: RGB components of the color.
4283	Color *Color `json:"color,omitempty"`
4284
4285	// PixelFraction: The fraction of pixels the color occupies in the
4286	// image. Value in range [0, 1].
4287	PixelFraction float64 `json:"pixelFraction,omitempty"`
4288
4289	// Score: Image-specific score for this color. Value in range [0, 1].
4290	Score float64 `json:"score,omitempty"`
4291
4292	// ForceSendFields is a list of field names (e.g. "Color") to
4293	// unconditionally include in API requests. By default, fields with
4294	// empty or default values are omitted from API requests. However, any
4295	// non-pointer, non-interface field appearing in ForceSendFields will be
4296	// sent to the server regardless of whether the field is empty or not.
4297	// This may be used to include empty fields in Patch requests.
4298	ForceSendFields []string `json:"-"`
4299
4300	// NullFields is a list of field names (e.g. "Color") to include in API
4301	// requests with the JSON null value. By default, fields with empty
4302	// values are omitted from API requests. However, any field with an
4303	// empty value appearing in NullFields will be sent to the server as
4304	// null. It is an error if a field in this list has a non-empty value.
4305	// This may be used to include null fields in Patch requests.
4306	NullFields []string `json:"-"`
4307}
4308
4309func (s *GoogleCloudVisionV1p2beta1ColorInfo) MarshalJSON() ([]byte, error) {
4310	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4311	raw := NoMethod(*s)
4312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4313}
4314
4315func (s *GoogleCloudVisionV1p2beta1ColorInfo) UnmarshalJSON(data []byte) error {
4316	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4317	var s1 struct {
4318		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
4319		Score         gensupport.JSONFloat64 `json:"score"`
4320		*NoMethod
4321	}
4322	s1.NoMethod = (*NoMethod)(s)
4323	if err := json.Unmarshal(data, &s1); err != nil {
4324		return err
4325	}
4326	s.PixelFraction = float64(s1.PixelFraction)
4327	s.Score = float64(s1.Score)
4328	return nil
4329}
4330
4331// GoogleCloudVisionV1p2beta1CropHint: Single crop hint that is used to
4332// generate a new crop when serving an image.
4333type GoogleCloudVisionV1p2beta1CropHint struct {
4334	// BoundingPoly: The bounding polygon for the crop region. The
4335	// coordinates of the bounding box are in the original image's scale.
4336	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4337
4338	// Confidence: Confidence of this being a salient region. Range [0, 1].
4339	Confidence float64 `json:"confidence,omitempty"`
4340
4341	// ImportanceFraction: Fraction of importance of this salient region
4342	// with respect to the original image.
4343	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
4344
4345	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4346	// unconditionally include in API requests. By default, fields with
4347	// empty or default values are omitted from API requests. However, any
4348	// non-pointer, non-interface field appearing in ForceSendFields will be
4349	// sent to the server regardless of whether the field is empty or not.
4350	// This may be used to include empty fields in Patch requests.
4351	ForceSendFields []string `json:"-"`
4352
4353	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4354	// in API requests with the JSON null value. By default, fields with
4355	// empty values are omitted from API requests. However, any field with
4356	// an empty value appearing in NullFields will be sent to the server as
4357	// null. It is an error if a field in this list has a non-empty value.
4358	// This may be used to include null fields in Patch requests.
4359	NullFields []string `json:"-"`
4360}
4361
4362func (s *GoogleCloudVisionV1p2beta1CropHint) MarshalJSON() ([]byte, error) {
4363	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4364	raw := NoMethod(*s)
4365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4366}
4367
4368func (s *GoogleCloudVisionV1p2beta1CropHint) UnmarshalJSON(data []byte) error {
4369	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4370	var s1 struct {
4371		Confidence         gensupport.JSONFloat64 `json:"confidence"`
4372		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
4373		*NoMethod
4374	}
4375	s1.NoMethod = (*NoMethod)(s)
4376	if err := json.Unmarshal(data, &s1); err != nil {
4377		return err
4378	}
4379	s.Confidence = float64(s1.Confidence)
4380	s.ImportanceFraction = float64(s1.ImportanceFraction)
4381	return nil
4382}
4383
4384// GoogleCloudVisionV1p2beta1CropHintsAnnotation: Set of crop hints that
4385// are used to generate new crops when serving images.
4386type GoogleCloudVisionV1p2beta1CropHintsAnnotation struct {
4387	// CropHints: Crop hint results.
4388	CropHints []*GoogleCloudVisionV1p2beta1CropHint `json:"cropHints,omitempty"`
4389
4390	// ForceSendFields is a list of field names (e.g. "CropHints") to
4391	// unconditionally include in API requests. By default, fields with
4392	// empty or default values are omitted from API requests. However, any
4393	// non-pointer, non-interface field appearing in ForceSendFields will be
4394	// sent to the server regardless of whether the field is empty or not.
4395	// This may be used to include empty fields in Patch requests.
4396	ForceSendFields []string `json:"-"`
4397
4398	// NullFields is a list of field names (e.g. "CropHints") to include in
4399	// API requests with the JSON null value. By default, fields with empty
4400	// values are omitted from API requests. However, any field with an
4401	// empty value appearing in NullFields will be sent to the server as
4402	// null. It is an error if a field in this list has a non-empty value.
4403	// This may be used to include null fields in Patch requests.
4404	NullFields []string `json:"-"`
4405}
4406
4407func (s *GoogleCloudVisionV1p2beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
4408	type NoMethod GoogleCloudVisionV1p2beta1CropHintsAnnotation
4409	raw := NoMethod(*s)
4410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4411}
4412
4413// GoogleCloudVisionV1p2beta1CropHintsParams: Parameters for crop hints
4414// annotation request.
4415type GoogleCloudVisionV1p2beta1CropHintsParams struct {
4416	// AspectRatios: Aspect ratios in floats, representing the ratio of the
4417	// width to the height of the image. For example, if the desired aspect
4418	// ratio is 4/3, the corresponding float value should be 1.33333. If not
4419	// specified, the best possible crop is returned. The number of provided
4420	// aspect ratios is limited to a maximum of 16; any aspect ratios
4421	// provided after the 16th are ignored.
4422	AspectRatios []float64 `json:"aspectRatios,omitempty"`
4423
4424	// ForceSendFields is a list of field names (e.g. "AspectRatios") to
4425	// unconditionally include in API requests. By default, fields with
4426	// empty or default values are omitted from API requests. However, any
4427	// non-pointer, non-interface field appearing in ForceSendFields will be
4428	// sent to the server regardless of whether the field is empty or not.
4429	// This may be used to include empty fields in Patch requests.
4430	ForceSendFields []string `json:"-"`
4431
4432	// NullFields is a list of field names (e.g. "AspectRatios") to include
4433	// in API requests with the JSON null value. By default, fields with
4434	// empty values are omitted from API requests. However, any field with
4435	// an empty value appearing in NullFields will be sent to the server as
4436	// null. It is an error if a field in this list has a non-empty value.
4437	// This may be used to include null fields in Patch requests.
4438	NullFields []string `json:"-"`
4439}
4440
4441func (s *GoogleCloudVisionV1p2beta1CropHintsParams) MarshalJSON() ([]byte, error) {
4442	type NoMethod GoogleCloudVisionV1p2beta1CropHintsParams
4443	raw := NoMethod(*s)
4444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4445}
4446
4447// GoogleCloudVisionV1p2beta1DominantColorsAnnotation: Set of dominant
4448// colors and their corresponding scores.
4449type GoogleCloudVisionV1p2beta1DominantColorsAnnotation struct {
4450	// Colors: RGB color values with their score and pixel fraction.
4451	Colors []*GoogleCloudVisionV1p2beta1ColorInfo `json:"colors,omitempty"`
4452
4453	// ForceSendFields is a list of field names (e.g. "Colors") to
4454	// unconditionally include in API requests. By default, fields with
4455	// empty or default values are omitted from API requests. However, any
4456	// non-pointer, non-interface field appearing in ForceSendFields will be
4457	// sent to the server regardless of whether the field is empty or not.
4458	// This may be used to include empty fields in Patch requests.
4459	ForceSendFields []string `json:"-"`
4460
4461	// NullFields is a list of field names (e.g. "Colors") to include in API
4462	// requests with the JSON null value. By default, fields with empty
4463	// values are omitted from API requests. However, any field with an
4464	// empty value appearing in NullFields will be sent to the server as
4465	// null. It is an error if a field in this list has a non-empty value.
4466	// This may be used to include null fields in Patch requests.
4467	NullFields []string `json:"-"`
4468}
4469
4470func (s *GoogleCloudVisionV1p2beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
4471	type NoMethod GoogleCloudVisionV1p2beta1DominantColorsAnnotation
4472	raw := NoMethod(*s)
4473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4474}
4475
4476// GoogleCloudVisionV1p2beta1EntityAnnotation: Set of detected entity
4477// features.
4478type GoogleCloudVisionV1p2beta1EntityAnnotation struct {
4479	// BoundingPoly: Image region to which this entity belongs. Not produced
4480	// for `LABEL_DETECTION` features.
4481	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4482
4483	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
4484	// entity detection in an image. For example, for an image in which the
4485	// "Eiffel Tower" entity is detected, this field represents the
4486	// confidence that there is a tower in the query image. Range [0, 1].
4487	Confidence float64 `json:"confidence,omitempty"`
4488
4489	// Description: Entity textual description, expressed in its `locale`
4490	// language.
4491	Description string `json:"description,omitempty"`
4492
4493	// Locale: The language code for the locale in which the entity textual
4494	// `description` is expressed.
4495	Locale string `json:"locale,omitempty"`
4496
4497	// Locations: The location information for the detected entity. Multiple
4498	// `LocationInfo` elements can be present because one location may
4499	// indicate the location of the scene in the image, and another location
4500	// may indicate the location of the place where the image was taken.
4501	// Location information is usually present for landmarks.
4502	Locations []*GoogleCloudVisionV1p2beta1LocationInfo `json:"locations,omitempty"`
4503
4504	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
4505	// Graph Search API (https://developers.google.com/knowledge-graph/).
4506	Mid string `json:"mid,omitempty"`
4507
4508	// Properties: Some entities may have optional user-supplied `Property`
4509	// (name/value) fields, such a score or string that qualifies the
4510	// entity.
4511	Properties []*GoogleCloudVisionV1p2beta1Property `json:"properties,omitempty"`
4512
4513	// Score: Overall score of the result. Range [0, 1].
4514	Score float64 `json:"score,omitempty"`
4515
4516	// Topicality: The relevancy of the ICA (Image Content Annotation) label
4517	// to the image. For example, the relevancy of "tower" is likely higher
4518	// to an image containing the detected "Eiffel Tower" than to an image
4519	// containing a detected distant towering building, even though the
4520	// confidence that there is a tower in each image may be the same. Range
4521	// [0, 1].
4522	Topicality float64 `json:"topicality,omitempty"`
4523
4524	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4525	// unconditionally include in API requests. By default, fields with
4526	// empty or default values are omitted from API requests. However, any
4527	// non-pointer, non-interface field appearing in ForceSendFields will be
4528	// sent to the server regardless of whether the field is empty or not.
4529	// This may be used to include empty fields in Patch requests.
4530	ForceSendFields []string `json:"-"`
4531
4532	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4533	// in API requests with the JSON null value. By default, fields with
4534	// empty values are omitted from API requests. However, any field with
4535	// an empty value appearing in NullFields will be sent to the server as
4536	// null. It is an error if a field in this list has a non-empty value.
4537	// This may be used to include null fields in Patch requests.
4538	NullFields []string `json:"-"`
4539}
4540
4541func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
4542	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4543	raw := NoMethod(*s)
4544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4545}
4546
4547func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
4548	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4549	var s1 struct {
4550		Confidence gensupport.JSONFloat64 `json:"confidence"`
4551		Score      gensupport.JSONFloat64 `json:"score"`
4552		Topicality gensupport.JSONFloat64 `json:"topicality"`
4553		*NoMethod
4554	}
4555	s1.NoMethod = (*NoMethod)(s)
4556	if err := json.Unmarshal(data, &s1); err != nil {
4557		return err
4558	}
4559	s.Confidence = float64(s1.Confidence)
4560	s.Score = float64(s1.Score)
4561	s.Topicality = float64(s1.Topicality)
4562	return nil
4563}
4564
4565// GoogleCloudVisionV1p2beta1FaceAnnotation: A face annotation object
4566// contains the results of face detection.
4567type GoogleCloudVisionV1p2beta1FaceAnnotation struct {
4568	// AngerLikelihood: Anger likelihood.
4569	//
4570	// Possible values:
4571	//   "UNKNOWN" - Unknown likelihood.
4572	//   "VERY_UNLIKELY" - It is very unlikely.
4573	//   "UNLIKELY" - It is unlikely.
4574	//   "POSSIBLE" - It is possible.
4575	//   "LIKELY" - It is likely.
4576	//   "VERY_LIKELY" - It is very likely.
4577	AngerLikelihood string `json:"angerLikelihood,omitempty"`
4578
4579	// BlurredLikelihood: Blurred likelihood.
4580	//
4581	// Possible values:
4582	//   "UNKNOWN" - Unknown likelihood.
4583	//   "VERY_UNLIKELY" - It is very unlikely.
4584	//   "UNLIKELY" - It is unlikely.
4585	//   "POSSIBLE" - It is possible.
4586	//   "LIKELY" - It is likely.
4587	//   "VERY_LIKELY" - It is very likely.
4588	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
4589
4590	// BoundingPoly: The bounding polygon around the face. The coordinates
4591	// of the bounding box are in the original image's scale. The bounding
4592	// box is computed to "frame" the face in accordance with human
4593	// expectations. It is based on the landmarker results. Note that one or
4594	// more x and/or y coordinates may not be generated in the
4595	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
4596	// appears in the image to be annotated.
4597	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4598
4599	// DetectionConfidence: Detection confidence. Range [0, 1].
4600	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
4601
4602	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
4603	// than the `boundingPoly`, and encloses only the skin part of the face.
4604	// Typically, it is used to eliminate the face from any image analysis
4605	// that detects the "amount of skin" visible in an image. It is not
4606	// based on the landmarker results, only on the initial face detection,
4607	// hence the fd (face detection) prefix.
4608	FdBoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
4609
4610	// HeadwearLikelihood: Headwear likelihood.
4611	//
4612	// Possible values:
4613	//   "UNKNOWN" - Unknown likelihood.
4614	//   "VERY_UNLIKELY" - It is very unlikely.
4615	//   "UNLIKELY" - It is unlikely.
4616	//   "POSSIBLE" - It is possible.
4617	//   "LIKELY" - It is likely.
4618	//   "VERY_LIKELY" - It is very likely.
4619	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
4620
4621	// JoyLikelihood: Joy likelihood.
4622	//
4623	// Possible values:
4624	//   "UNKNOWN" - Unknown likelihood.
4625	//   "VERY_UNLIKELY" - It is very unlikely.
4626	//   "UNLIKELY" - It is unlikely.
4627	//   "POSSIBLE" - It is possible.
4628	//   "LIKELY" - It is likely.
4629	//   "VERY_LIKELY" - It is very likely.
4630	JoyLikelihood string `json:"joyLikelihood,omitempty"`
4631
4632	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
4633	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
4634
4635	// Landmarks: Detected face landmarks.
4636	Landmarks []*GoogleCloudVisionV1p2beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
4637
4638	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
4639	// that the face is pointing relative to the vertical plane
4640	// perpendicular to the image. Range [-180,180].
4641	PanAngle float64 `json:"panAngle,omitempty"`
4642
4643	// RollAngle: Roll angle, which indicates the amount of
4644	// clockwise/anti-clockwise rotation of the face relative to the image
4645	// vertical about the axis perpendicular to the face. Range [-180,180].
4646	RollAngle float64 `json:"rollAngle,omitempty"`
4647
4648	// SorrowLikelihood: Sorrow likelihood.
4649	//
4650	// Possible values:
4651	//   "UNKNOWN" - Unknown likelihood.
4652	//   "VERY_UNLIKELY" - It is very unlikely.
4653	//   "UNLIKELY" - It is unlikely.
4654	//   "POSSIBLE" - It is possible.
4655	//   "LIKELY" - It is likely.
4656	//   "VERY_LIKELY" - It is very likely.
4657	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
4658
4659	// SurpriseLikelihood: Surprise likelihood.
4660	//
4661	// Possible values:
4662	//   "UNKNOWN" - Unknown likelihood.
4663	//   "VERY_UNLIKELY" - It is very unlikely.
4664	//   "UNLIKELY" - It is unlikely.
4665	//   "POSSIBLE" - It is possible.
4666	//   "LIKELY" - It is likely.
4667	//   "VERY_LIKELY" - It is very likely.
4668	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
4669
4670	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
4671	// that the face is pointing relative to the image's horizontal plane.
4672	// Range [-180,180].
4673	TiltAngle float64 `json:"tiltAngle,omitempty"`
4674
4675	// UnderExposedLikelihood: Under-exposed likelihood.
4676	//
4677	// Possible values:
4678	//   "UNKNOWN" - Unknown likelihood.
4679	//   "VERY_UNLIKELY" - It is very unlikely.
4680	//   "UNLIKELY" - It is unlikely.
4681	//   "POSSIBLE" - It is possible.
4682	//   "LIKELY" - It is likely.
4683	//   "VERY_LIKELY" - It is very likely.
4684	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
4685
4686	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
4687	// unconditionally include in API requests. By default, fields with
4688	// empty or default values are omitted from API requests. However, any
4689	// non-pointer, non-interface field appearing in ForceSendFields will be
4690	// sent to the server regardless of whether the field is empty or not.
4691	// This may be used to include empty fields in Patch requests.
4692	ForceSendFields []string `json:"-"`
4693
4694	// NullFields is a list of field names (e.g. "AngerLikelihood") to
4695	// include in API requests with the JSON null value. By default, fields
4696	// with empty values are omitted from API requests. However, any field
4697	// with an empty value appearing in NullFields will be sent to the
4698	// server as null. It is an error if a field in this list has a
4699	// non-empty value. This may be used to include null fields in Patch
4700	// requests.
4701	NullFields []string `json:"-"`
4702}
4703
4704func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
4705	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
4706	raw := NoMethod(*s)
4707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4708}
4709
4710func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
4711	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
4712	var s1 struct {
4713		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
4714		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
4715		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
4716		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
4717		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
4718		*NoMethod
4719	}
4720	s1.NoMethod = (*NoMethod)(s)
4721	if err := json.Unmarshal(data, &s1); err != nil {
4722		return err
4723	}
4724	s.DetectionConfidence = float64(s1.DetectionConfidence)
4725	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
4726	s.PanAngle = float64(s1.PanAngle)
4727	s.RollAngle = float64(s1.RollAngle)
4728	s.TiltAngle = float64(s1.TiltAngle)
4729	return nil
4730}
4731
4732// GoogleCloudVisionV1p2beta1FaceAnnotationLandmark: A face-specific
4733// landmark (for example, a face feature).
4734type GoogleCloudVisionV1p2beta1FaceAnnotationLandmark struct {
4735	// Position: Face landmark position.
4736	Position *GoogleCloudVisionV1p2beta1Position `json:"position,omitempty"`
4737
4738	// Type: Face landmark type.
4739	//
4740	// Possible values:
4741	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
4742	// filled.
4743	//   "LEFT_EYE" - Left eye.
4744	//   "RIGHT_EYE" - Right eye.
4745	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
4746	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
4747	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
4748	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
4749	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
4750	//   "NOSE_TIP" - Nose tip.
4751	//   "UPPER_LIP" - Upper lip.
4752	//   "LOWER_LIP" - Lower lip.
4753	//   "MOUTH_LEFT" - Mouth left.
4754	//   "MOUTH_RIGHT" - Mouth right.
4755	//   "MOUTH_CENTER" - Mouth center.
4756	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
4757	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
4758	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
4759	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
4760	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
4761	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
4762	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
4763	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
4764	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
4765	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
4766	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
4767	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
4768	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
4769	//   "LEFT_EAR_TRAGION" - Left ear tragion.
4770	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
4771	//   "LEFT_EYE_PUPIL" - Left eye pupil.
4772	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
4773	//   "FOREHEAD_GLABELLA" - Forehead glabella.
4774	//   "CHIN_GNATHION" - Chin gnathion.
4775	//   "CHIN_LEFT_GONION" - Chin left gonion.
4776	//   "CHIN_RIGHT_GONION" - Chin right gonion.
4777	//   "LEFT_CHEEK_CENTER" - Left cheek center.
4778	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
4779	Type string `json:"type,omitempty"`
4780
4781	// ForceSendFields is a list of field names (e.g. "Position") to
4782	// unconditionally include in API requests. By default, fields with
4783	// empty or default values are omitted from API requests. However, any
4784	// non-pointer, non-interface field appearing in ForceSendFields will be
4785	// sent to the server regardless of whether the field is empty or not.
4786	// This may be used to include empty fields in Patch requests.
4787	ForceSendFields []string `json:"-"`
4788
4789	// NullFields is a list of field names (e.g. "Position") to include in
4790	// API requests with the JSON null value. By default, fields with empty
4791	// values are omitted from API requests. However, any field with an
4792	// empty value appearing in NullFields will be sent to the server as
4793	// null. It is an error if a field in this list has a non-empty value.
4794	// This may be used to include null fields in Patch requests.
4795	NullFields []string `json:"-"`
4796}
4797
4798func (s *GoogleCloudVisionV1p2beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
4799	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotationLandmark
4800	raw := NoMethod(*s)
4801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4802}
4803
4804// GoogleCloudVisionV1p2beta1Feature: The type of Google Cloud Vision
4805// API detection to perform, and the maximum number of results to return
4806// for that type. Multiple `Feature` objects can be specified in the
4807// `features` list.
4808type GoogleCloudVisionV1p2beta1Feature struct {
4809	// MaxResults: Maximum number of results of this type. Does not apply to
4810	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
4811	MaxResults int64 `json:"maxResults,omitempty"`
4812
4813	// Model: Model to use for the feature. Supported values:
4814	// "builtin/stable" (the default if unset) and "builtin/latest".
4815	Model string `json:"model,omitempty"`
4816
4817	// Type: The feature type.
4818	//
4819	// Possible values:
4820	//   "TYPE_UNSPECIFIED" - Unspecified feature type.
4821	//   "FACE_DETECTION" - Run face detection.
4822	//   "LANDMARK_DETECTION" - Run landmark detection.
4823	//   "LOGO_DETECTION" - Run logo detection.
4824	//   "LABEL_DETECTION" - Run label detection.
4825	//   "TEXT_DETECTION" - Run text detection / optical character
4826	// recognition (OCR). Text detection is optimized for areas of text
4827	// within a larger image; if the image is a document, use
4828	// `DOCUMENT_TEXT_DETECTION` instead.
4829	//   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
4830	// precedence when both `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION`
4831	// are present.
4832	//   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
4833	// unsafe or undesirable content.
4834	//   "IMAGE_PROPERTIES" - Compute a set of image properties, such as the
4835	// image's dominant colors.
4836	//   "CROP_HINTS" - Run crop hints.
4837	//   "WEB_DETECTION" - Run web detection.
4838	//   "PRODUCT_SEARCH" - Run Product Search.
4839	//   "OBJECT_LOCALIZATION" - Run localizer for object detection.
4840	Type string `json:"type,omitempty"`
4841
4842	// ForceSendFields is a list of field names (e.g. "MaxResults") to
4843	// unconditionally include in API requests. By default, fields with
4844	// empty or default values are omitted from API requests. However, any
4845	// non-pointer, non-interface field appearing in ForceSendFields will be
4846	// sent to the server regardless of whether the field is empty or not.
4847	// This may be used to include empty fields in Patch requests.
4848	ForceSendFields []string `json:"-"`
4849
4850	// NullFields is a list of field names (e.g. "MaxResults") to include in
4851	// API requests with the JSON null value. By default, fields with empty
4852	// values are omitted from API requests. However, any field with an
4853	// empty value appearing in NullFields will be sent to the server as
4854	// null. It is an error if a field in this list has a non-empty value.
4855	// This may be used to include null fields in Patch requests.
4856	NullFields []string `json:"-"`
4857}
4858
4859func (s *GoogleCloudVisionV1p2beta1Feature) MarshalJSON() ([]byte, error) {
4860	type NoMethod GoogleCloudVisionV1p2beta1Feature
4861	raw := NoMethod(*s)
4862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4863}
4864
4865// GoogleCloudVisionV1p2beta1GcsDestination: The Google Cloud Storage
4866// location where the output will be written to.
4867type GoogleCloudVisionV1p2beta1GcsDestination struct {
4868	// Uri: Google Cloud Storage URI prefix where the results will be
4869	// stored. Results will be in JSON format and preceded by its
4870	// corresponding input URI prefix. This field can either represent a gcs
4871	// file prefix or gcs directory. In either case, the uri should be
4872	// unique because in order to get all of the output files, you will need
4873	// to do a wildcard gcs search on the uri prefix you provide. Examples:
4874	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
4875	// will be created in gs://bucket-name/here/ and the names of the output
4876	// files will begin with "filenameprefix". * Directory Prefix:
4877	// gs://bucket-name/some/location/ The output files will be created in
4878	// gs://bucket-name/some/location/ and the names of the output files
4879	// could be anything because there was no filename prefix specified. If
4880	// multiple outputs, each response is still AnnotateFileResponse, each
4881	// of which contains some subset of the full list of
4882	// AnnotateImageResponse. Multiple outputs can happen if, for example,
4883	// the output JSON is too large and overflows into multiple sharded
4884	// files.
4885	Uri string `json:"uri,omitempty"`
4886
4887	// ForceSendFields is a list of field names (e.g. "Uri") to
4888	// unconditionally include in API requests. By default, fields with
4889	// empty or default values are omitted from API requests. However, any
4890	// non-pointer, non-interface field appearing in ForceSendFields will be
4891	// sent to the server regardless of whether the field is empty or not.
4892	// This may be used to include empty fields in Patch requests.
4893	ForceSendFields []string `json:"-"`
4894
4895	// NullFields is a list of field names (e.g. "Uri") to include in API
4896	// requests with the JSON null value. By default, fields with empty
4897	// values are omitted from API requests. However, any field with an
4898	// empty value appearing in NullFields will be sent to the server as
4899	// null. It is an error if a field in this list has a non-empty value.
4900	// This may be used to include null fields in Patch requests.
4901	NullFields []string `json:"-"`
4902}
4903
4904func (s *GoogleCloudVisionV1p2beta1GcsDestination) MarshalJSON() ([]byte, error) {
4905	type NoMethod GoogleCloudVisionV1p2beta1GcsDestination
4906	raw := NoMethod(*s)
4907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4908}
4909
4910// GoogleCloudVisionV1p2beta1GcsSource: The Google Cloud Storage
4911// location where the input will be read from.
4912type GoogleCloudVisionV1p2beta1GcsSource struct {
4913	// Uri: Google Cloud Storage URI for the input file. This must only be a
4914	// Google Cloud Storage object. Wildcards are not currently supported.
4915	Uri string `json:"uri,omitempty"`
4916
4917	// ForceSendFields is a list of field names (e.g. "Uri") to
4918	// unconditionally include in API requests. By default, fields with
4919	// empty or default values are omitted from API requests. However, any
4920	// non-pointer, non-interface field appearing in ForceSendFields will be
4921	// sent to the server regardless of whether the field is empty or not.
4922	// This may be used to include empty fields in Patch requests.
4923	ForceSendFields []string `json:"-"`
4924
4925	// NullFields is a list of field names (e.g. "Uri") to include in API
4926	// requests with the JSON null value. By default, fields with empty
4927	// values are omitted from API requests. However, any field with an
4928	// empty value appearing in NullFields will be sent to the server as
4929	// null. It is an error if a field in this list has a non-empty value.
4930	// This may be used to include null fields in Patch requests.
4931	NullFields []string `json:"-"`
4932}
4933
4934func (s *GoogleCloudVisionV1p2beta1GcsSource) MarshalJSON() ([]byte, error) {
4935	type NoMethod GoogleCloudVisionV1p2beta1GcsSource
4936	raw := NoMethod(*s)
4937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4938}
4939
4940// GoogleCloudVisionV1p2beta1Image: Client image to perform Google Cloud
4941// Vision API tasks over.
4942type GoogleCloudVisionV1p2beta1Image struct {
4943	// Content: Image content, represented as a stream of bytes. Note: As
4944	// with all `bytes` fields, protobuffers use a pure binary
4945	// representation, whereas JSON representations use base64. Currently,
4946	// this field only works for BatchAnnotateImages requests. It does not
4947	// work for AsyncBatchAnnotateImages requests.
4948	Content string `json:"content,omitempty"`
4949
4950	// Source: Google Cloud Storage image location, or publicly-accessible
4951	// image URL. If both `content` and `source` are provided for an image,
4952	// `content` takes precedence and is used to perform the image
4953	// annotation request.
4954	Source *GoogleCloudVisionV1p2beta1ImageSource `json:"source,omitempty"`
4955
4956	// ForceSendFields is a list of field names (e.g. "Content") to
4957	// unconditionally include in API requests. By default, fields with
4958	// empty or default values are omitted from API requests. However, any
4959	// non-pointer, non-interface field appearing in ForceSendFields will be
4960	// sent to the server regardless of whether the field is empty or not.
4961	// This may be used to include empty fields in Patch requests.
4962	ForceSendFields []string `json:"-"`
4963
4964	// NullFields is a list of field names (e.g. "Content") to include in
4965	// API requests with the JSON null value. By default, fields with empty
4966	// values are omitted from API requests. However, any field with an
4967	// empty value appearing in NullFields will be sent to the server as
4968	// null. It is an error if a field in this list has a non-empty value.
4969	// This may be used to include null fields in Patch requests.
4970	NullFields []string `json:"-"`
4971}
4972
4973func (s *GoogleCloudVisionV1p2beta1Image) MarshalJSON() ([]byte, error) {
4974	type NoMethod GoogleCloudVisionV1p2beta1Image
4975	raw := NoMethod(*s)
4976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4977}
4978
4979// GoogleCloudVisionV1p2beta1ImageAnnotationContext: If an image was
4980// produced from a file (e.g. a PDF), this message gives information
4981// about the source of that image.
4982type GoogleCloudVisionV1p2beta1ImageAnnotationContext struct {
4983	// PageNumber: If the file was a PDF or TIFF, this field gives the page
4984	// number within the file used to produce the image.
4985	PageNumber int64 `json:"pageNumber,omitempty"`
4986
4987	// Uri: The URI of the file used to produce the image.
4988	Uri string `json:"uri,omitempty"`
4989
4990	// ForceSendFields is a list of field names (e.g. "PageNumber") to
4991	// unconditionally include in API requests. By default, fields with
4992	// empty or default values are omitted from API requests. However, any
4993	// non-pointer, non-interface field appearing in ForceSendFields will be
4994	// sent to the server regardless of whether the field is empty or not.
4995	// This may be used to include empty fields in Patch requests.
4996	ForceSendFields []string `json:"-"`
4997
4998	// NullFields is a list of field names (e.g. "PageNumber") to include in
4999	// API requests with the JSON null value. By default, fields with empty
5000	// values are omitted from API requests. However, any field with an
5001	// empty value appearing in NullFields will be sent to the server as
5002	// null. It is an error if a field in this list has a non-empty value.
5003	// This may be used to include null fields in Patch requests.
5004	NullFields []string `json:"-"`
5005}
5006
5007func (s *GoogleCloudVisionV1p2beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
5008	type NoMethod GoogleCloudVisionV1p2beta1ImageAnnotationContext
5009	raw := NoMethod(*s)
5010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5011}
5012
5013// GoogleCloudVisionV1p2beta1ImageContext: Image context and/or
5014// feature-specific parameters.
5015type GoogleCloudVisionV1p2beta1ImageContext struct {
5016	// CropHintsParams: Parameters for crop hints annotation request.
5017	CropHintsParams *GoogleCloudVisionV1p2beta1CropHintsParams `json:"cropHintsParams,omitempty"`
5018
5019	// LanguageHints: List of languages to use for TEXT_DETECTION. In most
5020	// cases, an empty value yields the best results since it enables
5021	// automatic language detection. For languages based on the Latin
5022	// alphabet, setting `language_hints` is not needed. In rare cases, when
5023	// the language of the text in the image is known, setting a hint will
5024	// help get better results (although it will be a significant hindrance
5025	// if the hint is wrong). Text detection returns an error if one or more
5026	// of the specified languages is not one of the supported languages
5027	// (https://cloud.google.com/vision/docs/languages).
5028	LanguageHints []string `json:"languageHints,omitempty"`
5029
5030	// LatLongRect: Not used.
5031	LatLongRect *GoogleCloudVisionV1p2beta1LatLongRect `json:"latLongRect,omitempty"`
5032
5033	// ProductSearchParams: Parameters for product search.
5034	ProductSearchParams *GoogleCloudVisionV1p2beta1ProductSearchParams `json:"productSearchParams,omitempty"`
5035
5036	// TextDetectionParams: Parameters for text detection and document text
5037	// detection.
5038	TextDetectionParams *GoogleCloudVisionV1p2beta1TextDetectionParams `json:"textDetectionParams,omitempty"`
5039
5040	// WebDetectionParams: Parameters for web detection.
5041	WebDetectionParams *GoogleCloudVisionV1p2beta1WebDetectionParams `json:"webDetectionParams,omitempty"`
5042
5043	// ForceSendFields is a list of field names (e.g. "CropHintsParams") to
5044	// unconditionally include in API requests. By default, fields with
5045	// empty or default values are omitted from API requests. However, any
5046	// non-pointer, non-interface field appearing in ForceSendFields will be
5047	// sent to the server regardless of whether the field is empty or not.
5048	// This may be used to include empty fields in Patch requests.
5049	ForceSendFields []string `json:"-"`
5050
5051	// NullFields is a list of field names (e.g. "CropHintsParams") to
5052	// include in API requests with the JSON null value. By default, fields
5053	// with empty values are omitted from API requests. However, any field
5054	// with an empty value appearing in NullFields will be sent to the
5055	// server as null. It is an error if a field in this list has a
5056	// non-empty value. This may be used to include null fields in Patch
5057	// requests.
5058	NullFields []string `json:"-"`
5059}
5060
5061func (s *GoogleCloudVisionV1p2beta1ImageContext) MarshalJSON() ([]byte, error) {
5062	type NoMethod GoogleCloudVisionV1p2beta1ImageContext
5063	raw := NoMethod(*s)
5064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5065}
5066
5067// GoogleCloudVisionV1p2beta1ImageProperties: Stores image properties,
5068// such as dominant colors.
5069type GoogleCloudVisionV1p2beta1ImageProperties struct {
5070	// DominantColors: If present, dominant colors completed successfully.
5071	DominantColors *GoogleCloudVisionV1p2beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
5072
5073	// ForceSendFields is a list of field names (e.g. "DominantColors") to
5074	// unconditionally include in API requests. By default, fields with
5075	// empty or default values are omitted from API requests. However, any
5076	// non-pointer, non-interface field appearing in ForceSendFields will be
5077	// sent to the server regardless of whether the field is empty or not.
5078	// This may be used to include empty fields in Patch requests.
5079	ForceSendFields []string `json:"-"`
5080
5081	// NullFields is a list of field names (e.g. "DominantColors") to
5082	// include in API requests with the JSON null value. By default, fields
5083	// with empty values are omitted from API requests. However, any field
5084	// with an empty value appearing in NullFields will be sent to the
5085	// server as null. It is an error if a field in this list has a
5086	// non-empty value. This may be used to include null fields in Patch
5087	// requests.
5088	NullFields []string `json:"-"`
5089}
5090
5091func (s *GoogleCloudVisionV1p2beta1ImageProperties) MarshalJSON() ([]byte, error) {
5092	type NoMethod GoogleCloudVisionV1p2beta1ImageProperties
5093	raw := NoMethod(*s)
5094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5095}
5096
5097// GoogleCloudVisionV1p2beta1ImageSource: External image source (Google
5098// Cloud Storage or web URL image location).
5099type GoogleCloudVisionV1p2beta1ImageSource struct {
5100	// GcsImageUri: **Use `image_uri` instead.** The Google Cloud Storage
5101	// URI of the form `gs://bucket_name/object_name`. Object versioning is
5102	// not supported. See Google Cloud Storage Request URIs
5103	// (https://cloud.google.com/storage/docs/reference-uris) for more info.
5104	GcsImageUri string `json:"gcsImageUri,omitempty"`
5105
5106	// ImageUri: The URI of the source image. Can be either: 1. A Google
5107	// Cloud Storage URI of the form `gs://bucket_name/object_name`. Object
5108	// versioning is not supported. See Google Cloud Storage Request URIs
5109	// (https://cloud.google.com/storage/docs/reference-uris) for more info.
5110	// 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images
5111	// from HTTP/HTTPS URLs, Google cannot guarantee that the request will
5112	// be completed. Your request may fail if the specified host denies the
5113	// request (e.g. due to request throttling or DOS prevention), or if
5114	// Google throttles requests to the site for abuse prevention. You
5115	// should not depend on externally-hosted images for production
5116	// applications. When both `gcs_image_uri` and `image_uri` are
5117	// specified, `image_uri` takes precedence.
5118	ImageUri string `json:"imageUri,omitempty"`
5119
5120	// ForceSendFields is a list of field names (e.g. "GcsImageUri") to
5121	// unconditionally include in API requests. By default, fields with
5122	// empty or default values are omitted from API requests. However, any
5123	// non-pointer, non-interface field appearing in ForceSendFields will be
5124	// sent to the server regardless of whether the field is empty or not.
5125	// This may be used to include empty fields in Patch requests.
5126	ForceSendFields []string `json:"-"`
5127
5128	// NullFields is a list of field names (e.g. "GcsImageUri") to include
5129	// in API requests with the JSON null value. By default, fields with
5130	// empty values are omitted from API requests. However, any field with
5131	// an empty value appearing in NullFields will be sent to the server as
5132	// null. It is an error if a field in this list has a non-empty value.
5133	// This may be used to include null fields in Patch requests.
5134	NullFields []string `json:"-"`
5135}
5136
5137func (s *GoogleCloudVisionV1p2beta1ImageSource) MarshalJSON() ([]byte, error) {
5138	type NoMethod GoogleCloudVisionV1p2beta1ImageSource
5139	raw := NoMethod(*s)
5140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5141}
5142
5143// GoogleCloudVisionV1p2beta1InputConfig: The desired input location and
5144// metadata.
5145type GoogleCloudVisionV1p2beta1InputConfig struct {
5146	// Content: File content, represented as a stream of bytes. Note: As
5147	// with all `bytes` fields, protobuffers use a pure binary
5148	// representation, whereas JSON representations use base64. Currently,
5149	// this field only works for BatchAnnotateFiles requests. It does not
5150	// work for AsyncBatchAnnotateFiles requests.
5151	Content string `json:"content,omitempty"`
5152
5153	// GcsSource: The Google Cloud Storage location to read the input from.
5154	GcsSource *GoogleCloudVisionV1p2beta1GcsSource `json:"gcsSource,omitempty"`
5155
5156	// MimeType: The type of the file. Currently only "application/pdf",
5157	// "image/tiff" and "image/gif" are supported. Wildcards are not
5158	// supported.
5159	MimeType string `json:"mimeType,omitempty"`
5160
5161	// ForceSendFields is a list of field names (e.g. "Content") to
5162	// unconditionally include in API requests. By default, fields with
5163	// empty or default values are omitted from API requests. However, any
5164	// non-pointer, non-interface field appearing in ForceSendFields will be
5165	// sent to the server regardless of whether the field is empty or not.
5166	// This may be used to include empty fields in Patch requests.
5167	ForceSendFields []string `json:"-"`
5168
5169	// NullFields is a list of field names (e.g. "Content") to include in
5170	// API requests with the JSON null value. By default, fields with empty
5171	// values are omitted from API requests. However, any field with an
5172	// empty value appearing in NullFields will be sent to the server as
5173	// null. It is an error if a field in this list has a non-empty value.
5174	// This may be used to include null fields in Patch requests.
5175	NullFields []string `json:"-"`
5176}
5177
5178func (s *GoogleCloudVisionV1p2beta1InputConfig) MarshalJSON() ([]byte, error) {
5179	type NoMethod GoogleCloudVisionV1p2beta1InputConfig
5180	raw := NoMethod(*s)
5181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5182}
5183
5184// GoogleCloudVisionV1p2beta1LatLongRect: Rectangle determined by min
5185// and max `LatLng` pairs.
5186type GoogleCloudVisionV1p2beta1LatLongRect struct {
5187	// MaxLatLng: Max lat/long pair.
5188	MaxLatLng *LatLng `json:"maxLatLng,omitempty"`
5189
5190	// MinLatLng: Min lat/long pair.
5191	MinLatLng *LatLng `json:"minLatLng,omitempty"`
5192
5193	// ForceSendFields is a list of field names (e.g. "MaxLatLng") to
5194	// unconditionally include in API requests. By default, fields with
5195	// empty or default values are omitted from API requests. However, any
5196	// non-pointer, non-interface field appearing in ForceSendFields will be
5197	// sent to the server regardless of whether the field is empty or not.
5198	// This may be used to include empty fields in Patch requests.
5199	ForceSendFields []string `json:"-"`
5200
5201	// NullFields is a list of field names (e.g. "MaxLatLng") to include in
5202	// API requests with the JSON null value. By default, fields with empty
5203	// values are omitted from API requests. However, any field with an
5204	// empty value appearing in NullFields will be sent to the server as
5205	// null. It is an error if a field in this list has a non-empty value.
5206	// This may be used to include null fields in Patch requests.
5207	NullFields []string `json:"-"`
5208}
5209
5210func (s *GoogleCloudVisionV1p2beta1LatLongRect) MarshalJSON() ([]byte, error) {
5211	type NoMethod GoogleCloudVisionV1p2beta1LatLongRect
5212	raw := NoMethod(*s)
5213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5214}
5215
5216// GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation: Set of detected
5217// objects with bounding boxes.
5218type GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation struct {
5219	// BoundingPoly: Image region to which this object belongs. This must be
5220	// populated.
5221	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5222
5223	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5224	// For more information, see
5225	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5226	LanguageCode string `json:"languageCode,omitempty"`
5227
5228	// Mid: Object ID that should align with EntityAnnotation mid.
5229	Mid string `json:"mid,omitempty"`
5230
5231	// Name: Object name, expressed in its `language_code` language.
5232	Name string `json:"name,omitempty"`
5233
5234	// Score: Score of the result. Range [0, 1].
5235	Score float64 `json:"score,omitempty"`
5236
5237	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5238	// unconditionally include in API requests. By default, fields with
5239	// empty or default values are omitted from API requests. However, any
5240	// non-pointer, non-interface field appearing in ForceSendFields will be
5241	// sent to the server regardless of whether the field is empty or not.
5242	// This may be used to include empty fields in Patch requests.
5243	ForceSendFields []string `json:"-"`
5244
5245	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5246	// in API requests with the JSON null value. By default, fields with
5247	// empty values are omitted from API requests. However, any field with
5248	// an empty value appearing in NullFields will be sent to the server as
5249	// null. It is an error if a field in this list has a non-empty value.
5250	// This may be used to include null fields in Patch requests.
5251	NullFields []string `json:"-"`
5252}
5253
5254func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
5255	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5256	raw := NoMethod(*s)
5257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5258}
5259
5260func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
5261	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5262	var s1 struct {
5263		Score gensupport.JSONFloat64 `json:"score"`
5264		*NoMethod
5265	}
5266	s1.NoMethod = (*NoMethod)(s)
5267	if err := json.Unmarshal(data, &s1); err != nil {
5268		return err
5269	}
5270	s.Score = float64(s1.Score)
5271	return nil
5272}
5273
5274// GoogleCloudVisionV1p2beta1LocationInfo: Detected entity location
5275// information.
5276type GoogleCloudVisionV1p2beta1LocationInfo struct {
5277	// LatLng: lat/long location coordinates.
5278	LatLng *LatLng `json:"latLng,omitempty"`
5279
5280	// ForceSendFields is a list of field names (e.g. "LatLng") to
5281	// unconditionally include in API requests. By default, fields with
5282	// empty or default values are omitted from API requests. However, any
5283	// non-pointer, non-interface field appearing in ForceSendFields will be
5284	// sent to the server regardless of whether the field is empty or not.
5285	// This may be used to include empty fields in Patch requests.
5286	ForceSendFields []string `json:"-"`
5287
5288	// NullFields is a list of field names (e.g. "LatLng") to include in API
5289	// requests with the JSON null value. By default, fields with empty
5290	// values are omitted from API requests. However, any field with an
5291	// empty value appearing in NullFields will be sent to the server as
5292	// null. It is an error if a field in this list has a non-empty value.
5293	// This may be used to include null fields in Patch requests.
5294	NullFields []string `json:"-"`
5295}
5296
5297func (s *GoogleCloudVisionV1p2beta1LocationInfo) MarshalJSON() ([]byte, error) {
5298	type NoMethod GoogleCloudVisionV1p2beta1LocationInfo
5299	raw := NoMethod(*s)
5300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5301}
5302
5303// GoogleCloudVisionV1p2beta1NormalizedVertex: A vertex represents a 2D
5304// point in the image. NOTE: the normalized vertex coordinates are
5305// relative to the original image and range from 0 to 1.
5306type GoogleCloudVisionV1p2beta1NormalizedVertex struct {
5307	// X: X coordinate.
5308	X float64 `json:"x,omitempty"`
5309
5310	// Y: Y coordinate.
5311	Y float64 `json:"y,omitempty"`
5312
5313	// ForceSendFields is a list of field names (e.g. "X") to
5314	// unconditionally include in API requests. By default, fields with
5315	// empty or default values are omitted from API requests. However, any
5316	// non-pointer, non-interface field appearing in ForceSendFields will be
5317	// sent to the server regardless of whether the field is empty or not.
5318	// This may be used to include empty fields in Patch requests.
5319	ForceSendFields []string `json:"-"`
5320
5321	// NullFields is a list of field names (e.g. "X") to include in API
5322	// requests with the JSON null value. By default, fields with empty
5323	// values are omitted from API requests. However, any field with an
5324	// empty value appearing in NullFields will be sent to the server as
5325	// null. It is an error if a field in this list has a non-empty value.
5326	// This may be used to include null fields in Patch requests.
5327	NullFields []string `json:"-"`
5328}
5329
5330func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
5331	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5332	raw := NoMethod(*s)
5333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5334}
5335
5336func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
5337	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5338	var s1 struct {
5339		X gensupport.JSONFloat64 `json:"x"`
5340		Y gensupport.JSONFloat64 `json:"y"`
5341		*NoMethod
5342	}
5343	s1.NoMethod = (*NoMethod)(s)
5344	if err := json.Unmarshal(data, &s1); err != nil {
5345		return err
5346	}
5347	s.X = float64(s1.X)
5348	s.Y = float64(s1.Y)
5349	return nil
5350}
5351
5352// GoogleCloudVisionV1p2beta1OperationMetadata: Contains metadata for
5353// the BatchAnnotateImages operation.
5354type GoogleCloudVisionV1p2beta1OperationMetadata struct {
5355	// CreateTime: The time when the batch request was received.
5356	CreateTime string `json:"createTime,omitempty"`
5357
5358	// State: Current state of the batch operation.
5359	//
5360	// Possible values:
5361	//   "STATE_UNSPECIFIED" - Invalid.
5362	//   "CREATED" - Request is received.
5363	//   "RUNNING" - Request is actively being processed.
5364	//   "DONE" - The batch processing is done.
5365	//   "CANCELLED" - The batch processing was cancelled.
5366	State string `json:"state,omitempty"`
5367
5368	// UpdateTime: The time when the operation result was last updated.
5369	UpdateTime string `json:"updateTime,omitempty"`
5370
5371	// ForceSendFields is a list of field names (e.g. "CreateTime") to
5372	// unconditionally include in API requests. By default, fields with
5373	// empty or default values are omitted from API requests. However, any
5374	// non-pointer, non-interface field appearing in ForceSendFields will be
5375	// sent to the server regardless of whether the field is empty or not.
5376	// This may be used to include empty fields in Patch requests.
5377	ForceSendFields []string `json:"-"`
5378
5379	// NullFields is a list of field names (e.g. "CreateTime") to include in
5380	// API requests with the JSON null value. By default, fields with empty
5381	// values are omitted from API requests. However, any field with an
5382	// empty value appearing in NullFields will be sent to the server as
5383	// null. It is an error if a field in this list has a non-empty value.
5384	// This may be used to include null fields in Patch requests.
5385	NullFields []string `json:"-"`
5386}
5387
5388func (s *GoogleCloudVisionV1p2beta1OperationMetadata) MarshalJSON() ([]byte, error) {
5389	type NoMethod GoogleCloudVisionV1p2beta1OperationMetadata
5390	raw := NoMethod(*s)
5391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5392}
5393
5394// GoogleCloudVisionV1p2beta1OutputConfig: The desired output location
5395// and metadata.
5396type GoogleCloudVisionV1p2beta1OutputConfig struct {
5397	// BatchSize: The max number of response protos to put into each output
5398	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
5399	// not specified, the default value is 20. For example, for one pdf file
5400	// with 100 pages, 100 response protos will be generated. If
5401	// `batch_size` = 20, then 5 json files each containing 20 response
5402	// protos will be written under the prefix `gcs_destination`.`uri`.
5403	// Currently, batch_size only applies to GcsDestination, with potential
5404	// future support for other output configurations.
5405	BatchSize int64 `json:"batchSize,omitempty"`
5406
5407	// GcsDestination: The Google Cloud Storage location to write the
5408	// output(s) to.
5409	GcsDestination *GoogleCloudVisionV1p2beta1GcsDestination `json:"gcsDestination,omitempty"`
5410
5411	// ForceSendFields is a list of field names (e.g. "BatchSize") to
5412	// unconditionally include in API requests. By default, fields with
5413	// empty or default values are omitted from API requests. However, any
5414	// non-pointer, non-interface field appearing in ForceSendFields will be
5415	// sent to the server regardless of whether the field is empty or not.
5416	// This may be used to include empty fields in Patch requests.
5417	ForceSendFields []string `json:"-"`
5418
5419	// NullFields is a list of field names (e.g. "BatchSize") to include in
5420	// API requests with the JSON null value. By default, fields with empty
5421	// values are omitted from API requests. However, any field with an
5422	// empty value appearing in NullFields will be sent to the server as
5423	// null. It is an error if a field in this list has a non-empty value.
5424	// This may be used to include null fields in Patch requests.
5425	NullFields []string `json:"-"`
5426}
5427
5428func (s *GoogleCloudVisionV1p2beta1OutputConfig) MarshalJSON() ([]byte, error) {
5429	type NoMethod GoogleCloudVisionV1p2beta1OutputConfig
5430	raw := NoMethod(*s)
5431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5432}
5433
5434// GoogleCloudVisionV1p2beta1Page: Detected page from OCR.
5435type GoogleCloudVisionV1p2beta1Page struct {
5436	// Blocks: List of blocks of text, images etc on this page.
5437	Blocks []*GoogleCloudVisionV1p2beta1Block `json:"blocks,omitempty"`
5438
5439	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
5440	Confidence float64 `json:"confidence,omitempty"`
5441
5442	// Height: Page height. For PDFs the unit is points. For images
5443	// (including TIFFs) the unit is pixels.
5444	Height int64 `json:"height,omitempty"`
5445
5446	// Property: Additional information detected on the page.
5447	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5448
5449	// Width: Page width. For PDFs the unit is points. For images (including
5450	// TIFFs) the unit is pixels.
5451	Width int64 `json:"width,omitempty"`
5452
5453	// ForceSendFields is a list of field names (e.g. "Blocks") to
5454	// unconditionally include in API requests. By default, fields with
5455	// empty or default values are omitted from API requests. However, any
5456	// non-pointer, non-interface field appearing in ForceSendFields will be
5457	// sent to the server regardless of whether the field is empty or not.
5458	// This may be used to include empty fields in Patch requests.
5459	ForceSendFields []string `json:"-"`
5460
5461	// NullFields is a list of field names (e.g. "Blocks") to include in API
5462	// requests with the JSON null value. By default, fields with empty
5463	// values are omitted from API requests. However, any field with an
5464	// empty value appearing in NullFields will be sent to the server as
5465	// null. It is an error if a field in this list has a non-empty value.
5466	// This may be used to include null fields in Patch requests.
5467	NullFields []string `json:"-"`
5468}
5469
5470func (s *GoogleCloudVisionV1p2beta1Page) MarshalJSON() ([]byte, error) {
5471	type NoMethod GoogleCloudVisionV1p2beta1Page
5472	raw := NoMethod(*s)
5473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5474}
5475
5476func (s *GoogleCloudVisionV1p2beta1Page) UnmarshalJSON(data []byte) error {
5477	type NoMethod GoogleCloudVisionV1p2beta1Page
5478	var s1 struct {
5479		Confidence gensupport.JSONFloat64 `json:"confidence"`
5480		*NoMethod
5481	}
5482	s1.NoMethod = (*NoMethod)(s)
5483	if err := json.Unmarshal(data, &s1); err != nil {
5484		return err
5485	}
5486	s.Confidence = float64(s1.Confidence)
5487	return nil
5488}
5489
5490// GoogleCloudVisionV1p2beta1Paragraph: Structural unit of text
5491// representing a number of words in certain order.
5492type GoogleCloudVisionV1p2beta1Paragraph struct {
5493	// BoundingBox: The bounding box for the paragraph. The vertices are in
5494	// the order of top-left, top-right, bottom-right, bottom-left. When a
5495	// rotation of the bounding box is detected the rotation is represented
5496	// as around the top-left corner as defined when the text is read in the
5497	// 'natural' orientation. For example: * when the text is horizontal it
5498	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
5499	// around the top-left corner it becomes: 2----3 | | 1----0 and the
5500	// vertex order will still be (0, 1, 2, 3).
5501	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5502
5503	// Confidence: Confidence of the OCR results for the paragraph. Range
5504	// [0, 1].
5505	Confidence float64 `json:"confidence,omitempty"`
5506
5507	// Property: Additional information detected for the paragraph.
5508	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5509
5510	// Words: List of all words in this paragraph.
5511	Words []*GoogleCloudVisionV1p2beta1Word `json:"words,omitempty"`
5512
5513	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5514	// unconditionally include in API requests. By default, fields with
5515	// empty or default values are omitted from API requests. However, any
5516	// non-pointer, non-interface field appearing in ForceSendFields will be
5517	// sent to the server regardless of whether the field is empty or not.
5518	// This may be used to include empty fields in Patch requests.
5519	ForceSendFields []string `json:"-"`
5520
5521	// NullFields is a list of field names (e.g. "BoundingBox") to include
5522	// in API requests with the JSON null value. By default, fields with
5523	// empty values are omitted from API requests. However, any field with
5524	// an empty value appearing in NullFields will be sent to the server as
5525	// null. It is an error if a field in this list has a non-empty value.
5526	// This may be used to include null fields in Patch requests.
5527	NullFields []string `json:"-"`
5528}
5529
5530func (s *GoogleCloudVisionV1p2beta1Paragraph) MarshalJSON() ([]byte, error) {
5531	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5532	raw := NoMethod(*s)
5533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5534}
5535
5536func (s *GoogleCloudVisionV1p2beta1Paragraph) UnmarshalJSON(data []byte) error {
5537	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5538	var s1 struct {
5539		Confidence gensupport.JSONFloat64 `json:"confidence"`
5540		*NoMethod
5541	}
5542	s1.NoMethod = (*NoMethod)(s)
5543	if err := json.Unmarshal(data, &s1); err != nil {
5544		return err
5545	}
5546	s.Confidence = float64(s1.Confidence)
5547	return nil
5548}
5549
5550// GoogleCloudVisionV1p2beta1Position: A 3D position in the image, used
5551// primarily for Face detection landmarks. A valid Position must have
5552// both x and y coordinates. The position coordinates are in the same
5553// scale as the original image.
5554type GoogleCloudVisionV1p2beta1Position struct {
5555	// X: X coordinate.
5556	X float64 `json:"x,omitempty"`
5557
5558	// Y: Y coordinate.
5559	Y float64 `json:"y,omitempty"`
5560
5561	// Z: Z coordinate (or depth).
5562	Z float64 `json:"z,omitempty"`
5563
5564	// ForceSendFields is a list of field names (e.g. "X") to
5565	// unconditionally include in API requests. By default, fields with
5566	// empty or default values are omitted from API requests. However, any
5567	// non-pointer, non-interface field appearing in ForceSendFields will be
5568	// sent to the server regardless of whether the field is empty or not.
5569	// This may be used to include empty fields in Patch requests.
5570	ForceSendFields []string `json:"-"`
5571
5572	// NullFields is a list of field names (e.g. "X") to include in API
5573	// requests with the JSON null value. By default, fields with empty
5574	// values are omitted from API requests. However, any field with an
5575	// empty value appearing in NullFields will be sent to the server as
5576	// null. It is an error if a field in this list has a non-empty value.
5577	// This may be used to include null fields in Patch requests.
5578	NullFields []string `json:"-"`
5579}
5580
5581func (s *GoogleCloudVisionV1p2beta1Position) MarshalJSON() ([]byte, error) {
5582	type NoMethod GoogleCloudVisionV1p2beta1Position
5583	raw := NoMethod(*s)
5584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5585}
5586
5587func (s *GoogleCloudVisionV1p2beta1Position) UnmarshalJSON(data []byte) error {
5588	type NoMethod GoogleCloudVisionV1p2beta1Position
5589	var s1 struct {
5590		X gensupport.JSONFloat64 `json:"x"`
5591		Y gensupport.JSONFloat64 `json:"y"`
5592		Z gensupport.JSONFloat64 `json:"z"`
5593		*NoMethod
5594	}
5595	s1.NoMethod = (*NoMethod)(s)
5596	if err := json.Unmarshal(data, &s1); err != nil {
5597		return err
5598	}
5599	s.X = float64(s1.X)
5600	s.Y = float64(s1.Y)
5601	s.Z = float64(s1.Z)
5602	return nil
5603}
5604
5605// GoogleCloudVisionV1p2beta1Product: A Product contains
5606// ReferenceImages.
5607type GoogleCloudVisionV1p2beta1Product struct {
5608	// Description: User-provided metadata to be stored with this product.
5609	// Must be at most 4096 characters long.
5610	Description string `json:"description,omitempty"`
5611
5612	// DisplayName: The user-provided name for this Product. Must not be
5613	// empty. Must be at most 4096 characters long.
5614	DisplayName string `json:"displayName,omitempty"`
5615
5616	// Name: The resource name of the product. Format is:
5617	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
5618	// field is ignored when creating a product.
5619	Name string `json:"name,omitempty"`
5620
5621	// ProductCategory: Immutable. The category for the product identified
5622	// by the reference image. This should be one of "homegoods-v2",
5623	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
5624	// legacy categories "homegoods", "apparel", and "toys" are still
5625	// supported, but these should not be used for new products.
5626	ProductCategory string `json:"productCategory,omitempty"`
5627
5628	// ProductLabels: Key-value pairs that can be attached to a product. At
5629	// query time, constraints can be specified based on the product_labels.
5630	// Note that integer values can be provided as strings, e.g. "1199".
5631	// Only strings with integer values can match a range-based restriction
5632	// which is to be supported soon. Multiple values can be assigned to the
5633	// same key. One product may have up to 500 product_labels. Notice that
5634	// the total number of distinct product_labels over all products in one
5635	// ProductSet cannot exceed 1M, otherwise the product search pipeline
5636	// will refuse to work for that ProductSet.
5637	ProductLabels []*GoogleCloudVisionV1p2beta1ProductKeyValue `json:"productLabels,omitempty"`
5638
5639	// ForceSendFields is a list of field names (e.g. "Description") to
5640	// unconditionally include in API requests. By default, fields with
5641	// empty or default values are omitted from API requests. However, any
5642	// non-pointer, non-interface field appearing in ForceSendFields will be
5643	// sent to the server regardless of whether the field is empty or not.
5644	// This may be used to include empty fields in Patch requests.
5645	ForceSendFields []string `json:"-"`
5646
5647	// NullFields is a list of field names (e.g. "Description") to include
5648	// in API requests with the JSON null value. By default, fields with
5649	// empty values are omitted from API requests. However, any field with
5650	// an empty value appearing in NullFields will be sent to the server as
5651	// null. It is an error if a field in this list has a non-empty value.
5652	// This may be used to include null fields in Patch requests.
5653	NullFields []string `json:"-"`
5654}
5655
5656func (s *GoogleCloudVisionV1p2beta1Product) MarshalJSON() ([]byte, error) {
5657	type NoMethod GoogleCloudVisionV1p2beta1Product
5658	raw := NoMethod(*s)
5659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5660}
5661
5662// GoogleCloudVisionV1p2beta1ProductKeyValue: A product label
5663// represented as a key-value pair.
5664type GoogleCloudVisionV1p2beta1ProductKeyValue struct {
5665	// Key: The key of the label attached to the product. Cannot be empty
5666	// and cannot exceed 128 bytes.
5667	Key string `json:"key,omitempty"`
5668
5669	// Value: The value of the label attached to the product. Cannot be
5670	// empty and cannot exceed 128 bytes.
5671	Value string `json:"value,omitempty"`
5672
5673	// ForceSendFields is a list of field names (e.g. "Key") to
5674	// unconditionally include in API requests. By default, fields with
5675	// empty or default values are omitted from API requests. However, any
5676	// non-pointer, non-interface field appearing in ForceSendFields will be
5677	// sent to the server regardless of whether the field is empty or not.
5678	// This may be used to include empty fields in Patch requests.
5679	ForceSendFields []string `json:"-"`
5680
5681	// NullFields is a list of field names (e.g. "Key") to include in API
5682	// requests with the JSON null value. By default, fields with empty
5683	// values are omitted from API requests. However, any field with an
5684	// empty value appearing in NullFields will be sent to the server as
5685	// null. It is an error if a field in this list has a non-empty value.
5686	// This may be used to include null fields in Patch requests.
5687	NullFields []string `json:"-"`
5688}
5689
5690func (s *GoogleCloudVisionV1p2beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
5691	type NoMethod GoogleCloudVisionV1p2beta1ProductKeyValue
5692	raw := NoMethod(*s)
5693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5694}
5695
5696// GoogleCloudVisionV1p2beta1ProductSearchParams: Parameters for a
5697// product search request.
5698type GoogleCloudVisionV1p2beta1ProductSearchParams struct {
5699	// BoundingPoly: The bounding polygon around the area of interest in the
5700	// image. If it is not specified, system discretion will be applied.
5701	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5702
5703	// Filter: The filtering expression. This can be used to restrict search
5704	// results based on Product labels. We currently support an AND of OR of
5705	// key-value expressions, where each expression within an OR must have
5706	// the same key. An '=' should be used to connect the key and value. For
5707	// example, "(color = red OR color = blue) AND brand = Google" is
5708	// acceptable, but "(color = red OR brand = Google)" is not acceptable.
5709	// "color: red" is not acceptable because it uses a ':' instead of an
5710	// '='.
5711	Filter string `json:"filter,omitempty"`
5712
5713	// ProductCategories: The list of product categories to search in.
5714	// Currently, we only consider the first category, and either
5715	// "homegoods-v2", "apparel-v2", "toys-v2", "packagedgoods-v1", or
5716	// "general-v1" should be specified. The legacy categories "homegoods",
5717	// "apparel", and "toys" are still supported but will be deprecated. For
5718	// new products, please use "homegoods-v2", "apparel-v2", or "toys-v2"
5719	// for better product search accuracy. It is recommended to migrate
5720	// existing products to these categories as well.
5721	ProductCategories []string `json:"productCategories,omitempty"`
5722
5723	// ProductSet: The resource name of a ProductSet to be searched for
5724	// similar images. Format is:
5725	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
5726	ProductSet string `json:"productSet,omitempty"`
5727
5728	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5729	// unconditionally include in API requests. By default, fields with
5730	// empty or default values are omitted from API requests. However, any
5731	// non-pointer, non-interface field appearing in ForceSendFields will be
5732	// sent to the server regardless of whether the field is empty or not.
5733	// This may be used to include empty fields in Patch requests.
5734	ForceSendFields []string `json:"-"`
5735
5736	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5737	// in API requests with the JSON null value. By default, fields with
5738	// empty values are omitted from API requests. However, any field with
5739	// an empty value appearing in NullFields will be sent to the server as
5740	// null. It is an error if a field in this list has a non-empty value.
5741	// This may be used to include null fields in Patch requests.
5742	NullFields []string `json:"-"`
5743}
5744
5745func (s *GoogleCloudVisionV1p2beta1ProductSearchParams) MarshalJSON() ([]byte, error) {
5746	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchParams
5747	raw := NoMethod(*s)
5748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5749}
5750
5751// GoogleCloudVisionV1p2beta1ProductSearchResults: Results for a product
5752// search request.
5753type GoogleCloudVisionV1p2beta1ProductSearchResults struct {
5754	// IndexTime: Timestamp of the index which provided these results.
5755	// Products added to the product set and products removed from the
5756	// product set after this time are not reflected in the current results.
5757	IndexTime string `json:"indexTime,omitempty"`
5758
5759	// ProductGroupedResults: List of results grouped by products detected
5760	// in the query image. Each entry corresponds to one bounding polygon in
5761	// the query image, and contains the matching products specific to that
5762	// region. There may be duplicate product matches in the union of all
5763	// the per-product results.
5764	ProductGroupedResults []*GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
5765
5766	// Results: List of results, one for each product match.
5767	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
5768
5769	// ForceSendFields is a list of field names (e.g. "IndexTime") to
5770	// unconditionally include in API requests. By default, fields with
5771	// empty or default values are omitted from API requests. However, any
5772	// non-pointer, non-interface field appearing in ForceSendFields will be
5773	// sent to the server regardless of whether the field is empty or not.
5774	// This may be used to include empty fields in Patch requests.
5775	ForceSendFields []string `json:"-"`
5776
5777	// NullFields is a list of field names (e.g. "IndexTime") to include in
5778	// API requests with the JSON null value. By default, fields with empty
5779	// values are omitted from API requests. However, any field with an
5780	// empty value appearing in NullFields will be sent to the server as
5781	// null. It is an error if a field in this list has a non-empty value.
5782	// This may be used to include null fields in Patch requests.
5783	NullFields []string `json:"-"`
5784}
5785
5786func (s *GoogleCloudVisionV1p2beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
5787	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResults
5788	raw := NoMethod(*s)
5789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5790}
5791
5792// GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult:
5793// Information about the products similar to a single product in a query
5794// image.
5795type GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult struct {
5796	// BoundingPoly: The bounding polygon around the product detected in the
5797	// query image.
5798	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5799
5800	// ObjectAnnotations: List of generic predictions for the object in the
5801	// bounding box.
5802	ObjectAnnotations []*GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
5803
5804	// Results: List of results, one for each product match.
5805	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
5806
5807	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5808	// unconditionally include in API requests. By default, fields with
5809	// empty or default values are omitted from API requests. However, any
5810	// non-pointer, non-interface field appearing in ForceSendFields will be
5811	// sent to the server regardless of whether the field is empty or not.
5812	// This may be used to include empty fields in Patch requests.
5813	ForceSendFields []string `json:"-"`
5814
5815	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5816	// in API requests with the JSON null value. By default, fields with
5817	// empty values are omitted from API requests. However, any field with
5818	// an empty value appearing in NullFields will be sent to the server as
5819	// null. It is an error if a field in this list has a non-empty value.
5820	// This may be used to include null fields in Patch requests.
5821	NullFields []string `json:"-"`
5822}
5823
5824func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
5825	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult
5826	raw := NoMethod(*s)
5827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5828}
5829
5830// GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation:
5831// Prediction for what the object in the bounding box is.
5832type GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation struct {
5833	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5834	// For more information, see
5835	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5836	LanguageCode string `json:"languageCode,omitempty"`
5837
5838	// Mid: Object ID that should align with EntityAnnotation mid.
5839	Mid string `json:"mid,omitempty"`
5840
5841	// Name: Object name, expressed in its `language_code` language.
5842	Name string `json:"name,omitempty"`
5843
5844	// Score: Score of the result. Range [0, 1].
5845	Score float64 `json:"score,omitempty"`
5846
5847	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
5848	// unconditionally include in API requests. By default, fields with
5849	// empty or default values are omitted from API requests. However, any
5850	// non-pointer, non-interface field appearing in ForceSendFields will be
5851	// sent to the server regardless of whether the field is empty or not.
5852	// This may be used to include empty fields in Patch requests.
5853	ForceSendFields []string `json:"-"`
5854
5855	// NullFields is a list of field names (e.g. "LanguageCode") to include
5856	// in API requests with the JSON null value. By default, fields with
5857	// empty values are omitted from API requests. However, any field with
5858	// an empty value appearing in NullFields will be sent to the server as
5859	// null. It is an error if a field in this list has a non-empty value.
5860	// This may be used to include null fields in Patch requests.
5861	NullFields []string `json:"-"`
5862}
5863
5864func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
5865	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
5866	raw := NoMethod(*s)
5867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5868}
5869
5870func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
5871	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
5872	var s1 struct {
5873		Score gensupport.JSONFloat64 `json:"score"`
5874		*NoMethod
5875	}
5876	s1.NoMethod = (*NoMethod)(s)
5877	if err := json.Unmarshal(data, &s1); err != nil {
5878		return err
5879	}
5880	s.Score = float64(s1.Score)
5881	return nil
5882}
5883
5884// GoogleCloudVisionV1p2beta1ProductSearchResultsResult: Information
5885// about a product.
5886type GoogleCloudVisionV1p2beta1ProductSearchResultsResult struct {
5887	// Image: The resource name of the image from the product that is the
5888	// closest match to the query.
5889	Image string `json:"image,omitempty"`
5890
5891	// Product: The Product.
5892	Product *GoogleCloudVisionV1p2beta1Product `json:"product,omitempty"`
5893
5894	// Score: A confidence level on the match, ranging from 0 (no
5895	// confidence) to 1 (full confidence).
5896	Score float64 `json:"score,omitempty"`
5897
5898	// ForceSendFields is a list of field names (e.g. "Image") to
5899	// unconditionally include in API requests. By default, fields with
5900	// empty or default values are omitted from API requests. However, any
5901	// non-pointer, non-interface field appearing in ForceSendFields will be
5902	// sent to the server regardless of whether the field is empty or not.
5903	// This may be used to include empty fields in Patch requests.
5904	ForceSendFields []string `json:"-"`
5905
5906	// NullFields is a list of field names (e.g. "Image") to include in API
5907	// requests with the JSON null value. By default, fields with empty
5908	// values are omitted from API requests. However, any field with an
5909	// empty value appearing in NullFields will be sent to the server as
5910	// null. It is an error if a field in this list has a non-empty value.
5911	// This may be used to include null fields in Patch requests.
5912	NullFields []string `json:"-"`
5913}
5914
5915func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
5916	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
5917	raw := NoMethod(*s)
5918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5919}
5920
5921func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
5922	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
5923	var s1 struct {
5924		Score gensupport.JSONFloat64 `json:"score"`
5925		*NoMethod
5926	}
5927	s1.NoMethod = (*NoMethod)(s)
5928	if err := json.Unmarshal(data, &s1); err != nil {
5929		return err
5930	}
5931	s.Score = float64(s1.Score)
5932	return nil
5933}
5934
5935// GoogleCloudVisionV1p2beta1Property: A `Property` consists of a
5936// user-supplied name/value pair.
5937type GoogleCloudVisionV1p2beta1Property struct {
5938	// Name: Name of the property.
5939	Name string `json:"name,omitempty"`
5940
5941	// Uint64Value: Value of numeric properties.
5942	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
5943
5944	// Value: Value of the property.
5945	Value string `json:"value,omitempty"`
5946
5947	// ForceSendFields is a list of field names (e.g. "Name") to
5948	// unconditionally include in API requests. By default, fields with
5949	// empty or default values are omitted from API requests. However, any
5950	// non-pointer, non-interface field appearing in ForceSendFields will be
5951	// sent to the server regardless of whether the field is empty or not.
5952	// This may be used to include empty fields in Patch requests.
5953	ForceSendFields []string `json:"-"`
5954
5955	// NullFields is a list of field names (e.g. "Name") to include in API
5956	// requests with the JSON null value. By default, fields with empty
5957	// values are omitted from API requests. However, any field with an
5958	// empty value appearing in NullFields will be sent to the server as
5959	// null. It is an error if a field in this list has a non-empty value.
5960	// This may be used to include null fields in Patch requests.
5961	NullFields []string `json:"-"`
5962}
5963
5964func (s *GoogleCloudVisionV1p2beta1Property) MarshalJSON() ([]byte, error) {
5965	type NoMethod GoogleCloudVisionV1p2beta1Property
5966	raw := NoMethod(*s)
5967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5968}
5969
5970// GoogleCloudVisionV1p2beta1SafeSearchAnnotation: Set of features
5971// pertaining to the image, computed by computer vision methods over
5972// safe-search verticals (for example, adult, spoof, medical, violence).
5973type GoogleCloudVisionV1p2beta1SafeSearchAnnotation struct {
5974	// Adult: Represents the adult content likelihood for the image. Adult
5975	// content may contain elements such as nudity, pornographic images or
5976	// cartoons, or sexual activities.
5977	//
5978	// Possible values:
5979	//   "UNKNOWN" - Unknown likelihood.
5980	//   "VERY_UNLIKELY" - It is very unlikely.
5981	//   "UNLIKELY" - It is unlikely.
5982	//   "POSSIBLE" - It is possible.
5983	//   "LIKELY" - It is likely.
5984	//   "VERY_LIKELY" - It is very likely.
5985	Adult string `json:"adult,omitempty"`
5986
5987	// Medical: Likelihood that this is a medical image.
5988	//
5989	// Possible values:
5990	//   "UNKNOWN" - Unknown likelihood.
5991	//   "VERY_UNLIKELY" - It is very unlikely.
5992	//   "UNLIKELY" - It is unlikely.
5993	//   "POSSIBLE" - It is possible.
5994	//   "LIKELY" - It is likely.
5995	//   "VERY_LIKELY" - It is very likely.
5996	Medical string `json:"medical,omitempty"`
5997
5998	// Racy: Likelihood that the request image contains racy content. Racy
5999	// content may include (but is not limited to) skimpy or sheer clothing,
6000	// strategically covered nudity, lewd or provocative poses, or close-ups
6001	// of sensitive body areas.
6002	//
6003	// Possible values:
6004	//   "UNKNOWN" - Unknown likelihood.
6005	//   "VERY_UNLIKELY" - It is very unlikely.
6006	//   "UNLIKELY" - It is unlikely.
6007	//   "POSSIBLE" - It is possible.
6008	//   "LIKELY" - It is likely.
6009	//   "VERY_LIKELY" - It is very likely.
6010	Racy string `json:"racy,omitempty"`
6011
6012	// Spoof: Spoof likelihood. The likelihood that an modification was made
6013	// to the image's canonical version to make it appear funny or
6014	// offensive.
6015	//
6016	// Possible values:
6017	//   "UNKNOWN" - Unknown likelihood.
6018	//   "VERY_UNLIKELY" - It is very unlikely.
6019	//   "UNLIKELY" - It is unlikely.
6020	//   "POSSIBLE" - It is possible.
6021	//   "LIKELY" - It is likely.
6022	//   "VERY_LIKELY" - It is very likely.
6023	Spoof string `json:"spoof,omitempty"`
6024
6025	// Violence: Likelihood that this image contains violent content.
6026	//
6027	// Possible values:
6028	//   "UNKNOWN" - Unknown likelihood.
6029	//   "VERY_UNLIKELY" - It is very unlikely.
6030	//   "UNLIKELY" - It is unlikely.
6031	//   "POSSIBLE" - It is possible.
6032	//   "LIKELY" - It is likely.
6033	//   "VERY_LIKELY" - It is very likely.
6034	Violence string `json:"violence,omitempty"`
6035
6036	// ForceSendFields is a list of field names (e.g. "Adult") to
6037	// unconditionally include in API requests. By default, fields with
6038	// empty or default values are omitted from API requests. However, any
6039	// non-pointer, non-interface field appearing in ForceSendFields will be
6040	// sent to the server regardless of whether the field is empty or not.
6041	// This may be used to include empty fields in Patch requests.
6042	ForceSendFields []string `json:"-"`
6043
6044	// NullFields is a list of field names (e.g. "Adult") to include in API
6045	// requests with the JSON null value. By default, fields with empty
6046	// values are omitted from API requests. However, any field with an
6047	// empty value appearing in NullFields will be sent to the server as
6048	// null. It is an error if a field in this list has a non-empty value.
6049	// This may be used to include null fields in Patch requests.
6050	NullFields []string `json:"-"`
6051}
6052
6053func (s *GoogleCloudVisionV1p2beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
6054	type NoMethod GoogleCloudVisionV1p2beta1SafeSearchAnnotation
6055	raw := NoMethod(*s)
6056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6057}
6058
6059// GoogleCloudVisionV1p2beta1Symbol: A single symbol representation.
6060type GoogleCloudVisionV1p2beta1Symbol struct {
6061	// BoundingBox: The bounding box for the symbol. The vertices are in the
6062	// order of top-left, top-right, bottom-right, bottom-left. When a
6063	// rotation of the bounding box is detected the rotation is represented
6064	// as around the top-left corner as defined when the text is read in the
6065	// 'natural' orientation. For example: * when the text is horizontal it
6066	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
6067	// around the top-left corner it becomes: 2----3 | | 1----0 and the
6068	// vertex order will still be (0, 1, 2, 3).
6069	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6070
6071	// Confidence: Confidence of the OCR results for the symbol. Range [0,
6072	// 1].
6073	Confidence float64 `json:"confidence,omitempty"`
6074
6075	// Property: Additional information detected for the symbol.
6076	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6077
6078	// Text: The actual UTF-8 representation of the symbol.
6079	Text string `json:"text,omitempty"`
6080
6081	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6082	// unconditionally include in API requests. By default, fields with
6083	// empty or default values are omitted from API requests. However, any
6084	// non-pointer, non-interface field appearing in ForceSendFields will be
6085	// sent to the server regardless of whether the field is empty or not.
6086	// This may be used to include empty fields in Patch requests.
6087	ForceSendFields []string `json:"-"`
6088
6089	// NullFields is a list of field names (e.g. "BoundingBox") to include
6090	// in API requests with the JSON null value. By default, fields with
6091	// empty values are omitted from API requests. However, any field with
6092	// an empty value appearing in NullFields will be sent to the server as
6093	// null. It is an error if a field in this list has a non-empty value.
6094	// This may be used to include null fields in Patch requests.
6095	NullFields []string `json:"-"`
6096}
6097
6098func (s *GoogleCloudVisionV1p2beta1Symbol) MarshalJSON() ([]byte, error) {
6099	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6100	raw := NoMethod(*s)
6101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6102}
6103
6104func (s *GoogleCloudVisionV1p2beta1Symbol) UnmarshalJSON(data []byte) error {
6105	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6106	var s1 struct {
6107		Confidence gensupport.JSONFloat64 `json:"confidence"`
6108		*NoMethod
6109	}
6110	s1.NoMethod = (*NoMethod)(s)
6111	if err := json.Unmarshal(data, &s1); err != nil {
6112		return err
6113	}
6114	s.Confidence = float64(s1.Confidence)
6115	return nil
6116}
6117
6118// GoogleCloudVisionV1p2beta1TextAnnotation: TextAnnotation contains a
6119// structured representation of OCR extracted text. The hierarchy of an
6120// OCR extracted text structure is like this: TextAnnotation -> Page ->
6121// Block -> Paragraph -> Word -> Symbol Each structural component,
6122// starting from Page, may further have their own properties. Properties
6123// describe detected languages, breaks etc.. Please refer to the
6124// TextAnnotation.TextProperty message definition below for more detail.
6125type GoogleCloudVisionV1p2beta1TextAnnotation struct {
6126	// Pages: List of pages detected by OCR.
6127	Pages []*GoogleCloudVisionV1p2beta1Page `json:"pages,omitempty"`
6128
6129	// Text: UTF-8 text detected on the pages.
6130	Text string `json:"text,omitempty"`
6131
6132	// ForceSendFields is a list of field names (e.g. "Pages") to
6133	// unconditionally include in API requests. By default, fields with
6134	// empty or default values are omitted from API requests. However, any
6135	// non-pointer, non-interface field appearing in ForceSendFields will be
6136	// sent to the server regardless of whether the field is empty or not.
6137	// This may be used to include empty fields in Patch requests.
6138	ForceSendFields []string `json:"-"`
6139
6140	// NullFields is a list of field names (e.g. "Pages") to include in API
6141	// requests with the JSON null value. By default, fields with empty
6142	// values are omitted from API requests. However, any field with an
6143	// empty value appearing in NullFields will be sent to the server as
6144	// null. It is an error if a field in this list has a non-empty value.
6145	// This may be used to include null fields in Patch requests.
6146	NullFields []string `json:"-"`
6147}
6148
6149func (s *GoogleCloudVisionV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
6150	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotation
6151	raw := NoMethod(*s)
6152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6153}
6154
6155// GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak: Detected start
6156// or end of a structural component.
6157type GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak struct {
6158	// IsPrefix: True if break prepends the element.
6159	IsPrefix bool `json:"isPrefix,omitempty"`
6160
6161	// Type: Detected break type.
6162	//
6163	// Possible values:
6164	//   "UNKNOWN" - Unknown break label type.
6165	//   "SPACE" - Regular space.
6166	//   "SURE_SPACE" - Sure space (very wide).
6167	//   "EOL_SURE_SPACE" - Line-wrapping break.
6168	//   "HYPHEN" - End-line hyphen that is not present in text; does not
6169	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
6170	//   "LINE_BREAK" - Line break that ends a paragraph.
6171	Type string `json:"type,omitempty"`
6172
6173	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
6174	// unconditionally include in API requests. By default, fields with
6175	// empty or default values are omitted from API requests. However, any
6176	// non-pointer, non-interface field appearing in ForceSendFields will be
6177	// sent to the server regardless of whether the field is empty or not.
6178	// This may be used to include empty fields in Patch requests.
6179	ForceSendFields []string `json:"-"`
6180
6181	// NullFields is a list of field names (e.g. "IsPrefix") to include in
6182	// API requests with the JSON null value. By default, fields with empty
6183	// values are omitted from API requests. However, any field with an
6184	// empty value appearing in NullFields will be sent to the server as
6185	// null. It is an error if a field in this list has a non-empty value.
6186	// This may be used to include null fields in Patch requests.
6187	NullFields []string `json:"-"`
6188}
6189
6190func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
6191	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak
6192	raw := NoMethod(*s)
6193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6194}
6195
6196// GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage: Detected
6197// language for a structural component.
6198type GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage struct {
6199	// Confidence: Confidence of detected language. Range [0, 1].
6200	Confidence float64 `json:"confidence,omitempty"`
6201
6202	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6203	// For more information, see
6204	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6205	LanguageCode string `json:"languageCode,omitempty"`
6206
6207	// ForceSendFields is a list of field names (e.g. "Confidence") to
6208	// unconditionally include in API requests. By default, fields with
6209	// empty or default values are omitted from API requests. However, any
6210	// non-pointer, non-interface field appearing in ForceSendFields will be
6211	// sent to the server regardless of whether the field is empty or not.
6212	// This may be used to include empty fields in Patch requests.
6213	ForceSendFields []string `json:"-"`
6214
6215	// NullFields is a list of field names (e.g. "Confidence") to include in
6216	// API requests with the JSON null value. By default, fields with empty
6217	// values are omitted from API requests. However, any field with an
6218	// empty value appearing in NullFields will be sent to the server as
6219	// null. It is an error if a field in this list has a non-empty value.
6220	// This may be used to include null fields in Patch requests.
6221	NullFields []string `json:"-"`
6222}
6223
6224func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
6225	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6226	raw := NoMethod(*s)
6227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6228}
6229
6230func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
6231	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6232	var s1 struct {
6233		Confidence gensupport.JSONFloat64 `json:"confidence"`
6234		*NoMethod
6235	}
6236	s1.NoMethod = (*NoMethod)(s)
6237	if err := json.Unmarshal(data, &s1); err != nil {
6238		return err
6239	}
6240	s.Confidence = float64(s1.Confidence)
6241	return nil
6242}
6243
6244// GoogleCloudVisionV1p2beta1TextAnnotationTextProperty: Additional
6245// information detected on the structural component.
6246type GoogleCloudVisionV1p2beta1TextAnnotationTextProperty struct {
6247	// DetectedBreak: Detected start or end of a text segment.
6248	DetectedBreak *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
6249
6250	// DetectedLanguages: A list of detected languages together with
6251	// confidence.
6252	DetectedLanguages []*GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
6253
6254	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
6255	// unconditionally include in API requests. By default, fields with
6256	// empty or default values are omitted from API requests. However, any
6257	// non-pointer, non-interface field appearing in ForceSendFields will be
6258	// sent to the server regardless of whether the field is empty or not.
6259	// This may be used to include empty fields in Patch requests.
6260	ForceSendFields []string `json:"-"`
6261
6262	// NullFields is a list of field names (e.g. "DetectedBreak") to include
6263	// in API requests with the JSON null value. By default, fields with
6264	// empty values are omitted from API requests. However, any field with
6265	// an empty value appearing in NullFields will be sent to the server as
6266	// null. It is an error if a field in this list has a non-empty value.
6267	// This may be used to include null fields in Patch requests.
6268	NullFields []string `json:"-"`
6269}
6270
6271func (s *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
6272	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationTextProperty
6273	raw := NoMethod(*s)
6274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6275}
6276
6277// GoogleCloudVisionV1p2beta1TextDetectionParams: Parameters for text
6278// detections. This is used to control TEXT_DETECTION and
6279// DOCUMENT_TEXT_DETECTION features.
6280type GoogleCloudVisionV1p2beta1TextDetectionParams struct {
6281	// EnableTextDetectionConfidenceScore: By default, Cloud Vision API only
6282	// includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the
6283	// flag to true to include confidence score for TEXT_DETECTION as well.
6284	EnableTextDetectionConfidenceScore bool `json:"enableTextDetectionConfidenceScore,omitempty"`
6285
6286	// ForceSendFields is a list of field names (e.g.
6287	// "EnableTextDetectionConfidenceScore") to unconditionally include in
6288	// API requests. By default, fields with empty or default values are
6289	// omitted from API requests. However, any non-pointer, non-interface
6290	// field appearing in ForceSendFields will be sent to the server
6291	// regardless of whether the field is empty or not. This may be used to
6292	// include empty fields in Patch requests.
6293	ForceSendFields []string `json:"-"`
6294
6295	// NullFields is a list of field names (e.g.
6296	// "EnableTextDetectionConfidenceScore") to include in API requests with
6297	// the JSON null value. By default, fields with empty values are omitted
6298	// from API requests. However, any field with an empty value appearing
6299	// in NullFields will be sent to the server as null. It is an error if a
6300	// field in this list has a non-empty value. This may be used to include
6301	// null fields in Patch requests.
6302	NullFields []string `json:"-"`
6303}
6304
6305func (s *GoogleCloudVisionV1p2beta1TextDetectionParams) MarshalJSON() ([]byte, error) {
6306	type NoMethod GoogleCloudVisionV1p2beta1TextDetectionParams
6307	raw := NoMethod(*s)
6308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6309}
6310
6311// GoogleCloudVisionV1p2beta1Vertex: A vertex represents a 2D point in
6312// the image. NOTE: the vertex coordinates are in the same scale as the
6313// original image.
6314type GoogleCloudVisionV1p2beta1Vertex struct {
6315	// X: X coordinate.
6316	X int64 `json:"x,omitempty"`
6317
6318	// Y: Y coordinate.
6319	Y int64 `json:"y,omitempty"`
6320
6321	// ForceSendFields is a list of field names (e.g. "X") to
6322	// unconditionally include in API requests. By default, fields with
6323	// empty or default values are omitted from API requests. However, any
6324	// non-pointer, non-interface field appearing in ForceSendFields will be
6325	// sent to the server regardless of whether the field is empty or not.
6326	// This may be used to include empty fields in Patch requests.
6327	ForceSendFields []string `json:"-"`
6328
6329	// NullFields is a list of field names (e.g. "X") to include in API
6330	// requests with the JSON null value. By default, fields with empty
6331	// values are omitted from API requests. However, any field with an
6332	// empty value appearing in NullFields will be sent to the server as
6333	// null. It is an error if a field in this list has a non-empty value.
6334	// This may be used to include null fields in Patch requests.
6335	NullFields []string `json:"-"`
6336}
6337
6338func (s *GoogleCloudVisionV1p2beta1Vertex) MarshalJSON() ([]byte, error) {
6339	type NoMethod GoogleCloudVisionV1p2beta1Vertex
6340	raw := NoMethod(*s)
6341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6342}
6343
6344// GoogleCloudVisionV1p2beta1WebDetection: Relevant information for the
6345// image from the Internet.
6346type GoogleCloudVisionV1p2beta1WebDetection struct {
6347	// BestGuessLabels: The service's best guess as to the topic of the
6348	// request image. Inferred from similar images on the open web.
6349	BestGuessLabels []*GoogleCloudVisionV1p2beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
6350
6351	// FullMatchingImages: Fully matching images from the Internet. Can
6352	// include resized copies of the query image.
6353	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6354
6355	// PagesWithMatchingImages: Web pages containing the matching images
6356	// from the Internet.
6357	PagesWithMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
6358
6359	// PartialMatchingImages: Partial matching images from the Internet.
6360	// Those images are similar enough to share some key-point features. For
6361	// example an original image will likely have partial matching for its
6362	// crops.
6363	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6364
6365	// VisuallySimilarImages: The visually similar image results.
6366	VisuallySimilarImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
6367
6368	// WebEntities: Deduced entities from similar images on the Internet.
6369	WebEntities []*GoogleCloudVisionV1p2beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
6370
6371	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
6372	// unconditionally include in API requests. By default, fields with
6373	// empty or default values are omitted from API requests. However, any
6374	// non-pointer, non-interface field appearing in ForceSendFields will be
6375	// sent to the server regardless of whether the field is empty or not.
6376	// This may be used to include empty fields in Patch requests.
6377	ForceSendFields []string `json:"-"`
6378
6379	// NullFields is a list of field names (e.g. "BestGuessLabels") to
6380	// include in API requests with the JSON null value. By default, fields
6381	// with empty values are omitted from API requests. However, any field
6382	// with an empty value appearing in NullFields will be sent to the
6383	// server as null. It is an error if a field in this list has a
6384	// non-empty value. This may be used to include null fields in Patch
6385	// requests.
6386	NullFields []string `json:"-"`
6387}
6388
6389func (s *GoogleCloudVisionV1p2beta1WebDetection) MarshalJSON() ([]byte, error) {
6390	type NoMethod GoogleCloudVisionV1p2beta1WebDetection
6391	raw := NoMethod(*s)
6392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6393}
6394
6395// GoogleCloudVisionV1p2beta1WebDetectionParams: Parameters for web
6396// detection request.
6397type GoogleCloudVisionV1p2beta1WebDetectionParams struct {
6398	// IncludeGeoResults: Whether to include results derived from the geo
6399	// information in the image.
6400	IncludeGeoResults bool `json:"includeGeoResults,omitempty"`
6401
6402	// ForceSendFields is a list of field names (e.g. "IncludeGeoResults")
6403	// to unconditionally include in API requests. By default, fields with
6404	// empty or default values are omitted from API requests. However, any
6405	// non-pointer, non-interface field appearing in ForceSendFields will be
6406	// sent to the server regardless of whether the field is empty or not.
6407	// This may be used to include empty fields in Patch requests.
6408	ForceSendFields []string `json:"-"`
6409
6410	// NullFields is a list of field names (e.g. "IncludeGeoResults") to
6411	// include in API requests with the JSON null value. By default, fields
6412	// with empty values are omitted from API requests. However, any field
6413	// with an empty value appearing in NullFields will be sent to the
6414	// server as null. It is an error if a field in this list has a
6415	// non-empty value. This may be used to include null fields in Patch
6416	// requests.
6417	NullFields []string `json:"-"`
6418}
6419
6420func (s *GoogleCloudVisionV1p2beta1WebDetectionParams) MarshalJSON() ([]byte, error) {
6421	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionParams
6422	raw := NoMethod(*s)
6423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6424}
6425
6426// GoogleCloudVisionV1p2beta1WebDetectionWebEntity: Entity deduced from
6427// similar images on the Internet.
6428type GoogleCloudVisionV1p2beta1WebDetectionWebEntity struct {
6429	// Description: Canonical description of the entity, in English.
6430	Description string `json:"description,omitempty"`
6431
6432	// EntityId: Opaque entity ID.
6433	EntityId string `json:"entityId,omitempty"`
6434
6435	// Score: Overall relevancy score for the entity. Not normalized and not
6436	// comparable across different image queries.
6437	Score float64 `json:"score,omitempty"`
6438
6439	// ForceSendFields is a list of field names (e.g. "Description") to
6440	// unconditionally include in API requests. By default, fields with
6441	// empty or default values are omitted from API requests. However, any
6442	// non-pointer, non-interface field appearing in ForceSendFields will be
6443	// sent to the server regardless of whether the field is empty or not.
6444	// This may be used to include empty fields in Patch requests.
6445	ForceSendFields []string `json:"-"`
6446
6447	// NullFields is a list of field names (e.g. "Description") to include
6448	// in API requests with the JSON null value. By default, fields with
6449	// empty values are omitted from API requests. However, any field with
6450	// an empty value appearing in NullFields will be sent to the server as
6451	// null. It is an error if a field in this list has a non-empty value.
6452	// This may be used to include null fields in Patch requests.
6453	NullFields []string `json:"-"`
6454}
6455
6456func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
6457	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6458	raw := NoMethod(*s)
6459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6460}
6461
6462func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
6463	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6464	var s1 struct {
6465		Score gensupport.JSONFloat64 `json:"score"`
6466		*NoMethod
6467	}
6468	s1.NoMethod = (*NoMethod)(s)
6469	if err := json.Unmarshal(data, &s1); err != nil {
6470		return err
6471	}
6472	s.Score = float64(s1.Score)
6473	return nil
6474}
6475
6476// GoogleCloudVisionV1p2beta1WebDetectionWebImage: Metadata for online
6477// images.
6478type GoogleCloudVisionV1p2beta1WebDetectionWebImage struct {
6479	// Score: (Deprecated) Overall relevancy score for the image.
6480	Score float64 `json:"score,omitempty"`
6481
6482	// Url: The result image URL.
6483	Url string `json:"url,omitempty"`
6484
6485	// ForceSendFields is a list of field names (e.g. "Score") to
6486	// unconditionally include in API requests. By default, fields with
6487	// empty or default values are omitted from API requests. However, any
6488	// non-pointer, non-interface field appearing in ForceSendFields will be
6489	// sent to the server regardless of whether the field is empty or not.
6490	// This may be used to include empty fields in Patch requests.
6491	ForceSendFields []string `json:"-"`
6492
6493	// NullFields is a list of field names (e.g. "Score") to include in API
6494	// requests with the JSON null value. By default, fields with empty
6495	// values are omitted from API requests. However, any field with an
6496	// empty value appearing in NullFields will be sent to the server as
6497	// null. It is an error if a field in this list has a non-empty value.
6498	// This may be used to include null fields in Patch requests.
6499	NullFields []string `json:"-"`
6500}
6501
6502func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
6503	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6504	raw := NoMethod(*s)
6505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6506}
6507
6508func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
6509	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6510	var s1 struct {
6511		Score gensupport.JSONFloat64 `json:"score"`
6512		*NoMethod
6513	}
6514	s1.NoMethod = (*NoMethod)(s)
6515	if err := json.Unmarshal(data, &s1); err != nil {
6516		return err
6517	}
6518	s.Score = float64(s1.Score)
6519	return nil
6520}
6521
6522// GoogleCloudVisionV1p2beta1WebDetectionWebLabel: Label to provide
6523// extra metadata for the web detection.
6524type GoogleCloudVisionV1p2beta1WebDetectionWebLabel struct {
6525	// Label: Label for extra metadata.
6526	Label string `json:"label,omitempty"`
6527
6528	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
6529	// or "sr-Latn". For more information, see
6530	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6531	LanguageCode string `json:"languageCode,omitempty"`
6532
6533	// ForceSendFields is a list of field names (e.g. "Label") to
6534	// unconditionally include in API requests. By default, fields with
6535	// empty or default values are omitted from API requests. However, any
6536	// non-pointer, non-interface field appearing in ForceSendFields will be
6537	// sent to the server regardless of whether the field is empty or not.
6538	// This may be used to include empty fields in Patch requests.
6539	ForceSendFields []string `json:"-"`
6540
6541	// NullFields is a list of field names (e.g. "Label") to include in API
6542	// requests with the JSON null value. By default, fields with empty
6543	// values are omitted from API requests. However, any field with an
6544	// empty value appearing in NullFields will be sent to the server as
6545	// null. It is an error if a field in this list has a non-empty value.
6546	// This may be used to include null fields in Patch requests.
6547	NullFields []string `json:"-"`
6548}
6549
6550func (s *GoogleCloudVisionV1p2beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
6551	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebLabel
6552	raw := NoMethod(*s)
6553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6554}
6555
6556// GoogleCloudVisionV1p2beta1WebDetectionWebPage: Metadata for web
6557// pages.
6558type GoogleCloudVisionV1p2beta1WebDetectionWebPage struct {
6559	// FullMatchingImages: Fully matching images on the page. Can include
6560	// resized copies of the query image.
6561	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6562
6563	// PageTitle: Title for the web page, may contain HTML markups.
6564	PageTitle string `json:"pageTitle,omitempty"`
6565
6566	// PartialMatchingImages: Partial matching images on the page. Those
6567	// images are similar enough to share some key-point features. For
6568	// example an original image will likely have partial matching for its
6569	// crops.
6570	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6571
6572	// Score: (Deprecated) Overall relevancy score for the web page.
6573	Score float64 `json:"score,omitempty"`
6574
6575	// Url: The result web page URL.
6576	Url string `json:"url,omitempty"`
6577
6578	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
6579	// to unconditionally include in API requests. By default, fields with
6580	// empty or default values are omitted from API requests. However, any
6581	// non-pointer, non-interface field appearing in ForceSendFields will be
6582	// sent to the server regardless of whether the field is empty or not.
6583	// This may be used to include empty fields in Patch requests.
6584	ForceSendFields []string `json:"-"`
6585
6586	// NullFields is a list of field names (e.g. "FullMatchingImages") to
6587	// include in API requests with the JSON null value. By default, fields
6588	// with empty values are omitted from API requests. However, any field
6589	// with an empty value appearing in NullFields will be sent to the
6590	// server as null. It is an error if a field in this list has a
6591	// non-empty value. This may be used to include null fields in Patch
6592	// requests.
6593	NullFields []string `json:"-"`
6594}
6595
6596func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
6597	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6598	raw := NoMethod(*s)
6599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6600}
6601
6602func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
6603	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6604	var s1 struct {
6605		Score gensupport.JSONFloat64 `json:"score"`
6606		*NoMethod
6607	}
6608	s1.NoMethod = (*NoMethod)(s)
6609	if err := json.Unmarshal(data, &s1); err != nil {
6610		return err
6611	}
6612	s.Score = float64(s1.Score)
6613	return nil
6614}
6615
6616// GoogleCloudVisionV1p2beta1Word: A word representation.
6617type GoogleCloudVisionV1p2beta1Word struct {
6618	// BoundingBox: The bounding box for the word. The vertices are in the
6619	// order of top-left, top-right, bottom-right, bottom-left. When a
6620	// rotation of the bounding box is detected the rotation is represented
6621	// as around the top-left corner as defined when the text is read in the
6622	// 'natural' orientation. For example: * when the text is horizontal it
6623	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
6624	// around the top-left corner it becomes: 2----3 | | 1----0 and the
6625	// vertex order will still be (0, 1, 2, 3).
6626	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6627
6628	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
6629	Confidence float64 `json:"confidence,omitempty"`
6630
6631	// Property: Additional information detected for the word.
6632	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6633
6634	// Symbols: List of symbols in the word. The order of the symbols
6635	// follows the natural reading order.
6636	Symbols []*GoogleCloudVisionV1p2beta1Symbol `json:"symbols,omitempty"`
6637
6638	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6639	// unconditionally include in API requests. By default, fields with
6640	// empty or default values are omitted from API requests. However, any
6641	// non-pointer, non-interface field appearing in ForceSendFields will be
6642	// sent to the server regardless of whether the field is empty or not.
6643	// This may be used to include empty fields in Patch requests.
6644	ForceSendFields []string `json:"-"`
6645
6646	// NullFields is a list of field names (e.g. "BoundingBox") to include
6647	// in API requests with the JSON null value. By default, fields with
6648	// empty values are omitted from API requests. However, any field with
6649	// an empty value appearing in NullFields will be sent to the server as
6650	// null. It is an error if a field in this list has a non-empty value.
6651	// This may be used to include null fields in Patch requests.
6652	NullFields []string `json:"-"`
6653}
6654
6655func (s *GoogleCloudVisionV1p2beta1Word) MarshalJSON() ([]byte, error) {
6656	type NoMethod GoogleCloudVisionV1p2beta1Word
6657	raw := NoMethod(*s)
6658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6659}
6660
6661func (s *GoogleCloudVisionV1p2beta1Word) UnmarshalJSON(data []byte) error {
6662	type NoMethod GoogleCloudVisionV1p2beta1Word
6663	var s1 struct {
6664		Confidence gensupport.JSONFloat64 `json:"confidence"`
6665		*NoMethod
6666	}
6667	s1.NoMethod = (*NoMethod)(s)
6668	if err := json.Unmarshal(data, &s1); err != nil {
6669		return err
6670	}
6671	s.Confidence = float64(s1.Confidence)
6672	return nil
6673}
6674
6675// GoogleCloudVisionV1p3beta1AnnotateFileResponse: Response to a single
6676// file annotation request. A file may contain one or more images, which
6677// individually have their own responses.
6678type GoogleCloudVisionV1p3beta1AnnotateFileResponse struct {
6679	// Error: If set, represents the error message for the failed request.
6680	// The `responses` field will not be set in this case.
6681	Error *Status `json:"error,omitempty"`
6682
6683	// InputConfig: Information about the file for which this response is
6684	// generated.
6685	InputConfig *GoogleCloudVisionV1p3beta1InputConfig `json:"inputConfig,omitempty"`
6686
6687	// Responses: Individual responses to images found within the file. This
6688	// field will be empty if the `error` field is set.
6689	Responses []*GoogleCloudVisionV1p3beta1AnnotateImageResponse `json:"responses,omitempty"`
6690
6691	// TotalPages: This field gives the total number of pages in the file.
6692	TotalPages int64 `json:"totalPages,omitempty"`
6693
6694	// ForceSendFields is a list of field names (e.g. "Error") to
6695	// unconditionally include in API requests. By default, fields with
6696	// empty or default values are omitted from API requests. However, any
6697	// non-pointer, non-interface field appearing in ForceSendFields will be
6698	// sent to the server regardless of whether the field is empty or not.
6699	// This may be used to include empty fields in Patch requests.
6700	ForceSendFields []string `json:"-"`
6701
6702	// NullFields is a list of field names (e.g. "Error") to include in API
6703	// requests with the JSON null value. By default, fields with empty
6704	// values are omitted from API requests. However, any field with an
6705	// empty value appearing in NullFields will be sent to the server as
6706	// null. It is an error if a field in this list has a non-empty value.
6707	// This may be used to include null fields in Patch requests.
6708	NullFields []string `json:"-"`
6709}
6710
6711func (s *GoogleCloudVisionV1p3beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
6712	type NoMethod GoogleCloudVisionV1p3beta1AnnotateFileResponse
6713	raw := NoMethod(*s)
6714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6715}
6716
6717// GoogleCloudVisionV1p3beta1AnnotateImageResponse: Response to an image
6718// annotation request.
6719type GoogleCloudVisionV1p3beta1AnnotateImageResponse struct {
6720	// Context: If present, contextual information is needed to understand
6721	// where this image comes from.
6722	Context *GoogleCloudVisionV1p3beta1ImageAnnotationContext `json:"context,omitempty"`
6723
6724	// CropHintsAnnotation: If present, crop hints have completed
6725	// successfully.
6726	CropHintsAnnotation *GoogleCloudVisionV1p3beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
6727
6728	// Error: If set, represents the error message for the operation. Note
6729	// that filled-in image annotations are guaranteed to be correct, even
6730	// when `error` is set.
6731	Error *Status `json:"error,omitempty"`
6732
6733	// FaceAnnotations: If present, face detection has completed
6734	// successfully.
6735	FaceAnnotations []*GoogleCloudVisionV1p3beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
6736
6737	// FullTextAnnotation: If present, text (OCR) detection or document
6738	// (OCR) text detection has completed successfully. This annotation
6739	// provides the structural hierarchy for the OCR detected text.
6740	FullTextAnnotation *GoogleCloudVisionV1p3beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
6741
6742	// ImagePropertiesAnnotation: If present, image properties were
6743	// extracted successfully.
6744	ImagePropertiesAnnotation *GoogleCloudVisionV1p3beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
6745
6746	// LabelAnnotations: If present, label detection has completed
6747	// successfully.
6748	LabelAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
6749
6750	// LandmarkAnnotations: If present, landmark detection has completed
6751	// successfully.
6752	LandmarkAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
6753
6754	// LocalizedObjectAnnotations: If present, localized object detection
6755	// has completed successfully. This will be sorted descending by
6756	// confidence score.
6757	LocalizedObjectAnnotations []*GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
6758
6759	// LogoAnnotations: If present, logo detection has completed
6760	// successfully.
6761	LogoAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
6762
6763	// ProductSearchResults: If present, product search has completed
6764	// successfully.
6765	ProductSearchResults *GoogleCloudVisionV1p3beta1ProductSearchResults `json:"productSearchResults,omitempty"`
6766
6767	// SafeSearchAnnotation: If present, safe-search annotation has
6768	// completed successfully.
6769	SafeSearchAnnotation *GoogleCloudVisionV1p3beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
6770
6771	// TextAnnotations: If present, text (OCR) detection has completed
6772	// successfully.
6773	TextAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"textAnnotations,omitempty"`
6774
6775	// WebDetection: If present, web detection has completed successfully.
6776	WebDetection *GoogleCloudVisionV1p3beta1WebDetection `json:"webDetection,omitempty"`
6777
6778	// ForceSendFields is a list of field names (e.g. "Context") to
6779	// unconditionally include in API requests. By default, fields with
6780	// empty or default values are omitted from API requests. However, any
6781	// non-pointer, non-interface field appearing in ForceSendFields will be
6782	// sent to the server regardless of whether the field is empty or not.
6783	// This may be used to include empty fields in Patch requests.
6784	ForceSendFields []string `json:"-"`
6785
6786	// NullFields is a list of field names (e.g. "Context") to include in
6787	// API requests with the JSON null value. By default, fields with empty
6788	// values are omitted from API requests. However, any field with an
6789	// empty value appearing in NullFields will be sent to the server as
6790	// null. It is an error if a field in this list has a non-empty value.
6791	// This may be used to include null fields in Patch requests.
6792	NullFields []string `json:"-"`
6793}
6794
6795func (s *GoogleCloudVisionV1p3beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
6796	type NoMethod GoogleCloudVisionV1p3beta1AnnotateImageResponse
6797	raw := NoMethod(*s)
6798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6799}
6800
6801// GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse: The response for
6802// a single offline file annotation request.
6803type GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse struct {
6804	// OutputConfig: The output location and metadata from
6805	// AsyncAnnotateFileRequest.
6806	OutputConfig *GoogleCloudVisionV1p3beta1OutputConfig `json:"outputConfig,omitempty"`
6807
6808	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
6809	// unconditionally include in API requests. By default, fields with
6810	// empty or default values are omitted from API requests. However, any
6811	// non-pointer, non-interface field appearing in ForceSendFields will be
6812	// sent to the server regardless of whether the field is empty or not.
6813	// This may be used to include empty fields in Patch requests.
6814	ForceSendFields []string `json:"-"`
6815
6816	// NullFields is a list of field names (e.g. "OutputConfig") to include
6817	// in API requests with the JSON null value. By default, fields with
6818	// empty values are omitted from API requests. However, any field with
6819	// an empty value appearing in NullFields will be sent to the server as
6820	// null. It is an error if a field in this list has a non-empty value.
6821	// This may be used to include null fields in Patch requests.
6822	NullFields []string `json:"-"`
6823}
6824
6825func (s *GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
6826	type NoMethod GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse
6827	raw := NoMethod(*s)
6828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6829}
6830
6831// GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse: Response
6832// to an async batch file annotation request.
6833type GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse struct {
6834	// Responses: The list of file annotation responses, one for each
6835	// request in AsyncBatchAnnotateFilesRequest.
6836	Responses []*GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
6837
6838	// ForceSendFields is a list of field names (e.g. "Responses") to
6839	// unconditionally include in API requests. By default, fields with
6840	// empty or default values are omitted from API requests. However, any
6841	// non-pointer, non-interface field appearing in ForceSendFields will be
6842	// sent to the server regardless of whether the field is empty or not.
6843	// This may be used to include empty fields in Patch requests.
6844	ForceSendFields []string `json:"-"`
6845
6846	// NullFields is a list of field names (e.g. "Responses") to include in
6847	// API requests with the JSON null value. By default, fields with empty
6848	// values are omitted from API requests. However, any field with an
6849	// empty value appearing in NullFields will be sent to the server as
6850	// null. It is an error if a field in this list has a non-empty value.
6851	// This may be used to include null fields in Patch requests.
6852	NullFields []string `json:"-"`
6853}
6854
6855func (s *GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
6856	type NoMethod GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse
6857	raw := NoMethod(*s)
6858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6859}
6860
6861// GoogleCloudVisionV1p3beta1BatchOperationMetadata: Metadata for the
6862// batch operations such as the current state. This is included in the
6863// `metadata` field of the `Operation` returned by the `GetOperation`
6864// call of the `google::longrunning::Operations` service.
6865type GoogleCloudVisionV1p3beta1BatchOperationMetadata struct {
6866	// EndTime: The time when the batch request is finished and
6867	// google.longrunning.Operation.done is set to true.
6868	EndTime string `json:"endTime,omitempty"`
6869
6870	// State: The current state of the batch operation.
6871	//
6872	// Possible values:
6873	//   "STATE_UNSPECIFIED" - Invalid.
6874	//   "PROCESSING" - Request is actively being processed.
6875	//   "SUCCESSFUL" - The request is done and at least one item has been
6876	// successfully processed.
6877	//   "FAILED" - The request is done and no item has been successfully
6878	// processed.
6879	//   "CANCELLED" - The request is done after the
6880	// longrunning.Operations.CancelOperation has been called by the user.
6881	// Any records that were processed before the cancel command are output
6882	// as specified in the request.
6883	State string `json:"state,omitempty"`
6884
6885	// SubmitTime: The time when the batch request was submitted to the
6886	// server.
6887	SubmitTime string `json:"submitTime,omitempty"`
6888
6889	// ForceSendFields is a list of field names (e.g. "EndTime") to
6890	// unconditionally include in API requests. By default, fields with
6891	// empty or default values are omitted from API requests. However, any
6892	// non-pointer, non-interface field appearing in ForceSendFields will be
6893	// sent to the server regardless of whether the field is empty or not.
6894	// This may be used to include empty fields in Patch requests.
6895	ForceSendFields []string `json:"-"`
6896
6897	// NullFields is a list of field names (e.g. "EndTime") to include in
6898	// API requests with the JSON null value. By default, fields with empty
6899	// values are omitted from API requests. However, any field with an
6900	// empty value appearing in NullFields will be sent to the server as
6901	// null. It is an error if a field in this list has a non-empty value.
6902	// This may be used to include null fields in Patch requests.
6903	NullFields []string `json:"-"`
6904}
6905
6906func (s *GoogleCloudVisionV1p3beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
6907	type NoMethod GoogleCloudVisionV1p3beta1BatchOperationMetadata
6908	raw := NoMethod(*s)
6909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6910}
6911
6912// GoogleCloudVisionV1p3beta1Block: Logical element on the page.
6913type GoogleCloudVisionV1p3beta1Block struct {
6914	// BlockType: Detected block type (text, image etc) for this block.
6915	//
6916	// Possible values:
6917	//   "UNKNOWN" - Unknown block type.
6918	//   "TEXT" - Regular text block.
6919	//   "TABLE" - Table block.
6920	//   "PICTURE" - Image block.
6921	//   "RULER" - Horizontal/vertical line box.
6922	//   "BARCODE" - Barcode block.
6923	BlockType string `json:"blockType,omitempty"`
6924
6925	// BoundingBox: The bounding box for the block. The vertices are in the
6926	// order of top-left, top-right, bottom-right, bottom-left. When a
6927	// rotation of the bounding box is detected the rotation is represented
6928	// as around the top-left corner as defined when the text is read in the
6929	// 'natural' orientation. For example: * when the text is horizontal it
6930	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
6931	// around the top-left corner it becomes: 2----3 | | 1----0 and the
6932	// vertex order will still be (0, 1, 2, 3).
6933	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
6934
6935	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
6936	Confidence float64 `json:"confidence,omitempty"`
6937
6938	// Paragraphs: List of paragraphs in this block (if this blocks is of
6939	// type text).
6940	Paragraphs []*GoogleCloudVisionV1p3beta1Paragraph `json:"paragraphs,omitempty"`
6941
6942	// Property: Additional information detected for the block.
6943	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
6944
6945	// ForceSendFields is a list of field names (e.g. "BlockType") to
6946	// unconditionally include in API requests. By default, fields with
6947	// empty or default values are omitted from API requests. However, any
6948	// non-pointer, non-interface field appearing in ForceSendFields will be
6949	// sent to the server regardless of whether the field is empty or not.
6950	// This may be used to include empty fields in Patch requests.
6951	ForceSendFields []string `json:"-"`
6952
6953	// NullFields is a list of field names (e.g. "BlockType") to include in
6954	// API requests with the JSON null value. By default, fields with empty
6955	// values are omitted from API requests. However, any field with an
6956	// empty value appearing in NullFields will be sent to the server as
6957	// null. It is an error if a field in this list has a non-empty value.
6958	// This may be used to include null fields in Patch requests.
6959	NullFields []string `json:"-"`
6960}
6961
6962func (s *GoogleCloudVisionV1p3beta1Block) MarshalJSON() ([]byte, error) {
6963	type NoMethod GoogleCloudVisionV1p3beta1Block
6964	raw := NoMethod(*s)
6965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6966}
6967
6968func (s *GoogleCloudVisionV1p3beta1Block) UnmarshalJSON(data []byte) error {
6969	type NoMethod GoogleCloudVisionV1p3beta1Block
6970	var s1 struct {
6971		Confidence gensupport.JSONFloat64 `json:"confidence"`
6972		*NoMethod
6973	}
6974	s1.NoMethod = (*NoMethod)(s)
6975	if err := json.Unmarshal(data, &s1); err != nil {
6976		return err
6977	}
6978	s.Confidence = float64(s1.Confidence)
6979	return nil
6980}
6981
6982// GoogleCloudVisionV1p3beta1BoundingPoly: A bounding polygon for the
6983// detected image annotation.
6984type GoogleCloudVisionV1p3beta1BoundingPoly struct {
6985	// NormalizedVertices: The bounding polygon normalized vertices.
6986	NormalizedVertices []*GoogleCloudVisionV1p3beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
6987
6988	// Vertices: The bounding polygon vertices.
6989	Vertices []*GoogleCloudVisionV1p3beta1Vertex `json:"vertices,omitempty"`
6990
6991	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
6992	// to unconditionally include in API requests. By default, fields with
6993	// empty or default values are omitted from API requests. However, any
6994	// non-pointer, non-interface field appearing in ForceSendFields will be
6995	// sent to the server regardless of whether the field is empty or not.
6996	// This may be used to include empty fields in Patch requests.
6997	ForceSendFields []string `json:"-"`
6998
6999	// NullFields is a list of field names (e.g. "NormalizedVertices") 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 *GoogleCloudVisionV1p3beta1BoundingPoly) MarshalJSON() ([]byte, error) {
7010	type NoMethod GoogleCloudVisionV1p3beta1BoundingPoly
7011	raw := NoMethod(*s)
7012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7013}
7014
7015// GoogleCloudVisionV1p3beta1ColorInfo: Color information consists of
7016// RGB channels, score, and the fraction of the image that the color
7017// occupies in the image.
7018type GoogleCloudVisionV1p3beta1ColorInfo struct {
7019	// Color: RGB components of the color.
7020	Color *Color `json:"color,omitempty"`
7021
7022	// PixelFraction: The fraction of pixels the color occupies in the
7023	// image. Value in range [0, 1].
7024	PixelFraction float64 `json:"pixelFraction,omitempty"`
7025
7026	// Score: Image-specific score for this color. Value in range [0, 1].
7027	Score float64 `json:"score,omitempty"`
7028
7029	// ForceSendFields is a list of field names (e.g. "Color") to
7030	// unconditionally include in API requests. By default, fields with
7031	// empty or default values are omitted from API requests. However, any
7032	// non-pointer, non-interface field appearing in ForceSendFields will be
7033	// sent to the server regardless of whether the field is empty or not.
7034	// This may be used to include empty fields in Patch requests.
7035	ForceSendFields []string `json:"-"`
7036
7037	// NullFields is a list of field names (e.g. "Color") to include in API
7038	// requests with the JSON null value. By default, fields with empty
7039	// values are omitted from API requests. However, any field with an
7040	// empty value appearing in NullFields will be sent to the server as
7041	// null. It is an error if a field in this list has a non-empty value.
7042	// This may be used to include null fields in Patch requests.
7043	NullFields []string `json:"-"`
7044}
7045
7046func (s *GoogleCloudVisionV1p3beta1ColorInfo) MarshalJSON() ([]byte, error) {
7047	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7048	raw := NoMethod(*s)
7049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7050}
7051
7052func (s *GoogleCloudVisionV1p3beta1ColorInfo) UnmarshalJSON(data []byte) error {
7053	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7054	var s1 struct {
7055		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
7056		Score         gensupport.JSONFloat64 `json:"score"`
7057		*NoMethod
7058	}
7059	s1.NoMethod = (*NoMethod)(s)
7060	if err := json.Unmarshal(data, &s1); err != nil {
7061		return err
7062	}
7063	s.PixelFraction = float64(s1.PixelFraction)
7064	s.Score = float64(s1.Score)
7065	return nil
7066}
7067
7068// GoogleCloudVisionV1p3beta1CropHint: Single crop hint that is used to
7069// generate a new crop when serving an image.
7070type GoogleCloudVisionV1p3beta1CropHint struct {
7071	// BoundingPoly: The bounding polygon for the crop region. The
7072	// coordinates of the bounding box are in the original image's scale.
7073	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7074
7075	// Confidence: Confidence of this being a salient region. Range [0, 1].
7076	Confidence float64 `json:"confidence,omitempty"`
7077
7078	// ImportanceFraction: Fraction of importance of this salient region
7079	// with respect to the original image.
7080	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
7081
7082	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7083	// unconditionally include in API requests. By default, fields with
7084	// empty or default values are omitted from API requests. However, any
7085	// non-pointer, non-interface field appearing in ForceSendFields will be
7086	// sent to the server regardless of whether the field is empty or not.
7087	// This may be used to include empty fields in Patch requests.
7088	ForceSendFields []string `json:"-"`
7089
7090	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7091	// in API requests with the JSON null value. By default, fields with
7092	// empty values are omitted from API requests. However, any field with
7093	// an empty value appearing in NullFields will be sent to the server as
7094	// null. It is an error if a field in this list has a non-empty value.
7095	// This may be used to include null fields in Patch requests.
7096	NullFields []string `json:"-"`
7097}
7098
7099func (s *GoogleCloudVisionV1p3beta1CropHint) MarshalJSON() ([]byte, error) {
7100	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7101	raw := NoMethod(*s)
7102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7103}
7104
7105func (s *GoogleCloudVisionV1p3beta1CropHint) UnmarshalJSON(data []byte) error {
7106	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7107	var s1 struct {
7108		Confidence         gensupport.JSONFloat64 `json:"confidence"`
7109		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
7110		*NoMethod
7111	}
7112	s1.NoMethod = (*NoMethod)(s)
7113	if err := json.Unmarshal(data, &s1); err != nil {
7114		return err
7115	}
7116	s.Confidence = float64(s1.Confidence)
7117	s.ImportanceFraction = float64(s1.ImportanceFraction)
7118	return nil
7119}
7120
7121// GoogleCloudVisionV1p3beta1CropHintsAnnotation: Set of crop hints that
7122// are used to generate new crops when serving images.
7123type GoogleCloudVisionV1p3beta1CropHintsAnnotation struct {
7124	// CropHints: Crop hint results.
7125	CropHints []*GoogleCloudVisionV1p3beta1CropHint `json:"cropHints,omitempty"`
7126
7127	// ForceSendFields is a list of field names (e.g. "CropHints") to
7128	// unconditionally include in API requests. By default, fields with
7129	// empty or default values are omitted from API requests. However, any
7130	// non-pointer, non-interface field appearing in ForceSendFields will be
7131	// sent to the server regardless of whether the field is empty or not.
7132	// This may be used to include empty fields in Patch requests.
7133	ForceSendFields []string `json:"-"`
7134
7135	// NullFields is a list of field names (e.g. "CropHints") to include in
7136	// API requests with the JSON null value. By default, fields with empty
7137	// values are omitted from API requests. However, any field with an
7138	// empty value appearing in NullFields will be sent to the server as
7139	// null. It is an error if a field in this list has a non-empty value.
7140	// This may be used to include null fields in Patch requests.
7141	NullFields []string `json:"-"`
7142}
7143
7144func (s *GoogleCloudVisionV1p3beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
7145	type NoMethod GoogleCloudVisionV1p3beta1CropHintsAnnotation
7146	raw := NoMethod(*s)
7147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7148}
7149
7150// GoogleCloudVisionV1p3beta1DominantColorsAnnotation: Set of dominant
7151// colors and their corresponding scores.
7152type GoogleCloudVisionV1p3beta1DominantColorsAnnotation struct {
7153	// Colors: RGB color values with their score and pixel fraction.
7154	Colors []*GoogleCloudVisionV1p3beta1ColorInfo `json:"colors,omitempty"`
7155
7156	// ForceSendFields is a list of field names (e.g. "Colors") to
7157	// unconditionally include in API requests. By default, fields with
7158	// empty or default values are omitted from API requests. However, any
7159	// non-pointer, non-interface field appearing in ForceSendFields will be
7160	// sent to the server regardless of whether the field is empty or not.
7161	// This may be used to include empty fields in Patch requests.
7162	ForceSendFields []string `json:"-"`
7163
7164	// NullFields is a list of field names (e.g. "Colors") to include in API
7165	// requests with the JSON null value. By default, fields with empty
7166	// values are omitted from API requests. However, any field with an
7167	// empty value appearing in NullFields will be sent to the server as
7168	// null. It is an error if a field in this list has a non-empty value.
7169	// This may be used to include null fields in Patch requests.
7170	NullFields []string `json:"-"`
7171}
7172
7173func (s *GoogleCloudVisionV1p3beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
7174	type NoMethod GoogleCloudVisionV1p3beta1DominantColorsAnnotation
7175	raw := NoMethod(*s)
7176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7177}
7178
7179// GoogleCloudVisionV1p3beta1EntityAnnotation: Set of detected entity
7180// features.
7181type GoogleCloudVisionV1p3beta1EntityAnnotation struct {
7182	// BoundingPoly: Image region to which this entity belongs. Not produced
7183	// for `LABEL_DETECTION` features.
7184	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7185
7186	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
7187	// entity detection in an image. For example, for an image in which the
7188	// "Eiffel Tower" entity is detected, this field represents the
7189	// confidence that there is a tower in the query image. Range [0, 1].
7190	Confidence float64 `json:"confidence,omitempty"`
7191
7192	// Description: Entity textual description, expressed in its `locale`
7193	// language.
7194	Description string `json:"description,omitempty"`
7195
7196	// Locale: The language code for the locale in which the entity textual
7197	// `description` is expressed.
7198	Locale string `json:"locale,omitempty"`
7199
7200	// Locations: The location information for the detected entity. Multiple
7201	// `LocationInfo` elements can be present because one location may
7202	// indicate the location of the scene in the image, and another location
7203	// may indicate the location of the place where the image was taken.
7204	// Location information is usually present for landmarks.
7205	Locations []*GoogleCloudVisionV1p3beta1LocationInfo `json:"locations,omitempty"`
7206
7207	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
7208	// Graph Search API (https://developers.google.com/knowledge-graph/).
7209	Mid string `json:"mid,omitempty"`
7210
7211	// Properties: Some entities may have optional user-supplied `Property`
7212	// (name/value) fields, such a score or string that qualifies the
7213	// entity.
7214	Properties []*GoogleCloudVisionV1p3beta1Property `json:"properties,omitempty"`
7215
7216	// Score: Overall score of the result. Range [0, 1].
7217	Score float64 `json:"score,omitempty"`
7218
7219	// Topicality: The relevancy of the ICA (Image Content Annotation) label
7220	// to the image. For example, the relevancy of "tower" is likely higher
7221	// to an image containing the detected "Eiffel Tower" than to an image
7222	// containing a detected distant towering building, even though the
7223	// confidence that there is a tower in each image may be the same. Range
7224	// [0, 1].
7225	Topicality float64 `json:"topicality,omitempty"`
7226
7227	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7228	// unconditionally include in API requests. By default, fields with
7229	// empty or default values are omitted from API requests. However, any
7230	// non-pointer, non-interface field appearing in ForceSendFields will be
7231	// sent to the server regardless of whether the field is empty or not.
7232	// This may be used to include empty fields in Patch requests.
7233	ForceSendFields []string `json:"-"`
7234
7235	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7236	// in API requests with the JSON null value. By default, fields with
7237	// empty values are omitted from API requests. However, any field with
7238	// an empty value appearing in NullFields will be sent to the server as
7239	// null. It is an error if a field in this list has a non-empty value.
7240	// This may be used to include null fields in Patch requests.
7241	NullFields []string `json:"-"`
7242}
7243
7244func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
7245	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7246	raw := NoMethod(*s)
7247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7248}
7249
7250func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
7251	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7252	var s1 struct {
7253		Confidence gensupport.JSONFloat64 `json:"confidence"`
7254		Score      gensupport.JSONFloat64 `json:"score"`
7255		Topicality gensupport.JSONFloat64 `json:"topicality"`
7256		*NoMethod
7257	}
7258	s1.NoMethod = (*NoMethod)(s)
7259	if err := json.Unmarshal(data, &s1); err != nil {
7260		return err
7261	}
7262	s.Confidence = float64(s1.Confidence)
7263	s.Score = float64(s1.Score)
7264	s.Topicality = float64(s1.Topicality)
7265	return nil
7266}
7267
7268// GoogleCloudVisionV1p3beta1FaceAnnotation: A face annotation object
7269// contains the results of face detection.
7270type GoogleCloudVisionV1p3beta1FaceAnnotation struct {
7271	// AngerLikelihood: Anger likelihood.
7272	//
7273	// Possible values:
7274	//   "UNKNOWN" - Unknown likelihood.
7275	//   "VERY_UNLIKELY" - It is very unlikely.
7276	//   "UNLIKELY" - It is unlikely.
7277	//   "POSSIBLE" - It is possible.
7278	//   "LIKELY" - It is likely.
7279	//   "VERY_LIKELY" - It is very likely.
7280	AngerLikelihood string `json:"angerLikelihood,omitempty"`
7281
7282	// BlurredLikelihood: Blurred likelihood.
7283	//
7284	// Possible values:
7285	//   "UNKNOWN" - Unknown likelihood.
7286	//   "VERY_UNLIKELY" - It is very unlikely.
7287	//   "UNLIKELY" - It is unlikely.
7288	//   "POSSIBLE" - It is possible.
7289	//   "LIKELY" - It is likely.
7290	//   "VERY_LIKELY" - It is very likely.
7291	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
7292
7293	// BoundingPoly: The bounding polygon around the face. The coordinates
7294	// of the bounding box are in the original image's scale. The bounding
7295	// box is computed to "frame" the face in accordance with human
7296	// expectations. It is based on the landmarker results. Note that one or
7297	// more x and/or y coordinates may not be generated in the
7298	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
7299	// appears in the image to be annotated.
7300	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7301
7302	// DetectionConfidence: Detection confidence. Range [0, 1].
7303	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
7304
7305	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
7306	// than the `boundingPoly`, and encloses only the skin part of the face.
7307	// Typically, it is used to eliminate the face from any image analysis
7308	// that detects the "amount of skin" visible in an image. It is not
7309	// based on the landmarker results, only on the initial face detection,
7310	// hence the fd (face detection) prefix.
7311	FdBoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
7312
7313	// HeadwearLikelihood: Headwear likelihood.
7314	//
7315	// Possible values:
7316	//   "UNKNOWN" - Unknown likelihood.
7317	//   "VERY_UNLIKELY" - It is very unlikely.
7318	//   "UNLIKELY" - It is unlikely.
7319	//   "POSSIBLE" - It is possible.
7320	//   "LIKELY" - It is likely.
7321	//   "VERY_LIKELY" - It is very likely.
7322	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
7323
7324	// JoyLikelihood: Joy likelihood.
7325	//
7326	// Possible values:
7327	//   "UNKNOWN" - Unknown likelihood.
7328	//   "VERY_UNLIKELY" - It is very unlikely.
7329	//   "UNLIKELY" - It is unlikely.
7330	//   "POSSIBLE" - It is possible.
7331	//   "LIKELY" - It is likely.
7332	//   "VERY_LIKELY" - It is very likely.
7333	JoyLikelihood string `json:"joyLikelihood,omitempty"`
7334
7335	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
7336	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
7337
7338	// Landmarks: Detected face landmarks.
7339	Landmarks []*GoogleCloudVisionV1p3beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
7340
7341	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
7342	// that the face is pointing relative to the vertical plane
7343	// perpendicular to the image. Range [-180,180].
7344	PanAngle float64 `json:"panAngle,omitempty"`
7345
7346	// RollAngle: Roll angle, which indicates the amount of
7347	// clockwise/anti-clockwise rotation of the face relative to the image
7348	// vertical about the axis perpendicular to the face. Range [-180,180].
7349	RollAngle float64 `json:"rollAngle,omitempty"`
7350
7351	// SorrowLikelihood: Sorrow likelihood.
7352	//
7353	// Possible values:
7354	//   "UNKNOWN" - Unknown likelihood.
7355	//   "VERY_UNLIKELY" - It is very unlikely.
7356	//   "UNLIKELY" - It is unlikely.
7357	//   "POSSIBLE" - It is possible.
7358	//   "LIKELY" - It is likely.
7359	//   "VERY_LIKELY" - It is very likely.
7360	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
7361
7362	// SurpriseLikelihood: Surprise likelihood.
7363	//
7364	// Possible values:
7365	//   "UNKNOWN" - Unknown likelihood.
7366	//   "VERY_UNLIKELY" - It is very unlikely.
7367	//   "UNLIKELY" - It is unlikely.
7368	//   "POSSIBLE" - It is possible.
7369	//   "LIKELY" - It is likely.
7370	//   "VERY_LIKELY" - It is very likely.
7371	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
7372
7373	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
7374	// that the face is pointing relative to the image's horizontal plane.
7375	// Range [-180,180].
7376	TiltAngle float64 `json:"tiltAngle,omitempty"`
7377
7378	// UnderExposedLikelihood: Under-exposed likelihood.
7379	//
7380	// Possible values:
7381	//   "UNKNOWN" - Unknown likelihood.
7382	//   "VERY_UNLIKELY" - It is very unlikely.
7383	//   "UNLIKELY" - It is unlikely.
7384	//   "POSSIBLE" - It is possible.
7385	//   "LIKELY" - It is likely.
7386	//   "VERY_LIKELY" - It is very likely.
7387	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
7388
7389	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
7390	// unconditionally include in API requests. By default, fields with
7391	// empty or default values are omitted from API requests. However, any
7392	// non-pointer, non-interface field appearing in ForceSendFields will be
7393	// sent to the server regardless of whether the field is empty or not.
7394	// This may be used to include empty fields in Patch requests.
7395	ForceSendFields []string `json:"-"`
7396
7397	// NullFields is a list of field names (e.g. "AngerLikelihood") to
7398	// include in API requests with the JSON null value. By default, fields
7399	// with empty values are omitted from API requests. However, any field
7400	// with an empty value appearing in NullFields will be sent to the
7401	// server as null. It is an error if a field in this list has a
7402	// non-empty value. This may be used to include null fields in Patch
7403	// requests.
7404	NullFields []string `json:"-"`
7405}
7406
7407func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
7408	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7409	raw := NoMethod(*s)
7410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7411}
7412
7413func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
7414	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7415	var s1 struct {
7416		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
7417		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
7418		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
7419		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
7420		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
7421		*NoMethod
7422	}
7423	s1.NoMethod = (*NoMethod)(s)
7424	if err := json.Unmarshal(data, &s1); err != nil {
7425		return err
7426	}
7427	s.DetectionConfidence = float64(s1.DetectionConfidence)
7428	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
7429	s.PanAngle = float64(s1.PanAngle)
7430	s.RollAngle = float64(s1.RollAngle)
7431	s.TiltAngle = float64(s1.TiltAngle)
7432	return nil
7433}
7434
7435// GoogleCloudVisionV1p3beta1FaceAnnotationLandmark: A face-specific
7436// landmark (for example, a face feature).
7437type GoogleCloudVisionV1p3beta1FaceAnnotationLandmark struct {
7438	// Position: Face landmark position.
7439	Position *GoogleCloudVisionV1p3beta1Position `json:"position,omitempty"`
7440
7441	// Type: Face landmark type.
7442	//
7443	// Possible values:
7444	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
7445	// filled.
7446	//   "LEFT_EYE" - Left eye.
7447	//   "RIGHT_EYE" - Right eye.
7448	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
7449	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
7450	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
7451	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
7452	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
7453	//   "NOSE_TIP" - Nose tip.
7454	//   "UPPER_LIP" - Upper lip.
7455	//   "LOWER_LIP" - Lower lip.
7456	//   "MOUTH_LEFT" - Mouth left.
7457	//   "MOUTH_RIGHT" - Mouth right.
7458	//   "MOUTH_CENTER" - Mouth center.
7459	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
7460	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
7461	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
7462	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
7463	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
7464	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
7465	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
7466	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
7467	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
7468	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
7469	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
7470	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
7471	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
7472	//   "LEFT_EAR_TRAGION" - Left ear tragion.
7473	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
7474	//   "LEFT_EYE_PUPIL" - Left eye pupil.
7475	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
7476	//   "FOREHEAD_GLABELLA" - Forehead glabella.
7477	//   "CHIN_GNATHION" - Chin gnathion.
7478	//   "CHIN_LEFT_GONION" - Chin left gonion.
7479	//   "CHIN_RIGHT_GONION" - Chin right gonion.
7480	//   "LEFT_CHEEK_CENTER" - Left cheek center.
7481	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
7482	Type string `json:"type,omitempty"`
7483
7484	// ForceSendFields is a list of field names (e.g. "Position") to
7485	// unconditionally include in API requests. By default, fields with
7486	// empty or default values are omitted from API requests. However, any
7487	// non-pointer, non-interface field appearing in ForceSendFields will be
7488	// sent to the server regardless of whether the field is empty or not.
7489	// This may be used to include empty fields in Patch requests.
7490	ForceSendFields []string `json:"-"`
7491
7492	// NullFields is a list of field names (e.g. "Position") to include in
7493	// API requests with the JSON null value. By default, fields with empty
7494	// values are omitted from API requests. However, any field with an
7495	// empty value appearing in NullFields will be sent to the server as
7496	// null. It is an error if a field in this list has a non-empty value.
7497	// This may be used to include null fields in Patch requests.
7498	NullFields []string `json:"-"`
7499}
7500
7501func (s *GoogleCloudVisionV1p3beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
7502	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotationLandmark
7503	raw := NoMethod(*s)
7504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7505}
7506
7507// GoogleCloudVisionV1p3beta1GcsDestination: The Google Cloud Storage
7508// location where the output will be written to.
7509type GoogleCloudVisionV1p3beta1GcsDestination struct {
7510	// Uri: Google Cloud Storage URI prefix where the results will be
7511	// stored. Results will be in JSON format and preceded by its
7512	// corresponding input URI prefix. This field can either represent a gcs
7513	// file prefix or gcs directory. In either case, the uri should be
7514	// unique because in order to get all of the output files, you will need
7515	// to do a wildcard gcs search on the uri prefix you provide. Examples:
7516	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
7517	// will be created in gs://bucket-name/here/ and the names of the output
7518	// files will begin with "filenameprefix". * Directory Prefix:
7519	// gs://bucket-name/some/location/ The output files will be created in
7520	// gs://bucket-name/some/location/ and the names of the output files
7521	// could be anything because there was no filename prefix specified. If
7522	// multiple outputs, each response is still AnnotateFileResponse, each
7523	// of which contains some subset of the full list of
7524	// AnnotateImageResponse. Multiple outputs can happen if, for example,
7525	// the output JSON is too large and overflows into multiple sharded
7526	// files.
7527	Uri string `json:"uri,omitempty"`
7528
7529	// ForceSendFields is a list of field names (e.g. "Uri") to
7530	// unconditionally include in API requests. By default, fields with
7531	// empty or default values are omitted from API requests. However, any
7532	// non-pointer, non-interface field appearing in ForceSendFields will be
7533	// sent to the server regardless of whether the field is empty or not.
7534	// This may be used to include empty fields in Patch requests.
7535	ForceSendFields []string `json:"-"`
7536
7537	// NullFields is a list of field names (e.g. "Uri") to include in API
7538	// requests with the JSON null value. By default, fields with empty
7539	// values are omitted from API requests. However, any field with an
7540	// empty value appearing in NullFields will be sent to the server as
7541	// null. It is an error if a field in this list has a non-empty value.
7542	// This may be used to include null fields in Patch requests.
7543	NullFields []string `json:"-"`
7544}
7545
7546func (s *GoogleCloudVisionV1p3beta1GcsDestination) MarshalJSON() ([]byte, error) {
7547	type NoMethod GoogleCloudVisionV1p3beta1GcsDestination
7548	raw := NoMethod(*s)
7549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7550}
7551
7552// GoogleCloudVisionV1p3beta1GcsSource: The Google Cloud Storage
7553// location where the input will be read from.
7554type GoogleCloudVisionV1p3beta1GcsSource struct {
7555	// Uri: Google Cloud Storage URI for the input file. This must only be a
7556	// Google Cloud Storage object. Wildcards are not currently supported.
7557	Uri string `json:"uri,omitempty"`
7558
7559	// ForceSendFields is a list of field names (e.g. "Uri") to
7560	// unconditionally include in API requests. By default, fields with
7561	// empty or default values are omitted from API requests. However, any
7562	// non-pointer, non-interface field appearing in ForceSendFields will be
7563	// sent to the server regardless of whether the field is empty or not.
7564	// This may be used to include empty fields in Patch requests.
7565	ForceSendFields []string `json:"-"`
7566
7567	// NullFields is a list of field names (e.g. "Uri") to include in API
7568	// requests with the JSON null value. By default, fields with empty
7569	// values are omitted from API requests. However, any field with an
7570	// empty value appearing in NullFields will be sent to the server as
7571	// null. It is an error if a field in this list has a non-empty value.
7572	// This may be used to include null fields in Patch requests.
7573	NullFields []string `json:"-"`
7574}
7575
7576func (s *GoogleCloudVisionV1p3beta1GcsSource) MarshalJSON() ([]byte, error) {
7577	type NoMethod GoogleCloudVisionV1p3beta1GcsSource
7578	raw := NoMethod(*s)
7579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7580}
7581
7582// GoogleCloudVisionV1p3beta1ImageAnnotationContext: If an image was
7583// produced from a file (e.g. a PDF), this message gives information
7584// about the source of that image.
7585type GoogleCloudVisionV1p3beta1ImageAnnotationContext struct {
7586	// PageNumber: If the file was a PDF or TIFF, this field gives the page
7587	// number within the file used to produce the image.
7588	PageNumber int64 `json:"pageNumber,omitempty"`
7589
7590	// Uri: The URI of the file used to produce the image.
7591	Uri string `json:"uri,omitempty"`
7592
7593	// ForceSendFields is a list of field names (e.g. "PageNumber") to
7594	// unconditionally include in API requests. By default, fields with
7595	// empty or default values are omitted from API requests. However, any
7596	// non-pointer, non-interface field appearing in ForceSendFields will be
7597	// sent to the server regardless of whether the field is empty or not.
7598	// This may be used to include empty fields in Patch requests.
7599	ForceSendFields []string `json:"-"`
7600
7601	// NullFields is a list of field names (e.g. "PageNumber") to include in
7602	// API requests with the JSON null value. By default, fields with empty
7603	// values are omitted from API requests. However, any field with an
7604	// empty value appearing in NullFields will be sent to the server as
7605	// null. It is an error if a field in this list has a non-empty value.
7606	// This may be used to include null fields in Patch requests.
7607	NullFields []string `json:"-"`
7608}
7609
7610func (s *GoogleCloudVisionV1p3beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
7611	type NoMethod GoogleCloudVisionV1p3beta1ImageAnnotationContext
7612	raw := NoMethod(*s)
7613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7614}
7615
7616// GoogleCloudVisionV1p3beta1ImageProperties: Stores image properties,
7617// such as dominant colors.
7618type GoogleCloudVisionV1p3beta1ImageProperties struct {
7619	// DominantColors: If present, dominant colors completed successfully.
7620	DominantColors *GoogleCloudVisionV1p3beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
7621
7622	// ForceSendFields is a list of field names (e.g. "DominantColors") to
7623	// unconditionally include in API requests. By default, fields with
7624	// empty or default values are omitted from API requests. However, any
7625	// non-pointer, non-interface field appearing in ForceSendFields will be
7626	// sent to the server regardless of whether the field is empty or not.
7627	// This may be used to include empty fields in Patch requests.
7628	ForceSendFields []string `json:"-"`
7629
7630	// NullFields is a list of field names (e.g. "DominantColors") to
7631	// include in API requests with the JSON null value. By default, fields
7632	// with empty values are omitted from API requests. However, any field
7633	// with an empty value appearing in NullFields will be sent to the
7634	// server as null. It is an error if a field in this list has a
7635	// non-empty value. This may be used to include null fields in Patch
7636	// requests.
7637	NullFields []string `json:"-"`
7638}
7639
7640func (s *GoogleCloudVisionV1p3beta1ImageProperties) MarshalJSON() ([]byte, error) {
7641	type NoMethod GoogleCloudVisionV1p3beta1ImageProperties
7642	raw := NoMethod(*s)
7643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7644}
7645
7646// GoogleCloudVisionV1p3beta1ImportProductSetsResponse: Response message
7647// for the `ImportProductSets` method. This message is returned by the
7648// google.longrunning.Operations.GetOperation method in the returned
7649// google.longrunning.Operation.response field.
7650type GoogleCloudVisionV1p3beta1ImportProductSetsResponse struct {
7651	// ReferenceImages: The list of reference_images that are imported
7652	// successfully.
7653	ReferenceImages []*GoogleCloudVisionV1p3beta1ReferenceImage `json:"referenceImages,omitempty"`
7654
7655	// Statuses: The rpc status for each ImportProductSet request, including
7656	// both successes and errors. The number of statuses here matches the
7657	// number of lines in the csv file, and statuses[i] stores the success
7658	// or failure status of processing the i-th line of the csv, starting
7659	// from line 0.
7660	Statuses []*Status `json:"statuses,omitempty"`
7661
7662	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
7663	// unconditionally include in API requests. By default, fields with
7664	// empty or default values are omitted from API requests. However, any
7665	// non-pointer, non-interface field appearing in ForceSendFields will be
7666	// sent to the server regardless of whether the field is empty or not.
7667	// This may be used to include empty fields in Patch requests.
7668	ForceSendFields []string `json:"-"`
7669
7670	// NullFields is a list of field names (e.g. "ReferenceImages") to
7671	// include in API requests with the JSON null value. By default, fields
7672	// with empty values are omitted from API requests. However, any field
7673	// with an empty value appearing in NullFields will be sent to the
7674	// server as null. It is an error if a field in this list has a
7675	// non-empty value. This may be used to include null fields in Patch
7676	// requests.
7677	NullFields []string `json:"-"`
7678}
7679
7680func (s *GoogleCloudVisionV1p3beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
7681	type NoMethod GoogleCloudVisionV1p3beta1ImportProductSetsResponse
7682	raw := NoMethod(*s)
7683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7684}
7685
7686// GoogleCloudVisionV1p3beta1InputConfig: The desired input location and
7687// metadata.
7688type GoogleCloudVisionV1p3beta1InputConfig struct {
7689	// Content: File content, represented as a stream of bytes. Note: As
7690	// with all `bytes` fields, protobuffers use a pure binary
7691	// representation, whereas JSON representations use base64. Currently,
7692	// this field only works for BatchAnnotateFiles requests. It does not
7693	// work for AsyncBatchAnnotateFiles requests.
7694	Content string `json:"content,omitempty"`
7695
7696	// GcsSource: The Google Cloud Storage location to read the input from.
7697	GcsSource *GoogleCloudVisionV1p3beta1GcsSource `json:"gcsSource,omitempty"`
7698
7699	// MimeType: The type of the file. Currently only "application/pdf",
7700	// "image/tiff" and "image/gif" are supported. Wildcards are not
7701	// supported.
7702	MimeType string `json:"mimeType,omitempty"`
7703
7704	// ForceSendFields is a list of field names (e.g. "Content") to
7705	// unconditionally include in API requests. By default, fields with
7706	// empty or default values are omitted from API requests. However, any
7707	// non-pointer, non-interface field appearing in ForceSendFields will be
7708	// sent to the server regardless of whether the field is empty or not.
7709	// This may be used to include empty fields in Patch requests.
7710	ForceSendFields []string `json:"-"`
7711
7712	// NullFields is a list of field names (e.g. "Content") to include in
7713	// API requests with the JSON null value. By default, fields with empty
7714	// values are omitted from API requests. However, any field with an
7715	// empty value appearing in NullFields will be sent to the server as
7716	// null. It is an error if a field in this list has a non-empty value.
7717	// This may be used to include null fields in Patch requests.
7718	NullFields []string `json:"-"`
7719}
7720
7721func (s *GoogleCloudVisionV1p3beta1InputConfig) MarshalJSON() ([]byte, error) {
7722	type NoMethod GoogleCloudVisionV1p3beta1InputConfig
7723	raw := NoMethod(*s)
7724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7725}
7726
7727// GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation: Set of detected
7728// objects with bounding boxes.
7729type GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation struct {
7730	// BoundingPoly: Image region to which this object belongs. This must be
7731	// populated.
7732	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7733
7734	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
7735	// For more information, see
7736	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
7737	LanguageCode string `json:"languageCode,omitempty"`
7738
7739	// Mid: Object ID that should align with EntityAnnotation mid.
7740	Mid string `json:"mid,omitempty"`
7741
7742	// Name: Object name, expressed in its `language_code` language.
7743	Name string `json:"name,omitempty"`
7744
7745	// Score: Score of the result. Range [0, 1].
7746	Score float64 `json:"score,omitempty"`
7747
7748	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7749	// unconditionally include in API requests. By default, fields with
7750	// empty or default values are omitted from API requests. However, any
7751	// non-pointer, non-interface field appearing in ForceSendFields will be
7752	// sent to the server regardless of whether the field is empty or not.
7753	// This may be used to include empty fields in Patch requests.
7754	ForceSendFields []string `json:"-"`
7755
7756	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7757	// in API requests with the JSON null value. By default, fields with
7758	// empty values are omitted from API requests. However, any field with
7759	// an empty value appearing in NullFields will be sent to the server as
7760	// null. It is an error if a field in this list has a non-empty value.
7761	// This may be used to include null fields in Patch requests.
7762	NullFields []string `json:"-"`
7763}
7764
7765func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
7766	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
7767	raw := NoMethod(*s)
7768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7769}
7770
7771func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
7772	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
7773	var s1 struct {
7774		Score gensupport.JSONFloat64 `json:"score"`
7775		*NoMethod
7776	}
7777	s1.NoMethod = (*NoMethod)(s)
7778	if err := json.Unmarshal(data, &s1); err != nil {
7779		return err
7780	}
7781	s.Score = float64(s1.Score)
7782	return nil
7783}
7784
7785// GoogleCloudVisionV1p3beta1LocationInfo: Detected entity location
7786// information.
7787type GoogleCloudVisionV1p3beta1LocationInfo struct {
7788	// LatLng: lat/long location coordinates.
7789	LatLng *LatLng `json:"latLng,omitempty"`
7790
7791	// ForceSendFields is a list of field names (e.g. "LatLng") to
7792	// unconditionally include in API requests. By default, fields with
7793	// empty or default values are omitted from API requests. However, any
7794	// non-pointer, non-interface field appearing in ForceSendFields will be
7795	// sent to the server regardless of whether the field is empty or not.
7796	// This may be used to include empty fields in Patch requests.
7797	ForceSendFields []string `json:"-"`
7798
7799	// NullFields is a list of field names (e.g. "LatLng") to include in API
7800	// requests with the JSON null value. By default, fields with empty
7801	// values are omitted from API requests. However, any field with an
7802	// empty value appearing in NullFields will be sent to the server as
7803	// null. It is an error if a field in this list has a non-empty value.
7804	// This may be used to include null fields in Patch requests.
7805	NullFields []string `json:"-"`
7806}
7807
7808func (s *GoogleCloudVisionV1p3beta1LocationInfo) MarshalJSON() ([]byte, error) {
7809	type NoMethod GoogleCloudVisionV1p3beta1LocationInfo
7810	raw := NoMethod(*s)
7811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7812}
7813
7814// GoogleCloudVisionV1p3beta1NormalizedVertex: A vertex represents a 2D
7815// point in the image. NOTE: the normalized vertex coordinates are
7816// relative to the original image and range from 0 to 1.
7817type GoogleCloudVisionV1p3beta1NormalizedVertex struct {
7818	// X: X coordinate.
7819	X float64 `json:"x,omitempty"`
7820
7821	// Y: Y coordinate.
7822	Y float64 `json:"y,omitempty"`
7823
7824	// ForceSendFields is a list of field names (e.g. "X") to
7825	// unconditionally include in API requests. By default, fields with
7826	// empty or default values are omitted from API requests. However, any
7827	// non-pointer, non-interface field appearing in ForceSendFields will be
7828	// sent to the server regardless of whether the field is empty or not.
7829	// This may be used to include empty fields in Patch requests.
7830	ForceSendFields []string `json:"-"`
7831
7832	// NullFields is a list of field names (e.g. "X") to include in API
7833	// requests with the JSON null value. By default, fields with empty
7834	// values are omitted from API requests. However, any field with an
7835	// empty value appearing in NullFields will be sent to the server as
7836	// null. It is an error if a field in this list has a non-empty value.
7837	// This may be used to include null fields in Patch requests.
7838	NullFields []string `json:"-"`
7839}
7840
7841func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
7842	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
7843	raw := NoMethod(*s)
7844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7845}
7846
7847func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
7848	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
7849	var s1 struct {
7850		X gensupport.JSONFloat64 `json:"x"`
7851		Y gensupport.JSONFloat64 `json:"y"`
7852		*NoMethod
7853	}
7854	s1.NoMethod = (*NoMethod)(s)
7855	if err := json.Unmarshal(data, &s1); err != nil {
7856		return err
7857	}
7858	s.X = float64(s1.X)
7859	s.Y = float64(s1.Y)
7860	return nil
7861}
7862
7863// GoogleCloudVisionV1p3beta1OperationMetadata: Contains metadata for
7864// the BatchAnnotateImages operation.
7865type GoogleCloudVisionV1p3beta1OperationMetadata struct {
7866	// CreateTime: The time when the batch request was received.
7867	CreateTime string `json:"createTime,omitempty"`
7868
7869	// State: Current state of the batch operation.
7870	//
7871	// Possible values:
7872	//   "STATE_UNSPECIFIED" - Invalid.
7873	//   "CREATED" - Request is received.
7874	//   "RUNNING" - Request is actively being processed.
7875	//   "DONE" - The batch processing is done.
7876	//   "CANCELLED" - The batch processing was cancelled.
7877	State string `json:"state,omitempty"`
7878
7879	// UpdateTime: The time when the operation result was last updated.
7880	UpdateTime string `json:"updateTime,omitempty"`
7881
7882	// ForceSendFields is a list of field names (e.g. "CreateTime") to
7883	// unconditionally include in API requests. By default, fields with
7884	// empty or default values are omitted from API requests. However, any
7885	// non-pointer, non-interface field appearing in ForceSendFields will be
7886	// sent to the server regardless of whether the field is empty or not.
7887	// This may be used to include empty fields in Patch requests.
7888	ForceSendFields []string `json:"-"`
7889
7890	// NullFields is a list of field names (e.g. "CreateTime") to include in
7891	// API requests with the JSON null value. By default, fields with empty
7892	// values are omitted from API requests. However, any field with an
7893	// empty value appearing in NullFields will be sent to the server as
7894	// null. It is an error if a field in this list has a non-empty value.
7895	// This may be used to include null fields in Patch requests.
7896	NullFields []string `json:"-"`
7897}
7898
7899func (s *GoogleCloudVisionV1p3beta1OperationMetadata) MarshalJSON() ([]byte, error) {
7900	type NoMethod GoogleCloudVisionV1p3beta1OperationMetadata
7901	raw := NoMethod(*s)
7902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7903}
7904
7905// GoogleCloudVisionV1p3beta1OutputConfig: The desired output location
7906// and metadata.
7907type GoogleCloudVisionV1p3beta1OutputConfig struct {
7908	// BatchSize: The max number of response protos to put into each output
7909	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
7910	// not specified, the default value is 20. For example, for one pdf file
7911	// with 100 pages, 100 response protos will be generated. If
7912	// `batch_size` = 20, then 5 json files each containing 20 response
7913	// protos will be written under the prefix `gcs_destination`.`uri`.
7914	// Currently, batch_size only applies to GcsDestination, with potential
7915	// future support for other output configurations.
7916	BatchSize int64 `json:"batchSize,omitempty"`
7917
7918	// GcsDestination: The Google Cloud Storage location to write the
7919	// output(s) to.
7920	GcsDestination *GoogleCloudVisionV1p3beta1GcsDestination `json:"gcsDestination,omitempty"`
7921
7922	// ForceSendFields is a list of field names (e.g. "BatchSize") to
7923	// unconditionally include in API requests. By default, fields with
7924	// empty or default values are omitted from API requests. However, any
7925	// non-pointer, non-interface field appearing in ForceSendFields will be
7926	// sent to the server regardless of whether the field is empty or not.
7927	// This may be used to include empty fields in Patch requests.
7928	ForceSendFields []string `json:"-"`
7929
7930	// NullFields is a list of field names (e.g. "BatchSize") to include in
7931	// API requests with the JSON null value. By default, fields with empty
7932	// values are omitted from API requests. However, any field with an
7933	// empty value appearing in NullFields will be sent to the server as
7934	// null. It is an error if a field in this list has a non-empty value.
7935	// This may be used to include null fields in Patch requests.
7936	NullFields []string `json:"-"`
7937}
7938
7939func (s *GoogleCloudVisionV1p3beta1OutputConfig) MarshalJSON() ([]byte, error) {
7940	type NoMethod GoogleCloudVisionV1p3beta1OutputConfig
7941	raw := NoMethod(*s)
7942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7943}
7944
7945// GoogleCloudVisionV1p3beta1Page: Detected page from OCR.
7946type GoogleCloudVisionV1p3beta1Page struct {
7947	// Blocks: List of blocks of text, images etc on this page.
7948	Blocks []*GoogleCloudVisionV1p3beta1Block `json:"blocks,omitempty"`
7949
7950	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
7951	Confidence float64 `json:"confidence,omitempty"`
7952
7953	// Height: Page height. For PDFs the unit is points. For images
7954	// (including TIFFs) the unit is pixels.
7955	Height int64 `json:"height,omitempty"`
7956
7957	// Property: Additional information detected on the page.
7958	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7959
7960	// Width: Page width. For PDFs the unit is points. For images (including
7961	// TIFFs) the unit is pixels.
7962	Width int64 `json:"width,omitempty"`
7963
7964	// ForceSendFields is a list of field names (e.g. "Blocks") to
7965	// unconditionally include in API requests. By default, fields with
7966	// empty or default values are omitted from API requests. However, any
7967	// non-pointer, non-interface field appearing in ForceSendFields will be
7968	// sent to the server regardless of whether the field is empty or not.
7969	// This may be used to include empty fields in Patch requests.
7970	ForceSendFields []string `json:"-"`
7971
7972	// NullFields is a list of field names (e.g. "Blocks") to include in API
7973	// requests with the JSON null value. By default, fields with empty
7974	// values are omitted from API requests. However, any field with an
7975	// empty value appearing in NullFields will be sent to the server as
7976	// null. It is an error if a field in this list has a non-empty value.
7977	// This may be used to include null fields in Patch requests.
7978	NullFields []string `json:"-"`
7979}
7980
7981func (s *GoogleCloudVisionV1p3beta1Page) MarshalJSON() ([]byte, error) {
7982	type NoMethod GoogleCloudVisionV1p3beta1Page
7983	raw := NoMethod(*s)
7984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7985}
7986
7987func (s *GoogleCloudVisionV1p3beta1Page) UnmarshalJSON(data []byte) error {
7988	type NoMethod GoogleCloudVisionV1p3beta1Page
7989	var s1 struct {
7990		Confidence gensupport.JSONFloat64 `json:"confidence"`
7991		*NoMethod
7992	}
7993	s1.NoMethod = (*NoMethod)(s)
7994	if err := json.Unmarshal(data, &s1); err != nil {
7995		return err
7996	}
7997	s.Confidence = float64(s1.Confidence)
7998	return nil
7999}
8000
8001// GoogleCloudVisionV1p3beta1Paragraph: Structural unit of text
8002// representing a number of words in certain order.
8003type GoogleCloudVisionV1p3beta1Paragraph struct {
8004	// BoundingBox: The bounding box for the paragraph. The vertices are in
8005	// the order of top-left, top-right, bottom-right, bottom-left. When a
8006	// rotation of the bounding box is detected the rotation is represented
8007	// as around the top-left corner as defined when the text is read in the
8008	// 'natural' orientation. For example: * when the text is horizontal it
8009	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
8010	// around the top-left corner it becomes: 2----3 | | 1----0 and the
8011	// vertex order will still be (0, 1, 2, 3).
8012	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8013
8014	// Confidence: Confidence of the OCR results for the paragraph. Range
8015	// [0, 1].
8016	Confidence float64 `json:"confidence,omitempty"`
8017
8018	// Property: Additional information detected for the paragraph.
8019	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8020
8021	// Words: List of all words in this paragraph.
8022	Words []*GoogleCloudVisionV1p3beta1Word `json:"words,omitempty"`
8023
8024	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8025	// unconditionally include in API requests. By default, fields with
8026	// empty or default values are omitted from API requests. However, any
8027	// non-pointer, non-interface field appearing in ForceSendFields will be
8028	// sent to the server regardless of whether the field is empty or not.
8029	// This may be used to include empty fields in Patch requests.
8030	ForceSendFields []string `json:"-"`
8031
8032	// NullFields is a list of field names (e.g. "BoundingBox") to include
8033	// in API requests with the JSON null value. By default, fields with
8034	// empty values are omitted from API requests. However, any field with
8035	// an empty value appearing in NullFields will be sent to the server as
8036	// null. It is an error if a field in this list has a non-empty value.
8037	// This may be used to include null fields in Patch requests.
8038	NullFields []string `json:"-"`
8039}
8040
8041func (s *GoogleCloudVisionV1p3beta1Paragraph) MarshalJSON() ([]byte, error) {
8042	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8043	raw := NoMethod(*s)
8044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8045}
8046
8047func (s *GoogleCloudVisionV1p3beta1Paragraph) UnmarshalJSON(data []byte) error {
8048	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8049	var s1 struct {
8050		Confidence gensupport.JSONFloat64 `json:"confidence"`
8051		*NoMethod
8052	}
8053	s1.NoMethod = (*NoMethod)(s)
8054	if err := json.Unmarshal(data, &s1); err != nil {
8055		return err
8056	}
8057	s.Confidence = float64(s1.Confidence)
8058	return nil
8059}
8060
8061// GoogleCloudVisionV1p3beta1Position: A 3D position in the image, used
8062// primarily for Face detection landmarks. A valid Position must have
8063// both x and y coordinates. The position coordinates are in the same
8064// scale as the original image.
8065type GoogleCloudVisionV1p3beta1Position struct {
8066	// X: X coordinate.
8067	X float64 `json:"x,omitempty"`
8068
8069	// Y: Y coordinate.
8070	Y float64 `json:"y,omitempty"`
8071
8072	// Z: Z coordinate (or depth).
8073	Z float64 `json:"z,omitempty"`
8074
8075	// ForceSendFields is a list of field names (e.g. "X") to
8076	// unconditionally include in API requests. By default, fields with
8077	// empty or default values are omitted from API requests. However, any
8078	// non-pointer, non-interface field appearing in ForceSendFields will be
8079	// sent to the server regardless of whether the field is empty or not.
8080	// This may be used to include empty fields in Patch requests.
8081	ForceSendFields []string `json:"-"`
8082
8083	// NullFields is a list of field names (e.g. "X") to include in API
8084	// requests with the JSON null value. By default, fields with empty
8085	// values are omitted from API requests. However, any field with an
8086	// empty value appearing in NullFields will be sent to the server as
8087	// null. It is an error if a field in this list has a non-empty value.
8088	// This may be used to include null fields in Patch requests.
8089	NullFields []string `json:"-"`
8090}
8091
8092func (s *GoogleCloudVisionV1p3beta1Position) MarshalJSON() ([]byte, error) {
8093	type NoMethod GoogleCloudVisionV1p3beta1Position
8094	raw := NoMethod(*s)
8095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8096}
8097
8098func (s *GoogleCloudVisionV1p3beta1Position) UnmarshalJSON(data []byte) error {
8099	type NoMethod GoogleCloudVisionV1p3beta1Position
8100	var s1 struct {
8101		X gensupport.JSONFloat64 `json:"x"`
8102		Y gensupport.JSONFloat64 `json:"y"`
8103		Z gensupport.JSONFloat64 `json:"z"`
8104		*NoMethod
8105	}
8106	s1.NoMethod = (*NoMethod)(s)
8107	if err := json.Unmarshal(data, &s1); err != nil {
8108		return err
8109	}
8110	s.X = float64(s1.X)
8111	s.Y = float64(s1.Y)
8112	s.Z = float64(s1.Z)
8113	return nil
8114}
8115
8116// GoogleCloudVisionV1p3beta1Product: A Product contains
8117// ReferenceImages.
8118type GoogleCloudVisionV1p3beta1Product struct {
8119	// Description: User-provided metadata to be stored with this product.
8120	// Must be at most 4096 characters long.
8121	Description string `json:"description,omitempty"`
8122
8123	// DisplayName: The user-provided name for this Product. Must not be
8124	// empty. Must be at most 4096 characters long.
8125	DisplayName string `json:"displayName,omitempty"`
8126
8127	// Name: The resource name of the product. Format is:
8128	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
8129	// field is ignored when creating a product.
8130	Name string `json:"name,omitempty"`
8131
8132	// ProductCategory: Immutable. The category for the product identified
8133	// by the reference image. This should be one of "homegoods-v2",
8134	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
8135	// legacy categories "homegoods", "apparel", and "toys" are still
8136	// supported, but these should not be used for new products.
8137	ProductCategory string `json:"productCategory,omitempty"`
8138
8139	// ProductLabels: Key-value pairs that can be attached to a product. At
8140	// query time, constraints can be specified based on the product_labels.
8141	// Note that integer values can be provided as strings, e.g. "1199".
8142	// Only strings with integer values can match a range-based restriction
8143	// which is to be supported soon. Multiple values can be assigned to the
8144	// same key. One product may have up to 500 product_labels. Notice that
8145	// the total number of distinct product_labels over all products in one
8146	// ProductSet cannot exceed 1M, otherwise the product search pipeline
8147	// will refuse to work for that ProductSet.
8148	ProductLabels []*GoogleCloudVisionV1p3beta1ProductKeyValue `json:"productLabels,omitempty"`
8149
8150	// ForceSendFields is a list of field names (e.g. "Description") to
8151	// unconditionally include in API requests. By default, fields with
8152	// empty or default values are omitted from API requests. However, any
8153	// non-pointer, non-interface field appearing in ForceSendFields will be
8154	// sent to the server regardless of whether the field is empty or not.
8155	// This may be used to include empty fields in Patch requests.
8156	ForceSendFields []string `json:"-"`
8157
8158	// NullFields is a list of field names (e.g. "Description") to include
8159	// in API requests with the JSON null value. By default, fields with
8160	// empty values are omitted from API requests. However, any field with
8161	// an empty value appearing in NullFields will be sent to the server as
8162	// null. It is an error if a field in this list has a non-empty value.
8163	// This may be used to include null fields in Patch requests.
8164	NullFields []string `json:"-"`
8165}
8166
8167func (s *GoogleCloudVisionV1p3beta1Product) MarshalJSON() ([]byte, error) {
8168	type NoMethod GoogleCloudVisionV1p3beta1Product
8169	raw := NoMethod(*s)
8170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8171}
8172
8173// GoogleCloudVisionV1p3beta1ProductKeyValue: A product label
8174// represented as a key-value pair.
8175type GoogleCloudVisionV1p3beta1ProductKeyValue struct {
8176	// Key: The key of the label attached to the product. Cannot be empty
8177	// and cannot exceed 128 bytes.
8178	Key string `json:"key,omitempty"`
8179
8180	// Value: The value of the label attached to the product. Cannot be
8181	// empty and cannot exceed 128 bytes.
8182	Value string `json:"value,omitempty"`
8183
8184	// ForceSendFields is a list of field names (e.g. "Key") to
8185	// unconditionally include in API requests. By default, fields with
8186	// empty or default values are omitted from API requests. However, any
8187	// non-pointer, non-interface field appearing in ForceSendFields will be
8188	// sent to the server regardless of whether the field is empty or not.
8189	// This may be used to include empty fields in Patch requests.
8190	ForceSendFields []string `json:"-"`
8191
8192	// NullFields is a list of field names (e.g. "Key") to include in API
8193	// requests with the JSON null value. By default, fields with empty
8194	// values are omitted from API requests. However, any field with an
8195	// empty value appearing in NullFields will be sent to the server as
8196	// null. It is an error if a field in this list has a non-empty value.
8197	// This may be used to include null fields in Patch requests.
8198	NullFields []string `json:"-"`
8199}
8200
8201func (s *GoogleCloudVisionV1p3beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
8202	type NoMethod GoogleCloudVisionV1p3beta1ProductKeyValue
8203	raw := NoMethod(*s)
8204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8205}
8206
8207// GoogleCloudVisionV1p3beta1ProductSearchResults: Results for a product
8208// search request.
8209type GoogleCloudVisionV1p3beta1ProductSearchResults struct {
8210	// IndexTime: Timestamp of the index which provided these results.
8211	// Products added to the product set and products removed from the
8212	// product set after this time are not reflected in the current results.
8213	IndexTime string `json:"indexTime,omitempty"`
8214
8215	// ProductGroupedResults: List of results grouped by products detected
8216	// in the query image. Each entry corresponds to one bounding polygon in
8217	// the query image, and contains the matching products specific to that
8218	// region. There may be duplicate product matches in the union of all
8219	// the per-product results.
8220	ProductGroupedResults []*GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
8221
8222	// Results: List of results, one for each product match.
8223	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8224
8225	// ForceSendFields is a list of field names (e.g. "IndexTime") to
8226	// unconditionally include in API requests. By default, fields with
8227	// empty or default values are omitted from API requests. However, any
8228	// non-pointer, non-interface field appearing in ForceSendFields will be
8229	// sent to the server regardless of whether the field is empty or not.
8230	// This may be used to include empty fields in Patch requests.
8231	ForceSendFields []string `json:"-"`
8232
8233	// NullFields is a list of field names (e.g. "IndexTime") to include in
8234	// API requests with the JSON null value. By default, fields with empty
8235	// values are omitted from API requests. However, any field with an
8236	// empty value appearing in NullFields will be sent to the server as
8237	// null. It is an error if a field in this list has a non-empty value.
8238	// This may be used to include null fields in Patch requests.
8239	NullFields []string `json:"-"`
8240}
8241
8242func (s *GoogleCloudVisionV1p3beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
8243	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResults
8244	raw := NoMethod(*s)
8245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8246}
8247
8248// GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult:
8249// Information about the products similar to a single product in a query
8250// image.
8251type GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult struct {
8252	// BoundingPoly: The bounding polygon around the product detected in the
8253	// query image.
8254	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8255
8256	// ObjectAnnotations: List of generic predictions for the object in the
8257	// bounding box.
8258	ObjectAnnotations []*GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
8259
8260	// Results: List of results, one for each product match.
8261	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8262
8263	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8264	// unconditionally include in API requests. By default, fields with
8265	// empty or default values are omitted from API requests. However, any
8266	// non-pointer, non-interface field appearing in ForceSendFields will be
8267	// sent to the server regardless of whether the field is empty or not.
8268	// This may be used to include empty fields in Patch requests.
8269	ForceSendFields []string `json:"-"`
8270
8271	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8272	// in API requests with the JSON null value. By default, fields with
8273	// empty values are omitted from API requests. However, any field with
8274	// an empty value appearing in NullFields will be sent to the server as
8275	// null. It is an error if a field in this list has a non-empty value.
8276	// This may be used to include null fields in Patch requests.
8277	NullFields []string `json:"-"`
8278}
8279
8280func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
8281	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult
8282	raw := NoMethod(*s)
8283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8284}
8285
8286// GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation:
8287// Prediction for what the object in the bounding box is.
8288type GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation struct {
8289	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8290	// For more information, see
8291	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8292	LanguageCode string `json:"languageCode,omitempty"`
8293
8294	// Mid: Object ID that should align with EntityAnnotation mid.
8295	Mid string `json:"mid,omitempty"`
8296
8297	// Name: Object name, expressed in its `language_code` language.
8298	Name string `json:"name,omitempty"`
8299
8300	// Score: Score of the result. Range [0, 1].
8301	Score float64 `json:"score,omitempty"`
8302
8303	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
8304	// unconditionally include in API requests. By default, fields with
8305	// empty or default values are omitted from API requests. However, any
8306	// non-pointer, non-interface field appearing in ForceSendFields will be
8307	// sent to the server regardless of whether the field is empty or not.
8308	// This may be used to include empty fields in Patch requests.
8309	ForceSendFields []string `json:"-"`
8310
8311	// NullFields is a list of field names (e.g. "LanguageCode") to include
8312	// in API requests with the JSON null value. By default, fields with
8313	// empty values are omitted from API requests. However, any field with
8314	// an empty value appearing in NullFields will be sent to the server as
8315	// null. It is an error if a field in this list has a non-empty value.
8316	// This may be used to include null fields in Patch requests.
8317	NullFields []string `json:"-"`
8318}
8319
8320func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
8321	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8322	raw := NoMethod(*s)
8323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8324}
8325
8326func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
8327	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8328	var s1 struct {
8329		Score gensupport.JSONFloat64 `json:"score"`
8330		*NoMethod
8331	}
8332	s1.NoMethod = (*NoMethod)(s)
8333	if err := json.Unmarshal(data, &s1); err != nil {
8334		return err
8335	}
8336	s.Score = float64(s1.Score)
8337	return nil
8338}
8339
8340// GoogleCloudVisionV1p3beta1ProductSearchResultsResult: Information
8341// about a product.
8342type GoogleCloudVisionV1p3beta1ProductSearchResultsResult struct {
8343	// Image: The resource name of the image from the product that is the
8344	// closest match to the query.
8345	Image string `json:"image,omitempty"`
8346
8347	// Product: The Product.
8348	Product *GoogleCloudVisionV1p3beta1Product `json:"product,omitempty"`
8349
8350	// Score: A confidence level on the match, ranging from 0 (no
8351	// confidence) to 1 (full confidence).
8352	Score float64 `json:"score,omitempty"`
8353
8354	// ForceSendFields is a list of field names (e.g. "Image") to
8355	// unconditionally include in API requests. By default, fields with
8356	// empty or default values are omitted from API requests. However, any
8357	// non-pointer, non-interface field appearing in ForceSendFields will be
8358	// sent to the server regardless of whether the field is empty or not.
8359	// This may be used to include empty fields in Patch requests.
8360	ForceSendFields []string `json:"-"`
8361
8362	// NullFields is a list of field names (e.g. "Image") to include in API
8363	// requests with the JSON null value. By default, fields with empty
8364	// values are omitted from API requests. However, any field with an
8365	// empty value appearing in NullFields will be sent to the server as
8366	// null. It is an error if a field in this list has a non-empty value.
8367	// This may be used to include null fields in Patch requests.
8368	NullFields []string `json:"-"`
8369}
8370
8371func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
8372	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8373	raw := NoMethod(*s)
8374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8375}
8376
8377func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
8378	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8379	var s1 struct {
8380		Score gensupport.JSONFloat64 `json:"score"`
8381		*NoMethod
8382	}
8383	s1.NoMethod = (*NoMethod)(s)
8384	if err := json.Unmarshal(data, &s1); err != nil {
8385		return err
8386	}
8387	s.Score = float64(s1.Score)
8388	return nil
8389}
8390
8391// GoogleCloudVisionV1p3beta1Property: A `Property` consists of a
8392// user-supplied name/value pair.
8393type GoogleCloudVisionV1p3beta1Property struct {
8394	// Name: Name of the property.
8395	Name string `json:"name,omitempty"`
8396
8397	// Uint64Value: Value of numeric properties.
8398	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
8399
8400	// Value: Value of the property.
8401	Value string `json:"value,omitempty"`
8402
8403	// ForceSendFields is a list of field names (e.g. "Name") to
8404	// unconditionally include in API requests. By default, fields with
8405	// empty or default values are omitted from API requests. However, any
8406	// non-pointer, non-interface field appearing in ForceSendFields will be
8407	// sent to the server regardless of whether the field is empty or not.
8408	// This may be used to include empty fields in Patch requests.
8409	ForceSendFields []string `json:"-"`
8410
8411	// NullFields is a list of field names (e.g. "Name") to include in API
8412	// requests with the JSON null value. By default, fields with empty
8413	// values are omitted from API requests. However, any field with an
8414	// empty value appearing in NullFields will be sent to the server as
8415	// null. It is an error if a field in this list has a non-empty value.
8416	// This may be used to include null fields in Patch requests.
8417	NullFields []string `json:"-"`
8418}
8419
8420func (s *GoogleCloudVisionV1p3beta1Property) MarshalJSON() ([]byte, error) {
8421	type NoMethod GoogleCloudVisionV1p3beta1Property
8422	raw := NoMethod(*s)
8423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8424}
8425
8426// GoogleCloudVisionV1p3beta1ReferenceImage: A `ReferenceImage`
8427// represents a product image and its associated metadata, such as
8428// bounding boxes.
8429type GoogleCloudVisionV1p3beta1ReferenceImage struct {
8430	// BoundingPolys: Optional. Bounding polygons around the areas of
8431	// interest in the reference image. If this field is empty, the system
8432	// will try to detect regions of interest. At most 10 bounding polygons
8433	// will be used. The provided shape is converted into a non-rotated
8434	// rectangle. Once converted, the small edge of the rectangle must be
8435	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
8436	// less (i.e. 1:3 is ok; 1:5 is not).
8437	BoundingPolys []*GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPolys,omitempty"`
8438
8439	// Name: The resource name of the reference image. Format is:
8440	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
8441	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
8442	Name string `json:"name,omitempty"`
8443
8444	// Uri: Required. The Google Cloud Storage URI of the reference image.
8445	// The URI must start with `gs://`.
8446	Uri string `json:"uri,omitempty"`
8447
8448	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
8449	// unconditionally include in API requests. By default, fields with
8450	// empty or default values are omitted from API requests. However, any
8451	// non-pointer, non-interface field appearing in ForceSendFields will be
8452	// sent to the server regardless of whether the field is empty or not.
8453	// This may be used to include empty fields in Patch requests.
8454	ForceSendFields []string `json:"-"`
8455
8456	// NullFields is a list of field names (e.g. "BoundingPolys") to include
8457	// in API requests with the JSON null value. By default, fields with
8458	// empty values are omitted from API requests. However, any field with
8459	// an empty value appearing in NullFields will be sent to the server as
8460	// null. It is an error if a field in this list has a non-empty value.
8461	// This may be used to include null fields in Patch requests.
8462	NullFields []string `json:"-"`
8463}
8464
8465func (s *GoogleCloudVisionV1p3beta1ReferenceImage) MarshalJSON() ([]byte, error) {
8466	type NoMethod GoogleCloudVisionV1p3beta1ReferenceImage
8467	raw := NoMethod(*s)
8468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8469}
8470
8471// GoogleCloudVisionV1p3beta1SafeSearchAnnotation: Set of features
8472// pertaining to the image, computed by computer vision methods over
8473// safe-search verticals (for example, adult, spoof, medical, violence).
8474type GoogleCloudVisionV1p3beta1SafeSearchAnnotation struct {
8475	// Adult: Represents the adult content likelihood for the image. Adult
8476	// content may contain elements such as nudity, pornographic images or
8477	// cartoons, or sexual activities.
8478	//
8479	// Possible values:
8480	//   "UNKNOWN" - Unknown likelihood.
8481	//   "VERY_UNLIKELY" - It is very unlikely.
8482	//   "UNLIKELY" - It is unlikely.
8483	//   "POSSIBLE" - It is possible.
8484	//   "LIKELY" - It is likely.
8485	//   "VERY_LIKELY" - It is very likely.
8486	Adult string `json:"adult,omitempty"`
8487
8488	// Medical: Likelihood that this is a medical image.
8489	//
8490	// Possible values:
8491	//   "UNKNOWN" - Unknown likelihood.
8492	//   "VERY_UNLIKELY" - It is very unlikely.
8493	//   "UNLIKELY" - It is unlikely.
8494	//   "POSSIBLE" - It is possible.
8495	//   "LIKELY" - It is likely.
8496	//   "VERY_LIKELY" - It is very likely.
8497	Medical string `json:"medical,omitempty"`
8498
8499	// Racy: Likelihood that the request image contains racy content. Racy
8500	// content may include (but is not limited to) skimpy or sheer clothing,
8501	// strategically covered nudity, lewd or provocative poses, or close-ups
8502	// of sensitive body areas.
8503	//
8504	// Possible values:
8505	//   "UNKNOWN" - Unknown likelihood.
8506	//   "VERY_UNLIKELY" - It is very unlikely.
8507	//   "UNLIKELY" - It is unlikely.
8508	//   "POSSIBLE" - It is possible.
8509	//   "LIKELY" - It is likely.
8510	//   "VERY_LIKELY" - It is very likely.
8511	Racy string `json:"racy,omitempty"`
8512
8513	// Spoof: Spoof likelihood. The likelihood that an modification was made
8514	// to the image's canonical version to make it appear funny or
8515	// offensive.
8516	//
8517	// Possible values:
8518	//   "UNKNOWN" - Unknown likelihood.
8519	//   "VERY_UNLIKELY" - It is very unlikely.
8520	//   "UNLIKELY" - It is unlikely.
8521	//   "POSSIBLE" - It is possible.
8522	//   "LIKELY" - It is likely.
8523	//   "VERY_LIKELY" - It is very likely.
8524	Spoof string `json:"spoof,omitempty"`
8525
8526	// Violence: Likelihood that this image contains violent content.
8527	//
8528	// Possible values:
8529	//   "UNKNOWN" - Unknown likelihood.
8530	//   "VERY_UNLIKELY" - It is very unlikely.
8531	//   "UNLIKELY" - It is unlikely.
8532	//   "POSSIBLE" - It is possible.
8533	//   "LIKELY" - It is likely.
8534	//   "VERY_LIKELY" - It is very likely.
8535	Violence string `json:"violence,omitempty"`
8536
8537	// ForceSendFields is a list of field names (e.g. "Adult") to
8538	// unconditionally include in API requests. By default, fields with
8539	// empty or default values are omitted from API requests. However, any
8540	// non-pointer, non-interface field appearing in ForceSendFields will be
8541	// sent to the server regardless of whether the field is empty or not.
8542	// This may be used to include empty fields in Patch requests.
8543	ForceSendFields []string `json:"-"`
8544
8545	// NullFields is a list of field names (e.g. "Adult") to include in API
8546	// requests with the JSON null value. By default, fields with empty
8547	// values are omitted from API requests. However, any field with an
8548	// empty value appearing in NullFields will be sent to the server as
8549	// null. It is an error if a field in this list has a non-empty value.
8550	// This may be used to include null fields in Patch requests.
8551	NullFields []string `json:"-"`
8552}
8553
8554func (s *GoogleCloudVisionV1p3beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
8555	type NoMethod GoogleCloudVisionV1p3beta1SafeSearchAnnotation
8556	raw := NoMethod(*s)
8557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8558}
8559
8560// GoogleCloudVisionV1p3beta1Symbol: A single symbol representation.
8561type GoogleCloudVisionV1p3beta1Symbol struct {
8562	// BoundingBox: The bounding box for the symbol. The vertices are in the
8563	// order of top-left, top-right, bottom-right, bottom-left. When a
8564	// rotation of the bounding box is detected the rotation is represented
8565	// as around the top-left corner as defined when the text is read in the
8566	// 'natural' orientation. For example: * when the text is horizontal it
8567	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
8568	// around the top-left corner it becomes: 2----3 | | 1----0 and the
8569	// vertex order will still be (0, 1, 2, 3).
8570	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8571
8572	// Confidence: Confidence of the OCR results for the symbol. Range [0,
8573	// 1].
8574	Confidence float64 `json:"confidence,omitempty"`
8575
8576	// Property: Additional information detected for the symbol.
8577	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8578
8579	// Text: The actual UTF-8 representation of the symbol.
8580	Text string `json:"text,omitempty"`
8581
8582	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8583	// unconditionally include in API requests. By default, fields with
8584	// empty or default values are omitted from API requests. However, any
8585	// non-pointer, non-interface field appearing in ForceSendFields will be
8586	// sent to the server regardless of whether the field is empty or not.
8587	// This may be used to include empty fields in Patch requests.
8588	ForceSendFields []string `json:"-"`
8589
8590	// NullFields is a list of field names (e.g. "BoundingBox") to include
8591	// in API requests with the JSON null value. By default, fields with
8592	// empty values are omitted from API requests. However, any field with
8593	// an empty value appearing in NullFields will be sent to the server as
8594	// null. It is an error if a field in this list has a non-empty value.
8595	// This may be used to include null fields in Patch requests.
8596	NullFields []string `json:"-"`
8597}
8598
8599func (s *GoogleCloudVisionV1p3beta1Symbol) MarshalJSON() ([]byte, error) {
8600	type NoMethod GoogleCloudVisionV1p3beta1Symbol
8601	raw := NoMethod(*s)
8602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8603}
8604
8605func (s *GoogleCloudVisionV1p3beta1Symbol) UnmarshalJSON(data []byte) error {
8606	type NoMethod GoogleCloudVisionV1p3beta1Symbol
8607	var s1 struct {
8608		Confidence gensupport.JSONFloat64 `json:"confidence"`
8609		*NoMethod
8610	}
8611	s1.NoMethod = (*NoMethod)(s)
8612	if err := json.Unmarshal(data, &s1); err != nil {
8613		return err
8614	}
8615	s.Confidence = float64(s1.Confidence)
8616	return nil
8617}
8618
8619// GoogleCloudVisionV1p3beta1TextAnnotation: TextAnnotation contains a
8620// structured representation of OCR extracted text. The hierarchy of an
8621// OCR extracted text structure is like this: TextAnnotation -> Page ->
8622// Block -> Paragraph -> Word -> Symbol Each structural component,
8623// starting from Page, may further have their own properties. Properties
8624// describe detected languages, breaks etc.. Please refer to the
8625// TextAnnotation.TextProperty message definition below for more detail.
8626type GoogleCloudVisionV1p3beta1TextAnnotation struct {
8627	// Pages: List of pages detected by OCR.
8628	Pages []*GoogleCloudVisionV1p3beta1Page `json:"pages,omitempty"`
8629
8630	// Text: UTF-8 text detected on the pages.
8631	Text string `json:"text,omitempty"`
8632
8633	// ForceSendFields is a list of field names (e.g. "Pages") to
8634	// unconditionally include in API requests. By default, fields with
8635	// empty or default values are omitted from API requests. However, any
8636	// non-pointer, non-interface field appearing in ForceSendFields will be
8637	// sent to the server regardless of whether the field is empty or not.
8638	// This may be used to include empty fields in Patch requests.
8639	ForceSendFields []string `json:"-"`
8640
8641	// NullFields is a list of field names (e.g. "Pages") to include in API
8642	// requests with the JSON null value. By default, fields with empty
8643	// values are omitted from API requests. However, any field with an
8644	// empty value appearing in NullFields will be sent to the server as
8645	// null. It is an error if a field in this list has a non-empty value.
8646	// This may be used to include null fields in Patch requests.
8647	NullFields []string `json:"-"`
8648}
8649
8650func (s *GoogleCloudVisionV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
8651	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotation
8652	raw := NoMethod(*s)
8653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8654}
8655
8656// GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak: Detected start
8657// or end of a structural component.
8658type GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak struct {
8659	// IsPrefix: True if break prepends the element.
8660	IsPrefix bool `json:"isPrefix,omitempty"`
8661
8662	// Type: Detected break type.
8663	//
8664	// Possible values:
8665	//   "UNKNOWN" - Unknown break label type.
8666	//   "SPACE" - Regular space.
8667	//   "SURE_SPACE" - Sure space (very wide).
8668	//   "EOL_SURE_SPACE" - Line-wrapping break.
8669	//   "HYPHEN" - End-line hyphen that is not present in text; does not
8670	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
8671	//   "LINE_BREAK" - Line break that ends a paragraph.
8672	Type string `json:"type,omitempty"`
8673
8674	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
8675	// unconditionally include in API requests. By default, fields with
8676	// empty or default values are omitted from API requests. However, any
8677	// non-pointer, non-interface field appearing in ForceSendFields will be
8678	// sent to the server regardless of whether the field is empty or not.
8679	// This may be used to include empty fields in Patch requests.
8680	ForceSendFields []string `json:"-"`
8681
8682	// NullFields is a list of field names (e.g. "IsPrefix") to include in
8683	// API requests with the JSON null value. By default, fields with empty
8684	// values are omitted from API requests. However, any field with an
8685	// empty value appearing in NullFields will be sent to the server as
8686	// null. It is an error if a field in this list has a non-empty value.
8687	// This may be used to include null fields in Patch requests.
8688	NullFields []string `json:"-"`
8689}
8690
8691func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
8692	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak
8693	raw := NoMethod(*s)
8694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8695}
8696
8697// GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage: Detected
8698// language for a structural component.
8699type GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage struct {
8700	// Confidence: Confidence of detected language. Range [0, 1].
8701	Confidence float64 `json:"confidence,omitempty"`
8702
8703	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8704	// For more information, see
8705	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8706	LanguageCode string `json:"languageCode,omitempty"`
8707
8708	// ForceSendFields is a list of field names (e.g. "Confidence") to
8709	// unconditionally include in API requests. By default, fields with
8710	// empty or default values are omitted from API requests. However, any
8711	// non-pointer, non-interface field appearing in ForceSendFields will be
8712	// sent to the server regardless of whether the field is empty or not.
8713	// This may be used to include empty fields in Patch requests.
8714	ForceSendFields []string `json:"-"`
8715
8716	// NullFields is a list of field names (e.g. "Confidence") to include in
8717	// API requests with the JSON null value. By default, fields with empty
8718	// values are omitted from API requests. However, any field with an
8719	// empty value appearing in NullFields will be sent to the server as
8720	// null. It is an error if a field in this list has a non-empty value.
8721	// This may be used to include null fields in Patch requests.
8722	NullFields []string `json:"-"`
8723}
8724
8725func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
8726	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
8727	raw := NoMethod(*s)
8728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8729}
8730
8731func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
8732	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
8733	var s1 struct {
8734		Confidence gensupport.JSONFloat64 `json:"confidence"`
8735		*NoMethod
8736	}
8737	s1.NoMethod = (*NoMethod)(s)
8738	if err := json.Unmarshal(data, &s1); err != nil {
8739		return err
8740	}
8741	s.Confidence = float64(s1.Confidence)
8742	return nil
8743}
8744
8745// GoogleCloudVisionV1p3beta1TextAnnotationTextProperty: Additional
8746// information detected on the structural component.
8747type GoogleCloudVisionV1p3beta1TextAnnotationTextProperty struct {
8748	// DetectedBreak: Detected start or end of a text segment.
8749	DetectedBreak *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
8750
8751	// DetectedLanguages: A list of detected languages together with
8752	// confidence.
8753	DetectedLanguages []*GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
8754
8755	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
8756	// unconditionally include in API requests. By default, fields with
8757	// empty or default values are omitted from API requests. However, any
8758	// non-pointer, non-interface field appearing in ForceSendFields will be
8759	// sent to the server regardless of whether the field is empty or not.
8760	// This may be used to include empty fields in Patch requests.
8761	ForceSendFields []string `json:"-"`
8762
8763	// NullFields is a list of field names (e.g. "DetectedBreak") to include
8764	// in API requests with the JSON null value. By default, fields with
8765	// empty values are omitted from API requests. However, any field with
8766	// an empty value appearing in NullFields will be sent to the server as
8767	// null. It is an error if a field in this list has a non-empty value.
8768	// This may be used to include null fields in Patch requests.
8769	NullFields []string `json:"-"`
8770}
8771
8772func (s *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
8773	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationTextProperty
8774	raw := NoMethod(*s)
8775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8776}
8777
8778// GoogleCloudVisionV1p3beta1Vertex: A vertex represents a 2D point in
8779// the image. NOTE: the vertex coordinates are in the same scale as the
8780// original image.
8781type GoogleCloudVisionV1p3beta1Vertex struct {
8782	// X: X coordinate.
8783	X int64 `json:"x,omitempty"`
8784
8785	// Y: Y coordinate.
8786	Y int64 `json:"y,omitempty"`
8787
8788	// ForceSendFields is a list of field names (e.g. "X") to
8789	// unconditionally include in API requests. By default, fields with
8790	// empty or default values are omitted from API requests. However, any
8791	// non-pointer, non-interface field appearing in ForceSendFields will be
8792	// sent to the server regardless of whether the field is empty or not.
8793	// This may be used to include empty fields in Patch requests.
8794	ForceSendFields []string `json:"-"`
8795
8796	// NullFields is a list of field names (e.g. "X") to include in API
8797	// requests with the JSON null value. By default, fields with empty
8798	// values are omitted from API requests. However, any field with an
8799	// empty value appearing in NullFields will be sent to the server as
8800	// null. It is an error if a field in this list has a non-empty value.
8801	// This may be used to include null fields in Patch requests.
8802	NullFields []string `json:"-"`
8803}
8804
8805func (s *GoogleCloudVisionV1p3beta1Vertex) MarshalJSON() ([]byte, error) {
8806	type NoMethod GoogleCloudVisionV1p3beta1Vertex
8807	raw := NoMethod(*s)
8808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8809}
8810
8811// GoogleCloudVisionV1p3beta1WebDetection: Relevant information for the
8812// image from the Internet.
8813type GoogleCloudVisionV1p3beta1WebDetection struct {
8814	// BestGuessLabels: The service's best guess as to the topic of the
8815	// request image. Inferred from similar images on the open web.
8816	BestGuessLabels []*GoogleCloudVisionV1p3beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
8817
8818	// FullMatchingImages: Fully matching images from the Internet. Can
8819	// include resized copies of the query image.
8820	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
8821
8822	// PagesWithMatchingImages: Web pages containing the matching images
8823	// from the Internet.
8824	PagesWithMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
8825
8826	// PartialMatchingImages: Partial matching images from the Internet.
8827	// Those images are similar enough to share some key-point features. For
8828	// example an original image will likely have partial matching for its
8829	// crops.
8830	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
8831
8832	// VisuallySimilarImages: The visually similar image results.
8833	VisuallySimilarImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
8834
8835	// WebEntities: Deduced entities from similar images on the Internet.
8836	WebEntities []*GoogleCloudVisionV1p3beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
8837
8838	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
8839	// unconditionally include in API requests. By default, fields with
8840	// empty or default values are omitted from API requests. However, any
8841	// non-pointer, non-interface field appearing in ForceSendFields will be
8842	// sent to the server regardless of whether the field is empty or not.
8843	// This may be used to include empty fields in Patch requests.
8844	ForceSendFields []string `json:"-"`
8845
8846	// NullFields is a list of field names (e.g. "BestGuessLabels") to
8847	// include in API requests with the JSON null value. By default, fields
8848	// with empty values are omitted from API requests. However, any field
8849	// with an empty value appearing in NullFields will be sent to the
8850	// server as null. It is an error if a field in this list has a
8851	// non-empty value. This may be used to include null fields in Patch
8852	// requests.
8853	NullFields []string `json:"-"`
8854}
8855
8856func (s *GoogleCloudVisionV1p3beta1WebDetection) MarshalJSON() ([]byte, error) {
8857	type NoMethod GoogleCloudVisionV1p3beta1WebDetection
8858	raw := NoMethod(*s)
8859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8860}
8861
8862// GoogleCloudVisionV1p3beta1WebDetectionWebEntity: Entity deduced from
8863// similar images on the Internet.
8864type GoogleCloudVisionV1p3beta1WebDetectionWebEntity struct {
8865	// Description: Canonical description of the entity, in English.
8866	Description string `json:"description,omitempty"`
8867
8868	// EntityId: Opaque entity ID.
8869	EntityId string `json:"entityId,omitempty"`
8870
8871	// Score: Overall relevancy score for the entity. Not normalized and not
8872	// comparable across different image queries.
8873	Score float64 `json:"score,omitempty"`
8874
8875	// ForceSendFields is a list of field names (e.g. "Description") to
8876	// unconditionally include in API requests. By default, fields with
8877	// empty or default values are omitted from API requests. However, any
8878	// non-pointer, non-interface field appearing in ForceSendFields will be
8879	// sent to the server regardless of whether the field is empty or not.
8880	// This may be used to include empty fields in Patch requests.
8881	ForceSendFields []string `json:"-"`
8882
8883	// NullFields is a list of field names (e.g. "Description") to include
8884	// in API requests with the JSON null value. By default, fields with
8885	// empty values are omitted from API requests. However, any field with
8886	// an empty value appearing in NullFields will be sent to the server as
8887	// null. It is an error if a field in this list has a non-empty value.
8888	// This may be used to include null fields in Patch requests.
8889	NullFields []string `json:"-"`
8890}
8891
8892func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
8893	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
8894	raw := NoMethod(*s)
8895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8896}
8897
8898func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
8899	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
8900	var s1 struct {
8901		Score gensupport.JSONFloat64 `json:"score"`
8902		*NoMethod
8903	}
8904	s1.NoMethod = (*NoMethod)(s)
8905	if err := json.Unmarshal(data, &s1); err != nil {
8906		return err
8907	}
8908	s.Score = float64(s1.Score)
8909	return nil
8910}
8911
8912// GoogleCloudVisionV1p3beta1WebDetectionWebImage: Metadata for online
8913// images.
8914type GoogleCloudVisionV1p3beta1WebDetectionWebImage struct {
8915	// Score: (Deprecated) Overall relevancy score for the image.
8916	Score float64 `json:"score,omitempty"`
8917
8918	// Url: The result image URL.
8919	Url string `json:"url,omitempty"`
8920
8921	// ForceSendFields is a list of field names (e.g. "Score") to
8922	// unconditionally include in API requests. By default, fields with
8923	// empty or default values are omitted from API requests. However, any
8924	// non-pointer, non-interface field appearing in ForceSendFields will be
8925	// sent to the server regardless of whether the field is empty or not.
8926	// This may be used to include empty fields in Patch requests.
8927	ForceSendFields []string `json:"-"`
8928
8929	// NullFields is a list of field names (e.g. "Score") to include in API
8930	// requests with the JSON null value. By default, fields with empty
8931	// values are omitted from API requests. However, any field with an
8932	// empty value appearing in NullFields will be sent to the server as
8933	// null. It is an error if a field in this list has a non-empty value.
8934	// This may be used to include null fields in Patch requests.
8935	NullFields []string `json:"-"`
8936}
8937
8938func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
8939	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
8940	raw := NoMethod(*s)
8941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8942}
8943
8944func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
8945	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
8946	var s1 struct {
8947		Score gensupport.JSONFloat64 `json:"score"`
8948		*NoMethod
8949	}
8950	s1.NoMethod = (*NoMethod)(s)
8951	if err := json.Unmarshal(data, &s1); err != nil {
8952		return err
8953	}
8954	s.Score = float64(s1.Score)
8955	return nil
8956}
8957
8958// GoogleCloudVisionV1p3beta1WebDetectionWebLabel: Label to provide
8959// extra metadata for the web detection.
8960type GoogleCloudVisionV1p3beta1WebDetectionWebLabel struct {
8961	// Label: Label for extra metadata.
8962	Label string `json:"label,omitempty"`
8963
8964	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
8965	// or "sr-Latn". For more information, see
8966	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8967	LanguageCode string `json:"languageCode,omitempty"`
8968
8969	// ForceSendFields is a list of field names (e.g. "Label") to
8970	// unconditionally include in API requests. By default, fields with
8971	// empty or default values are omitted from API requests. However, any
8972	// non-pointer, non-interface field appearing in ForceSendFields will be
8973	// sent to the server regardless of whether the field is empty or not.
8974	// This may be used to include empty fields in Patch requests.
8975	ForceSendFields []string `json:"-"`
8976
8977	// NullFields is a list of field names (e.g. "Label") to include in API
8978	// requests with the JSON null value. By default, fields with empty
8979	// values are omitted from API requests. However, any field with an
8980	// empty value appearing in NullFields will be sent to the server as
8981	// null. It is an error if a field in this list has a non-empty value.
8982	// This may be used to include null fields in Patch requests.
8983	NullFields []string `json:"-"`
8984}
8985
8986func (s *GoogleCloudVisionV1p3beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
8987	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebLabel
8988	raw := NoMethod(*s)
8989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8990}
8991
8992// GoogleCloudVisionV1p3beta1WebDetectionWebPage: Metadata for web
8993// pages.
8994type GoogleCloudVisionV1p3beta1WebDetectionWebPage struct {
8995	// FullMatchingImages: Fully matching images on the page. Can include
8996	// resized copies of the query image.
8997	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
8998
8999	// PageTitle: Title for the web page, may contain HTML markups.
9000	PageTitle string `json:"pageTitle,omitempty"`
9001
9002	// PartialMatchingImages: Partial matching images on the page. Those
9003	// images are similar enough to share some key-point features. For
9004	// example an original image will likely have partial matching for its
9005	// crops.
9006	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9007
9008	// Score: (Deprecated) Overall relevancy score for the web page.
9009	Score float64 `json:"score,omitempty"`
9010
9011	// Url: The result web page URL.
9012	Url string `json:"url,omitempty"`
9013
9014	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
9015	// to unconditionally include in API requests. By default, fields with
9016	// empty or default values are omitted from API requests. However, any
9017	// non-pointer, non-interface field appearing in ForceSendFields will be
9018	// sent to the server regardless of whether the field is empty or not.
9019	// This may be used to include empty fields in Patch requests.
9020	ForceSendFields []string `json:"-"`
9021
9022	// NullFields is a list of field names (e.g. "FullMatchingImages") to
9023	// include in API requests with the JSON null value. By default, fields
9024	// with empty values are omitted from API requests. However, any field
9025	// with an empty value appearing in NullFields will be sent to the
9026	// server as null. It is an error if a field in this list has a
9027	// non-empty value. This may be used to include null fields in Patch
9028	// requests.
9029	NullFields []string `json:"-"`
9030}
9031
9032func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
9033	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9034	raw := NoMethod(*s)
9035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9036}
9037
9038func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
9039	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9040	var s1 struct {
9041		Score gensupport.JSONFloat64 `json:"score"`
9042		*NoMethod
9043	}
9044	s1.NoMethod = (*NoMethod)(s)
9045	if err := json.Unmarshal(data, &s1); err != nil {
9046		return err
9047	}
9048	s.Score = float64(s1.Score)
9049	return nil
9050}
9051
9052// GoogleCloudVisionV1p3beta1Word: A word representation.
9053type GoogleCloudVisionV1p3beta1Word struct {
9054	// BoundingBox: The bounding box for the word. The vertices are in the
9055	// order of top-left, top-right, bottom-right, bottom-left. When a
9056	// rotation of the bounding box is detected the rotation is represented
9057	// as around the top-left corner as defined when the text is read in the
9058	// 'natural' orientation. For example: * when the text is horizontal it
9059	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
9060	// around the top-left corner it becomes: 2----3 | | 1----0 and the
9061	// vertex order will still be (0, 1, 2, 3).
9062	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9063
9064	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
9065	Confidence float64 `json:"confidence,omitempty"`
9066
9067	// Property: Additional information detected for the word.
9068	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9069
9070	// Symbols: List of symbols in the word. The order of the symbols
9071	// follows the natural reading order.
9072	Symbols []*GoogleCloudVisionV1p3beta1Symbol `json:"symbols,omitempty"`
9073
9074	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9075	// unconditionally include in API requests. By default, fields with
9076	// empty or default values are omitted from API requests. However, any
9077	// non-pointer, non-interface field appearing in ForceSendFields will be
9078	// sent to the server regardless of whether the field is empty or not.
9079	// This may be used to include empty fields in Patch requests.
9080	ForceSendFields []string `json:"-"`
9081
9082	// NullFields is a list of field names (e.g. "BoundingBox") to include
9083	// in API requests with the JSON null value. By default, fields with
9084	// empty values are omitted from API requests. However, any field with
9085	// an empty value appearing in NullFields will be sent to the server as
9086	// null. It is an error if a field in this list has a non-empty value.
9087	// This may be used to include null fields in Patch requests.
9088	NullFields []string `json:"-"`
9089}
9090
9091func (s *GoogleCloudVisionV1p3beta1Word) MarshalJSON() ([]byte, error) {
9092	type NoMethod GoogleCloudVisionV1p3beta1Word
9093	raw := NoMethod(*s)
9094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9095}
9096
9097func (s *GoogleCloudVisionV1p3beta1Word) UnmarshalJSON(data []byte) error {
9098	type NoMethod GoogleCloudVisionV1p3beta1Word
9099	var s1 struct {
9100		Confidence gensupport.JSONFloat64 `json:"confidence"`
9101		*NoMethod
9102	}
9103	s1.NoMethod = (*NoMethod)(s)
9104	if err := json.Unmarshal(data, &s1); err != nil {
9105		return err
9106	}
9107	s.Confidence = float64(s1.Confidence)
9108	return nil
9109}
9110
9111// GoogleCloudVisionV1p4beta1AnnotateFileResponse: Response to a single
9112// file annotation request. A file may contain one or more images, which
9113// individually have their own responses.
9114type GoogleCloudVisionV1p4beta1AnnotateFileResponse struct {
9115	// Error: If set, represents the error message for the failed request.
9116	// The `responses` field will not be set in this case.
9117	Error *Status `json:"error,omitempty"`
9118
9119	// InputConfig: Information about the file for which this response is
9120	// generated.
9121	InputConfig *GoogleCloudVisionV1p4beta1InputConfig `json:"inputConfig,omitempty"`
9122
9123	// Responses: Individual responses to images found within the file. This
9124	// field will be empty if the `error` field is set.
9125	Responses []*GoogleCloudVisionV1p4beta1AnnotateImageResponse `json:"responses,omitempty"`
9126
9127	// TotalPages: This field gives the total number of pages in the file.
9128	TotalPages int64 `json:"totalPages,omitempty"`
9129
9130	// ForceSendFields is a list of field names (e.g. "Error") to
9131	// unconditionally include in API requests. By default, fields with
9132	// empty or default values are omitted from API requests. However, any
9133	// non-pointer, non-interface field appearing in ForceSendFields will be
9134	// sent to the server regardless of whether the field is empty or not.
9135	// This may be used to include empty fields in Patch requests.
9136	ForceSendFields []string `json:"-"`
9137
9138	// NullFields is a list of field names (e.g. "Error") to include in API
9139	// requests with the JSON null value. By default, fields with empty
9140	// values are omitted from API requests. However, any field with an
9141	// empty value appearing in NullFields will be sent to the server as
9142	// null. It is an error if a field in this list has a non-empty value.
9143	// This may be used to include null fields in Patch requests.
9144	NullFields []string `json:"-"`
9145}
9146
9147func (s *GoogleCloudVisionV1p4beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
9148	type NoMethod GoogleCloudVisionV1p4beta1AnnotateFileResponse
9149	raw := NoMethod(*s)
9150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9151}
9152
9153// GoogleCloudVisionV1p4beta1AnnotateImageResponse: Response to an image
9154// annotation request.
9155type GoogleCloudVisionV1p4beta1AnnotateImageResponse struct {
9156	// Context: If present, contextual information is needed to understand
9157	// where this image comes from.
9158	Context *GoogleCloudVisionV1p4beta1ImageAnnotationContext `json:"context,omitempty"`
9159
9160	// CropHintsAnnotation: If present, crop hints have completed
9161	// successfully.
9162	CropHintsAnnotation *GoogleCloudVisionV1p4beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
9163
9164	// Error: If set, represents the error message for the operation. Note
9165	// that filled-in image annotations are guaranteed to be correct, even
9166	// when `error` is set.
9167	Error *Status `json:"error,omitempty"`
9168
9169	// FaceAnnotations: If present, face detection has completed
9170	// successfully.
9171	FaceAnnotations []*GoogleCloudVisionV1p4beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
9172
9173	// FullTextAnnotation: If present, text (OCR) detection or document
9174	// (OCR) text detection has completed successfully. This annotation
9175	// provides the structural hierarchy for the OCR detected text.
9176	FullTextAnnotation *GoogleCloudVisionV1p4beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
9177
9178	// ImagePropertiesAnnotation: If present, image properties were
9179	// extracted successfully.
9180	ImagePropertiesAnnotation *GoogleCloudVisionV1p4beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
9181
9182	// LabelAnnotations: If present, label detection has completed
9183	// successfully.
9184	LabelAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
9185
9186	// LandmarkAnnotations: If present, landmark detection has completed
9187	// successfully.
9188	LandmarkAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
9189
9190	// LocalizedObjectAnnotations: If present, localized object detection
9191	// has completed successfully. This will be sorted descending by
9192	// confidence score.
9193	LocalizedObjectAnnotations []*GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
9194
9195	// LogoAnnotations: If present, logo detection has completed
9196	// successfully.
9197	LogoAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
9198
9199	// ProductSearchResults: If present, product search has completed
9200	// successfully.
9201	ProductSearchResults *GoogleCloudVisionV1p4beta1ProductSearchResults `json:"productSearchResults,omitempty"`
9202
9203	// SafeSearchAnnotation: If present, safe-search annotation has
9204	// completed successfully.
9205	SafeSearchAnnotation *GoogleCloudVisionV1p4beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
9206
9207	// TextAnnotations: If present, text (OCR) detection has completed
9208	// successfully.
9209	TextAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"textAnnotations,omitempty"`
9210
9211	// WebDetection: If present, web detection has completed successfully.
9212	WebDetection *GoogleCloudVisionV1p4beta1WebDetection `json:"webDetection,omitempty"`
9213
9214	// ForceSendFields is a list of field names (e.g. "Context") to
9215	// unconditionally include in API requests. By default, fields with
9216	// empty or default values are omitted from API requests. However, any
9217	// non-pointer, non-interface field appearing in ForceSendFields will be
9218	// sent to the server regardless of whether the field is empty or not.
9219	// This may be used to include empty fields in Patch requests.
9220	ForceSendFields []string `json:"-"`
9221
9222	// NullFields is a list of field names (e.g. "Context") to include in
9223	// API requests with the JSON null value. By default, fields with empty
9224	// values are omitted from API requests. However, any field with an
9225	// empty value appearing in NullFields will be sent to the server as
9226	// null. It is an error if a field in this list has a non-empty value.
9227	// This may be used to include null fields in Patch requests.
9228	NullFields []string `json:"-"`
9229}
9230
9231func (s *GoogleCloudVisionV1p4beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
9232	type NoMethod GoogleCloudVisionV1p4beta1AnnotateImageResponse
9233	raw := NoMethod(*s)
9234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9235}
9236
9237// GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse: The response for
9238// a single offline file annotation request.
9239type GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse struct {
9240	// OutputConfig: The output location and metadata from
9241	// AsyncAnnotateFileRequest.
9242	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9243
9244	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9245	// unconditionally include in API requests. By default, fields with
9246	// empty or default values are omitted from API requests. However, any
9247	// non-pointer, non-interface field appearing in ForceSendFields will be
9248	// sent to the server regardless of whether the field is empty or not.
9249	// This may be used to include empty fields in Patch requests.
9250	ForceSendFields []string `json:"-"`
9251
9252	// NullFields is a list of field names (e.g. "OutputConfig") to include
9253	// in API requests with the JSON null value. By default, fields with
9254	// empty values are omitted from API requests. However, any field with
9255	// an empty value appearing in NullFields will be sent to the server as
9256	// null. It is an error if a field in this list has a non-empty value.
9257	// This may be used to include null fields in Patch requests.
9258	NullFields []string `json:"-"`
9259}
9260
9261func (s *GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
9262	type NoMethod GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse
9263	raw := NoMethod(*s)
9264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9265}
9266
9267// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse: Response
9268// to an async batch file annotation request.
9269type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse struct {
9270	// Responses: The list of file annotation responses, one for each
9271	// request in AsyncBatchAnnotateFilesRequest.
9272	Responses []*GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
9273
9274	// ForceSendFields is a list of field names (e.g. "Responses") to
9275	// unconditionally include in API requests. By default, fields with
9276	// empty or default values are omitted from API requests. However, any
9277	// non-pointer, non-interface field appearing in ForceSendFields will be
9278	// sent to the server regardless of whether the field is empty or not.
9279	// This may be used to include empty fields in Patch requests.
9280	ForceSendFields []string `json:"-"`
9281
9282	// NullFields is a list of field names (e.g. "Responses") to include in
9283	// API requests with the JSON null value. By default, fields with empty
9284	// values are omitted from API requests. However, any field with an
9285	// empty value appearing in NullFields will be sent to the server as
9286	// null. It is an error if a field in this list has a non-empty value.
9287	// This may be used to include null fields in Patch requests.
9288	NullFields []string `json:"-"`
9289}
9290
9291func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9292	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse
9293	raw := NoMethod(*s)
9294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9295}
9296
9297// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse: Response
9298// to an async batch image annotation request.
9299type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse struct {
9300	// OutputConfig: The output location and metadata from
9301	// AsyncBatchAnnotateImagesRequest.
9302	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9303
9304	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9305	// unconditionally include in API requests. By default, fields with
9306	// empty or default values are omitted from API requests. However, any
9307	// non-pointer, non-interface field appearing in ForceSendFields will be
9308	// sent to the server regardless of whether the field is empty or not.
9309	// This may be used to include empty fields in Patch requests.
9310	ForceSendFields []string `json:"-"`
9311
9312	// NullFields is a list of field names (e.g. "OutputConfig") to include
9313	// in API requests with the JSON null value. By default, fields with
9314	// empty values are omitted from API requests. However, any field with
9315	// an empty value appearing in NullFields will be sent to the server as
9316	// null. It is an error if a field in this list has a non-empty value.
9317	// This may be used to include null fields in Patch requests.
9318	NullFields []string `json:"-"`
9319}
9320
9321func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
9322	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse
9323	raw := NoMethod(*s)
9324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9325}
9326
9327// GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse: A list of file
9328// annotation responses.
9329type GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse struct {
9330	// Responses: The list of file annotation responses, each response
9331	// corresponding to each AnnotateFileRequest in
9332	// BatchAnnotateFilesRequest.
9333	Responses []*GoogleCloudVisionV1p4beta1AnnotateFileResponse `json:"responses,omitempty"`
9334
9335	// ForceSendFields is a list of field names (e.g. "Responses") to
9336	// unconditionally include in API requests. By default, fields with
9337	// empty or default values are omitted from API requests. However, any
9338	// non-pointer, non-interface field appearing in ForceSendFields will be
9339	// sent to the server regardless of whether the field is empty or not.
9340	// This may be used to include empty fields in Patch requests.
9341	ForceSendFields []string `json:"-"`
9342
9343	// NullFields is a list of field names (e.g. "Responses") to include in
9344	// API requests with the JSON null value. By default, fields with empty
9345	// values are omitted from API requests. However, any field with an
9346	// empty value appearing in NullFields will be sent to the server as
9347	// null. It is an error if a field in this list has a non-empty value.
9348	// This may be used to include null fields in Patch requests.
9349	NullFields []string `json:"-"`
9350}
9351
9352func (s *GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9353	type NoMethod GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse
9354	raw := NoMethod(*s)
9355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9356}
9357
9358// GoogleCloudVisionV1p4beta1BatchOperationMetadata: Metadata for the
9359// batch operations such as the current state. This is included in the
9360// `metadata` field of the `Operation` returned by the `GetOperation`
9361// call of the `google::longrunning::Operations` service.
9362type GoogleCloudVisionV1p4beta1BatchOperationMetadata struct {
9363	// EndTime: The time when the batch request is finished and
9364	// google.longrunning.Operation.done is set to true.
9365	EndTime string `json:"endTime,omitempty"`
9366
9367	// State: The current state of the batch operation.
9368	//
9369	// Possible values:
9370	//   "STATE_UNSPECIFIED" - Invalid.
9371	//   "PROCESSING" - Request is actively being processed.
9372	//   "SUCCESSFUL" - The request is done and at least one item has been
9373	// successfully processed.
9374	//   "FAILED" - The request is done and no item has been successfully
9375	// processed.
9376	//   "CANCELLED" - The request is done after the
9377	// longrunning.Operations.CancelOperation has been called by the user.
9378	// Any records that were processed before the cancel command are output
9379	// as specified in the request.
9380	State string `json:"state,omitempty"`
9381
9382	// SubmitTime: The time when the batch request was submitted to the
9383	// server.
9384	SubmitTime string `json:"submitTime,omitempty"`
9385
9386	// ForceSendFields is a list of field names (e.g. "EndTime") to
9387	// unconditionally include in API requests. By default, fields with
9388	// empty or default values are omitted from API requests. However, any
9389	// non-pointer, non-interface field appearing in ForceSendFields will be
9390	// sent to the server regardless of whether the field is empty or not.
9391	// This may be used to include empty fields in Patch requests.
9392	ForceSendFields []string `json:"-"`
9393
9394	// NullFields is a list of field names (e.g. "EndTime") to include in
9395	// API requests with the JSON null value. By default, fields with empty
9396	// values are omitted from API requests. However, any field with an
9397	// empty value appearing in NullFields will be sent to the server as
9398	// null. It is an error if a field in this list has a non-empty value.
9399	// This may be used to include null fields in Patch requests.
9400	NullFields []string `json:"-"`
9401}
9402
9403func (s *GoogleCloudVisionV1p4beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
9404	type NoMethod GoogleCloudVisionV1p4beta1BatchOperationMetadata
9405	raw := NoMethod(*s)
9406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9407}
9408
9409// GoogleCloudVisionV1p4beta1Block: Logical element on the page.
9410type GoogleCloudVisionV1p4beta1Block struct {
9411	// BlockType: Detected block type (text, image etc) for this block.
9412	//
9413	// Possible values:
9414	//   "UNKNOWN" - Unknown block type.
9415	//   "TEXT" - Regular text block.
9416	//   "TABLE" - Table block.
9417	//   "PICTURE" - Image block.
9418	//   "RULER" - Horizontal/vertical line box.
9419	//   "BARCODE" - Barcode block.
9420	BlockType string `json:"blockType,omitempty"`
9421
9422	// BoundingBox: The bounding box for the block. The vertices are in the
9423	// order of top-left, top-right, bottom-right, bottom-left. When a
9424	// rotation of the bounding box is detected the rotation is represented
9425	// as around the top-left corner as defined when the text is read in the
9426	// 'natural' orientation. For example: * when the text is horizontal it
9427	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
9428	// around the top-left corner it becomes: 2----3 | | 1----0 and the
9429	// vertex order will still be (0, 1, 2, 3).
9430	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
9431
9432	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
9433	Confidence float64 `json:"confidence,omitempty"`
9434
9435	// Paragraphs: List of paragraphs in this block (if this blocks is of
9436	// type text).
9437	Paragraphs []*GoogleCloudVisionV1p4beta1Paragraph `json:"paragraphs,omitempty"`
9438
9439	// Property: Additional information detected for the block.
9440	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
9441
9442	// ForceSendFields is a list of field names (e.g. "BlockType") to
9443	// unconditionally include in API requests. By default, fields with
9444	// empty or default values are omitted from API requests. However, any
9445	// non-pointer, non-interface field appearing in ForceSendFields will be
9446	// sent to the server regardless of whether the field is empty or not.
9447	// This may be used to include empty fields in Patch requests.
9448	ForceSendFields []string `json:"-"`
9449
9450	// NullFields is a list of field names (e.g. "BlockType") to include in
9451	// API requests with the JSON null value. By default, fields with empty
9452	// values are omitted from API requests. However, any field with an
9453	// empty value appearing in NullFields will be sent to the server as
9454	// null. It is an error if a field in this list has a non-empty value.
9455	// This may be used to include null fields in Patch requests.
9456	NullFields []string `json:"-"`
9457}
9458
9459func (s *GoogleCloudVisionV1p4beta1Block) MarshalJSON() ([]byte, error) {
9460	type NoMethod GoogleCloudVisionV1p4beta1Block
9461	raw := NoMethod(*s)
9462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9463}
9464
9465func (s *GoogleCloudVisionV1p4beta1Block) UnmarshalJSON(data []byte) error {
9466	type NoMethod GoogleCloudVisionV1p4beta1Block
9467	var s1 struct {
9468		Confidence gensupport.JSONFloat64 `json:"confidence"`
9469		*NoMethod
9470	}
9471	s1.NoMethod = (*NoMethod)(s)
9472	if err := json.Unmarshal(data, &s1); err != nil {
9473		return err
9474	}
9475	s.Confidence = float64(s1.Confidence)
9476	return nil
9477}
9478
9479// GoogleCloudVisionV1p4beta1BoundingPoly: A bounding polygon for the
9480// detected image annotation.
9481type GoogleCloudVisionV1p4beta1BoundingPoly struct {
9482	// NormalizedVertices: The bounding polygon normalized vertices.
9483	NormalizedVertices []*GoogleCloudVisionV1p4beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
9484
9485	// Vertices: The bounding polygon vertices.
9486	Vertices []*GoogleCloudVisionV1p4beta1Vertex `json:"vertices,omitempty"`
9487
9488	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
9489	// to unconditionally include in API requests. By default, fields with
9490	// empty or default values are omitted from API requests. However, any
9491	// non-pointer, non-interface field appearing in ForceSendFields will be
9492	// sent to the server regardless of whether the field is empty or not.
9493	// This may be used to include empty fields in Patch requests.
9494	ForceSendFields []string `json:"-"`
9495
9496	// NullFields is a list of field names (e.g. "NormalizedVertices") to
9497	// include in API requests with the JSON null value. By default, fields
9498	// with empty values are omitted from API requests. However, any field
9499	// with an empty value appearing in NullFields will be sent to the
9500	// server as null. It is an error if a field in this list has a
9501	// non-empty value. This may be used to include null fields in Patch
9502	// requests.
9503	NullFields []string `json:"-"`
9504}
9505
9506func (s *GoogleCloudVisionV1p4beta1BoundingPoly) MarshalJSON() ([]byte, error) {
9507	type NoMethod GoogleCloudVisionV1p4beta1BoundingPoly
9508	raw := NoMethod(*s)
9509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9510}
9511
9512// GoogleCloudVisionV1p4beta1Celebrity: A Celebrity is a group of Faces
9513// with an identity.
9514type GoogleCloudVisionV1p4beta1Celebrity struct {
9515	// Description: The Celebrity's description.
9516	Description string `json:"description,omitempty"`
9517
9518	// DisplayName: The Celebrity's display name.
9519	DisplayName string `json:"displayName,omitempty"`
9520
9521	// Name: The resource name of the preloaded Celebrity. Has the format
9522	// `builtin/{mid}`.
9523	Name string `json:"name,omitempty"`
9524
9525	// ForceSendFields is a list of field names (e.g. "Description") to
9526	// unconditionally include in API requests. By default, fields with
9527	// empty or default values are omitted from API requests. However, any
9528	// non-pointer, non-interface field appearing in ForceSendFields will be
9529	// sent to the server regardless of whether the field is empty or not.
9530	// This may be used to include empty fields in Patch requests.
9531	ForceSendFields []string `json:"-"`
9532
9533	// NullFields is a list of field names (e.g. "Description") to include
9534	// in API requests with the JSON null value. By default, fields with
9535	// empty values are omitted from API requests. However, any field with
9536	// an empty value appearing in NullFields will be sent to the server as
9537	// null. It is an error if a field in this list has a non-empty value.
9538	// This may be used to include null fields in Patch requests.
9539	NullFields []string `json:"-"`
9540}
9541
9542func (s *GoogleCloudVisionV1p4beta1Celebrity) MarshalJSON() ([]byte, error) {
9543	type NoMethod GoogleCloudVisionV1p4beta1Celebrity
9544	raw := NoMethod(*s)
9545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9546}
9547
9548// GoogleCloudVisionV1p4beta1ColorInfo: Color information consists of
9549// RGB channels, score, and the fraction of the image that the color
9550// occupies in the image.
9551type GoogleCloudVisionV1p4beta1ColorInfo struct {
9552	// Color: RGB components of the color.
9553	Color *Color `json:"color,omitempty"`
9554
9555	// PixelFraction: The fraction of pixels the color occupies in the
9556	// image. Value in range [0, 1].
9557	PixelFraction float64 `json:"pixelFraction,omitempty"`
9558
9559	// Score: Image-specific score for this color. Value in range [0, 1].
9560	Score float64 `json:"score,omitempty"`
9561
9562	// ForceSendFields is a list of field names (e.g. "Color") to
9563	// unconditionally include in API requests. By default, fields with
9564	// empty or default values are omitted from API requests. However, any
9565	// non-pointer, non-interface field appearing in ForceSendFields will be
9566	// sent to the server regardless of whether the field is empty or not.
9567	// This may be used to include empty fields in Patch requests.
9568	ForceSendFields []string `json:"-"`
9569
9570	// NullFields is a list of field names (e.g. "Color") to include in API
9571	// requests with the JSON null value. By default, fields with empty
9572	// values are omitted from API requests. However, any field with an
9573	// empty value appearing in NullFields will be sent to the server as
9574	// null. It is an error if a field in this list has a non-empty value.
9575	// This may be used to include null fields in Patch requests.
9576	NullFields []string `json:"-"`
9577}
9578
9579func (s *GoogleCloudVisionV1p4beta1ColorInfo) MarshalJSON() ([]byte, error) {
9580	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
9581	raw := NoMethod(*s)
9582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9583}
9584
9585func (s *GoogleCloudVisionV1p4beta1ColorInfo) UnmarshalJSON(data []byte) error {
9586	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
9587	var s1 struct {
9588		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
9589		Score         gensupport.JSONFloat64 `json:"score"`
9590		*NoMethod
9591	}
9592	s1.NoMethod = (*NoMethod)(s)
9593	if err := json.Unmarshal(data, &s1); err != nil {
9594		return err
9595	}
9596	s.PixelFraction = float64(s1.PixelFraction)
9597	s.Score = float64(s1.Score)
9598	return nil
9599}
9600
9601// GoogleCloudVisionV1p4beta1CropHint: Single crop hint that is used to
9602// generate a new crop when serving an image.
9603type GoogleCloudVisionV1p4beta1CropHint struct {
9604	// BoundingPoly: The bounding polygon for the crop region. The
9605	// coordinates of the bounding box are in the original image's scale.
9606	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9607
9608	// Confidence: Confidence of this being a salient region. Range [0, 1].
9609	Confidence float64 `json:"confidence,omitempty"`
9610
9611	// ImportanceFraction: Fraction of importance of this salient region
9612	// with respect to the original image.
9613	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
9614
9615	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
9616	// unconditionally include in API requests. By default, fields with
9617	// empty or default values are omitted from API requests. However, any
9618	// non-pointer, non-interface field appearing in ForceSendFields will be
9619	// sent to the server regardless of whether the field is empty or not.
9620	// This may be used to include empty fields in Patch requests.
9621	ForceSendFields []string `json:"-"`
9622
9623	// NullFields is a list of field names (e.g. "BoundingPoly") to include
9624	// in API requests with the JSON null value. By default, fields with
9625	// empty values are omitted from API requests. However, any field with
9626	// an empty value appearing in NullFields will be sent to the server as
9627	// null. It is an error if a field in this list has a non-empty value.
9628	// This may be used to include null fields in Patch requests.
9629	NullFields []string `json:"-"`
9630}
9631
9632func (s *GoogleCloudVisionV1p4beta1CropHint) MarshalJSON() ([]byte, error) {
9633	type NoMethod GoogleCloudVisionV1p4beta1CropHint
9634	raw := NoMethod(*s)
9635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9636}
9637
9638func (s *GoogleCloudVisionV1p4beta1CropHint) UnmarshalJSON(data []byte) error {
9639	type NoMethod GoogleCloudVisionV1p4beta1CropHint
9640	var s1 struct {
9641		Confidence         gensupport.JSONFloat64 `json:"confidence"`
9642		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
9643		*NoMethod
9644	}
9645	s1.NoMethod = (*NoMethod)(s)
9646	if err := json.Unmarshal(data, &s1); err != nil {
9647		return err
9648	}
9649	s.Confidence = float64(s1.Confidence)
9650	s.ImportanceFraction = float64(s1.ImportanceFraction)
9651	return nil
9652}
9653
9654// GoogleCloudVisionV1p4beta1CropHintsAnnotation: Set of crop hints that
9655// are used to generate new crops when serving images.
9656type GoogleCloudVisionV1p4beta1CropHintsAnnotation struct {
9657	// CropHints: Crop hint results.
9658	CropHints []*GoogleCloudVisionV1p4beta1CropHint `json:"cropHints,omitempty"`
9659
9660	// ForceSendFields is a list of field names (e.g. "CropHints") to
9661	// unconditionally include in API requests. By default, fields with
9662	// empty or default values are omitted from API requests. However, any
9663	// non-pointer, non-interface field appearing in ForceSendFields will be
9664	// sent to the server regardless of whether the field is empty or not.
9665	// This may be used to include empty fields in Patch requests.
9666	ForceSendFields []string `json:"-"`
9667
9668	// NullFields is a list of field names (e.g. "CropHints") to include in
9669	// API requests with the JSON null value. By default, fields with empty
9670	// values are omitted from API requests. However, any field with an
9671	// empty value appearing in NullFields will be sent to the server as
9672	// null. It is an error if a field in this list has a non-empty value.
9673	// This may be used to include null fields in Patch requests.
9674	NullFields []string `json:"-"`
9675}
9676
9677func (s *GoogleCloudVisionV1p4beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
9678	type NoMethod GoogleCloudVisionV1p4beta1CropHintsAnnotation
9679	raw := NoMethod(*s)
9680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9681}
9682
9683// GoogleCloudVisionV1p4beta1DominantColorsAnnotation: Set of dominant
9684// colors and their corresponding scores.
9685type GoogleCloudVisionV1p4beta1DominantColorsAnnotation struct {
9686	// Colors: RGB color values with their score and pixel fraction.
9687	Colors []*GoogleCloudVisionV1p4beta1ColorInfo `json:"colors,omitempty"`
9688
9689	// ForceSendFields is a list of field names (e.g. "Colors") to
9690	// unconditionally include in API requests. By default, fields with
9691	// empty or default values are omitted from API requests. However, any
9692	// non-pointer, non-interface field appearing in ForceSendFields will be
9693	// sent to the server regardless of whether the field is empty or not.
9694	// This may be used to include empty fields in Patch requests.
9695	ForceSendFields []string `json:"-"`
9696
9697	// NullFields is a list of field names (e.g. "Colors") to include in API
9698	// requests with the JSON null value. By default, fields with empty
9699	// values are omitted from API requests. However, any field with an
9700	// empty value appearing in NullFields will be sent to the server as
9701	// null. It is an error if a field in this list has a non-empty value.
9702	// This may be used to include null fields in Patch requests.
9703	NullFields []string `json:"-"`
9704}
9705
9706func (s *GoogleCloudVisionV1p4beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
9707	type NoMethod GoogleCloudVisionV1p4beta1DominantColorsAnnotation
9708	raw := NoMethod(*s)
9709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9710}
9711
9712// GoogleCloudVisionV1p4beta1EntityAnnotation: Set of detected entity
9713// features.
9714type GoogleCloudVisionV1p4beta1EntityAnnotation struct {
9715	// BoundingPoly: Image region to which this entity belongs. Not produced
9716	// for `LABEL_DETECTION` features.
9717	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9718
9719	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
9720	// entity detection in an image. For example, for an image in which the
9721	// "Eiffel Tower" entity is detected, this field represents the
9722	// confidence that there is a tower in the query image. Range [0, 1].
9723	Confidence float64 `json:"confidence,omitempty"`
9724
9725	// Description: Entity textual description, expressed in its `locale`
9726	// language.
9727	Description string `json:"description,omitempty"`
9728
9729	// Locale: The language code for the locale in which the entity textual
9730	// `description` is expressed.
9731	Locale string `json:"locale,omitempty"`
9732
9733	// Locations: The location information for the detected entity. Multiple
9734	// `LocationInfo` elements can be present because one location may
9735	// indicate the location of the scene in the image, and another location
9736	// may indicate the location of the place where the image was taken.
9737	// Location information is usually present for landmarks.
9738	Locations []*GoogleCloudVisionV1p4beta1LocationInfo `json:"locations,omitempty"`
9739
9740	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
9741	// Graph Search API (https://developers.google.com/knowledge-graph/).
9742	Mid string `json:"mid,omitempty"`
9743
9744	// Properties: Some entities may have optional user-supplied `Property`
9745	// (name/value) fields, such a score or string that qualifies the
9746	// entity.
9747	Properties []*GoogleCloudVisionV1p4beta1Property `json:"properties,omitempty"`
9748
9749	// Score: Overall score of the result. Range [0, 1].
9750	Score float64 `json:"score,omitempty"`
9751
9752	// Topicality: The relevancy of the ICA (Image Content Annotation) label
9753	// to the image. For example, the relevancy of "tower" is likely higher
9754	// to an image containing the detected "Eiffel Tower" than to an image
9755	// containing a detected distant towering building, even though the
9756	// confidence that there is a tower in each image may be the same. Range
9757	// [0, 1].
9758	Topicality float64 `json:"topicality,omitempty"`
9759
9760	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
9761	// unconditionally include in API requests. By default, fields with
9762	// empty or default values are omitted from API requests. However, any
9763	// non-pointer, non-interface field appearing in ForceSendFields will be
9764	// sent to the server regardless of whether the field is empty or not.
9765	// This may be used to include empty fields in Patch requests.
9766	ForceSendFields []string `json:"-"`
9767
9768	// NullFields is a list of field names (e.g. "BoundingPoly") to include
9769	// in API requests with the JSON null value. By default, fields with
9770	// empty values are omitted from API requests. However, any field with
9771	// an empty value appearing in NullFields will be sent to the server as
9772	// null. It is an error if a field in this list has a non-empty value.
9773	// This may be used to include null fields in Patch requests.
9774	NullFields []string `json:"-"`
9775}
9776
9777func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
9778	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
9779	raw := NoMethod(*s)
9780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9781}
9782
9783func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
9784	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
9785	var s1 struct {
9786		Confidence gensupport.JSONFloat64 `json:"confidence"`
9787		Score      gensupport.JSONFloat64 `json:"score"`
9788		Topicality gensupport.JSONFloat64 `json:"topicality"`
9789		*NoMethod
9790	}
9791	s1.NoMethod = (*NoMethod)(s)
9792	if err := json.Unmarshal(data, &s1); err != nil {
9793		return err
9794	}
9795	s.Confidence = float64(s1.Confidence)
9796	s.Score = float64(s1.Score)
9797	s.Topicality = float64(s1.Topicality)
9798	return nil
9799}
9800
9801// GoogleCloudVisionV1p4beta1FaceAnnotation: A face annotation object
9802// contains the results of face detection.
9803type GoogleCloudVisionV1p4beta1FaceAnnotation struct {
9804	// AngerLikelihood: Anger likelihood.
9805	//
9806	// Possible values:
9807	//   "UNKNOWN" - Unknown likelihood.
9808	//   "VERY_UNLIKELY" - It is very unlikely.
9809	//   "UNLIKELY" - It is unlikely.
9810	//   "POSSIBLE" - It is possible.
9811	//   "LIKELY" - It is likely.
9812	//   "VERY_LIKELY" - It is very likely.
9813	AngerLikelihood string `json:"angerLikelihood,omitempty"`
9814
9815	// BlurredLikelihood: Blurred likelihood.
9816	//
9817	// Possible values:
9818	//   "UNKNOWN" - Unknown likelihood.
9819	//   "VERY_UNLIKELY" - It is very unlikely.
9820	//   "UNLIKELY" - It is unlikely.
9821	//   "POSSIBLE" - It is possible.
9822	//   "LIKELY" - It is likely.
9823	//   "VERY_LIKELY" - It is very likely.
9824	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
9825
9826	// BoundingPoly: The bounding polygon around the face. The coordinates
9827	// of the bounding box are in the original image's scale. The bounding
9828	// box is computed to "frame" the face in accordance with human
9829	// expectations. It is based on the landmarker results. Note that one or
9830	// more x and/or y coordinates may not be generated in the
9831	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
9832	// appears in the image to be annotated.
9833	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9834
9835	// DetectionConfidence: Detection confidence. Range [0, 1].
9836	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
9837
9838	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
9839	// than the `boundingPoly`, and encloses only the skin part of the face.
9840	// Typically, it is used to eliminate the face from any image analysis
9841	// that detects the "amount of skin" visible in an image. It is not
9842	// based on the landmarker results, only on the initial face detection,
9843	// hence the fd (face detection) prefix.
9844	FdBoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
9845
9846	// HeadwearLikelihood: Headwear likelihood.
9847	//
9848	// Possible values:
9849	//   "UNKNOWN" - Unknown likelihood.
9850	//   "VERY_UNLIKELY" - It is very unlikely.
9851	//   "UNLIKELY" - It is unlikely.
9852	//   "POSSIBLE" - It is possible.
9853	//   "LIKELY" - It is likely.
9854	//   "VERY_LIKELY" - It is very likely.
9855	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
9856
9857	// JoyLikelihood: Joy likelihood.
9858	//
9859	// Possible values:
9860	//   "UNKNOWN" - Unknown likelihood.
9861	//   "VERY_UNLIKELY" - It is very unlikely.
9862	//   "UNLIKELY" - It is unlikely.
9863	//   "POSSIBLE" - It is possible.
9864	//   "LIKELY" - It is likely.
9865	//   "VERY_LIKELY" - It is very likely.
9866	JoyLikelihood string `json:"joyLikelihood,omitempty"`
9867
9868	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
9869	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
9870
9871	// Landmarks: Detected face landmarks.
9872	Landmarks []*GoogleCloudVisionV1p4beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
9873
9874	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
9875	// that the face is pointing relative to the vertical plane
9876	// perpendicular to the image. Range [-180,180].
9877	PanAngle float64 `json:"panAngle,omitempty"`
9878
9879	// RecognitionResult: Additional recognition information. Only computed
9880	// if image_context.face_recognition_params is provided, **and** a match
9881	// is found to a Celebrity in the input CelebritySet. This field is
9882	// sorted in order of decreasing confidence values.
9883	RecognitionResult []*GoogleCloudVisionV1p4beta1FaceRecognitionResult `json:"recognitionResult,omitempty"`
9884
9885	// RollAngle: Roll angle, which indicates the amount of
9886	// clockwise/anti-clockwise rotation of the face relative to the image
9887	// vertical about the axis perpendicular to the face. Range [-180,180].
9888	RollAngle float64 `json:"rollAngle,omitempty"`
9889
9890	// SorrowLikelihood: Sorrow likelihood.
9891	//
9892	// Possible values:
9893	//   "UNKNOWN" - Unknown likelihood.
9894	//   "VERY_UNLIKELY" - It is very unlikely.
9895	//   "UNLIKELY" - It is unlikely.
9896	//   "POSSIBLE" - It is possible.
9897	//   "LIKELY" - It is likely.
9898	//   "VERY_LIKELY" - It is very likely.
9899	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
9900
9901	// SurpriseLikelihood: Surprise likelihood.
9902	//
9903	// Possible values:
9904	//   "UNKNOWN" - Unknown likelihood.
9905	//   "VERY_UNLIKELY" - It is very unlikely.
9906	//   "UNLIKELY" - It is unlikely.
9907	//   "POSSIBLE" - It is possible.
9908	//   "LIKELY" - It is likely.
9909	//   "VERY_LIKELY" - It is very likely.
9910	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
9911
9912	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
9913	// that the face is pointing relative to the image's horizontal plane.
9914	// Range [-180,180].
9915	TiltAngle float64 `json:"tiltAngle,omitempty"`
9916
9917	// UnderExposedLikelihood: Under-exposed likelihood.
9918	//
9919	// Possible values:
9920	//   "UNKNOWN" - Unknown likelihood.
9921	//   "VERY_UNLIKELY" - It is very unlikely.
9922	//   "UNLIKELY" - It is unlikely.
9923	//   "POSSIBLE" - It is possible.
9924	//   "LIKELY" - It is likely.
9925	//   "VERY_LIKELY" - It is very likely.
9926	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
9927
9928	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
9929	// unconditionally include in API requests. By default, fields with
9930	// empty or default values are omitted from API requests. However, any
9931	// non-pointer, non-interface field appearing in ForceSendFields will be
9932	// sent to the server regardless of whether the field is empty or not.
9933	// This may be used to include empty fields in Patch requests.
9934	ForceSendFields []string `json:"-"`
9935
9936	// NullFields is a list of field names (e.g. "AngerLikelihood") to
9937	// include in API requests with the JSON null value. By default, fields
9938	// with empty values are omitted from API requests. However, any field
9939	// with an empty value appearing in NullFields will be sent to the
9940	// server as null. It is an error if a field in this list has a
9941	// non-empty value. This may be used to include null fields in Patch
9942	// requests.
9943	NullFields []string `json:"-"`
9944}
9945
9946func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
9947	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
9948	raw := NoMethod(*s)
9949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9950}
9951
9952func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
9953	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
9954	var s1 struct {
9955		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
9956		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
9957		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
9958		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
9959		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
9960		*NoMethod
9961	}
9962	s1.NoMethod = (*NoMethod)(s)
9963	if err := json.Unmarshal(data, &s1); err != nil {
9964		return err
9965	}
9966	s.DetectionConfidence = float64(s1.DetectionConfidence)
9967	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
9968	s.PanAngle = float64(s1.PanAngle)
9969	s.RollAngle = float64(s1.RollAngle)
9970	s.TiltAngle = float64(s1.TiltAngle)
9971	return nil
9972}
9973
9974// GoogleCloudVisionV1p4beta1FaceAnnotationLandmark: A face-specific
9975// landmark (for example, a face feature).
9976type GoogleCloudVisionV1p4beta1FaceAnnotationLandmark struct {
9977	// Position: Face landmark position.
9978	Position *GoogleCloudVisionV1p4beta1Position `json:"position,omitempty"`
9979
9980	// Type: Face landmark type.
9981	//
9982	// Possible values:
9983	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
9984	// filled.
9985	//   "LEFT_EYE" - Left eye.
9986	//   "RIGHT_EYE" - Right eye.
9987	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
9988	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
9989	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
9990	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
9991	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
9992	//   "NOSE_TIP" - Nose tip.
9993	//   "UPPER_LIP" - Upper lip.
9994	//   "LOWER_LIP" - Lower lip.
9995	//   "MOUTH_LEFT" - Mouth left.
9996	//   "MOUTH_RIGHT" - Mouth right.
9997	//   "MOUTH_CENTER" - Mouth center.
9998	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
9999	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
10000	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
10001	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
10002	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
10003	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
10004	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
10005	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
10006	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
10007	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
10008	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
10009	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
10010	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
10011	//   "LEFT_EAR_TRAGION" - Left ear tragion.
10012	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
10013	//   "LEFT_EYE_PUPIL" - Left eye pupil.
10014	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
10015	//   "FOREHEAD_GLABELLA" - Forehead glabella.
10016	//   "CHIN_GNATHION" - Chin gnathion.
10017	//   "CHIN_LEFT_GONION" - Chin left gonion.
10018	//   "CHIN_RIGHT_GONION" - Chin right gonion.
10019	//   "LEFT_CHEEK_CENTER" - Left cheek center.
10020	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
10021	Type string `json:"type,omitempty"`
10022
10023	// ForceSendFields is a list of field names (e.g. "Position") to
10024	// unconditionally include in API requests. By default, fields with
10025	// empty or default values are omitted from API requests. However, any
10026	// non-pointer, non-interface field appearing in ForceSendFields will be
10027	// sent to the server regardless of whether the field is empty or not.
10028	// This may be used to include empty fields in Patch requests.
10029	ForceSendFields []string `json:"-"`
10030
10031	// NullFields is a list of field names (e.g. "Position") to include in
10032	// API requests with the JSON null value. By default, fields with empty
10033	// values are omitted from API requests. However, any field with an
10034	// empty value appearing in NullFields will be sent to the server as
10035	// null. It is an error if a field in this list has a non-empty value.
10036	// This may be used to include null fields in Patch requests.
10037	NullFields []string `json:"-"`
10038}
10039
10040func (s *GoogleCloudVisionV1p4beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
10041	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotationLandmark
10042	raw := NoMethod(*s)
10043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10044}
10045
10046// GoogleCloudVisionV1p4beta1FaceRecognitionResult: Information about a
10047// face's identity.
10048type GoogleCloudVisionV1p4beta1FaceRecognitionResult struct {
10049	// Celebrity: The Celebrity that this face was matched to.
10050	Celebrity *GoogleCloudVisionV1p4beta1Celebrity `json:"celebrity,omitempty"`
10051
10052	// Confidence: Recognition confidence. Range [0, 1].
10053	Confidence float64 `json:"confidence,omitempty"`
10054
10055	// ForceSendFields is a list of field names (e.g. "Celebrity") to
10056	// unconditionally include in API requests. By default, fields with
10057	// empty or default values are omitted from API requests. However, any
10058	// non-pointer, non-interface field appearing in ForceSendFields will be
10059	// sent to the server regardless of whether the field is empty or not.
10060	// This may be used to include empty fields in Patch requests.
10061	ForceSendFields []string `json:"-"`
10062
10063	// NullFields is a list of field names (e.g. "Celebrity") to include in
10064	// API requests with the JSON null value. By default, fields with empty
10065	// values are omitted from API requests. However, any field with an
10066	// empty value appearing in NullFields will be sent to the server as
10067	// null. It is an error if a field in this list has a non-empty value.
10068	// This may be used to include null fields in Patch requests.
10069	NullFields []string `json:"-"`
10070}
10071
10072func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) MarshalJSON() ([]byte, error) {
10073	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10074	raw := NoMethod(*s)
10075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10076}
10077
10078func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) UnmarshalJSON(data []byte) error {
10079	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10080	var s1 struct {
10081		Confidence gensupport.JSONFloat64 `json:"confidence"`
10082		*NoMethod
10083	}
10084	s1.NoMethod = (*NoMethod)(s)
10085	if err := json.Unmarshal(data, &s1); err != nil {
10086		return err
10087	}
10088	s.Confidence = float64(s1.Confidence)
10089	return nil
10090}
10091
10092// GoogleCloudVisionV1p4beta1GcsDestination: The Google Cloud Storage
10093// location where the output will be written to.
10094type GoogleCloudVisionV1p4beta1GcsDestination struct {
10095	// Uri: Google Cloud Storage URI prefix where the results will be
10096	// stored. Results will be in JSON format and preceded by its
10097	// corresponding input URI prefix. This field can either represent a gcs
10098	// file prefix or gcs directory. In either case, the uri should be
10099	// unique because in order to get all of the output files, you will need
10100	// to do a wildcard gcs search on the uri prefix you provide. Examples:
10101	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
10102	// will be created in gs://bucket-name/here/ and the names of the output
10103	// files will begin with "filenameprefix". * Directory Prefix:
10104	// gs://bucket-name/some/location/ The output files will be created in
10105	// gs://bucket-name/some/location/ and the names of the output files
10106	// could be anything because there was no filename prefix specified. If
10107	// multiple outputs, each response is still AnnotateFileResponse, each
10108	// of which contains some subset of the full list of
10109	// AnnotateImageResponse. Multiple outputs can happen if, for example,
10110	// the output JSON is too large and overflows into multiple sharded
10111	// files.
10112	Uri string `json:"uri,omitempty"`
10113
10114	// ForceSendFields is a list of field names (e.g. "Uri") to
10115	// unconditionally include in API requests. By default, fields with
10116	// empty or default values are omitted from API requests. However, any
10117	// non-pointer, non-interface field appearing in ForceSendFields will be
10118	// sent to the server regardless of whether the field is empty or not.
10119	// This may be used to include empty fields in Patch requests.
10120	ForceSendFields []string `json:"-"`
10121
10122	// NullFields is a list of field names (e.g. "Uri") to include in API
10123	// requests with the JSON null value. By default, fields with empty
10124	// values are omitted from API requests. However, any field with an
10125	// empty value appearing in NullFields will be sent to the server as
10126	// null. It is an error if a field in this list has a non-empty value.
10127	// This may be used to include null fields in Patch requests.
10128	NullFields []string `json:"-"`
10129}
10130
10131func (s *GoogleCloudVisionV1p4beta1GcsDestination) MarshalJSON() ([]byte, error) {
10132	type NoMethod GoogleCloudVisionV1p4beta1GcsDestination
10133	raw := NoMethod(*s)
10134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10135}
10136
10137// GoogleCloudVisionV1p4beta1GcsSource: The Google Cloud Storage
10138// location where the input will be read from.
10139type GoogleCloudVisionV1p4beta1GcsSource struct {
10140	// Uri: Google Cloud Storage URI for the input file. This must only be a
10141	// Google Cloud Storage object. Wildcards are not currently supported.
10142	Uri string `json:"uri,omitempty"`
10143
10144	// ForceSendFields is a list of field names (e.g. "Uri") to
10145	// unconditionally include in API requests. By default, fields with
10146	// empty or default values are omitted from API requests. However, any
10147	// non-pointer, non-interface field appearing in ForceSendFields will be
10148	// sent to the server regardless of whether the field is empty or not.
10149	// This may be used to include empty fields in Patch requests.
10150	ForceSendFields []string `json:"-"`
10151
10152	// NullFields is a list of field names (e.g. "Uri") to include in API
10153	// requests with the JSON null value. By default, fields with empty
10154	// values are omitted from API requests. However, any field with an
10155	// empty value appearing in NullFields will be sent to the server as
10156	// null. It is an error if a field in this list has a non-empty value.
10157	// This may be used to include null fields in Patch requests.
10158	NullFields []string `json:"-"`
10159}
10160
10161func (s *GoogleCloudVisionV1p4beta1GcsSource) MarshalJSON() ([]byte, error) {
10162	type NoMethod GoogleCloudVisionV1p4beta1GcsSource
10163	raw := NoMethod(*s)
10164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10165}
10166
10167// GoogleCloudVisionV1p4beta1ImageAnnotationContext: If an image was
10168// produced from a file (e.g. a PDF), this message gives information
10169// about the source of that image.
10170type GoogleCloudVisionV1p4beta1ImageAnnotationContext struct {
10171	// PageNumber: If the file was a PDF or TIFF, this field gives the page
10172	// number within the file used to produce the image.
10173	PageNumber int64 `json:"pageNumber,omitempty"`
10174
10175	// Uri: The URI of the file used to produce the image.
10176	Uri string `json:"uri,omitempty"`
10177
10178	// ForceSendFields is a list of field names (e.g. "PageNumber") to
10179	// unconditionally include in API requests. By default, fields with
10180	// empty or default values are omitted from API requests. However, any
10181	// non-pointer, non-interface field appearing in ForceSendFields will be
10182	// sent to the server regardless of whether the field is empty or not.
10183	// This may be used to include empty fields in Patch requests.
10184	ForceSendFields []string `json:"-"`
10185
10186	// NullFields is a list of field names (e.g. "PageNumber") to include in
10187	// API requests with the JSON null value. By default, fields with empty
10188	// values are omitted from API requests. However, any field with an
10189	// empty value appearing in NullFields will be sent to the server as
10190	// null. It is an error if a field in this list has a non-empty value.
10191	// This may be used to include null fields in Patch requests.
10192	NullFields []string `json:"-"`
10193}
10194
10195func (s *GoogleCloudVisionV1p4beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
10196	type NoMethod GoogleCloudVisionV1p4beta1ImageAnnotationContext
10197	raw := NoMethod(*s)
10198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10199}
10200
10201// GoogleCloudVisionV1p4beta1ImageProperties: Stores image properties,
10202// such as dominant colors.
10203type GoogleCloudVisionV1p4beta1ImageProperties struct {
10204	// DominantColors: If present, dominant colors completed successfully.
10205	DominantColors *GoogleCloudVisionV1p4beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
10206
10207	// ForceSendFields is a list of field names (e.g. "DominantColors") to
10208	// unconditionally include in API requests. By default, fields with
10209	// empty or default values are omitted from API requests. However, any
10210	// non-pointer, non-interface field appearing in ForceSendFields will be
10211	// sent to the server regardless of whether the field is empty or not.
10212	// This may be used to include empty fields in Patch requests.
10213	ForceSendFields []string `json:"-"`
10214
10215	// NullFields is a list of field names (e.g. "DominantColors") to
10216	// include in API requests with the JSON null value. By default, fields
10217	// with empty values are omitted from API requests. However, any field
10218	// with an empty value appearing in NullFields will be sent to the
10219	// server as null. It is an error if a field in this list has a
10220	// non-empty value. This may be used to include null fields in Patch
10221	// requests.
10222	NullFields []string `json:"-"`
10223}
10224
10225func (s *GoogleCloudVisionV1p4beta1ImageProperties) MarshalJSON() ([]byte, error) {
10226	type NoMethod GoogleCloudVisionV1p4beta1ImageProperties
10227	raw := NoMethod(*s)
10228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10229}
10230
10231// GoogleCloudVisionV1p4beta1ImportProductSetsResponse: Response message
10232// for the `ImportProductSets` method. This message is returned by the
10233// google.longrunning.Operations.GetOperation method in the returned
10234// google.longrunning.Operation.response field.
10235type GoogleCloudVisionV1p4beta1ImportProductSetsResponse struct {
10236	// ReferenceImages: The list of reference_images that are imported
10237	// successfully.
10238	ReferenceImages []*GoogleCloudVisionV1p4beta1ReferenceImage `json:"referenceImages,omitempty"`
10239
10240	// Statuses: The rpc status for each ImportProductSet request, including
10241	// both successes and errors. The number of statuses here matches the
10242	// number of lines in the csv file, and statuses[i] stores the success
10243	// or failure status of processing the i-th line of the csv, starting
10244	// from line 0.
10245	Statuses []*Status `json:"statuses,omitempty"`
10246
10247	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
10248	// unconditionally include in API requests. By default, fields with
10249	// empty or default values are omitted from API requests. However, any
10250	// non-pointer, non-interface field appearing in ForceSendFields will be
10251	// sent to the server regardless of whether the field is empty or not.
10252	// This may be used to include empty fields in Patch requests.
10253	ForceSendFields []string `json:"-"`
10254
10255	// NullFields is a list of field names (e.g. "ReferenceImages") to
10256	// include in API requests with the JSON null value. By default, fields
10257	// with empty values are omitted from API requests. However, any field
10258	// with an empty value appearing in NullFields will be sent to the
10259	// server as null. It is an error if a field in this list has a
10260	// non-empty value. This may be used to include null fields in Patch
10261	// requests.
10262	NullFields []string `json:"-"`
10263}
10264
10265func (s *GoogleCloudVisionV1p4beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
10266	type NoMethod GoogleCloudVisionV1p4beta1ImportProductSetsResponse
10267	raw := NoMethod(*s)
10268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10269}
10270
10271// GoogleCloudVisionV1p4beta1InputConfig: The desired input location and
10272// metadata.
10273type GoogleCloudVisionV1p4beta1InputConfig struct {
10274	// Content: File content, represented as a stream of bytes. Note: As
10275	// with all `bytes` fields, protobuffers use a pure binary
10276	// representation, whereas JSON representations use base64. Currently,
10277	// this field only works for BatchAnnotateFiles requests. It does not
10278	// work for AsyncBatchAnnotateFiles requests.
10279	Content string `json:"content,omitempty"`
10280
10281	// GcsSource: The Google Cloud Storage location to read the input from.
10282	GcsSource *GoogleCloudVisionV1p4beta1GcsSource `json:"gcsSource,omitempty"`
10283
10284	// MimeType: The type of the file. Currently only "application/pdf",
10285	// "image/tiff" and "image/gif" are supported. Wildcards are not
10286	// supported.
10287	MimeType string `json:"mimeType,omitempty"`
10288
10289	// ForceSendFields is a list of field names (e.g. "Content") to
10290	// unconditionally include in API requests. By default, fields with
10291	// empty or default values are omitted from API requests. However, any
10292	// non-pointer, non-interface field appearing in ForceSendFields will be
10293	// sent to the server regardless of whether the field is empty or not.
10294	// This may be used to include empty fields in Patch requests.
10295	ForceSendFields []string `json:"-"`
10296
10297	// NullFields is a list of field names (e.g. "Content") to include in
10298	// API 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 *GoogleCloudVisionV1p4beta1InputConfig) MarshalJSON() ([]byte, error) {
10307	type NoMethod GoogleCloudVisionV1p4beta1InputConfig
10308	raw := NoMethod(*s)
10309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10310}
10311
10312// GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation: Set of detected
10313// objects with bounding boxes.
10314type GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation struct {
10315	// BoundingPoly: Image region to which this object belongs. This must be
10316	// populated.
10317	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10318
10319	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
10320	// For more information, see
10321	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
10322	LanguageCode string `json:"languageCode,omitempty"`
10323
10324	// Mid: Object ID that should align with EntityAnnotation mid.
10325	Mid string `json:"mid,omitempty"`
10326
10327	// Name: Object name, expressed in its `language_code` language.
10328	Name string `json:"name,omitempty"`
10329
10330	// Score: Score of the result. Range [0, 1].
10331	Score float64 `json:"score,omitempty"`
10332
10333	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10334	// unconditionally include in API requests. By default, fields with
10335	// empty or default values are omitted from API requests. However, any
10336	// non-pointer, non-interface field appearing in ForceSendFields will be
10337	// sent to the server regardless of whether the field is empty or not.
10338	// This may be used to include empty fields in Patch requests.
10339	ForceSendFields []string `json:"-"`
10340
10341	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10342	// in API requests with the JSON null value. By default, fields with
10343	// empty values are omitted from API requests. However, any field with
10344	// an empty value appearing in NullFields will be sent to the server as
10345	// null. It is an error if a field in this list has a non-empty value.
10346	// This may be used to include null fields in Patch requests.
10347	NullFields []string `json:"-"`
10348}
10349
10350func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
10351	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10352	raw := NoMethod(*s)
10353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10354}
10355
10356func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
10357	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10358	var s1 struct {
10359		Score gensupport.JSONFloat64 `json:"score"`
10360		*NoMethod
10361	}
10362	s1.NoMethod = (*NoMethod)(s)
10363	if err := json.Unmarshal(data, &s1); err != nil {
10364		return err
10365	}
10366	s.Score = float64(s1.Score)
10367	return nil
10368}
10369
10370// GoogleCloudVisionV1p4beta1LocationInfo: Detected entity location
10371// information.
10372type GoogleCloudVisionV1p4beta1LocationInfo struct {
10373	// LatLng: lat/long location coordinates.
10374	LatLng *LatLng `json:"latLng,omitempty"`
10375
10376	// ForceSendFields is a list of field names (e.g. "LatLng") to
10377	// unconditionally include in API requests. By default, fields with
10378	// empty or default values are omitted from API requests. However, any
10379	// non-pointer, non-interface field appearing in ForceSendFields will be
10380	// sent to the server regardless of whether the field is empty or not.
10381	// This may be used to include empty fields in Patch requests.
10382	ForceSendFields []string `json:"-"`
10383
10384	// NullFields is a list of field names (e.g. "LatLng") to include in API
10385	// requests with the JSON null value. By default, fields with empty
10386	// values are omitted from API requests. However, any field with an
10387	// empty value appearing in NullFields will be sent to the server as
10388	// null. It is an error if a field in this list has a non-empty value.
10389	// This may be used to include null fields in Patch requests.
10390	NullFields []string `json:"-"`
10391}
10392
10393func (s *GoogleCloudVisionV1p4beta1LocationInfo) MarshalJSON() ([]byte, error) {
10394	type NoMethod GoogleCloudVisionV1p4beta1LocationInfo
10395	raw := NoMethod(*s)
10396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10397}
10398
10399// GoogleCloudVisionV1p4beta1NormalizedVertex: A vertex represents a 2D
10400// point in the image. NOTE: the normalized vertex coordinates are
10401// relative to the original image and range from 0 to 1.
10402type GoogleCloudVisionV1p4beta1NormalizedVertex struct {
10403	// X: X coordinate.
10404	X float64 `json:"x,omitempty"`
10405
10406	// Y: Y coordinate.
10407	Y float64 `json:"y,omitempty"`
10408
10409	// ForceSendFields is a list of field names (e.g. "X") to
10410	// unconditionally include in API requests. By default, fields with
10411	// empty or default values are omitted from API requests. However, any
10412	// non-pointer, non-interface field appearing in ForceSendFields will be
10413	// sent to the server regardless of whether the field is empty or not.
10414	// This may be used to include empty fields in Patch requests.
10415	ForceSendFields []string `json:"-"`
10416
10417	// NullFields is a list of field names (e.g. "X") to include in API
10418	// requests with the JSON null value. By default, fields with empty
10419	// values are omitted from API requests. However, any field with an
10420	// empty value appearing in NullFields will be sent to the server as
10421	// null. It is an error if a field in this list has a non-empty value.
10422	// This may be used to include null fields in Patch requests.
10423	NullFields []string `json:"-"`
10424}
10425
10426func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
10427	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
10428	raw := NoMethod(*s)
10429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10430}
10431
10432func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
10433	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
10434	var s1 struct {
10435		X gensupport.JSONFloat64 `json:"x"`
10436		Y gensupport.JSONFloat64 `json:"y"`
10437		*NoMethod
10438	}
10439	s1.NoMethod = (*NoMethod)(s)
10440	if err := json.Unmarshal(data, &s1); err != nil {
10441		return err
10442	}
10443	s.X = float64(s1.X)
10444	s.Y = float64(s1.Y)
10445	return nil
10446}
10447
10448// GoogleCloudVisionV1p4beta1OperationMetadata: Contains metadata for
10449// the BatchAnnotateImages operation.
10450type GoogleCloudVisionV1p4beta1OperationMetadata struct {
10451	// CreateTime: The time when the batch request was received.
10452	CreateTime string `json:"createTime,omitempty"`
10453
10454	// State: Current state of the batch operation.
10455	//
10456	// Possible values:
10457	//   "STATE_UNSPECIFIED" - Invalid.
10458	//   "CREATED" - Request is received.
10459	//   "RUNNING" - Request is actively being processed.
10460	//   "DONE" - The batch processing is done.
10461	//   "CANCELLED" - The batch processing was cancelled.
10462	State string `json:"state,omitempty"`
10463
10464	// UpdateTime: The time when the operation result was last updated.
10465	UpdateTime string `json:"updateTime,omitempty"`
10466
10467	// ForceSendFields is a list of field names (e.g. "CreateTime") to
10468	// unconditionally include in API requests. By default, fields with
10469	// empty or default values are omitted from API requests. However, any
10470	// non-pointer, non-interface field appearing in ForceSendFields will be
10471	// sent to the server regardless of whether the field is empty or not.
10472	// This may be used to include empty fields in Patch requests.
10473	ForceSendFields []string `json:"-"`
10474
10475	// NullFields is a list of field names (e.g. "CreateTime") to include in
10476	// API requests with the JSON null value. By default, fields with empty
10477	// values are omitted from API requests. However, any field with an
10478	// empty value appearing in NullFields will be sent to the server as
10479	// null. It is an error if a field in this list has a non-empty value.
10480	// This may be used to include null fields in Patch requests.
10481	NullFields []string `json:"-"`
10482}
10483
10484func (s *GoogleCloudVisionV1p4beta1OperationMetadata) MarshalJSON() ([]byte, error) {
10485	type NoMethod GoogleCloudVisionV1p4beta1OperationMetadata
10486	raw := NoMethod(*s)
10487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10488}
10489
10490// GoogleCloudVisionV1p4beta1OutputConfig: The desired output location
10491// and metadata.
10492type GoogleCloudVisionV1p4beta1OutputConfig struct {
10493	// BatchSize: The max number of response protos to put into each output
10494	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
10495	// not specified, the default value is 20. For example, for one pdf file
10496	// with 100 pages, 100 response protos will be generated. If
10497	// `batch_size` = 20, then 5 json files each containing 20 response
10498	// protos will be written under the prefix `gcs_destination`.`uri`.
10499	// Currently, batch_size only applies to GcsDestination, with potential
10500	// future support for other output configurations.
10501	BatchSize int64 `json:"batchSize,omitempty"`
10502
10503	// GcsDestination: The Google Cloud Storage location to write the
10504	// output(s) to.
10505	GcsDestination *GoogleCloudVisionV1p4beta1GcsDestination `json:"gcsDestination,omitempty"`
10506
10507	// ForceSendFields is a list of field names (e.g. "BatchSize") to
10508	// unconditionally include in API requests. By default, fields with
10509	// empty or default values are omitted from API requests. However, any
10510	// non-pointer, non-interface field appearing in ForceSendFields will be
10511	// sent to the server regardless of whether the field is empty or not.
10512	// This may be used to include empty fields in Patch requests.
10513	ForceSendFields []string `json:"-"`
10514
10515	// NullFields is a list of field names (e.g. "BatchSize") to include in
10516	// API requests with the JSON null value. By default, fields with empty
10517	// values are omitted from API requests. However, any field with an
10518	// empty value appearing in NullFields will be sent to the server as
10519	// null. It is an error if a field in this list has a non-empty value.
10520	// This may be used to include null fields in Patch requests.
10521	NullFields []string `json:"-"`
10522}
10523
10524func (s *GoogleCloudVisionV1p4beta1OutputConfig) MarshalJSON() ([]byte, error) {
10525	type NoMethod GoogleCloudVisionV1p4beta1OutputConfig
10526	raw := NoMethod(*s)
10527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10528}
10529
10530// GoogleCloudVisionV1p4beta1Page: Detected page from OCR.
10531type GoogleCloudVisionV1p4beta1Page struct {
10532	// Blocks: List of blocks of text, images etc on this page.
10533	Blocks []*GoogleCloudVisionV1p4beta1Block `json:"blocks,omitempty"`
10534
10535	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
10536	Confidence float64 `json:"confidence,omitempty"`
10537
10538	// Height: Page height. For PDFs the unit is points. For images
10539	// (including TIFFs) the unit is pixels.
10540	Height int64 `json:"height,omitempty"`
10541
10542	// Property: Additional information detected on the page.
10543	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10544
10545	// Width: Page width. For PDFs the unit is points. For images (including
10546	// TIFFs) the unit is pixels.
10547	Width int64 `json:"width,omitempty"`
10548
10549	// ForceSendFields is a list of field names (e.g. "Blocks") to
10550	// unconditionally include in API requests. By default, fields with
10551	// empty or default values are omitted from API requests. However, any
10552	// non-pointer, non-interface field appearing in ForceSendFields will be
10553	// sent to the server regardless of whether the field is empty or not.
10554	// This may be used to include empty fields in Patch requests.
10555	ForceSendFields []string `json:"-"`
10556
10557	// NullFields is a list of field names (e.g. "Blocks") to include in API
10558	// requests with the JSON null value. By default, fields with empty
10559	// values are omitted from API requests. However, any field with an
10560	// empty value appearing in NullFields will be sent to the server as
10561	// null. It is an error if a field in this list has a non-empty value.
10562	// This may be used to include null fields in Patch requests.
10563	NullFields []string `json:"-"`
10564}
10565
10566func (s *GoogleCloudVisionV1p4beta1Page) MarshalJSON() ([]byte, error) {
10567	type NoMethod GoogleCloudVisionV1p4beta1Page
10568	raw := NoMethod(*s)
10569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10570}
10571
10572func (s *GoogleCloudVisionV1p4beta1Page) UnmarshalJSON(data []byte) error {
10573	type NoMethod GoogleCloudVisionV1p4beta1Page
10574	var s1 struct {
10575		Confidence gensupport.JSONFloat64 `json:"confidence"`
10576		*NoMethod
10577	}
10578	s1.NoMethod = (*NoMethod)(s)
10579	if err := json.Unmarshal(data, &s1); err != nil {
10580		return err
10581	}
10582	s.Confidence = float64(s1.Confidence)
10583	return nil
10584}
10585
10586// GoogleCloudVisionV1p4beta1Paragraph: Structural unit of text
10587// representing a number of words in certain order.
10588type GoogleCloudVisionV1p4beta1Paragraph struct {
10589	// BoundingBox: The bounding box for the paragraph. The vertices are in
10590	// the order of top-left, top-right, bottom-right, bottom-left. When a
10591	// rotation of the bounding box is detected the rotation is represented
10592	// as around the top-left corner as defined when the text is read in the
10593	// 'natural' orientation. For example: * when the text is horizontal it
10594	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
10595	// around the top-left corner it becomes: 2----3 | | 1----0 and the
10596	// vertex order will still be (0, 1, 2, 3).
10597	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10598
10599	// Confidence: Confidence of the OCR results for the paragraph. Range
10600	// [0, 1].
10601	Confidence float64 `json:"confidence,omitempty"`
10602
10603	// Property: Additional information detected for the paragraph.
10604	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10605
10606	// Words: List of all words in this paragraph.
10607	Words []*GoogleCloudVisionV1p4beta1Word `json:"words,omitempty"`
10608
10609	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
10610	// unconditionally include in API requests. By default, fields with
10611	// empty or default values are omitted from API requests. However, any
10612	// non-pointer, non-interface field appearing in ForceSendFields will be
10613	// sent to the server regardless of whether the field is empty or not.
10614	// This may be used to include empty fields in Patch requests.
10615	ForceSendFields []string `json:"-"`
10616
10617	// NullFields is a list of field names (e.g. "BoundingBox") to include
10618	// in API requests with the JSON null value. By default, fields with
10619	// empty values are omitted from API requests. However, any field with
10620	// an empty value appearing in NullFields will be sent to the server as
10621	// null. It is an error if a field in this list has a non-empty value.
10622	// This may be used to include null fields in Patch requests.
10623	NullFields []string `json:"-"`
10624}
10625
10626func (s *GoogleCloudVisionV1p4beta1Paragraph) MarshalJSON() ([]byte, error) {
10627	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
10628	raw := NoMethod(*s)
10629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10630}
10631
10632func (s *GoogleCloudVisionV1p4beta1Paragraph) UnmarshalJSON(data []byte) error {
10633	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
10634	var s1 struct {
10635		Confidence gensupport.JSONFloat64 `json:"confidence"`
10636		*NoMethod
10637	}
10638	s1.NoMethod = (*NoMethod)(s)
10639	if err := json.Unmarshal(data, &s1); err != nil {
10640		return err
10641	}
10642	s.Confidence = float64(s1.Confidence)
10643	return nil
10644}
10645
10646// GoogleCloudVisionV1p4beta1Position: A 3D position in the image, used
10647// primarily for Face detection landmarks. A valid Position must have
10648// both x and y coordinates. The position coordinates are in the same
10649// scale as the original image.
10650type GoogleCloudVisionV1p4beta1Position struct {
10651	// X: X coordinate.
10652	X float64 `json:"x,omitempty"`
10653
10654	// Y: Y coordinate.
10655	Y float64 `json:"y,omitempty"`
10656
10657	// Z: Z coordinate (or depth).
10658	Z float64 `json:"z,omitempty"`
10659
10660	// ForceSendFields is a list of field names (e.g. "X") to
10661	// unconditionally include in API requests. By default, fields with
10662	// empty or default values are omitted from API requests. However, any
10663	// non-pointer, non-interface field appearing in ForceSendFields will be
10664	// sent to the server regardless of whether the field is empty or not.
10665	// This may be used to include empty fields in Patch requests.
10666	ForceSendFields []string `json:"-"`
10667
10668	// NullFields is a list of field names (e.g. "X") to include in API
10669	// requests with the JSON null value. By default, fields with empty
10670	// values are omitted from API requests. However, any field with an
10671	// empty value appearing in NullFields will be sent to the server as
10672	// null. It is an error if a field in this list has a non-empty value.
10673	// This may be used to include null fields in Patch requests.
10674	NullFields []string `json:"-"`
10675}
10676
10677func (s *GoogleCloudVisionV1p4beta1Position) MarshalJSON() ([]byte, error) {
10678	type NoMethod GoogleCloudVisionV1p4beta1Position
10679	raw := NoMethod(*s)
10680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10681}
10682
10683func (s *GoogleCloudVisionV1p4beta1Position) UnmarshalJSON(data []byte) error {
10684	type NoMethod GoogleCloudVisionV1p4beta1Position
10685	var s1 struct {
10686		X gensupport.JSONFloat64 `json:"x"`
10687		Y gensupport.JSONFloat64 `json:"y"`
10688		Z gensupport.JSONFloat64 `json:"z"`
10689		*NoMethod
10690	}
10691	s1.NoMethod = (*NoMethod)(s)
10692	if err := json.Unmarshal(data, &s1); err != nil {
10693		return err
10694	}
10695	s.X = float64(s1.X)
10696	s.Y = float64(s1.Y)
10697	s.Z = float64(s1.Z)
10698	return nil
10699}
10700
10701// GoogleCloudVisionV1p4beta1Product: A Product contains
10702// ReferenceImages.
10703type GoogleCloudVisionV1p4beta1Product struct {
10704	// Description: User-provided metadata to be stored with this product.
10705	// Must be at most 4096 characters long.
10706	Description string `json:"description,omitempty"`
10707
10708	// DisplayName: The user-provided name for this Product. Must not be
10709	// empty. Must be at most 4096 characters long.
10710	DisplayName string `json:"displayName,omitempty"`
10711
10712	// Name: The resource name of the product. Format is:
10713	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
10714	// field is ignored when creating a product.
10715	Name string `json:"name,omitempty"`
10716
10717	// ProductCategory: Immutable. The category for the product identified
10718	// by the reference image. This should be one of "homegoods-v2",
10719	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
10720	// legacy categories "homegoods", "apparel", and "toys" are still
10721	// supported, but these should not be used for new products.
10722	ProductCategory string `json:"productCategory,omitempty"`
10723
10724	// ProductLabels: Key-value pairs that can be attached to a product. At
10725	// query time, constraints can be specified based on the product_labels.
10726	// Note that integer values can be provided as strings, e.g. "1199".
10727	// Only strings with integer values can match a range-based restriction
10728	// which is to be supported soon. Multiple values can be assigned to the
10729	// same key. One product may have up to 500 product_labels. Notice that
10730	// the total number of distinct product_labels over all products in one
10731	// ProductSet cannot exceed 1M, otherwise the product search pipeline
10732	// will refuse to work for that ProductSet.
10733	ProductLabels []*GoogleCloudVisionV1p4beta1ProductKeyValue `json:"productLabels,omitempty"`
10734
10735	// ForceSendFields is a list of field names (e.g. "Description") to
10736	// unconditionally include in API requests. By default, fields with
10737	// empty or default values are omitted from API requests. However, any
10738	// non-pointer, non-interface field appearing in ForceSendFields will be
10739	// sent to the server regardless of whether the field is empty or not.
10740	// This may be used to include empty fields in Patch requests.
10741	ForceSendFields []string `json:"-"`
10742
10743	// NullFields is a list of field names (e.g. "Description") to include
10744	// in API requests with the JSON null value. By default, fields with
10745	// empty values are omitted from API requests. However, any field with
10746	// an empty value appearing in NullFields will be sent to the server as
10747	// null. It is an error if a field in this list has a non-empty value.
10748	// This may be used to include null fields in Patch requests.
10749	NullFields []string `json:"-"`
10750}
10751
10752func (s *GoogleCloudVisionV1p4beta1Product) MarshalJSON() ([]byte, error) {
10753	type NoMethod GoogleCloudVisionV1p4beta1Product
10754	raw := NoMethod(*s)
10755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10756}
10757
10758// GoogleCloudVisionV1p4beta1ProductKeyValue: A product label
10759// represented as a key-value pair.
10760type GoogleCloudVisionV1p4beta1ProductKeyValue struct {
10761	// Key: The key of the label attached to the product. Cannot be empty
10762	// and cannot exceed 128 bytes.
10763	Key string `json:"key,omitempty"`
10764
10765	// Value: The value of the label attached to the product. Cannot be
10766	// empty and cannot exceed 128 bytes.
10767	Value string `json:"value,omitempty"`
10768
10769	// ForceSendFields is a list of field names (e.g. "Key") to
10770	// unconditionally include in API requests. By default, fields with
10771	// empty or default values are omitted from API requests. However, any
10772	// non-pointer, non-interface field appearing in ForceSendFields will be
10773	// sent to the server regardless of whether the field is empty or not.
10774	// This may be used to include empty fields in Patch requests.
10775	ForceSendFields []string `json:"-"`
10776
10777	// NullFields is a list of field names (e.g. "Key") 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 *GoogleCloudVisionV1p4beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
10787	type NoMethod GoogleCloudVisionV1p4beta1ProductKeyValue
10788	raw := NoMethod(*s)
10789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10790}
10791
10792// GoogleCloudVisionV1p4beta1ProductSearchResults: Results for a product
10793// search request.
10794type GoogleCloudVisionV1p4beta1ProductSearchResults struct {
10795	// IndexTime: Timestamp of the index which provided these results.
10796	// Products added to the product set and products removed from the
10797	// product set after this time are not reflected in the current results.
10798	IndexTime string `json:"indexTime,omitempty"`
10799
10800	// ProductGroupedResults: List of results grouped by products detected
10801	// in the query image. Each entry corresponds to one bounding polygon in
10802	// the query image, and contains the matching products specific to that
10803	// region. There may be duplicate product matches in the union of all
10804	// the per-product results.
10805	ProductGroupedResults []*GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
10806
10807	// Results: List of results, one for each product match.
10808	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
10809
10810	// ForceSendFields is a list of field names (e.g. "IndexTime") to
10811	// unconditionally include in API requests. By default, fields with
10812	// empty or default values are omitted from API requests. However, any
10813	// non-pointer, non-interface field appearing in ForceSendFields will be
10814	// sent to the server regardless of whether the field is empty or not.
10815	// This may be used to include empty fields in Patch requests.
10816	ForceSendFields []string `json:"-"`
10817
10818	// NullFields is a list of field names (e.g. "IndexTime") to include in
10819	// API requests with the JSON null value. By default, fields with empty
10820	// values are omitted from API requests. However, any field with an
10821	// empty value appearing in NullFields will be sent to the server as
10822	// null. It is an error if a field in this list has a non-empty value.
10823	// This may be used to include null fields in Patch requests.
10824	NullFields []string `json:"-"`
10825}
10826
10827func (s *GoogleCloudVisionV1p4beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
10828	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResults
10829	raw := NoMethod(*s)
10830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10831}
10832
10833// GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult:
10834// Information about the products similar to a single product in a query
10835// image.
10836type GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult struct {
10837	// BoundingPoly: The bounding polygon around the product detected in the
10838	// query image.
10839	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10840
10841	// ObjectAnnotations: List of generic predictions for the object in the
10842	// bounding box.
10843	ObjectAnnotations []*GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
10844
10845	// Results: List of results, one for each product match.
10846	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
10847
10848	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10849	// unconditionally include in API requests. By default, fields with
10850	// empty or default values are omitted from API requests. However, any
10851	// non-pointer, non-interface field appearing in ForceSendFields will be
10852	// sent to the server regardless of whether the field is empty or not.
10853	// This may be used to include empty fields in Patch requests.
10854	ForceSendFields []string `json:"-"`
10855
10856	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10857	// in API requests with the JSON null value. By default, fields with
10858	// empty values are omitted from API requests. However, any field with
10859	// an empty value appearing in NullFields will be sent to the server as
10860	// null. It is an error if a field in this list has a non-empty value.
10861	// This may be used to include null fields in Patch requests.
10862	NullFields []string `json:"-"`
10863}
10864
10865func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
10866	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult
10867	raw := NoMethod(*s)
10868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10869}
10870
10871// GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation:
10872// Prediction for what the object in the bounding box is.
10873type GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation struct {
10874	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
10875	// For more information, see
10876	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
10877	LanguageCode string `json:"languageCode,omitempty"`
10878
10879	// Mid: Object ID that should align with EntityAnnotation mid.
10880	Mid string `json:"mid,omitempty"`
10881
10882	// Name: Object name, expressed in its `language_code` language.
10883	Name string `json:"name,omitempty"`
10884
10885	// Score: Score of the result. Range [0, 1].
10886	Score float64 `json:"score,omitempty"`
10887
10888	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
10889	// unconditionally include in API requests. By default, fields with
10890	// empty or default values are omitted from API requests. However, any
10891	// non-pointer, non-interface field appearing in ForceSendFields will be
10892	// sent to the server regardless of whether the field is empty or not.
10893	// This may be used to include empty fields in Patch requests.
10894	ForceSendFields []string `json:"-"`
10895
10896	// NullFields is a list of field names (e.g. "LanguageCode") to include
10897	// in API requests with the JSON null value. By default, fields with
10898	// empty values are omitted from API requests. However, any field with
10899	// an empty value appearing in NullFields will be sent to the server as
10900	// null. It is an error if a field in this list has a non-empty value.
10901	// This may be used to include null fields in Patch requests.
10902	NullFields []string `json:"-"`
10903}
10904
10905func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
10906	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
10907	raw := NoMethod(*s)
10908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10909}
10910
10911func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
10912	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
10913	var s1 struct {
10914		Score gensupport.JSONFloat64 `json:"score"`
10915		*NoMethod
10916	}
10917	s1.NoMethod = (*NoMethod)(s)
10918	if err := json.Unmarshal(data, &s1); err != nil {
10919		return err
10920	}
10921	s.Score = float64(s1.Score)
10922	return nil
10923}
10924
10925// GoogleCloudVisionV1p4beta1ProductSearchResultsResult: Information
10926// about a product.
10927type GoogleCloudVisionV1p4beta1ProductSearchResultsResult struct {
10928	// Image: The resource name of the image from the product that is the
10929	// closest match to the query.
10930	Image string `json:"image,omitempty"`
10931
10932	// Product: The Product.
10933	Product *GoogleCloudVisionV1p4beta1Product `json:"product,omitempty"`
10934
10935	// Score: A confidence level on the match, ranging from 0 (no
10936	// confidence) to 1 (full confidence).
10937	Score float64 `json:"score,omitempty"`
10938
10939	// ForceSendFields is a list of field names (e.g. "Image") to
10940	// unconditionally include in API requests. By default, fields with
10941	// empty or default values are omitted from API requests. However, any
10942	// non-pointer, non-interface field appearing in ForceSendFields will be
10943	// sent to the server regardless of whether the field is empty or not.
10944	// This may be used to include empty fields in Patch requests.
10945	ForceSendFields []string `json:"-"`
10946
10947	// NullFields is a list of field names (e.g. "Image") to include in API
10948	// requests with the JSON null value. By default, fields with empty
10949	// values are omitted from API requests. However, any field with an
10950	// empty value appearing in NullFields will be sent to the server as
10951	// null. It is an error if a field in this list has a non-empty value.
10952	// This may be used to include null fields in Patch requests.
10953	NullFields []string `json:"-"`
10954}
10955
10956func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
10957	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
10958	raw := NoMethod(*s)
10959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10960}
10961
10962func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
10963	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
10964	var s1 struct {
10965		Score gensupport.JSONFloat64 `json:"score"`
10966		*NoMethod
10967	}
10968	s1.NoMethod = (*NoMethod)(s)
10969	if err := json.Unmarshal(data, &s1); err != nil {
10970		return err
10971	}
10972	s.Score = float64(s1.Score)
10973	return nil
10974}
10975
10976// GoogleCloudVisionV1p4beta1Property: A `Property` consists of a
10977// user-supplied name/value pair.
10978type GoogleCloudVisionV1p4beta1Property struct {
10979	// Name: Name of the property.
10980	Name string `json:"name,omitempty"`
10981
10982	// Uint64Value: Value of numeric properties.
10983	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
10984
10985	// Value: Value of the property.
10986	Value string `json:"value,omitempty"`
10987
10988	// ForceSendFields is a list of field names (e.g. "Name") to
10989	// unconditionally include in API requests. By default, fields with
10990	// empty or default values are omitted from API requests. However, any
10991	// non-pointer, non-interface field appearing in ForceSendFields will be
10992	// sent to the server regardless of whether the field is empty or not.
10993	// This may be used to include empty fields in Patch requests.
10994	ForceSendFields []string `json:"-"`
10995
10996	// NullFields is a list of field names (e.g. "Name") to include in API
10997	// requests with the JSON null value. By default, fields with empty
10998	// values are omitted from API requests. However, any field with an
10999	// empty value appearing in NullFields will be sent to the server as
11000	// null. It is an error if a field in this list has a non-empty value.
11001	// This may be used to include null fields in Patch requests.
11002	NullFields []string `json:"-"`
11003}
11004
11005func (s *GoogleCloudVisionV1p4beta1Property) MarshalJSON() ([]byte, error) {
11006	type NoMethod GoogleCloudVisionV1p4beta1Property
11007	raw := NoMethod(*s)
11008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11009}
11010
11011// GoogleCloudVisionV1p4beta1ReferenceImage: A `ReferenceImage`
11012// represents a product image and its associated metadata, such as
11013// bounding boxes.
11014type GoogleCloudVisionV1p4beta1ReferenceImage struct {
11015	// BoundingPolys: Optional. Bounding polygons around the areas of
11016	// interest in the reference image. If this field is empty, the system
11017	// will try to detect regions of interest. At most 10 bounding polygons
11018	// will be used. The provided shape is converted into a non-rotated
11019	// rectangle. Once converted, the small edge of the rectangle must be
11020	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
11021	// less (i.e. 1:3 is ok; 1:5 is not).
11022	BoundingPolys []*GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPolys,omitempty"`
11023
11024	// Name: The resource name of the reference image. Format is:
11025	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
11026	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
11027	Name string `json:"name,omitempty"`
11028
11029	// Uri: Required. The Google Cloud Storage URI of the reference image.
11030	// The URI must start with `gs://`.
11031	Uri string `json:"uri,omitempty"`
11032
11033	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
11034	// unconditionally include in API requests. By default, fields with
11035	// empty or default values are omitted from API requests. However, any
11036	// non-pointer, non-interface field appearing in ForceSendFields will be
11037	// sent to the server regardless of whether the field is empty or not.
11038	// This may be used to include empty fields in Patch requests.
11039	ForceSendFields []string `json:"-"`
11040
11041	// NullFields is a list of field names (e.g. "BoundingPolys") to include
11042	// in API requests with the JSON null value. By default, fields with
11043	// empty values are omitted from API requests. However, any field with
11044	// an empty value appearing in NullFields will be sent to the server as
11045	// null. It is an error if a field in this list has a non-empty value.
11046	// This may be used to include null fields in Patch requests.
11047	NullFields []string `json:"-"`
11048}
11049
11050func (s *GoogleCloudVisionV1p4beta1ReferenceImage) MarshalJSON() ([]byte, error) {
11051	type NoMethod GoogleCloudVisionV1p4beta1ReferenceImage
11052	raw := NoMethod(*s)
11053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11054}
11055
11056// GoogleCloudVisionV1p4beta1SafeSearchAnnotation: Set of features
11057// pertaining to the image, computed by computer vision methods over
11058// safe-search verticals (for example, adult, spoof, medical, violence).
11059type GoogleCloudVisionV1p4beta1SafeSearchAnnotation struct {
11060	// Adult: Represents the adult content likelihood for the image. Adult
11061	// content may contain elements such as nudity, pornographic images or
11062	// cartoons, or sexual activities.
11063	//
11064	// Possible values:
11065	//   "UNKNOWN" - Unknown likelihood.
11066	//   "VERY_UNLIKELY" - It is very unlikely.
11067	//   "UNLIKELY" - It is unlikely.
11068	//   "POSSIBLE" - It is possible.
11069	//   "LIKELY" - It is likely.
11070	//   "VERY_LIKELY" - It is very likely.
11071	Adult string `json:"adult,omitempty"`
11072
11073	// Medical: Likelihood that this is a medical image.
11074	//
11075	// Possible values:
11076	//   "UNKNOWN" - Unknown likelihood.
11077	//   "VERY_UNLIKELY" - It is very unlikely.
11078	//   "UNLIKELY" - It is unlikely.
11079	//   "POSSIBLE" - It is possible.
11080	//   "LIKELY" - It is likely.
11081	//   "VERY_LIKELY" - It is very likely.
11082	Medical string `json:"medical,omitempty"`
11083
11084	// Racy: Likelihood that the request image contains racy content. Racy
11085	// content may include (but is not limited to) skimpy or sheer clothing,
11086	// strategically covered nudity, lewd or provocative poses, or close-ups
11087	// of sensitive body areas.
11088	//
11089	// Possible values:
11090	//   "UNKNOWN" - Unknown likelihood.
11091	//   "VERY_UNLIKELY" - It is very unlikely.
11092	//   "UNLIKELY" - It is unlikely.
11093	//   "POSSIBLE" - It is possible.
11094	//   "LIKELY" - It is likely.
11095	//   "VERY_LIKELY" - It is very likely.
11096	Racy string `json:"racy,omitempty"`
11097
11098	// Spoof: Spoof likelihood. The likelihood that an modification was made
11099	// to the image's canonical version to make it appear funny or
11100	// offensive.
11101	//
11102	// Possible values:
11103	//   "UNKNOWN" - Unknown likelihood.
11104	//   "VERY_UNLIKELY" - It is very unlikely.
11105	//   "UNLIKELY" - It is unlikely.
11106	//   "POSSIBLE" - It is possible.
11107	//   "LIKELY" - It is likely.
11108	//   "VERY_LIKELY" - It is very likely.
11109	Spoof string `json:"spoof,omitempty"`
11110
11111	// Violence: Likelihood that this image contains violent content.
11112	//
11113	// Possible values:
11114	//   "UNKNOWN" - Unknown likelihood.
11115	//   "VERY_UNLIKELY" - It is very unlikely.
11116	//   "UNLIKELY" - It is unlikely.
11117	//   "POSSIBLE" - It is possible.
11118	//   "LIKELY" - It is likely.
11119	//   "VERY_LIKELY" - It is very likely.
11120	Violence string `json:"violence,omitempty"`
11121
11122	// ForceSendFields is a list of field names (e.g. "Adult") to
11123	// unconditionally include in API requests. By default, fields with
11124	// empty or default values are omitted from API requests. However, any
11125	// non-pointer, non-interface field appearing in ForceSendFields will be
11126	// sent to the server regardless of whether the field is empty or not.
11127	// This may be used to include empty fields in Patch requests.
11128	ForceSendFields []string `json:"-"`
11129
11130	// NullFields is a list of field names (e.g. "Adult") to include in API
11131	// requests with the JSON null value. By default, fields with empty
11132	// values are omitted from API requests. However, any field with an
11133	// empty value appearing in NullFields will be sent to the server as
11134	// null. It is an error if a field in this list has a non-empty value.
11135	// This may be used to include null fields in Patch requests.
11136	NullFields []string `json:"-"`
11137}
11138
11139func (s *GoogleCloudVisionV1p4beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
11140	type NoMethod GoogleCloudVisionV1p4beta1SafeSearchAnnotation
11141	raw := NoMethod(*s)
11142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11143}
11144
11145// GoogleCloudVisionV1p4beta1Symbol: A single symbol representation.
11146type GoogleCloudVisionV1p4beta1Symbol struct {
11147	// BoundingBox: The bounding box for the symbol. The vertices are in the
11148	// order of top-left, top-right, bottom-right, bottom-left. When a
11149	// rotation of the bounding box is detected the rotation is represented
11150	// as around the top-left corner as defined when the text is read in the
11151	// 'natural' orientation. For example: * when the text is horizontal it
11152	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
11153	// around the top-left corner it becomes: 2----3 | | 1----0 and the
11154	// vertex order will still be (0, 1, 2, 3).
11155	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11156
11157	// Confidence: Confidence of the OCR results for the symbol. Range [0,
11158	// 1].
11159	Confidence float64 `json:"confidence,omitempty"`
11160
11161	// Property: Additional information detected for the symbol.
11162	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11163
11164	// Text: The actual UTF-8 representation of the symbol.
11165	Text string `json:"text,omitempty"`
11166
11167	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11168	// unconditionally include in API requests. By default, fields with
11169	// empty or default values are omitted from API requests. However, any
11170	// non-pointer, non-interface field appearing in ForceSendFields will be
11171	// sent to the server regardless of whether the field is empty or not.
11172	// This may be used to include empty fields in Patch requests.
11173	ForceSendFields []string `json:"-"`
11174
11175	// NullFields is a list of field names (e.g. "BoundingBox") to include
11176	// in API requests with the JSON null value. By default, fields with
11177	// empty values are omitted from API requests. However, any field with
11178	// an empty value appearing in NullFields will be sent to the server as
11179	// null. It is an error if a field in this list has a non-empty value.
11180	// This may be used to include null fields in Patch requests.
11181	NullFields []string `json:"-"`
11182}
11183
11184func (s *GoogleCloudVisionV1p4beta1Symbol) MarshalJSON() ([]byte, error) {
11185	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11186	raw := NoMethod(*s)
11187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11188}
11189
11190func (s *GoogleCloudVisionV1p4beta1Symbol) UnmarshalJSON(data []byte) error {
11191	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11192	var s1 struct {
11193		Confidence gensupport.JSONFloat64 `json:"confidence"`
11194		*NoMethod
11195	}
11196	s1.NoMethod = (*NoMethod)(s)
11197	if err := json.Unmarshal(data, &s1); err != nil {
11198		return err
11199	}
11200	s.Confidence = float64(s1.Confidence)
11201	return nil
11202}
11203
11204// GoogleCloudVisionV1p4beta1TextAnnotation: TextAnnotation contains a
11205// structured representation of OCR extracted text. The hierarchy of an
11206// OCR extracted text structure is like this: TextAnnotation -> Page ->
11207// Block -> Paragraph -> Word -> Symbol Each structural component,
11208// starting from Page, may further have their own properties. Properties
11209// describe detected languages, breaks etc.. Please refer to the
11210// TextAnnotation.TextProperty message definition below for more detail.
11211type GoogleCloudVisionV1p4beta1TextAnnotation struct {
11212	// Pages: List of pages detected by OCR.
11213	Pages []*GoogleCloudVisionV1p4beta1Page `json:"pages,omitempty"`
11214
11215	// Text: UTF-8 text detected on the pages.
11216	Text string `json:"text,omitempty"`
11217
11218	// ForceSendFields is a list of field names (e.g. "Pages") to
11219	// unconditionally include in API requests. By default, fields with
11220	// empty or default values are omitted from API requests. However, any
11221	// non-pointer, non-interface field appearing in ForceSendFields will be
11222	// sent to the server regardless of whether the field is empty or not.
11223	// This may be used to include empty fields in Patch requests.
11224	ForceSendFields []string `json:"-"`
11225
11226	// NullFields is a list of field names (e.g. "Pages") to include in API
11227	// requests with the JSON null value. By default, fields with empty
11228	// values are omitted from API requests. However, any field with an
11229	// empty value appearing in NullFields will be sent to the server as
11230	// null. It is an error if a field in this list has a non-empty value.
11231	// This may be used to include null fields in Patch requests.
11232	NullFields []string `json:"-"`
11233}
11234
11235func (s *GoogleCloudVisionV1p4beta1TextAnnotation) MarshalJSON() ([]byte, error) {
11236	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotation
11237	raw := NoMethod(*s)
11238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11239}
11240
11241// GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak: Detected start
11242// or end of a structural component.
11243type GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak struct {
11244	// IsPrefix: True if break prepends the element.
11245	IsPrefix bool `json:"isPrefix,omitempty"`
11246
11247	// Type: Detected break type.
11248	//
11249	// Possible values:
11250	//   "UNKNOWN" - Unknown break label type.
11251	//   "SPACE" - Regular space.
11252	//   "SURE_SPACE" - Sure space (very wide).
11253	//   "EOL_SURE_SPACE" - Line-wrapping break.
11254	//   "HYPHEN" - End-line hyphen that is not present in text; does not
11255	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
11256	//   "LINE_BREAK" - Line break that ends a paragraph.
11257	Type string `json:"type,omitempty"`
11258
11259	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
11260	// unconditionally include in API requests. By default, fields with
11261	// empty or default values are omitted from API requests. However, any
11262	// non-pointer, non-interface field appearing in ForceSendFields will be
11263	// sent to the server regardless of whether the field is empty or not.
11264	// This may be used to include empty fields in Patch requests.
11265	ForceSendFields []string `json:"-"`
11266
11267	// NullFields is a list of field names (e.g. "IsPrefix") to include in
11268	// API requests with the JSON null value. By default, fields with empty
11269	// values are omitted from API requests. However, any field with an
11270	// empty value appearing in NullFields will be sent to the server as
11271	// null. It is an error if a field in this list has a non-empty value.
11272	// This may be used to include null fields in Patch requests.
11273	NullFields []string `json:"-"`
11274}
11275
11276func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
11277	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak
11278	raw := NoMethod(*s)
11279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11280}
11281
11282// GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage: Detected
11283// language for a structural component.
11284type GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage struct {
11285	// Confidence: Confidence of detected language. Range [0, 1].
11286	Confidence float64 `json:"confidence,omitempty"`
11287
11288	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11289	// For more information, see
11290	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11291	LanguageCode string `json:"languageCode,omitempty"`
11292
11293	// ForceSendFields is a list of field names (e.g. "Confidence") to
11294	// unconditionally include in API requests. By default, fields with
11295	// empty or default values are omitted from API requests. However, any
11296	// non-pointer, non-interface field appearing in ForceSendFields will be
11297	// sent to the server regardless of whether the field is empty or not.
11298	// This may be used to include empty fields in Patch requests.
11299	ForceSendFields []string `json:"-"`
11300
11301	// NullFields is a list of field names (e.g. "Confidence") to include in
11302	// API requests with the JSON null value. By default, fields with empty
11303	// values are omitted from API requests. However, any field with an
11304	// empty value appearing in NullFields will be sent to the server as
11305	// null. It is an error if a field in this list has a non-empty value.
11306	// This may be used to include null fields in Patch requests.
11307	NullFields []string `json:"-"`
11308}
11309
11310func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
11311	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
11312	raw := NoMethod(*s)
11313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11314}
11315
11316func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
11317	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
11318	var s1 struct {
11319		Confidence gensupport.JSONFloat64 `json:"confidence"`
11320		*NoMethod
11321	}
11322	s1.NoMethod = (*NoMethod)(s)
11323	if err := json.Unmarshal(data, &s1); err != nil {
11324		return err
11325	}
11326	s.Confidence = float64(s1.Confidence)
11327	return nil
11328}
11329
11330// GoogleCloudVisionV1p4beta1TextAnnotationTextProperty: Additional
11331// information detected on the structural component.
11332type GoogleCloudVisionV1p4beta1TextAnnotationTextProperty struct {
11333	// DetectedBreak: Detected start or end of a text segment.
11334	DetectedBreak *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
11335
11336	// DetectedLanguages: A list of detected languages together with
11337	// confidence.
11338	DetectedLanguages []*GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
11339
11340	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
11341	// unconditionally include in API requests. By default, fields with
11342	// empty or default values are omitted from API requests. However, any
11343	// non-pointer, non-interface field appearing in ForceSendFields will be
11344	// sent to the server regardless of whether the field is empty or not.
11345	// This may be used to include empty fields in Patch requests.
11346	ForceSendFields []string `json:"-"`
11347
11348	// NullFields is a list of field names (e.g. "DetectedBreak") to include
11349	// in API requests with the JSON null value. By default, fields with
11350	// empty values are omitted from API requests. However, any field with
11351	// an empty value appearing in NullFields will be sent to the server as
11352	// null. It is an error if a field in this list has a non-empty value.
11353	// This may be used to include null fields in Patch requests.
11354	NullFields []string `json:"-"`
11355}
11356
11357func (s *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
11358	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationTextProperty
11359	raw := NoMethod(*s)
11360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11361}
11362
11363// GoogleCloudVisionV1p4beta1Vertex: A vertex represents a 2D point in
11364// the image. NOTE: the vertex coordinates are in the same scale as the
11365// original image.
11366type GoogleCloudVisionV1p4beta1Vertex struct {
11367	// X: X coordinate.
11368	X int64 `json:"x,omitempty"`
11369
11370	// Y: Y coordinate.
11371	Y int64 `json:"y,omitempty"`
11372
11373	// ForceSendFields is a list of field names (e.g. "X") to
11374	// unconditionally include in API requests. By default, fields with
11375	// empty or default values are omitted from API requests. However, any
11376	// non-pointer, non-interface field appearing in ForceSendFields will be
11377	// sent to the server regardless of whether the field is empty or not.
11378	// This may be used to include empty fields in Patch requests.
11379	ForceSendFields []string `json:"-"`
11380
11381	// NullFields is a list of field names (e.g. "X") to include in API
11382	// requests with the JSON null value. By default, fields with empty
11383	// values are omitted from API requests. However, any field with an
11384	// empty value appearing in NullFields will be sent to the server as
11385	// null. It is an error if a field in this list has a non-empty value.
11386	// This may be used to include null fields in Patch requests.
11387	NullFields []string `json:"-"`
11388}
11389
11390func (s *GoogleCloudVisionV1p4beta1Vertex) MarshalJSON() ([]byte, error) {
11391	type NoMethod GoogleCloudVisionV1p4beta1Vertex
11392	raw := NoMethod(*s)
11393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11394}
11395
11396// GoogleCloudVisionV1p4beta1WebDetection: Relevant information for the
11397// image from the Internet.
11398type GoogleCloudVisionV1p4beta1WebDetection struct {
11399	// BestGuessLabels: The service's best guess as to the topic of the
11400	// request image. Inferred from similar images on the open web.
11401	BestGuessLabels []*GoogleCloudVisionV1p4beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
11402
11403	// FullMatchingImages: Fully matching images from the Internet. Can
11404	// include resized copies of the query image.
11405	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
11406
11407	// PagesWithMatchingImages: Web pages containing the matching images
11408	// from the Internet.
11409	PagesWithMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
11410
11411	// PartialMatchingImages: Partial matching images from the Internet.
11412	// Those images are similar enough to share some key-point features. For
11413	// example an original image will likely have partial matching for its
11414	// crops.
11415	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
11416
11417	// VisuallySimilarImages: The visually similar image results.
11418	VisuallySimilarImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
11419
11420	// WebEntities: Deduced entities from similar images on the Internet.
11421	WebEntities []*GoogleCloudVisionV1p4beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
11422
11423	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
11424	// unconditionally include in API requests. By default, fields with
11425	// empty or default values are omitted from API requests. However, any
11426	// non-pointer, non-interface field appearing in ForceSendFields will be
11427	// sent to the server regardless of whether the field is empty or not.
11428	// This may be used to include empty fields in Patch requests.
11429	ForceSendFields []string `json:"-"`
11430
11431	// NullFields is a list of field names (e.g. "BestGuessLabels") to
11432	// include in API requests with the JSON null value. By default, fields
11433	// with empty values are omitted from API requests. However, any field
11434	// with an empty value appearing in NullFields will be sent to the
11435	// server as null. It is an error if a field in this list has a
11436	// non-empty value. This may be used to include null fields in Patch
11437	// requests.
11438	NullFields []string `json:"-"`
11439}
11440
11441func (s *GoogleCloudVisionV1p4beta1WebDetection) MarshalJSON() ([]byte, error) {
11442	type NoMethod GoogleCloudVisionV1p4beta1WebDetection
11443	raw := NoMethod(*s)
11444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11445}
11446
11447// GoogleCloudVisionV1p4beta1WebDetectionWebEntity: Entity deduced from
11448// similar images on the Internet.
11449type GoogleCloudVisionV1p4beta1WebDetectionWebEntity struct {
11450	// Description: Canonical description of the entity, in English.
11451	Description string `json:"description,omitempty"`
11452
11453	// EntityId: Opaque entity ID.
11454	EntityId string `json:"entityId,omitempty"`
11455
11456	// Score: Overall relevancy score for the entity. Not normalized and not
11457	// comparable across different image queries.
11458	Score float64 `json:"score,omitempty"`
11459
11460	// ForceSendFields is a list of field names (e.g. "Description") to
11461	// unconditionally include in API requests. By default, fields with
11462	// empty or default values are omitted from API requests. However, any
11463	// non-pointer, non-interface field appearing in ForceSendFields will be
11464	// sent to the server regardless of whether the field is empty or not.
11465	// This may be used to include empty fields in Patch requests.
11466	ForceSendFields []string `json:"-"`
11467
11468	// NullFields is a list of field names (e.g. "Description") to include
11469	// in API requests with the JSON null value. By default, fields with
11470	// empty values are omitted from API requests. However, any field with
11471	// an empty value appearing in NullFields will be sent to the server as
11472	// null. It is an error if a field in this list has a non-empty value.
11473	// This may be used to include null fields in Patch requests.
11474	NullFields []string `json:"-"`
11475}
11476
11477func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
11478	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
11479	raw := NoMethod(*s)
11480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11481}
11482
11483func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
11484	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
11485	var s1 struct {
11486		Score gensupport.JSONFloat64 `json:"score"`
11487		*NoMethod
11488	}
11489	s1.NoMethod = (*NoMethod)(s)
11490	if err := json.Unmarshal(data, &s1); err != nil {
11491		return err
11492	}
11493	s.Score = float64(s1.Score)
11494	return nil
11495}
11496
11497// GoogleCloudVisionV1p4beta1WebDetectionWebImage: Metadata for online
11498// images.
11499type GoogleCloudVisionV1p4beta1WebDetectionWebImage struct {
11500	// Score: (Deprecated) Overall relevancy score for the image.
11501	Score float64 `json:"score,omitempty"`
11502
11503	// Url: The result image URL.
11504	Url string `json:"url,omitempty"`
11505
11506	// ForceSendFields is a list of field names (e.g. "Score") to
11507	// unconditionally include in API requests. By default, fields with
11508	// empty or default values are omitted from API requests. However, any
11509	// non-pointer, non-interface field appearing in ForceSendFields will be
11510	// sent to the server regardless of whether the field is empty or not.
11511	// This may be used to include empty fields in Patch requests.
11512	ForceSendFields []string `json:"-"`
11513
11514	// NullFields is a list of field names (e.g. "Score") to include in API
11515	// requests with the JSON null value. By default, fields with empty
11516	// values are omitted from API requests. However, any field with an
11517	// empty value appearing in NullFields will be sent to the server as
11518	// null. It is an error if a field in this list has a non-empty value.
11519	// This may be used to include null fields in Patch requests.
11520	NullFields []string `json:"-"`
11521}
11522
11523func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
11524	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
11525	raw := NoMethod(*s)
11526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11527}
11528
11529func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
11530	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
11531	var s1 struct {
11532		Score gensupport.JSONFloat64 `json:"score"`
11533		*NoMethod
11534	}
11535	s1.NoMethod = (*NoMethod)(s)
11536	if err := json.Unmarshal(data, &s1); err != nil {
11537		return err
11538	}
11539	s.Score = float64(s1.Score)
11540	return nil
11541}
11542
11543// GoogleCloudVisionV1p4beta1WebDetectionWebLabel: Label to provide
11544// extra metadata for the web detection.
11545type GoogleCloudVisionV1p4beta1WebDetectionWebLabel struct {
11546	// Label: Label for extra metadata.
11547	Label string `json:"label,omitempty"`
11548
11549	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
11550	// or "sr-Latn". For more information, see
11551	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11552	LanguageCode string `json:"languageCode,omitempty"`
11553
11554	// ForceSendFields is a list of field names (e.g. "Label") to
11555	// unconditionally include in API requests. By default, fields with
11556	// empty or default values are omitted from API requests. However, any
11557	// non-pointer, non-interface field appearing in ForceSendFields will be
11558	// sent to the server regardless of whether the field is empty or not.
11559	// This may be used to include empty fields in Patch requests.
11560	ForceSendFields []string `json:"-"`
11561
11562	// NullFields is a list of field names (e.g. "Label") to include in API
11563	// requests with the JSON null value. By default, fields with empty
11564	// values are omitted from API requests. However, any field with an
11565	// empty value appearing in NullFields will be sent to the server as
11566	// null. It is an error if a field in this list has a non-empty value.
11567	// This may be used to include null fields in Patch requests.
11568	NullFields []string `json:"-"`
11569}
11570
11571func (s *GoogleCloudVisionV1p4beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
11572	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebLabel
11573	raw := NoMethod(*s)
11574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11575}
11576
11577// GoogleCloudVisionV1p4beta1WebDetectionWebPage: Metadata for web
11578// pages.
11579type GoogleCloudVisionV1p4beta1WebDetectionWebPage struct {
11580	// FullMatchingImages: Fully matching images on the page. Can include
11581	// resized copies of the query image.
11582	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
11583
11584	// PageTitle: Title for the web page, may contain HTML markups.
11585	PageTitle string `json:"pageTitle,omitempty"`
11586
11587	// PartialMatchingImages: Partial matching images on the page. Those
11588	// images are similar enough to share some key-point features. For
11589	// example an original image will likely have partial matching for its
11590	// crops.
11591	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
11592
11593	// Score: (Deprecated) Overall relevancy score for the web page.
11594	Score float64 `json:"score,omitempty"`
11595
11596	// Url: The result web page URL.
11597	Url string `json:"url,omitempty"`
11598
11599	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
11600	// to unconditionally include in API requests. By default, fields with
11601	// empty or default values are omitted from API requests. However, any
11602	// non-pointer, non-interface field appearing in ForceSendFields will be
11603	// sent to the server regardless of whether the field is empty or not.
11604	// This may be used to include empty fields in Patch requests.
11605	ForceSendFields []string `json:"-"`
11606
11607	// NullFields is a list of field names (e.g. "FullMatchingImages") to
11608	// include in API requests with the JSON null value. By default, fields
11609	// with empty values are omitted from API requests. However, any field
11610	// with an empty value appearing in NullFields will be sent to the
11611	// server as null. It is an error if a field in this list has a
11612	// non-empty value. This may be used to include null fields in Patch
11613	// requests.
11614	NullFields []string `json:"-"`
11615}
11616
11617func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
11618	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
11619	raw := NoMethod(*s)
11620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11621}
11622
11623func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
11624	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
11625	var s1 struct {
11626		Score gensupport.JSONFloat64 `json:"score"`
11627		*NoMethod
11628	}
11629	s1.NoMethod = (*NoMethod)(s)
11630	if err := json.Unmarshal(data, &s1); err != nil {
11631		return err
11632	}
11633	s.Score = float64(s1.Score)
11634	return nil
11635}
11636
11637// GoogleCloudVisionV1p4beta1Word: A word representation.
11638type GoogleCloudVisionV1p4beta1Word struct {
11639	// BoundingBox: The bounding box for the word. The vertices are in the
11640	// order of top-left, top-right, bottom-right, bottom-left. When a
11641	// rotation of the bounding box is detected the rotation is represented
11642	// as around the top-left corner as defined when the text is read in the
11643	// 'natural' orientation. For example: * when the text is horizontal it
11644	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
11645	// around the top-left corner it becomes: 2----3 | | 1----0 and the
11646	// vertex order will still be (0, 1, 2, 3).
11647	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11648
11649	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
11650	Confidence float64 `json:"confidence,omitempty"`
11651
11652	// Property: Additional information detected for the word.
11653	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11654
11655	// Symbols: List of symbols in the word. The order of the symbols
11656	// follows the natural reading order.
11657	Symbols []*GoogleCloudVisionV1p4beta1Symbol `json:"symbols,omitempty"`
11658
11659	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11660	// unconditionally include in API requests. By default, fields with
11661	// empty or default values are omitted from API requests. However, any
11662	// non-pointer, non-interface field appearing in ForceSendFields will be
11663	// sent to the server regardless of whether the field is empty or not.
11664	// This may be used to include empty fields in Patch requests.
11665	ForceSendFields []string `json:"-"`
11666
11667	// NullFields is a list of field names (e.g. "BoundingBox") to include
11668	// in API requests with the JSON null value. By default, fields with
11669	// empty values are omitted from API requests. However, any field with
11670	// an empty value appearing in NullFields will be sent to the server as
11671	// null. It is an error if a field in this list has a non-empty value.
11672	// This may be used to include null fields in Patch requests.
11673	NullFields []string `json:"-"`
11674}
11675
11676func (s *GoogleCloudVisionV1p4beta1Word) MarshalJSON() ([]byte, error) {
11677	type NoMethod GoogleCloudVisionV1p4beta1Word
11678	raw := NoMethod(*s)
11679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11680}
11681
11682func (s *GoogleCloudVisionV1p4beta1Word) UnmarshalJSON(data []byte) error {
11683	type NoMethod GoogleCloudVisionV1p4beta1Word
11684	var s1 struct {
11685		Confidence gensupport.JSONFloat64 `json:"confidence"`
11686		*NoMethod
11687	}
11688	s1.NoMethod = (*NoMethod)(s)
11689	if err := json.Unmarshal(data, &s1); err != nil {
11690		return err
11691	}
11692	s.Confidence = float64(s1.Confidence)
11693	return nil
11694}
11695
11696// GroupedResult: Information about the products similar to a single
11697// product in a query image.
11698type GroupedResult struct {
11699	// BoundingPoly: The bounding polygon around the product detected in the
11700	// query image.
11701	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
11702
11703	// ObjectAnnotations: List of generic predictions for the object in the
11704	// bounding box.
11705	ObjectAnnotations []*ObjectAnnotation `json:"objectAnnotations,omitempty"`
11706
11707	// Results: List of results, one for each product match.
11708	Results []*Result `json:"results,omitempty"`
11709
11710	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11711	// unconditionally include in API requests. By default, fields with
11712	// empty or default values are omitted from API requests. However, any
11713	// non-pointer, non-interface field appearing in ForceSendFields will be
11714	// sent to the server regardless of whether the field is empty or not.
11715	// This may be used to include empty fields in Patch requests.
11716	ForceSendFields []string `json:"-"`
11717
11718	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11719	// in API requests with the JSON null value. By default, fields with
11720	// empty values are omitted from API requests. However, any field with
11721	// an empty value appearing in NullFields will be sent to the server as
11722	// null. It is an error if a field in this list has a non-empty value.
11723	// This may be used to include null fields in Patch requests.
11724	NullFields []string `json:"-"`
11725}
11726
11727func (s *GroupedResult) MarshalJSON() ([]byte, error) {
11728	type NoMethod GroupedResult
11729	raw := NoMethod(*s)
11730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11731}
11732
11733// ImageAnnotationContext: If an image was produced from a file (e.g. a
11734// PDF), this message gives information about the source of that image.
11735type ImageAnnotationContext struct {
11736	// PageNumber: If the file was a PDF or TIFF, this field gives the page
11737	// number within the file used to produce the image.
11738	PageNumber int64 `json:"pageNumber,omitempty"`
11739
11740	// Uri: The URI of the file used to produce the image.
11741	Uri string `json:"uri,omitempty"`
11742
11743	// ForceSendFields is a list of field names (e.g. "PageNumber") to
11744	// unconditionally include in API requests. By default, fields with
11745	// empty or default values are omitted from API requests. However, any
11746	// non-pointer, non-interface field appearing in ForceSendFields will be
11747	// sent to the server regardless of whether the field is empty or not.
11748	// This may be used to include empty fields in Patch requests.
11749	ForceSendFields []string `json:"-"`
11750
11751	// NullFields is a list of field names (e.g. "PageNumber") to include in
11752	// API requests with the JSON null value. By default, fields with empty
11753	// values are omitted from API requests. However, any field with an
11754	// empty value appearing in NullFields will be sent to the server as
11755	// null. It is an error if a field in this list has a non-empty value.
11756	// This may be used to include null fields in Patch requests.
11757	NullFields []string `json:"-"`
11758}
11759
11760func (s *ImageAnnotationContext) MarshalJSON() ([]byte, error) {
11761	type NoMethod ImageAnnotationContext
11762	raw := NoMethod(*s)
11763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11764}
11765
11766// ImageProperties: Stores image properties, such as dominant colors.
11767type ImageProperties struct {
11768	// DominantColors: If present, dominant colors completed successfully.
11769	DominantColors *DominantColorsAnnotation `json:"dominantColors,omitempty"`
11770
11771	// ForceSendFields is a list of field names (e.g. "DominantColors") to
11772	// unconditionally include in API requests. By default, fields with
11773	// empty or default values are omitted from API requests. However, any
11774	// non-pointer, non-interface field appearing in ForceSendFields will be
11775	// sent to the server regardless of whether the field is empty or not.
11776	// This may be used to include empty fields in Patch requests.
11777	ForceSendFields []string `json:"-"`
11778
11779	// NullFields is a list of field names (e.g. "DominantColors") to
11780	// include in API requests with the JSON null value. By default, fields
11781	// with empty values are omitted from API requests. However, any field
11782	// with an empty value appearing in NullFields will be sent to the
11783	// server as null. It is an error if a field in this list has a
11784	// non-empty value. This may be used to include null fields in Patch
11785	// requests.
11786	NullFields []string `json:"-"`
11787}
11788
11789func (s *ImageProperties) MarshalJSON() ([]byte, error) {
11790	type NoMethod ImageProperties
11791	raw := NoMethod(*s)
11792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11793}
11794
11795// ImportProductSetsResponse: Response message for the
11796// `ImportProductSets` method. This message is returned by the
11797// google.longrunning.Operations.GetOperation method in the returned
11798// google.longrunning.Operation.response field.
11799type ImportProductSetsResponse struct {
11800	// ReferenceImages: The list of reference_images that are imported
11801	// successfully.
11802	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
11803
11804	// Statuses: The rpc status for each ImportProductSet request, including
11805	// both successes and errors. The number of statuses here matches the
11806	// number of lines in the csv file, and statuses[i] stores the success
11807	// or failure status of processing the i-th line of the csv, starting
11808	// from line 0.
11809	Statuses []*Status `json:"statuses,omitempty"`
11810
11811	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
11812	// unconditionally include in API requests. By default, fields with
11813	// empty or default values are omitted from API requests. However, any
11814	// non-pointer, non-interface field appearing in ForceSendFields will be
11815	// sent to the server regardless of whether the field is empty or not.
11816	// This may be used to include empty fields in Patch requests.
11817	ForceSendFields []string `json:"-"`
11818
11819	// NullFields is a list of field names (e.g. "ReferenceImages") to
11820	// include in API requests with the JSON null value. By default, fields
11821	// with empty values are omitted from API requests. However, any field
11822	// with an empty value appearing in NullFields will be sent to the
11823	// server as null. It is an error if a field in this list has a
11824	// non-empty value. This may be used to include null fields in Patch
11825	// requests.
11826	NullFields []string `json:"-"`
11827}
11828
11829func (s *ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
11830	type NoMethod ImportProductSetsResponse
11831	raw := NoMethod(*s)
11832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11833}
11834
11835// InputConfig: The desired input location and metadata.
11836type InputConfig struct {
11837	// Content: File content, represented as a stream of bytes. Note: As
11838	// with all `bytes` fields, protobuffers use a pure binary
11839	// representation, whereas JSON representations use base64. Currently,
11840	// this field only works for BatchAnnotateFiles requests. It does not
11841	// work for AsyncBatchAnnotateFiles requests.
11842	Content string `json:"content,omitempty"`
11843
11844	// GcsSource: The Google Cloud Storage location to read the input from.
11845	GcsSource *GcsSource `json:"gcsSource,omitempty"`
11846
11847	// MimeType: The type of the file. Currently only "application/pdf",
11848	// "image/tiff" and "image/gif" are supported. Wildcards are not
11849	// supported.
11850	MimeType string `json:"mimeType,omitempty"`
11851
11852	// ForceSendFields is a list of field names (e.g. "Content") to
11853	// unconditionally include in API requests. By default, fields with
11854	// empty or default values are omitted from API requests. However, any
11855	// non-pointer, non-interface field appearing in ForceSendFields will be
11856	// sent to the server regardless of whether the field is empty or not.
11857	// This may be used to include empty fields in Patch requests.
11858	ForceSendFields []string `json:"-"`
11859
11860	// NullFields is a list of field names (e.g. "Content") to include in
11861	// API requests with the JSON null value. By default, fields with empty
11862	// values are omitted from API requests. However, any field with an
11863	// 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 *InputConfig) MarshalJSON() ([]byte, error) {
11870	type NoMethod InputConfig
11871	raw := NoMethod(*s)
11872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11873}
11874
11875// KeyValue: A product label represented as a key-value pair.
11876type KeyValue struct {
11877	// Key: The key of the label attached to the product. Cannot be empty
11878	// and cannot exceed 128 bytes.
11879	Key string `json:"key,omitempty"`
11880
11881	// Value: The value of the label attached to the product. Cannot be
11882	// empty and cannot exceed 128 bytes.
11883	Value string `json:"value,omitempty"`
11884
11885	// ForceSendFields is a list of field names (e.g. "Key") to
11886	// unconditionally include in API requests. By default, fields with
11887	// empty or default values are omitted from API requests. However, any
11888	// non-pointer, non-interface field appearing in ForceSendFields will be
11889	// sent to the server regardless of whether the field is empty or not.
11890	// This may be used to include empty fields in Patch requests.
11891	ForceSendFields []string `json:"-"`
11892
11893	// NullFields is a list of field names (e.g. "Key") to include in API
11894	// requests with the JSON null value. By default, fields with empty
11895	// values are omitted from API requests. However, any field with an
11896	// empty value appearing in NullFields will be sent to the server as
11897	// null. It is an error if a field in this list has a non-empty value.
11898	// This may be used to include null fields in Patch requests.
11899	NullFields []string `json:"-"`
11900}
11901
11902func (s *KeyValue) MarshalJSON() ([]byte, error) {
11903	type NoMethod KeyValue
11904	raw := NoMethod(*s)
11905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11906}
11907
11908// Landmark: A face-specific landmark (for example, a face feature).
11909type Landmark struct {
11910	// Position: Face landmark position.
11911	Position *Position `json:"position,omitempty"`
11912
11913	// Type: Face landmark type.
11914	//
11915	// Possible values:
11916	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
11917	// filled.
11918	//   "LEFT_EYE" - Left eye.
11919	//   "RIGHT_EYE" - Right eye.
11920	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
11921	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
11922	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
11923	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
11924	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
11925	//   "NOSE_TIP" - Nose tip.
11926	//   "UPPER_LIP" - Upper lip.
11927	//   "LOWER_LIP" - Lower lip.
11928	//   "MOUTH_LEFT" - Mouth left.
11929	//   "MOUTH_RIGHT" - Mouth right.
11930	//   "MOUTH_CENTER" - Mouth center.
11931	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
11932	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
11933	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
11934	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
11935	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
11936	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
11937	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
11938	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
11939	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
11940	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
11941	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
11942	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
11943	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
11944	//   "LEFT_EAR_TRAGION" - Left ear tragion.
11945	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
11946	//   "LEFT_EYE_PUPIL" - Left eye pupil.
11947	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
11948	//   "FOREHEAD_GLABELLA" - Forehead glabella.
11949	//   "CHIN_GNATHION" - Chin gnathion.
11950	//   "CHIN_LEFT_GONION" - Chin left gonion.
11951	//   "CHIN_RIGHT_GONION" - Chin right gonion.
11952	//   "LEFT_CHEEK_CENTER" - Left cheek center.
11953	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
11954	Type string `json:"type,omitempty"`
11955
11956	// ForceSendFields is a list of field names (e.g. "Position") to
11957	// unconditionally include in API requests. By default, fields with
11958	// empty or default values are omitted from API requests. However, any
11959	// non-pointer, non-interface field appearing in ForceSendFields will be
11960	// sent to the server regardless of whether the field is empty or not.
11961	// This may be used to include empty fields in Patch requests.
11962	ForceSendFields []string `json:"-"`
11963
11964	// NullFields is a list of field names (e.g. "Position") to include in
11965	// API requests with the JSON null value. By default, fields with empty
11966	// values are omitted from API requests. However, any field with an
11967	// empty value appearing in NullFields will be sent to the server as
11968	// null. It is an error if a field in this list has a non-empty value.
11969	// This may be used to include null fields in Patch requests.
11970	NullFields []string `json:"-"`
11971}
11972
11973func (s *Landmark) MarshalJSON() ([]byte, error) {
11974	type NoMethod Landmark
11975	raw := NoMethod(*s)
11976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11977}
11978
11979// LatLng: An object that represents a latitude/longitude pair. This is
11980// expressed as a pair of doubles to represent degrees latitude and
11981// degrees longitude. Unless specified otherwise, this object must
11982// conform to the WGS84 standard. Values must be within normalized
11983// ranges.
11984type LatLng struct {
11985	// Latitude: The latitude in degrees. It must be in the range [-90.0,
11986	// +90.0].
11987	Latitude float64 `json:"latitude,omitempty"`
11988
11989	// Longitude: The longitude in degrees. It must be in the range [-180.0,
11990	// +180.0].
11991	Longitude float64 `json:"longitude,omitempty"`
11992
11993	// ForceSendFields is a list of field names (e.g. "Latitude") to
11994	// unconditionally include in API requests. By default, fields with
11995	// empty or default values are omitted from API requests. However, any
11996	// non-pointer, non-interface field appearing in ForceSendFields will be
11997	// sent to the server regardless of whether the field is empty or not.
11998	// This may be used to include empty fields in Patch requests.
11999	ForceSendFields []string `json:"-"`
12000
12001	// NullFields is a list of field names (e.g. "Latitude") to include in
12002	// API requests with the JSON null value. By default, fields with empty
12003	// values are omitted from API requests. However, any field with an
12004	// empty value appearing in NullFields will be sent to the server as
12005	// null. It is an error if a field in this list has a non-empty value.
12006	// This may be used to include null fields in Patch requests.
12007	NullFields []string `json:"-"`
12008}
12009
12010func (s *LatLng) MarshalJSON() ([]byte, error) {
12011	type NoMethod LatLng
12012	raw := NoMethod(*s)
12013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12014}
12015
12016func (s *LatLng) UnmarshalJSON(data []byte) error {
12017	type NoMethod LatLng
12018	var s1 struct {
12019		Latitude  gensupport.JSONFloat64 `json:"latitude"`
12020		Longitude gensupport.JSONFloat64 `json:"longitude"`
12021		*NoMethod
12022	}
12023	s1.NoMethod = (*NoMethod)(s)
12024	if err := json.Unmarshal(data, &s1); err != nil {
12025		return err
12026	}
12027	s.Latitude = float64(s1.Latitude)
12028	s.Longitude = float64(s1.Longitude)
12029	return nil
12030}
12031
12032// LocalizedObjectAnnotation: Set of detected objects with bounding
12033// boxes.
12034type LocalizedObjectAnnotation struct {
12035	// BoundingPoly: Image region to which this object belongs. This must be
12036	// populated.
12037	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
12038
12039	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12040	// For more information, see
12041	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12042	LanguageCode string `json:"languageCode,omitempty"`
12043
12044	// Mid: Object ID that should align with EntityAnnotation mid.
12045	Mid string `json:"mid,omitempty"`
12046
12047	// Name: Object name, expressed in its `language_code` language.
12048	Name string `json:"name,omitempty"`
12049
12050	// Score: Score of the result. Range [0, 1].
12051	Score float64 `json:"score,omitempty"`
12052
12053	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12054	// unconditionally include in API requests. By default, fields with
12055	// empty or default values are omitted from API requests. However, any
12056	// non-pointer, non-interface field appearing in ForceSendFields will be
12057	// sent to the server regardless of whether the field is empty or not.
12058	// This may be used to include empty fields in Patch requests.
12059	ForceSendFields []string `json:"-"`
12060
12061	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12062	// in API requests with the JSON null value. By default, fields with
12063	// empty values are omitted from API requests. However, any field with
12064	// an empty value appearing in NullFields will be sent to the server as
12065	// null. It is an error if a field in this list has a non-empty value.
12066	// This may be used to include null fields in Patch requests.
12067	NullFields []string `json:"-"`
12068}
12069
12070func (s *LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
12071	type NoMethod LocalizedObjectAnnotation
12072	raw := NoMethod(*s)
12073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12074}
12075
12076func (s *LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
12077	type NoMethod LocalizedObjectAnnotation
12078	var s1 struct {
12079		Score gensupport.JSONFloat64 `json:"score"`
12080		*NoMethod
12081	}
12082	s1.NoMethod = (*NoMethod)(s)
12083	if err := json.Unmarshal(data, &s1); err != nil {
12084		return err
12085	}
12086	s.Score = float64(s1.Score)
12087	return nil
12088}
12089
12090// LocationInfo: Detected entity location information.
12091type LocationInfo struct {
12092	// LatLng: lat/long location coordinates.
12093	LatLng *LatLng `json:"latLng,omitempty"`
12094
12095	// ForceSendFields is a list of field names (e.g. "LatLng") to
12096	// unconditionally include in API requests. By default, fields with
12097	// empty or default values are omitted from API requests. However, any
12098	// non-pointer, non-interface field appearing in ForceSendFields will be
12099	// sent to the server regardless of whether the field is empty or not.
12100	// This may be used to include empty fields in Patch requests.
12101	ForceSendFields []string `json:"-"`
12102
12103	// NullFields is a list of field names (e.g. "LatLng") to include in API
12104	// requests with the JSON null value. By default, fields with empty
12105	// values are omitted from API requests. However, any field with an
12106	// empty value appearing in NullFields will be sent to the server as
12107	// null. It is an error if a field in this list has a non-empty value.
12108	// This may be used to include null fields in Patch requests.
12109	NullFields []string `json:"-"`
12110}
12111
12112func (s *LocationInfo) MarshalJSON() ([]byte, error) {
12113	type NoMethod LocationInfo
12114	raw := NoMethod(*s)
12115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12116}
12117
12118// NormalizedVertex: A vertex represents a 2D point in the image. NOTE:
12119// the normalized vertex coordinates are relative to the original image
12120// and range from 0 to 1.
12121type NormalizedVertex struct {
12122	// X: X coordinate.
12123	X float64 `json:"x,omitempty"`
12124
12125	// Y: Y coordinate.
12126	Y float64 `json:"y,omitempty"`
12127
12128	// ForceSendFields is a list of field names (e.g. "X") to
12129	// unconditionally include in API requests. By default, fields with
12130	// empty or default values are omitted from API requests. However, any
12131	// non-pointer, non-interface field appearing in ForceSendFields will be
12132	// sent to the server regardless of whether the field is empty or not.
12133	// This may be used to include empty fields in Patch requests.
12134	ForceSendFields []string `json:"-"`
12135
12136	// NullFields is a list of field names (e.g. "X") to include in API
12137	// requests with the JSON null value. By default, fields with empty
12138	// values are omitted from API requests. However, any field with an
12139	// empty value appearing in NullFields will be sent to the server as
12140	// null. It is an error if a field in this list has a non-empty value.
12141	// This may be used to include null fields in Patch requests.
12142	NullFields []string `json:"-"`
12143}
12144
12145func (s *NormalizedVertex) MarshalJSON() ([]byte, error) {
12146	type NoMethod NormalizedVertex
12147	raw := NoMethod(*s)
12148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12149}
12150
12151func (s *NormalizedVertex) UnmarshalJSON(data []byte) error {
12152	type NoMethod NormalizedVertex
12153	var s1 struct {
12154		X gensupport.JSONFloat64 `json:"x"`
12155		Y gensupport.JSONFloat64 `json:"y"`
12156		*NoMethod
12157	}
12158	s1.NoMethod = (*NoMethod)(s)
12159	if err := json.Unmarshal(data, &s1); err != nil {
12160		return err
12161	}
12162	s.X = float64(s1.X)
12163	s.Y = float64(s1.Y)
12164	return nil
12165}
12166
12167// ObjectAnnotation: Prediction for what the object in the bounding box
12168// is.
12169type ObjectAnnotation struct {
12170	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12171	// For more information, see
12172	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12173	LanguageCode string `json:"languageCode,omitempty"`
12174
12175	// Mid: Object ID that should align with EntityAnnotation mid.
12176	Mid string `json:"mid,omitempty"`
12177
12178	// Name: Object name, expressed in its `language_code` language.
12179	Name string `json:"name,omitempty"`
12180
12181	// Score: Score of the result. Range [0, 1].
12182	Score float64 `json:"score,omitempty"`
12183
12184	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
12185	// unconditionally include in API requests. By default, fields with
12186	// empty or default values are omitted from API requests. However, any
12187	// non-pointer, non-interface field appearing in ForceSendFields will be
12188	// sent to the server regardless of whether the field is empty or not.
12189	// This may be used to include empty fields in Patch requests.
12190	ForceSendFields []string `json:"-"`
12191
12192	// NullFields is a list of field names (e.g. "LanguageCode") to include
12193	// in API requests with the JSON null value. By default, fields with
12194	// empty values are omitted from API requests. However, any field with
12195	// an empty value appearing in NullFields will be sent to the server as
12196	// null. It is an error if a field in this list has a non-empty value.
12197	// This may be used to include null fields in Patch requests.
12198	NullFields []string `json:"-"`
12199}
12200
12201func (s *ObjectAnnotation) MarshalJSON() ([]byte, error) {
12202	type NoMethod ObjectAnnotation
12203	raw := NoMethod(*s)
12204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12205}
12206
12207func (s *ObjectAnnotation) UnmarshalJSON(data []byte) error {
12208	type NoMethod ObjectAnnotation
12209	var s1 struct {
12210		Score gensupport.JSONFloat64 `json:"score"`
12211		*NoMethod
12212	}
12213	s1.NoMethod = (*NoMethod)(s)
12214	if err := json.Unmarshal(data, &s1); err != nil {
12215		return err
12216	}
12217	s.Score = float64(s1.Score)
12218	return nil
12219}
12220
12221// Operation: This resource represents a long-running operation that is
12222// the result of a network API call.
12223type Operation struct {
12224	// Done: If the value is `false`, it means the operation is still in
12225	// progress. If `true`, the operation is completed, and either `error`
12226	// or `response` is available.
12227	Done bool `json:"done,omitempty"`
12228
12229	// Error: The error result of the operation in case of failure or
12230	// cancellation.
12231	Error *Status `json:"error,omitempty"`
12232
12233	// Metadata: Service-specific metadata associated with the operation. It
12234	// typically contains progress information and common metadata such as
12235	// create time. Some services might not provide such metadata. Any
12236	// method that returns a long-running operation should document the
12237	// metadata type, if any.
12238	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
12239
12240	// Name: The server-assigned name, which is only unique within the same
12241	// service that originally returns it. If you use the default HTTP
12242	// mapping, the `name` should be a resource name ending with
12243	// `operations/{unique_id}`.
12244	Name string `json:"name,omitempty"`
12245
12246	// Response: The normal response of the operation in case of success. If
12247	// the original method returns no data on success, such as `Delete`, the
12248	// response is `google.protobuf.Empty`. If the original method is
12249	// standard `Get`/`Create`/`Update`, the response should be the
12250	// resource. For other methods, the response should have the type
12251	// `XxxResponse`, where `Xxx` is the original method name. For example,
12252	// if the original method name is `TakeSnapshot()`, the inferred
12253	// response type is `TakeSnapshotResponse`.
12254	Response googleapi.RawMessage `json:"response,omitempty"`
12255
12256	// ServerResponse contains the HTTP response code and headers from the
12257	// server.
12258	googleapi.ServerResponse `json:"-"`
12259
12260	// ForceSendFields is a list of field names (e.g. "Done") to
12261	// unconditionally include in API requests. By default, fields with
12262	// empty or default values are omitted from API requests. However, any
12263	// non-pointer, non-interface field appearing in ForceSendFields will be
12264	// sent to the server regardless of whether the field is empty or not.
12265	// This may be used to include empty fields in Patch requests.
12266	ForceSendFields []string `json:"-"`
12267
12268	// NullFields is a list of field names (e.g. "Done") to include in API
12269	// requests with the JSON null value. By default, fields with empty
12270	// values are omitted from API requests. However, any field with an
12271	// empty value appearing in NullFields will be sent to the server as
12272	// null. It is an error if a field in this list has a non-empty value.
12273	// This may be used to include null fields in Patch requests.
12274	NullFields []string `json:"-"`
12275}
12276
12277func (s *Operation) MarshalJSON() ([]byte, error) {
12278	type NoMethod Operation
12279	raw := NoMethod(*s)
12280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12281}
12282
12283// OperationMetadata: Contains metadata for the BatchAnnotateImages
12284// operation.
12285type OperationMetadata struct {
12286	// CreateTime: The time when the batch request was received.
12287	CreateTime string `json:"createTime,omitempty"`
12288
12289	// State: Current state of the batch operation.
12290	//
12291	// Possible values:
12292	//   "STATE_UNSPECIFIED" - Invalid.
12293	//   "CREATED" - Request is received.
12294	//   "RUNNING" - Request is actively being processed.
12295	//   "DONE" - The batch processing is done.
12296	//   "CANCELLED" - The batch processing was cancelled.
12297	State string `json:"state,omitempty"`
12298
12299	// UpdateTime: The time when the operation result was last updated.
12300	UpdateTime string `json:"updateTime,omitempty"`
12301
12302	// ForceSendFields is a list of field names (e.g. "CreateTime") to
12303	// unconditionally include in API requests. By default, fields with
12304	// empty or default values are omitted from API requests. However, any
12305	// non-pointer, non-interface field appearing in ForceSendFields will be
12306	// sent to the server regardless of whether the field is empty or not.
12307	// This may be used to include empty fields in Patch requests.
12308	ForceSendFields []string `json:"-"`
12309
12310	// NullFields is a list of field names (e.g. "CreateTime") to include in
12311	// API requests with the JSON null value. By default, fields with empty
12312	// values are omitted from API requests. However, any field with an
12313	// empty value appearing in NullFields will be sent to the server as
12314	// null. It is an error if a field in this list has a non-empty value.
12315	// This may be used to include null fields in Patch requests.
12316	NullFields []string `json:"-"`
12317}
12318
12319func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
12320	type NoMethod OperationMetadata
12321	raw := NoMethod(*s)
12322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12323}
12324
12325// OutputConfig: The desired output location and metadata.
12326type OutputConfig struct {
12327	// BatchSize: The max number of response protos to put into each output
12328	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
12329	// not specified, the default value is 20. For example, for one pdf file
12330	// with 100 pages, 100 response protos will be generated. If
12331	// `batch_size` = 20, then 5 json files each containing 20 response
12332	// protos will be written under the prefix `gcs_destination`.`uri`.
12333	// Currently, batch_size only applies to GcsDestination, with potential
12334	// future support for other output configurations.
12335	BatchSize int64 `json:"batchSize,omitempty"`
12336
12337	// GcsDestination: The Google Cloud Storage location to write the
12338	// output(s) to.
12339	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
12340
12341	// ForceSendFields is a list of field names (e.g. "BatchSize") to
12342	// unconditionally include in API requests. By default, fields with
12343	// empty or default values are omitted from API requests. However, any
12344	// non-pointer, non-interface field appearing in ForceSendFields will be
12345	// sent to the server regardless of whether the field is empty or not.
12346	// This may be used to include empty fields in Patch requests.
12347	ForceSendFields []string `json:"-"`
12348
12349	// NullFields is a list of field names (e.g. "BatchSize") to include in
12350	// API requests with the JSON null value. By default, fields with empty
12351	// values are omitted from API requests. However, any field with an
12352	// empty value appearing in NullFields will be sent to the server as
12353	// null. It is an error if a field in this list has a non-empty value.
12354	// This may be used to include null fields in Patch requests.
12355	NullFields []string `json:"-"`
12356}
12357
12358func (s *OutputConfig) MarshalJSON() ([]byte, error) {
12359	type NoMethod OutputConfig
12360	raw := NoMethod(*s)
12361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12362}
12363
12364// Page: Detected page from OCR.
12365type Page struct {
12366	// Blocks: List of blocks of text, images etc on this page.
12367	Blocks []*Block `json:"blocks,omitempty"`
12368
12369	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
12370	Confidence float64 `json:"confidence,omitempty"`
12371
12372	// Height: Page height. For PDFs the unit is points. For images
12373	// (including TIFFs) the unit is pixels.
12374	Height int64 `json:"height,omitempty"`
12375
12376	// Property: Additional information detected on the page.
12377	Property *TextProperty `json:"property,omitempty"`
12378
12379	// Width: Page width. For PDFs the unit is points. For images (including
12380	// TIFFs) the unit is pixels.
12381	Width int64 `json:"width,omitempty"`
12382
12383	// ForceSendFields is a list of field names (e.g. "Blocks") to
12384	// unconditionally include in API requests. By default, fields with
12385	// empty or default values are omitted from API requests. However, any
12386	// non-pointer, non-interface field appearing in ForceSendFields will be
12387	// sent to the server regardless of whether the field is empty or not.
12388	// This may be used to include empty fields in Patch requests.
12389	ForceSendFields []string `json:"-"`
12390
12391	// NullFields is a list of field names (e.g. "Blocks") to include in API
12392	// requests with the JSON null value. By default, fields with empty
12393	// values are omitted from API requests. However, any field with an
12394	// empty value appearing in NullFields will be sent to the server as
12395	// null. It is an error if a field in this list has a non-empty value.
12396	// This may be used to include null fields in Patch requests.
12397	NullFields []string `json:"-"`
12398}
12399
12400func (s *Page) MarshalJSON() ([]byte, error) {
12401	type NoMethod Page
12402	raw := NoMethod(*s)
12403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12404}
12405
12406func (s *Page) UnmarshalJSON(data []byte) error {
12407	type NoMethod Page
12408	var s1 struct {
12409		Confidence gensupport.JSONFloat64 `json:"confidence"`
12410		*NoMethod
12411	}
12412	s1.NoMethod = (*NoMethod)(s)
12413	if err := json.Unmarshal(data, &s1); err != nil {
12414		return err
12415	}
12416	s.Confidence = float64(s1.Confidence)
12417	return nil
12418}
12419
12420// Paragraph: Structural unit of text representing a number of words in
12421// certain order.
12422type Paragraph struct {
12423	// BoundingBox: The bounding box for the paragraph. The vertices are in
12424	// the order of top-left, top-right, bottom-right, bottom-left. When a
12425	// rotation of the bounding box is detected the rotation is represented
12426	// as around the top-left corner as defined when the text is read in the
12427	// 'natural' orientation. For example: * when the text is horizontal it
12428	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
12429	// around the top-left corner it becomes: 2----3 | | 1----0 and the
12430	// vertex order will still be (0, 1, 2, 3).
12431	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
12432
12433	// Confidence: Confidence of the OCR results for the paragraph. Range
12434	// [0, 1].
12435	Confidence float64 `json:"confidence,omitempty"`
12436
12437	// Property: Additional information detected for the paragraph.
12438	Property *TextProperty `json:"property,omitempty"`
12439
12440	// Words: List of all words in this paragraph.
12441	Words []*Word `json:"words,omitempty"`
12442
12443	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12444	// unconditionally include in API requests. By default, fields with
12445	// empty or default values are omitted from API requests. However, any
12446	// non-pointer, non-interface field appearing in ForceSendFields will be
12447	// sent to the server regardless of whether the field is empty or not.
12448	// This may be used to include empty fields in Patch requests.
12449	ForceSendFields []string `json:"-"`
12450
12451	// NullFields is a list of field names (e.g. "BoundingBox") to include
12452	// in API requests with the JSON null value. By default, fields with
12453	// empty values are omitted from API requests. However, any field with
12454	// an empty value appearing in NullFields will be sent to the server as
12455	// null. It is an error if a field in this list has a non-empty value.
12456	// This may be used to include null fields in Patch requests.
12457	NullFields []string `json:"-"`
12458}
12459
12460func (s *Paragraph) MarshalJSON() ([]byte, error) {
12461	type NoMethod Paragraph
12462	raw := NoMethod(*s)
12463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12464}
12465
12466func (s *Paragraph) UnmarshalJSON(data []byte) error {
12467	type NoMethod Paragraph
12468	var s1 struct {
12469		Confidence gensupport.JSONFloat64 `json:"confidence"`
12470		*NoMethod
12471	}
12472	s1.NoMethod = (*NoMethod)(s)
12473	if err := json.Unmarshal(data, &s1); err != nil {
12474		return err
12475	}
12476	s.Confidence = float64(s1.Confidence)
12477	return nil
12478}
12479
12480// Position: A 3D position in the image, used primarily for Face
12481// detection landmarks. A valid Position must have both x and y
12482// coordinates. The position coordinates are in the same scale as the
12483// original image.
12484type Position struct {
12485	// X: X coordinate.
12486	X float64 `json:"x,omitempty"`
12487
12488	// Y: Y coordinate.
12489	Y float64 `json:"y,omitempty"`
12490
12491	// Z: Z coordinate (or depth).
12492	Z float64 `json:"z,omitempty"`
12493
12494	// ForceSendFields is a list of field names (e.g. "X") to
12495	// unconditionally include in API requests. By default, fields with
12496	// empty or default values are omitted from API requests. However, any
12497	// non-pointer, non-interface field appearing in ForceSendFields will be
12498	// sent to the server regardless of whether the field is empty or not.
12499	// This may be used to include empty fields in Patch requests.
12500	ForceSendFields []string `json:"-"`
12501
12502	// NullFields is a list of field names (e.g. "X") to include in API
12503	// requests with the JSON null value. By default, fields with empty
12504	// values are omitted from API requests. However, any field with an
12505	// empty value appearing in NullFields will be sent to the server as
12506	// null. It is an error if a field in this list has a non-empty value.
12507	// This may be used to include null fields in Patch requests.
12508	NullFields []string `json:"-"`
12509}
12510
12511func (s *Position) MarshalJSON() ([]byte, error) {
12512	type NoMethod Position
12513	raw := NoMethod(*s)
12514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12515}
12516
12517func (s *Position) UnmarshalJSON(data []byte) error {
12518	type NoMethod Position
12519	var s1 struct {
12520		X gensupport.JSONFloat64 `json:"x"`
12521		Y gensupport.JSONFloat64 `json:"y"`
12522		Z gensupport.JSONFloat64 `json:"z"`
12523		*NoMethod
12524	}
12525	s1.NoMethod = (*NoMethod)(s)
12526	if err := json.Unmarshal(data, &s1); err != nil {
12527		return err
12528	}
12529	s.X = float64(s1.X)
12530	s.Y = float64(s1.Y)
12531	s.Z = float64(s1.Z)
12532	return nil
12533}
12534
12535// Product: A Product contains ReferenceImages.
12536type Product struct {
12537	// Description: User-provided metadata to be stored with this product.
12538	// Must be at most 4096 characters long.
12539	Description string `json:"description,omitempty"`
12540
12541	// DisplayName: The user-provided name for this Product. Must not be
12542	// empty. Must be at most 4096 characters long.
12543	DisplayName string `json:"displayName,omitempty"`
12544
12545	// Name: The resource name of the product. Format is:
12546	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
12547	// field is ignored when creating a product.
12548	Name string `json:"name,omitempty"`
12549
12550	// ProductCategory: Immutable. The category for the product identified
12551	// by the reference image. This should be one of "homegoods-v2",
12552	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
12553	// legacy categories "homegoods", "apparel", and "toys" are still
12554	// supported, but these should not be used for new products.
12555	ProductCategory string `json:"productCategory,omitempty"`
12556
12557	// ProductLabels: Key-value pairs that can be attached to a product. At
12558	// query time, constraints can be specified based on the product_labels.
12559	// Note that integer values can be provided as strings, e.g. "1199".
12560	// Only strings with integer values can match a range-based restriction
12561	// which is to be supported soon. Multiple values can be assigned to the
12562	// same key. One product may have up to 500 product_labels. Notice that
12563	// the total number of distinct product_labels over all products in one
12564	// ProductSet cannot exceed 1M, otherwise the product search pipeline
12565	// will refuse to work for that ProductSet.
12566	ProductLabels []*KeyValue `json:"productLabels,omitempty"`
12567
12568	// ForceSendFields is a list of field names (e.g. "Description") to
12569	// unconditionally include in API requests. By default, fields with
12570	// empty or default values are omitted from API requests. However, any
12571	// non-pointer, non-interface field appearing in ForceSendFields will be
12572	// sent to the server regardless of whether the field is empty or not.
12573	// This may be used to include empty fields in Patch requests.
12574	ForceSendFields []string `json:"-"`
12575
12576	// NullFields is a list of field names (e.g. "Description") to include
12577	// in API requests with the JSON null value. By default, fields with
12578	// empty values are omitted from API requests. However, any field with
12579	// an empty value appearing in NullFields will be sent to the server as
12580	// null. It is an error if a field in this list has a non-empty value.
12581	// This may be used to include null fields in Patch requests.
12582	NullFields []string `json:"-"`
12583}
12584
12585func (s *Product) MarshalJSON() ([]byte, error) {
12586	type NoMethod Product
12587	raw := NoMethod(*s)
12588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12589}
12590
12591// ProductSearchResults: Results for a product search request.
12592type ProductSearchResults struct {
12593	// IndexTime: Timestamp of the index which provided these results.
12594	// Products added to the product set and products removed from the
12595	// product set after this time are not reflected in the current results.
12596	IndexTime string `json:"indexTime,omitempty"`
12597
12598	// ProductGroupedResults: List of results grouped by products detected
12599	// in the query image. Each entry corresponds to one bounding polygon in
12600	// the query image, and contains the matching products specific to that
12601	// region. There may be duplicate product matches in the union of all
12602	// the per-product results.
12603	ProductGroupedResults []*GroupedResult `json:"productGroupedResults,omitempty"`
12604
12605	// Results: List of results, one for each product match.
12606	Results []*Result `json:"results,omitempty"`
12607
12608	// ForceSendFields is a list of field names (e.g. "IndexTime") to
12609	// unconditionally include in API requests. By default, fields with
12610	// empty or default values are omitted from API requests. However, any
12611	// non-pointer, non-interface field appearing in ForceSendFields will be
12612	// sent to the server regardless of whether the field is empty or not.
12613	// This may be used to include empty fields in Patch requests.
12614	ForceSendFields []string `json:"-"`
12615
12616	// NullFields is a list of field names (e.g. "IndexTime") to include in
12617	// API requests with the JSON null value. By default, fields with empty
12618	// values are omitted from API requests. However, any field with an
12619	// empty value appearing in NullFields will be sent to the server as
12620	// null. It is an error if a field in this list has a non-empty value.
12621	// This may be used to include null fields in Patch requests.
12622	NullFields []string `json:"-"`
12623}
12624
12625func (s *ProductSearchResults) MarshalJSON() ([]byte, error) {
12626	type NoMethod ProductSearchResults
12627	raw := NoMethod(*s)
12628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12629}
12630
12631// Property: A `Property` consists of a user-supplied name/value pair.
12632type Property struct {
12633	// Name: Name of the property.
12634	Name string `json:"name,omitempty"`
12635
12636	// Uint64Value: Value of numeric properties.
12637	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
12638
12639	// Value: Value of the property.
12640	Value string `json:"value,omitempty"`
12641
12642	// ForceSendFields is a list of field names (e.g. "Name") to
12643	// unconditionally include in API requests. By default, fields with
12644	// empty or default values are omitted from API requests. However, any
12645	// non-pointer, non-interface field appearing in ForceSendFields will be
12646	// sent to the server regardless of whether the field is empty or not.
12647	// This may be used to include empty fields in Patch requests.
12648	ForceSendFields []string `json:"-"`
12649
12650	// NullFields is a list of field names (e.g. "Name") to include in API
12651	// requests with the JSON null value. By default, fields with empty
12652	// values are omitted from API requests. However, any field with an
12653	// empty value appearing in NullFields will be sent to the server as
12654	// null. It is an error if a field in this list has a non-empty value.
12655	// This may be used to include null fields in Patch requests.
12656	NullFields []string `json:"-"`
12657}
12658
12659func (s *Property) MarshalJSON() ([]byte, error) {
12660	type NoMethod Property
12661	raw := NoMethod(*s)
12662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12663}
12664
12665// ReferenceImage: A `ReferenceImage` represents a product image and its
12666// associated metadata, such as bounding boxes.
12667type ReferenceImage struct {
12668	// BoundingPolys: Optional. Bounding polygons around the areas of
12669	// interest in the reference image. If this field is empty, the system
12670	// will try to detect regions of interest. At most 10 bounding polygons
12671	// will be used. The provided shape is converted into a non-rotated
12672	// rectangle. Once converted, the small edge of the rectangle must be
12673	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
12674	// less (i.e. 1:3 is ok; 1:5 is not).
12675	BoundingPolys []*BoundingPoly `json:"boundingPolys,omitempty"`
12676
12677	// Name: The resource name of the reference image. Format is:
12678	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
12679	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
12680	Name string `json:"name,omitempty"`
12681
12682	// Uri: Required. The Google Cloud Storage URI of the reference image.
12683	// The URI must start with `gs://`.
12684	Uri string `json:"uri,omitempty"`
12685
12686	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
12687	// unconditionally include in API requests. By default, fields with
12688	// empty or default values are omitted from API requests. However, any
12689	// non-pointer, non-interface field appearing in ForceSendFields will be
12690	// sent to the server regardless of whether the field is empty or not.
12691	// This may be used to include empty fields in Patch requests.
12692	ForceSendFields []string `json:"-"`
12693
12694	// NullFields is a list of field names (e.g. "BoundingPolys") to include
12695	// in API requests with the JSON null value. By default, fields with
12696	// empty values are omitted from API requests. However, any field with
12697	// an empty value appearing in NullFields will be sent to the server as
12698	// null. It is an error if a field in this list has a non-empty value.
12699	// This may be used to include null fields in Patch requests.
12700	NullFields []string `json:"-"`
12701}
12702
12703func (s *ReferenceImage) MarshalJSON() ([]byte, error) {
12704	type NoMethod ReferenceImage
12705	raw := NoMethod(*s)
12706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12707}
12708
12709// Result: Information about a product.
12710type Result struct {
12711	// Image: The resource name of the image from the product that is the
12712	// closest match to the query.
12713	Image string `json:"image,omitempty"`
12714
12715	// Product: The Product.
12716	Product *Product `json:"product,omitempty"`
12717
12718	// Score: A confidence level on the match, ranging from 0 (no
12719	// confidence) to 1 (full confidence).
12720	Score float64 `json:"score,omitempty"`
12721
12722	// ForceSendFields is a list of field names (e.g. "Image") to
12723	// unconditionally include in API requests. By default, fields with
12724	// empty or default values are omitted from API requests. However, any
12725	// non-pointer, non-interface field appearing in ForceSendFields will be
12726	// sent to the server regardless of whether the field is empty or not.
12727	// This may be used to include empty fields in Patch requests.
12728	ForceSendFields []string `json:"-"`
12729
12730	// NullFields is a list of field names (e.g. "Image") to include in API
12731	// requests with the JSON null value. By default, fields with empty
12732	// values are omitted from API requests. However, any field with an
12733	// empty value appearing in NullFields will be sent to the server as
12734	// null. It is an error if a field in this list has a non-empty value.
12735	// This may be used to include null fields in Patch requests.
12736	NullFields []string `json:"-"`
12737}
12738
12739func (s *Result) MarshalJSON() ([]byte, error) {
12740	type NoMethod Result
12741	raw := NoMethod(*s)
12742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12743}
12744
12745func (s *Result) UnmarshalJSON(data []byte) error {
12746	type NoMethod Result
12747	var s1 struct {
12748		Score gensupport.JSONFloat64 `json:"score"`
12749		*NoMethod
12750	}
12751	s1.NoMethod = (*NoMethod)(s)
12752	if err := json.Unmarshal(data, &s1); err != nil {
12753		return err
12754	}
12755	s.Score = float64(s1.Score)
12756	return nil
12757}
12758
12759// SafeSearchAnnotation: Set of features pertaining to the image,
12760// computed by computer vision methods over safe-search verticals (for
12761// example, adult, spoof, medical, violence).
12762type SafeSearchAnnotation struct {
12763	// Adult: Represents the adult content likelihood for the image. Adult
12764	// content may contain elements such as nudity, pornographic images or
12765	// cartoons, or sexual activities.
12766	//
12767	// Possible values:
12768	//   "UNKNOWN" - Unknown likelihood.
12769	//   "VERY_UNLIKELY" - It is very unlikely.
12770	//   "UNLIKELY" - It is unlikely.
12771	//   "POSSIBLE" - It is possible.
12772	//   "LIKELY" - It is likely.
12773	//   "VERY_LIKELY" - It is very likely.
12774	Adult string `json:"adult,omitempty"`
12775
12776	// Medical: Likelihood that this is a medical image.
12777	//
12778	// Possible values:
12779	//   "UNKNOWN" - Unknown likelihood.
12780	//   "VERY_UNLIKELY" - It is very unlikely.
12781	//   "UNLIKELY" - It is unlikely.
12782	//   "POSSIBLE" - It is possible.
12783	//   "LIKELY" - It is likely.
12784	//   "VERY_LIKELY" - It is very likely.
12785	Medical string `json:"medical,omitempty"`
12786
12787	// Racy: Likelihood that the request image contains racy content. Racy
12788	// content may include (but is not limited to) skimpy or sheer clothing,
12789	// strategically covered nudity, lewd or provocative poses, or close-ups
12790	// of sensitive body areas.
12791	//
12792	// Possible values:
12793	//   "UNKNOWN" - Unknown likelihood.
12794	//   "VERY_UNLIKELY" - It is very unlikely.
12795	//   "UNLIKELY" - It is unlikely.
12796	//   "POSSIBLE" - It is possible.
12797	//   "LIKELY" - It is likely.
12798	//   "VERY_LIKELY" - It is very likely.
12799	Racy string `json:"racy,omitempty"`
12800
12801	// Spoof: Spoof likelihood. The likelihood that an modification was made
12802	// to the image's canonical version to make it appear funny or
12803	// offensive.
12804	//
12805	// Possible values:
12806	//   "UNKNOWN" - Unknown likelihood.
12807	//   "VERY_UNLIKELY" - It is very unlikely.
12808	//   "UNLIKELY" - It is unlikely.
12809	//   "POSSIBLE" - It is possible.
12810	//   "LIKELY" - It is likely.
12811	//   "VERY_LIKELY" - It is very likely.
12812	Spoof string `json:"spoof,omitempty"`
12813
12814	// Violence: Likelihood that this image contains violent content.
12815	//
12816	// Possible values:
12817	//   "UNKNOWN" - Unknown likelihood.
12818	//   "VERY_UNLIKELY" - It is very unlikely.
12819	//   "UNLIKELY" - It is unlikely.
12820	//   "POSSIBLE" - It is possible.
12821	//   "LIKELY" - It is likely.
12822	//   "VERY_LIKELY" - It is very likely.
12823	Violence string `json:"violence,omitempty"`
12824
12825	// ForceSendFields is a list of field names (e.g. "Adult") to
12826	// unconditionally include in API requests. By default, fields with
12827	// empty or default values are omitted from API requests. However, any
12828	// non-pointer, non-interface field appearing in ForceSendFields will be
12829	// sent to the server regardless of whether the field is empty or not.
12830	// This may be used to include empty fields in Patch requests.
12831	ForceSendFields []string `json:"-"`
12832
12833	// NullFields is a list of field names (e.g. "Adult") to include in API
12834	// requests with the JSON null value. By default, fields with empty
12835	// values are omitted from API requests. However, any field with an
12836	// empty value appearing in NullFields will be sent to the server as
12837	// null. It is an error if a field in this list has a non-empty value.
12838	// This may be used to include null fields in Patch requests.
12839	NullFields []string `json:"-"`
12840}
12841
12842func (s *SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
12843	type NoMethod SafeSearchAnnotation
12844	raw := NoMethod(*s)
12845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12846}
12847
12848// Status: The `Status` type defines a logical error model that is
12849// suitable for different programming environments, including REST APIs
12850// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
12851// `Status` message contains three pieces of data: error code, error
12852// message, and error details. You can find out more about this error
12853// model and how to work with it in the API Design Guide
12854// (https://cloud.google.com/apis/design/errors).
12855type Status struct {
12856	// Code: The status code, which should be an enum value of
12857	// google.rpc.Code.
12858	Code int64 `json:"code,omitempty"`
12859
12860	// Details: A list of messages that carry the error details. There is a
12861	// common set of message types for APIs to use.
12862	Details []googleapi.RawMessage `json:"details,omitempty"`
12863
12864	// Message: A developer-facing error message, which should be in
12865	// English. Any user-facing error message should be localized and sent
12866	// in the google.rpc.Status.details field, or localized by the client.
12867	Message string `json:"message,omitempty"`
12868
12869	// ForceSendFields is a list of field names (e.g. "Code") to
12870	// unconditionally include in API requests. By default, fields with
12871	// empty or default values are omitted from API requests. However, any
12872	// non-pointer, non-interface field appearing in ForceSendFields will be
12873	// sent to the server regardless of whether the field is empty or not.
12874	// This may be used to include empty fields in Patch requests.
12875	ForceSendFields []string `json:"-"`
12876
12877	// NullFields is a list of field names (e.g. "Code") to include in API
12878	// requests with the JSON null value. By default, fields with empty
12879	// values are omitted from API requests. However, any field with an
12880	// empty value appearing in NullFields will be sent to the server as
12881	// null. It is an error if a field in this list has a non-empty value.
12882	// This may be used to include null fields in Patch requests.
12883	NullFields []string `json:"-"`
12884}
12885
12886func (s *Status) MarshalJSON() ([]byte, error) {
12887	type NoMethod Status
12888	raw := NoMethod(*s)
12889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12890}
12891
12892// Symbol: A single symbol representation.
12893type Symbol struct {
12894	// BoundingBox: The bounding box for the symbol. The vertices are in the
12895	// order of top-left, top-right, bottom-right, bottom-left. When a
12896	// rotation of the bounding box is detected the rotation is represented
12897	// as around the top-left corner as defined when the text is read in the
12898	// 'natural' orientation. For example: * when the text is horizontal it
12899	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
12900	// around the top-left corner it becomes: 2----3 | | 1----0 and the
12901	// vertex order will still be (0, 1, 2, 3).
12902	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
12903
12904	// Confidence: Confidence of the OCR results for the symbol. Range [0,
12905	// 1].
12906	Confidence float64 `json:"confidence,omitempty"`
12907
12908	// Property: Additional information detected for the symbol.
12909	Property *TextProperty `json:"property,omitempty"`
12910
12911	// Text: The actual UTF-8 representation of the symbol.
12912	Text string `json:"text,omitempty"`
12913
12914	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12915	// unconditionally include in API requests. By default, fields with
12916	// empty or default values are omitted from API requests. However, any
12917	// non-pointer, non-interface field appearing in ForceSendFields will be
12918	// sent to the server regardless of whether the field is empty or not.
12919	// This may be used to include empty fields in Patch requests.
12920	ForceSendFields []string `json:"-"`
12921
12922	// NullFields is a list of field names (e.g. "BoundingBox") to include
12923	// in API requests with the JSON null value. By default, fields with
12924	// empty values are omitted from API requests. However, any field with
12925	// an empty value appearing in NullFields will be sent to the server as
12926	// null. It is an error if a field in this list has a non-empty value.
12927	// This may be used to include null fields in Patch requests.
12928	NullFields []string `json:"-"`
12929}
12930
12931func (s *Symbol) MarshalJSON() ([]byte, error) {
12932	type NoMethod Symbol
12933	raw := NoMethod(*s)
12934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12935}
12936
12937func (s *Symbol) UnmarshalJSON(data []byte) error {
12938	type NoMethod Symbol
12939	var s1 struct {
12940		Confidence gensupport.JSONFloat64 `json:"confidence"`
12941		*NoMethod
12942	}
12943	s1.NoMethod = (*NoMethod)(s)
12944	if err := json.Unmarshal(data, &s1); err != nil {
12945		return err
12946	}
12947	s.Confidence = float64(s1.Confidence)
12948	return nil
12949}
12950
12951// TextAnnotation: TextAnnotation contains a structured representation
12952// of OCR extracted text. The hierarchy of an OCR extracted text
12953// structure is like this: TextAnnotation -> Page -> Block -> Paragraph
12954// -> Word -> Symbol Each structural component, starting from Page, may
12955// further have their own properties. Properties describe detected
12956// languages, breaks etc.. Please refer to the
12957// TextAnnotation.TextProperty message definition below for more detail.
12958type TextAnnotation struct {
12959	// Pages: List of pages detected by OCR.
12960	Pages []*Page `json:"pages,omitempty"`
12961
12962	// Text: UTF-8 text detected on the pages.
12963	Text string `json:"text,omitempty"`
12964
12965	// ForceSendFields is a list of field names (e.g. "Pages") to
12966	// unconditionally include in API requests. By default, fields with
12967	// empty or default values are omitted from API requests. However, any
12968	// non-pointer, non-interface field appearing in ForceSendFields will be
12969	// sent to the server regardless of whether the field is empty or not.
12970	// This may be used to include empty fields in Patch requests.
12971	ForceSendFields []string `json:"-"`
12972
12973	// NullFields is a list of field names (e.g. "Pages") to include in API
12974	// requests with the JSON null value. By default, fields with empty
12975	// values are omitted from API requests. However, any field with an
12976	// empty value appearing in NullFields will be sent to the server as
12977	// null. It is an error if a field in this list has a non-empty value.
12978	// This may be used to include null fields in Patch requests.
12979	NullFields []string `json:"-"`
12980}
12981
12982func (s *TextAnnotation) MarshalJSON() ([]byte, error) {
12983	type NoMethod TextAnnotation
12984	raw := NoMethod(*s)
12985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12986}
12987
12988// TextProperty: Additional information detected on the structural
12989// component.
12990type TextProperty struct {
12991	// DetectedBreak: Detected start or end of a text segment.
12992	DetectedBreak *DetectedBreak `json:"detectedBreak,omitempty"`
12993
12994	// DetectedLanguages: A list of detected languages together with
12995	// confidence.
12996	DetectedLanguages []*DetectedLanguage `json:"detectedLanguages,omitempty"`
12997
12998	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
12999	// unconditionally include in API requests. By default, fields with
13000	// empty or default values are omitted from API requests. However, any
13001	// non-pointer, non-interface field appearing in ForceSendFields will be
13002	// sent to the server regardless of whether the field is empty or not.
13003	// This may be used to include empty fields in Patch requests.
13004	ForceSendFields []string `json:"-"`
13005
13006	// NullFields is a list of field names (e.g. "DetectedBreak") to include
13007	// in API requests with the JSON null value. By default, fields with
13008	// empty values are omitted from API requests. However, any field with
13009	// an empty value appearing in NullFields will be sent to the server as
13010	// null. It is an error if a field in this list has a non-empty value.
13011	// This may be used to include null fields in Patch requests.
13012	NullFields []string `json:"-"`
13013}
13014
13015func (s *TextProperty) MarshalJSON() ([]byte, error) {
13016	type NoMethod TextProperty
13017	raw := NoMethod(*s)
13018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13019}
13020
13021// Vertex: A vertex represents a 2D point in the image. NOTE: the vertex
13022// coordinates are in the same scale as the original image.
13023type Vertex struct {
13024	// X: X coordinate.
13025	X int64 `json:"x,omitempty"`
13026
13027	// Y: Y coordinate.
13028	Y int64 `json:"y,omitempty"`
13029
13030	// ForceSendFields is a list of field names (e.g. "X") to
13031	// unconditionally include in API requests. By default, fields with
13032	// empty or default values are omitted from API requests. However, any
13033	// non-pointer, non-interface field appearing in ForceSendFields will be
13034	// sent to the server regardless of whether the field is empty or not.
13035	// This may be used to include empty fields in Patch requests.
13036	ForceSendFields []string `json:"-"`
13037
13038	// NullFields is a list of field names (e.g. "X") to include in API
13039	// requests with the JSON null value. By default, fields with empty
13040	// values are omitted from API requests. However, any field with an
13041	// empty value appearing in NullFields will be sent to the server as
13042	// null. It is an error if a field in this list has a non-empty value.
13043	// This may be used to include null fields in Patch requests.
13044	NullFields []string `json:"-"`
13045}
13046
13047func (s *Vertex) MarshalJSON() ([]byte, error) {
13048	type NoMethod Vertex
13049	raw := NoMethod(*s)
13050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13051}
13052
13053// WebDetection: Relevant information for the image from the Internet.
13054type WebDetection struct {
13055	// BestGuessLabels: The service's best guess as to the topic of the
13056	// request image. Inferred from similar images on the open web.
13057	BestGuessLabels []*WebLabel `json:"bestGuessLabels,omitempty"`
13058
13059	// FullMatchingImages: Fully matching images from the Internet. Can
13060	// include resized copies of the query image.
13061	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
13062
13063	// PagesWithMatchingImages: Web pages containing the matching images
13064	// from the Internet.
13065	PagesWithMatchingImages []*WebPage `json:"pagesWithMatchingImages,omitempty"`
13066
13067	// PartialMatchingImages: Partial matching images from the Internet.
13068	// Those images are similar enough to share some key-point features. For
13069	// example an original image will likely have partial matching for its
13070	// crops.
13071	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
13072
13073	// VisuallySimilarImages: The visually similar image results.
13074	VisuallySimilarImages []*WebImage `json:"visuallySimilarImages,omitempty"`
13075
13076	// WebEntities: Deduced entities from similar images on the Internet.
13077	WebEntities []*WebEntity `json:"webEntities,omitempty"`
13078
13079	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
13080	// unconditionally include in API requests. By default, fields with
13081	// empty or default values are omitted from API requests. However, any
13082	// non-pointer, non-interface field appearing in ForceSendFields will be
13083	// sent to the server regardless of whether the field is empty or not.
13084	// This may be used to include empty fields in Patch requests.
13085	ForceSendFields []string `json:"-"`
13086
13087	// NullFields is a list of field names (e.g. "BestGuessLabels") to
13088	// include in API requests with the JSON null value. By default, fields
13089	// with empty values are omitted from API requests. However, any field
13090	// with an empty value appearing in NullFields will be sent to the
13091	// server as null. It is an error if a field in this list has a
13092	// non-empty value. This may be used to include null fields in Patch
13093	// requests.
13094	NullFields []string `json:"-"`
13095}
13096
13097func (s *WebDetection) MarshalJSON() ([]byte, error) {
13098	type NoMethod WebDetection
13099	raw := NoMethod(*s)
13100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13101}
13102
13103// WebEntity: Entity deduced from similar images on the Internet.
13104type WebEntity struct {
13105	// Description: Canonical description of the entity, in English.
13106	Description string `json:"description,omitempty"`
13107
13108	// EntityId: Opaque entity ID.
13109	EntityId string `json:"entityId,omitempty"`
13110
13111	// Score: Overall relevancy score for the entity. Not normalized and not
13112	// comparable across different image queries.
13113	Score float64 `json:"score,omitempty"`
13114
13115	// ForceSendFields is a list of field names (e.g. "Description") to
13116	// unconditionally include in API requests. By default, fields with
13117	// empty or default values are omitted from API requests. However, any
13118	// non-pointer, non-interface field appearing in ForceSendFields will be
13119	// sent to the server regardless of whether the field is empty or not.
13120	// This may be used to include empty fields in Patch requests.
13121	ForceSendFields []string `json:"-"`
13122
13123	// NullFields is a list of field names (e.g. "Description") to include
13124	// in API requests with the JSON null value. By default, fields with
13125	// empty values are omitted from API requests. However, any field with
13126	// an empty value appearing in NullFields will be sent to the server as
13127	// null. It is an error if a field in this list has a non-empty value.
13128	// This may be used to include null fields in Patch requests.
13129	NullFields []string `json:"-"`
13130}
13131
13132func (s *WebEntity) MarshalJSON() ([]byte, error) {
13133	type NoMethod WebEntity
13134	raw := NoMethod(*s)
13135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13136}
13137
13138func (s *WebEntity) UnmarshalJSON(data []byte) error {
13139	type NoMethod WebEntity
13140	var s1 struct {
13141		Score gensupport.JSONFloat64 `json:"score"`
13142		*NoMethod
13143	}
13144	s1.NoMethod = (*NoMethod)(s)
13145	if err := json.Unmarshal(data, &s1); err != nil {
13146		return err
13147	}
13148	s.Score = float64(s1.Score)
13149	return nil
13150}
13151
13152// WebImage: Metadata for online images.
13153type WebImage struct {
13154	// Score: (Deprecated) Overall relevancy score for the image.
13155	Score float64 `json:"score,omitempty"`
13156
13157	// Url: The result image URL.
13158	Url string `json:"url,omitempty"`
13159
13160	// ForceSendFields is a list of field names (e.g. "Score") to
13161	// unconditionally include in API requests. By default, fields with
13162	// empty or default values are omitted from API requests. However, any
13163	// non-pointer, non-interface field appearing in ForceSendFields will be
13164	// sent to the server regardless of whether the field is empty or not.
13165	// This may be used to include empty fields in Patch requests.
13166	ForceSendFields []string `json:"-"`
13167
13168	// NullFields is a list of field names (e.g. "Score") to include in API
13169	// requests with the JSON null value. By default, fields with empty
13170	// values are omitted from API requests. However, any field with an
13171	// empty value appearing in NullFields will be sent to the server as
13172	// null. It is an error if a field in this list has a non-empty value.
13173	// This may be used to include null fields in Patch requests.
13174	NullFields []string `json:"-"`
13175}
13176
13177func (s *WebImage) MarshalJSON() ([]byte, error) {
13178	type NoMethod WebImage
13179	raw := NoMethod(*s)
13180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13181}
13182
13183func (s *WebImage) UnmarshalJSON(data []byte) error {
13184	type NoMethod WebImage
13185	var s1 struct {
13186		Score gensupport.JSONFloat64 `json:"score"`
13187		*NoMethod
13188	}
13189	s1.NoMethod = (*NoMethod)(s)
13190	if err := json.Unmarshal(data, &s1); err != nil {
13191		return err
13192	}
13193	s.Score = float64(s1.Score)
13194	return nil
13195}
13196
13197// WebLabel: Label to provide extra metadata for the web detection.
13198type WebLabel struct {
13199	// Label: Label for extra metadata.
13200	Label string `json:"label,omitempty"`
13201
13202	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
13203	// or "sr-Latn". For more information, see
13204	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13205	LanguageCode string `json:"languageCode,omitempty"`
13206
13207	// ForceSendFields is a list of field names (e.g. "Label") to
13208	// unconditionally include in API requests. By default, fields with
13209	// empty or default values are omitted from API requests. However, any
13210	// non-pointer, non-interface field appearing in ForceSendFields will be
13211	// sent to the server regardless of whether the field is empty or not.
13212	// This may be used to include empty fields in Patch requests.
13213	ForceSendFields []string `json:"-"`
13214
13215	// NullFields is a list of field names (e.g. "Label") to include in API
13216	// requests with the JSON null value. By default, fields with empty
13217	// values are omitted from API requests. However, any field with an
13218	// empty value appearing in NullFields will be sent to the server as
13219	// null. It is an error if a field in this list has a non-empty value.
13220	// This may be used to include null fields in Patch requests.
13221	NullFields []string `json:"-"`
13222}
13223
13224func (s *WebLabel) MarshalJSON() ([]byte, error) {
13225	type NoMethod WebLabel
13226	raw := NoMethod(*s)
13227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13228}
13229
13230// WebPage: Metadata for web pages.
13231type WebPage struct {
13232	// FullMatchingImages: Fully matching images on the page. Can include
13233	// resized copies of the query image.
13234	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
13235
13236	// PageTitle: Title for the web page, may contain HTML markups.
13237	PageTitle string `json:"pageTitle,omitempty"`
13238
13239	// PartialMatchingImages: Partial matching images on the page. Those
13240	// images are similar enough to share some key-point features. For
13241	// example an original image will likely have partial matching for its
13242	// crops.
13243	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
13244
13245	// Score: (Deprecated) Overall relevancy score for the web page.
13246	Score float64 `json:"score,omitempty"`
13247
13248	// Url: The result web page URL.
13249	Url string `json:"url,omitempty"`
13250
13251	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
13252	// to unconditionally include in API requests. By default, fields with
13253	// empty or default values are omitted from API requests. However, any
13254	// non-pointer, non-interface field appearing in ForceSendFields will be
13255	// sent to the server regardless of whether the field is empty or not.
13256	// This may be used to include empty fields in Patch requests.
13257	ForceSendFields []string `json:"-"`
13258
13259	// NullFields is a list of field names (e.g. "FullMatchingImages") to
13260	// include in API requests with the JSON null value. By default, fields
13261	// with empty values are omitted from API requests. However, any field
13262	// with an empty value appearing in NullFields will be sent to the
13263	// server as null. It is an error if a field in this list has a
13264	// non-empty value. This may be used to include null fields in Patch
13265	// requests.
13266	NullFields []string `json:"-"`
13267}
13268
13269func (s *WebPage) MarshalJSON() ([]byte, error) {
13270	type NoMethod WebPage
13271	raw := NoMethod(*s)
13272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13273}
13274
13275func (s *WebPage) UnmarshalJSON(data []byte) error {
13276	type NoMethod WebPage
13277	var s1 struct {
13278		Score gensupport.JSONFloat64 `json:"score"`
13279		*NoMethod
13280	}
13281	s1.NoMethod = (*NoMethod)(s)
13282	if err := json.Unmarshal(data, &s1); err != nil {
13283		return err
13284	}
13285	s.Score = float64(s1.Score)
13286	return nil
13287}
13288
13289// Word: A word representation.
13290type Word struct {
13291	// BoundingBox: The bounding box for the word. The vertices are in the
13292	// order of top-left, top-right, bottom-right, bottom-left. When a
13293	// rotation of the bounding box is detected the rotation is represented
13294	// as around the top-left corner as defined when the text is read in the
13295	// 'natural' orientation. For example: * when the text is horizontal it
13296	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
13297	// around the top-left corner it becomes: 2----3 | | 1----0 and the
13298	// vertex order will still be (0, 1, 2, 3).
13299	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
13300
13301	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
13302	Confidence float64 `json:"confidence,omitempty"`
13303
13304	// Property: Additional information detected for the word.
13305	Property *TextProperty `json:"property,omitempty"`
13306
13307	// Symbols: List of symbols in the word. The order of the symbols
13308	// follows the natural reading order.
13309	Symbols []*Symbol `json:"symbols,omitempty"`
13310
13311	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
13312	// unconditionally include in API requests. By default, fields with
13313	// empty or default values are omitted from API requests. However, any
13314	// non-pointer, non-interface field appearing in ForceSendFields will be
13315	// sent to the server regardless of whether the field is empty or not.
13316	// This may be used to include empty fields in Patch requests.
13317	ForceSendFields []string `json:"-"`
13318
13319	// NullFields is a list of field names (e.g. "BoundingBox") to include
13320	// in API requests with the JSON null value. By default, fields with
13321	// empty values are omitted from API requests. However, any field with
13322	// an empty value appearing in NullFields will be sent to the server as
13323	// null. It is an error if a field in this list has a non-empty value.
13324	// This may be used to include null fields in Patch requests.
13325	NullFields []string `json:"-"`
13326}
13327
13328func (s *Word) MarshalJSON() ([]byte, error) {
13329	type NoMethod Word
13330	raw := NoMethod(*s)
13331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13332}
13333
13334func (s *Word) UnmarshalJSON(data []byte) error {
13335	type NoMethod Word
13336	var s1 struct {
13337		Confidence gensupport.JSONFloat64 `json:"confidence"`
13338		*NoMethod
13339	}
13340	s1.NoMethod = (*NoMethod)(s)
13341	if err := json.Unmarshal(data, &s1); err != nil {
13342		return err
13343	}
13344	s.Confidence = float64(s1.Confidence)
13345	return nil
13346}
13347
13348// method id "vision.files.annotate":
13349
13350type FilesAnnotateCall struct {
13351	s                                                   *Service
13352	googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
13353	urlParams_                                          gensupport.URLParams
13354	ctx_                                                context.Context
13355	header_                                             http.Header
13356}
13357
13358// Annotate: Service that performs image detection and annotation for a
13359// batch of files. Now only "application/pdf", "image/tiff" and
13360// "image/gif" are supported. This service will extract at most 5
13361// (customers can specify which 5 in AnnotateFileRequest.pages) frames
13362// (gif) or pages (pdf or tiff) from each file provided and perform
13363// detection and annotation for each image extracted.
13364func (r *FilesService) Annotate(googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) *FilesAnnotateCall {
13365	c := &FilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13366	c.googlecloudvisionv1p2beta1batchannotatefilesrequest = googlecloudvisionv1p2beta1batchannotatefilesrequest
13367	return c
13368}
13369
13370// Fields allows partial responses to be retrieved. See
13371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13372// for more information.
13373func (c *FilesAnnotateCall) Fields(s ...googleapi.Field) *FilesAnnotateCall {
13374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13375	return c
13376}
13377
13378// Context sets the context to be used in this call's Do method. Any
13379// pending HTTP request will be aborted if the provided context is
13380// canceled.
13381func (c *FilesAnnotateCall) Context(ctx context.Context) *FilesAnnotateCall {
13382	c.ctx_ = ctx
13383	return c
13384}
13385
13386// Header returns an http.Header that can be modified by the caller to
13387// add HTTP headers to the request.
13388func (c *FilesAnnotateCall) Header() http.Header {
13389	if c.header_ == nil {
13390		c.header_ = make(http.Header)
13391	}
13392	return c.header_
13393}
13394
13395func (c *FilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
13396	reqHeaders := make(http.Header)
13397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13398	for k, v := range c.header_ {
13399		reqHeaders[k] = v
13400	}
13401	reqHeaders.Set("User-Agent", c.s.userAgent())
13402	var body io.Reader = nil
13403	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotatefilesrequest)
13404	if err != nil {
13405		return nil, err
13406	}
13407	reqHeaders.Set("Content-Type", "application/json")
13408	c.urlParams_.Set("alt", alt)
13409	c.urlParams_.Set("prettyPrint", "false")
13410	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/files:annotate")
13411	urls += "?" + c.urlParams_.Encode()
13412	req, err := http.NewRequest("POST", urls, body)
13413	if err != nil {
13414		return nil, err
13415	}
13416	req.Header = reqHeaders
13417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13418}
13419
13420// Do executes the "vision.files.annotate" call.
13421// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
13422// or error will be non-nil. Any non-2xx status code is an error.
13423// Response headers are in either
13424// *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse.ServerResponse.H
13425// eader or (if a response was returned at all) in
13426// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13427// whether the returned error was because http.StatusNotModified was
13428// returned.
13429func (c *FilesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse, error) {
13430	gensupport.SetOptions(c.urlParams_, opts...)
13431	res, err := c.doRequest("json")
13432	if res != nil && res.StatusCode == http.StatusNotModified {
13433		if res.Body != nil {
13434			res.Body.Close()
13435		}
13436		return nil, &googleapi.Error{
13437			Code:   res.StatusCode,
13438			Header: res.Header,
13439		}
13440	}
13441	if err != nil {
13442		return nil, err
13443	}
13444	defer googleapi.CloseBody(res)
13445	if err := googleapi.CheckResponse(res); err != nil {
13446		return nil, err
13447	}
13448	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse{
13449		ServerResponse: googleapi.ServerResponse{
13450			Header:         res.Header,
13451			HTTPStatusCode: res.StatusCode,
13452		},
13453	}
13454	target := &ret
13455	if err := gensupport.DecodeResponse(target, res); err != nil {
13456		return nil, err
13457	}
13458	return ret, nil
13459	// {
13460	//   "description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.",
13461	//   "flatPath": "v1p2beta1/files:annotate",
13462	//   "httpMethod": "POST",
13463	//   "id": "vision.files.annotate",
13464	//   "parameterOrder": [],
13465	//   "parameters": {},
13466	//   "path": "v1p2beta1/files:annotate",
13467	//   "request": {
13468	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest"
13469	//   },
13470	//   "response": {
13471	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse"
13472	//   },
13473	//   "scopes": [
13474	//     "https://www.googleapis.com/auth/cloud-platform",
13475	//     "https://www.googleapis.com/auth/cloud-vision"
13476	//   ]
13477	// }
13478
13479}
13480
13481// method id "vision.files.asyncBatchAnnotate":
13482
13483type FilesAsyncBatchAnnotateCall struct {
13484	s                                                        *Service
13485	googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
13486	urlParams_                                               gensupport.URLParams
13487	ctx_                                                     context.Context
13488	header_                                                  http.Header
13489}
13490
13491// AsyncBatchAnnotate: Run asynchronous image detection and annotation
13492// for a list of generic files, such as PDF files, which may contain
13493// multiple pages and multiple images per page. Progress and results can
13494// be retrieved through the `google.longrunning.Operations` interface.
13495// `Operation.metadata` contains `OperationMetadata` (metadata).
13496// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
13497// (results).
13498func (r *FilesService) AsyncBatchAnnotate(googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) *FilesAsyncBatchAnnotateCall {
13499	c := &FilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13500	c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest = googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest
13501	return c
13502}
13503
13504// Fields allows partial responses to be retrieved. See
13505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13506// for more information.
13507func (c *FilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *FilesAsyncBatchAnnotateCall {
13508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13509	return c
13510}
13511
13512// Context sets the context to be used in this call's Do method. Any
13513// pending HTTP request will be aborted if the provided context is
13514// canceled.
13515func (c *FilesAsyncBatchAnnotateCall) Context(ctx context.Context) *FilesAsyncBatchAnnotateCall {
13516	c.ctx_ = ctx
13517	return c
13518}
13519
13520// Header returns an http.Header that can be modified by the caller to
13521// add HTTP headers to the request.
13522func (c *FilesAsyncBatchAnnotateCall) Header() http.Header {
13523	if c.header_ == nil {
13524		c.header_ = make(http.Header)
13525	}
13526	return c.header_
13527}
13528
13529func (c *FilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
13530	reqHeaders := make(http.Header)
13531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13532	for k, v := range c.header_ {
13533		reqHeaders[k] = v
13534	}
13535	reqHeaders.Set("User-Agent", c.s.userAgent())
13536	var body io.Reader = nil
13537	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest)
13538	if err != nil {
13539		return nil, err
13540	}
13541	reqHeaders.Set("Content-Type", "application/json")
13542	c.urlParams_.Set("alt", alt)
13543	c.urlParams_.Set("prettyPrint", "false")
13544	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/files:asyncBatchAnnotate")
13545	urls += "?" + c.urlParams_.Encode()
13546	req, err := http.NewRequest("POST", urls, body)
13547	if err != nil {
13548		return nil, err
13549	}
13550	req.Header = reqHeaders
13551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13552}
13553
13554// Do executes the "vision.files.asyncBatchAnnotate" call.
13555// Exactly one of *Operation or error will be non-nil. Any non-2xx
13556// status code is an error. Response headers are in either
13557// *Operation.ServerResponse.Header or (if a response was returned at
13558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13559// to check whether the returned error was because
13560// http.StatusNotModified was returned.
13561func (c *FilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13562	gensupport.SetOptions(c.urlParams_, opts...)
13563	res, err := c.doRequest("json")
13564	if res != nil && res.StatusCode == http.StatusNotModified {
13565		if res.Body != nil {
13566			res.Body.Close()
13567		}
13568		return nil, &googleapi.Error{
13569			Code:   res.StatusCode,
13570			Header: res.Header,
13571		}
13572	}
13573	if err != nil {
13574		return nil, err
13575	}
13576	defer googleapi.CloseBody(res)
13577	if err := googleapi.CheckResponse(res); err != nil {
13578		return nil, err
13579	}
13580	ret := &Operation{
13581		ServerResponse: googleapi.ServerResponse{
13582			Header:         res.Header,
13583			HTTPStatusCode: res.StatusCode,
13584		},
13585	}
13586	target := &ret
13587	if err := gensupport.DecodeResponse(target, res); err != nil {
13588		return nil, err
13589	}
13590	return ret, nil
13591	// {
13592	//   "description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
13593	//   "flatPath": "v1p2beta1/files:asyncBatchAnnotate",
13594	//   "httpMethod": "POST",
13595	//   "id": "vision.files.asyncBatchAnnotate",
13596	//   "parameterOrder": [],
13597	//   "parameters": {},
13598	//   "path": "v1p2beta1/files:asyncBatchAnnotate",
13599	//   "request": {
13600	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest"
13601	//   },
13602	//   "response": {
13603	//     "$ref": "Operation"
13604	//   },
13605	//   "scopes": [
13606	//     "https://www.googleapis.com/auth/cloud-platform",
13607	//     "https://www.googleapis.com/auth/cloud-vision"
13608	//   ]
13609	// }
13610
13611}
13612
13613// method id "vision.images.annotate":
13614
13615type ImagesAnnotateCall struct {
13616	s                                                    *Service
13617	googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
13618	urlParams_                                           gensupport.URLParams
13619	ctx_                                                 context.Context
13620	header_                                              http.Header
13621}
13622
13623// Annotate: Run image detection and annotation for a batch of images.
13624func (r *ImagesService) Annotate(googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) *ImagesAnnotateCall {
13625	c := &ImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13626	c.googlecloudvisionv1p2beta1batchannotateimagesrequest = googlecloudvisionv1p2beta1batchannotateimagesrequest
13627	return c
13628}
13629
13630// Fields allows partial responses to be retrieved. See
13631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13632// for more information.
13633func (c *ImagesAnnotateCall) Fields(s ...googleapi.Field) *ImagesAnnotateCall {
13634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13635	return c
13636}
13637
13638// Context sets the context to be used in this call's Do method. Any
13639// pending HTTP request will be aborted if the provided context is
13640// canceled.
13641func (c *ImagesAnnotateCall) Context(ctx context.Context) *ImagesAnnotateCall {
13642	c.ctx_ = ctx
13643	return c
13644}
13645
13646// Header returns an http.Header that can be modified by the caller to
13647// add HTTP headers to the request.
13648func (c *ImagesAnnotateCall) Header() http.Header {
13649	if c.header_ == nil {
13650		c.header_ = make(http.Header)
13651	}
13652	return c.header_
13653}
13654
13655func (c *ImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
13656	reqHeaders := make(http.Header)
13657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13658	for k, v := range c.header_ {
13659		reqHeaders[k] = v
13660	}
13661	reqHeaders.Set("User-Agent", c.s.userAgent())
13662	var body io.Reader = nil
13663	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotateimagesrequest)
13664	if err != nil {
13665		return nil, err
13666	}
13667	reqHeaders.Set("Content-Type", "application/json")
13668	c.urlParams_.Set("alt", alt)
13669	c.urlParams_.Set("prettyPrint", "false")
13670	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/images:annotate")
13671	urls += "?" + c.urlParams_.Encode()
13672	req, err := http.NewRequest("POST", urls, body)
13673	if err != nil {
13674		return nil, err
13675	}
13676	req.Header = reqHeaders
13677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13678}
13679
13680// Do executes the "vision.images.annotate" call.
13681// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
13682// or error will be non-nil. Any non-2xx status code is an error.
13683// Response headers are in either
13684// *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse.ServerResponse.
13685// Header or (if a response was returned at all) in
13686// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13687// whether the returned error was because http.StatusNotModified was
13688// returned.
13689func (c *ImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse, error) {
13690	gensupport.SetOptions(c.urlParams_, opts...)
13691	res, err := c.doRequest("json")
13692	if res != nil && res.StatusCode == http.StatusNotModified {
13693		if res.Body != nil {
13694			res.Body.Close()
13695		}
13696		return nil, &googleapi.Error{
13697			Code:   res.StatusCode,
13698			Header: res.Header,
13699		}
13700	}
13701	if err != nil {
13702		return nil, err
13703	}
13704	defer googleapi.CloseBody(res)
13705	if err := googleapi.CheckResponse(res); err != nil {
13706		return nil, err
13707	}
13708	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse{
13709		ServerResponse: googleapi.ServerResponse{
13710			Header:         res.Header,
13711			HTTPStatusCode: res.StatusCode,
13712		},
13713	}
13714	target := &ret
13715	if err := gensupport.DecodeResponse(target, res); err != nil {
13716		return nil, err
13717	}
13718	return ret, nil
13719	// {
13720	//   "description": "Run image detection and annotation for a batch of images.",
13721	//   "flatPath": "v1p2beta1/images:annotate",
13722	//   "httpMethod": "POST",
13723	//   "id": "vision.images.annotate",
13724	//   "parameterOrder": [],
13725	//   "parameters": {},
13726	//   "path": "v1p2beta1/images:annotate",
13727	//   "request": {
13728	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest"
13729	//   },
13730	//   "response": {
13731	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse"
13732	//   },
13733	//   "scopes": [
13734	//     "https://www.googleapis.com/auth/cloud-platform",
13735	//     "https://www.googleapis.com/auth/cloud-vision"
13736	//   ]
13737	// }
13738
13739}
13740
13741// method id "vision.images.asyncBatchAnnotate":
13742
13743type ImagesAsyncBatchAnnotateCall struct {
13744	s                                                         *Service
13745	googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
13746	urlParams_                                                gensupport.URLParams
13747	ctx_                                                      context.Context
13748	header_                                                   http.Header
13749}
13750
13751// AsyncBatchAnnotate: Run asynchronous image detection and annotation
13752// for a list of images. Progress and results can be retrieved through
13753// the `google.longrunning.Operations` interface. `Operation.metadata`
13754// contains `OperationMetadata` (metadata). `Operation.response`
13755// contains `AsyncBatchAnnotateImagesResponse` (results). This service
13756// will write image annotation outputs to json files in customer GCS
13757// bucket, each json file containing BatchAnnotateImagesResponse proto.
13758func (r *ImagesService) AsyncBatchAnnotate(googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) *ImagesAsyncBatchAnnotateCall {
13759	c := &ImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13760	c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest = googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest
13761	return c
13762}
13763
13764// Fields allows partial responses to be retrieved. See
13765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13766// for more information.
13767func (c *ImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ImagesAsyncBatchAnnotateCall {
13768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13769	return c
13770}
13771
13772// Context sets the context to be used in this call's Do method. Any
13773// pending HTTP request will be aborted if the provided context is
13774// canceled.
13775func (c *ImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ImagesAsyncBatchAnnotateCall {
13776	c.ctx_ = ctx
13777	return c
13778}
13779
13780// Header returns an http.Header that can be modified by the caller to
13781// add HTTP headers to the request.
13782func (c *ImagesAsyncBatchAnnotateCall) Header() http.Header {
13783	if c.header_ == nil {
13784		c.header_ = make(http.Header)
13785	}
13786	return c.header_
13787}
13788
13789func (c *ImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
13790	reqHeaders := make(http.Header)
13791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13792	for k, v := range c.header_ {
13793		reqHeaders[k] = v
13794	}
13795	reqHeaders.Set("User-Agent", c.s.userAgent())
13796	var body io.Reader = nil
13797	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest)
13798	if err != nil {
13799		return nil, err
13800	}
13801	reqHeaders.Set("Content-Type", "application/json")
13802	c.urlParams_.Set("alt", alt)
13803	c.urlParams_.Set("prettyPrint", "false")
13804	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/images:asyncBatchAnnotate")
13805	urls += "?" + c.urlParams_.Encode()
13806	req, err := http.NewRequest("POST", urls, body)
13807	if err != nil {
13808		return nil, err
13809	}
13810	req.Header = reqHeaders
13811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13812}
13813
13814// Do executes the "vision.images.asyncBatchAnnotate" call.
13815// Exactly one of *Operation or error will be non-nil. Any non-2xx
13816// status code is an error. Response headers are in either
13817// *Operation.ServerResponse.Header or (if a response was returned at
13818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13819// to check whether the returned error was because
13820// http.StatusNotModified was returned.
13821func (c *ImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13822	gensupport.SetOptions(c.urlParams_, opts...)
13823	res, err := c.doRequest("json")
13824	if res != nil && res.StatusCode == http.StatusNotModified {
13825		if res.Body != nil {
13826			res.Body.Close()
13827		}
13828		return nil, &googleapi.Error{
13829			Code:   res.StatusCode,
13830			Header: res.Header,
13831		}
13832	}
13833	if err != nil {
13834		return nil, err
13835	}
13836	defer googleapi.CloseBody(res)
13837	if err := googleapi.CheckResponse(res); err != nil {
13838		return nil, err
13839	}
13840	ret := &Operation{
13841		ServerResponse: googleapi.ServerResponse{
13842			Header:         res.Header,
13843			HTTPStatusCode: res.StatusCode,
13844		},
13845	}
13846	target := &ret
13847	if err := gensupport.DecodeResponse(target, res); err != nil {
13848		return nil, err
13849	}
13850	return ret, nil
13851	// {
13852	//   "description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
13853	//   "flatPath": "v1p2beta1/images:asyncBatchAnnotate",
13854	//   "httpMethod": "POST",
13855	//   "id": "vision.images.asyncBatchAnnotate",
13856	//   "parameterOrder": [],
13857	//   "parameters": {},
13858	//   "path": "v1p2beta1/images:asyncBatchAnnotate",
13859	//   "request": {
13860	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest"
13861	//   },
13862	//   "response": {
13863	//     "$ref": "Operation"
13864	//   },
13865	//   "scopes": [
13866	//     "https://www.googleapis.com/auth/cloud-platform",
13867	//     "https://www.googleapis.com/auth/cloud-vision"
13868	//   ]
13869	// }
13870
13871}
13872
13873// method id "vision.projects.files.annotate":
13874
13875type ProjectsFilesAnnotateCall struct {
13876	s                                                   *Service
13877	parent                                              string
13878	googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
13879	urlParams_                                          gensupport.URLParams
13880	ctx_                                                context.Context
13881	header_                                             http.Header
13882}
13883
13884// Annotate: Service that performs image detection and annotation for a
13885// batch of files. Now only "application/pdf", "image/tiff" and
13886// "image/gif" are supported. This service will extract at most 5
13887// (customers can specify which 5 in AnnotateFileRequest.pages) frames
13888// (gif) or pages (pdf or tiff) from each file provided and perform
13889// detection and annotation for each image extracted.
13890//
13891// - parent: Optional. Target project and location to make a call.
13892//   Format: `projects/{project-id}/locations/{location-id}`. If no
13893//   parent is specified, a region will be chosen automatically.
13894//   Supported location-ids: `us`: USA country only, `asia`: East asia
13895//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
13896//   `projects/project-A/locations/eu`.
13897func (r *ProjectsFilesService) Annotate(parent string, googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) *ProjectsFilesAnnotateCall {
13898	c := &ProjectsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13899	c.parent = parent
13900	c.googlecloudvisionv1p2beta1batchannotatefilesrequest = googlecloudvisionv1p2beta1batchannotatefilesrequest
13901	return c
13902}
13903
13904// Fields allows partial responses to be retrieved. See
13905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13906// for more information.
13907func (c *ProjectsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAnnotateCall {
13908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13909	return c
13910}
13911
13912// Context sets the context to be used in this call's Do method. Any
13913// pending HTTP request will be aborted if the provided context is
13914// canceled.
13915func (c *ProjectsFilesAnnotateCall) Context(ctx context.Context) *ProjectsFilesAnnotateCall {
13916	c.ctx_ = ctx
13917	return c
13918}
13919
13920// Header returns an http.Header that can be modified by the caller to
13921// add HTTP headers to the request.
13922func (c *ProjectsFilesAnnotateCall) Header() http.Header {
13923	if c.header_ == nil {
13924		c.header_ = make(http.Header)
13925	}
13926	return c.header_
13927}
13928
13929func (c *ProjectsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
13930	reqHeaders := make(http.Header)
13931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13932	for k, v := range c.header_ {
13933		reqHeaders[k] = v
13934	}
13935	reqHeaders.Set("User-Agent", c.s.userAgent())
13936	var body io.Reader = nil
13937	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotatefilesrequest)
13938	if err != nil {
13939		return nil, err
13940	}
13941	reqHeaders.Set("Content-Type", "application/json")
13942	c.urlParams_.Set("alt", alt)
13943	c.urlParams_.Set("prettyPrint", "false")
13944	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/files:annotate")
13945	urls += "?" + c.urlParams_.Encode()
13946	req, err := http.NewRequest("POST", urls, body)
13947	if err != nil {
13948		return nil, err
13949	}
13950	req.Header = reqHeaders
13951	googleapi.Expand(req.URL, map[string]string{
13952		"parent": c.parent,
13953	})
13954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13955}
13956
13957// Do executes the "vision.projects.files.annotate" call.
13958// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
13959// or error will be non-nil. Any non-2xx status code is an error.
13960// Response headers are in either
13961// *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse.ServerResponse.H
13962// eader or (if a response was returned at all) in
13963// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13964// whether the returned error was because http.StatusNotModified was
13965// returned.
13966func (c *ProjectsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse, error) {
13967	gensupport.SetOptions(c.urlParams_, opts...)
13968	res, err := c.doRequest("json")
13969	if res != nil && res.StatusCode == http.StatusNotModified {
13970		if res.Body != nil {
13971			res.Body.Close()
13972		}
13973		return nil, &googleapi.Error{
13974			Code:   res.StatusCode,
13975			Header: res.Header,
13976		}
13977	}
13978	if err != nil {
13979		return nil, err
13980	}
13981	defer googleapi.CloseBody(res)
13982	if err := googleapi.CheckResponse(res); err != nil {
13983		return nil, err
13984	}
13985	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse{
13986		ServerResponse: googleapi.ServerResponse{
13987			Header:         res.Header,
13988			HTTPStatusCode: res.StatusCode,
13989		},
13990	}
13991	target := &ret
13992	if err := gensupport.DecodeResponse(target, res); err != nil {
13993		return nil, err
13994	}
13995	return ret, nil
13996	// {
13997	//   "description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.",
13998	//   "flatPath": "v1p2beta1/projects/{projectsId}/files:annotate",
13999	//   "httpMethod": "POST",
14000	//   "id": "vision.projects.files.annotate",
14001	//   "parameterOrder": [
14002	//     "parent"
14003	//   ],
14004	//   "parameters": {
14005	//     "parent": {
14006	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14007	//       "location": "path",
14008	//       "pattern": "^projects/[^/]+$",
14009	//       "required": true,
14010	//       "type": "string"
14011	//     }
14012	//   },
14013	//   "path": "v1p2beta1/{+parent}/files:annotate",
14014	//   "request": {
14015	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest"
14016	//   },
14017	//   "response": {
14018	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse"
14019	//   },
14020	//   "scopes": [
14021	//     "https://www.googleapis.com/auth/cloud-platform",
14022	//     "https://www.googleapis.com/auth/cloud-vision"
14023	//   ]
14024	// }
14025
14026}
14027
14028// method id "vision.projects.files.asyncBatchAnnotate":
14029
14030type ProjectsFilesAsyncBatchAnnotateCall struct {
14031	s                                                        *Service
14032	parent                                                   string
14033	googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
14034	urlParams_                                               gensupport.URLParams
14035	ctx_                                                     context.Context
14036	header_                                                  http.Header
14037}
14038
14039// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14040// for a list of generic files, such as PDF files, which may contain
14041// multiple pages and multiple images per page. Progress and results can
14042// be retrieved through the `google.longrunning.Operations` interface.
14043// `Operation.metadata` contains `OperationMetadata` (metadata).
14044// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
14045// (results).
14046//
14047// - parent: Optional. Target project and location to make a call.
14048//   Format: `projects/{project-id}/locations/{location-id}`. If no
14049//   parent is specified, a region will be chosen automatically.
14050//   Supported location-ids: `us`: USA country only, `asia`: East asia
14051//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14052//   `projects/project-A/locations/eu`.
14053func (r *ProjectsFilesService) AsyncBatchAnnotate(parent string, googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) *ProjectsFilesAsyncBatchAnnotateCall {
14054	c := &ProjectsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14055	c.parent = parent
14056	c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest = googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest
14057	return c
14058}
14059
14060// Fields allows partial responses to be retrieved. See
14061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14062// for more information.
14063func (c *ProjectsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAsyncBatchAnnotateCall {
14064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14065	return c
14066}
14067
14068// Context sets the context to be used in this call's Do method. Any
14069// pending HTTP request will be aborted if the provided context is
14070// canceled.
14071func (c *ProjectsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsFilesAsyncBatchAnnotateCall {
14072	c.ctx_ = ctx
14073	return c
14074}
14075
14076// Header returns an http.Header that can be modified by the caller to
14077// add HTTP headers to the request.
14078func (c *ProjectsFilesAsyncBatchAnnotateCall) Header() http.Header {
14079	if c.header_ == nil {
14080		c.header_ = make(http.Header)
14081	}
14082	return c.header_
14083}
14084
14085func (c *ProjectsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
14086	reqHeaders := make(http.Header)
14087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14088	for k, v := range c.header_ {
14089		reqHeaders[k] = v
14090	}
14091	reqHeaders.Set("User-Agent", c.s.userAgent())
14092	var body io.Reader = nil
14093	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest)
14094	if err != nil {
14095		return nil, err
14096	}
14097	reqHeaders.Set("Content-Type", "application/json")
14098	c.urlParams_.Set("alt", alt)
14099	c.urlParams_.Set("prettyPrint", "false")
14100	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/files:asyncBatchAnnotate")
14101	urls += "?" + c.urlParams_.Encode()
14102	req, err := http.NewRequest("POST", urls, body)
14103	if err != nil {
14104		return nil, err
14105	}
14106	req.Header = reqHeaders
14107	googleapi.Expand(req.URL, map[string]string{
14108		"parent": c.parent,
14109	})
14110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14111}
14112
14113// Do executes the "vision.projects.files.asyncBatchAnnotate" call.
14114// Exactly one of *Operation or error will be non-nil. Any non-2xx
14115// status code is an error. Response headers are in either
14116// *Operation.ServerResponse.Header or (if a response was returned at
14117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14118// to check whether the returned error was because
14119// http.StatusNotModified was returned.
14120func (c *ProjectsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14121	gensupport.SetOptions(c.urlParams_, opts...)
14122	res, err := c.doRequest("json")
14123	if res != nil && res.StatusCode == http.StatusNotModified {
14124		if res.Body != nil {
14125			res.Body.Close()
14126		}
14127		return nil, &googleapi.Error{
14128			Code:   res.StatusCode,
14129			Header: res.Header,
14130		}
14131	}
14132	if err != nil {
14133		return nil, err
14134	}
14135	defer googleapi.CloseBody(res)
14136	if err := googleapi.CheckResponse(res); err != nil {
14137		return nil, err
14138	}
14139	ret := &Operation{
14140		ServerResponse: googleapi.ServerResponse{
14141			Header:         res.Header,
14142			HTTPStatusCode: res.StatusCode,
14143		},
14144	}
14145	target := &ret
14146	if err := gensupport.DecodeResponse(target, res); err != nil {
14147		return nil, err
14148	}
14149	return ret, nil
14150	// {
14151	//   "description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
14152	//   "flatPath": "v1p2beta1/projects/{projectsId}/files:asyncBatchAnnotate",
14153	//   "httpMethod": "POST",
14154	//   "id": "vision.projects.files.asyncBatchAnnotate",
14155	//   "parameterOrder": [
14156	//     "parent"
14157	//   ],
14158	//   "parameters": {
14159	//     "parent": {
14160	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14161	//       "location": "path",
14162	//       "pattern": "^projects/[^/]+$",
14163	//       "required": true,
14164	//       "type": "string"
14165	//     }
14166	//   },
14167	//   "path": "v1p2beta1/{+parent}/files:asyncBatchAnnotate",
14168	//   "request": {
14169	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest"
14170	//   },
14171	//   "response": {
14172	//     "$ref": "Operation"
14173	//   },
14174	//   "scopes": [
14175	//     "https://www.googleapis.com/auth/cloud-platform",
14176	//     "https://www.googleapis.com/auth/cloud-vision"
14177	//   ]
14178	// }
14179
14180}
14181
14182// method id "vision.projects.images.annotate":
14183
14184type ProjectsImagesAnnotateCall struct {
14185	s                                                    *Service
14186	parent                                               string
14187	googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
14188	urlParams_                                           gensupport.URLParams
14189	ctx_                                                 context.Context
14190	header_                                              http.Header
14191}
14192
14193// Annotate: Run image detection and annotation for a batch of images.
14194//
14195// - parent: Optional. Target project and location to make a call.
14196//   Format: `projects/{project-id}/locations/{location-id}`. If no
14197//   parent is specified, a region will be chosen automatically.
14198//   Supported location-ids: `us`: USA country only, `asia`: East asia
14199//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14200//   `projects/project-A/locations/eu`.
14201func (r *ProjectsImagesService) Annotate(parent string, googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) *ProjectsImagesAnnotateCall {
14202	c := &ProjectsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14203	c.parent = parent
14204	c.googlecloudvisionv1p2beta1batchannotateimagesrequest = googlecloudvisionv1p2beta1batchannotateimagesrequest
14205	return c
14206}
14207
14208// Fields allows partial responses to be retrieved. See
14209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14210// for more information.
14211func (c *ProjectsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAnnotateCall {
14212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14213	return c
14214}
14215
14216// Context sets the context to be used in this call's Do method. Any
14217// pending HTTP request will be aborted if the provided context is
14218// canceled.
14219func (c *ProjectsImagesAnnotateCall) Context(ctx context.Context) *ProjectsImagesAnnotateCall {
14220	c.ctx_ = ctx
14221	return c
14222}
14223
14224// Header returns an http.Header that can be modified by the caller to
14225// add HTTP headers to the request.
14226func (c *ProjectsImagesAnnotateCall) Header() http.Header {
14227	if c.header_ == nil {
14228		c.header_ = make(http.Header)
14229	}
14230	return c.header_
14231}
14232
14233func (c *ProjectsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
14234	reqHeaders := make(http.Header)
14235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14236	for k, v := range c.header_ {
14237		reqHeaders[k] = v
14238	}
14239	reqHeaders.Set("User-Agent", c.s.userAgent())
14240	var body io.Reader = nil
14241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotateimagesrequest)
14242	if err != nil {
14243		return nil, err
14244	}
14245	reqHeaders.Set("Content-Type", "application/json")
14246	c.urlParams_.Set("alt", alt)
14247	c.urlParams_.Set("prettyPrint", "false")
14248	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/images:annotate")
14249	urls += "?" + c.urlParams_.Encode()
14250	req, err := http.NewRequest("POST", urls, body)
14251	if err != nil {
14252		return nil, err
14253	}
14254	req.Header = reqHeaders
14255	googleapi.Expand(req.URL, map[string]string{
14256		"parent": c.parent,
14257	})
14258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14259}
14260
14261// Do executes the "vision.projects.images.annotate" call.
14262// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
14263// or error will be non-nil. Any non-2xx status code is an error.
14264// Response headers are in either
14265// *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse.ServerResponse.
14266// Header or (if a response was returned at all) in
14267// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14268// whether the returned error was because http.StatusNotModified was
14269// returned.
14270func (c *ProjectsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse, error) {
14271	gensupport.SetOptions(c.urlParams_, opts...)
14272	res, err := c.doRequest("json")
14273	if res != nil && res.StatusCode == http.StatusNotModified {
14274		if res.Body != nil {
14275			res.Body.Close()
14276		}
14277		return nil, &googleapi.Error{
14278			Code:   res.StatusCode,
14279			Header: res.Header,
14280		}
14281	}
14282	if err != nil {
14283		return nil, err
14284	}
14285	defer googleapi.CloseBody(res)
14286	if err := googleapi.CheckResponse(res); err != nil {
14287		return nil, err
14288	}
14289	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse{
14290		ServerResponse: googleapi.ServerResponse{
14291			Header:         res.Header,
14292			HTTPStatusCode: res.StatusCode,
14293		},
14294	}
14295	target := &ret
14296	if err := gensupport.DecodeResponse(target, res); err != nil {
14297		return nil, err
14298	}
14299	return ret, nil
14300	// {
14301	//   "description": "Run image detection and annotation for a batch of images.",
14302	//   "flatPath": "v1p2beta1/projects/{projectsId}/images:annotate",
14303	//   "httpMethod": "POST",
14304	//   "id": "vision.projects.images.annotate",
14305	//   "parameterOrder": [
14306	//     "parent"
14307	//   ],
14308	//   "parameters": {
14309	//     "parent": {
14310	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14311	//       "location": "path",
14312	//       "pattern": "^projects/[^/]+$",
14313	//       "required": true,
14314	//       "type": "string"
14315	//     }
14316	//   },
14317	//   "path": "v1p2beta1/{+parent}/images:annotate",
14318	//   "request": {
14319	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest"
14320	//   },
14321	//   "response": {
14322	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse"
14323	//   },
14324	//   "scopes": [
14325	//     "https://www.googleapis.com/auth/cloud-platform",
14326	//     "https://www.googleapis.com/auth/cloud-vision"
14327	//   ]
14328	// }
14329
14330}
14331
14332// method id "vision.projects.images.asyncBatchAnnotate":
14333
14334type ProjectsImagesAsyncBatchAnnotateCall struct {
14335	s                                                         *Service
14336	parent                                                    string
14337	googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
14338	urlParams_                                                gensupport.URLParams
14339	ctx_                                                      context.Context
14340	header_                                                   http.Header
14341}
14342
14343// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14344// for a list of images. Progress and results can be retrieved through
14345// the `google.longrunning.Operations` interface. `Operation.metadata`
14346// contains `OperationMetadata` (metadata). `Operation.response`
14347// contains `AsyncBatchAnnotateImagesResponse` (results). This service
14348// will write image annotation outputs to json files in customer GCS
14349// bucket, each json file containing BatchAnnotateImagesResponse proto.
14350//
14351// - parent: Optional. Target project and location to make a call.
14352//   Format: `projects/{project-id}/locations/{location-id}`. If no
14353//   parent is specified, a region will be chosen automatically.
14354//   Supported location-ids: `us`: USA country only, `asia`: East asia
14355//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14356//   `projects/project-A/locations/eu`.
14357func (r *ProjectsImagesService) AsyncBatchAnnotate(parent string, googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) *ProjectsImagesAsyncBatchAnnotateCall {
14358	c := &ProjectsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14359	c.parent = parent
14360	c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest = googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest
14361	return c
14362}
14363
14364// Fields allows partial responses to be retrieved. See
14365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14366// for more information.
14367func (c *ProjectsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAsyncBatchAnnotateCall {
14368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14369	return c
14370}
14371
14372// Context sets the context to be used in this call's Do method. Any
14373// pending HTTP request will be aborted if the provided context is
14374// canceled.
14375func (c *ProjectsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsImagesAsyncBatchAnnotateCall {
14376	c.ctx_ = ctx
14377	return c
14378}
14379
14380// Header returns an http.Header that can be modified by the caller to
14381// add HTTP headers to the request.
14382func (c *ProjectsImagesAsyncBatchAnnotateCall) Header() http.Header {
14383	if c.header_ == nil {
14384		c.header_ = make(http.Header)
14385	}
14386	return c.header_
14387}
14388
14389func (c *ProjectsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
14390	reqHeaders := make(http.Header)
14391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14392	for k, v := range c.header_ {
14393		reqHeaders[k] = v
14394	}
14395	reqHeaders.Set("User-Agent", c.s.userAgent())
14396	var body io.Reader = nil
14397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest)
14398	if err != nil {
14399		return nil, err
14400	}
14401	reqHeaders.Set("Content-Type", "application/json")
14402	c.urlParams_.Set("alt", alt)
14403	c.urlParams_.Set("prettyPrint", "false")
14404	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/images:asyncBatchAnnotate")
14405	urls += "?" + c.urlParams_.Encode()
14406	req, err := http.NewRequest("POST", urls, body)
14407	if err != nil {
14408		return nil, err
14409	}
14410	req.Header = reqHeaders
14411	googleapi.Expand(req.URL, map[string]string{
14412		"parent": c.parent,
14413	})
14414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14415}
14416
14417// Do executes the "vision.projects.images.asyncBatchAnnotate" call.
14418// Exactly one of *Operation or error will be non-nil. Any non-2xx
14419// status code is an error. Response headers are in either
14420// *Operation.ServerResponse.Header or (if a response was returned at
14421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14422// to check whether the returned error was because
14423// http.StatusNotModified was returned.
14424func (c *ProjectsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14425	gensupport.SetOptions(c.urlParams_, opts...)
14426	res, err := c.doRequest("json")
14427	if res != nil && res.StatusCode == http.StatusNotModified {
14428		if res.Body != nil {
14429			res.Body.Close()
14430		}
14431		return nil, &googleapi.Error{
14432			Code:   res.StatusCode,
14433			Header: res.Header,
14434		}
14435	}
14436	if err != nil {
14437		return nil, err
14438	}
14439	defer googleapi.CloseBody(res)
14440	if err := googleapi.CheckResponse(res); err != nil {
14441		return nil, err
14442	}
14443	ret := &Operation{
14444		ServerResponse: googleapi.ServerResponse{
14445			Header:         res.Header,
14446			HTTPStatusCode: res.StatusCode,
14447		},
14448	}
14449	target := &ret
14450	if err := gensupport.DecodeResponse(target, res); err != nil {
14451		return nil, err
14452	}
14453	return ret, nil
14454	// {
14455	//   "description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
14456	//   "flatPath": "v1p2beta1/projects/{projectsId}/images:asyncBatchAnnotate",
14457	//   "httpMethod": "POST",
14458	//   "id": "vision.projects.images.asyncBatchAnnotate",
14459	//   "parameterOrder": [
14460	//     "parent"
14461	//   ],
14462	//   "parameters": {
14463	//     "parent": {
14464	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14465	//       "location": "path",
14466	//       "pattern": "^projects/[^/]+$",
14467	//       "required": true,
14468	//       "type": "string"
14469	//     }
14470	//   },
14471	//   "path": "v1p2beta1/{+parent}/images:asyncBatchAnnotate",
14472	//   "request": {
14473	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest"
14474	//   },
14475	//   "response": {
14476	//     "$ref": "Operation"
14477	//   },
14478	//   "scopes": [
14479	//     "https://www.googleapis.com/auth/cloud-platform",
14480	//     "https://www.googleapis.com/auth/cloud-vision"
14481	//   ]
14482	// }
14483
14484}
14485
14486// method id "vision.projects.locations.files.annotate":
14487
14488type ProjectsLocationsFilesAnnotateCall struct {
14489	s                                                   *Service
14490	parent                                              string
14491	googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest
14492	urlParams_                                          gensupport.URLParams
14493	ctx_                                                context.Context
14494	header_                                             http.Header
14495}
14496
14497// Annotate: Service that performs image detection and annotation for a
14498// batch of files. Now only "application/pdf", "image/tiff" and
14499// "image/gif" are supported. This service will extract at most 5
14500// (customers can specify which 5 in AnnotateFileRequest.pages) frames
14501// (gif) or pages (pdf or tiff) from each file provided and perform
14502// detection and annotation for each image extracted.
14503//
14504// - parent: Optional. Target project and location to make a call.
14505//   Format: `projects/{project-id}/locations/{location-id}`. If no
14506//   parent is specified, a region will be chosen automatically.
14507//   Supported location-ids: `us`: USA country only, `asia`: East asia
14508//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14509//   `projects/project-A/locations/eu`.
14510func (r *ProjectsLocationsFilesService) Annotate(parent string, googlecloudvisionv1p2beta1batchannotatefilesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest) *ProjectsLocationsFilesAnnotateCall {
14511	c := &ProjectsLocationsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14512	c.parent = parent
14513	c.googlecloudvisionv1p2beta1batchannotatefilesrequest = googlecloudvisionv1p2beta1batchannotatefilesrequest
14514	return c
14515}
14516
14517// Fields allows partial responses to be retrieved. See
14518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14519// for more information.
14520func (c *ProjectsLocationsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAnnotateCall {
14521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14522	return c
14523}
14524
14525// Context sets the context to be used in this call's Do method. Any
14526// pending HTTP request will be aborted if the provided context is
14527// canceled.
14528func (c *ProjectsLocationsFilesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAnnotateCall {
14529	c.ctx_ = ctx
14530	return c
14531}
14532
14533// Header returns an http.Header that can be modified by the caller to
14534// add HTTP headers to the request.
14535func (c *ProjectsLocationsFilesAnnotateCall) Header() http.Header {
14536	if c.header_ == nil {
14537		c.header_ = make(http.Header)
14538	}
14539	return c.header_
14540}
14541
14542func (c *ProjectsLocationsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
14543	reqHeaders := make(http.Header)
14544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14545	for k, v := range c.header_ {
14546		reqHeaders[k] = v
14547	}
14548	reqHeaders.Set("User-Agent", c.s.userAgent())
14549	var body io.Reader = nil
14550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotatefilesrequest)
14551	if err != nil {
14552		return nil, err
14553	}
14554	reqHeaders.Set("Content-Type", "application/json")
14555	c.urlParams_.Set("alt", alt)
14556	c.urlParams_.Set("prettyPrint", "false")
14557	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/files:annotate")
14558	urls += "?" + c.urlParams_.Encode()
14559	req, err := http.NewRequest("POST", urls, body)
14560	if err != nil {
14561		return nil, err
14562	}
14563	req.Header = reqHeaders
14564	googleapi.Expand(req.URL, map[string]string{
14565		"parent": c.parent,
14566	})
14567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14568}
14569
14570// Do executes the "vision.projects.locations.files.annotate" call.
14571// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse
14572// or error will be non-nil. Any non-2xx status code is an error.
14573// Response headers are in either
14574// *GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse.ServerResponse.H
14575// eader or (if a response was returned at all) in
14576// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14577// whether the returned error was because http.StatusNotModified was
14578// returned.
14579func (c *ProjectsLocationsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse, error) {
14580	gensupport.SetOptions(c.urlParams_, opts...)
14581	res, err := c.doRequest("json")
14582	if res != nil && res.StatusCode == http.StatusNotModified {
14583		if res.Body != nil {
14584			res.Body.Close()
14585		}
14586		return nil, &googleapi.Error{
14587			Code:   res.StatusCode,
14588			Header: res.Header,
14589		}
14590	}
14591	if err != nil {
14592		return nil, err
14593	}
14594	defer googleapi.CloseBody(res)
14595	if err := googleapi.CheckResponse(res); err != nil {
14596		return nil, err
14597	}
14598	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse{
14599		ServerResponse: googleapi.ServerResponse{
14600			Header:         res.Header,
14601			HTTPStatusCode: res.StatusCode,
14602		},
14603	}
14604	target := &ret
14605	if err := gensupport.DecodeResponse(target, res); err != nil {
14606		return nil, err
14607	}
14608	return ret, nil
14609	// {
14610	//   "description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.",
14611	//   "flatPath": "v1p2beta1/projects/{projectsId}/locations/{locationsId}/files:annotate",
14612	//   "httpMethod": "POST",
14613	//   "id": "vision.projects.locations.files.annotate",
14614	//   "parameterOrder": [
14615	//     "parent"
14616	//   ],
14617	//   "parameters": {
14618	//     "parent": {
14619	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14620	//       "location": "path",
14621	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
14622	//       "required": true,
14623	//       "type": "string"
14624	//     }
14625	//   },
14626	//   "path": "v1p2beta1/{+parent}/files:annotate",
14627	//   "request": {
14628	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest"
14629	//   },
14630	//   "response": {
14631	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse"
14632	//   },
14633	//   "scopes": [
14634	//     "https://www.googleapis.com/auth/cloud-platform",
14635	//     "https://www.googleapis.com/auth/cloud-vision"
14636	//   ]
14637	// }
14638
14639}
14640
14641// method id "vision.projects.locations.files.asyncBatchAnnotate":
14642
14643type ProjectsLocationsFilesAsyncBatchAnnotateCall struct {
14644	s                                                        *Service
14645	parent                                                   string
14646	googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest
14647	urlParams_                                               gensupport.URLParams
14648	ctx_                                                     context.Context
14649	header_                                                  http.Header
14650}
14651
14652// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14653// for a list of generic files, such as PDF files, which may contain
14654// multiple pages and multiple images per page. Progress and results can
14655// be retrieved through the `google.longrunning.Operations` interface.
14656// `Operation.metadata` contains `OperationMetadata` (metadata).
14657// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
14658// (results).
14659//
14660// - parent: Optional. Target project and location to make a call.
14661//   Format: `projects/{project-id}/locations/{location-id}`. If no
14662//   parent is specified, a region will be chosen automatically.
14663//   Supported location-ids: `us`: USA country only, `asia`: East asia
14664//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14665//   `projects/project-A/locations/eu`.
14666func (r *ProjectsLocationsFilesService) AsyncBatchAnnotate(parent string, googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
14667	c := &ProjectsLocationsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14668	c.parent = parent
14669	c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest = googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest
14670	return c
14671}
14672
14673// Fields allows partial responses to be retrieved. See
14674// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14675// for more information.
14676func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
14677	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14678	return c
14679}
14680
14681// Context sets the context to be used in this call's Do method. Any
14682// pending HTTP request will be aborted if the provided context is
14683// canceled.
14684func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
14685	c.ctx_ = ctx
14686	return c
14687}
14688
14689// Header returns an http.Header that can be modified by the caller to
14690// add HTTP headers to the request.
14691func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Header() http.Header {
14692	if c.header_ == nil {
14693		c.header_ = make(http.Header)
14694	}
14695	return c.header_
14696}
14697
14698func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
14699	reqHeaders := make(http.Header)
14700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14701	for k, v := range c.header_ {
14702		reqHeaders[k] = v
14703	}
14704	reqHeaders.Set("User-Agent", c.s.userAgent())
14705	var body io.Reader = nil
14706	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotatefilesrequest)
14707	if err != nil {
14708		return nil, err
14709	}
14710	reqHeaders.Set("Content-Type", "application/json")
14711	c.urlParams_.Set("alt", alt)
14712	c.urlParams_.Set("prettyPrint", "false")
14713	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/files:asyncBatchAnnotate")
14714	urls += "?" + c.urlParams_.Encode()
14715	req, err := http.NewRequest("POST", urls, body)
14716	if err != nil {
14717		return nil, err
14718	}
14719	req.Header = reqHeaders
14720	googleapi.Expand(req.URL, map[string]string{
14721		"parent": c.parent,
14722	})
14723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14724}
14725
14726// Do executes the "vision.projects.locations.files.asyncBatchAnnotate" call.
14727// Exactly one of *Operation or error will be non-nil. Any non-2xx
14728// status code is an error. Response headers are in either
14729// *Operation.ServerResponse.Header or (if a response was returned at
14730// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14731// to check whether the returned error was because
14732// http.StatusNotModified was returned.
14733func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14734	gensupport.SetOptions(c.urlParams_, opts...)
14735	res, err := c.doRequest("json")
14736	if res != nil && res.StatusCode == http.StatusNotModified {
14737		if res.Body != nil {
14738			res.Body.Close()
14739		}
14740		return nil, &googleapi.Error{
14741			Code:   res.StatusCode,
14742			Header: res.Header,
14743		}
14744	}
14745	if err != nil {
14746		return nil, err
14747	}
14748	defer googleapi.CloseBody(res)
14749	if err := googleapi.CheckResponse(res); err != nil {
14750		return nil, err
14751	}
14752	ret := &Operation{
14753		ServerResponse: googleapi.ServerResponse{
14754			Header:         res.Header,
14755			HTTPStatusCode: res.StatusCode,
14756		},
14757	}
14758	target := &ret
14759	if err := gensupport.DecodeResponse(target, res); err != nil {
14760		return nil, err
14761	}
14762	return ret, nil
14763	// {
14764	//   "description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
14765	//   "flatPath": "v1p2beta1/projects/{projectsId}/locations/{locationsId}/files:asyncBatchAnnotate",
14766	//   "httpMethod": "POST",
14767	//   "id": "vision.projects.locations.files.asyncBatchAnnotate",
14768	//   "parameterOrder": [
14769	//     "parent"
14770	//   ],
14771	//   "parameters": {
14772	//     "parent": {
14773	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14774	//       "location": "path",
14775	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
14776	//       "required": true,
14777	//       "type": "string"
14778	//     }
14779	//   },
14780	//   "path": "v1p2beta1/{+parent}/files:asyncBatchAnnotate",
14781	//   "request": {
14782	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest"
14783	//   },
14784	//   "response": {
14785	//     "$ref": "Operation"
14786	//   },
14787	//   "scopes": [
14788	//     "https://www.googleapis.com/auth/cloud-platform",
14789	//     "https://www.googleapis.com/auth/cloud-vision"
14790	//   ]
14791	// }
14792
14793}
14794
14795// method id "vision.projects.locations.images.annotate":
14796
14797type ProjectsLocationsImagesAnnotateCall struct {
14798	s                                                    *Service
14799	parent                                               string
14800	googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest
14801	urlParams_                                           gensupport.URLParams
14802	ctx_                                                 context.Context
14803	header_                                              http.Header
14804}
14805
14806// Annotate: Run image detection and annotation for a batch of images.
14807//
14808// - parent: Optional. Target project and location to make a call.
14809//   Format: `projects/{project-id}/locations/{location-id}`. If no
14810//   parent is specified, a region will be chosen automatically.
14811//   Supported location-ids: `us`: USA country only, `asia`: East asia
14812//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14813//   `projects/project-A/locations/eu`.
14814func (r *ProjectsLocationsImagesService) Annotate(parent string, googlecloudvisionv1p2beta1batchannotateimagesrequest *GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest) *ProjectsLocationsImagesAnnotateCall {
14815	c := &ProjectsLocationsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14816	c.parent = parent
14817	c.googlecloudvisionv1p2beta1batchannotateimagesrequest = googlecloudvisionv1p2beta1batchannotateimagesrequest
14818	return c
14819}
14820
14821// Fields allows partial responses to be retrieved. See
14822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14823// for more information.
14824func (c *ProjectsLocationsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAnnotateCall {
14825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14826	return c
14827}
14828
14829// Context sets the context to be used in this call's Do method. Any
14830// pending HTTP request will be aborted if the provided context is
14831// canceled.
14832func (c *ProjectsLocationsImagesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAnnotateCall {
14833	c.ctx_ = ctx
14834	return c
14835}
14836
14837// Header returns an http.Header that can be modified by the caller to
14838// add HTTP headers to the request.
14839func (c *ProjectsLocationsImagesAnnotateCall) Header() http.Header {
14840	if c.header_ == nil {
14841		c.header_ = make(http.Header)
14842	}
14843	return c.header_
14844}
14845
14846func (c *ProjectsLocationsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
14847	reqHeaders := make(http.Header)
14848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14849	for k, v := range c.header_ {
14850		reqHeaders[k] = v
14851	}
14852	reqHeaders.Set("User-Agent", c.s.userAgent())
14853	var body io.Reader = nil
14854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1batchannotateimagesrequest)
14855	if err != nil {
14856		return nil, err
14857	}
14858	reqHeaders.Set("Content-Type", "application/json")
14859	c.urlParams_.Set("alt", alt)
14860	c.urlParams_.Set("prettyPrint", "false")
14861	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/images:annotate")
14862	urls += "?" + c.urlParams_.Encode()
14863	req, err := http.NewRequest("POST", urls, body)
14864	if err != nil {
14865		return nil, err
14866	}
14867	req.Header = reqHeaders
14868	googleapi.Expand(req.URL, map[string]string{
14869		"parent": c.parent,
14870	})
14871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14872}
14873
14874// Do executes the "vision.projects.locations.images.annotate" call.
14875// Exactly one of *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse
14876// or error will be non-nil. Any non-2xx status code is an error.
14877// Response headers are in either
14878// *GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse.ServerResponse.
14879// Header or (if a response was returned at all) in
14880// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14881// whether the returned error was because http.StatusNotModified was
14882// returned.
14883func (c *ProjectsLocationsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse, error) {
14884	gensupport.SetOptions(c.urlParams_, opts...)
14885	res, err := c.doRequest("json")
14886	if res != nil && res.StatusCode == http.StatusNotModified {
14887		if res.Body != nil {
14888			res.Body.Close()
14889		}
14890		return nil, &googleapi.Error{
14891			Code:   res.StatusCode,
14892			Header: res.Header,
14893		}
14894	}
14895	if err != nil {
14896		return nil, err
14897	}
14898	defer googleapi.CloseBody(res)
14899	if err := googleapi.CheckResponse(res); err != nil {
14900		return nil, err
14901	}
14902	ret := &GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse{
14903		ServerResponse: googleapi.ServerResponse{
14904			Header:         res.Header,
14905			HTTPStatusCode: res.StatusCode,
14906		},
14907	}
14908	target := &ret
14909	if err := gensupport.DecodeResponse(target, res); err != nil {
14910		return nil, err
14911	}
14912	return ret, nil
14913	// {
14914	//   "description": "Run image detection and annotation for a batch of images.",
14915	//   "flatPath": "v1p2beta1/projects/{projectsId}/locations/{locationsId}/images:annotate",
14916	//   "httpMethod": "POST",
14917	//   "id": "vision.projects.locations.images.annotate",
14918	//   "parameterOrder": [
14919	//     "parent"
14920	//   ],
14921	//   "parameters": {
14922	//     "parent": {
14923	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
14924	//       "location": "path",
14925	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
14926	//       "required": true,
14927	//       "type": "string"
14928	//     }
14929	//   },
14930	//   "path": "v1p2beta1/{+parent}/images:annotate",
14931	//   "request": {
14932	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest"
14933	//   },
14934	//   "response": {
14935	//     "$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse"
14936	//   },
14937	//   "scopes": [
14938	//     "https://www.googleapis.com/auth/cloud-platform",
14939	//     "https://www.googleapis.com/auth/cloud-vision"
14940	//   ]
14941	// }
14942
14943}
14944
14945// method id "vision.projects.locations.images.asyncBatchAnnotate":
14946
14947type ProjectsLocationsImagesAsyncBatchAnnotateCall struct {
14948	s                                                         *Service
14949	parent                                                    string
14950	googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest
14951	urlParams_                                                gensupport.URLParams
14952	ctx_                                                      context.Context
14953	header_                                                   http.Header
14954}
14955
14956// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14957// for a list of images. Progress and results can be retrieved through
14958// the `google.longrunning.Operations` interface. `Operation.metadata`
14959// contains `OperationMetadata` (metadata). `Operation.response`
14960// contains `AsyncBatchAnnotateImagesResponse` (results). This service
14961// will write image annotation outputs to json files in customer GCS
14962// bucket, each json file containing BatchAnnotateImagesResponse proto.
14963//
14964// - parent: Optional. Target project and location to make a call.
14965//   Format: `projects/{project-id}/locations/{location-id}`. If no
14966//   parent is specified, a region will be chosen automatically.
14967//   Supported location-ids: `us`: USA country only, `asia`: East asia
14968//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
14969//   `projects/project-A/locations/eu`.
14970func (r *ProjectsLocationsImagesService) AsyncBatchAnnotate(parent string, googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
14971	c := &ProjectsLocationsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14972	c.parent = parent
14973	c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest = googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest
14974	return c
14975}
14976
14977// Fields allows partial responses to be retrieved. See
14978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14979// for more information.
14980func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
14981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14982	return c
14983}
14984
14985// Context sets the context to be used in this call's Do method. Any
14986// pending HTTP request will be aborted if the provided context is
14987// canceled.
14988func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
14989	c.ctx_ = ctx
14990	return c
14991}
14992
14993// Header returns an http.Header that can be modified by the caller to
14994// add HTTP headers to the request.
14995func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Header() http.Header {
14996	if c.header_ == nil {
14997		c.header_ = make(http.Header)
14998	}
14999	return c.header_
15000}
15001
15002func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15003	reqHeaders := make(http.Header)
15004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15005	for k, v := range c.header_ {
15006		reqHeaders[k] = v
15007	}
15008	reqHeaders.Set("User-Agent", c.s.userAgent())
15009	var body io.Reader = nil
15010	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvisionv1p2beta1asyncbatchannotateimagesrequest)
15011	if err != nil {
15012		return nil, err
15013	}
15014	reqHeaders.Set("Content-Type", "application/json")
15015	c.urlParams_.Set("alt", alt)
15016	c.urlParams_.Set("prettyPrint", "false")
15017	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p2beta1/{+parent}/images:asyncBatchAnnotate")
15018	urls += "?" + c.urlParams_.Encode()
15019	req, err := http.NewRequest("POST", urls, body)
15020	if err != nil {
15021		return nil, err
15022	}
15023	req.Header = reqHeaders
15024	googleapi.Expand(req.URL, map[string]string{
15025		"parent": c.parent,
15026	})
15027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15028}
15029
15030// Do executes the "vision.projects.locations.images.asyncBatchAnnotate" call.
15031// Exactly one of *Operation or error will be non-nil. Any non-2xx
15032// status code is an error. Response headers are in either
15033// *Operation.ServerResponse.Header or (if a response was returned at
15034// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15035// to check whether the returned error was because
15036// http.StatusNotModified was returned.
15037func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15038	gensupport.SetOptions(c.urlParams_, opts...)
15039	res, err := c.doRequest("json")
15040	if res != nil && res.StatusCode == http.StatusNotModified {
15041		if res.Body != nil {
15042			res.Body.Close()
15043		}
15044		return nil, &googleapi.Error{
15045			Code:   res.StatusCode,
15046			Header: res.Header,
15047		}
15048	}
15049	if err != nil {
15050		return nil, err
15051	}
15052	defer googleapi.CloseBody(res)
15053	if err := googleapi.CheckResponse(res); err != nil {
15054		return nil, err
15055	}
15056	ret := &Operation{
15057		ServerResponse: googleapi.ServerResponse{
15058			Header:         res.Header,
15059			HTTPStatusCode: res.StatusCode,
15060		},
15061	}
15062	target := &ret
15063	if err := gensupport.DecodeResponse(target, res); err != nil {
15064		return nil, err
15065	}
15066	return ret, nil
15067	// {
15068	//   "description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
15069	//   "flatPath": "v1p2beta1/projects/{projectsId}/locations/{locationsId}/images:asyncBatchAnnotate",
15070	//   "httpMethod": "POST",
15071	//   "id": "vision.projects.locations.images.asyncBatchAnnotate",
15072	//   "parameterOrder": [
15073	//     "parent"
15074	//   ],
15075	//   "parameters": {
15076	//     "parent": {
15077	//       "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.",
15078	//       "location": "path",
15079	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
15080	//       "required": true,
15081	//       "type": "string"
15082	//     }
15083	//   },
15084	//   "path": "v1p2beta1/{+parent}/images:asyncBatchAnnotate",
15085	//   "request": {
15086	//     "$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest"
15087	//   },
15088	//   "response": {
15089	//     "$ref": "Operation"
15090	//   },
15091	//   "scopes": [
15092	//     "https://www.googleapis.com/auth/cloud-platform",
15093	//     "https://www.googleapis.com/auth/cloud-vision"
15094	//   ]
15095	// }
15096
15097}
15098