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/v1"
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/v1"
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:v1"
81const apiName = "vision"
82const apiVersion = "v1"
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.Locations = NewLocationsService(s)
133	s.Operations = NewOperationsService(s)
134	s.Projects = NewProjectsService(s)
135	return s, nil
136}
137
138type Service struct {
139	client    *http.Client
140	BasePath  string // API endpoint base URL
141	UserAgent string // optional additional User-Agent fragment
142
143	Files *FilesService
144
145	Images *ImagesService
146
147	Locations *LocationsService
148
149	Operations *OperationsService
150
151	Projects *ProjectsService
152}
153
154func (s *Service) userAgent() string {
155	if s.UserAgent == "" {
156		return googleapi.UserAgent
157	}
158	return googleapi.UserAgent + " " + s.UserAgent
159}
160
161func NewFilesService(s *Service) *FilesService {
162	rs := &FilesService{s: s}
163	return rs
164}
165
166type FilesService struct {
167	s *Service
168}
169
170func NewImagesService(s *Service) *ImagesService {
171	rs := &ImagesService{s: s}
172	return rs
173}
174
175type ImagesService struct {
176	s *Service
177}
178
179func NewLocationsService(s *Service) *LocationsService {
180	rs := &LocationsService{s: s}
181	rs.Operations = NewLocationsOperationsService(s)
182	return rs
183}
184
185type LocationsService struct {
186	s *Service
187
188	Operations *LocationsOperationsService
189}
190
191func NewLocationsOperationsService(s *Service) *LocationsOperationsService {
192	rs := &LocationsOperationsService{s: s}
193	return rs
194}
195
196type LocationsOperationsService struct {
197	s *Service
198}
199
200func NewOperationsService(s *Service) *OperationsService {
201	rs := &OperationsService{s: s}
202	return rs
203}
204
205type OperationsService struct {
206	s *Service
207}
208
209func NewProjectsService(s *Service) *ProjectsService {
210	rs := &ProjectsService{s: s}
211	rs.Files = NewProjectsFilesService(s)
212	rs.Images = NewProjectsImagesService(s)
213	rs.Locations = NewProjectsLocationsService(s)
214	rs.Operations = NewProjectsOperationsService(s)
215	return rs
216}
217
218type ProjectsService struct {
219	s *Service
220
221	Files *ProjectsFilesService
222
223	Images *ProjectsImagesService
224
225	Locations *ProjectsLocationsService
226
227	Operations *ProjectsOperationsService
228}
229
230func NewProjectsFilesService(s *Service) *ProjectsFilesService {
231	rs := &ProjectsFilesService{s: s}
232	return rs
233}
234
235type ProjectsFilesService struct {
236	s *Service
237}
238
239func NewProjectsImagesService(s *Service) *ProjectsImagesService {
240	rs := &ProjectsImagesService{s: s}
241	return rs
242}
243
244type ProjectsImagesService struct {
245	s *Service
246}
247
248func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
249	rs := &ProjectsLocationsService{s: s}
250	rs.Files = NewProjectsLocationsFilesService(s)
251	rs.Images = NewProjectsLocationsImagesService(s)
252	rs.Operations = NewProjectsLocationsOperationsService(s)
253	rs.ProductSets = NewProjectsLocationsProductSetsService(s)
254	rs.Products = NewProjectsLocationsProductsService(s)
255	return rs
256}
257
258type ProjectsLocationsService struct {
259	s *Service
260
261	Files *ProjectsLocationsFilesService
262
263	Images *ProjectsLocationsImagesService
264
265	Operations *ProjectsLocationsOperationsService
266
267	ProductSets *ProjectsLocationsProductSetsService
268
269	Products *ProjectsLocationsProductsService
270}
271
272func NewProjectsLocationsFilesService(s *Service) *ProjectsLocationsFilesService {
273	rs := &ProjectsLocationsFilesService{s: s}
274	return rs
275}
276
277type ProjectsLocationsFilesService struct {
278	s *Service
279}
280
281func NewProjectsLocationsImagesService(s *Service) *ProjectsLocationsImagesService {
282	rs := &ProjectsLocationsImagesService{s: s}
283	return rs
284}
285
286type ProjectsLocationsImagesService struct {
287	s *Service
288}
289
290func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
291	rs := &ProjectsLocationsOperationsService{s: s}
292	return rs
293}
294
295type ProjectsLocationsOperationsService struct {
296	s *Service
297}
298
299func NewProjectsLocationsProductSetsService(s *Service) *ProjectsLocationsProductSetsService {
300	rs := &ProjectsLocationsProductSetsService{s: s}
301	rs.Products = NewProjectsLocationsProductSetsProductsService(s)
302	return rs
303}
304
305type ProjectsLocationsProductSetsService struct {
306	s *Service
307
308	Products *ProjectsLocationsProductSetsProductsService
309}
310
311func NewProjectsLocationsProductSetsProductsService(s *Service) *ProjectsLocationsProductSetsProductsService {
312	rs := &ProjectsLocationsProductSetsProductsService{s: s}
313	return rs
314}
315
316type ProjectsLocationsProductSetsProductsService struct {
317	s *Service
318}
319
320func NewProjectsLocationsProductsService(s *Service) *ProjectsLocationsProductsService {
321	rs := &ProjectsLocationsProductsService{s: s}
322	rs.ReferenceImages = NewProjectsLocationsProductsReferenceImagesService(s)
323	return rs
324}
325
326type ProjectsLocationsProductsService struct {
327	s *Service
328
329	ReferenceImages *ProjectsLocationsProductsReferenceImagesService
330}
331
332func NewProjectsLocationsProductsReferenceImagesService(s *Service) *ProjectsLocationsProductsReferenceImagesService {
333	rs := &ProjectsLocationsProductsReferenceImagesService{s: s}
334	return rs
335}
336
337type ProjectsLocationsProductsReferenceImagesService struct {
338	s *Service
339}
340
341func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
342	rs := &ProjectsOperationsService{s: s}
343	return rs
344}
345
346type ProjectsOperationsService struct {
347	s *Service
348}
349
350// AddProductToProductSetRequest: Request message for the
351// `AddProductToProductSet` method.
352type AddProductToProductSetRequest struct {
353	// Product: Required. The resource name for the Product to be added to
354	// this ProductSet. Format is:
355	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
356	Product string `json:"product,omitempty"`
357
358	// ForceSendFields is a list of field names (e.g. "Product") to
359	// unconditionally include in API requests. By default, fields with
360	// empty or default values are omitted from API requests. However, any
361	// non-pointer, non-interface field appearing in ForceSendFields will be
362	// sent to the server regardless of whether the field is empty or not.
363	// This may be used to include empty fields in Patch requests.
364	ForceSendFields []string `json:"-"`
365
366	// NullFields is a list of field names (e.g. "Product") to include in
367	// API requests with the JSON null value. By default, fields with empty
368	// values are omitted from API requests. However, any field with an
369	// empty value appearing in NullFields will be sent to the server as
370	// null. It is an error if a field in this list has a non-empty value.
371	// This may be used to include null fields in Patch requests.
372	NullFields []string `json:"-"`
373}
374
375func (s *AddProductToProductSetRequest) MarshalJSON() ([]byte, error) {
376	type NoMethod AddProductToProductSetRequest
377	raw := NoMethod(*s)
378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
379}
380
381// AnnotateFileRequest: A request to annotate one single file, e.g. a
382// PDF, TIFF or GIF file.
383type AnnotateFileRequest struct {
384	// Features: Required. Requested features.
385	Features []*Feature `json:"features,omitempty"`
386
387	// ImageContext: Additional context that may accompany the image(s) in
388	// the file.
389	ImageContext *ImageContext `json:"imageContext,omitempty"`
390
391	// InputConfig: Required. Information about the input file.
392	InputConfig *InputConfig `json:"inputConfig,omitempty"`
393
394	// Pages: Pages of the file to perform image annotation. Pages starts
395	// from 1, we assume the first page of the file is page 1. At most 5
396	// pages are supported per request. Pages can be negative. Page 1 means
397	// the first page. Page 2 means the second page. Page -1 means the last
398	// page. Page -2 means the second to the last page. If the file is GIF
399	// instead of PDF or TIFF, page refers to GIF frames. If this field is
400	// empty, by default the service performs image annotation for the first
401	// 5 pages of the file.
402	Pages []int64 `json:"pages,omitempty"`
403
404	// ForceSendFields is a list of field names (e.g. "Features") 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. "Features") 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 *AnnotateFileRequest) MarshalJSON() ([]byte, error) {
422	type NoMethod AnnotateFileRequest
423	raw := NoMethod(*s)
424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
425}
426
427// AnnotateFileResponse: Response to a single file annotation request. A
428// file may contain one or more images, which individually have their
429// own responses.
430type AnnotateFileResponse struct {
431	// Error: If set, represents the error message for the failed request.
432	// The `responses` field will not be set in this case.
433	Error *Status `json:"error,omitempty"`
434
435	// InputConfig: Information about the file for which this response is
436	// generated.
437	InputConfig *InputConfig `json:"inputConfig,omitempty"`
438
439	// Responses: Individual responses to images found within the file. This
440	// field will be empty if the `error` field is set.
441	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
442
443	// TotalPages: This field gives the total number of pages in the file.
444	TotalPages int64 `json:"totalPages,omitempty"`
445
446	// ForceSendFields is a list of field names (e.g. "Error") to
447	// unconditionally include in API requests. By default, fields with
448	// empty or default values are omitted from API requests. However, any
449	// non-pointer, non-interface field appearing in ForceSendFields will be
450	// sent to the server regardless of whether the field is empty or not.
451	// This may be used to include empty fields in Patch requests.
452	ForceSendFields []string `json:"-"`
453
454	// NullFields is a list of field names (e.g. "Error") to include in API
455	// requests with the JSON null value. By default, fields with empty
456	// values are omitted from API requests. However, any field with an
457	// empty value appearing in NullFields will be sent to the server as
458	// null. It is an error if a field in this list has a non-empty value.
459	// This may be used to include null fields in Patch requests.
460	NullFields []string `json:"-"`
461}
462
463func (s *AnnotateFileResponse) MarshalJSON() ([]byte, error) {
464	type NoMethod AnnotateFileResponse
465	raw := NoMethod(*s)
466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
467}
468
469// AnnotateImageRequest: Request for performing Google Cloud Vision API
470// tasks over a user-provided image, with user-requested features, and
471// with context information.
472type AnnotateImageRequest struct {
473	// Features: Requested features.
474	Features []*Feature `json:"features,omitempty"`
475
476	// Image: The image to be processed.
477	Image *Image `json:"image,omitempty"`
478
479	// ImageContext: Additional context that may accompany the image.
480	ImageContext *ImageContext `json:"imageContext,omitempty"`
481
482	// ForceSendFields is a list of field names (e.g. "Features") to
483	// unconditionally include in API requests. By default, fields with
484	// empty or default values are omitted from API requests. However, any
485	// non-pointer, non-interface field appearing in ForceSendFields will be
486	// sent to the server regardless of whether the field is empty or not.
487	// This may be used to include empty fields in Patch requests.
488	ForceSendFields []string `json:"-"`
489
490	// NullFields is a list of field names (e.g. "Features") to include in
491	// API requests with the JSON null value. By default, fields with empty
492	// values are omitted from API requests. However, any field with an
493	// empty value appearing in NullFields will be sent to the server as
494	// null. It is an error if a field in this list has a non-empty value.
495	// This may be used to include null fields in Patch requests.
496	NullFields []string `json:"-"`
497}
498
499func (s *AnnotateImageRequest) MarshalJSON() ([]byte, error) {
500	type NoMethod AnnotateImageRequest
501	raw := NoMethod(*s)
502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
503}
504
505// AnnotateImageResponse: Response to an image annotation request.
506type AnnotateImageResponse struct {
507	// Context: If present, contextual information is needed to understand
508	// where this image comes from.
509	Context *ImageAnnotationContext `json:"context,omitempty"`
510
511	// CropHintsAnnotation: If present, crop hints have completed
512	// successfully.
513	CropHintsAnnotation *CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
514
515	// Error: If set, represents the error message for the operation. Note
516	// that filled-in image annotations are guaranteed to be correct, even
517	// when `error` is set.
518	Error *Status `json:"error,omitempty"`
519
520	// FaceAnnotations: If present, face detection has completed
521	// successfully.
522	FaceAnnotations []*FaceAnnotation `json:"faceAnnotations,omitempty"`
523
524	// FullTextAnnotation: If present, text (OCR) detection or document
525	// (OCR) text detection has completed successfully. This annotation
526	// provides the structural hierarchy for the OCR detected text.
527	FullTextAnnotation *TextAnnotation `json:"fullTextAnnotation,omitempty"`
528
529	// ImagePropertiesAnnotation: If present, image properties were
530	// extracted successfully.
531	ImagePropertiesAnnotation *ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
532
533	// LabelAnnotations: If present, label detection has completed
534	// successfully.
535	LabelAnnotations []*EntityAnnotation `json:"labelAnnotations,omitempty"`
536
537	// LandmarkAnnotations: If present, landmark detection has completed
538	// successfully.
539	LandmarkAnnotations []*EntityAnnotation `json:"landmarkAnnotations,omitempty"`
540
541	// LocalizedObjectAnnotations: If present, localized object detection
542	// has completed successfully. This will be sorted descending by
543	// confidence score.
544	LocalizedObjectAnnotations []*LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
545
546	// LogoAnnotations: If present, logo detection has completed
547	// successfully.
548	LogoAnnotations []*EntityAnnotation `json:"logoAnnotations,omitempty"`
549
550	// ProductSearchResults: If present, product search has completed
551	// successfully.
552	ProductSearchResults *ProductSearchResults `json:"productSearchResults,omitempty"`
553
554	// SafeSearchAnnotation: If present, safe-search annotation has
555	// completed successfully.
556	SafeSearchAnnotation *SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
557
558	// TextAnnotations: If present, text (OCR) detection has completed
559	// successfully.
560	TextAnnotations []*EntityAnnotation `json:"textAnnotations,omitempty"`
561
562	// WebDetection: If present, web detection has completed successfully.
563	WebDetection *WebDetection `json:"webDetection,omitempty"`
564
565	// ForceSendFields is a list of field names (e.g. "Context") to
566	// unconditionally include in API requests. By default, fields with
567	// empty or default values are omitted from API requests. However, any
568	// non-pointer, non-interface field appearing in ForceSendFields will be
569	// sent to the server regardless of whether the field is empty or not.
570	// This may be used to include empty fields in Patch requests.
571	ForceSendFields []string `json:"-"`
572
573	// NullFields is a list of field names (e.g. "Context") to include in
574	// API requests with the JSON null value. By default, fields with empty
575	// values are omitted from API requests. However, any field with an
576	// empty value appearing in NullFields will be sent to the server as
577	// null. It is an error if a field in this list has a non-empty value.
578	// This may be used to include null fields in Patch requests.
579	NullFields []string `json:"-"`
580}
581
582func (s *AnnotateImageResponse) MarshalJSON() ([]byte, error) {
583	type NoMethod AnnotateImageResponse
584	raw := NoMethod(*s)
585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
586}
587
588// AsyncAnnotateFileRequest: An offline file annotation request.
589type AsyncAnnotateFileRequest struct {
590	// Features: Required. Requested features.
591	Features []*Feature `json:"features,omitempty"`
592
593	// ImageContext: Additional context that may accompany the image(s) in
594	// the file.
595	ImageContext *ImageContext `json:"imageContext,omitempty"`
596
597	// InputConfig: Required. Information about the input file.
598	InputConfig *InputConfig `json:"inputConfig,omitempty"`
599
600	// OutputConfig: Required. The desired output location and metadata
601	// (e.g. format).
602	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
603
604	// ForceSendFields is a list of field names (e.g. "Features") to
605	// unconditionally include in API requests. By default, fields with
606	// empty or default values are omitted from API requests. However, any
607	// non-pointer, non-interface field appearing in ForceSendFields will be
608	// sent to the server regardless of whether the field is empty or not.
609	// This may be used to include empty fields in Patch requests.
610	ForceSendFields []string `json:"-"`
611
612	// NullFields is a list of field names (e.g. "Features") to include in
613	// API requests with the JSON null value. By default, fields with empty
614	// values are omitted from API requests. However, any field with an
615	// empty value appearing in NullFields will be sent to the server as
616	// null. It is an error if a field in this list has a non-empty value.
617	// This may be used to include null fields in Patch requests.
618	NullFields []string `json:"-"`
619}
620
621func (s *AsyncAnnotateFileRequest) MarshalJSON() ([]byte, error) {
622	type NoMethod AsyncAnnotateFileRequest
623	raw := NoMethod(*s)
624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
625}
626
627// AsyncAnnotateFileResponse: The response for a single offline file
628// annotation request.
629type AsyncAnnotateFileResponse struct {
630	// OutputConfig: The output location and metadata from
631	// AsyncAnnotateFileRequest.
632	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
633
634	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
635	// unconditionally include in API requests. By default, fields with
636	// empty or default values are omitted from API requests. However, any
637	// non-pointer, non-interface field appearing in ForceSendFields will be
638	// sent to the server regardless of whether the field is empty or not.
639	// This may be used to include empty fields in Patch requests.
640	ForceSendFields []string `json:"-"`
641
642	// NullFields is a list of field names (e.g. "OutputConfig") to include
643	// in API requests with the JSON null value. By default, fields with
644	// empty values are omitted from API requests. However, any field with
645	// an empty value appearing in NullFields will be sent to the server as
646	// null. It is an error if a field in this list has a non-empty value.
647	// This may be used to include null fields in Patch requests.
648	NullFields []string `json:"-"`
649}
650
651func (s *AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
652	type NoMethod AsyncAnnotateFileResponse
653	raw := NoMethod(*s)
654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
655}
656
657// AsyncBatchAnnotateFilesRequest: Multiple async file annotation
658// requests are batched into a single service call.
659type AsyncBatchAnnotateFilesRequest struct {
660	// Parent: Optional. Target project and location to make a call. Format:
661	// `projects/{project-id}/locations/{location-id}`. If no parent is
662	// specified, a region will be chosen automatically. Supported
663	// location-ids: `us`: USA country only, `asia`: East asia areas, like
664	// Japan, Taiwan, `eu`: The European Union. Example:
665	// `projects/project-A/locations/eu`.
666	Parent string `json:"parent,omitempty"`
667
668	// Requests: Required. Individual async file annotation requests for
669	// this batch.
670	Requests []*AsyncAnnotateFileRequest `json:"requests,omitempty"`
671
672	// ForceSendFields is a list of field names (e.g. "Parent") to
673	// unconditionally include in API requests. By default, fields with
674	// empty or default values are omitted from API requests. However, any
675	// non-pointer, non-interface field appearing in ForceSendFields will be
676	// sent to the server regardless of whether the field is empty or not.
677	// This may be used to include empty fields in Patch requests.
678	ForceSendFields []string `json:"-"`
679
680	// NullFields is a list of field names (e.g. "Parent") to include in API
681	// requests with the JSON null value. By default, fields with empty
682	// values are omitted from API requests. However, any field with an
683	// empty value appearing in NullFields will be sent to the server as
684	// null. It is an error if a field in this list has a non-empty value.
685	// This may be used to include null fields in Patch requests.
686	NullFields []string `json:"-"`
687}
688
689func (s *AsyncBatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
690	type NoMethod AsyncBatchAnnotateFilesRequest
691	raw := NoMethod(*s)
692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
693}
694
695// AsyncBatchAnnotateFilesResponse: Response to an async batch file
696// annotation request.
697type AsyncBatchAnnotateFilesResponse struct {
698	// Responses: The list of file annotation responses, one for each
699	// request in AsyncBatchAnnotateFilesRequest.
700	Responses []*AsyncAnnotateFileResponse `json:"responses,omitempty"`
701
702	// ForceSendFields is a list of field names (e.g. "Responses") to
703	// unconditionally include in API requests. By default, fields with
704	// empty or default values are omitted from API requests. However, any
705	// non-pointer, non-interface field appearing in ForceSendFields will be
706	// sent to the server regardless of whether the field is empty or not.
707	// This may be used to include empty fields in Patch requests.
708	ForceSendFields []string `json:"-"`
709
710	// NullFields is a list of field names (e.g. "Responses") to include in
711	// API requests with the JSON null value. By default, fields with empty
712	// values are omitted from API requests. However, any field with an
713	// empty value appearing in NullFields will be sent to the server as
714	// null. It is an error if a field in this list has a non-empty value.
715	// This may be used to include null fields in Patch requests.
716	NullFields []string `json:"-"`
717}
718
719func (s *AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
720	type NoMethod AsyncBatchAnnotateFilesResponse
721	raw := NoMethod(*s)
722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
723}
724
725// AsyncBatchAnnotateImagesRequest: Request for async image annotation
726// for a list of images.
727type AsyncBatchAnnotateImagesRequest struct {
728	// OutputConfig: Required. The desired output location and metadata
729	// (e.g. format).
730	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
731
732	// Parent: Optional. Target project and location to make a call. Format:
733	// `projects/{project-id}/locations/{location-id}`. If no parent is
734	// specified, a region will be chosen automatically. Supported
735	// location-ids: `us`: USA country only, `asia`: East asia areas, like
736	// Japan, Taiwan, `eu`: The European Union. Example:
737	// `projects/project-A/locations/eu`.
738	Parent string `json:"parent,omitempty"`
739
740	// Requests: Required. Individual image annotation requests for this
741	// batch.
742	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
743
744	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
745	// unconditionally include in API requests. By default, fields with
746	// empty or default values are omitted from API requests. However, any
747	// non-pointer, non-interface field appearing in ForceSendFields will be
748	// sent to the server regardless of whether the field is empty or not.
749	// This may be used to include empty fields in Patch requests.
750	ForceSendFields []string `json:"-"`
751
752	// NullFields is a list of field names (e.g. "OutputConfig") to include
753	// in API requests with the JSON null value. By default, fields with
754	// empty values are omitted from API requests. However, any field with
755	// an empty value appearing in NullFields will be sent to the server as
756	// null. It is an error if a field in this list has a non-empty value.
757	// This may be used to include null fields in Patch requests.
758	NullFields []string `json:"-"`
759}
760
761func (s *AsyncBatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
762	type NoMethod AsyncBatchAnnotateImagesRequest
763	raw := NoMethod(*s)
764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
765}
766
767// AsyncBatchAnnotateImagesResponse: Response to an async batch image
768// annotation request.
769type AsyncBatchAnnotateImagesResponse struct {
770	// OutputConfig: The output location and metadata from
771	// AsyncBatchAnnotateImagesRequest.
772	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
773
774	// ForceSendFields is a list of field names (e.g. "OutputConfig") 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. "OutputConfig") to include
783	// in API requests with the JSON null value. By default, fields with
784	// empty values are omitted from API requests. However, any field with
785	// an 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 *AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
792	type NoMethod AsyncBatchAnnotateImagesResponse
793	raw := NoMethod(*s)
794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
795}
796
797// BatchAnnotateFilesRequest: A list of requests to annotate files using
798// the BatchAnnotateFiles API.
799type BatchAnnotateFilesRequest struct {
800	// Parent: Optional. Target project and location to make a call. Format:
801	// `projects/{project-id}/locations/{location-id}`. If no parent is
802	// specified, a region will be chosen automatically. Supported
803	// location-ids: `us`: USA country only, `asia`: East asia areas, like
804	// Japan, Taiwan, `eu`: The European Union. Example:
805	// `projects/project-A/locations/eu`.
806	Parent string `json:"parent,omitempty"`
807
808	// Requests: Required. The list of file annotation requests. Right now
809	// we support only one AnnotateFileRequest in BatchAnnotateFilesRequest.
810	Requests []*AnnotateFileRequest `json:"requests,omitempty"`
811
812	// ForceSendFields is a list of field names (e.g. "Parent") to
813	// unconditionally include in API requests. By default, fields with
814	// empty or default values are omitted from API requests. However, any
815	// non-pointer, non-interface field appearing in ForceSendFields will be
816	// sent to the server regardless of whether the field is empty or not.
817	// This may be used to include empty fields in Patch requests.
818	ForceSendFields []string `json:"-"`
819
820	// NullFields is a list of field names (e.g. "Parent") to include in API
821	// requests with the JSON null value. By default, fields with empty
822	// values are omitted from API requests. However, any field with an
823	// empty value appearing in NullFields will be sent to the server as
824	// null. It is an error if a field in this list has a non-empty value.
825	// This may be used to include null fields in Patch requests.
826	NullFields []string `json:"-"`
827}
828
829func (s *BatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
830	type NoMethod BatchAnnotateFilesRequest
831	raw := NoMethod(*s)
832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
833}
834
835// BatchAnnotateFilesResponse: A list of file annotation responses.
836type BatchAnnotateFilesResponse struct {
837	// Responses: The list of file annotation responses, each response
838	// corresponding to each AnnotateFileRequest in
839	// BatchAnnotateFilesRequest.
840	Responses []*AnnotateFileResponse `json:"responses,omitempty"`
841
842	// ServerResponse contains the HTTP response code and headers from the
843	// server.
844	googleapi.ServerResponse `json:"-"`
845
846	// ForceSendFields is a list of field names (e.g. "Responses") to
847	// unconditionally include in API requests. By default, fields with
848	// empty or default values are omitted from API requests. However, any
849	// non-pointer, non-interface field appearing in ForceSendFields will be
850	// sent to the server regardless of whether the field is empty or not.
851	// This may be used to include empty fields in Patch requests.
852	ForceSendFields []string `json:"-"`
853
854	// NullFields is a list of field names (e.g. "Responses") to include in
855	// API requests with the JSON null value. By default, fields with empty
856	// values are omitted from API requests. However, any field with an
857	// empty value appearing in NullFields will be sent to the server as
858	// null. It is an error if a field in this list has a non-empty value.
859	// This may be used to include null fields in Patch requests.
860	NullFields []string `json:"-"`
861}
862
863func (s *BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
864	type NoMethod BatchAnnotateFilesResponse
865	raw := NoMethod(*s)
866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
867}
868
869// BatchAnnotateImagesRequest: Multiple image annotation requests are
870// batched into a single service call.
871type BatchAnnotateImagesRequest struct {
872	// Parent: Optional. Target project and location to make a call. Format:
873	// `projects/{project-id}/locations/{location-id}`. If no parent is
874	// specified, a region will be chosen automatically. Supported
875	// location-ids: `us`: USA country only, `asia`: East asia areas, like
876	// Japan, Taiwan, `eu`: The European Union. Example:
877	// `projects/project-A/locations/eu`.
878	Parent string `json:"parent,omitempty"`
879
880	// Requests: Required. Individual image annotation requests for this
881	// batch.
882	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
883
884	// ForceSendFields is a list of field names (e.g. "Parent") to
885	// unconditionally include in API requests. By default, fields with
886	// empty or default values are omitted from API requests. However, any
887	// non-pointer, non-interface field appearing in ForceSendFields will be
888	// sent to the server regardless of whether the field is empty or not.
889	// This may be used to include empty fields in Patch requests.
890	ForceSendFields []string `json:"-"`
891
892	// NullFields is a list of field names (e.g. "Parent") to include in API
893	// requests with the JSON null value. By default, fields with empty
894	// values are omitted from API requests. However, any field with an
895	// empty value appearing in NullFields will be sent to the server as
896	// null. It is an error if a field in this list has a non-empty value.
897	// This may be used to include null fields in Patch requests.
898	NullFields []string `json:"-"`
899}
900
901func (s *BatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
902	type NoMethod BatchAnnotateImagesRequest
903	raw := NoMethod(*s)
904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
905}
906
907// BatchAnnotateImagesResponse: Response to a batch image annotation
908// request.
909type BatchAnnotateImagesResponse struct {
910	// Responses: Individual responses to image annotation requests within
911	// the batch.
912	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
913
914	// ServerResponse contains the HTTP response code and headers from the
915	// server.
916	googleapi.ServerResponse `json:"-"`
917
918	// ForceSendFields is a list of field names (e.g. "Responses") to
919	// unconditionally include in API requests. By default, fields with
920	// empty or default values are omitted from API requests. However, any
921	// non-pointer, non-interface field appearing in ForceSendFields will be
922	// sent to the server regardless of whether the field is empty or not.
923	// This may be used to include empty fields in Patch requests.
924	ForceSendFields []string `json:"-"`
925
926	// NullFields is a list of field names (e.g. "Responses") to include in
927	// API requests with the JSON null value. By default, fields with empty
928	// values are omitted from API requests. However, any field with an
929	// empty value appearing in NullFields will be sent to the server as
930	// null. It is an error if a field in this list has a non-empty value.
931	// This may be used to include null fields in Patch requests.
932	NullFields []string `json:"-"`
933}
934
935func (s *BatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
936	type NoMethod BatchAnnotateImagesResponse
937	raw := NoMethod(*s)
938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
939}
940
941// BatchOperationMetadata: Metadata for the batch operations such as the
942// current state. This is included in the `metadata` field of the
943// `Operation` returned by the `GetOperation` call of the
944// `google::longrunning::Operations` service.
945type BatchOperationMetadata struct {
946	// EndTime: The time when the batch request is finished and
947	// google.longrunning.Operation.done is set to true.
948	EndTime string `json:"endTime,omitempty"`
949
950	// State: The current state of the batch operation.
951	//
952	// Possible values:
953	//   "STATE_UNSPECIFIED" - Invalid.
954	//   "PROCESSING" - Request is actively being processed.
955	//   "SUCCESSFUL" - The request is done and at least one item has been
956	// successfully processed.
957	//   "FAILED" - The request is done and no item has been successfully
958	// processed.
959	//   "CANCELLED" - The request is done after the
960	// longrunning.Operations.CancelOperation has been called by the user.
961	// Any records that were processed before the cancel command are output
962	// as specified in the request.
963	State string `json:"state,omitempty"`
964
965	// SubmitTime: The time when the batch request was submitted to the
966	// server.
967	SubmitTime string `json:"submitTime,omitempty"`
968
969	// ForceSendFields is a list of field names (e.g. "EndTime") to
970	// unconditionally include in API requests. By default, fields with
971	// empty or default values are omitted from API requests. However, any
972	// non-pointer, non-interface field appearing in ForceSendFields will be
973	// sent to the server regardless of whether the field is empty or not.
974	// This may be used to include empty fields in Patch requests.
975	ForceSendFields []string `json:"-"`
976
977	// NullFields is a list of field names (e.g. "EndTime") to include in
978	// API requests with the JSON null value. By default, fields with empty
979	// values are omitted from API requests. However, any field with an
980	// empty value appearing in NullFields will be sent to the server as
981	// null. It is an error if a field in this list has a non-empty value.
982	// This may be used to include null fields in Patch requests.
983	NullFields []string `json:"-"`
984}
985
986func (s *BatchOperationMetadata) MarshalJSON() ([]byte, error) {
987	type NoMethod BatchOperationMetadata
988	raw := NoMethod(*s)
989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
990}
991
992// Block: Logical element on the page.
993type Block struct {
994	// BlockType: Detected block type (text, image etc) for this block.
995	//
996	// Possible values:
997	//   "UNKNOWN" - Unknown block type.
998	//   "TEXT" - Regular text block.
999	//   "TABLE" - Table block.
1000	//   "PICTURE" - Image block.
1001	//   "RULER" - Horizontal/vertical line box.
1002	//   "BARCODE" - Barcode block.
1003	BlockType string `json:"blockType,omitempty"`
1004
1005	// BoundingBox: The bounding box for the block. The vertices are in the
1006	// order of top-left, top-right, bottom-right, bottom-left. When a
1007	// rotation of the bounding box is detected the rotation is represented
1008	// as around the top-left corner as defined when the text is read in the
1009	// 'natural' orientation. For example: * when the text is horizontal it
1010	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
1011	// around the top-left corner it becomes: 2----3 | | 1----0 and the
1012	// vertex order will still be (0, 1, 2, 3).
1013	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
1014
1015	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
1016	Confidence float64 `json:"confidence,omitempty"`
1017
1018	// Paragraphs: List of paragraphs in this block (if this blocks is of
1019	// type text).
1020	Paragraphs []*Paragraph `json:"paragraphs,omitempty"`
1021
1022	// Property: Additional information detected for the block.
1023	Property *TextProperty `json:"property,omitempty"`
1024
1025	// ForceSendFields is a list of field names (e.g. "BlockType") to
1026	// unconditionally include in API requests. By default, fields with
1027	// empty or default values are omitted from API requests. However, any
1028	// non-pointer, non-interface field appearing in ForceSendFields will be
1029	// sent to the server regardless of whether the field is empty or not.
1030	// This may be used to include empty fields in Patch requests.
1031	ForceSendFields []string `json:"-"`
1032
1033	// NullFields is a list of field names (e.g. "BlockType") to include in
1034	// API requests with the JSON null value. By default, fields with empty
1035	// values are omitted from API requests. However, any field with an
1036	// empty value appearing in NullFields will be sent to the server as
1037	// null. It is an error if a field in this list has a non-empty value.
1038	// This may be used to include null fields in Patch requests.
1039	NullFields []string `json:"-"`
1040}
1041
1042func (s *Block) MarshalJSON() ([]byte, error) {
1043	type NoMethod Block
1044	raw := NoMethod(*s)
1045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1046}
1047
1048func (s *Block) UnmarshalJSON(data []byte) error {
1049	type NoMethod Block
1050	var s1 struct {
1051		Confidence gensupport.JSONFloat64 `json:"confidence"`
1052		*NoMethod
1053	}
1054	s1.NoMethod = (*NoMethod)(s)
1055	if err := json.Unmarshal(data, &s1); err != nil {
1056		return err
1057	}
1058	s.Confidence = float64(s1.Confidence)
1059	return nil
1060}
1061
1062// BoundingPoly: A bounding polygon for the detected image annotation.
1063type BoundingPoly struct {
1064	// NormalizedVertices: The bounding polygon normalized vertices.
1065	NormalizedVertices []*NormalizedVertex `json:"normalizedVertices,omitempty"`
1066
1067	// Vertices: The bounding polygon vertices.
1068	Vertices []*Vertex `json:"vertices,omitempty"`
1069
1070	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
1071	// to unconditionally include in API requests. By default, fields with
1072	// empty or default values are omitted from API requests. However, any
1073	// non-pointer, non-interface field appearing in ForceSendFields will be
1074	// sent to the server regardless of whether the field is empty or not.
1075	// This may be used to include empty fields in Patch requests.
1076	ForceSendFields []string `json:"-"`
1077
1078	// NullFields is a list of field names (e.g. "NormalizedVertices") to
1079	// include in API requests with the JSON null value. By default, fields
1080	// with empty values are omitted from API requests. However, any field
1081	// with an empty value appearing in NullFields will be sent to the
1082	// server as null. It is an error if a field in this list has a
1083	// non-empty value. This may be used to include null fields in Patch
1084	// requests.
1085	NullFields []string `json:"-"`
1086}
1087
1088func (s *BoundingPoly) MarshalJSON() ([]byte, error) {
1089	type NoMethod BoundingPoly
1090	raw := NoMethod(*s)
1091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1092}
1093
1094// CancelOperationRequest: The request message for
1095// Operations.CancelOperation.
1096type CancelOperationRequest struct {
1097}
1098
1099// Color: Represents a color in the RGBA color space. This
1100// representation is designed for simplicity of conversion to/from color
1101// representations in various languages over compactness. For example,
1102// the fields of this representation can be trivially provided to the
1103// constructor of `java.awt.Color` in Java; it can also be trivially
1104// provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS;
1105// and, with just a little work, it can be easily formatted into a CSS
1106// `rgba()` string in JavaScript. This reference page doesn't carry
1107// information about the absolute color space that should be used to
1108// interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020,
1109// etc.). By default, applications should assume the sRGB color space.
1110// When color equality needs to be decided, implementations, unless
1111// documented otherwise, treat two colors as equal if all their red,
1112// green, blue, and alpha values each differ by at most 1e-5. Example
1113// (Java): import com.google.type.Color; // ... public static
1114// java.awt.Color fromProto(Color protocolor) { float alpha =
1115// protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0;
1116// return new java.awt.Color( protocolor.getRed(),
1117// protocolor.getGreen(), protocolor.getBlue(), alpha); } public static
1118// Color toProto(java.awt.Color color) { float red = (float)
1119// color.getRed(); float green = (float) color.getGreen(); float blue =
1120// (float) color.getBlue(); float denominator = 255.0; Color.Builder
1121// resultBuilder = Color .newBuilder() .setRed(red / denominator)
1122// .setGreen(green / denominator) .setBlue(blue / denominator); int
1123// alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha(
1124// FloatValue .newBuilder() .setValue(((float) alpha) / denominator)
1125// .build()); } return resultBuilder.build(); } // ... Example (iOS /
1126// Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float
1127// red = [protocolor red]; float green = [protocolor green]; float blue
1128// = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha];
1129// float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper
1130// value]; } return [UIColor colorWithRed:red green:green blue:blue
1131// alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red,
1132// green, blue, alpha; if (![color getRed:&red green:&green blue:&blue
1133// alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init];
1134// [result setRed:red]; [result setGreen:green]; [result setBlue:blue];
1135// if (alpha <= 0.9999) { [result
1136// setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease];
1137// return result; } // ... Example (JavaScript): // ... var
1138// protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red
1139// || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac =
1140// rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green
1141// = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255);
1142// if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green,
1143// blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams
1144// = [red, green, blue].join(','); return ['rgba(', rgbParams, ',',
1145// alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green,
1146// blue) { var rgbNumber = new Number((red << 16) | (green << 8) |
1147// blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 -
1148// hexString.length; var resultBuilder = ['#']; for (var i = 0; i <
1149// missingZeros; i++) { resultBuilder.push('0'); }
1150// resultBuilder.push(hexString); return resultBuilder.join(''); }; //
1151// ...
1152type Color struct {
1153	// Alpha: The fraction of this color that should be applied to the
1154	// pixel. That is, the final pixel color is defined by the equation:
1155	// `pixel color = alpha * (this color) + (1.0 - alpha) * (background
1156	// color)` This means that a value of 1.0 corresponds to a solid color,
1157	// whereas a value of 0.0 corresponds to a completely transparent color.
1158	// This uses a wrapper message rather than a simple float scalar so that
1159	// it is possible to distinguish between a default value and the value
1160	// being unset. If omitted, this color object is rendered as a solid
1161	// color (as if the alpha value had been explicitly given a value of
1162	// 1.0).
1163	Alpha float64 `json:"alpha,omitempty"`
1164
1165	// Blue: The amount of blue in the color as a value in the interval [0,
1166	// 1].
1167	Blue float64 `json:"blue,omitempty"`
1168
1169	// Green: The amount of green in the color as a value in the interval
1170	// [0, 1].
1171	Green float64 `json:"green,omitempty"`
1172
1173	// Red: The amount of red in the color as a value in the interval [0,
1174	// 1].
1175	Red float64 `json:"red,omitempty"`
1176
1177	// ForceSendFields is a list of field names (e.g. "Alpha") to
1178	// unconditionally include in API requests. By default, fields with
1179	// empty or default values are omitted from API requests. However, any
1180	// non-pointer, non-interface field appearing in ForceSendFields will be
1181	// sent to the server regardless of whether the field is empty or not.
1182	// This may be used to include empty fields in Patch requests.
1183	ForceSendFields []string `json:"-"`
1184
1185	// NullFields is a list of field names (e.g. "Alpha") to include in API
1186	// requests with the JSON null value. By default, fields with empty
1187	// values are omitted from API requests. However, any field with an
1188	// empty value appearing in NullFields will be sent to the server as
1189	// null. It is an error if a field in this list has a non-empty value.
1190	// This may be used to include null fields in Patch requests.
1191	NullFields []string `json:"-"`
1192}
1193
1194func (s *Color) MarshalJSON() ([]byte, error) {
1195	type NoMethod Color
1196	raw := NoMethod(*s)
1197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1198}
1199
1200func (s *Color) UnmarshalJSON(data []byte) error {
1201	type NoMethod Color
1202	var s1 struct {
1203		Alpha gensupport.JSONFloat64 `json:"alpha"`
1204		Blue  gensupport.JSONFloat64 `json:"blue"`
1205		Green gensupport.JSONFloat64 `json:"green"`
1206		Red   gensupport.JSONFloat64 `json:"red"`
1207		*NoMethod
1208	}
1209	s1.NoMethod = (*NoMethod)(s)
1210	if err := json.Unmarshal(data, &s1); err != nil {
1211		return err
1212	}
1213	s.Alpha = float64(s1.Alpha)
1214	s.Blue = float64(s1.Blue)
1215	s.Green = float64(s1.Green)
1216	s.Red = float64(s1.Red)
1217	return nil
1218}
1219
1220// ColorInfo: Color information consists of RGB channels, score, and the
1221// fraction of the image that the color occupies in the image.
1222type ColorInfo struct {
1223	// Color: RGB components of the color.
1224	Color *Color `json:"color,omitempty"`
1225
1226	// PixelFraction: The fraction of pixels the color occupies in the
1227	// image. Value in range [0, 1].
1228	PixelFraction float64 `json:"pixelFraction,omitempty"`
1229
1230	// Score: Image-specific score for this color. Value in range [0, 1].
1231	Score float64 `json:"score,omitempty"`
1232
1233	// ForceSendFields is a list of field names (e.g. "Color") to
1234	// unconditionally include in API requests. By default, fields with
1235	// empty or default values are omitted from API requests. However, any
1236	// non-pointer, non-interface field appearing in ForceSendFields will be
1237	// sent to the server regardless of whether the field is empty or not.
1238	// This may be used to include empty fields in Patch requests.
1239	ForceSendFields []string `json:"-"`
1240
1241	// NullFields is a list of field names (e.g. "Color") to include in API
1242	// requests with the JSON null value. By default, fields with empty
1243	// values are omitted from API requests. However, any field with an
1244	// empty value appearing in NullFields will be sent to the server as
1245	// null. It is an error if a field in this list has a non-empty value.
1246	// This may be used to include null fields in Patch requests.
1247	NullFields []string `json:"-"`
1248}
1249
1250func (s *ColorInfo) MarshalJSON() ([]byte, error) {
1251	type NoMethod ColorInfo
1252	raw := NoMethod(*s)
1253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1254}
1255
1256func (s *ColorInfo) UnmarshalJSON(data []byte) error {
1257	type NoMethod ColorInfo
1258	var s1 struct {
1259		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
1260		Score         gensupport.JSONFloat64 `json:"score"`
1261		*NoMethod
1262	}
1263	s1.NoMethod = (*NoMethod)(s)
1264	if err := json.Unmarshal(data, &s1); err != nil {
1265		return err
1266	}
1267	s.PixelFraction = float64(s1.PixelFraction)
1268	s.Score = float64(s1.Score)
1269	return nil
1270}
1271
1272// CropHint: Single crop hint that is used to generate a new crop when
1273// serving an image.
1274type CropHint struct {
1275	// BoundingPoly: The bounding polygon for the crop region. The
1276	// coordinates of the bounding box are in the original image's scale.
1277	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1278
1279	// Confidence: Confidence of this being a salient region. Range [0, 1].
1280	Confidence float64 `json:"confidence,omitempty"`
1281
1282	// ImportanceFraction: Fraction of importance of this salient region
1283	// with respect to the original image.
1284	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
1285
1286	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1287	// unconditionally include in API requests. By default, fields with
1288	// empty or default values are omitted from API requests. However, any
1289	// non-pointer, non-interface field appearing in ForceSendFields will be
1290	// sent to the server regardless of whether the field is empty or not.
1291	// This may be used to include empty fields in Patch requests.
1292	ForceSendFields []string `json:"-"`
1293
1294	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1295	// in API requests with the JSON null value. By default, fields with
1296	// empty values are omitted from API requests. However, any field with
1297	// an empty value appearing in NullFields will be sent to the server as
1298	// null. It is an error if a field in this list has a non-empty value.
1299	// This may be used to include null fields in Patch requests.
1300	NullFields []string `json:"-"`
1301}
1302
1303func (s *CropHint) MarshalJSON() ([]byte, error) {
1304	type NoMethod CropHint
1305	raw := NoMethod(*s)
1306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1307}
1308
1309func (s *CropHint) UnmarshalJSON(data []byte) error {
1310	type NoMethod CropHint
1311	var s1 struct {
1312		Confidence         gensupport.JSONFloat64 `json:"confidence"`
1313		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
1314		*NoMethod
1315	}
1316	s1.NoMethod = (*NoMethod)(s)
1317	if err := json.Unmarshal(data, &s1); err != nil {
1318		return err
1319	}
1320	s.Confidence = float64(s1.Confidence)
1321	s.ImportanceFraction = float64(s1.ImportanceFraction)
1322	return nil
1323}
1324
1325// CropHintsAnnotation: Set of crop hints that are used to generate new
1326// crops when serving images.
1327type CropHintsAnnotation struct {
1328	// CropHints: Crop hint results.
1329	CropHints []*CropHint `json:"cropHints,omitempty"`
1330
1331	// ForceSendFields is a list of field names (e.g. "CropHints") to
1332	// unconditionally include in API requests. By default, fields with
1333	// empty or default values are omitted from API requests. However, any
1334	// non-pointer, non-interface field appearing in ForceSendFields will be
1335	// sent to the server regardless of whether the field is empty or not.
1336	// This may be used to include empty fields in Patch requests.
1337	ForceSendFields []string `json:"-"`
1338
1339	// NullFields is a list of field names (e.g. "CropHints") to include in
1340	// API requests with the JSON null value. By default, fields with empty
1341	// values are omitted from API requests. However, any field with an
1342	// empty value appearing in NullFields will be sent to the server as
1343	// null. It is an error if a field in this list has a non-empty value.
1344	// This may be used to include null fields in Patch requests.
1345	NullFields []string `json:"-"`
1346}
1347
1348func (s *CropHintsAnnotation) MarshalJSON() ([]byte, error) {
1349	type NoMethod CropHintsAnnotation
1350	raw := NoMethod(*s)
1351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1352}
1353
1354// CropHintsParams: Parameters for crop hints annotation request.
1355type CropHintsParams struct {
1356	// AspectRatios: Aspect ratios in floats, representing the ratio of the
1357	// width to the height of the image. For example, if the desired aspect
1358	// ratio is 4/3, the corresponding float value should be 1.33333. If not
1359	// specified, the best possible crop is returned. The number of provided
1360	// aspect ratios is limited to a maximum of 16; any aspect ratios
1361	// provided after the 16th are ignored.
1362	AspectRatios []float64 `json:"aspectRatios,omitempty"`
1363
1364	// ForceSendFields is a list of field names (e.g. "AspectRatios") to
1365	// unconditionally include in API requests. By default, fields with
1366	// empty or default values are omitted from API requests. However, any
1367	// non-pointer, non-interface field appearing in ForceSendFields will be
1368	// sent to the server regardless of whether the field is empty or not.
1369	// This may be used to include empty fields in Patch requests.
1370	ForceSendFields []string `json:"-"`
1371
1372	// NullFields is a list of field names (e.g. "AspectRatios") to include
1373	// in API requests with the JSON null value. By default, fields with
1374	// empty values are omitted from API requests. However, any field with
1375	// an empty value appearing in NullFields will be sent to the server as
1376	// null. It is an error if a field in this list has a non-empty value.
1377	// This may be used to include null fields in Patch requests.
1378	NullFields []string `json:"-"`
1379}
1380
1381func (s *CropHintsParams) MarshalJSON() ([]byte, error) {
1382	type NoMethod CropHintsParams
1383	raw := NoMethod(*s)
1384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1385}
1386
1387// DetectedBreak: Detected start or end of a structural component.
1388type DetectedBreak struct {
1389	// IsPrefix: True if break prepends the element.
1390	IsPrefix bool `json:"isPrefix,omitempty"`
1391
1392	// Type: Detected break type.
1393	//
1394	// Possible values:
1395	//   "UNKNOWN" - Unknown break label type.
1396	//   "SPACE" - Regular space.
1397	//   "SURE_SPACE" - Sure space (very wide).
1398	//   "EOL_SURE_SPACE" - Line-wrapping break.
1399	//   "HYPHEN" - End-line hyphen that is not present in text; does not
1400	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
1401	//   "LINE_BREAK" - Line break that ends a paragraph.
1402	Type string `json:"type,omitempty"`
1403
1404	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
1405	// unconditionally include in API requests. By default, fields with
1406	// empty or default values are omitted from API requests. However, any
1407	// non-pointer, non-interface field appearing in ForceSendFields will be
1408	// sent to the server regardless of whether the field is empty or not.
1409	// This may be used to include empty fields in Patch requests.
1410	ForceSendFields []string `json:"-"`
1411
1412	// NullFields is a list of field names (e.g. "IsPrefix") to include in
1413	// API requests with the JSON null value. By default, fields with empty
1414	// values are omitted from API requests. However, any field with an
1415	// empty value appearing in NullFields will be sent to the server as
1416	// null. It is an error if a field in this list has a non-empty value.
1417	// This may be used to include null fields in Patch requests.
1418	NullFields []string `json:"-"`
1419}
1420
1421func (s *DetectedBreak) MarshalJSON() ([]byte, error) {
1422	type NoMethod DetectedBreak
1423	raw := NoMethod(*s)
1424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1425}
1426
1427// DetectedLanguage: Detected language for a structural component.
1428type DetectedLanguage struct {
1429	// Confidence: Confidence of detected language. Range [0, 1].
1430	Confidence float64 `json:"confidence,omitempty"`
1431
1432	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
1433	// For more information, see
1434	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
1435	LanguageCode string `json:"languageCode,omitempty"`
1436
1437	// ForceSendFields is a list of field names (e.g. "Confidence") to
1438	// unconditionally include in API requests. By default, fields with
1439	// empty or default values are omitted from API requests. However, any
1440	// non-pointer, non-interface field appearing in ForceSendFields will be
1441	// sent to the server regardless of whether the field is empty or not.
1442	// This may be used to include empty fields in Patch requests.
1443	ForceSendFields []string `json:"-"`
1444
1445	// NullFields is a list of field names (e.g. "Confidence") to include in
1446	// API requests with the JSON null value. By default, fields with empty
1447	// values are omitted from API requests. However, any field with an
1448	// empty value appearing in NullFields will be sent to the server as
1449	// null. It is an error if a field in this list has a non-empty value.
1450	// This may be used to include null fields in Patch requests.
1451	NullFields []string `json:"-"`
1452}
1453
1454func (s *DetectedLanguage) MarshalJSON() ([]byte, error) {
1455	type NoMethod DetectedLanguage
1456	raw := NoMethod(*s)
1457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1458}
1459
1460func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
1461	type NoMethod DetectedLanguage
1462	var s1 struct {
1463		Confidence gensupport.JSONFloat64 `json:"confidence"`
1464		*NoMethod
1465	}
1466	s1.NoMethod = (*NoMethod)(s)
1467	if err := json.Unmarshal(data, &s1); err != nil {
1468		return err
1469	}
1470	s.Confidence = float64(s1.Confidence)
1471	return nil
1472}
1473
1474// DominantColorsAnnotation: Set of dominant colors and their
1475// corresponding scores.
1476type DominantColorsAnnotation struct {
1477	// Colors: RGB color values with their score and pixel fraction.
1478	Colors []*ColorInfo `json:"colors,omitempty"`
1479
1480	// ForceSendFields is a list of field names (e.g. "Colors") to
1481	// unconditionally include in API requests. By default, fields with
1482	// empty or default values are omitted from API requests. However, any
1483	// non-pointer, non-interface field appearing in ForceSendFields will be
1484	// sent to the server regardless of whether the field is empty or not.
1485	// This may be used to include empty fields in Patch requests.
1486	ForceSendFields []string `json:"-"`
1487
1488	// NullFields is a list of field names (e.g. "Colors") to include in API
1489	// requests with the JSON null value. By default, fields with empty
1490	// values are omitted from API requests. However, any field with an
1491	// empty value appearing in NullFields will be sent to the server as
1492	// null. It is an error if a field in this list has a non-empty value.
1493	// This may be used to include null fields in Patch requests.
1494	NullFields []string `json:"-"`
1495}
1496
1497func (s *DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1498	type NoMethod DominantColorsAnnotation
1499	raw := NoMethod(*s)
1500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1501}
1502
1503// Empty: A generic empty message that you can re-use to avoid defining
1504// duplicated empty messages in your APIs. A typical example is to use
1505// it as the request or the response type of an API method. For
1506// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
1507// (google.protobuf.Empty); } The JSON representation for `Empty` is
1508// empty JSON object `{}`.
1509type Empty struct {
1510	// ServerResponse contains the HTTP response code and headers from the
1511	// server.
1512	googleapi.ServerResponse `json:"-"`
1513}
1514
1515// EntityAnnotation: Set of detected entity features.
1516type EntityAnnotation struct {
1517	// BoundingPoly: Image region to which this entity belongs. Not produced
1518	// for `LABEL_DETECTION` features.
1519	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1520
1521	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
1522	// entity detection in an image. For example, for an image in which the
1523	// "Eiffel Tower" entity is detected, this field represents the
1524	// confidence that there is a tower in the query image. Range [0, 1].
1525	Confidence float64 `json:"confidence,omitempty"`
1526
1527	// Description: Entity textual description, expressed in its `locale`
1528	// language.
1529	Description string `json:"description,omitempty"`
1530
1531	// Locale: The language code for the locale in which the entity textual
1532	// `description` is expressed.
1533	Locale string `json:"locale,omitempty"`
1534
1535	// Locations: The location information for the detected entity. Multiple
1536	// `LocationInfo` elements can be present because one location may
1537	// indicate the location of the scene in the image, and another location
1538	// may indicate the location of the place where the image was taken.
1539	// Location information is usually present for landmarks.
1540	Locations []*LocationInfo `json:"locations,omitempty"`
1541
1542	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
1543	// Graph Search API (https://developers.google.com/knowledge-graph/).
1544	Mid string `json:"mid,omitempty"`
1545
1546	// Properties: Some entities may have optional user-supplied `Property`
1547	// (name/value) fields, such a score or string that qualifies the
1548	// entity.
1549	Properties []*Property `json:"properties,omitempty"`
1550
1551	// Score: Overall score of the result. Range [0, 1].
1552	Score float64 `json:"score,omitempty"`
1553
1554	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1555	// to the image. For example, the relevancy of "tower" is likely higher
1556	// to an image containing the detected "Eiffel Tower" than to an image
1557	// containing a detected distant towering building, even though the
1558	// confidence that there is a tower in each image may be the same. Range
1559	// [0, 1].
1560	Topicality float64 `json:"topicality,omitempty"`
1561
1562	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1563	// unconditionally include in API requests. By default, fields with
1564	// empty or default values are omitted from API requests. However, any
1565	// non-pointer, non-interface field appearing in ForceSendFields will be
1566	// sent to the server regardless of whether the field is empty or not.
1567	// This may be used to include empty fields in Patch requests.
1568	ForceSendFields []string `json:"-"`
1569
1570	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1571	// in API requests with the JSON null value. By default, fields with
1572	// empty values are omitted from API requests. However, any field with
1573	// an empty value appearing in NullFields will be sent to the server as
1574	// null. It is an error if a field in this list has a non-empty value.
1575	// This may be used to include null fields in Patch requests.
1576	NullFields []string `json:"-"`
1577}
1578
1579func (s *EntityAnnotation) MarshalJSON() ([]byte, error) {
1580	type NoMethod EntityAnnotation
1581	raw := NoMethod(*s)
1582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1583}
1584
1585func (s *EntityAnnotation) UnmarshalJSON(data []byte) error {
1586	type NoMethod EntityAnnotation
1587	var s1 struct {
1588		Confidence gensupport.JSONFloat64 `json:"confidence"`
1589		Score      gensupport.JSONFloat64 `json:"score"`
1590		Topicality gensupport.JSONFloat64 `json:"topicality"`
1591		*NoMethod
1592	}
1593	s1.NoMethod = (*NoMethod)(s)
1594	if err := json.Unmarshal(data, &s1); err != nil {
1595		return err
1596	}
1597	s.Confidence = float64(s1.Confidence)
1598	s.Score = float64(s1.Score)
1599	s.Topicality = float64(s1.Topicality)
1600	return nil
1601}
1602
1603// FaceAnnotation: A face annotation object contains the results of face
1604// detection.
1605type FaceAnnotation struct {
1606	// AngerLikelihood: Anger likelihood.
1607	//
1608	// Possible values:
1609	//   "UNKNOWN" - Unknown likelihood.
1610	//   "VERY_UNLIKELY" - It is very unlikely.
1611	//   "UNLIKELY" - It is unlikely.
1612	//   "POSSIBLE" - It is possible.
1613	//   "LIKELY" - It is likely.
1614	//   "VERY_LIKELY" - It is very likely.
1615	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1616
1617	// BlurredLikelihood: Blurred likelihood.
1618	//
1619	// Possible values:
1620	//   "UNKNOWN" - Unknown likelihood.
1621	//   "VERY_UNLIKELY" - It is very unlikely.
1622	//   "UNLIKELY" - It is unlikely.
1623	//   "POSSIBLE" - It is possible.
1624	//   "LIKELY" - It is likely.
1625	//   "VERY_LIKELY" - It is very likely.
1626	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1627
1628	// BoundingPoly: The bounding polygon around the face. The coordinates
1629	// of the bounding box are in the original image's scale. The bounding
1630	// box is computed to "frame" the face in accordance with human
1631	// expectations. It is based on the landmarker results. Note that one or
1632	// more x and/or y coordinates may not be generated in the
1633	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
1634	// appears in the image to be annotated.
1635	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1636
1637	// DetectionConfidence: Detection confidence. Range [0, 1].
1638	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1639
1640	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1641	// than the `boundingPoly`, and encloses only the skin part of the face.
1642	// Typically, it is used to eliminate the face from any image analysis
1643	// that detects the "amount of skin" visible in an image. It is not
1644	// based on the landmarker results, only on the initial face detection,
1645	// hence the fd (face detection) prefix.
1646	FdBoundingPoly *BoundingPoly `json:"fdBoundingPoly,omitempty"`
1647
1648	// HeadwearLikelihood: Headwear likelihood.
1649	//
1650	// Possible values:
1651	//   "UNKNOWN" - Unknown likelihood.
1652	//   "VERY_UNLIKELY" - It is very unlikely.
1653	//   "UNLIKELY" - It is unlikely.
1654	//   "POSSIBLE" - It is possible.
1655	//   "LIKELY" - It is likely.
1656	//   "VERY_LIKELY" - It is very likely.
1657	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1658
1659	// JoyLikelihood: Joy likelihood.
1660	//
1661	// Possible values:
1662	//   "UNKNOWN" - Unknown likelihood.
1663	//   "VERY_UNLIKELY" - It is very unlikely.
1664	//   "UNLIKELY" - It is unlikely.
1665	//   "POSSIBLE" - It is possible.
1666	//   "LIKELY" - It is likely.
1667	//   "VERY_LIKELY" - It is very likely.
1668	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1669
1670	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1671	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1672
1673	// Landmarks: Detected face landmarks.
1674	Landmarks []*Landmark `json:"landmarks,omitempty"`
1675
1676	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1677	// that the face is pointing relative to the vertical plane
1678	// perpendicular to the image. Range [-180,180].
1679	PanAngle float64 `json:"panAngle,omitempty"`
1680
1681	// RollAngle: Roll angle, which indicates the amount of
1682	// clockwise/anti-clockwise rotation of the face relative to the image
1683	// vertical about the axis perpendicular to the face. Range [-180,180].
1684	RollAngle float64 `json:"rollAngle,omitempty"`
1685
1686	// SorrowLikelihood: Sorrow likelihood.
1687	//
1688	// Possible values:
1689	//   "UNKNOWN" - Unknown likelihood.
1690	//   "VERY_UNLIKELY" - It is very unlikely.
1691	//   "UNLIKELY" - It is unlikely.
1692	//   "POSSIBLE" - It is possible.
1693	//   "LIKELY" - It is likely.
1694	//   "VERY_LIKELY" - It is very likely.
1695	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1696
1697	// SurpriseLikelihood: Surprise likelihood.
1698	//
1699	// Possible values:
1700	//   "UNKNOWN" - Unknown likelihood.
1701	//   "VERY_UNLIKELY" - It is very unlikely.
1702	//   "UNLIKELY" - It is unlikely.
1703	//   "POSSIBLE" - It is possible.
1704	//   "LIKELY" - It is likely.
1705	//   "VERY_LIKELY" - It is very likely.
1706	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1707
1708	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1709	// that the face is pointing relative to the image's horizontal plane.
1710	// Range [-180,180].
1711	TiltAngle float64 `json:"tiltAngle,omitempty"`
1712
1713	// UnderExposedLikelihood: Under-exposed likelihood.
1714	//
1715	// Possible values:
1716	//   "UNKNOWN" - Unknown likelihood.
1717	//   "VERY_UNLIKELY" - It is very unlikely.
1718	//   "UNLIKELY" - It is unlikely.
1719	//   "POSSIBLE" - It is possible.
1720	//   "LIKELY" - It is likely.
1721	//   "VERY_LIKELY" - It is very likely.
1722	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
1723
1724	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
1725	// unconditionally include in API requests. By default, fields with
1726	// empty or default values are omitted from API requests. However, any
1727	// non-pointer, non-interface field appearing in ForceSendFields will be
1728	// sent to the server regardless of whether the field is empty or not.
1729	// This may be used to include empty fields in Patch requests.
1730	ForceSendFields []string `json:"-"`
1731
1732	// NullFields is a list of field names (e.g. "AngerLikelihood") to
1733	// include in API requests with the JSON null value. By default, fields
1734	// with empty values are omitted from API requests. However, any field
1735	// with an empty value appearing in NullFields will be sent to the
1736	// server as null. It is an error if a field in this list has a
1737	// non-empty value. This may be used to include null fields in Patch
1738	// requests.
1739	NullFields []string `json:"-"`
1740}
1741
1742func (s *FaceAnnotation) MarshalJSON() ([]byte, error) {
1743	type NoMethod FaceAnnotation
1744	raw := NoMethod(*s)
1745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1746}
1747
1748func (s *FaceAnnotation) UnmarshalJSON(data []byte) error {
1749	type NoMethod FaceAnnotation
1750	var s1 struct {
1751		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
1752		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
1753		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
1754		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
1755		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
1756		*NoMethod
1757	}
1758	s1.NoMethod = (*NoMethod)(s)
1759	if err := json.Unmarshal(data, &s1); err != nil {
1760		return err
1761	}
1762	s.DetectionConfidence = float64(s1.DetectionConfidence)
1763	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
1764	s.PanAngle = float64(s1.PanAngle)
1765	s.RollAngle = float64(s1.RollAngle)
1766	s.TiltAngle = float64(s1.TiltAngle)
1767	return nil
1768}
1769
1770// Feature: The type of Google Cloud Vision API detection to perform,
1771// and the maximum number of results to return for that type. Multiple
1772// `Feature` objects can be specified in the `features` list.
1773type Feature struct {
1774	// MaxResults: Maximum number of results of this type. Does not apply to
1775	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
1776	MaxResults int64 `json:"maxResults,omitempty"`
1777
1778	// Model: Model to use for the feature. Supported values:
1779	// "builtin/stable" (the default if unset) and "builtin/latest".
1780	Model string `json:"model,omitempty"`
1781
1782	// Type: The feature type.
1783	//
1784	// Possible values:
1785	//   "TYPE_UNSPECIFIED" - Unspecified feature type.
1786	//   "FACE_DETECTION" - Run face detection.
1787	//   "LANDMARK_DETECTION" - Run landmark detection.
1788	//   "LOGO_DETECTION" - Run logo detection.
1789	//   "LABEL_DETECTION" - Run label detection.
1790	//   "TEXT_DETECTION" - Run text detection / optical character
1791	// recognition (OCR). Text detection is optimized for areas of text
1792	// within a larger image; if the image is a document, use
1793	// `DOCUMENT_TEXT_DETECTION` instead.
1794	//   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
1795	// precedence when both `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION`
1796	// are present.
1797	//   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
1798	// unsafe or undesirable content.
1799	//   "IMAGE_PROPERTIES" - Compute a set of image properties, such as the
1800	// image's dominant colors.
1801	//   "CROP_HINTS" - Run crop hints.
1802	//   "WEB_DETECTION" - Run web detection.
1803	//   "PRODUCT_SEARCH" - Run Product Search.
1804	//   "OBJECT_LOCALIZATION" - Run localizer for object detection.
1805	Type string `json:"type,omitempty"`
1806
1807	// ForceSendFields is a list of field names (e.g. "MaxResults") to
1808	// unconditionally include in API requests. By default, fields with
1809	// empty or default values are omitted from API requests. However, any
1810	// non-pointer, non-interface field appearing in ForceSendFields will be
1811	// sent to the server regardless of whether the field is empty or not.
1812	// This may be used to include empty fields in Patch requests.
1813	ForceSendFields []string `json:"-"`
1814
1815	// NullFields is a list of field names (e.g. "MaxResults") to include in
1816	// API requests with the JSON null value. By default, fields with empty
1817	// values are omitted from API requests. However, any field with an
1818	// empty value appearing in NullFields will be sent to the server as
1819	// null. It is an error if a field in this list has a non-empty value.
1820	// This may be used to include null fields in Patch requests.
1821	NullFields []string `json:"-"`
1822}
1823
1824func (s *Feature) MarshalJSON() ([]byte, error) {
1825	type NoMethod Feature
1826	raw := NoMethod(*s)
1827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1828}
1829
1830// GcsDestination: The Google Cloud Storage location where the output
1831// will be written to.
1832type GcsDestination struct {
1833	// Uri: Google Cloud Storage URI prefix where the results will be
1834	// stored. Results will be in JSON format and preceded by its
1835	// corresponding input URI prefix. This field can either represent a gcs
1836	// file prefix or gcs directory. In either case, the uri should be
1837	// unique because in order to get all of the output files, you will need
1838	// to do a wildcard gcs search on the uri prefix you provide. Examples:
1839	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
1840	// will be created in gs://bucket-name/here/ and the names of the output
1841	// files will begin with "filenameprefix". * Directory Prefix:
1842	// gs://bucket-name/some/location/ The output files will be created in
1843	// gs://bucket-name/some/location/ and the names of the output files
1844	// could be anything because there was no filename prefix specified. If
1845	// multiple outputs, each response is still AnnotateFileResponse, each
1846	// of which contains some subset of the full list of
1847	// AnnotateImageResponse. Multiple outputs can happen if, for example,
1848	// the output JSON is too large and overflows into multiple sharded
1849	// files.
1850	Uri string `json:"uri,omitempty"`
1851
1852	// ForceSendFields is a list of field names (e.g. "Uri") to
1853	// unconditionally include in API requests. By default, fields with
1854	// empty or default values are omitted from API requests. However, any
1855	// non-pointer, non-interface field appearing in ForceSendFields will be
1856	// sent to the server regardless of whether the field is empty or not.
1857	// This may be used to include empty fields in Patch requests.
1858	ForceSendFields []string `json:"-"`
1859
1860	// NullFields is a list of field names (e.g. "Uri") to include in API
1861	// requests with the JSON null value. By default, fields with empty
1862	// values are omitted from API requests. However, any field with an
1863	// empty value appearing in NullFields will be sent to the server as
1864	// null. It is an error if a field in this list has a non-empty value.
1865	// This may be used to include null fields in Patch requests.
1866	NullFields []string `json:"-"`
1867}
1868
1869func (s *GcsDestination) MarshalJSON() ([]byte, error) {
1870	type NoMethod GcsDestination
1871	raw := NoMethod(*s)
1872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1873}
1874
1875// GcsSource: The Google Cloud Storage location where the input will be
1876// read from.
1877type GcsSource struct {
1878	// Uri: Google Cloud Storage URI for the input file. This must only be a
1879	// Google Cloud Storage object. Wildcards are not currently supported.
1880	Uri string `json:"uri,omitempty"`
1881
1882	// ForceSendFields is a list of field names (e.g. "Uri") to
1883	// unconditionally include in API requests. By default, fields with
1884	// empty or default values are omitted from API requests. However, any
1885	// non-pointer, non-interface field appearing in ForceSendFields will be
1886	// sent to the server regardless of whether the field is empty or not.
1887	// This may be used to include empty fields in Patch requests.
1888	ForceSendFields []string `json:"-"`
1889
1890	// NullFields is a list of field names (e.g. "Uri") to include in API
1891	// requests with the JSON null value. By default, fields with empty
1892	// values are omitted from API requests. However, any field with an
1893	// empty value appearing in NullFields will be sent to the server as
1894	// null. It is an error if a field in this list has a non-empty value.
1895	// This may be used to include null fields in Patch requests.
1896	NullFields []string `json:"-"`
1897}
1898
1899func (s *GcsSource) MarshalJSON() ([]byte, error) {
1900	type NoMethod GcsSource
1901	raw := NoMethod(*s)
1902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1903}
1904
1905// GoogleCloudVisionV1p1beta1AnnotateFileResponse: Response to a single
1906// file annotation request. A file may contain one or more images, which
1907// individually have their own responses.
1908type GoogleCloudVisionV1p1beta1AnnotateFileResponse struct {
1909	// Error: If set, represents the error message for the failed request.
1910	// The `responses` field will not be set in this case.
1911	Error *Status `json:"error,omitempty"`
1912
1913	// InputConfig: Information about the file for which this response is
1914	// generated.
1915	InputConfig *GoogleCloudVisionV1p1beta1InputConfig `json:"inputConfig,omitempty"`
1916
1917	// Responses: Individual responses to images found within the file. This
1918	// field will be empty if the `error` field is set.
1919	Responses []*GoogleCloudVisionV1p1beta1AnnotateImageResponse `json:"responses,omitempty"`
1920
1921	// TotalPages: This field gives the total number of pages in the file.
1922	TotalPages int64 `json:"totalPages,omitempty"`
1923
1924	// ForceSendFields is a list of field names (e.g. "Error") to
1925	// unconditionally include in API requests. By default, fields with
1926	// empty or default values are omitted from API requests. However, any
1927	// non-pointer, non-interface field appearing in ForceSendFields will be
1928	// sent to the server regardless of whether the field is empty or not.
1929	// This may be used to include empty fields in Patch requests.
1930	ForceSendFields []string `json:"-"`
1931
1932	// NullFields is a list of field names (e.g. "Error") to include in API
1933	// requests with the JSON null value. By default, fields with empty
1934	// values are omitted from API requests. However, any field with an
1935	// empty value appearing in NullFields will be sent to the server as
1936	// null. It is an error if a field in this list has a non-empty value.
1937	// This may be used to include null fields in Patch requests.
1938	NullFields []string `json:"-"`
1939}
1940
1941func (s *GoogleCloudVisionV1p1beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
1942	type NoMethod GoogleCloudVisionV1p1beta1AnnotateFileResponse
1943	raw := NoMethod(*s)
1944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1945}
1946
1947// GoogleCloudVisionV1p1beta1AnnotateImageResponse: Response to an image
1948// annotation request.
1949type GoogleCloudVisionV1p1beta1AnnotateImageResponse struct {
1950	// Context: If present, contextual information is needed to understand
1951	// where this image comes from.
1952	Context *GoogleCloudVisionV1p1beta1ImageAnnotationContext `json:"context,omitempty"`
1953
1954	// CropHintsAnnotation: If present, crop hints have completed
1955	// successfully.
1956	CropHintsAnnotation *GoogleCloudVisionV1p1beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
1957
1958	// Error: If set, represents the error message for the operation. Note
1959	// that filled-in image annotations are guaranteed to be correct, even
1960	// when `error` is set.
1961	Error *Status `json:"error,omitempty"`
1962
1963	// FaceAnnotations: If present, face detection has completed
1964	// successfully.
1965	FaceAnnotations []*GoogleCloudVisionV1p1beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
1966
1967	// FullTextAnnotation: If present, text (OCR) detection or document
1968	// (OCR) text detection has completed successfully. This annotation
1969	// provides the structural hierarchy for the OCR detected text.
1970	FullTextAnnotation *GoogleCloudVisionV1p1beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
1971
1972	// ImagePropertiesAnnotation: If present, image properties were
1973	// extracted successfully.
1974	ImagePropertiesAnnotation *GoogleCloudVisionV1p1beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
1975
1976	// LabelAnnotations: If present, label detection has completed
1977	// successfully.
1978	LabelAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
1979
1980	// LandmarkAnnotations: If present, landmark detection has completed
1981	// successfully.
1982	LandmarkAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
1983
1984	// LocalizedObjectAnnotations: If present, localized object detection
1985	// has completed successfully. This will be sorted descending by
1986	// confidence score.
1987	LocalizedObjectAnnotations []*GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
1988
1989	// LogoAnnotations: If present, logo detection has completed
1990	// successfully.
1991	LogoAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
1992
1993	// ProductSearchResults: If present, product search has completed
1994	// successfully.
1995	ProductSearchResults *GoogleCloudVisionV1p1beta1ProductSearchResults `json:"productSearchResults,omitempty"`
1996
1997	// SafeSearchAnnotation: If present, safe-search annotation has
1998	// completed successfully.
1999	SafeSearchAnnotation *GoogleCloudVisionV1p1beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
2000
2001	// TextAnnotations: If present, text (OCR) detection has completed
2002	// successfully.
2003	TextAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"textAnnotations,omitempty"`
2004
2005	// WebDetection: If present, web detection has completed successfully.
2006	WebDetection *GoogleCloudVisionV1p1beta1WebDetection `json:"webDetection,omitempty"`
2007
2008	// ForceSendFields is a list of field names (e.g. "Context") to
2009	// unconditionally include in API requests. By default, fields with
2010	// empty or default values are omitted from API requests. However, any
2011	// non-pointer, non-interface field appearing in ForceSendFields will be
2012	// sent to the server regardless of whether the field is empty or not.
2013	// This may be used to include empty fields in Patch requests.
2014	ForceSendFields []string `json:"-"`
2015
2016	// NullFields is a list of field names (e.g. "Context") to include in
2017	// API requests with the JSON null value. By default, fields with empty
2018	// values are omitted from API requests. However, any field with an
2019	// empty value appearing in NullFields will be sent to the server as
2020	// null. It is an error if a field in this list has a non-empty value.
2021	// This may be used to include null fields in Patch requests.
2022	NullFields []string `json:"-"`
2023}
2024
2025func (s *GoogleCloudVisionV1p1beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
2026	type NoMethod GoogleCloudVisionV1p1beta1AnnotateImageResponse
2027	raw := NoMethod(*s)
2028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2029}
2030
2031// GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse: The response for
2032// a single offline file annotation request.
2033type GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse struct {
2034	// OutputConfig: The output location and metadata from
2035	// AsyncAnnotateFileRequest.
2036	OutputConfig *GoogleCloudVisionV1p1beta1OutputConfig `json:"outputConfig,omitempty"`
2037
2038	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
2039	// unconditionally include in API requests. By default, fields with
2040	// empty or default values are omitted from API requests. However, any
2041	// non-pointer, non-interface field appearing in ForceSendFields will be
2042	// sent to the server regardless of whether the field is empty or not.
2043	// This may be used to include empty fields in Patch requests.
2044	ForceSendFields []string `json:"-"`
2045
2046	// NullFields is a list of field names (e.g. "OutputConfig") to include
2047	// in API requests with the JSON null value. By default, fields with
2048	// empty values are omitted from API requests. However, any field with
2049	// an empty value appearing in NullFields will be sent to the server as
2050	// null. It is an error if a field in this list has a non-empty value.
2051	// This may be used to include null fields in Patch requests.
2052	NullFields []string `json:"-"`
2053}
2054
2055func (s *GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
2056	type NoMethod GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse
2057	raw := NoMethod(*s)
2058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2059}
2060
2061// GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse: Response
2062// to an async batch file annotation request.
2063type GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse struct {
2064	// Responses: The list of file annotation responses, one for each
2065	// request in AsyncBatchAnnotateFilesRequest.
2066	Responses []*GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
2067
2068	// ForceSendFields is a list of field names (e.g. "Responses") to
2069	// unconditionally include in API requests. By default, fields with
2070	// empty or default values are omitted from API requests. However, any
2071	// non-pointer, non-interface field appearing in ForceSendFields will be
2072	// sent to the server regardless of whether the field is empty or not.
2073	// This may be used to include empty fields in Patch requests.
2074	ForceSendFields []string `json:"-"`
2075
2076	// NullFields is a list of field names (e.g. "Responses") to include in
2077	// API requests with the JSON null value. By default, fields with empty
2078	// values are omitted from API requests. However, any field with an
2079	// empty value appearing in NullFields will be sent to the server as
2080	// null. It is an error if a field in this list has a non-empty value.
2081	// This may be used to include null fields in Patch requests.
2082	NullFields []string `json:"-"`
2083}
2084
2085func (s *GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
2086	type NoMethod GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse
2087	raw := NoMethod(*s)
2088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2089}
2090
2091// GoogleCloudVisionV1p1beta1Block: Logical element on the page.
2092type GoogleCloudVisionV1p1beta1Block struct {
2093	// BlockType: Detected block type (text, image etc) for this block.
2094	//
2095	// Possible values:
2096	//   "UNKNOWN" - Unknown block type.
2097	//   "TEXT" - Regular text block.
2098	//   "TABLE" - Table block.
2099	//   "PICTURE" - Image block.
2100	//   "RULER" - Horizontal/vertical line box.
2101	//   "BARCODE" - Barcode block.
2102	BlockType string `json:"blockType,omitempty"`
2103
2104	// BoundingBox: The bounding box for the block. The vertices are in the
2105	// order of top-left, top-right, bottom-right, bottom-left. When a
2106	// rotation of the bounding box is detected the rotation is represented
2107	// as around the top-left corner as defined when the text is read in the
2108	// 'natural' orientation. For example: * when the text is horizontal it
2109	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
2110	// around the top-left corner it becomes: 2----3 | | 1----0 and the
2111	// vertex order will still be (0, 1, 2, 3).
2112	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
2113
2114	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
2115	Confidence float64 `json:"confidence,omitempty"`
2116
2117	// Paragraphs: List of paragraphs in this block (if this blocks is of
2118	// type text).
2119	Paragraphs []*GoogleCloudVisionV1p1beta1Paragraph `json:"paragraphs,omitempty"`
2120
2121	// Property: Additional information detected for the block.
2122	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2123
2124	// ForceSendFields is a list of field names (e.g. "BlockType") to
2125	// unconditionally include in API requests. By default, fields with
2126	// empty or default values are omitted from API requests. However, any
2127	// non-pointer, non-interface field appearing in ForceSendFields will be
2128	// sent to the server regardless of whether the field is empty or not.
2129	// This may be used to include empty fields in Patch requests.
2130	ForceSendFields []string `json:"-"`
2131
2132	// NullFields is a list of field names (e.g. "BlockType") to include in
2133	// API requests with the JSON null value. By default, fields with empty
2134	// values are omitted from API requests. However, any field with an
2135	// empty value appearing in NullFields will be sent to the server as
2136	// null. It is an error if a field in this list has a non-empty value.
2137	// This may be used to include null fields in Patch requests.
2138	NullFields []string `json:"-"`
2139}
2140
2141func (s *GoogleCloudVisionV1p1beta1Block) MarshalJSON() ([]byte, error) {
2142	type NoMethod GoogleCloudVisionV1p1beta1Block
2143	raw := NoMethod(*s)
2144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2145}
2146
2147func (s *GoogleCloudVisionV1p1beta1Block) UnmarshalJSON(data []byte) error {
2148	type NoMethod GoogleCloudVisionV1p1beta1Block
2149	var s1 struct {
2150		Confidence gensupport.JSONFloat64 `json:"confidence"`
2151		*NoMethod
2152	}
2153	s1.NoMethod = (*NoMethod)(s)
2154	if err := json.Unmarshal(data, &s1); err != nil {
2155		return err
2156	}
2157	s.Confidence = float64(s1.Confidence)
2158	return nil
2159}
2160
2161// GoogleCloudVisionV1p1beta1BoundingPoly: A bounding polygon for the
2162// detected image annotation.
2163type GoogleCloudVisionV1p1beta1BoundingPoly struct {
2164	// NormalizedVertices: The bounding polygon normalized vertices.
2165	NormalizedVertices []*GoogleCloudVisionV1p1beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
2166
2167	// Vertices: The bounding polygon vertices.
2168	Vertices []*GoogleCloudVisionV1p1beta1Vertex `json:"vertices,omitempty"`
2169
2170	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
2171	// to unconditionally include in API requests. By default, fields with
2172	// empty or default values are omitted from API requests. However, any
2173	// non-pointer, non-interface field appearing in ForceSendFields will be
2174	// sent to the server regardless of whether the field is empty or not.
2175	// This may be used to include empty fields in Patch requests.
2176	ForceSendFields []string `json:"-"`
2177
2178	// NullFields is a list of field names (e.g. "NormalizedVertices") to
2179	// include in API requests with the JSON null value. By default, fields
2180	// with empty values are omitted from API requests. However, any field
2181	// with an empty value appearing in NullFields will be sent to the
2182	// server as null. It is an error if a field in this list has a
2183	// non-empty value. This may be used to include null fields in Patch
2184	// requests.
2185	NullFields []string `json:"-"`
2186}
2187
2188func (s *GoogleCloudVisionV1p1beta1BoundingPoly) MarshalJSON() ([]byte, error) {
2189	type NoMethod GoogleCloudVisionV1p1beta1BoundingPoly
2190	raw := NoMethod(*s)
2191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2192}
2193
2194// GoogleCloudVisionV1p1beta1ColorInfo: Color information consists of
2195// RGB channels, score, and the fraction of the image that the color
2196// occupies in the image.
2197type GoogleCloudVisionV1p1beta1ColorInfo struct {
2198	// Color: RGB components of the color.
2199	Color *Color `json:"color,omitempty"`
2200
2201	// PixelFraction: The fraction of pixels the color occupies in the
2202	// image. Value in range [0, 1].
2203	PixelFraction float64 `json:"pixelFraction,omitempty"`
2204
2205	// Score: Image-specific score for this color. Value in range [0, 1].
2206	Score float64 `json:"score,omitempty"`
2207
2208	// ForceSendFields is a list of field names (e.g. "Color") 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. "Color") to include in API
2217	// 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 *GoogleCloudVisionV1p1beta1ColorInfo) MarshalJSON() ([]byte, error) {
2226	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2227	raw := NoMethod(*s)
2228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2229}
2230
2231func (s *GoogleCloudVisionV1p1beta1ColorInfo) UnmarshalJSON(data []byte) error {
2232	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2233	var s1 struct {
2234		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
2235		Score         gensupport.JSONFloat64 `json:"score"`
2236		*NoMethod
2237	}
2238	s1.NoMethod = (*NoMethod)(s)
2239	if err := json.Unmarshal(data, &s1); err != nil {
2240		return err
2241	}
2242	s.PixelFraction = float64(s1.PixelFraction)
2243	s.Score = float64(s1.Score)
2244	return nil
2245}
2246
2247// GoogleCloudVisionV1p1beta1CropHint: Single crop hint that is used to
2248// generate a new crop when serving an image.
2249type GoogleCloudVisionV1p1beta1CropHint struct {
2250	// BoundingPoly: The bounding polygon for the crop region. The
2251	// coordinates of the bounding box are in the original image's scale.
2252	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2253
2254	// Confidence: Confidence of this being a salient region. Range [0, 1].
2255	Confidence float64 `json:"confidence,omitempty"`
2256
2257	// ImportanceFraction: Fraction of importance of this salient region
2258	// with respect to the original image.
2259	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
2260
2261	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2262	// unconditionally include in API requests. By default, fields with
2263	// empty or default values are omitted from API requests. However, any
2264	// non-pointer, non-interface field appearing in ForceSendFields will be
2265	// sent to the server regardless of whether the field is empty or not.
2266	// This may be used to include empty fields in Patch requests.
2267	ForceSendFields []string `json:"-"`
2268
2269	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2270	// in API requests with the JSON null value. By default, fields with
2271	// empty values are omitted from API requests. However, any field with
2272	// an empty value appearing in NullFields will be sent to the server as
2273	// null. It is an error if a field in this list has a non-empty value.
2274	// This may be used to include null fields in Patch requests.
2275	NullFields []string `json:"-"`
2276}
2277
2278func (s *GoogleCloudVisionV1p1beta1CropHint) MarshalJSON() ([]byte, error) {
2279	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2280	raw := NoMethod(*s)
2281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2282}
2283
2284func (s *GoogleCloudVisionV1p1beta1CropHint) UnmarshalJSON(data []byte) error {
2285	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2286	var s1 struct {
2287		Confidence         gensupport.JSONFloat64 `json:"confidence"`
2288		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
2289		*NoMethod
2290	}
2291	s1.NoMethod = (*NoMethod)(s)
2292	if err := json.Unmarshal(data, &s1); err != nil {
2293		return err
2294	}
2295	s.Confidence = float64(s1.Confidence)
2296	s.ImportanceFraction = float64(s1.ImportanceFraction)
2297	return nil
2298}
2299
2300// GoogleCloudVisionV1p1beta1CropHintsAnnotation: Set of crop hints that
2301// are used to generate new crops when serving images.
2302type GoogleCloudVisionV1p1beta1CropHintsAnnotation struct {
2303	// CropHints: Crop hint results.
2304	CropHints []*GoogleCloudVisionV1p1beta1CropHint `json:"cropHints,omitempty"`
2305
2306	// ForceSendFields is a list of field names (e.g. "CropHints") to
2307	// unconditionally include in API requests. By default, fields with
2308	// empty or default values are omitted from API requests. However, any
2309	// non-pointer, non-interface field appearing in ForceSendFields will be
2310	// sent to the server regardless of whether the field is empty or not.
2311	// This may be used to include empty fields in Patch requests.
2312	ForceSendFields []string `json:"-"`
2313
2314	// NullFields is a list of field names (e.g. "CropHints") to include in
2315	// API requests with the JSON null value. By default, fields with empty
2316	// values are omitted from API requests. However, any field with an
2317	// empty value appearing in NullFields will be sent to the server as
2318	// null. It is an error if a field in this list has a non-empty value.
2319	// This may be used to include null fields in Patch requests.
2320	NullFields []string `json:"-"`
2321}
2322
2323func (s *GoogleCloudVisionV1p1beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
2324	type NoMethod GoogleCloudVisionV1p1beta1CropHintsAnnotation
2325	raw := NoMethod(*s)
2326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2327}
2328
2329// GoogleCloudVisionV1p1beta1DominantColorsAnnotation: Set of dominant
2330// colors and their corresponding scores.
2331type GoogleCloudVisionV1p1beta1DominantColorsAnnotation struct {
2332	// Colors: RGB color values with their score and pixel fraction.
2333	Colors []*GoogleCloudVisionV1p1beta1ColorInfo `json:"colors,omitempty"`
2334
2335	// ForceSendFields is a list of field names (e.g. "Colors") to
2336	// unconditionally include in API requests. By default, fields with
2337	// empty or default values are omitted from API requests. However, any
2338	// non-pointer, non-interface field appearing in ForceSendFields will be
2339	// sent to the server regardless of whether the field is empty or not.
2340	// This may be used to include empty fields in Patch requests.
2341	ForceSendFields []string `json:"-"`
2342
2343	// NullFields is a list of field names (e.g. "Colors") to include in API
2344	// requests with the JSON null value. By default, fields with empty
2345	// values are omitted from API requests. However, any field with an
2346	// empty value appearing in NullFields will be sent to the server as
2347	// null. It is an error if a field in this list has a non-empty value.
2348	// This may be used to include null fields in Patch requests.
2349	NullFields []string `json:"-"`
2350}
2351
2352func (s *GoogleCloudVisionV1p1beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
2353	type NoMethod GoogleCloudVisionV1p1beta1DominantColorsAnnotation
2354	raw := NoMethod(*s)
2355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2356}
2357
2358// GoogleCloudVisionV1p1beta1EntityAnnotation: Set of detected entity
2359// features.
2360type GoogleCloudVisionV1p1beta1EntityAnnotation struct {
2361	// BoundingPoly: Image region to which this entity belongs. Not produced
2362	// for `LABEL_DETECTION` features.
2363	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2364
2365	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
2366	// entity detection in an image. For example, for an image in which the
2367	// "Eiffel Tower" entity is detected, this field represents the
2368	// confidence that there is a tower in the query image. Range [0, 1].
2369	Confidence float64 `json:"confidence,omitempty"`
2370
2371	// Description: Entity textual description, expressed in its `locale`
2372	// language.
2373	Description string `json:"description,omitempty"`
2374
2375	// Locale: The language code for the locale in which the entity textual
2376	// `description` is expressed.
2377	Locale string `json:"locale,omitempty"`
2378
2379	// Locations: The location information for the detected entity. Multiple
2380	// `LocationInfo` elements can be present because one location may
2381	// indicate the location of the scene in the image, and another location
2382	// may indicate the location of the place where the image was taken.
2383	// Location information is usually present for landmarks.
2384	Locations []*GoogleCloudVisionV1p1beta1LocationInfo `json:"locations,omitempty"`
2385
2386	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
2387	// Graph Search API (https://developers.google.com/knowledge-graph/).
2388	Mid string `json:"mid,omitempty"`
2389
2390	// Properties: Some entities may have optional user-supplied `Property`
2391	// (name/value) fields, such a score or string that qualifies the
2392	// entity.
2393	Properties []*GoogleCloudVisionV1p1beta1Property `json:"properties,omitempty"`
2394
2395	// Score: Overall score of the result. Range [0, 1].
2396	Score float64 `json:"score,omitempty"`
2397
2398	// Topicality: The relevancy of the ICA (Image Content Annotation) label
2399	// to the image. For example, the relevancy of "tower" is likely higher
2400	// to an image containing the detected "Eiffel Tower" than to an image
2401	// containing a detected distant towering building, even though the
2402	// confidence that there is a tower in each image may be the same. Range
2403	// [0, 1].
2404	Topicality float64 `json:"topicality,omitempty"`
2405
2406	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2407	// unconditionally include in API requests. By default, fields with
2408	// empty or default values are omitted from API requests. However, any
2409	// non-pointer, non-interface field appearing in ForceSendFields will be
2410	// sent to the server regardless of whether the field is empty or not.
2411	// This may be used to include empty fields in Patch requests.
2412	ForceSendFields []string `json:"-"`
2413
2414	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2415	// in API requests with the JSON null value. By default, fields with
2416	// empty values are omitted from API requests. However, any field with
2417	// an empty value appearing in NullFields will be sent to the server as
2418	// null. It is an error if a field in this list has a non-empty value.
2419	// This may be used to include null fields in Patch requests.
2420	NullFields []string `json:"-"`
2421}
2422
2423func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
2424	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2425	raw := NoMethod(*s)
2426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2427}
2428
2429func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
2430	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2431	var s1 struct {
2432		Confidence gensupport.JSONFloat64 `json:"confidence"`
2433		Score      gensupport.JSONFloat64 `json:"score"`
2434		Topicality gensupport.JSONFloat64 `json:"topicality"`
2435		*NoMethod
2436	}
2437	s1.NoMethod = (*NoMethod)(s)
2438	if err := json.Unmarshal(data, &s1); err != nil {
2439		return err
2440	}
2441	s.Confidence = float64(s1.Confidence)
2442	s.Score = float64(s1.Score)
2443	s.Topicality = float64(s1.Topicality)
2444	return nil
2445}
2446
2447// GoogleCloudVisionV1p1beta1FaceAnnotation: A face annotation object
2448// contains the results of face detection.
2449type GoogleCloudVisionV1p1beta1FaceAnnotation struct {
2450	// AngerLikelihood: Anger likelihood.
2451	//
2452	// Possible values:
2453	//   "UNKNOWN" - Unknown likelihood.
2454	//   "VERY_UNLIKELY" - It is very unlikely.
2455	//   "UNLIKELY" - It is unlikely.
2456	//   "POSSIBLE" - It is possible.
2457	//   "LIKELY" - It is likely.
2458	//   "VERY_LIKELY" - It is very likely.
2459	AngerLikelihood string `json:"angerLikelihood,omitempty"`
2460
2461	// BlurredLikelihood: Blurred likelihood.
2462	//
2463	// Possible values:
2464	//   "UNKNOWN" - Unknown likelihood.
2465	//   "VERY_UNLIKELY" - It is very unlikely.
2466	//   "UNLIKELY" - It is unlikely.
2467	//   "POSSIBLE" - It is possible.
2468	//   "LIKELY" - It is likely.
2469	//   "VERY_LIKELY" - It is very likely.
2470	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
2471
2472	// BoundingPoly: The bounding polygon around the face. The coordinates
2473	// of the bounding box are in the original image's scale. The bounding
2474	// box is computed to "frame" the face in accordance with human
2475	// expectations. It is based on the landmarker results. Note that one or
2476	// more x and/or y coordinates may not be generated in the
2477	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
2478	// appears in the image to be annotated.
2479	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2480
2481	// DetectionConfidence: Detection confidence. Range [0, 1].
2482	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
2483
2484	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
2485	// than the `boundingPoly`, and encloses only the skin part of the face.
2486	// Typically, it is used to eliminate the face from any image analysis
2487	// that detects the "amount of skin" visible in an image. It is not
2488	// based on the landmarker results, only on the initial face detection,
2489	// hence the fd (face detection) prefix.
2490	FdBoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
2491
2492	// HeadwearLikelihood: Headwear likelihood.
2493	//
2494	// Possible values:
2495	//   "UNKNOWN" - Unknown likelihood.
2496	//   "VERY_UNLIKELY" - It is very unlikely.
2497	//   "UNLIKELY" - It is unlikely.
2498	//   "POSSIBLE" - It is possible.
2499	//   "LIKELY" - It is likely.
2500	//   "VERY_LIKELY" - It is very likely.
2501	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
2502
2503	// JoyLikelihood: Joy likelihood.
2504	//
2505	// Possible values:
2506	//   "UNKNOWN" - Unknown likelihood.
2507	//   "VERY_UNLIKELY" - It is very unlikely.
2508	//   "UNLIKELY" - It is unlikely.
2509	//   "POSSIBLE" - It is possible.
2510	//   "LIKELY" - It is likely.
2511	//   "VERY_LIKELY" - It is very likely.
2512	JoyLikelihood string `json:"joyLikelihood,omitempty"`
2513
2514	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
2515	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
2516
2517	// Landmarks: Detected face landmarks.
2518	Landmarks []*GoogleCloudVisionV1p1beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
2519
2520	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
2521	// that the face is pointing relative to the vertical plane
2522	// perpendicular to the image. Range [-180,180].
2523	PanAngle float64 `json:"panAngle,omitempty"`
2524
2525	// RollAngle: Roll angle, which indicates the amount of
2526	// clockwise/anti-clockwise rotation of the face relative to the image
2527	// vertical about the axis perpendicular to the face. Range [-180,180].
2528	RollAngle float64 `json:"rollAngle,omitempty"`
2529
2530	// SorrowLikelihood: Sorrow likelihood.
2531	//
2532	// Possible values:
2533	//   "UNKNOWN" - Unknown likelihood.
2534	//   "VERY_UNLIKELY" - It is very unlikely.
2535	//   "UNLIKELY" - It is unlikely.
2536	//   "POSSIBLE" - It is possible.
2537	//   "LIKELY" - It is likely.
2538	//   "VERY_LIKELY" - It is very likely.
2539	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
2540
2541	// SurpriseLikelihood: Surprise likelihood.
2542	//
2543	// Possible values:
2544	//   "UNKNOWN" - Unknown likelihood.
2545	//   "VERY_UNLIKELY" - It is very unlikely.
2546	//   "UNLIKELY" - It is unlikely.
2547	//   "POSSIBLE" - It is possible.
2548	//   "LIKELY" - It is likely.
2549	//   "VERY_LIKELY" - It is very likely.
2550	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
2551
2552	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
2553	// that the face is pointing relative to the image's horizontal plane.
2554	// Range [-180,180].
2555	TiltAngle float64 `json:"tiltAngle,omitempty"`
2556
2557	// UnderExposedLikelihood: Under-exposed likelihood.
2558	//
2559	// Possible values:
2560	//   "UNKNOWN" - Unknown likelihood.
2561	//   "VERY_UNLIKELY" - It is very unlikely.
2562	//   "UNLIKELY" - It is unlikely.
2563	//   "POSSIBLE" - It is possible.
2564	//   "LIKELY" - It is likely.
2565	//   "VERY_LIKELY" - It is very likely.
2566	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
2567
2568	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
2569	// unconditionally include in API requests. By default, fields with
2570	// empty or default values are omitted from API requests. However, any
2571	// non-pointer, non-interface field appearing in ForceSendFields will be
2572	// sent to the server regardless of whether the field is empty or not.
2573	// This may be used to include empty fields in Patch requests.
2574	ForceSendFields []string `json:"-"`
2575
2576	// NullFields is a list of field names (e.g. "AngerLikelihood") to
2577	// include in API requests with the JSON null value. By default, fields
2578	// with empty values are omitted from API requests. However, any field
2579	// with an empty value appearing in NullFields will be sent to the
2580	// server as null. It is an error if a field in this list has a
2581	// non-empty value. This may be used to include null fields in Patch
2582	// requests.
2583	NullFields []string `json:"-"`
2584}
2585
2586func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
2587	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2588	raw := NoMethod(*s)
2589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2590}
2591
2592func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
2593	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2594	var s1 struct {
2595		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
2596		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
2597		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
2598		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
2599		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
2600		*NoMethod
2601	}
2602	s1.NoMethod = (*NoMethod)(s)
2603	if err := json.Unmarshal(data, &s1); err != nil {
2604		return err
2605	}
2606	s.DetectionConfidence = float64(s1.DetectionConfidence)
2607	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
2608	s.PanAngle = float64(s1.PanAngle)
2609	s.RollAngle = float64(s1.RollAngle)
2610	s.TiltAngle = float64(s1.TiltAngle)
2611	return nil
2612}
2613
2614// GoogleCloudVisionV1p1beta1FaceAnnotationLandmark: A face-specific
2615// landmark (for example, a face feature).
2616type GoogleCloudVisionV1p1beta1FaceAnnotationLandmark struct {
2617	// Position: Face landmark position.
2618	Position *GoogleCloudVisionV1p1beta1Position `json:"position,omitempty"`
2619
2620	// Type: Face landmark type.
2621	//
2622	// Possible values:
2623	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
2624	// filled.
2625	//   "LEFT_EYE" - Left eye.
2626	//   "RIGHT_EYE" - Right eye.
2627	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
2628	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
2629	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
2630	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
2631	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
2632	//   "NOSE_TIP" - Nose tip.
2633	//   "UPPER_LIP" - Upper lip.
2634	//   "LOWER_LIP" - Lower lip.
2635	//   "MOUTH_LEFT" - Mouth left.
2636	//   "MOUTH_RIGHT" - Mouth right.
2637	//   "MOUTH_CENTER" - Mouth center.
2638	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
2639	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
2640	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
2641	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
2642	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
2643	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
2644	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
2645	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
2646	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
2647	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
2648	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
2649	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
2650	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
2651	//   "LEFT_EAR_TRAGION" - Left ear tragion.
2652	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
2653	//   "LEFT_EYE_PUPIL" - Left eye pupil.
2654	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
2655	//   "FOREHEAD_GLABELLA" - Forehead glabella.
2656	//   "CHIN_GNATHION" - Chin gnathion.
2657	//   "CHIN_LEFT_GONION" - Chin left gonion.
2658	//   "CHIN_RIGHT_GONION" - Chin right gonion.
2659	//   "LEFT_CHEEK_CENTER" - Left cheek center.
2660	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
2661	Type string `json:"type,omitempty"`
2662
2663	// ForceSendFields is a list of field names (e.g. "Position") to
2664	// unconditionally include in API requests. By default, fields with
2665	// empty or default values are omitted from API requests. However, any
2666	// non-pointer, non-interface field appearing in ForceSendFields will be
2667	// sent to the server regardless of whether the field is empty or not.
2668	// This may be used to include empty fields in Patch requests.
2669	ForceSendFields []string `json:"-"`
2670
2671	// NullFields is a list of field names (e.g. "Position") to include in
2672	// API requests with the JSON null value. By default, fields with empty
2673	// values are omitted from API requests. However, any field with an
2674	// empty value appearing in NullFields will be sent to the server as
2675	// null. It is an error if a field in this list has a non-empty value.
2676	// This may be used to include null fields in Patch requests.
2677	NullFields []string `json:"-"`
2678}
2679
2680func (s *GoogleCloudVisionV1p1beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
2681	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotationLandmark
2682	raw := NoMethod(*s)
2683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2684}
2685
2686// GoogleCloudVisionV1p1beta1GcsDestination: The Google Cloud Storage
2687// location where the output will be written to.
2688type GoogleCloudVisionV1p1beta1GcsDestination struct {
2689	// Uri: Google Cloud Storage URI prefix where the results will be
2690	// stored. Results will be in JSON format and preceded by its
2691	// corresponding input URI prefix. This field can either represent a gcs
2692	// file prefix or gcs directory. In either case, the uri should be
2693	// unique because in order to get all of the output files, you will need
2694	// to do a wildcard gcs search on the uri prefix you provide. Examples:
2695	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
2696	// will be created in gs://bucket-name/here/ and the names of the output
2697	// files will begin with "filenameprefix". * Directory Prefix:
2698	// gs://bucket-name/some/location/ The output files will be created in
2699	// gs://bucket-name/some/location/ and the names of the output files
2700	// could be anything because there was no filename prefix specified. If
2701	// multiple outputs, each response is still AnnotateFileResponse, each
2702	// of which contains some subset of the full list of
2703	// AnnotateImageResponse. Multiple outputs can happen if, for example,
2704	// the output JSON is too large and overflows into multiple sharded
2705	// files.
2706	Uri string `json:"uri,omitempty"`
2707
2708	// ForceSendFields is a list of field names (e.g. "Uri") to
2709	// unconditionally include in API requests. By default, fields with
2710	// empty or default values are omitted from API requests. However, any
2711	// non-pointer, non-interface field appearing in ForceSendFields will be
2712	// sent to the server regardless of whether the field is empty or not.
2713	// This may be used to include empty fields in Patch requests.
2714	ForceSendFields []string `json:"-"`
2715
2716	// NullFields is a list of field names (e.g. "Uri") to include in API
2717	// requests with the JSON null value. By default, fields with empty
2718	// values are omitted from API requests. However, any field with an
2719	// empty value appearing in NullFields will be sent to the server as
2720	// null. It is an error if a field in this list has a non-empty value.
2721	// This may be used to include null fields in Patch requests.
2722	NullFields []string `json:"-"`
2723}
2724
2725func (s *GoogleCloudVisionV1p1beta1GcsDestination) MarshalJSON() ([]byte, error) {
2726	type NoMethod GoogleCloudVisionV1p1beta1GcsDestination
2727	raw := NoMethod(*s)
2728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2729}
2730
2731// GoogleCloudVisionV1p1beta1GcsSource: The Google Cloud Storage
2732// location where the input will be read from.
2733type GoogleCloudVisionV1p1beta1GcsSource struct {
2734	// Uri: Google Cloud Storage URI for the input file. This must only be a
2735	// Google Cloud Storage object. Wildcards are not currently supported.
2736	Uri string `json:"uri,omitempty"`
2737
2738	// ForceSendFields is a list of field names (e.g. "Uri") to
2739	// unconditionally include in API requests. By default, fields with
2740	// empty or default values are omitted from API requests. However, any
2741	// non-pointer, non-interface field appearing in ForceSendFields will be
2742	// sent to the server regardless of whether the field is empty or not.
2743	// This may be used to include empty fields in Patch requests.
2744	ForceSendFields []string `json:"-"`
2745
2746	// NullFields is a list of field names (e.g. "Uri") to include in API
2747	// requests with the JSON null value. By default, fields with empty
2748	// values are omitted from API requests. However, any field with an
2749	// empty value appearing in NullFields will be sent to the server as
2750	// null. It is an error if a field in this list has a non-empty value.
2751	// This may be used to include null fields in Patch requests.
2752	NullFields []string `json:"-"`
2753}
2754
2755func (s *GoogleCloudVisionV1p1beta1GcsSource) MarshalJSON() ([]byte, error) {
2756	type NoMethod GoogleCloudVisionV1p1beta1GcsSource
2757	raw := NoMethod(*s)
2758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2759}
2760
2761// GoogleCloudVisionV1p1beta1ImageAnnotationContext: If an image was
2762// produced from a file (e.g. a PDF), this message gives information
2763// about the source of that image.
2764type GoogleCloudVisionV1p1beta1ImageAnnotationContext struct {
2765	// PageNumber: If the file was a PDF or TIFF, this field gives the page
2766	// number within the file used to produce the image.
2767	PageNumber int64 `json:"pageNumber,omitempty"`
2768
2769	// Uri: The URI of the file used to produce the image.
2770	Uri string `json:"uri,omitempty"`
2771
2772	// ForceSendFields is a list of field names (e.g. "PageNumber") to
2773	// unconditionally include in API requests. By default, fields with
2774	// empty or default values are omitted from API requests. However, any
2775	// non-pointer, non-interface field appearing in ForceSendFields will be
2776	// sent to the server regardless of whether the field is empty or not.
2777	// This may be used to include empty fields in Patch requests.
2778	ForceSendFields []string `json:"-"`
2779
2780	// NullFields is a list of field names (e.g. "PageNumber") to include in
2781	// API requests with the JSON null value. By default, fields with empty
2782	// values are omitted from API requests. However, any field with an
2783	// empty value appearing in NullFields will be sent to the server as
2784	// null. It is an error if a field in this list has a non-empty value.
2785	// This may be used to include null fields in Patch requests.
2786	NullFields []string `json:"-"`
2787}
2788
2789func (s *GoogleCloudVisionV1p1beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
2790	type NoMethod GoogleCloudVisionV1p1beta1ImageAnnotationContext
2791	raw := NoMethod(*s)
2792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2793}
2794
2795// GoogleCloudVisionV1p1beta1ImageProperties: Stores image properties,
2796// such as dominant colors.
2797type GoogleCloudVisionV1p1beta1ImageProperties struct {
2798	// DominantColors: If present, dominant colors completed successfully.
2799	DominantColors *GoogleCloudVisionV1p1beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
2800
2801	// ForceSendFields is a list of field names (e.g. "DominantColors") to
2802	// unconditionally include in API requests. By default, fields with
2803	// empty or default values are omitted from API requests. However, any
2804	// non-pointer, non-interface field appearing in ForceSendFields will be
2805	// sent to the server regardless of whether the field is empty or not.
2806	// This may be used to include empty fields in Patch requests.
2807	ForceSendFields []string `json:"-"`
2808
2809	// NullFields is a list of field names (e.g. "DominantColors") to
2810	// include in API requests with the JSON null value. By default, fields
2811	// with empty values are omitted from API requests. However, any field
2812	// with an empty value appearing in NullFields will be sent to the
2813	// server as null. It is an error if a field in this list has a
2814	// non-empty value. This may be used to include null fields in Patch
2815	// requests.
2816	NullFields []string `json:"-"`
2817}
2818
2819func (s *GoogleCloudVisionV1p1beta1ImageProperties) MarshalJSON() ([]byte, error) {
2820	type NoMethod GoogleCloudVisionV1p1beta1ImageProperties
2821	raw := NoMethod(*s)
2822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2823}
2824
2825// GoogleCloudVisionV1p1beta1InputConfig: The desired input location and
2826// metadata.
2827type GoogleCloudVisionV1p1beta1InputConfig struct {
2828	// Content: File content, represented as a stream of bytes. Note: As
2829	// with all `bytes` fields, protobuffers use a pure binary
2830	// representation, whereas JSON representations use base64. Currently,
2831	// this field only works for BatchAnnotateFiles requests. It does not
2832	// work for AsyncBatchAnnotateFiles requests.
2833	Content string `json:"content,omitempty"`
2834
2835	// GcsSource: The Google Cloud Storage location to read the input from.
2836	GcsSource *GoogleCloudVisionV1p1beta1GcsSource `json:"gcsSource,omitempty"`
2837
2838	// MimeType: The type of the file. Currently only "application/pdf",
2839	// "image/tiff" and "image/gif" are supported. Wildcards are not
2840	// supported.
2841	MimeType string `json:"mimeType,omitempty"`
2842
2843	// ForceSendFields is a list of field names (e.g. "Content") to
2844	// unconditionally include in API requests. By default, fields with
2845	// empty or default values are omitted from API requests. However, any
2846	// non-pointer, non-interface field appearing in ForceSendFields will be
2847	// sent to the server regardless of whether the field is empty or not.
2848	// This may be used to include empty fields in Patch requests.
2849	ForceSendFields []string `json:"-"`
2850
2851	// NullFields is a list of field names (e.g. "Content") to include in
2852	// API requests with the JSON null value. By default, fields with empty
2853	// values are omitted from API requests. However, any field with an
2854	// empty value appearing in NullFields will be sent to the server as
2855	// null. It is an error if a field in this list has a non-empty value.
2856	// This may be used to include null fields in Patch requests.
2857	NullFields []string `json:"-"`
2858}
2859
2860func (s *GoogleCloudVisionV1p1beta1InputConfig) MarshalJSON() ([]byte, error) {
2861	type NoMethod GoogleCloudVisionV1p1beta1InputConfig
2862	raw := NoMethod(*s)
2863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2864}
2865
2866// GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation: Set of detected
2867// objects with bounding boxes.
2868type GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation struct {
2869	// BoundingPoly: Image region to which this object belongs. This must be
2870	// populated.
2871	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2872
2873	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
2874	// For more information, see
2875	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
2876	LanguageCode string `json:"languageCode,omitempty"`
2877
2878	// Mid: Object ID that should align with EntityAnnotation mid.
2879	Mid string `json:"mid,omitempty"`
2880
2881	// Name: Object name, expressed in its `language_code` language.
2882	Name string `json:"name,omitempty"`
2883
2884	// Score: Score of the result. Range [0, 1].
2885	Score float64 `json:"score,omitempty"`
2886
2887	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2888	// unconditionally include in API requests. By default, fields with
2889	// empty or default values are omitted from API requests. However, any
2890	// non-pointer, non-interface field appearing in ForceSendFields will be
2891	// sent to the server regardless of whether the field is empty or not.
2892	// This may be used to include empty fields in Patch requests.
2893	ForceSendFields []string `json:"-"`
2894
2895	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2896	// in API requests with the JSON null value. By default, fields with
2897	// empty values are omitted from API requests. However, any field with
2898	// an empty value appearing in NullFields will be sent to the server as
2899	// null. It is an error if a field in this list has a non-empty value.
2900	// This may be used to include null fields in Patch requests.
2901	NullFields []string `json:"-"`
2902}
2903
2904func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
2905	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2906	raw := NoMethod(*s)
2907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2908}
2909
2910func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
2911	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
2912	var s1 struct {
2913		Score gensupport.JSONFloat64 `json:"score"`
2914		*NoMethod
2915	}
2916	s1.NoMethod = (*NoMethod)(s)
2917	if err := json.Unmarshal(data, &s1); err != nil {
2918		return err
2919	}
2920	s.Score = float64(s1.Score)
2921	return nil
2922}
2923
2924// GoogleCloudVisionV1p1beta1LocationInfo: Detected entity location
2925// information.
2926type GoogleCloudVisionV1p1beta1LocationInfo struct {
2927	// LatLng: lat/long location coordinates.
2928	LatLng *LatLng `json:"latLng,omitempty"`
2929
2930	// ForceSendFields is a list of field names (e.g. "LatLng") to
2931	// unconditionally include in API requests. By default, fields with
2932	// empty or default values are omitted from API requests. However, any
2933	// non-pointer, non-interface field appearing in ForceSendFields will be
2934	// sent to the server regardless of whether the field is empty or not.
2935	// This may be used to include empty fields in Patch requests.
2936	ForceSendFields []string `json:"-"`
2937
2938	// NullFields is a list of field names (e.g. "LatLng") to include in API
2939	// requests with the JSON null value. By default, fields with empty
2940	// values are omitted from API requests. However, any field with an
2941	// empty value appearing in NullFields will be sent to the server as
2942	// null. It is an error if a field in this list has a non-empty value.
2943	// This may be used to include null fields in Patch requests.
2944	NullFields []string `json:"-"`
2945}
2946
2947func (s *GoogleCloudVisionV1p1beta1LocationInfo) MarshalJSON() ([]byte, error) {
2948	type NoMethod GoogleCloudVisionV1p1beta1LocationInfo
2949	raw := NoMethod(*s)
2950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2951}
2952
2953// GoogleCloudVisionV1p1beta1NormalizedVertex: A vertex represents a 2D
2954// point in the image. NOTE: the normalized vertex coordinates are
2955// relative to the original image and range from 0 to 1.
2956type GoogleCloudVisionV1p1beta1NormalizedVertex struct {
2957	// X: X coordinate.
2958	X float64 `json:"x,omitempty"`
2959
2960	// Y: Y coordinate.
2961	Y float64 `json:"y,omitempty"`
2962
2963	// ForceSendFields is a list of field names (e.g. "X") to
2964	// unconditionally include in API requests. By default, fields with
2965	// empty or default values are omitted from API requests. However, any
2966	// non-pointer, non-interface field appearing in ForceSendFields will be
2967	// sent to the server regardless of whether the field is empty or not.
2968	// This may be used to include empty fields in Patch requests.
2969	ForceSendFields []string `json:"-"`
2970
2971	// NullFields is a list of field names (e.g. "X") to include in API
2972	// requests with the JSON null value. By default, fields with empty
2973	// values are omitted from API requests. However, any field with an
2974	// empty value appearing in NullFields will be sent to the server as
2975	// null. It is an error if a field in this list has a non-empty value.
2976	// This may be used to include null fields in Patch requests.
2977	NullFields []string `json:"-"`
2978}
2979
2980func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
2981	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2982	raw := NoMethod(*s)
2983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2984}
2985
2986func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
2987	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
2988	var s1 struct {
2989		X gensupport.JSONFloat64 `json:"x"`
2990		Y gensupport.JSONFloat64 `json:"y"`
2991		*NoMethod
2992	}
2993	s1.NoMethod = (*NoMethod)(s)
2994	if err := json.Unmarshal(data, &s1); err != nil {
2995		return err
2996	}
2997	s.X = float64(s1.X)
2998	s.Y = float64(s1.Y)
2999	return nil
3000}
3001
3002// GoogleCloudVisionV1p1beta1OperationMetadata: Contains metadata for
3003// the BatchAnnotateImages operation.
3004type GoogleCloudVisionV1p1beta1OperationMetadata struct {
3005	// CreateTime: The time when the batch request was received.
3006	CreateTime string `json:"createTime,omitempty"`
3007
3008	// State: Current state of the batch operation.
3009	//
3010	// Possible values:
3011	//   "STATE_UNSPECIFIED" - Invalid.
3012	//   "CREATED" - Request is received.
3013	//   "RUNNING" - Request is actively being processed.
3014	//   "DONE" - The batch processing is done.
3015	//   "CANCELLED" - The batch processing was cancelled.
3016	State string `json:"state,omitempty"`
3017
3018	// UpdateTime: The time when the operation result was last updated.
3019	UpdateTime string `json:"updateTime,omitempty"`
3020
3021	// ForceSendFields is a list of field names (e.g. "CreateTime") to
3022	// unconditionally include in API requests. By default, fields with
3023	// empty or default values are omitted from API requests. However, any
3024	// non-pointer, non-interface field appearing in ForceSendFields will be
3025	// sent to the server regardless of whether the field is empty or not.
3026	// This may be used to include empty fields in Patch requests.
3027	ForceSendFields []string `json:"-"`
3028
3029	// NullFields is a list of field names (e.g. "CreateTime") to include in
3030	// API requests with the JSON null value. By default, fields with empty
3031	// values are omitted from API requests. However, any field with an
3032	// empty value appearing in NullFields will be sent to the server as
3033	// null. It is an error if a field in this list has a non-empty value.
3034	// This may be used to include null fields in Patch requests.
3035	NullFields []string `json:"-"`
3036}
3037
3038func (s *GoogleCloudVisionV1p1beta1OperationMetadata) MarshalJSON() ([]byte, error) {
3039	type NoMethod GoogleCloudVisionV1p1beta1OperationMetadata
3040	raw := NoMethod(*s)
3041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3042}
3043
3044// GoogleCloudVisionV1p1beta1OutputConfig: The desired output location
3045// and metadata.
3046type GoogleCloudVisionV1p1beta1OutputConfig struct {
3047	// BatchSize: The max number of response protos to put into each output
3048	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
3049	// not specified, the default value is 20. For example, for one pdf file
3050	// with 100 pages, 100 response protos will be generated. If
3051	// `batch_size` = 20, then 5 json files each containing 20 response
3052	// protos will be written under the prefix `gcs_destination`.`uri`.
3053	// Currently, batch_size only applies to GcsDestination, with potential
3054	// future support for other output configurations.
3055	BatchSize int64 `json:"batchSize,omitempty"`
3056
3057	// GcsDestination: The Google Cloud Storage location to write the
3058	// output(s) to.
3059	GcsDestination *GoogleCloudVisionV1p1beta1GcsDestination `json:"gcsDestination,omitempty"`
3060
3061	// ForceSendFields is a list of field names (e.g. "BatchSize") to
3062	// unconditionally include in API requests. By default, fields with
3063	// empty or default values are omitted from API requests. However, any
3064	// non-pointer, non-interface field appearing in ForceSendFields will be
3065	// sent to the server regardless of whether the field is empty or not.
3066	// This may be used to include empty fields in Patch requests.
3067	ForceSendFields []string `json:"-"`
3068
3069	// NullFields is a list of field names (e.g. "BatchSize") to include in
3070	// API requests with the JSON null value. By default, fields with empty
3071	// values are omitted from API requests. However, any field with an
3072	// empty value appearing in NullFields will be sent to the server as
3073	// null. It is an error if a field in this list has a non-empty value.
3074	// This may be used to include null fields in Patch requests.
3075	NullFields []string `json:"-"`
3076}
3077
3078func (s *GoogleCloudVisionV1p1beta1OutputConfig) MarshalJSON() ([]byte, error) {
3079	type NoMethod GoogleCloudVisionV1p1beta1OutputConfig
3080	raw := NoMethod(*s)
3081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3082}
3083
3084// GoogleCloudVisionV1p1beta1Page: Detected page from OCR.
3085type GoogleCloudVisionV1p1beta1Page struct {
3086	// Blocks: List of blocks of text, images etc on this page.
3087	Blocks []*GoogleCloudVisionV1p1beta1Block `json:"blocks,omitempty"`
3088
3089	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
3090	Confidence float64 `json:"confidence,omitempty"`
3091
3092	// Height: Page height. For PDFs the unit is points. For images
3093	// (including TIFFs) the unit is pixels.
3094	Height int64 `json:"height,omitempty"`
3095
3096	// Property: Additional information detected on the page.
3097	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3098
3099	// Width: Page width. For PDFs the unit is points. For images (including
3100	// TIFFs) the unit is pixels.
3101	Width int64 `json:"width,omitempty"`
3102
3103	// ForceSendFields is a list of field names (e.g. "Blocks") to
3104	// unconditionally include in API requests. By default, fields with
3105	// empty or default values are omitted from API requests. However, any
3106	// non-pointer, non-interface field appearing in ForceSendFields will be
3107	// sent to the server regardless of whether the field is empty or not.
3108	// This may be used to include empty fields in Patch requests.
3109	ForceSendFields []string `json:"-"`
3110
3111	// NullFields is a list of field names (e.g. "Blocks") to include in API
3112	// requests with the JSON null value. By default, fields with empty
3113	// values are omitted from API requests. However, any field with an
3114	// empty value appearing in NullFields will be sent to the server as
3115	// null. It is an error if a field in this list has a non-empty value.
3116	// This may be used to include null fields in Patch requests.
3117	NullFields []string `json:"-"`
3118}
3119
3120func (s *GoogleCloudVisionV1p1beta1Page) MarshalJSON() ([]byte, error) {
3121	type NoMethod GoogleCloudVisionV1p1beta1Page
3122	raw := NoMethod(*s)
3123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3124}
3125
3126func (s *GoogleCloudVisionV1p1beta1Page) UnmarshalJSON(data []byte) error {
3127	type NoMethod GoogleCloudVisionV1p1beta1Page
3128	var s1 struct {
3129		Confidence gensupport.JSONFloat64 `json:"confidence"`
3130		*NoMethod
3131	}
3132	s1.NoMethod = (*NoMethod)(s)
3133	if err := json.Unmarshal(data, &s1); err != nil {
3134		return err
3135	}
3136	s.Confidence = float64(s1.Confidence)
3137	return nil
3138}
3139
3140// GoogleCloudVisionV1p1beta1Paragraph: Structural unit of text
3141// representing a number of words in certain order.
3142type GoogleCloudVisionV1p1beta1Paragraph struct {
3143	// BoundingBox: The bounding box for the paragraph. The vertices are in
3144	// the order of top-left, top-right, bottom-right, bottom-left. When a
3145	// rotation of the bounding box is detected the rotation is represented
3146	// as around the top-left corner as defined when the text is read in the
3147	// 'natural' orientation. For example: * when the text is horizontal it
3148	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
3149	// around the top-left corner it becomes: 2----3 | | 1----0 and the
3150	// vertex order will still be (0, 1, 2, 3).
3151	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3152
3153	// Confidence: Confidence of the OCR results for the paragraph. Range
3154	// [0, 1].
3155	Confidence float64 `json:"confidence,omitempty"`
3156
3157	// Property: Additional information detected for the paragraph.
3158	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3159
3160	// Words: List of all words in this paragraph.
3161	Words []*GoogleCloudVisionV1p1beta1Word `json:"words,omitempty"`
3162
3163	// ForceSendFields is a list of field names (e.g. "BoundingBox") 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. "BoundingBox") to include
3172	// in API requests with the JSON null value. By default, fields with
3173	// empty values are omitted from API requests. However, any field with
3174	// an 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 *GoogleCloudVisionV1p1beta1Paragraph) MarshalJSON() ([]byte, error) {
3181	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3182	raw := NoMethod(*s)
3183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3184}
3185
3186func (s *GoogleCloudVisionV1p1beta1Paragraph) UnmarshalJSON(data []byte) error {
3187	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3188	var s1 struct {
3189		Confidence gensupport.JSONFloat64 `json:"confidence"`
3190		*NoMethod
3191	}
3192	s1.NoMethod = (*NoMethod)(s)
3193	if err := json.Unmarshal(data, &s1); err != nil {
3194		return err
3195	}
3196	s.Confidence = float64(s1.Confidence)
3197	return nil
3198}
3199
3200// GoogleCloudVisionV1p1beta1Position: A 3D position in the image, used
3201// primarily for Face detection landmarks. A valid Position must have
3202// both x and y coordinates. The position coordinates are in the same
3203// scale as the original image.
3204type GoogleCloudVisionV1p1beta1Position struct {
3205	// X: X coordinate.
3206	X float64 `json:"x,omitempty"`
3207
3208	// Y: Y coordinate.
3209	Y float64 `json:"y,omitempty"`
3210
3211	// Z: Z coordinate (or depth).
3212	Z float64 `json:"z,omitempty"`
3213
3214	// ForceSendFields is a list of field names (e.g. "X") to
3215	// unconditionally include in API requests. By default, fields with
3216	// empty or default values are omitted from API requests. However, any
3217	// non-pointer, non-interface field appearing in ForceSendFields will be
3218	// sent to the server regardless of whether the field is empty or not.
3219	// This may be used to include empty fields in Patch requests.
3220	ForceSendFields []string `json:"-"`
3221
3222	// NullFields is a list of field names (e.g. "X") to include in API
3223	// requests with the JSON null value. By default, fields with empty
3224	// values are omitted from API requests. However, any field with an
3225	// empty value appearing in NullFields will be sent to the server as
3226	// null. It is an error if a field in this list has a non-empty value.
3227	// This may be used to include null fields in Patch requests.
3228	NullFields []string `json:"-"`
3229}
3230
3231func (s *GoogleCloudVisionV1p1beta1Position) MarshalJSON() ([]byte, error) {
3232	type NoMethod GoogleCloudVisionV1p1beta1Position
3233	raw := NoMethod(*s)
3234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3235}
3236
3237func (s *GoogleCloudVisionV1p1beta1Position) UnmarshalJSON(data []byte) error {
3238	type NoMethod GoogleCloudVisionV1p1beta1Position
3239	var s1 struct {
3240		X gensupport.JSONFloat64 `json:"x"`
3241		Y gensupport.JSONFloat64 `json:"y"`
3242		Z gensupport.JSONFloat64 `json:"z"`
3243		*NoMethod
3244	}
3245	s1.NoMethod = (*NoMethod)(s)
3246	if err := json.Unmarshal(data, &s1); err != nil {
3247		return err
3248	}
3249	s.X = float64(s1.X)
3250	s.Y = float64(s1.Y)
3251	s.Z = float64(s1.Z)
3252	return nil
3253}
3254
3255// GoogleCloudVisionV1p1beta1Product: A Product contains
3256// ReferenceImages.
3257type GoogleCloudVisionV1p1beta1Product struct {
3258	// Description: User-provided metadata to be stored with this product.
3259	// Must be at most 4096 characters long.
3260	Description string `json:"description,omitempty"`
3261
3262	// DisplayName: The user-provided name for this Product. Must not be
3263	// empty. Must be at most 4096 characters long.
3264	DisplayName string `json:"displayName,omitempty"`
3265
3266	// Name: The resource name of the product. Format is:
3267	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
3268	// field is ignored when creating a product.
3269	Name string `json:"name,omitempty"`
3270
3271	// ProductCategory: Immutable. The category for the product identified
3272	// by the reference image. This should be one of "homegoods-v2",
3273	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
3274	// legacy categories "homegoods", "apparel", and "toys" are still
3275	// supported, but these should not be used for new products.
3276	ProductCategory string `json:"productCategory,omitempty"`
3277
3278	// ProductLabels: Key-value pairs that can be attached to a product. At
3279	// query time, constraints can be specified based on the product_labels.
3280	// Note that integer values can be provided as strings, e.g. "1199".
3281	// Only strings with integer values can match a range-based restriction
3282	// which is to be supported soon. Multiple values can be assigned to the
3283	// same key. One product may have up to 500 product_labels. Notice that
3284	// the total number of distinct product_labels over all products in one
3285	// ProductSet cannot exceed 1M, otherwise the product search pipeline
3286	// will refuse to work for that ProductSet.
3287	ProductLabels []*GoogleCloudVisionV1p1beta1ProductKeyValue `json:"productLabels,omitempty"`
3288
3289	// ForceSendFields is a list of field names (e.g. "Description") to
3290	// unconditionally include in API requests. By default, fields with
3291	// empty or default values are omitted from API requests. However, any
3292	// non-pointer, non-interface field appearing in ForceSendFields will be
3293	// sent to the server regardless of whether the field is empty or not.
3294	// This may be used to include empty fields in Patch requests.
3295	ForceSendFields []string `json:"-"`
3296
3297	// NullFields is a list of field names (e.g. "Description") to include
3298	// in API requests with the JSON null value. By default, fields with
3299	// empty values are omitted from API requests. However, any field with
3300	// an empty value appearing in NullFields will be sent to the server as
3301	// null. It is an error if a field in this list has a non-empty value.
3302	// This may be used to include null fields in Patch requests.
3303	NullFields []string `json:"-"`
3304}
3305
3306func (s *GoogleCloudVisionV1p1beta1Product) MarshalJSON() ([]byte, error) {
3307	type NoMethod GoogleCloudVisionV1p1beta1Product
3308	raw := NoMethod(*s)
3309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3310}
3311
3312// GoogleCloudVisionV1p1beta1ProductKeyValue: A product label
3313// represented as a key-value pair.
3314type GoogleCloudVisionV1p1beta1ProductKeyValue struct {
3315	// Key: The key of the label attached to the product. Cannot be empty
3316	// and cannot exceed 128 bytes.
3317	Key string `json:"key,omitempty"`
3318
3319	// Value: The value of the label attached to the product. Cannot be
3320	// empty and cannot exceed 128 bytes.
3321	Value string `json:"value,omitempty"`
3322
3323	// ForceSendFields is a list of field names (e.g. "Key") to
3324	// unconditionally include in API requests. By default, fields with
3325	// empty or default values are omitted from API requests. However, any
3326	// non-pointer, non-interface field appearing in ForceSendFields will be
3327	// sent to the server regardless of whether the field is empty or not.
3328	// This may be used to include empty fields in Patch requests.
3329	ForceSendFields []string `json:"-"`
3330
3331	// NullFields is a list of field names (e.g. "Key") to include in API
3332	// requests with the JSON null value. By default, fields with empty
3333	// values are omitted from API requests. However, any field with an
3334	// empty value appearing in NullFields will be sent to the server as
3335	// null. It is an error if a field in this list has a non-empty value.
3336	// This may be used to include null fields in Patch requests.
3337	NullFields []string `json:"-"`
3338}
3339
3340func (s *GoogleCloudVisionV1p1beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
3341	type NoMethod GoogleCloudVisionV1p1beta1ProductKeyValue
3342	raw := NoMethod(*s)
3343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3344}
3345
3346// GoogleCloudVisionV1p1beta1ProductSearchResults: Results for a product
3347// search request.
3348type GoogleCloudVisionV1p1beta1ProductSearchResults struct {
3349	// IndexTime: Timestamp of the index which provided these results.
3350	// Products added to the product set and products removed from the
3351	// product set after this time are not reflected in the current results.
3352	IndexTime string `json:"indexTime,omitempty"`
3353
3354	// ProductGroupedResults: List of results grouped by products detected
3355	// in the query image. Each entry corresponds to one bounding polygon in
3356	// the query image, and contains the matching products specific to that
3357	// region. There may be duplicate product matches in the union of all
3358	// the per-product results.
3359	ProductGroupedResults []*GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
3360
3361	// Results: List of results, one for each product match.
3362	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3363
3364	// ForceSendFields is a list of field names (e.g. "IndexTime") to
3365	// unconditionally include in API requests. By default, fields with
3366	// empty or default values are omitted from API requests. However, any
3367	// non-pointer, non-interface field appearing in ForceSendFields will be
3368	// sent to the server regardless of whether the field is empty or not.
3369	// This may be used to include empty fields in Patch requests.
3370	ForceSendFields []string `json:"-"`
3371
3372	// NullFields is a list of field names (e.g. "IndexTime") to include in
3373	// API requests with the JSON null value. By default, fields with empty
3374	// values are omitted from API requests. However, any field with an
3375	// empty value appearing in NullFields will be sent to the server as
3376	// null. It is an error if a field in this list has a non-empty value.
3377	// This may be used to include null fields in Patch requests.
3378	NullFields []string `json:"-"`
3379}
3380
3381func (s *GoogleCloudVisionV1p1beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
3382	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResults
3383	raw := NoMethod(*s)
3384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3385}
3386
3387// GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult:
3388// Information about the products similar to a single product in a query
3389// image.
3390type GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult struct {
3391	// BoundingPoly: The bounding polygon around the product detected in the
3392	// query image.
3393	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3394
3395	// ObjectAnnotations: List of generic predictions for the object in the
3396	// bounding box.
3397	ObjectAnnotations []*GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
3398
3399	// Results: List of results, one for each product match.
3400	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3401
3402	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3403	// unconditionally include in API requests. By default, fields with
3404	// empty or default values are omitted from API requests. However, any
3405	// non-pointer, non-interface field appearing in ForceSendFields will be
3406	// sent to the server regardless of whether the field is empty or not.
3407	// This may be used to include empty fields in Patch requests.
3408	ForceSendFields []string `json:"-"`
3409
3410	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3411	// in API requests with the JSON null value. By default, fields with
3412	// empty values are omitted from API requests. However, any field with
3413	// an empty value appearing in NullFields will be sent to the server as
3414	// null. It is an error if a field in this list has a non-empty value.
3415	// This may be used to include null fields in Patch requests.
3416	NullFields []string `json:"-"`
3417}
3418
3419func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
3420	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult
3421	raw := NoMethod(*s)
3422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3423}
3424
3425// GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation:
3426// Prediction for what the object in the bounding box is.
3427type GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation struct {
3428	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3429	// For more information, see
3430	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3431	LanguageCode string `json:"languageCode,omitempty"`
3432
3433	// Mid: Object ID that should align with EntityAnnotation mid.
3434	Mid string `json:"mid,omitempty"`
3435
3436	// Name: Object name, expressed in its `language_code` language.
3437	Name string `json:"name,omitempty"`
3438
3439	// Score: Score of the result. Range [0, 1].
3440	Score float64 `json:"score,omitempty"`
3441
3442	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
3443	// unconditionally include in API requests. By default, fields with
3444	// empty or default values are omitted from API requests. However, any
3445	// non-pointer, non-interface field appearing in ForceSendFields will be
3446	// sent to the server regardless of whether the field is empty or not.
3447	// This may be used to include empty fields in Patch requests.
3448	ForceSendFields []string `json:"-"`
3449
3450	// NullFields is a list of field names (e.g. "LanguageCode") to include
3451	// in API requests with the JSON null value. By default, fields with
3452	// empty values are omitted from API requests. However, any field with
3453	// an empty value appearing in NullFields will be sent to the server as
3454	// null. It is an error if a field in this list has a non-empty value.
3455	// This may be used to include null fields in Patch requests.
3456	NullFields []string `json:"-"`
3457}
3458
3459func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
3460	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3461	raw := NoMethod(*s)
3462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3463}
3464
3465func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
3466	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3467	var s1 struct {
3468		Score gensupport.JSONFloat64 `json:"score"`
3469		*NoMethod
3470	}
3471	s1.NoMethod = (*NoMethod)(s)
3472	if err := json.Unmarshal(data, &s1); err != nil {
3473		return err
3474	}
3475	s.Score = float64(s1.Score)
3476	return nil
3477}
3478
3479// GoogleCloudVisionV1p1beta1ProductSearchResultsResult: Information
3480// about a product.
3481type GoogleCloudVisionV1p1beta1ProductSearchResultsResult struct {
3482	// Image: The resource name of the image from the product that is the
3483	// closest match to the query.
3484	Image string `json:"image,omitempty"`
3485
3486	// Product: The Product.
3487	Product *GoogleCloudVisionV1p1beta1Product `json:"product,omitempty"`
3488
3489	// Score: A confidence level on the match, ranging from 0 (no
3490	// confidence) to 1 (full confidence).
3491	Score float64 `json:"score,omitempty"`
3492
3493	// ForceSendFields is a list of field names (e.g. "Image") to
3494	// unconditionally include in API requests. By default, fields with
3495	// empty or default values are omitted from API requests. However, any
3496	// non-pointer, non-interface field appearing in ForceSendFields will be
3497	// sent to the server regardless of whether the field is empty or not.
3498	// This may be used to include empty fields in Patch requests.
3499	ForceSendFields []string `json:"-"`
3500
3501	// NullFields is a list of field names (e.g. "Image") to include in API
3502	// requests with the JSON null value. By default, fields with empty
3503	// values are omitted from API requests. However, any field with an
3504	// empty value appearing in NullFields will be sent to the server as
3505	// null. It is an error if a field in this list has a non-empty value.
3506	// This may be used to include null fields in Patch requests.
3507	NullFields []string `json:"-"`
3508}
3509
3510func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
3511	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3512	raw := NoMethod(*s)
3513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3514}
3515
3516func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
3517	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3518	var s1 struct {
3519		Score gensupport.JSONFloat64 `json:"score"`
3520		*NoMethod
3521	}
3522	s1.NoMethod = (*NoMethod)(s)
3523	if err := json.Unmarshal(data, &s1); err != nil {
3524		return err
3525	}
3526	s.Score = float64(s1.Score)
3527	return nil
3528}
3529
3530// GoogleCloudVisionV1p1beta1Property: A `Property` consists of a
3531// user-supplied name/value pair.
3532type GoogleCloudVisionV1p1beta1Property struct {
3533	// Name: Name of the property.
3534	Name string `json:"name,omitempty"`
3535
3536	// Uint64Value: Value of numeric properties.
3537	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
3538
3539	// Value: Value of the property.
3540	Value string `json:"value,omitempty"`
3541
3542	// ForceSendFields is a list of field names (e.g. "Name") to
3543	// unconditionally include in API requests. By default, fields with
3544	// empty or default values are omitted from API requests. However, any
3545	// non-pointer, non-interface field appearing in ForceSendFields will be
3546	// sent to the server regardless of whether the field is empty or not.
3547	// This may be used to include empty fields in Patch requests.
3548	ForceSendFields []string `json:"-"`
3549
3550	// NullFields is a list of field names (e.g. "Name") to include in API
3551	// requests with the JSON null value. By default, fields with empty
3552	// values are omitted from API requests. However, any field with an
3553	// empty value appearing in NullFields will be sent to the server as
3554	// null. It is an error if a field in this list has a non-empty value.
3555	// This may be used to include null fields in Patch requests.
3556	NullFields []string `json:"-"`
3557}
3558
3559func (s *GoogleCloudVisionV1p1beta1Property) MarshalJSON() ([]byte, error) {
3560	type NoMethod GoogleCloudVisionV1p1beta1Property
3561	raw := NoMethod(*s)
3562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3563}
3564
3565// GoogleCloudVisionV1p1beta1SafeSearchAnnotation: Set of features
3566// pertaining to the image, computed by computer vision methods over
3567// safe-search verticals (for example, adult, spoof, medical, violence).
3568type GoogleCloudVisionV1p1beta1SafeSearchAnnotation struct {
3569	// Adult: Represents the adult content likelihood for the image. Adult
3570	// content may contain elements such as nudity, pornographic images or
3571	// cartoons, or sexual activities.
3572	//
3573	// Possible values:
3574	//   "UNKNOWN" - Unknown likelihood.
3575	//   "VERY_UNLIKELY" - It is very unlikely.
3576	//   "UNLIKELY" - It is unlikely.
3577	//   "POSSIBLE" - It is possible.
3578	//   "LIKELY" - It is likely.
3579	//   "VERY_LIKELY" - It is very likely.
3580	Adult string `json:"adult,omitempty"`
3581
3582	// Medical: Likelihood that this is a medical image.
3583	//
3584	// Possible values:
3585	//   "UNKNOWN" - Unknown likelihood.
3586	//   "VERY_UNLIKELY" - It is very unlikely.
3587	//   "UNLIKELY" - It is unlikely.
3588	//   "POSSIBLE" - It is possible.
3589	//   "LIKELY" - It is likely.
3590	//   "VERY_LIKELY" - It is very likely.
3591	Medical string `json:"medical,omitempty"`
3592
3593	// Racy: Likelihood that the request image contains racy content. Racy
3594	// content may include (but is not limited to) skimpy or sheer clothing,
3595	// strategically covered nudity, lewd or provocative poses, or close-ups
3596	// of sensitive body areas.
3597	//
3598	// Possible values:
3599	//   "UNKNOWN" - Unknown likelihood.
3600	//   "VERY_UNLIKELY" - It is very unlikely.
3601	//   "UNLIKELY" - It is unlikely.
3602	//   "POSSIBLE" - It is possible.
3603	//   "LIKELY" - It is likely.
3604	//   "VERY_LIKELY" - It is very likely.
3605	Racy string `json:"racy,omitempty"`
3606
3607	// Spoof: Spoof likelihood. The likelihood that an modification was made
3608	// to the image's canonical version to make it appear funny or
3609	// offensive.
3610	//
3611	// Possible values:
3612	//   "UNKNOWN" - Unknown likelihood.
3613	//   "VERY_UNLIKELY" - It is very unlikely.
3614	//   "UNLIKELY" - It is unlikely.
3615	//   "POSSIBLE" - It is possible.
3616	//   "LIKELY" - It is likely.
3617	//   "VERY_LIKELY" - It is very likely.
3618	Spoof string `json:"spoof,omitempty"`
3619
3620	// Violence: Likelihood that this image contains violent content.
3621	//
3622	// Possible values:
3623	//   "UNKNOWN" - Unknown likelihood.
3624	//   "VERY_UNLIKELY" - It is very unlikely.
3625	//   "UNLIKELY" - It is unlikely.
3626	//   "POSSIBLE" - It is possible.
3627	//   "LIKELY" - It is likely.
3628	//   "VERY_LIKELY" - It is very likely.
3629	Violence string `json:"violence,omitempty"`
3630
3631	// ForceSendFields is a list of field names (e.g. "Adult") to
3632	// unconditionally include in API requests. By default, fields with
3633	// empty or default values are omitted from API requests. However, any
3634	// non-pointer, non-interface field appearing in ForceSendFields will be
3635	// sent to the server regardless of whether the field is empty or not.
3636	// This may be used to include empty fields in Patch requests.
3637	ForceSendFields []string `json:"-"`
3638
3639	// NullFields is a list of field names (e.g. "Adult") to include in API
3640	// requests with the JSON null value. By default, fields with empty
3641	// values are omitted from API requests. However, any field with an
3642	// empty value appearing in NullFields will be sent to the server as
3643	// null. It is an error if a field in this list has a non-empty value.
3644	// This may be used to include null fields in Patch requests.
3645	NullFields []string `json:"-"`
3646}
3647
3648func (s *GoogleCloudVisionV1p1beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
3649	type NoMethod GoogleCloudVisionV1p1beta1SafeSearchAnnotation
3650	raw := NoMethod(*s)
3651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3652}
3653
3654// GoogleCloudVisionV1p1beta1Symbol: A single symbol representation.
3655type GoogleCloudVisionV1p1beta1Symbol struct {
3656	// BoundingBox: The bounding box for the symbol. The vertices are in the
3657	// order of top-left, top-right, bottom-right, bottom-left. When a
3658	// rotation of the bounding box is detected the rotation is represented
3659	// as around the top-left corner as defined when the text is read in the
3660	// 'natural' orientation. For example: * when the text is horizontal it
3661	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
3662	// around the top-left corner it becomes: 2----3 | | 1----0 and the
3663	// vertex order will still be (0, 1, 2, 3).
3664	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3665
3666	// Confidence: Confidence of the OCR results for the symbol. Range [0,
3667	// 1].
3668	Confidence float64 `json:"confidence,omitempty"`
3669
3670	// Property: Additional information detected for the symbol.
3671	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3672
3673	// Text: The actual UTF-8 representation of the symbol.
3674	Text string `json:"text,omitempty"`
3675
3676	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3677	// unconditionally include in API requests. By default, fields with
3678	// empty or default values are omitted from API requests. However, any
3679	// non-pointer, non-interface field appearing in ForceSendFields will be
3680	// sent to the server regardless of whether the field is empty or not.
3681	// This may be used to include empty fields in Patch requests.
3682	ForceSendFields []string `json:"-"`
3683
3684	// NullFields is a list of field names (e.g. "BoundingBox") to include
3685	// in API requests with the JSON null value. By default, fields with
3686	// empty values are omitted from API requests. However, any field with
3687	// an empty value appearing in NullFields will be sent to the server as
3688	// null. It is an error if a field in this list has a non-empty value.
3689	// This may be used to include null fields in Patch requests.
3690	NullFields []string `json:"-"`
3691}
3692
3693func (s *GoogleCloudVisionV1p1beta1Symbol) MarshalJSON() ([]byte, error) {
3694	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3695	raw := NoMethod(*s)
3696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3697}
3698
3699func (s *GoogleCloudVisionV1p1beta1Symbol) UnmarshalJSON(data []byte) error {
3700	type NoMethod GoogleCloudVisionV1p1beta1Symbol
3701	var s1 struct {
3702		Confidence gensupport.JSONFloat64 `json:"confidence"`
3703		*NoMethod
3704	}
3705	s1.NoMethod = (*NoMethod)(s)
3706	if err := json.Unmarshal(data, &s1); err != nil {
3707		return err
3708	}
3709	s.Confidence = float64(s1.Confidence)
3710	return nil
3711}
3712
3713// GoogleCloudVisionV1p1beta1TextAnnotation: TextAnnotation contains a
3714// structured representation of OCR extracted text. The hierarchy of an
3715// OCR extracted text structure is like this: TextAnnotation -> Page ->
3716// Block -> Paragraph -> Word -> Symbol Each structural component,
3717// starting from Page, may further have their own properties. Properties
3718// describe detected languages, breaks etc.. Please refer to the
3719// TextAnnotation.TextProperty message definition below for more detail.
3720type GoogleCloudVisionV1p1beta1TextAnnotation struct {
3721	// Pages: List of pages detected by OCR.
3722	Pages []*GoogleCloudVisionV1p1beta1Page `json:"pages,omitempty"`
3723
3724	// Text: UTF-8 text detected on the pages.
3725	Text string `json:"text,omitempty"`
3726
3727	// ForceSendFields is a list of field names (e.g. "Pages") to
3728	// unconditionally include in API requests. By default, fields with
3729	// empty or default values are omitted from API requests. However, any
3730	// non-pointer, non-interface field appearing in ForceSendFields will be
3731	// sent to the server regardless of whether the field is empty or not.
3732	// This may be used to include empty fields in Patch requests.
3733	ForceSendFields []string `json:"-"`
3734
3735	// NullFields is a list of field names (e.g. "Pages") to include in API
3736	// requests with the JSON null value. By default, fields with empty
3737	// values are omitted from API requests. However, any field with an
3738	// empty value appearing in NullFields will be sent to the server as
3739	// null. It is an error if a field in this list has a non-empty value.
3740	// This may be used to include null fields in Patch requests.
3741	NullFields []string `json:"-"`
3742}
3743
3744func (s *GoogleCloudVisionV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
3745	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotation
3746	raw := NoMethod(*s)
3747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3748}
3749
3750// GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak: Detected start
3751// or end of a structural component.
3752type GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak struct {
3753	// IsPrefix: True if break prepends the element.
3754	IsPrefix bool `json:"isPrefix,omitempty"`
3755
3756	// Type: Detected break type.
3757	//
3758	// Possible values:
3759	//   "UNKNOWN" - Unknown break label type.
3760	//   "SPACE" - Regular space.
3761	//   "SURE_SPACE" - Sure space (very wide).
3762	//   "EOL_SURE_SPACE" - Line-wrapping break.
3763	//   "HYPHEN" - End-line hyphen that is not present in text; does not
3764	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
3765	//   "LINE_BREAK" - Line break that ends a paragraph.
3766	Type string `json:"type,omitempty"`
3767
3768	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
3769	// unconditionally include in API requests. By default, fields with
3770	// empty or default values are omitted from API requests. However, any
3771	// non-pointer, non-interface field appearing in ForceSendFields will be
3772	// sent to the server regardless of whether the field is empty or not.
3773	// This may be used to include empty fields in Patch requests.
3774	ForceSendFields []string `json:"-"`
3775
3776	// NullFields is a list of field names (e.g. "IsPrefix") to include in
3777	// API requests with the JSON null value. By default, fields with empty
3778	// values are omitted from API requests. However, any field with an
3779	// empty value appearing in NullFields will be sent to the server as
3780	// null. It is an error if a field in this list has a non-empty value.
3781	// This may be used to include null fields in Patch requests.
3782	NullFields []string `json:"-"`
3783}
3784
3785func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
3786	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak
3787	raw := NoMethod(*s)
3788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3789}
3790
3791// GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage: Detected
3792// language for a structural component.
3793type GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage struct {
3794	// Confidence: Confidence of detected language. Range [0, 1].
3795	Confidence float64 `json:"confidence,omitempty"`
3796
3797	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3798	// For more information, see
3799	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3800	LanguageCode string `json:"languageCode,omitempty"`
3801
3802	// ForceSendFields is a list of field names (e.g. "Confidence") to
3803	// unconditionally include in API requests. By default, fields with
3804	// empty or default values are omitted from API requests. However, any
3805	// non-pointer, non-interface field appearing in ForceSendFields will be
3806	// sent to the server regardless of whether the field is empty or not.
3807	// This may be used to include empty fields in Patch requests.
3808	ForceSendFields []string `json:"-"`
3809
3810	// NullFields is a list of field names (e.g. "Confidence") to include in
3811	// API requests with the JSON null value. By default, fields with empty
3812	// values are omitted from API requests. However, any field with an
3813	// empty value appearing in NullFields will be sent to the server as
3814	// null. It is an error if a field in this list has a non-empty value.
3815	// This may be used to include null fields in Patch requests.
3816	NullFields []string `json:"-"`
3817}
3818
3819func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
3820	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3821	raw := NoMethod(*s)
3822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3823}
3824
3825func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
3826	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
3827	var s1 struct {
3828		Confidence gensupport.JSONFloat64 `json:"confidence"`
3829		*NoMethod
3830	}
3831	s1.NoMethod = (*NoMethod)(s)
3832	if err := json.Unmarshal(data, &s1); err != nil {
3833		return err
3834	}
3835	s.Confidence = float64(s1.Confidence)
3836	return nil
3837}
3838
3839// GoogleCloudVisionV1p1beta1TextAnnotationTextProperty: Additional
3840// information detected on the structural component.
3841type GoogleCloudVisionV1p1beta1TextAnnotationTextProperty struct {
3842	// DetectedBreak: Detected start or end of a text segment.
3843	DetectedBreak *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
3844
3845	// DetectedLanguages: A list of detected languages together with
3846	// confidence.
3847	DetectedLanguages []*GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
3848
3849	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
3850	// unconditionally include in API requests. By default, fields with
3851	// empty or default values are omitted from API requests. However, any
3852	// non-pointer, non-interface field appearing in ForceSendFields will be
3853	// sent to the server regardless of whether the field is empty or not.
3854	// This may be used to include empty fields in Patch requests.
3855	ForceSendFields []string `json:"-"`
3856
3857	// NullFields is a list of field names (e.g. "DetectedBreak") to include
3858	// in API requests with the JSON null value. By default, fields with
3859	// empty values are omitted from API requests. However, any field with
3860	// an empty value appearing in NullFields will be sent to the server as
3861	// null. It is an error if a field in this list has a non-empty value.
3862	// This may be used to include null fields in Patch requests.
3863	NullFields []string `json:"-"`
3864}
3865
3866func (s *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
3867	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationTextProperty
3868	raw := NoMethod(*s)
3869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3870}
3871
3872// GoogleCloudVisionV1p1beta1Vertex: A vertex represents a 2D point in
3873// the image. NOTE: the vertex coordinates are in the same scale as the
3874// original image.
3875type GoogleCloudVisionV1p1beta1Vertex struct {
3876	// X: X coordinate.
3877	X int64 `json:"x,omitempty"`
3878
3879	// Y: Y coordinate.
3880	Y int64 `json:"y,omitempty"`
3881
3882	// ForceSendFields is a list of field names (e.g. "X") to
3883	// unconditionally include in API requests. By default, fields with
3884	// empty or default values are omitted from API requests. However, any
3885	// non-pointer, non-interface field appearing in ForceSendFields will be
3886	// sent to the server regardless of whether the field is empty or not.
3887	// This may be used to include empty fields in Patch requests.
3888	ForceSendFields []string `json:"-"`
3889
3890	// NullFields is a list of field names (e.g. "X") to include in API
3891	// requests with the JSON null value. By default, fields with empty
3892	// values are omitted from API requests. However, any field with an
3893	// empty value appearing in NullFields will be sent to the server as
3894	// null. It is an error if a field in this list has a non-empty value.
3895	// This may be used to include null fields in Patch requests.
3896	NullFields []string `json:"-"`
3897}
3898
3899func (s *GoogleCloudVisionV1p1beta1Vertex) MarshalJSON() ([]byte, error) {
3900	type NoMethod GoogleCloudVisionV1p1beta1Vertex
3901	raw := NoMethod(*s)
3902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3903}
3904
3905// GoogleCloudVisionV1p1beta1WebDetection: Relevant information for the
3906// image from the Internet.
3907type GoogleCloudVisionV1p1beta1WebDetection struct {
3908	// BestGuessLabels: The service's best guess as to the topic of the
3909	// request image. Inferred from similar images on the open web.
3910	BestGuessLabels []*GoogleCloudVisionV1p1beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
3911
3912	// FullMatchingImages: Fully matching images from the Internet. Can
3913	// include resized copies of the query image.
3914	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
3915
3916	// PagesWithMatchingImages: Web pages containing the matching images
3917	// from the Internet.
3918	PagesWithMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
3919
3920	// PartialMatchingImages: Partial matching images from the Internet.
3921	// Those images are similar enough to share some key-point features. For
3922	// example an original image will likely have partial matching for its
3923	// crops.
3924	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
3925
3926	// VisuallySimilarImages: The visually similar image results.
3927	VisuallySimilarImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
3928
3929	// WebEntities: Deduced entities from similar images on the Internet.
3930	WebEntities []*GoogleCloudVisionV1p1beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
3931
3932	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
3933	// unconditionally include in API requests. By default, fields with
3934	// empty or default values are omitted from API requests. However, any
3935	// non-pointer, non-interface field appearing in ForceSendFields will be
3936	// sent to the server regardless of whether the field is empty or not.
3937	// This may be used to include empty fields in Patch requests.
3938	ForceSendFields []string `json:"-"`
3939
3940	// NullFields is a list of field names (e.g. "BestGuessLabels") to
3941	// include in API requests with the JSON null value. By default, fields
3942	// with empty values are omitted from API requests. However, any field
3943	// with an empty value appearing in NullFields will be sent to the
3944	// server as null. It is an error if a field in this list has a
3945	// non-empty value. This may be used to include null fields in Patch
3946	// requests.
3947	NullFields []string `json:"-"`
3948}
3949
3950func (s *GoogleCloudVisionV1p1beta1WebDetection) MarshalJSON() ([]byte, error) {
3951	type NoMethod GoogleCloudVisionV1p1beta1WebDetection
3952	raw := NoMethod(*s)
3953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3954}
3955
3956// GoogleCloudVisionV1p1beta1WebDetectionWebEntity: Entity deduced from
3957// similar images on the Internet.
3958type GoogleCloudVisionV1p1beta1WebDetectionWebEntity struct {
3959	// Description: Canonical description of the entity, in English.
3960	Description string `json:"description,omitempty"`
3961
3962	// EntityId: Opaque entity ID.
3963	EntityId string `json:"entityId,omitempty"`
3964
3965	// Score: Overall relevancy score for the entity. Not normalized and not
3966	// comparable across different image queries.
3967	Score float64 `json:"score,omitempty"`
3968
3969	// ForceSendFields is a list of field names (e.g. "Description") to
3970	// unconditionally include in API requests. By default, fields with
3971	// empty or default values are omitted from API requests. However, any
3972	// non-pointer, non-interface field appearing in ForceSendFields will be
3973	// sent to the server regardless of whether the field is empty or not.
3974	// This may be used to include empty fields in Patch requests.
3975	ForceSendFields []string `json:"-"`
3976
3977	// NullFields is a list of field names (e.g. "Description") to include
3978	// in API requests with the JSON null value. By default, fields with
3979	// empty values are omitted from API requests. However, any field with
3980	// an empty value appearing in NullFields will be sent to the server as
3981	// null. It is an error if a field in this list has a non-empty value.
3982	// This may be used to include null fields in Patch requests.
3983	NullFields []string `json:"-"`
3984}
3985
3986func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
3987	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3988	raw := NoMethod(*s)
3989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3990}
3991
3992func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
3993	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
3994	var s1 struct {
3995		Score gensupport.JSONFloat64 `json:"score"`
3996		*NoMethod
3997	}
3998	s1.NoMethod = (*NoMethod)(s)
3999	if err := json.Unmarshal(data, &s1); err != nil {
4000		return err
4001	}
4002	s.Score = float64(s1.Score)
4003	return nil
4004}
4005
4006// GoogleCloudVisionV1p1beta1WebDetectionWebImage: Metadata for online
4007// images.
4008type GoogleCloudVisionV1p1beta1WebDetectionWebImage struct {
4009	// Score: (Deprecated) Overall relevancy score for the image.
4010	Score float64 `json:"score,omitempty"`
4011
4012	// Url: The result image URL.
4013	Url string `json:"url,omitempty"`
4014
4015	// ForceSendFields is a list of field names (e.g. "Score") to
4016	// unconditionally include in API requests. By default, fields with
4017	// empty or default values are omitted from API requests. However, any
4018	// non-pointer, non-interface field appearing in ForceSendFields will be
4019	// sent to the server regardless of whether the field is empty or not.
4020	// This may be used to include empty fields in Patch requests.
4021	ForceSendFields []string `json:"-"`
4022
4023	// NullFields is a list of field names (e.g. "Score") to include in API
4024	// requests with the JSON null value. By default, fields with empty
4025	// values are omitted from API requests. However, any field with an
4026	// empty value appearing in NullFields will be sent to the server as
4027	// null. It is an error if a field in this list has a non-empty value.
4028	// This may be used to include null fields in Patch requests.
4029	NullFields []string `json:"-"`
4030}
4031
4032func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
4033	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4034	raw := NoMethod(*s)
4035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4036}
4037
4038func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
4039	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4040	var s1 struct {
4041		Score gensupport.JSONFloat64 `json:"score"`
4042		*NoMethod
4043	}
4044	s1.NoMethod = (*NoMethod)(s)
4045	if err := json.Unmarshal(data, &s1); err != nil {
4046		return err
4047	}
4048	s.Score = float64(s1.Score)
4049	return nil
4050}
4051
4052// GoogleCloudVisionV1p1beta1WebDetectionWebLabel: Label to provide
4053// extra metadata for the web detection.
4054type GoogleCloudVisionV1p1beta1WebDetectionWebLabel struct {
4055	// Label: Label for extra metadata.
4056	Label string `json:"label,omitempty"`
4057
4058	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
4059	// or "sr-Latn". For more information, see
4060	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
4061	LanguageCode string `json:"languageCode,omitempty"`
4062
4063	// ForceSendFields is a list of field names (e.g. "Label") to
4064	// unconditionally include in API requests. By default, fields with
4065	// empty or default values are omitted from API requests. However, any
4066	// non-pointer, non-interface field appearing in ForceSendFields will be
4067	// sent to the server regardless of whether the field is empty or not.
4068	// This may be used to include empty fields in Patch requests.
4069	ForceSendFields []string `json:"-"`
4070
4071	// NullFields is a list of field names (e.g. "Label") to include in API
4072	// requests with the JSON null value. By default, fields with empty
4073	// values are omitted from API requests. However, any field with an
4074	// empty value appearing in NullFields will be sent to the server as
4075	// null. It is an error if a field in this list has a non-empty value.
4076	// This may be used to include null fields in Patch requests.
4077	NullFields []string `json:"-"`
4078}
4079
4080func (s *GoogleCloudVisionV1p1beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
4081	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebLabel
4082	raw := NoMethod(*s)
4083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4084}
4085
4086// GoogleCloudVisionV1p1beta1WebDetectionWebPage: Metadata for web
4087// pages.
4088type GoogleCloudVisionV1p1beta1WebDetectionWebPage struct {
4089	// FullMatchingImages: Fully matching images on the page. Can include
4090	// resized copies of the query image.
4091	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
4092
4093	// PageTitle: Title for the web page, may contain HTML markups.
4094	PageTitle string `json:"pageTitle,omitempty"`
4095
4096	// PartialMatchingImages: Partial matching images on the page. Those
4097	// images are similar enough to share some key-point features. For
4098	// example an original image will likely have partial matching for its
4099	// crops.
4100	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
4101
4102	// Score: (Deprecated) Overall relevancy score for the web page.
4103	Score float64 `json:"score,omitempty"`
4104
4105	// Url: The result web page URL.
4106	Url string `json:"url,omitempty"`
4107
4108	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
4109	// to unconditionally include in API requests. By default, fields with
4110	// empty or default values are omitted from API requests. However, any
4111	// non-pointer, non-interface field appearing in ForceSendFields will be
4112	// sent to the server regardless of whether the field is empty or not.
4113	// This may be used to include empty fields in Patch requests.
4114	ForceSendFields []string `json:"-"`
4115
4116	// NullFields is a list of field names (e.g. "FullMatchingImages") to
4117	// include in API requests with the JSON null value. By default, fields
4118	// with empty values are omitted from API requests. However, any field
4119	// with an empty value appearing in NullFields will be sent to the
4120	// server as null. It is an error if a field in this list has a
4121	// non-empty value. This may be used to include null fields in Patch
4122	// requests.
4123	NullFields []string `json:"-"`
4124}
4125
4126func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
4127	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4128	raw := NoMethod(*s)
4129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4130}
4131
4132func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
4133	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4134	var s1 struct {
4135		Score gensupport.JSONFloat64 `json:"score"`
4136		*NoMethod
4137	}
4138	s1.NoMethod = (*NoMethod)(s)
4139	if err := json.Unmarshal(data, &s1); err != nil {
4140		return err
4141	}
4142	s.Score = float64(s1.Score)
4143	return nil
4144}
4145
4146// GoogleCloudVisionV1p1beta1Word: A word representation.
4147type GoogleCloudVisionV1p1beta1Word struct {
4148	// BoundingBox: The bounding box for the word. The vertices are in the
4149	// order of top-left, top-right, bottom-right, bottom-left. When a
4150	// rotation of the bounding box is detected the rotation is represented
4151	// as around the top-left corner as defined when the text is read in the
4152	// 'natural' orientation. For example: * when the text is horizontal it
4153	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
4154	// around the top-left corner it becomes: 2----3 | | 1----0 and the
4155	// vertex order will still be (0, 1, 2, 3).
4156	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
4157
4158	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
4159	Confidence float64 `json:"confidence,omitempty"`
4160
4161	// Property: Additional information detected for the word.
4162	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
4163
4164	// Symbols: List of symbols in the word. The order of the symbols
4165	// follows the natural reading order.
4166	Symbols []*GoogleCloudVisionV1p1beta1Symbol `json:"symbols,omitempty"`
4167
4168	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
4169	// unconditionally include in API requests. By default, fields with
4170	// empty or default values are omitted from API requests. However, any
4171	// non-pointer, non-interface field appearing in ForceSendFields will be
4172	// sent to the server regardless of whether the field is empty or not.
4173	// This may be used to include empty fields in Patch requests.
4174	ForceSendFields []string `json:"-"`
4175
4176	// NullFields is a list of field names (e.g. "BoundingBox") to include
4177	// in API requests with the JSON null value. By default, fields with
4178	// empty values are omitted from API requests. However, any field with
4179	// an empty value appearing in NullFields will be sent to the server as
4180	// null. It is an error if a field in this list has a non-empty value.
4181	// This may be used to include null fields in Patch requests.
4182	NullFields []string `json:"-"`
4183}
4184
4185func (s *GoogleCloudVisionV1p1beta1Word) MarshalJSON() ([]byte, error) {
4186	type NoMethod GoogleCloudVisionV1p1beta1Word
4187	raw := NoMethod(*s)
4188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4189}
4190
4191func (s *GoogleCloudVisionV1p1beta1Word) UnmarshalJSON(data []byte) error {
4192	type NoMethod GoogleCloudVisionV1p1beta1Word
4193	var s1 struct {
4194		Confidence gensupport.JSONFloat64 `json:"confidence"`
4195		*NoMethod
4196	}
4197	s1.NoMethod = (*NoMethod)(s)
4198	if err := json.Unmarshal(data, &s1); err != nil {
4199		return err
4200	}
4201	s.Confidence = float64(s1.Confidence)
4202	return nil
4203}
4204
4205// GoogleCloudVisionV1p2beta1AnnotateFileResponse: Response to a single
4206// file annotation request. A file may contain one or more images, which
4207// individually have their own responses.
4208type GoogleCloudVisionV1p2beta1AnnotateFileResponse struct {
4209	// Error: If set, represents the error message for the failed request.
4210	// The `responses` field will not be set in this case.
4211	Error *Status `json:"error,omitempty"`
4212
4213	// InputConfig: Information about the file for which this response is
4214	// generated.
4215	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
4216
4217	// Responses: Individual responses to images found within the file. This
4218	// field will be empty if the `error` field is set.
4219	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
4220
4221	// TotalPages: This field gives the total number of pages in the file.
4222	TotalPages int64 `json:"totalPages,omitempty"`
4223
4224	// ForceSendFields is a list of field names (e.g. "Error") to
4225	// unconditionally include in API requests. By default, fields with
4226	// empty or default values are omitted from API requests. However, any
4227	// non-pointer, non-interface field appearing in ForceSendFields will be
4228	// sent to the server regardless of whether the field is empty or not.
4229	// This may be used to include empty fields in Patch requests.
4230	ForceSendFields []string `json:"-"`
4231
4232	// NullFields is a list of field names (e.g. "Error") to include in API
4233	// requests with the JSON null value. By default, fields with empty
4234	// values are omitted from API requests. However, any field with an
4235	// empty value appearing in NullFields will be sent to the server as
4236	// null. It is an error if a field in this list has a non-empty value.
4237	// This may be used to include null fields in Patch requests.
4238	NullFields []string `json:"-"`
4239}
4240
4241func (s *GoogleCloudVisionV1p2beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
4242	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileResponse
4243	raw := NoMethod(*s)
4244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4245}
4246
4247// GoogleCloudVisionV1p2beta1AnnotateImageResponse: Response to an image
4248// annotation request.
4249type GoogleCloudVisionV1p2beta1AnnotateImageResponse struct {
4250	// Context: If present, contextual information is needed to understand
4251	// where this image comes from.
4252	Context *GoogleCloudVisionV1p2beta1ImageAnnotationContext `json:"context,omitempty"`
4253
4254	// CropHintsAnnotation: If present, crop hints have completed
4255	// successfully.
4256	CropHintsAnnotation *GoogleCloudVisionV1p2beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
4257
4258	// Error: If set, represents the error message for the operation. Note
4259	// that filled-in image annotations are guaranteed to be correct, even
4260	// when `error` is set.
4261	Error *Status `json:"error,omitempty"`
4262
4263	// FaceAnnotations: If present, face detection has completed
4264	// successfully.
4265	FaceAnnotations []*GoogleCloudVisionV1p2beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
4266
4267	// FullTextAnnotation: If present, text (OCR) detection or document
4268	// (OCR) text detection has completed successfully. This annotation
4269	// provides the structural hierarchy for the OCR detected text.
4270	FullTextAnnotation *GoogleCloudVisionV1p2beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
4271
4272	// ImagePropertiesAnnotation: If present, image properties were
4273	// extracted successfully.
4274	ImagePropertiesAnnotation *GoogleCloudVisionV1p2beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
4275
4276	// LabelAnnotations: If present, label detection has completed
4277	// successfully.
4278	LabelAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
4279
4280	// LandmarkAnnotations: If present, landmark detection has completed
4281	// successfully.
4282	LandmarkAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
4283
4284	// LocalizedObjectAnnotations: If present, localized object detection
4285	// has completed successfully. This will be sorted descending by
4286	// confidence score.
4287	LocalizedObjectAnnotations []*GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
4288
4289	// LogoAnnotations: If present, logo detection has completed
4290	// successfully.
4291	LogoAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
4292
4293	// ProductSearchResults: If present, product search has completed
4294	// successfully.
4295	ProductSearchResults *GoogleCloudVisionV1p2beta1ProductSearchResults `json:"productSearchResults,omitempty"`
4296
4297	// SafeSearchAnnotation: If present, safe-search annotation has
4298	// completed successfully.
4299	SafeSearchAnnotation *GoogleCloudVisionV1p2beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
4300
4301	// TextAnnotations: If present, text (OCR) detection has completed
4302	// successfully.
4303	TextAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"textAnnotations,omitempty"`
4304
4305	// WebDetection: If present, web detection has completed successfully.
4306	WebDetection *GoogleCloudVisionV1p2beta1WebDetection `json:"webDetection,omitempty"`
4307
4308	// ForceSendFields is a list of field names (e.g. "Context") to
4309	// unconditionally include in API requests. By default, fields with
4310	// empty or default values are omitted from API requests. However, any
4311	// non-pointer, non-interface field appearing in ForceSendFields will be
4312	// sent to the server regardless of whether the field is empty or not.
4313	// This may be used to include empty fields in Patch requests.
4314	ForceSendFields []string `json:"-"`
4315
4316	// NullFields is a list of field names (e.g. "Context") to include in
4317	// API requests with the JSON null value. By default, fields with empty
4318	// values are omitted from API requests. However, any field with an
4319	// empty value appearing in NullFields will be sent to the server as
4320	// null. It is an error if a field in this list has a non-empty value.
4321	// This may be used to include null fields in Patch requests.
4322	NullFields []string `json:"-"`
4323}
4324
4325func (s *GoogleCloudVisionV1p2beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
4326	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageResponse
4327	raw := NoMethod(*s)
4328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4329}
4330
4331// GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse: The response for
4332// a single offline file annotation request.
4333type GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse struct {
4334	// OutputConfig: The output location and metadata from
4335	// AsyncAnnotateFileRequest.
4336	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4337
4338	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4339	// unconditionally include in API requests. By default, fields with
4340	// empty or default values are omitted from API requests. However, any
4341	// non-pointer, non-interface field appearing in ForceSendFields will be
4342	// sent to the server regardless of whether the field is empty or not.
4343	// This may be used to include empty fields in Patch requests.
4344	ForceSendFields []string `json:"-"`
4345
4346	// NullFields is a list of field names (e.g. "OutputConfig") to include
4347	// in API requests with the JSON null value. By default, fields with
4348	// empty values are omitted from API requests. However, any field with
4349	// an empty value appearing in NullFields will be sent to the server as
4350	// null. It is an error if a field in this list has a non-empty value.
4351	// This may be used to include null fields in Patch requests.
4352	NullFields []string `json:"-"`
4353}
4354
4355func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
4356	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse
4357	raw := NoMethod(*s)
4358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4359}
4360
4361// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse: Response
4362// to an async batch file annotation request.
4363type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse struct {
4364	// Responses: The list of file annotation responses, one for each
4365	// request in AsyncBatchAnnotateFilesRequest.
4366	Responses []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
4367
4368	// ForceSendFields is a list of field names (e.g. "Responses") to
4369	// unconditionally include in API requests. By default, fields with
4370	// empty or default values are omitted from API requests. However, any
4371	// non-pointer, non-interface field appearing in ForceSendFields will be
4372	// sent to the server regardless of whether the field is empty or not.
4373	// This may be used to include empty fields in Patch requests.
4374	ForceSendFields []string `json:"-"`
4375
4376	// NullFields is a list of field names (e.g. "Responses") to include in
4377	// API requests with the JSON null value. By default, fields with empty
4378	// values are omitted from API requests. However, any field with an
4379	// empty value appearing in NullFields will be sent to the server as
4380	// null. It is an error if a field in this list has a non-empty value.
4381	// This may be used to include null fields in Patch requests.
4382	NullFields []string `json:"-"`
4383}
4384
4385func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4386	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse
4387	raw := NoMethod(*s)
4388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4389}
4390
4391// GoogleCloudVisionV1p2beta1Block: Logical element on the page.
4392type GoogleCloudVisionV1p2beta1Block struct {
4393	// BlockType: Detected block type (text, image etc) for this block.
4394	//
4395	// Possible values:
4396	//   "UNKNOWN" - Unknown block type.
4397	//   "TEXT" - Regular text block.
4398	//   "TABLE" - Table block.
4399	//   "PICTURE" - Image block.
4400	//   "RULER" - Horizontal/vertical line box.
4401	//   "BARCODE" - Barcode block.
4402	BlockType string `json:"blockType,omitempty"`
4403
4404	// BoundingBox: The bounding box for the block. The vertices are in the
4405	// order of top-left, top-right, bottom-right, bottom-left. When a
4406	// rotation of the bounding box is detected the rotation is represented
4407	// as around the top-left corner as defined when the text is read in the
4408	// 'natural' orientation. For example: * when the text is horizontal it
4409	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
4410	// around the top-left corner it becomes: 2----3 | | 1----0 and the
4411	// vertex order will still be (0, 1, 2, 3).
4412	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
4413
4414	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
4415	Confidence float64 `json:"confidence,omitempty"`
4416
4417	// Paragraphs: List of paragraphs in this block (if this blocks is of
4418	// type text).
4419	Paragraphs []*GoogleCloudVisionV1p2beta1Paragraph `json:"paragraphs,omitempty"`
4420
4421	// Property: Additional information detected for the block.
4422	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
4423
4424	// ForceSendFields is a list of field names (e.g. "BlockType") 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. "BlockType") to include in
4433	// API requests with the JSON null value. By default, fields with empty
4434	// values are omitted from API requests. However, any field with an
4435	// 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 *GoogleCloudVisionV1p2beta1Block) MarshalJSON() ([]byte, error) {
4442	type NoMethod GoogleCloudVisionV1p2beta1Block
4443	raw := NoMethod(*s)
4444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4445}
4446
4447func (s *GoogleCloudVisionV1p2beta1Block) UnmarshalJSON(data []byte) error {
4448	type NoMethod GoogleCloudVisionV1p2beta1Block
4449	var s1 struct {
4450		Confidence gensupport.JSONFloat64 `json:"confidence"`
4451		*NoMethod
4452	}
4453	s1.NoMethod = (*NoMethod)(s)
4454	if err := json.Unmarshal(data, &s1); err != nil {
4455		return err
4456	}
4457	s.Confidence = float64(s1.Confidence)
4458	return nil
4459}
4460
4461// GoogleCloudVisionV1p2beta1BoundingPoly: A bounding polygon for the
4462// detected image annotation.
4463type GoogleCloudVisionV1p2beta1BoundingPoly struct {
4464	// NormalizedVertices: The bounding polygon normalized vertices.
4465	NormalizedVertices []*GoogleCloudVisionV1p2beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
4466
4467	// Vertices: The bounding polygon vertices.
4468	Vertices []*GoogleCloudVisionV1p2beta1Vertex `json:"vertices,omitempty"`
4469
4470	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
4471	// to unconditionally include in API requests. By default, fields with
4472	// empty or default values are omitted from API requests. However, any
4473	// non-pointer, non-interface field appearing in ForceSendFields will be
4474	// sent to the server regardless of whether the field is empty or not.
4475	// This may be used to include empty fields in Patch requests.
4476	ForceSendFields []string `json:"-"`
4477
4478	// NullFields is a list of field names (e.g. "NormalizedVertices") to
4479	// include in API requests with the JSON null value. By default, fields
4480	// with empty values are omitted from API requests. However, any field
4481	// with an empty value appearing in NullFields will be sent to the
4482	// server as null. It is an error if a field in this list has a
4483	// non-empty value. This may be used to include null fields in Patch
4484	// requests.
4485	NullFields []string `json:"-"`
4486}
4487
4488func (s *GoogleCloudVisionV1p2beta1BoundingPoly) MarshalJSON() ([]byte, error) {
4489	type NoMethod GoogleCloudVisionV1p2beta1BoundingPoly
4490	raw := NoMethod(*s)
4491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4492}
4493
4494// GoogleCloudVisionV1p2beta1ColorInfo: Color information consists of
4495// RGB channels, score, and the fraction of the image that the color
4496// occupies in the image.
4497type GoogleCloudVisionV1p2beta1ColorInfo struct {
4498	// Color: RGB components of the color.
4499	Color *Color `json:"color,omitempty"`
4500
4501	// PixelFraction: The fraction of pixels the color occupies in the
4502	// image. Value in range [0, 1].
4503	PixelFraction float64 `json:"pixelFraction,omitempty"`
4504
4505	// Score: Image-specific score for this color. Value in range [0, 1].
4506	Score float64 `json:"score,omitempty"`
4507
4508	// ForceSendFields is a list of field names (e.g. "Color") to
4509	// unconditionally include in API requests. By default, fields with
4510	// empty or default values are omitted from API requests. However, any
4511	// non-pointer, non-interface field appearing in ForceSendFields will be
4512	// sent to the server regardless of whether the field is empty or not.
4513	// This may be used to include empty fields in Patch requests.
4514	ForceSendFields []string `json:"-"`
4515
4516	// NullFields is a list of field names (e.g. "Color") to include in API
4517	// requests with the JSON null value. By default, fields with empty
4518	// values are omitted from API requests. However, any field with an
4519	// empty value appearing in NullFields will be sent to the server as
4520	// null. It is an error if a field in this list has a non-empty value.
4521	// This may be used to include null fields in Patch requests.
4522	NullFields []string `json:"-"`
4523}
4524
4525func (s *GoogleCloudVisionV1p2beta1ColorInfo) MarshalJSON() ([]byte, error) {
4526	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4527	raw := NoMethod(*s)
4528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4529}
4530
4531func (s *GoogleCloudVisionV1p2beta1ColorInfo) UnmarshalJSON(data []byte) error {
4532	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4533	var s1 struct {
4534		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
4535		Score         gensupport.JSONFloat64 `json:"score"`
4536		*NoMethod
4537	}
4538	s1.NoMethod = (*NoMethod)(s)
4539	if err := json.Unmarshal(data, &s1); err != nil {
4540		return err
4541	}
4542	s.PixelFraction = float64(s1.PixelFraction)
4543	s.Score = float64(s1.Score)
4544	return nil
4545}
4546
4547// GoogleCloudVisionV1p2beta1CropHint: Single crop hint that is used to
4548// generate a new crop when serving an image.
4549type GoogleCloudVisionV1p2beta1CropHint struct {
4550	// BoundingPoly: The bounding polygon for the crop region. The
4551	// coordinates of the bounding box are in the original image's scale.
4552	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4553
4554	// Confidence: Confidence of this being a salient region. Range [0, 1].
4555	Confidence float64 `json:"confidence,omitempty"`
4556
4557	// ImportanceFraction: Fraction of importance of this salient region
4558	// with respect to the original image.
4559	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
4560
4561	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4562	// unconditionally include in API requests. By default, fields with
4563	// empty or default values are omitted from API requests. However, any
4564	// non-pointer, non-interface field appearing in ForceSendFields will be
4565	// sent to the server regardless of whether the field is empty or not.
4566	// This may be used to include empty fields in Patch requests.
4567	ForceSendFields []string `json:"-"`
4568
4569	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4570	// in API requests with the JSON null value. By default, fields with
4571	// empty values are omitted from API requests. However, any field with
4572	// an empty value appearing in NullFields will be sent to the server as
4573	// null. It is an error if a field in this list has a non-empty value.
4574	// This may be used to include null fields in Patch requests.
4575	NullFields []string `json:"-"`
4576}
4577
4578func (s *GoogleCloudVisionV1p2beta1CropHint) MarshalJSON() ([]byte, error) {
4579	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4580	raw := NoMethod(*s)
4581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4582}
4583
4584func (s *GoogleCloudVisionV1p2beta1CropHint) UnmarshalJSON(data []byte) error {
4585	type NoMethod GoogleCloudVisionV1p2beta1CropHint
4586	var s1 struct {
4587		Confidence         gensupport.JSONFloat64 `json:"confidence"`
4588		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
4589		*NoMethod
4590	}
4591	s1.NoMethod = (*NoMethod)(s)
4592	if err := json.Unmarshal(data, &s1); err != nil {
4593		return err
4594	}
4595	s.Confidence = float64(s1.Confidence)
4596	s.ImportanceFraction = float64(s1.ImportanceFraction)
4597	return nil
4598}
4599
4600// GoogleCloudVisionV1p2beta1CropHintsAnnotation: Set of crop hints that
4601// are used to generate new crops when serving images.
4602type GoogleCloudVisionV1p2beta1CropHintsAnnotation struct {
4603	// CropHints: Crop hint results.
4604	CropHints []*GoogleCloudVisionV1p2beta1CropHint `json:"cropHints,omitempty"`
4605
4606	// ForceSendFields is a list of field names (e.g. "CropHints") to
4607	// unconditionally include in API requests. By default, fields with
4608	// empty or default values are omitted from API requests. However, any
4609	// non-pointer, non-interface field appearing in ForceSendFields will be
4610	// sent to the server regardless of whether the field is empty or not.
4611	// This may be used to include empty fields in Patch requests.
4612	ForceSendFields []string `json:"-"`
4613
4614	// NullFields is a list of field names (e.g. "CropHints") to include in
4615	// API requests with the JSON null value. By default, fields with empty
4616	// values are omitted from API requests. However, any field with an
4617	// empty value appearing in NullFields will be sent to the server as
4618	// null. It is an error if a field in this list has a non-empty value.
4619	// This may be used to include null fields in Patch requests.
4620	NullFields []string `json:"-"`
4621}
4622
4623func (s *GoogleCloudVisionV1p2beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
4624	type NoMethod GoogleCloudVisionV1p2beta1CropHintsAnnotation
4625	raw := NoMethod(*s)
4626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4627}
4628
4629// GoogleCloudVisionV1p2beta1DominantColorsAnnotation: Set of dominant
4630// colors and their corresponding scores.
4631type GoogleCloudVisionV1p2beta1DominantColorsAnnotation struct {
4632	// Colors: RGB color values with their score and pixel fraction.
4633	Colors []*GoogleCloudVisionV1p2beta1ColorInfo `json:"colors,omitempty"`
4634
4635	// ForceSendFields is a list of field names (e.g. "Colors") to
4636	// unconditionally include in API requests. By default, fields with
4637	// empty or default values are omitted from API requests. However, any
4638	// non-pointer, non-interface field appearing in ForceSendFields will be
4639	// sent to the server regardless of whether the field is empty or not.
4640	// This may be used to include empty fields in Patch requests.
4641	ForceSendFields []string `json:"-"`
4642
4643	// NullFields is a list of field names (e.g. "Colors") to include in API
4644	// requests with the JSON null value. By default, fields with empty
4645	// values are omitted from API requests. However, any field with an
4646	// empty value appearing in NullFields will be sent to the server as
4647	// null. It is an error if a field in this list has a non-empty value.
4648	// This may be used to include null fields in Patch requests.
4649	NullFields []string `json:"-"`
4650}
4651
4652func (s *GoogleCloudVisionV1p2beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
4653	type NoMethod GoogleCloudVisionV1p2beta1DominantColorsAnnotation
4654	raw := NoMethod(*s)
4655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4656}
4657
4658// GoogleCloudVisionV1p2beta1EntityAnnotation: Set of detected entity
4659// features.
4660type GoogleCloudVisionV1p2beta1EntityAnnotation struct {
4661	// BoundingPoly: Image region to which this entity belongs. Not produced
4662	// for `LABEL_DETECTION` features.
4663	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4664
4665	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
4666	// entity detection in an image. For example, for an image in which the
4667	// "Eiffel Tower" entity is detected, this field represents the
4668	// confidence that there is a tower in the query image. Range [0, 1].
4669	Confidence float64 `json:"confidence,omitempty"`
4670
4671	// Description: Entity textual description, expressed in its `locale`
4672	// language.
4673	Description string `json:"description,omitempty"`
4674
4675	// Locale: The language code for the locale in which the entity textual
4676	// `description` is expressed.
4677	Locale string `json:"locale,omitempty"`
4678
4679	// Locations: The location information for the detected entity. Multiple
4680	// `LocationInfo` elements can be present because one location may
4681	// indicate the location of the scene in the image, and another location
4682	// may indicate the location of the place where the image was taken.
4683	// Location information is usually present for landmarks.
4684	Locations []*GoogleCloudVisionV1p2beta1LocationInfo `json:"locations,omitempty"`
4685
4686	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
4687	// Graph Search API (https://developers.google.com/knowledge-graph/).
4688	Mid string `json:"mid,omitempty"`
4689
4690	// Properties: Some entities may have optional user-supplied `Property`
4691	// (name/value) fields, such a score or string that qualifies the
4692	// entity.
4693	Properties []*GoogleCloudVisionV1p2beta1Property `json:"properties,omitempty"`
4694
4695	// Score: Overall score of the result. Range [0, 1].
4696	Score float64 `json:"score,omitempty"`
4697
4698	// Topicality: The relevancy of the ICA (Image Content Annotation) label
4699	// to the image. For example, the relevancy of "tower" is likely higher
4700	// to an image containing the detected "Eiffel Tower" than to an image
4701	// containing a detected distant towering building, even though the
4702	// confidence that there is a tower in each image may be the same. Range
4703	// [0, 1].
4704	Topicality float64 `json:"topicality,omitempty"`
4705
4706	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4707	// unconditionally include in API requests. By default, fields with
4708	// empty or default values are omitted from API requests. However, any
4709	// non-pointer, non-interface field appearing in ForceSendFields will be
4710	// sent to the server regardless of whether the field is empty or not.
4711	// This may be used to include empty fields in Patch requests.
4712	ForceSendFields []string `json:"-"`
4713
4714	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4715	// in API requests with the JSON null value. By default, fields with
4716	// empty values are omitted from API requests. However, any field with
4717	// an empty value appearing in NullFields will be sent to the server as
4718	// null. It is an error if a field in this list has a non-empty value.
4719	// This may be used to include null fields in Patch requests.
4720	NullFields []string `json:"-"`
4721}
4722
4723func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
4724	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4725	raw := NoMethod(*s)
4726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4727}
4728
4729func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
4730	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
4731	var s1 struct {
4732		Confidence gensupport.JSONFloat64 `json:"confidence"`
4733		Score      gensupport.JSONFloat64 `json:"score"`
4734		Topicality gensupport.JSONFloat64 `json:"topicality"`
4735		*NoMethod
4736	}
4737	s1.NoMethod = (*NoMethod)(s)
4738	if err := json.Unmarshal(data, &s1); err != nil {
4739		return err
4740	}
4741	s.Confidence = float64(s1.Confidence)
4742	s.Score = float64(s1.Score)
4743	s.Topicality = float64(s1.Topicality)
4744	return nil
4745}
4746
4747// GoogleCloudVisionV1p2beta1FaceAnnotation: A face annotation object
4748// contains the results of face detection.
4749type GoogleCloudVisionV1p2beta1FaceAnnotation struct {
4750	// AngerLikelihood: Anger likelihood.
4751	//
4752	// Possible values:
4753	//   "UNKNOWN" - Unknown likelihood.
4754	//   "VERY_UNLIKELY" - It is very unlikely.
4755	//   "UNLIKELY" - It is unlikely.
4756	//   "POSSIBLE" - It is possible.
4757	//   "LIKELY" - It is likely.
4758	//   "VERY_LIKELY" - It is very likely.
4759	AngerLikelihood string `json:"angerLikelihood,omitempty"`
4760
4761	// BlurredLikelihood: Blurred likelihood.
4762	//
4763	// Possible values:
4764	//   "UNKNOWN" - Unknown likelihood.
4765	//   "VERY_UNLIKELY" - It is very unlikely.
4766	//   "UNLIKELY" - It is unlikely.
4767	//   "POSSIBLE" - It is possible.
4768	//   "LIKELY" - It is likely.
4769	//   "VERY_LIKELY" - It is very likely.
4770	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
4771
4772	// BoundingPoly: The bounding polygon around the face. The coordinates
4773	// of the bounding box are in the original image's scale. The bounding
4774	// box is computed to "frame" the face in accordance with human
4775	// expectations. It is based on the landmarker results. Note that one or
4776	// more x and/or y coordinates may not be generated in the
4777	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
4778	// appears in the image to be annotated.
4779	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4780
4781	// DetectionConfidence: Detection confidence. Range [0, 1].
4782	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
4783
4784	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
4785	// than the `boundingPoly`, and encloses only the skin part of the face.
4786	// Typically, it is used to eliminate the face from any image analysis
4787	// that detects the "amount of skin" visible in an image. It is not
4788	// based on the landmarker results, only on the initial face detection,
4789	// hence the fd (face detection) prefix.
4790	FdBoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
4791
4792	// HeadwearLikelihood: Headwear likelihood.
4793	//
4794	// Possible values:
4795	//   "UNKNOWN" - Unknown likelihood.
4796	//   "VERY_UNLIKELY" - It is very unlikely.
4797	//   "UNLIKELY" - It is unlikely.
4798	//   "POSSIBLE" - It is possible.
4799	//   "LIKELY" - It is likely.
4800	//   "VERY_LIKELY" - It is very likely.
4801	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
4802
4803	// JoyLikelihood: Joy likelihood.
4804	//
4805	// Possible values:
4806	//   "UNKNOWN" - Unknown likelihood.
4807	//   "VERY_UNLIKELY" - It is very unlikely.
4808	//   "UNLIKELY" - It is unlikely.
4809	//   "POSSIBLE" - It is possible.
4810	//   "LIKELY" - It is likely.
4811	//   "VERY_LIKELY" - It is very likely.
4812	JoyLikelihood string `json:"joyLikelihood,omitempty"`
4813
4814	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
4815	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
4816
4817	// Landmarks: Detected face landmarks.
4818	Landmarks []*GoogleCloudVisionV1p2beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
4819
4820	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
4821	// that the face is pointing relative to the vertical plane
4822	// perpendicular to the image. Range [-180,180].
4823	PanAngle float64 `json:"panAngle,omitempty"`
4824
4825	// RollAngle: Roll angle, which indicates the amount of
4826	// clockwise/anti-clockwise rotation of the face relative to the image
4827	// vertical about the axis perpendicular to the face. Range [-180,180].
4828	RollAngle float64 `json:"rollAngle,omitempty"`
4829
4830	// SorrowLikelihood: Sorrow likelihood.
4831	//
4832	// Possible values:
4833	//   "UNKNOWN" - Unknown likelihood.
4834	//   "VERY_UNLIKELY" - It is very unlikely.
4835	//   "UNLIKELY" - It is unlikely.
4836	//   "POSSIBLE" - It is possible.
4837	//   "LIKELY" - It is likely.
4838	//   "VERY_LIKELY" - It is very likely.
4839	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
4840
4841	// SurpriseLikelihood: Surprise likelihood.
4842	//
4843	// Possible values:
4844	//   "UNKNOWN" - Unknown likelihood.
4845	//   "VERY_UNLIKELY" - It is very unlikely.
4846	//   "UNLIKELY" - It is unlikely.
4847	//   "POSSIBLE" - It is possible.
4848	//   "LIKELY" - It is likely.
4849	//   "VERY_LIKELY" - It is very likely.
4850	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
4851
4852	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
4853	// that the face is pointing relative to the image's horizontal plane.
4854	// Range [-180,180].
4855	TiltAngle float64 `json:"tiltAngle,omitempty"`
4856
4857	// UnderExposedLikelihood: Under-exposed likelihood.
4858	//
4859	// Possible values:
4860	//   "UNKNOWN" - Unknown likelihood.
4861	//   "VERY_UNLIKELY" - It is very unlikely.
4862	//   "UNLIKELY" - It is unlikely.
4863	//   "POSSIBLE" - It is possible.
4864	//   "LIKELY" - It is likely.
4865	//   "VERY_LIKELY" - It is very likely.
4866	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
4867
4868	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
4869	// unconditionally include in API requests. By default, fields with
4870	// empty or default values are omitted from API requests. However, any
4871	// non-pointer, non-interface field appearing in ForceSendFields will be
4872	// sent to the server regardless of whether the field is empty or not.
4873	// This may be used to include empty fields in Patch requests.
4874	ForceSendFields []string `json:"-"`
4875
4876	// NullFields is a list of field names (e.g. "AngerLikelihood") to
4877	// include in API requests with the JSON null value. By default, fields
4878	// with empty values are omitted from API requests. However, any field
4879	// with an empty value appearing in NullFields will be sent to the
4880	// server as null. It is an error if a field in this list has a
4881	// non-empty value. This may be used to include null fields in Patch
4882	// requests.
4883	NullFields []string `json:"-"`
4884}
4885
4886func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
4887	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
4888	raw := NoMethod(*s)
4889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4890}
4891
4892func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
4893	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
4894	var s1 struct {
4895		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
4896		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
4897		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
4898		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
4899		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
4900		*NoMethod
4901	}
4902	s1.NoMethod = (*NoMethod)(s)
4903	if err := json.Unmarshal(data, &s1); err != nil {
4904		return err
4905	}
4906	s.DetectionConfidence = float64(s1.DetectionConfidence)
4907	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
4908	s.PanAngle = float64(s1.PanAngle)
4909	s.RollAngle = float64(s1.RollAngle)
4910	s.TiltAngle = float64(s1.TiltAngle)
4911	return nil
4912}
4913
4914// GoogleCloudVisionV1p2beta1FaceAnnotationLandmark: A face-specific
4915// landmark (for example, a face feature).
4916type GoogleCloudVisionV1p2beta1FaceAnnotationLandmark struct {
4917	// Position: Face landmark position.
4918	Position *GoogleCloudVisionV1p2beta1Position `json:"position,omitempty"`
4919
4920	// Type: Face landmark type.
4921	//
4922	// Possible values:
4923	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
4924	// filled.
4925	//   "LEFT_EYE" - Left eye.
4926	//   "RIGHT_EYE" - Right eye.
4927	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
4928	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
4929	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
4930	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
4931	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
4932	//   "NOSE_TIP" - Nose tip.
4933	//   "UPPER_LIP" - Upper lip.
4934	//   "LOWER_LIP" - Lower lip.
4935	//   "MOUTH_LEFT" - Mouth left.
4936	//   "MOUTH_RIGHT" - Mouth right.
4937	//   "MOUTH_CENTER" - Mouth center.
4938	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
4939	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
4940	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
4941	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
4942	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
4943	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
4944	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
4945	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
4946	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
4947	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
4948	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
4949	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
4950	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
4951	//   "LEFT_EAR_TRAGION" - Left ear tragion.
4952	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
4953	//   "LEFT_EYE_PUPIL" - Left eye pupil.
4954	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
4955	//   "FOREHEAD_GLABELLA" - Forehead glabella.
4956	//   "CHIN_GNATHION" - Chin gnathion.
4957	//   "CHIN_LEFT_GONION" - Chin left gonion.
4958	//   "CHIN_RIGHT_GONION" - Chin right gonion.
4959	//   "LEFT_CHEEK_CENTER" - Left cheek center.
4960	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
4961	Type string `json:"type,omitempty"`
4962
4963	// ForceSendFields is a list of field names (e.g. "Position") to
4964	// unconditionally include in API requests. By default, fields with
4965	// empty or default values are omitted from API requests. However, any
4966	// non-pointer, non-interface field appearing in ForceSendFields will be
4967	// sent to the server regardless of whether the field is empty or not.
4968	// This may be used to include empty fields in Patch requests.
4969	ForceSendFields []string `json:"-"`
4970
4971	// NullFields is a list of field names (e.g. "Position") to include in
4972	// API requests with the JSON null value. By default, fields with empty
4973	// values are omitted from API requests. However, any field with an
4974	// empty value appearing in NullFields will be sent to the server as
4975	// null. It is an error if a field in this list has a non-empty value.
4976	// This may be used to include null fields in Patch requests.
4977	NullFields []string `json:"-"`
4978}
4979
4980func (s *GoogleCloudVisionV1p2beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
4981	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotationLandmark
4982	raw := NoMethod(*s)
4983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4984}
4985
4986// GoogleCloudVisionV1p2beta1GcsDestination: The Google Cloud Storage
4987// location where the output will be written to.
4988type GoogleCloudVisionV1p2beta1GcsDestination struct {
4989	// Uri: Google Cloud Storage URI prefix where the results will be
4990	// stored. Results will be in JSON format and preceded by its
4991	// corresponding input URI prefix. This field can either represent a gcs
4992	// file prefix or gcs directory. In either case, the uri should be
4993	// unique because in order to get all of the output files, you will need
4994	// to do a wildcard gcs search on the uri prefix you provide. Examples:
4995	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
4996	// will be created in gs://bucket-name/here/ and the names of the output
4997	// files will begin with "filenameprefix". * Directory Prefix:
4998	// gs://bucket-name/some/location/ The output files will be created in
4999	// gs://bucket-name/some/location/ and the names of the output files
5000	// could be anything because there was no filename prefix specified. If
5001	// multiple outputs, each response is still AnnotateFileResponse, each
5002	// of which contains some subset of the full list of
5003	// AnnotateImageResponse. Multiple outputs can happen if, for example,
5004	// the output JSON is too large and overflows into multiple sharded
5005	// files.
5006	Uri string `json:"uri,omitempty"`
5007
5008	// ForceSendFields is a list of field names (e.g. "Uri") to
5009	// unconditionally include in API requests. By default, fields with
5010	// empty or default values are omitted from API requests. However, any
5011	// non-pointer, non-interface field appearing in ForceSendFields will be
5012	// sent to the server regardless of whether the field is empty or not.
5013	// This may be used to include empty fields in Patch requests.
5014	ForceSendFields []string `json:"-"`
5015
5016	// NullFields is a list of field names (e.g. "Uri") to include in API
5017	// requests with the JSON null value. By default, fields with empty
5018	// values are omitted from API requests. However, any field with an
5019	// empty value appearing in NullFields will be sent to the server as
5020	// null. It is an error if a field in this list has a non-empty value.
5021	// This may be used to include null fields in Patch requests.
5022	NullFields []string `json:"-"`
5023}
5024
5025func (s *GoogleCloudVisionV1p2beta1GcsDestination) MarshalJSON() ([]byte, error) {
5026	type NoMethod GoogleCloudVisionV1p2beta1GcsDestination
5027	raw := NoMethod(*s)
5028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5029}
5030
5031// GoogleCloudVisionV1p2beta1GcsSource: The Google Cloud Storage
5032// location where the input will be read from.
5033type GoogleCloudVisionV1p2beta1GcsSource struct {
5034	// Uri: Google Cloud Storage URI for the input file. This must only be a
5035	// Google Cloud Storage object. Wildcards are not currently supported.
5036	Uri string `json:"uri,omitempty"`
5037
5038	// ForceSendFields is a list of field names (e.g. "Uri") to
5039	// unconditionally include in API requests. By default, fields with
5040	// empty or default values are omitted from API requests. However, any
5041	// non-pointer, non-interface field appearing in ForceSendFields will be
5042	// sent to the server regardless of whether the field is empty or not.
5043	// This may be used to include empty fields in Patch requests.
5044	ForceSendFields []string `json:"-"`
5045
5046	// NullFields is a list of field names (e.g. "Uri") to include in API
5047	// requests with the JSON null value. By default, fields with empty
5048	// values are omitted from API requests. However, any field with an
5049	// empty value appearing in NullFields will be sent to the server as
5050	// null. It is an error if a field in this list has a non-empty value.
5051	// This may be used to include null fields in Patch requests.
5052	NullFields []string `json:"-"`
5053}
5054
5055func (s *GoogleCloudVisionV1p2beta1GcsSource) MarshalJSON() ([]byte, error) {
5056	type NoMethod GoogleCloudVisionV1p2beta1GcsSource
5057	raw := NoMethod(*s)
5058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5059}
5060
5061// GoogleCloudVisionV1p2beta1ImageAnnotationContext: If an image was
5062// produced from a file (e.g. a PDF), this message gives information
5063// about the source of that image.
5064type GoogleCloudVisionV1p2beta1ImageAnnotationContext struct {
5065	// PageNumber: If the file was a PDF or TIFF, this field gives the page
5066	// number within the file used to produce the image.
5067	PageNumber int64 `json:"pageNumber,omitempty"`
5068
5069	// Uri: The URI of the file used to produce the image.
5070	Uri string `json:"uri,omitempty"`
5071
5072	// ForceSendFields is a list of field names (e.g. "PageNumber") to
5073	// unconditionally include in API requests. By default, fields with
5074	// empty or default values are omitted from API requests. However, any
5075	// non-pointer, non-interface field appearing in ForceSendFields will be
5076	// sent to the server regardless of whether the field is empty or not.
5077	// This may be used to include empty fields in Patch requests.
5078	ForceSendFields []string `json:"-"`
5079
5080	// NullFields is a list of field names (e.g. "PageNumber") to include in
5081	// API requests with the JSON null value. By default, fields with empty
5082	// values are omitted from API requests. However, any field with an
5083	// empty value appearing in NullFields will be sent to the server as
5084	// null. It is an error if a field in this list has a non-empty value.
5085	// This may be used to include null fields in Patch requests.
5086	NullFields []string `json:"-"`
5087}
5088
5089func (s *GoogleCloudVisionV1p2beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
5090	type NoMethod GoogleCloudVisionV1p2beta1ImageAnnotationContext
5091	raw := NoMethod(*s)
5092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5093}
5094
5095// GoogleCloudVisionV1p2beta1ImageProperties: Stores image properties,
5096// such as dominant colors.
5097type GoogleCloudVisionV1p2beta1ImageProperties struct {
5098	// DominantColors: If present, dominant colors completed successfully.
5099	DominantColors *GoogleCloudVisionV1p2beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
5100
5101	// ForceSendFields is a list of field names (e.g. "DominantColors") to
5102	// unconditionally include in API requests. By default, fields with
5103	// empty or default values are omitted from API requests. However, any
5104	// non-pointer, non-interface field appearing in ForceSendFields will be
5105	// sent to the server regardless of whether the field is empty or not.
5106	// This may be used to include empty fields in Patch requests.
5107	ForceSendFields []string `json:"-"`
5108
5109	// NullFields is a list of field names (e.g. "DominantColors") to
5110	// include in API requests with the JSON null value. By default, fields
5111	// with empty values are omitted from API requests. However, any field
5112	// with an empty value appearing in NullFields will be sent to the
5113	// server as null. It is an error if a field in this list has a
5114	// non-empty value. This may be used to include null fields in Patch
5115	// requests.
5116	NullFields []string `json:"-"`
5117}
5118
5119func (s *GoogleCloudVisionV1p2beta1ImageProperties) MarshalJSON() ([]byte, error) {
5120	type NoMethod GoogleCloudVisionV1p2beta1ImageProperties
5121	raw := NoMethod(*s)
5122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5123}
5124
5125// GoogleCloudVisionV1p2beta1InputConfig: The desired input location and
5126// metadata.
5127type GoogleCloudVisionV1p2beta1InputConfig struct {
5128	// Content: File content, represented as a stream of bytes. Note: As
5129	// with all `bytes` fields, protobuffers use a pure binary
5130	// representation, whereas JSON representations use base64. Currently,
5131	// this field only works for BatchAnnotateFiles requests. It does not
5132	// work for AsyncBatchAnnotateFiles requests.
5133	Content string `json:"content,omitempty"`
5134
5135	// GcsSource: The Google Cloud Storage location to read the input from.
5136	GcsSource *GoogleCloudVisionV1p2beta1GcsSource `json:"gcsSource,omitempty"`
5137
5138	// MimeType: The type of the file. Currently only "application/pdf",
5139	// "image/tiff" and "image/gif" are supported. Wildcards are not
5140	// supported.
5141	MimeType string `json:"mimeType,omitempty"`
5142
5143	// ForceSendFields is a list of field names (e.g. "Content") to
5144	// unconditionally include in API requests. By default, fields with
5145	// empty or default values are omitted from API requests. However, any
5146	// non-pointer, non-interface field appearing in ForceSendFields will be
5147	// sent to the server regardless of whether the field is empty or not.
5148	// This may be used to include empty fields in Patch requests.
5149	ForceSendFields []string `json:"-"`
5150
5151	// NullFields is a list of field names (e.g. "Content") to include in
5152	// API requests with the JSON null value. By default, fields with empty
5153	// values are omitted from API requests. However, any field with an
5154	// empty value appearing in NullFields will be sent to the server as
5155	// null. It is an error if a field in this list has a non-empty value.
5156	// This may be used to include null fields in Patch requests.
5157	NullFields []string `json:"-"`
5158}
5159
5160func (s *GoogleCloudVisionV1p2beta1InputConfig) MarshalJSON() ([]byte, error) {
5161	type NoMethod GoogleCloudVisionV1p2beta1InputConfig
5162	raw := NoMethod(*s)
5163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5164}
5165
5166// GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation: Set of detected
5167// objects with bounding boxes.
5168type GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation struct {
5169	// BoundingPoly: Image region to which this object belongs. This must be
5170	// populated.
5171	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5172
5173	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5174	// For more information, see
5175	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5176	LanguageCode string `json:"languageCode,omitempty"`
5177
5178	// Mid: Object ID that should align with EntityAnnotation mid.
5179	Mid string `json:"mid,omitempty"`
5180
5181	// Name: Object name, expressed in its `language_code` language.
5182	Name string `json:"name,omitempty"`
5183
5184	// Score: Score of the result. Range [0, 1].
5185	Score float64 `json:"score,omitempty"`
5186
5187	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5188	// unconditionally include in API requests. By default, fields with
5189	// empty or default values are omitted from API requests. However, any
5190	// non-pointer, non-interface field appearing in ForceSendFields will be
5191	// sent to the server regardless of whether the field is empty or not.
5192	// This may be used to include empty fields in Patch requests.
5193	ForceSendFields []string `json:"-"`
5194
5195	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5196	// in API requests with the JSON null value. By default, fields with
5197	// empty values are omitted from API requests. However, any field with
5198	// an empty value appearing in NullFields will be sent to the server as
5199	// null. It is an error if a field in this list has a non-empty value.
5200	// This may be used to include null fields in Patch requests.
5201	NullFields []string `json:"-"`
5202}
5203
5204func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
5205	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5206	raw := NoMethod(*s)
5207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5208}
5209
5210func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
5211	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5212	var s1 struct {
5213		Score gensupport.JSONFloat64 `json:"score"`
5214		*NoMethod
5215	}
5216	s1.NoMethod = (*NoMethod)(s)
5217	if err := json.Unmarshal(data, &s1); err != nil {
5218		return err
5219	}
5220	s.Score = float64(s1.Score)
5221	return nil
5222}
5223
5224// GoogleCloudVisionV1p2beta1LocationInfo: Detected entity location
5225// information.
5226type GoogleCloudVisionV1p2beta1LocationInfo struct {
5227	// LatLng: lat/long location coordinates.
5228	LatLng *LatLng `json:"latLng,omitempty"`
5229
5230	// ForceSendFields is a list of field names (e.g. "LatLng") to
5231	// unconditionally include in API requests. By default, fields with
5232	// empty or default values are omitted from API requests. However, any
5233	// non-pointer, non-interface field appearing in ForceSendFields will be
5234	// sent to the server regardless of whether the field is empty or not.
5235	// This may be used to include empty fields in Patch requests.
5236	ForceSendFields []string `json:"-"`
5237
5238	// NullFields is a list of field names (e.g. "LatLng") to include in API
5239	// requests with the JSON null value. By default, fields with empty
5240	// values are omitted from API requests. However, any field with an
5241	// empty value appearing in NullFields will be sent to the server as
5242	// null. It is an error if a field in this list has a non-empty value.
5243	// This may be used to include null fields in Patch requests.
5244	NullFields []string `json:"-"`
5245}
5246
5247func (s *GoogleCloudVisionV1p2beta1LocationInfo) MarshalJSON() ([]byte, error) {
5248	type NoMethod GoogleCloudVisionV1p2beta1LocationInfo
5249	raw := NoMethod(*s)
5250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5251}
5252
5253// GoogleCloudVisionV1p2beta1NormalizedVertex: A vertex represents a 2D
5254// point in the image. NOTE: the normalized vertex coordinates are
5255// relative to the original image and range from 0 to 1.
5256type GoogleCloudVisionV1p2beta1NormalizedVertex struct {
5257	// X: X coordinate.
5258	X float64 `json:"x,omitempty"`
5259
5260	// Y: Y coordinate.
5261	Y float64 `json:"y,omitempty"`
5262
5263	// ForceSendFields is a list of field names (e.g. "X") to
5264	// unconditionally include in API requests. By default, fields with
5265	// empty or default values are omitted from API requests. However, any
5266	// non-pointer, non-interface field appearing in ForceSendFields will be
5267	// sent to the server regardless of whether the field is empty or not.
5268	// This may be used to include empty fields in Patch requests.
5269	ForceSendFields []string `json:"-"`
5270
5271	// NullFields is a list of field names (e.g. "X") to include in API
5272	// requests with the JSON null value. By default, fields with empty
5273	// values are omitted from API requests. However, any field with an
5274	// empty value appearing in NullFields will be sent to the server as
5275	// null. It is an error if a field in this list has a non-empty value.
5276	// This may be used to include null fields in Patch requests.
5277	NullFields []string `json:"-"`
5278}
5279
5280func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
5281	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5282	raw := NoMethod(*s)
5283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5284}
5285
5286func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
5287	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5288	var s1 struct {
5289		X gensupport.JSONFloat64 `json:"x"`
5290		Y gensupport.JSONFloat64 `json:"y"`
5291		*NoMethod
5292	}
5293	s1.NoMethod = (*NoMethod)(s)
5294	if err := json.Unmarshal(data, &s1); err != nil {
5295		return err
5296	}
5297	s.X = float64(s1.X)
5298	s.Y = float64(s1.Y)
5299	return nil
5300}
5301
5302// GoogleCloudVisionV1p2beta1OperationMetadata: Contains metadata for
5303// the BatchAnnotateImages operation.
5304type GoogleCloudVisionV1p2beta1OperationMetadata struct {
5305	// CreateTime: The time when the batch request was received.
5306	CreateTime string `json:"createTime,omitempty"`
5307
5308	// State: Current state of the batch operation.
5309	//
5310	// Possible values:
5311	//   "STATE_UNSPECIFIED" - Invalid.
5312	//   "CREATED" - Request is received.
5313	//   "RUNNING" - Request is actively being processed.
5314	//   "DONE" - The batch processing is done.
5315	//   "CANCELLED" - The batch processing was cancelled.
5316	State string `json:"state,omitempty"`
5317
5318	// UpdateTime: The time when the operation result was last updated.
5319	UpdateTime string `json:"updateTime,omitempty"`
5320
5321	// ForceSendFields is a list of field names (e.g. "CreateTime") to
5322	// unconditionally include in API requests. By default, fields with
5323	// empty or default values are omitted from API requests. However, any
5324	// non-pointer, non-interface field appearing in ForceSendFields will be
5325	// sent to the server regardless of whether the field is empty or not.
5326	// This may be used to include empty fields in Patch requests.
5327	ForceSendFields []string `json:"-"`
5328
5329	// NullFields is a list of field names (e.g. "CreateTime") to include in
5330	// API requests with the JSON null value. By default, fields with empty
5331	// values are omitted from API requests. However, any field with an
5332	// empty value appearing in NullFields will be sent to the server as
5333	// null. It is an error if a field in this list has a non-empty value.
5334	// This may be used to include null fields in Patch requests.
5335	NullFields []string `json:"-"`
5336}
5337
5338func (s *GoogleCloudVisionV1p2beta1OperationMetadata) MarshalJSON() ([]byte, error) {
5339	type NoMethod GoogleCloudVisionV1p2beta1OperationMetadata
5340	raw := NoMethod(*s)
5341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5342}
5343
5344// GoogleCloudVisionV1p2beta1OutputConfig: The desired output location
5345// and metadata.
5346type GoogleCloudVisionV1p2beta1OutputConfig struct {
5347	// BatchSize: The max number of response protos to put into each output
5348	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
5349	// not specified, the default value is 20. For example, for one pdf file
5350	// with 100 pages, 100 response protos will be generated. If
5351	// `batch_size` = 20, then 5 json files each containing 20 response
5352	// protos will be written under the prefix `gcs_destination`.`uri`.
5353	// Currently, batch_size only applies to GcsDestination, with potential
5354	// future support for other output configurations.
5355	BatchSize int64 `json:"batchSize,omitempty"`
5356
5357	// GcsDestination: The Google Cloud Storage location to write the
5358	// output(s) to.
5359	GcsDestination *GoogleCloudVisionV1p2beta1GcsDestination `json:"gcsDestination,omitempty"`
5360
5361	// ForceSendFields is a list of field names (e.g. "BatchSize") to
5362	// unconditionally include in API requests. By default, fields with
5363	// empty or default values are omitted from API requests. However, any
5364	// non-pointer, non-interface field appearing in ForceSendFields will be
5365	// sent to the server regardless of whether the field is empty or not.
5366	// This may be used to include empty fields in Patch requests.
5367	ForceSendFields []string `json:"-"`
5368
5369	// NullFields is a list of field names (e.g. "BatchSize") to include in
5370	// API requests with the JSON null value. By default, fields with empty
5371	// values are omitted from API requests. However, any field with an
5372	// empty value appearing in NullFields will be sent to the server as
5373	// null. It is an error if a field in this list has a non-empty value.
5374	// This may be used to include null fields in Patch requests.
5375	NullFields []string `json:"-"`
5376}
5377
5378func (s *GoogleCloudVisionV1p2beta1OutputConfig) MarshalJSON() ([]byte, error) {
5379	type NoMethod GoogleCloudVisionV1p2beta1OutputConfig
5380	raw := NoMethod(*s)
5381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5382}
5383
5384// GoogleCloudVisionV1p2beta1Page: Detected page from OCR.
5385type GoogleCloudVisionV1p2beta1Page struct {
5386	// Blocks: List of blocks of text, images etc on this page.
5387	Blocks []*GoogleCloudVisionV1p2beta1Block `json:"blocks,omitempty"`
5388
5389	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
5390	Confidence float64 `json:"confidence,omitempty"`
5391
5392	// Height: Page height. For PDFs the unit is points. For images
5393	// (including TIFFs) the unit is pixels.
5394	Height int64 `json:"height,omitempty"`
5395
5396	// Property: Additional information detected on the page.
5397	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5398
5399	// Width: Page width. For PDFs the unit is points. For images (including
5400	// TIFFs) the unit is pixels.
5401	Width int64 `json:"width,omitempty"`
5402
5403	// ForceSendFields is a list of field names (e.g. "Blocks") to
5404	// unconditionally include in API requests. By default, fields with
5405	// empty or default values are omitted from API requests. However, any
5406	// non-pointer, non-interface field appearing in ForceSendFields will be
5407	// sent to the server regardless of whether the field is empty or not.
5408	// This may be used to include empty fields in Patch requests.
5409	ForceSendFields []string `json:"-"`
5410
5411	// NullFields is a list of field names (e.g. "Blocks") to include in API
5412	// requests with the JSON null value. By default, fields with empty
5413	// values are omitted from API requests. However, any field with an
5414	// empty value appearing in NullFields will be sent to the server as
5415	// null. It is an error if a field in this list has a non-empty value.
5416	// This may be used to include null fields in Patch requests.
5417	NullFields []string `json:"-"`
5418}
5419
5420func (s *GoogleCloudVisionV1p2beta1Page) MarshalJSON() ([]byte, error) {
5421	type NoMethod GoogleCloudVisionV1p2beta1Page
5422	raw := NoMethod(*s)
5423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5424}
5425
5426func (s *GoogleCloudVisionV1p2beta1Page) UnmarshalJSON(data []byte) error {
5427	type NoMethod GoogleCloudVisionV1p2beta1Page
5428	var s1 struct {
5429		Confidence gensupport.JSONFloat64 `json:"confidence"`
5430		*NoMethod
5431	}
5432	s1.NoMethod = (*NoMethod)(s)
5433	if err := json.Unmarshal(data, &s1); err != nil {
5434		return err
5435	}
5436	s.Confidence = float64(s1.Confidence)
5437	return nil
5438}
5439
5440// GoogleCloudVisionV1p2beta1Paragraph: Structural unit of text
5441// representing a number of words in certain order.
5442type GoogleCloudVisionV1p2beta1Paragraph struct {
5443	// BoundingBox: The bounding box for the paragraph. The vertices are in
5444	// the order of top-left, top-right, bottom-right, bottom-left. When a
5445	// rotation of the bounding box is detected the rotation is represented
5446	// as around the top-left corner as defined when the text is read in the
5447	// 'natural' orientation. For example: * when the text is horizontal it
5448	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
5449	// around the top-left corner it becomes: 2----3 | | 1----0 and the
5450	// vertex order will still be (0, 1, 2, 3).
5451	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5452
5453	// Confidence: Confidence of the OCR results for the paragraph. Range
5454	// [0, 1].
5455	Confidence float64 `json:"confidence,omitempty"`
5456
5457	// Property: Additional information detected for the paragraph.
5458	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5459
5460	// Words: List of all words in this paragraph.
5461	Words []*GoogleCloudVisionV1p2beta1Word `json:"words,omitempty"`
5462
5463	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5464	// unconditionally include in API requests. By default, fields with
5465	// empty or default values are omitted from API requests. However, any
5466	// non-pointer, non-interface field appearing in ForceSendFields will be
5467	// sent to the server regardless of whether the field is empty or not.
5468	// This may be used to include empty fields in Patch requests.
5469	ForceSendFields []string `json:"-"`
5470
5471	// NullFields is a list of field names (e.g. "BoundingBox") to include
5472	// in API requests with the JSON null value. By default, fields with
5473	// empty values are omitted from API requests. However, any field with
5474	// an empty value appearing in NullFields will be sent to the server as
5475	// null. It is an error if a field in this list has a non-empty value.
5476	// This may be used to include null fields in Patch requests.
5477	NullFields []string `json:"-"`
5478}
5479
5480func (s *GoogleCloudVisionV1p2beta1Paragraph) MarshalJSON() ([]byte, error) {
5481	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5482	raw := NoMethod(*s)
5483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5484}
5485
5486func (s *GoogleCloudVisionV1p2beta1Paragraph) UnmarshalJSON(data []byte) error {
5487	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5488	var s1 struct {
5489		Confidence gensupport.JSONFloat64 `json:"confidence"`
5490		*NoMethod
5491	}
5492	s1.NoMethod = (*NoMethod)(s)
5493	if err := json.Unmarshal(data, &s1); err != nil {
5494		return err
5495	}
5496	s.Confidence = float64(s1.Confidence)
5497	return nil
5498}
5499
5500// GoogleCloudVisionV1p2beta1Position: A 3D position in the image, used
5501// primarily for Face detection landmarks. A valid Position must have
5502// both x and y coordinates. The position coordinates are in the same
5503// scale as the original image.
5504type GoogleCloudVisionV1p2beta1Position struct {
5505	// X: X coordinate.
5506	X float64 `json:"x,omitempty"`
5507
5508	// Y: Y coordinate.
5509	Y float64 `json:"y,omitempty"`
5510
5511	// Z: Z coordinate (or depth).
5512	Z float64 `json:"z,omitempty"`
5513
5514	// ForceSendFields is a list of field names (e.g. "X") to
5515	// unconditionally include in API requests. By default, fields with
5516	// empty or default values are omitted from API requests. However, any
5517	// non-pointer, non-interface field appearing in ForceSendFields will be
5518	// sent to the server regardless of whether the field is empty or not.
5519	// This may be used to include empty fields in Patch requests.
5520	ForceSendFields []string `json:"-"`
5521
5522	// NullFields is a list of field names (e.g. "X") to include in API
5523	// requests with the JSON null value. By default, fields with empty
5524	// values are omitted from API requests. However, any field with an
5525	// empty value appearing in NullFields will be sent to the server as
5526	// null. It is an error if a field in this list has a non-empty value.
5527	// This may be used to include null fields in Patch requests.
5528	NullFields []string `json:"-"`
5529}
5530
5531func (s *GoogleCloudVisionV1p2beta1Position) MarshalJSON() ([]byte, error) {
5532	type NoMethod GoogleCloudVisionV1p2beta1Position
5533	raw := NoMethod(*s)
5534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5535}
5536
5537func (s *GoogleCloudVisionV1p2beta1Position) UnmarshalJSON(data []byte) error {
5538	type NoMethod GoogleCloudVisionV1p2beta1Position
5539	var s1 struct {
5540		X gensupport.JSONFloat64 `json:"x"`
5541		Y gensupport.JSONFloat64 `json:"y"`
5542		Z gensupport.JSONFloat64 `json:"z"`
5543		*NoMethod
5544	}
5545	s1.NoMethod = (*NoMethod)(s)
5546	if err := json.Unmarshal(data, &s1); err != nil {
5547		return err
5548	}
5549	s.X = float64(s1.X)
5550	s.Y = float64(s1.Y)
5551	s.Z = float64(s1.Z)
5552	return nil
5553}
5554
5555// GoogleCloudVisionV1p2beta1Product: A Product contains
5556// ReferenceImages.
5557type GoogleCloudVisionV1p2beta1Product struct {
5558	// Description: User-provided metadata to be stored with this product.
5559	// Must be at most 4096 characters long.
5560	Description string `json:"description,omitempty"`
5561
5562	// DisplayName: The user-provided name for this Product. Must not be
5563	// empty. Must be at most 4096 characters long.
5564	DisplayName string `json:"displayName,omitempty"`
5565
5566	// Name: The resource name of the product. Format is:
5567	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
5568	// field is ignored when creating a product.
5569	Name string `json:"name,omitempty"`
5570
5571	// ProductCategory: Immutable. The category for the product identified
5572	// by the reference image. This should be one of "homegoods-v2",
5573	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
5574	// legacy categories "homegoods", "apparel", and "toys" are still
5575	// supported, but these should not be used for new products.
5576	ProductCategory string `json:"productCategory,omitempty"`
5577
5578	// ProductLabels: Key-value pairs that can be attached to a product. At
5579	// query time, constraints can be specified based on the product_labels.
5580	// Note that integer values can be provided as strings, e.g. "1199".
5581	// Only strings with integer values can match a range-based restriction
5582	// which is to be supported soon. Multiple values can be assigned to the
5583	// same key. One product may have up to 500 product_labels. Notice that
5584	// the total number of distinct product_labels over all products in one
5585	// ProductSet cannot exceed 1M, otherwise the product search pipeline
5586	// will refuse to work for that ProductSet.
5587	ProductLabels []*GoogleCloudVisionV1p2beta1ProductKeyValue `json:"productLabels,omitempty"`
5588
5589	// ForceSendFields is a list of field names (e.g. "Description") to
5590	// unconditionally include in API requests. By default, fields with
5591	// empty or default values are omitted from API requests. However, any
5592	// non-pointer, non-interface field appearing in ForceSendFields will be
5593	// sent to the server regardless of whether the field is empty or not.
5594	// This may be used to include empty fields in Patch requests.
5595	ForceSendFields []string `json:"-"`
5596
5597	// NullFields is a list of field names (e.g. "Description") to include
5598	// in API requests with the JSON null value. By default, fields with
5599	// empty values are omitted from API requests. However, any field with
5600	// an empty value appearing in NullFields will be sent to the server as
5601	// null. It is an error if a field in this list has a non-empty value.
5602	// This may be used to include null fields in Patch requests.
5603	NullFields []string `json:"-"`
5604}
5605
5606func (s *GoogleCloudVisionV1p2beta1Product) MarshalJSON() ([]byte, error) {
5607	type NoMethod GoogleCloudVisionV1p2beta1Product
5608	raw := NoMethod(*s)
5609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5610}
5611
5612// GoogleCloudVisionV1p2beta1ProductKeyValue: A product label
5613// represented as a key-value pair.
5614type GoogleCloudVisionV1p2beta1ProductKeyValue struct {
5615	// Key: The key of the label attached to the product. Cannot be empty
5616	// and cannot exceed 128 bytes.
5617	Key string `json:"key,omitempty"`
5618
5619	// Value: The value of the label attached to the product. Cannot be
5620	// empty and cannot exceed 128 bytes.
5621	Value string `json:"value,omitempty"`
5622
5623	// ForceSendFields is a list of field names (e.g. "Key") to
5624	// unconditionally include in API requests. By default, fields with
5625	// empty or default values are omitted from API requests. However, any
5626	// non-pointer, non-interface field appearing in ForceSendFields will be
5627	// sent to the server regardless of whether the field is empty or not.
5628	// This may be used to include empty fields in Patch requests.
5629	ForceSendFields []string `json:"-"`
5630
5631	// NullFields is a list of field names (e.g. "Key") to include in API
5632	// requests with the JSON null value. By default, fields with empty
5633	// values are omitted from API requests. However, any field with an
5634	// empty value appearing in NullFields will be sent to the server as
5635	// null. It is an error if a field in this list has a non-empty value.
5636	// This may be used to include null fields in Patch requests.
5637	NullFields []string `json:"-"`
5638}
5639
5640func (s *GoogleCloudVisionV1p2beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
5641	type NoMethod GoogleCloudVisionV1p2beta1ProductKeyValue
5642	raw := NoMethod(*s)
5643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5644}
5645
5646// GoogleCloudVisionV1p2beta1ProductSearchResults: Results for a product
5647// search request.
5648type GoogleCloudVisionV1p2beta1ProductSearchResults struct {
5649	// IndexTime: Timestamp of the index which provided these results.
5650	// Products added to the product set and products removed from the
5651	// product set after this time are not reflected in the current results.
5652	IndexTime string `json:"indexTime,omitempty"`
5653
5654	// ProductGroupedResults: List of results grouped by products detected
5655	// in the query image. Each entry corresponds to one bounding polygon in
5656	// the query image, and contains the matching products specific to that
5657	// region. There may be duplicate product matches in the union of all
5658	// the per-product results.
5659	ProductGroupedResults []*GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
5660
5661	// Results: List of results, one for each product match.
5662	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
5663
5664	// ForceSendFields is a list of field names (e.g. "IndexTime") to
5665	// unconditionally include in API requests. By default, fields with
5666	// empty or default values are omitted from API requests. However, any
5667	// non-pointer, non-interface field appearing in ForceSendFields will be
5668	// sent to the server regardless of whether the field is empty or not.
5669	// This may be used to include empty fields in Patch requests.
5670	ForceSendFields []string `json:"-"`
5671
5672	// NullFields is a list of field names (e.g. "IndexTime") to include in
5673	// API requests with the JSON null value. By default, fields with empty
5674	// values are omitted from API requests. However, any field with an
5675	// empty value appearing in NullFields will be sent to the server as
5676	// null. It is an error if a field in this list has a non-empty value.
5677	// This may be used to include null fields in Patch requests.
5678	NullFields []string `json:"-"`
5679}
5680
5681func (s *GoogleCloudVisionV1p2beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
5682	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResults
5683	raw := NoMethod(*s)
5684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5685}
5686
5687// GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult:
5688// Information about the products similar to a single product in a query
5689// image.
5690type GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult struct {
5691	// BoundingPoly: The bounding polygon around the product detected in the
5692	// query image.
5693	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5694
5695	// ObjectAnnotations: List of generic predictions for the object in the
5696	// bounding box.
5697	ObjectAnnotations []*GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
5698
5699	// Results: List of results, one for each product match.
5700	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
5701
5702	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5703	// unconditionally include in API requests. By default, fields with
5704	// empty or default values are omitted from API requests. However, any
5705	// non-pointer, non-interface field appearing in ForceSendFields will be
5706	// sent to the server regardless of whether the field is empty or not.
5707	// This may be used to include empty fields in Patch requests.
5708	ForceSendFields []string `json:"-"`
5709
5710	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5711	// in API requests with the JSON null value. By default, fields with
5712	// empty values are omitted from API requests. However, any field with
5713	// an empty value appearing in NullFields will be sent to the server as
5714	// null. It is an error if a field in this list has a non-empty value.
5715	// This may be used to include null fields in Patch requests.
5716	NullFields []string `json:"-"`
5717}
5718
5719func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
5720	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult
5721	raw := NoMethod(*s)
5722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5723}
5724
5725// GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation:
5726// Prediction for what the object in the bounding box is.
5727type GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation struct {
5728	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5729	// For more information, see
5730	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5731	LanguageCode string `json:"languageCode,omitempty"`
5732
5733	// Mid: Object ID that should align with EntityAnnotation mid.
5734	Mid string `json:"mid,omitempty"`
5735
5736	// Name: Object name, expressed in its `language_code` language.
5737	Name string `json:"name,omitempty"`
5738
5739	// Score: Score of the result. Range [0, 1].
5740	Score float64 `json:"score,omitempty"`
5741
5742	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
5743	// unconditionally include in API requests. By default, fields with
5744	// empty or default values are omitted from API requests. However, any
5745	// non-pointer, non-interface field appearing in ForceSendFields will be
5746	// sent to the server regardless of whether the field is empty or not.
5747	// This may be used to include empty fields in Patch requests.
5748	ForceSendFields []string `json:"-"`
5749
5750	// NullFields is a list of field names (e.g. "LanguageCode") to include
5751	// in API requests with the JSON null value. By default, fields with
5752	// empty values are omitted from API requests. However, any field with
5753	// an empty value appearing in NullFields will be sent to the server as
5754	// null. It is an error if a field in this list has a non-empty value.
5755	// This may be used to include null fields in Patch requests.
5756	NullFields []string `json:"-"`
5757}
5758
5759func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
5760	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
5761	raw := NoMethod(*s)
5762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5763}
5764
5765func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
5766	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
5767	var s1 struct {
5768		Score gensupport.JSONFloat64 `json:"score"`
5769		*NoMethod
5770	}
5771	s1.NoMethod = (*NoMethod)(s)
5772	if err := json.Unmarshal(data, &s1); err != nil {
5773		return err
5774	}
5775	s.Score = float64(s1.Score)
5776	return nil
5777}
5778
5779// GoogleCloudVisionV1p2beta1ProductSearchResultsResult: Information
5780// about a product.
5781type GoogleCloudVisionV1p2beta1ProductSearchResultsResult struct {
5782	// Image: The resource name of the image from the product that is the
5783	// closest match to the query.
5784	Image string `json:"image,omitempty"`
5785
5786	// Product: The Product.
5787	Product *GoogleCloudVisionV1p2beta1Product `json:"product,omitempty"`
5788
5789	// Score: A confidence level on the match, ranging from 0 (no
5790	// confidence) to 1 (full confidence).
5791	Score float64 `json:"score,omitempty"`
5792
5793	// ForceSendFields is a list of field names (e.g. "Image") to
5794	// unconditionally include in API requests. By default, fields with
5795	// empty or default values are omitted from API requests. However, any
5796	// non-pointer, non-interface field appearing in ForceSendFields will be
5797	// sent to the server regardless of whether the field is empty or not.
5798	// This may be used to include empty fields in Patch requests.
5799	ForceSendFields []string `json:"-"`
5800
5801	// NullFields is a list of field names (e.g. "Image") to include in API
5802	// requests with the JSON null value. By default, fields with empty
5803	// values are omitted from API requests. However, any field with an
5804	// empty value appearing in NullFields will be sent to the server as
5805	// null. It is an error if a field in this list has a non-empty value.
5806	// This may be used to include null fields in Patch requests.
5807	NullFields []string `json:"-"`
5808}
5809
5810func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
5811	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
5812	raw := NoMethod(*s)
5813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5814}
5815
5816func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
5817	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
5818	var s1 struct {
5819		Score gensupport.JSONFloat64 `json:"score"`
5820		*NoMethod
5821	}
5822	s1.NoMethod = (*NoMethod)(s)
5823	if err := json.Unmarshal(data, &s1); err != nil {
5824		return err
5825	}
5826	s.Score = float64(s1.Score)
5827	return nil
5828}
5829
5830// GoogleCloudVisionV1p2beta1Property: A `Property` consists of a
5831// user-supplied name/value pair.
5832type GoogleCloudVisionV1p2beta1Property struct {
5833	// Name: Name of the property.
5834	Name string `json:"name,omitempty"`
5835
5836	// Uint64Value: Value of numeric properties.
5837	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
5838
5839	// Value: Value of the property.
5840	Value string `json:"value,omitempty"`
5841
5842	// ForceSendFields is a list of field names (e.g. "Name") to
5843	// unconditionally include in API requests. By default, fields with
5844	// empty or default values are omitted from API requests. However, any
5845	// non-pointer, non-interface field appearing in ForceSendFields will be
5846	// sent to the server regardless of whether the field is empty or not.
5847	// This may be used to include empty fields in Patch requests.
5848	ForceSendFields []string `json:"-"`
5849
5850	// NullFields is a list of field names (e.g. "Name") to include in API
5851	// requests with the JSON null value. By default, fields with empty
5852	// values are omitted from API requests. However, any field with an
5853	// empty value appearing in NullFields will be sent to the server as
5854	// null. It is an error if a field in this list has a non-empty value.
5855	// This may be used to include null fields in Patch requests.
5856	NullFields []string `json:"-"`
5857}
5858
5859func (s *GoogleCloudVisionV1p2beta1Property) MarshalJSON() ([]byte, error) {
5860	type NoMethod GoogleCloudVisionV1p2beta1Property
5861	raw := NoMethod(*s)
5862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5863}
5864
5865// GoogleCloudVisionV1p2beta1SafeSearchAnnotation: Set of features
5866// pertaining to the image, computed by computer vision methods over
5867// safe-search verticals (for example, adult, spoof, medical, violence).
5868type GoogleCloudVisionV1p2beta1SafeSearchAnnotation struct {
5869	// Adult: Represents the adult content likelihood for the image. Adult
5870	// content may contain elements such as nudity, pornographic images or
5871	// cartoons, or sexual activities.
5872	//
5873	// Possible values:
5874	//   "UNKNOWN" - Unknown likelihood.
5875	//   "VERY_UNLIKELY" - It is very unlikely.
5876	//   "UNLIKELY" - It is unlikely.
5877	//   "POSSIBLE" - It is possible.
5878	//   "LIKELY" - It is likely.
5879	//   "VERY_LIKELY" - It is very likely.
5880	Adult string `json:"adult,omitempty"`
5881
5882	// Medical: Likelihood that this is a medical image.
5883	//
5884	// Possible values:
5885	//   "UNKNOWN" - Unknown likelihood.
5886	//   "VERY_UNLIKELY" - It is very unlikely.
5887	//   "UNLIKELY" - It is unlikely.
5888	//   "POSSIBLE" - It is possible.
5889	//   "LIKELY" - It is likely.
5890	//   "VERY_LIKELY" - It is very likely.
5891	Medical string `json:"medical,omitempty"`
5892
5893	// Racy: Likelihood that the request image contains racy content. Racy
5894	// content may include (but is not limited to) skimpy or sheer clothing,
5895	// strategically covered nudity, lewd or provocative poses, or close-ups
5896	// of sensitive body areas.
5897	//
5898	// Possible values:
5899	//   "UNKNOWN" - Unknown likelihood.
5900	//   "VERY_UNLIKELY" - It is very unlikely.
5901	//   "UNLIKELY" - It is unlikely.
5902	//   "POSSIBLE" - It is possible.
5903	//   "LIKELY" - It is likely.
5904	//   "VERY_LIKELY" - It is very likely.
5905	Racy string `json:"racy,omitempty"`
5906
5907	// Spoof: Spoof likelihood. The likelihood that an modification was made
5908	// to the image's canonical version to make it appear funny or
5909	// offensive.
5910	//
5911	// Possible values:
5912	//   "UNKNOWN" - Unknown likelihood.
5913	//   "VERY_UNLIKELY" - It is very unlikely.
5914	//   "UNLIKELY" - It is unlikely.
5915	//   "POSSIBLE" - It is possible.
5916	//   "LIKELY" - It is likely.
5917	//   "VERY_LIKELY" - It is very likely.
5918	Spoof string `json:"spoof,omitempty"`
5919
5920	// Violence: Likelihood that this image contains violent content.
5921	//
5922	// Possible values:
5923	//   "UNKNOWN" - Unknown likelihood.
5924	//   "VERY_UNLIKELY" - It is very unlikely.
5925	//   "UNLIKELY" - It is unlikely.
5926	//   "POSSIBLE" - It is possible.
5927	//   "LIKELY" - It is likely.
5928	//   "VERY_LIKELY" - It is very likely.
5929	Violence string `json:"violence,omitempty"`
5930
5931	// ForceSendFields is a list of field names (e.g. "Adult") to
5932	// unconditionally include in API requests. By default, fields with
5933	// empty or default values are omitted from API requests. However, any
5934	// non-pointer, non-interface field appearing in ForceSendFields will be
5935	// sent to the server regardless of whether the field is empty or not.
5936	// This may be used to include empty fields in Patch requests.
5937	ForceSendFields []string `json:"-"`
5938
5939	// NullFields is a list of field names (e.g. "Adult") to include in API
5940	// requests with the JSON null value. By default, fields with empty
5941	// values are omitted from API requests. However, any field with an
5942	// empty value appearing in NullFields will be sent to the server as
5943	// null. It is an error if a field in this list has a non-empty value.
5944	// This may be used to include null fields in Patch requests.
5945	NullFields []string `json:"-"`
5946}
5947
5948func (s *GoogleCloudVisionV1p2beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
5949	type NoMethod GoogleCloudVisionV1p2beta1SafeSearchAnnotation
5950	raw := NoMethod(*s)
5951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5952}
5953
5954// GoogleCloudVisionV1p2beta1Symbol: A single symbol representation.
5955type GoogleCloudVisionV1p2beta1Symbol struct {
5956	// BoundingBox: The bounding box for the symbol. The vertices are in the
5957	// order of top-left, top-right, bottom-right, bottom-left. When a
5958	// rotation of the bounding box is detected the rotation is represented
5959	// as around the top-left corner as defined when the text is read in the
5960	// 'natural' orientation. For example: * when the text is horizontal it
5961	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
5962	// around the top-left corner it becomes: 2----3 | | 1----0 and the
5963	// vertex order will still be (0, 1, 2, 3).
5964	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5965
5966	// Confidence: Confidence of the OCR results for the symbol. Range [0,
5967	// 1].
5968	Confidence float64 `json:"confidence,omitempty"`
5969
5970	// Property: Additional information detected for the symbol.
5971	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5972
5973	// Text: The actual UTF-8 representation of the symbol.
5974	Text string `json:"text,omitempty"`
5975
5976	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5977	// unconditionally include in API requests. By default, fields with
5978	// empty or default values are omitted from API requests. However, any
5979	// non-pointer, non-interface field appearing in ForceSendFields will be
5980	// sent to the server regardless of whether the field is empty or not.
5981	// This may be used to include empty fields in Patch requests.
5982	ForceSendFields []string `json:"-"`
5983
5984	// NullFields is a list of field names (e.g. "BoundingBox") to include
5985	// in API requests with the JSON null value. By default, fields with
5986	// empty values are omitted from API requests. However, any field with
5987	// an empty value appearing in NullFields will be sent to the server as
5988	// null. It is an error if a field in this list has a non-empty value.
5989	// This may be used to include null fields in Patch requests.
5990	NullFields []string `json:"-"`
5991}
5992
5993func (s *GoogleCloudVisionV1p2beta1Symbol) MarshalJSON() ([]byte, error) {
5994	type NoMethod GoogleCloudVisionV1p2beta1Symbol
5995	raw := NoMethod(*s)
5996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5997}
5998
5999func (s *GoogleCloudVisionV1p2beta1Symbol) UnmarshalJSON(data []byte) error {
6000	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6001	var s1 struct {
6002		Confidence gensupport.JSONFloat64 `json:"confidence"`
6003		*NoMethod
6004	}
6005	s1.NoMethod = (*NoMethod)(s)
6006	if err := json.Unmarshal(data, &s1); err != nil {
6007		return err
6008	}
6009	s.Confidence = float64(s1.Confidence)
6010	return nil
6011}
6012
6013// GoogleCloudVisionV1p2beta1TextAnnotation: TextAnnotation contains a
6014// structured representation of OCR extracted text. The hierarchy of an
6015// OCR extracted text structure is like this: TextAnnotation -> Page ->
6016// Block -> Paragraph -> Word -> Symbol Each structural component,
6017// starting from Page, may further have their own properties. Properties
6018// describe detected languages, breaks etc.. Please refer to the
6019// TextAnnotation.TextProperty message definition below for more detail.
6020type GoogleCloudVisionV1p2beta1TextAnnotation struct {
6021	// Pages: List of pages detected by OCR.
6022	Pages []*GoogleCloudVisionV1p2beta1Page `json:"pages,omitempty"`
6023
6024	// Text: UTF-8 text detected on the pages.
6025	Text string `json:"text,omitempty"`
6026
6027	// ForceSendFields is a list of field names (e.g. "Pages") to
6028	// unconditionally include in API requests. By default, fields with
6029	// empty or default values are omitted from API requests. However, any
6030	// non-pointer, non-interface field appearing in ForceSendFields will be
6031	// sent to the server regardless of whether the field is empty or not.
6032	// This may be used to include empty fields in Patch requests.
6033	ForceSendFields []string `json:"-"`
6034
6035	// NullFields is a list of field names (e.g. "Pages") to include in API
6036	// requests with the JSON null value. By default, fields with empty
6037	// values are omitted from API requests. However, any field with an
6038	// empty value appearing in NullFields will be sent to the server as
6039	// null. It is an error if a field in this list has a non-empty value.
6040	// This may be used to include null fields in Patch requests.
6041	NullFields []string `json:"-"`
6042}
6043
6044func (s *GoogleCloudVisionV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
6045	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotation
6046	raw := NoMethod(*s)
6047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6048}
6049
6050// GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak: Detected start
6051// or end of a structural component.
6052type GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak struct {
6053	// IsPrefix: True if break prepends the element.
6054	IsPrefix bool `json:"isPrefix,omitempty"`
6055
6056	// Type: Detected break type.
6057	//
6058	// Possible values:
6059	//   "UNKNOWN" - Unknown break label type.
6060	//   "SPACE" - Regular space.
6061	//   "SURE_SPACE" - Sure space (very wide).
6062	//   "EOL_SURE_SPACE" - Line-wrapping break.
6063	//   "HYPHEN" - End-line hyphen that is not present in text; does not
6064	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
6065	//   "LINE_BREAK" - Line break that ends a paragraph.
6066	Type string `json:"type,omitempty"`
6067
6068	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
6069	// unconditionally include in API requests. By default, fields with
6070	// empty or default values are omitted from API requests. However, any
6071	// non-pointer, non-interface field appearing in ForceSendFields will be
6072	// sent to the server regardless of whether the field is empty or not.
6073	// This may be used to include empty fields in Patch requests.
6074	ForceSendFields []string `json:"-"`
6075
6076	// NullFields is a list of field names (e.g. "IsPrefix") to include in
6077	// API requests with the JSON null value. By default, fields with empty
6078	// values are omitted from API requests. However, any field with an
6079	// empty value appearing in NullFields will be sent to the server as
6080	// null. It is an error if a field in this list has a non-empty value.
6081	// This may be used to include null fields in Patch requests.
6082	NullFields []string `json:"-"`
6083}
6084
6085func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
6086	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak
6087	raw := NoMethod(*s)
6088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6089}
6090
6091// GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage: Detected
6092// language for a structural component.
6093type GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage struct {
6094	// Confidence: Confidence of detected language. Range [0, 1].
6095	Confidence float64 `json:"confidence,omitempty"`
6096
6097	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6098	// For more information, see
6099	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6100	LanguageCode string `json:"languageCode,omitempty"`
6101
6102	// ForceSendFields is a list of field names (e.g. "Confidence") to
6103	// unconditionally include in API requests. By default, fields with
6104	// empty or default values are omitted from API requests. However, any
6105	// non-pointer, non-interface field appearing in ForceSendFields will be
6106	// sent to the server regardless of whether the field is empty or not.
6107	// This may be used to include empty fields in Patch requests.
6108	ForceSendFields []string `json:"-"`
6109
6110	// NullFields is a list of field names (e.g. "Confidence") to include in
6111	// API requests with the JSON null value. By default, fields with empty
6112	// values are omitted from API requests. However, any field with an
6113	// empty value appearing in NullFields will be sent to the server as
6114	// null. It is an error if a field in this list has a non-empty value.
6115	// This may be used to include null fields in Patch requests.
6116	NullFields []string `json:"-"`
6117}
6118
6119func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
6120	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6121	raw := NoMethod(*s)
6122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6123}
6124
6125func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
6126	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6127	var s1 struct {
6128		Confidence gensupport.JSONFloat64 `json:"confidence"`
6129		*NoMethod
6130	}
6131	s1.NoMethod = (*NoMethod)(s)
6132	if err := json.Unmarshal(data, &s1); err != nil {
6133		return err
6134	}
6135	s.Confidence = float64(s1.Confidence)
6136	return nil
6137}
6138
6139// GoogleCloudVisionV1p2beta1TextAnnotationTextProperty: Additional
6140// information detected on the structural component.
6141type GoogleCloudVisionV1p2beta1TextAnnotationTextProperty struct {
6142	// DetectedBreak: Detected start or end of a text segment.
6143	DetectedBreak *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
6144
6145	// DetectedLanguages: A list of detected languages together with
6146	// confidence.
6147	DetectedLanguages []*GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
6148
6149	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
6150	// unconditionally include in API requests. By default, fields with
6151	// empty or default values are omitted from API requests. However, any
6152	// non-pointer, non-interface field appearing in ForceSendFields will be
6153	// sent to the server regardless of whether the field is empty or not.
6154	// This may be used to include empty fields in Patch requests.
6155	ForceSendFields []string `json:"-"`
6156
6157	// NullFields is a list of field names (e.g. "DetectedBreak") to include
6158	// in API requests with the JSON null value. By default, fields with
6159	// empty values are omitted from API requests. However, any field with
6160	// an empty value appearing in NullFields will be sent to the server as
6161	// null. It is an error if a field in this list has a non-empty value.
6162	// This may be used to include null fields in Patch requests.
6163	NullFields []string `json:"-"`
6164}
6165
6166func (s *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
6167	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationTextProperty
6168	raw := NoMethod(*s)
6169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6170}
6171
6172// GoogleCloudVisionV1p2beta1Vertex: A vertex represents a 2D point in
6173// the image. NOTE: the vertex coordinates are in the same scale as the
6174// original image.
6175type GoogleCloudVisionV1p2beta1Vertex struct {
6176	// X: X coordinate.
6177	X int64 `json:"x,omitempty"`
6178
6179	// Y: Y coordinate.
6180	Y int64 `json:"y,omitempty"`
6181
6182	// ForceSendFields is a list of field names (e.g. "X") to
6183	// unconditionally include in API requests. By default, fields with
6184	// empty or default values are omitted from API requests. However, any
6185	// non-pointer, non-interface field appearing in ForceSendFields will be
6186	// sent to the server regardless of whether the field is empty or not.
6187	// This may be used to include empty fields in Patch requests.
6188	ForceSendFields []string `json:"-"`
6189
6190	// NullFields is a list of field names (e.g. "X") to include in API
6191	// requests with the JSON null value. By default, fields with empty
6192	// values are omitted from API requests. However, any field with an
6193	// empty value appearing in NullFields will be sent to the server as
6194	// null. It is an error if a field in this list has a non-empty value.
6195	// This may be used to include null fields in Patch requests.
6196	NullFields []string `json:"-"`
6197}
6198
6199func (s *GoogleCloudVisionV1p2beta1Vertex) MarshalJSON() ([]byte, error) {
6200	type NoMethod GoogleCloudVisionV1p2beta1Vertex
6201	raw := NoMethod(*s)
6202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6203}
6204
6205// GoogleCloudVisionV1p2beta1WebDetection: Relevant information for the
6206// image from the Internet.
6207type GoogleCloudVisionV1p2beta1WebDetection struct {
6208	// BestGuessLabels: The service's best guess as to the topic of the
6209	// request image. Inferred from similar images on the open web.
6210	BestGuessLabels []*GoogleCloudVisionV1p2beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
6211
6212	// FullMatchingImages: Fully matching images from the Internet. Can
6213	// include resized copies of the query image.
6214	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6215
6216	// PagesWithMatchingImages: Web pages containing the matching images
6217	// from the Internet.
6218	PagesWithMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
6219
6220	// PartialMatchingImages: Partial matching images from the Internet.
6221	// Those images are similar enough to share some key-point features. For
6222	// example an original image will likely have partial matching for its
6223	// crops.
6224	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6225
6226	// VisuallySimilarImages: The visually similar image results.
6227	VisuallySimilarImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
6228
6229	// WebEntities: Deduced entities from similar images on the Internet.
6230	WebEntities []*GoogleCloudVisionV1p2beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
6231
6232	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
6233	// unconditionally include in API requests. By default, fields with
6234	// empty or default values are omitted from API requests. However, any
6235	// non-pointer, non-interface field appearing in ForceSendFields will be
6236	// sent to the server regardless of whether the field is empty or not.
6237	// This may be used to include empty fields in Patch requests.
6238	ForceSendFields []string `json:"-"`
6239
6240	// NullFields is a list of field names (e.g. "BestGuessLabels") to
6241	// include in API requests with the JSON null value. By default, fields
6242	// with empty values are omitted from API requests. However, any field
6243	// with an empty value appearing in NullFields will be sent to the
6244	// server as null. It is an error if a field in this list has a
6245	// non-empty value. This may be used to include null fields in Patch
6246	// requests.
6247	NullFields []string `json:"-"`
6248}
6249
6250func (s *GoogleCloudVisionV1p2beta1WebDetection) MarshalJSON() ([]byte, error) {
6251	type NoMethod GoogleCloudVisionV1p2beta1WebDetection
6252	raw := NoMethod(*s)
6253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6254}
6255
6256// GoogleCloudVisionV1p2beta1WebDetectionWebEntity: Entity deduced from
6257// similar images on the Internet.
6258type GoogleCloudVisionV1p2beta1WebDetectionWebEntity struct {
6259	// Description: Canonical description of the entity, in English.
6260	Description string `json:"description,omitempty"`
6261
6262	// EntityId: Opaque entity ID.
6263	EntityId string `json:"entityId,omitempty"`
6264
6265	// Score: Overall relevancy score for the entity. Not normalized and not
6266	// comparable across different image queries.
6267	Score float64 `json:"score,omitempty"`
6268
6269	// ForceSendFields is a list of field names (e.g. "Description") to
6270	// unconditionally include in API requests. By default, fields with
6271	// empty or default values are omitted from API requests. However, any
6272	// non-pointer, non-interface field appearing in ForceSendFields will be
6273	// sent to the server regardless of whether the field is empty or not.
6274	// This may be used to include empty fields in Patch requests.
6275	ForceSendFields []string `json:"-"`
6276
6277	// NullFields is a list of field names (e.g. "Description") to include
6278	// in API requests with the JSON null value. By default, fields with
6279	// empty values are omitted from API requests. However, any field with
6280	// an empty value appearing in NullFields will be sent to the server as
6281	// null. It is an error if a field in this list has a non-empty value.
6282	// This may be used to include null fields in Patch requests.
6283	NullFields []string `json:"-"`
6284}
6285
6286func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
6287	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6288	raw := NoMethod(*s)
6289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6290}
6291
6292func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
6293	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6294	var s1 struct {
6295		Score gensupport.JSONFloat64 `json:"score"`
6296		*NoMethod
6297	}
6298	s1.NoMethod = (*NoMethod)(s)
6299	if err := json.Unmarshal(data, &s1); err != nil {
6300		return err
6301	}
6302	s.Score = float64(s1.Score)
6303	return nil
6304}
6305
6306// GoogleCloudVisionV1p2beta1WebDetectionWebImage: Metadata for online
6307// images.
6308type GoogleCloudVisionV1p2beta1WebDetectionWebImage struct {
6309	// Score: (Deprecated) Overall relevancy score for the image.
6310	Score float64 `json:"score,omitempty"`
6311
6312	// Url: The result image URL.
6313	Url string `json:"url,omitempty"`
6314
6315	// ForceSendFields is a list of field names (e.g. "Score") to
6316	// unconditionally include in API requests. By default, fields with
6317	// empty or default values are omitted from API requests. However, any
6318	// non-pointer, non-interface field appearing in ForceSendFields will be
6319	// sent to the server regardless of whether the field is empty or not.
6320	// This may be used to include empty fields in Patch requests.
6321	ForceSendFields []string `json:"-"`
6322
6323	// NullFields is a list of field names (e.g. "Score") to include in API
6324	// requests with the JSON null value. By default, fields with empty
6325	// values are omitted from API requests. However, any field with an
6326	// empty value appearing in NullFields will be sent to the server as
6327	// null. It is an error if a field in this list has a non-empty value.
6328	// This may be used to include null fields in Patch requests.
6329	NullFields []string `json:"-"`
6330}
6331
6332func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
6333	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6334	raw := NoMethod(*s)
6335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6336}
6337
6338func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
6339	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6340	var s1 struct {
6341		Score gensupport.JSONFloat64 `json:"score"`
6342		*NoMethod
6343	}
6344	s1.NoMethod = (*NoMethod)(s)
6345	if err := json.Unmarshal(data, &s1); err != nil {
6346		return err
6347	}
6348	s.Score = float64(s1.Score)
6349	return nil
6350}
6351
6352// GoogleCloudVisionV1p2beta1WebDetectionWebLabel: Label to provide
6353// extra metadata for the web detection.
6354type GoogleCloudVisionV1p2beta1WebDetectionWebLabel struct {
6355	// Label: Label for extra metadata.
6356	Label string `json:"label,omitempty"`
6357
6358	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
6359	// or "sr-Latn". For more information, see
6360	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6361	LanguageCode string `json:"languageCode,omitempty"`
6362
6363	// ForceSendFields is a list of field names (e.g. "Label") to
6364	// unconditionally include in API requests. By default, fields with
6365	// empty or default values are omitted from API requests. However, any
6366	// non-pointer, non-interface field appearing in ForceSendFields will be
6367	// sent to the server regardless of whether the field is empty or not.
6368	// This may be used to include empty fields in Patch requests.
6369	ForceSendFields []string `json:"-"`
6370
6371	// NullFields is a list of field names (e.g. "Label") to include in API
6372	// requests with the JSON null value. By default, fields with empty
6373	// values are omitted from API requests. However, any field with an
6374	// empty value appearing in NullFields will be sent to the server as
6375	// null. It is an error if a field in this list has a non-empty value.
6376	// This may be used to include null fields in Patch requests.
6377	NullFields []string `json:"-"`
6378}
6379
6380func (s *GoogleCloudVisionV1p2beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
6381	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebLabel
6382	raw := NoMethod(*s)
6383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6384}
6385
6386// GoogleCloudVisionV1p2beta1WebDetectionWebPage: Metadata for web
6387// pages.
6388type GoogleCloudVisionV1p2beta1WebDetectionWebPage struct {
6389	// FullMatchingImages: Fully matching images on the page. Can include
6390	// resized copies of the query image.
6391	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6392
6393	// PageTitle: Title for the web page, may contain HTML markups.
6394	PageTitle string `json:"pageTitle,omitempty"`
6395
6396	// PartialMatchingImages: Partial matching images on the page. Those
6397	// images are similar enough to share some key-point features. For
6398	// example an original image will likely have partial matching for its
6399	// crops.
6400	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6401
6402	// Score: (Deprecated) Overall relevancy score for the web page.
6403	Score float64 `json:"score,omitempty"`
6404
6405	// Url: The result web page URL.
6406	Url string `json:"url,omitempty"`
6407
6408	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
6409	// to unconditionally include in API requests. By default, fields with
6410	// empty or default values are omitted from API requests. However, any
6411	// non-pointer, non-interface field appearing in ForceSendFields will be
6412	// sent to the server regardless of whether the field is empty or not.
6413	// This may be used to include empty fields in Patch requests.
6414	ForceSendFields []string `json:"-"`
6415
6416	// NullFields is a list of field names (e.g. "FullMatchingImages") to
6417	// include in API requests with the JSON null value. By default, fields
6418	// with empty values are omitted from API requests. However, any field
6419	// with an empty value appearing in NullFields will be sent to the
6420	// server as null. It is an error if a field in this list has a
6421	// non-empty value. This may be used to include null fields in Patch
6422	// requests.
6423	NullFields []string `json:"-"`
6424}
6425
6426func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
6427	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6428	raw := NoMethod(*s)
6429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6430}
6431
6432func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
6433	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6434	var s1 struct {
6435		Score gensupport.JSONFloat64 `json:"score"`
6436		*NoMethod
6437	}
6438	s1.NoMethod = (*NoMethod)(s)
6439	if err := json.Unmarshal(data, &s1); err != nil {
6440		return err
6441	}
6442	s.Score = float64(s1.Score)
6443	return nil
6444}
6445
6446// GoogleCloudVisionV1p2beta1Word: A word representation.
6447type GoogleCloudVisionV1p2beta1Word struct {
6448	// BoundingBox: The bounding box for the word. The vertices are in the
6449	// order of top-left, top-right, bottom-right, bottom-left. When a
6450	// rotation of the bounding box is detected the rotation is represented
6451	// as around the top-left corner as defined when the text is read in the
6452	// 'natural' orientation. For example: * when the text is horizontal it
6453	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
6454	// around the top-left corner it becomes: 2----3 | | 1----0 and the
6455	// vertex order will still be (0, 1, 2, 3).
6456	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6457
6458	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
6459	Confidence float64 `json:"confidence,omitempty"`
6460
6461	// Property: Additional information detected for the word.
6462	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6463
6464	// Symbols: List of symbols in the word. The order of the symbols
6465	// follows the natural reading order.
6466	Symbols []*GoogleCloudVisionV1p2beta1Symbol `json:"symbols,omitempty"`
6467
6468	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6469	// unconditionally include in API requests. By default, fields with
6470	// empty or default values are omitted from API requests. However, any
6471	// non-pointer, non-interface field appearing in ForceSendFields will be
6472	// sent to the server regardless of whether the field is empty or not.
6473	// This may be used to include empty fields in Patch requests.
6474	ForceSendFields []string `json:"-"`
6475
6476	// NullFields is a list of field names (e.g. "BoundingBox") to include
6477	// in API requests with the JSON null value. By default, fields with
6478	// empty values are omitted from API requests. However, any field with
6479	// an empty value appearing in NullFields will be sent to the server as
6480	// null. It is an error if a field in this list has a non-empty value.
6481	// This may be used to include null fields in Patch requests.
6482	NullFields []string `json:"-"`
6483}
6484
6485func (s *GoogleCloudVisionV1p2beta1Word) MarshalJSON() ([]byte, error) {
6486	type NoMethod GoogleCloudVisionV1p2beta1Word
6487	raw := NoMethod(*s)
6488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6489}
6490
6491func (s *GoogleCloudVisionV1p2beta1Word) UnmarshalJSON(data []byte) error {
6492	type NoMethod GoogleCloudVisionV1p2beta1Word
6493	var s1 struct {
6494		Confidence gensupport.JSONFloat64 `json:"confidence"`
6495		*NoMethod
6496	}
6497	s1.NoMethod = (*NoMethod)(s)
6498	if err := json.Unmarshal(data, &s1); err != nil {
6499		return err
6500	}
6501	s.Confidence = float64(s1.Confidence)
6502	return nil
6503}
6504
6505// GoogleCloudVisionV1p3beta1AnnotateFileResponse: Response to a single
6506// file annotation request. A file may contain one or more images, which
6507// individually have their own responses.
6508type GoogleCloudVisionV1p3beta1AnnotateFileResponse struct {
6509	// Error: If set, represents the error message for the failed request.
6510	// The `responses` field will not be set in this case.
6511	Error *Status `json:"error,omitempty"`
6512
6513	// InputConfig: Information about the file for which this response is
6514	// generated.
6515	InputConfig *GoogleCloudVisionV1p3beta1InputConfig `json:"inputConfig,omitempty"`
6516
6517	// Responses: Individual responses to images found within the file. This
6518	// field will be empty if the `error` field is set.
6519	Responses []*GoogleCloudVisionV1p3beta1AnnotateImageResponse `json:"responses,omitempty"`
6520
6521	// TotalPages: This field gives the total number of pages in the file.
6522	TotalPages int64 `json:"totalPages,omitempty"`
6523
6524	// ForceSendFields is a list of field names (e.g. "Error") to
6525	// unconditionally include in API requests. By default, fields with
6526	// empty or default values are omitted from API requests. However, any
6527	// non-pointer, non-interface field appearing in ForceSendFields will be
6528	// sent to the server regardless of whether the field is empty or not.
6529	// This may be used to include empty fields in Patch requests.
6530	ForceSendFields []string `json:"-"`
6531
6532	// NullFields is a list of field names (e.g. "Error") to include in API
6533	// requests with the JSON null value. By default, fields with empty
6534	// values are omitted from API requests. However, any field with an
6535	// empty value appearing in NullFields will be sent to the server as
6536	// null. It is an error if a field in this list has a non-empty value.
6537	// This may be used to include null fields in Patch requests.
6538	NullFields []string `json:"-"`
6539}
6540
6541func (s *GoogleCloudVisionV1p3beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
6542	type NoMethod GoogleCloudVisionV1p3beta1AnnotateFileResponse
6543	raw := NoMethod(*s)
6544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6545}
6546
6547// GoogleCloudVisionV1p3beta1AnnotateImageResponse: Response to an image
6548// annotation request.
6549type GoogleCloudVisionV1p3beta1AnnotateImageResponse struct {
6550	// Context: If present, contextual information is needed to understand
6551	// where this image comes from.
6552	Context *GoogleCloudVisionV1p3beta1ImageAnnotationContext `json:"context,omitempty"`
6553
6554	// CropHintsAnnotation: If present, crop hints have completed
6555	// successfully.
6556	CropHintsAnnotation *GoogleCloudVisionV1p3beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
6557
6558	// Error: If set, represents the error message for the operation. Note
6559	// that filled-in image annotations are guaranteed to be correct, even
6560	// when `error` is set.
6561	Error *Status `json:"error,omitempty"`
6562
6563	// FaceAnnotations: If present, face detection has completed
6564	// successfully.
6565	FaceAnnotations []*GoogleCloudVisionV1p3beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
6566
6567	// FullTextAnnotation: If present, text (OCR) detection or document
6568	// (OCR) text detection has completed successfully. This annotation
6569	// provides the structural hierarchy for the OCR detected text.
6570	FullTextAnnotation *GoogleCloudVisionV1p3beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
6571
6572	// ImagePropertiesAnnotation: If present, image properties were
6573	// extracted successfully.
6574	ImagePropertiesAnnotation *GoogleCloudVisionV1p3beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
6575
6576	// LabelAnnotations: If present, label detection has completed
6577	// successfully.
6578	LabelAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
6579
6580	// LandmarkAnnotations: If present, landmark detection has completed
6581	// successfully.
6582	LandmarkAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
6583
6584	// LocalizedObjectAnnotations: If present, localized object detection
6585	// has completed successfully. This will be sorted descending by
6586	// confidence score.
6587	LocalizedObjectAnnotations []*GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
6588
6589	// LogoAnnotations: If present, logo detection has completed
6590	// successfully.
6591	LogoAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
6592
6593	// ProductSearchResults: If present, product search has completed
6594	// successfully.
6595	ProductSearchResults *GoogleCloudVisionV1p3beta1ProductSearchResults `json:"productSearchResults,omitempty"`
6596
6597	// SafeSearchAnnotation: If present, safe-search annotation has
6598	// completed successfully.
6599	SafeSearchAnnotation *GoogleCloudVisionV1p3beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
6600
6601	// TextAnnotations: If present, text (OCR) detection has completed
6602	// successfully.
6603	TextAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"textAnnotations,omitempty"`
6604
6605	// WebDetection: If present, web detection has completed successfully.
6606	WebDetection *GoogleCloudVisionV1p3beta1WebDetection `json:"webDetection,omitempty"`
6607
6608	// ForceSendFields is a list of field names (e.g. "Context") to
6609	// unconditionally include in API requests. By default, fields with
6610	// empty or default values are omitted from API requests. However, any
6611	// non-pointer, non-interface field appearing in ForceSendFields will be
6612	// sent to the server regardless of whether the field is empty or not.
6613	// This may be used to include empty fields in Patch requests.
6614	ForceSendFields []string `json:"-"`
6615
6616	// NullFields is a list of field names (e.g. "Context") to include in
6617	// API requests with the JSON null value. By default, fields with empty
6618	// values are omitted from API requests. However, any field with an
6619	// empty value appearing in NullFields will be sent to the server as
6620	// null. It is an error if a field in this list has a non-empty value.
6621	// This may be used to include null fields in Patch requests.
6622	NullFields []string `json:"-"`
6623}
6624
6625func (s *GoogleCloudVisionV1p3beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
6626	type NoMethod GoogleCloudVisionV1p3beta1AnnotateImageResponse
6627	raw := NoMethod(*s)
6628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6629}
6630
6631// GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse: The response for
6632// a single offline file annotation request.
6633type GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse struct {
6634	// OutputConfig: The output location and metadata from
6635	// AsyncAnnotateFileRequest.
6636	OutputConfig *GoogleCloudVisionV1p3beta1OutputConfig `json:"outputConfig,omitempty"`
6637
6638	// ForceSendFields is a list of field names (e.g. "OutputConfig") 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. "OutputConfig") 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 *GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
6656	type NoMethod GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse
6657	raw := NoMethod(*s)
6658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6659}
6660
6661// GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse: Response
6662// to an async batch file annotation request.
6663type GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse struct {
6664	// Responses: The list of file annotation responses, one for each
6665	// request in AsyncBatchAnnotateFilesRequest.
6666	Responses []*GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
6667
6668	// ForceSendFields is a list of field names (e.g. "Responses") to
6669	// unconditionally include in API requests. By default, fields with
6670	// empty or default values are omitted from API requests. However, any
6671	// non-pointer, non-interface field appearing in ForceSendFields will be
6672	// sent to the server regardless of whether the field is empty or not.
6673	// This may be used to include empty fields in Patch requests.
6674	ForceSendFields []string `json:"-"`
6675
6676	// NullFields is a list of field names (e.g. "Responses") to include in
6677	// API requests with the JSON null value. By default, fields with empty
6678	// values are omitted from API requests. However, any field with an
6679	// empty value appearing in NullFields will be sent to the server as
6680	// null. It is an error if a field in this list has a non-empty value.
6681	// This may be used to include null fields in Patch requests.
6682	NullFields []string `json:"-"`
6683}
6684
6685func (s *GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
6686	type NoMethod GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse
6687	raw := NoMethod(*s)
6688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6689}
6690
6691// GoogleCloudVisionV1p3beta1BatchOperationMetadata: Metadata for the
6692// batch operations such as the current state. This is included in the
6693// `metadata` field of the `Operation` returned by the `GetOperation`
6694// call of the `google::longrunning::Operations` service.
6695type GoogleCloudVisionV1p3beta1BatchOperationMetadata struct {
6696	// EndTime: The time when the batch request is finished and
6697	// google.longrunning.Operation.done is set to true.
6698	EndTime string `json:"endTime,omitempty"`
6699
6700	// State: The current state of the batch operation.
6701	//
6702	// Possible values:
6703	//   "STATE_UNSPECIFIED" - Invalid.
6704	//   "PROCESSING" - Request is actively being processed.
6705	//   "SUCCESSFUL" - The request is done and at least one item has been
6706	// successfully processed.
6707	//   "FAILED" - The request is done and no item has been successfully
6708	// processed.
6709	//   "CANCELLED" - The request is done after the
6710	// longrunning.Operations.CancelOperation has been called by the user.
6711	// Any records that were processed before the cancel command are output
6712	// as specified in the request.
6713	State string `json:"state,omitempty"`
6714
6715	// SubmitTime: The time when the batch request was submitted to the
6716	// server.
6717	SubmitTime string `json:"submitTime,omitempty"`
6718
6719	// ForceSendFields is a list of field names (e.g. "EndTime") to
6720	// unconditionally include in API requests. By default, fields with
6721	// empty or default values are omitted from API requests. However, any
6722	// non-pointer, non-interface field appearing in ForceSendFields will be
6723	// sent to the server regardless of whether the field is empty or not.
6724	// This may be used to include empty fields in Patch requests.
6725	ForceSendFields []string `json:"-"`
6726
6727	// NullFields is a list of field names (e.g. "EndTime") to include in
6728	// API requests with the JSON null value. By default, fields with empty
6729	// values are omitted from API requests. However, any field with an
6730	// empty value appearing in NullFields will be sent to the server as
6731	// null. It is an error if a field in this list has a non-empty value.
6732	// This may be used to include null fields in Patch requests.
6733	NullFields []string `json:"-"`
6734}
6735
6736func (s *GoogleCloudVisionV1p3beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
6737	type NoMethod GoogleCloudVisionV1p3beta1BatchOperationMetadata
6738	raw := NoMethod(*s)
6739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6740}
6741
6742// GoogleCloudVisionV1p3beta1Block: Logical element on the page.
6743type GoogleCloudVisionV1p3beta1Block struct {
6744	// BlockType: Detected block type (text, image etc) for this block.
6745	//
6746	// Possible values:
6747	//   "UNKNOWN" - Unknown block type.
6748	//   "TEXT" - Regular text block.
6749	//   "TABLE" - Table block.
6750	//   "PICTURE" - Image block.
6751	//   "RULER" - Horizontal/vertical line box.
6752	//   "BARCODE" - Barcode block.
6753	BlockType string `json:"blockType,omitempty"`
6754
6755	// BoundingBox: The bounding box for the block. The vertices are in the
6756	// order of top-left, top-right, bottom-right, bottom-left. When a
6757	// rotation of the bounding box is detected the rotation is represented
6758	// as around the top-left corner as defined when the text is read in the
6759	// 'natural' orientation. For example: * when the text is horizontal it
6760	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
6761	// around the top-left corner it becomes: 2----3 | | 1----0 and the
6762	// vertex order will still be (0, 1, 2, 3).
6763	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
6764
6765	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
6766	Confidence float64 `json:"confidence,omitempty"`
6767
6768	// Paragraphs: List of paragraphs in this block (if this blocks is of
6769	// type text).
6770	Paragraphs []*GoogleCloudVisionV1p3beta1Paragraph `json:"paragraphs,omitempty"`
6771
6772	// Property: Additional information detected for the block.
6773	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
6774
6775	// ForceSendFields is a list of field names (e.g. "BlockType") to
6776	// unconditionally include in API requests. By default, fields with
6777	// empty or default values are omitted from API requests. However, any
6778	// non-pointer, non-interface field appearing in ForceSendFields will be
6779	// sent to the server regardless of whether the field is empty or not.
6780	// This may be used to include empty fields in Patch requests.
6781	ForceSendFields []string `json:"-"`
6782
6783	// NullFields is a list of field names (e.g. "BlockType") to include in
6784	// API requests with the JSON null value. By default, fields with empty
6785	// values are omitted from API requests. However, any field with an
6786	// empty value appearing in NullFields will be sent to the server as
6787	// null. It is an error if a field in this list has a non-empty value.
6788	// This may be used to include null fields in Patch requests.
6789	NullFields []string `json:"-"`
6790}
6791
6792func (s *GoogleCloudVisionV1p3beta1Block) MarshalJSON() ([]byte, error) {
6793	type NoMethod GoogleCloudVisionV1p3beta1Block
6794	raw := NoMethod(*s)
6795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6796}
6797
6798func (s *GoogleCloudVisionV1p3beta1Block) UnmarshalJSON(data []byte) error {
6799	type NoMethod GoogleCloudVisionV1p3beta1Block
6800	var s1 struct {
6801		Confidence gensupport.JSONFloat64 `json:"confidence"`
6802		*NoMethod
6803	}
6804	s1.NoMethod = (*NoMethod)(s)
6805	if err := json.Unmarshal(data, &s1); err != nil {
6806		return err
6807	}
6808	s.Confidence = float64(s1.Confidence)
6809	return nil
6810}
6811
6812// GoogleCloudVisionV1p3beta1BoundingPoly: A bounding polygon for the
6813// detected image annotation.
6814type GoogleCloudVisionV1p3beta1BoundingPoly struct {
6815	// NormalizedVertices: The bounding polygon normalized vertices.
6816	NormalizedVertices []*GoogleCloudVisionV1p3beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
6817
6818	// Vertices: The bounding polygon vertices.
6819	Vertices []*GoogleCloudVisionV1p3beta1Vertex `json:"vertices,omitempty"`
6820
6821	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
6822	// to unconditionally include in API requests. By default, fields with
6823	// empty or default values are omitted from API requests. However, any
6824	// non-pointer, non-interface field appearing in ForceSendFields will be
6825	// sent to the server regardless of whether the field is empty or not.
6826	// This may be used to include empty fields in Patch requests.
6827	ForceSendFields []string `json:"-"`
6828
6829	// NullFields is a list of field names (e.g. "NormalizedVertices") to
6830	// include in API requests with the JSON null value. By default, fields
6831	// with empty values are omitted from API requests. However, any field
6832	// with an empty value appearing in NullFields will be sent to the
6833	// server as null. It is an error if a field in this list has a
6834	// non-empty value. This may be used to include null fields in Patch
6835	// requests.
6836	NullFields []string `json:"-"`
6837}
6838
6839func (s *GoogleCloudVisionV1p3beta1BoundingPoly) MarshalJSON() ([]byte, error) {
6840	type NoMethod GoogleCloudVisionV1p3beta1BoundingPoly
6841	raw := NoMethod(*s)
6842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6843}
6844
6845// GoogleCloudVisionV1p3beta1ColorInfo: Color information consists of
6846// RGB channels, score, and the fraction of the image that the color
6847// occupies in the image.
6848type GoogleCloudVisionV1p3beta1ColorInfo struct {
6849	// Color: RGB components of the color.
6850	Color *Color `json:"color,omitempty"`
6851
6852	// PixelFraction: The fraction of pixels the color occupies in the
6853	// image. Value in range [0, 1].
6854	PixelFraction float64 `json:"pixelFraction,omitempty"`
6855
6856	// Score: Image-specific score for this color. Value in range [0, 1].
6857	Score float64 `json:"score,omitempty"`
6858
6859	// ForceSendFields is a list of field names (e.g. "Color") to
6860	// unconditionally include in API requests. By default, fields with
6861	// empty or default values are omitted from API requests. However, any
6862	// non-pointer, non-interface field appearing in ForceSendFields will be
6863	// sent to the server regardless of whether the field is empty or not.
6864	// This may be used to include empty fields in Patch requests.
6865	ForceSendFields []string `json:"-"`
6866
6867	// NullFields is a list of field names (e.g. "Color") to include in API
6868	// requests with the JSON null value. By default, fields with empty
6869	// values are omitted from API requests. However, any field with an
6870	// empty value appearing in NullFields will be sent to the server as
6871	// null. It is an error if a field in this list has a non-empty value.
6872	// This may be used to include null fields in Patch requests.
6873	NullFields []string `json:"-"`
6874}
6875
6876func (s *GoogleCloudVisionV1p3beta1ColorInfo) MarshalJSON() ([]byte, error) {
6877	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
6878	raw := NoMethod(*s)
6879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6880}
6881
6882func (s *GoogleCloudVisionV1p3beta1ColorInfo) UnmarshalJSON(data []byte) error {
6883	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
6884	var s1 struct {
6885		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
6886		Score         gensupport.JSONFloat64 `json:"score"`
6887		*NoMethod
6888	}
6889	s1.NoMethod = (*NoMethod)(s)
6890	if err := json.Unmarshal(data, &s1); err != nil {
6891		return err
6892	}
6893	s.PixelFraction = float64(s1.PixelFraction)
6894	s.Score = float64(s1.Score)
6895	return nil
6896}
6897
6898// GoogleCloudVisionV1p3beta1CropHint: Single crop hint that is used to
6899// generate a new crop when serving an image.
6900type GoogleCloudVisionV1p3beta1CropHint struct {
6901	// BoundingPoly: The bounding polygon for the crop region. The
6902	// coordinates of the bounding box are in the original image's scale.
6903	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
6904
6905	// Confidence: Confidence of this being a salient region. Range [0, 1].
6906	Confidence float64 `json:"confidence,omitempty"`
6907
6908	// ImportanceFraction: Fraction of importance of this salient region
6909	// with respect to the original image.
6910	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
6911
6912	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
6913	// unconditionally include in API requests. By default, fields with
6914	// empty or default values are omitted from API requests. However, any
6915	// non-pointer, non-interface field appearing in ForceSendFields will be
6916	// sent to the server regardless of whether the field is empty or not.
6917	// This may be used to include empty fields in Patch requests.
6918	ForceSendFields []string `json:"-"`
6919
6920	// NullFields is a list of field names (e.g. "BoundingPoly") to include
6921	// in API requests with the JSON null value. By default, fields with
6922	// empty values are omitted from API requests. However, any field with
6923	// an empty value appearing in NullFields will be sent to the server as
6924	// null. It is an error if a field in this list has a non-empty value.
6925	// This may be used to include null fields in Patch requests.
6926	NullFields []string `json:"-"`
6927}
6928
6929func (s *GoogleCloudVisionV1p3beta1CropHint) MarshalJSON() ([]byte, error) {
6930	type NoMethod GoogleCloudVisionV1p3beta1CropHint
6931	raw := NoMethod(*s)
6932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6933}
6934
6935func (s *GoogleCloudVisionV1p3beta1CropHint) UnmarshalJSON(data []byte) error {
6936	type NoMethod GoogleCloudVisionV1p3beta1CropHint
6937	var s1 struct {
6938		Confidence         gensupport.JSONFloat64 `json:"confidence"`
6939		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
6940		*NoMethod
6941	}
6942	s1.NoMethod = (*NoMethod)(s)
6943	if err := json.Unmarshal(data, &s1); err != nil {
6944		return err
6945	}
6946	s.Confidence = float64(s1.Confidence)
6947	s.ImportanceFraction = float64(s1.ImportanceFraction)
6948	return nil
6949}
6950
6951// GoogleCloudVisionV1p3beta1CropHintsAnnotation: Set of crop hints that
6952// are used to generate new crops when serving images.
6953type GoogleCloudVisionV1p3beta1CropHintsAnnotation struct {
6954	// CropHints: Crop hint results.
6955	CropHints []*GoogleCloudVisionV1p3beta1CropHint `json:"cropHints,omitempty"`
6956
6957	// ForceSendFields is a list of field names (e.g. "CropHints") to
6958	// unconditionally include in API requests. By default, fields with
6959	// empty or default values are omitted from API requests. However, any
6960	// non-pointer, non-interface field appearing in ForceSendFields will be
6961	// sent to the server regardless of whether the field is empty or not.
6962	// This may be used to include empty fields in Patch requests.
6963	ForceSendFields []string `json:"-"`
6964
6965	// NullFields is a list of field names (e.g. "CropHints") to include in
6966	// API requests with the JSON null value. By default, fields with empty
6967	// values are omitted from API requests. However, any field with an
6968	// empty value appearing in NullFields will be sent to the server as
6969	// null. It is an error if a field in this list has a non-empty value.
6970	// This may be used to include null fields in Patch requests.
6971	NullFields []string `json:"-"`
6972}
6973
6974func (s *GoogleCloudVisionV1p3beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
6975	type NoMethod GoogleCloudVisionV1p3beta1CropHintsAnnotation
6976	raw := NoMethod(*s)
6977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6978}
6979
6980// GoogleCloudVisionV1p3beta1DominantColorsAnnotation: Set of dominant
6981// colors and their corresponding scores.
6982type GoogleCloudVisionV1p3beta1DominantColorsAnnotation struct {
6983	// Colors: RGB color values with their score and pixel fraction.
6984	Colors []*GoogleCloudVisionV1p3beta1ColorInfo `json:"colors,omitempty"`
6985
6986	// ForceSendFields is a list of field names (e.g. "Colors") to
6987	// unconditionally include in API requests. By default, fields with
6988	// empty or default values are omitted from API requests. However, any
6989	// non-pointer, non-interface field appearing in ForceSendFields will be
6990	// sent to the server regardless of whether the field is empty or not.
6991	// This may be used to include empty fields in Patch requests.
6992	ForceSendFields []string `json:"-"`
6993
6994	// NullFields is a list of field names (e.g. "Colors") to include in API
6995	// requests with the JSON null value. By default, fields with empty
6996	// values are omitted from API requests. However, any field with an
6997	// empty value appearing in NullFields will be sent to the server as
6998	// null. It is an error if a field in this list has a non-empty value.
6999	// This may be used to include null fields in Patch requests.
7000	NullFields []string `json:"-"`
7001}
7002
7003func (s *GoogleCloudVisionV1p3beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
7004	type NoMethod GoogleCloudVisionV1p3beta1DominantColorsAnnotation
7005	raw := NoMethod(*s)
7006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7007}
7008
7009// GoogleCloudVisionV1p3beta1EntityAnnotation: Set of detected entity
7010// features.
7011type GoogleCloudVisionV1p3beta1EntityAnnotation struct {
7012	// BoundingPoly: Image region to which this entity belongs. Not produced
7013	// for `LABEL_DETECTION` features.
7014	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7015
7016	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
7017	// entity detection in an image. For example, for an image in which the
7018	// "Eiffel Tower" entity is detected, this field represents the
7019	// confidence that there is a tower in the query image. Range [0, 1].
7020	Confidence float64 `json:"confidence,omitempty"`
7021
7022	// Description: Entity textual description, expressed in its `locale`
7023	// language.
7024	Description string `json:"description,omitempty"`
7025
7026	// Locale: The language code for the locale in which the entity textual
7027	// `description` is expressed.
7028	Locale string `json:"locale,omitempty"`
7029
7030	// Locations: The location information for the detected entity. Multiple
7031	// `LocationInfo` elements can be present because one location may
7032	// indicate the location of the scene in the image, and another location
7033	// may indicate the location of the place where the image was taken.
7034	// Location information is usually present for landmarks.
7035	Locations []*GoogleCloudVisionV1p3beta1LocationInfo `json:"locations,omitempty"`
7036
7037	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
7038	// Graph Search API (https://developers.google.com/knowledge-graph/).
7039	Mid string `json:"mid,omitempty"`
7040
7041	// Properties: Some entities may have optional user-supplied `Property`
7042	// (name/value) fields, such a score or string that qualifies the
7043	// entity.
7044	Properties []*GoogleCloudVisionV1p3beta1Property `json:"properties,omitempty"`
7045
7046	// Score: Overall score of the result. Range [0, 1].
7047	Score float64 `json:"score,omitempty"`
7048
7049	// Topicality: The relevancy of the ICA (Image Content Annotation) label
7050	// to the image. For example, the relevancy of "tower" is likely higher
7051	// to an image containing the detected "Eiffel Tower" than to an image
7052	// containing a detected distant towering building, even though the
7053	// confidence that there is a tower in each image may be the same. Range
7054	// [0, 1].
7055	Topicality float64 `json:"topicality,omitempty"`
7056
7057	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7058	// unconditionally include in API requests. By default, fields with
7059	// empty or default values are omitted from API requests. However, any
7060	// non-pointer, non-interface field appearing in ForceSendFields will be
7061	// sent to the server regardless of whether the field is empty or not.
7062	// This may be used to include empty fields in Patch requests.
7063	ForceSendFields []string `json:"-"`
7064
7065	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7066	// in API requests with the JSON null value. By default, fields with
7067	// empty values are omitted from API requests. However, any field with
7068	// an empty value appearing in NullFields will be sent to the server as
7069	// null. It is an error if a field in this list has a non-empty value.
7070	// This may be used to include null fields in Patch requests.
7071	NullFields []string `json:"-"`
7072}
7073
7074func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
7075	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7076	raw := NoMethod(*s)
7077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7078}
7079
7080func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
7081	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7082	var s1 struct {
7083		Confidence gensupport.JSONFloat64 `json:"confidence"`
7084		Score      gensupport.JSONFloat64 `json:"score"`
7085		Topicality gensupport.JSONFloat64 `json:"topicality"`
7086		*NoMethod
7087	}
7088	s1.NoMethod = (*NoMethod)(s)
7089	if err := json.Unmarshal(data, &s1); err != nil {
7090		return err
7091	}
7092	s.Confidence = float64(s1.Confidence)
7093	s.Score = float64(s1.Score)
7094	s.Topicality = float64(s1.Topicality)
7095	return nil
7096}
7097
7098// GoogleCloudVisionV1p3beta1FaceAnnotation: A face annotation object
7099// contains the results of face detection.
7100type GoogleCloudVisionV1p3beta1FaceAnnotation struct {
7101	// AngerLikelihood: Anger likelihood.
7102	//
7103	// Possible values:
7104	//   "UNKNOWN" - Unknown likelihood.
7105	//   "VERY_UNLIKELY" - It is very unlikely.
7106	//   "UNLIKELY" - It is unlikely.
7107	//   "POSSIBLE" - It is possible.
7108	//   "LIKELY" - It is likely.
7109	//   "VERY_LIKELY" - It is very likely.
7110	AngerLikelihood string `json:"angerLikelihood,omitempty"`
7111
7112	// BlurredLikelihood: Blurred likelihood.
7113	//
7114	// Possible values:
7115	//   "UNKNOWN" - Unknown likelihood.
7116	//   "VERY_UNLIKELY" - It is very unlikely.
7117	//   "UNLIKELY" - It is unlikely.
7118	//   "POSSIBLE" - It is possible.
7119	//   "LIKELY" - It is likely.
7120	//   "VERY_LIKELY" - It is very likely.
7121	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
7122
7123	// BoundingPoly: The bounding polygon around the face. The coordinates
7124	// of the bounding box are in the original image's scale. The bounding
7125	// box is computed to "frame" the face in accordance with human
7126	// expectations. It is based on the landmarker results. Note that one or
7127	// more x and/or y coordinates may not be generated in the
7128	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
7129	// appears in the image to be annotated.
7130	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7131
7132	// DetectionConfidence: Detection confidence. Range [0, 1].
7133	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
7134
7135	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
7136	// than the `boundingPoly`, and encloses only the skin part of the face.
7137	// Typically, it is used to eliminate the face from any image analysis
7138	// that detects the "amount of skin" visible in an image. It is not
7139	// based on the landmarker results, only on the initial face detection,
7140	// hence the fd (face detection) prefix.
7141	FdBoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
7142
7143	// HeadwearLikelihood: Headwear likelihood.
7144	//
7145	// Possible values:
7146	//   "UNKNOWN" - Unknown likelihood.
7147	//   "VERY_UNLIKELY" - It is very unlikely.
7148	//   "UNLIKELY" - It is unlikely.
7149	//   "POSSIBLE" - It is possible.
7150	//   "LIKELY" - It is likely.
7151	//   "VERY_LIKELY" - It is very likely.
7152	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
7153
7154	// JoyLikelihood: Joy likelihood.
7155	//
7156	// Possible values:
7157	//   "UNKNOWN" - Unknown likelihood.
7158	//   "VERY_UNLIKELY" - It is very unlikely.
7159	//   "UNLIKELY" - It is unlikely.
7160	//   "POSSIBLE" - It is possible.
7161	//   "LIKELY" - It is likely.
7162	//   "VERY_LIKELY" - It is very likely.
7163	JoyLikelihood string `json:"joyLikelihood,omitempty"`
7164
7165	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
7166	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
7167
7168	// Landmarks: Detected face landmarks.
7169	Landmarks []*GoogleCloudVisionV1p3beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
7170
7171	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
7172	// that the face is pointing relative to the vertical plane
7173	// perpendicular to the image. Range [-180,180].
7174	PanAngle float64 `json:"panAngle,omitempty"`
7175
7176	// RollAngle: Roll angle, which indicates the amount of
7177	// clockwise/anti-clockwise rotation of the face relative to the image
7178	// vertical about the axis perpendicular to the face. Range [-180,180].
7179	RollAngle float64 `json:"rollAngle,omitempty"`
7180
7181	// SorrowLikelihood: Sorrow likelihood.
7182	//
7183	// Possible values:
7184	//   "UNKNOWN" - Unknown likelihood.
7185	//   "VERY_UNLIKELY" - It is very unlikely.
7186	//   "UNLIKELY" - It is unlikely.
7187	//   "POSSIBLE" - It is possible.
7188	//   "LIKELY" - It is likely.
7189	//   "VERY_LIKELY" - It is very likely.
7190	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
7191
7192	// SurpriseLikelihood: Surprise likelihood.
7193	//
7194	// Possible values:
7195	//   "UNKNOWN" - Unknown likelihood.
7196	//   "VERY_UNLIKELY" - It is very unlikely.
7197	//   "UNLIKELY" - It is unlikely.
7198	//   "POSSIBLE" - It is possible.
7199	//   "LIKELY" - It is likely.
7200	//   "VERY_LIKELY" - It is very likely.
7201	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
7202
7203	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
7204	// that the face is pointing relative to the image's horizontal plane.
7205	// Range [-180,180].
7206	TiltAngle float64 `json:"tiltAngle,omitempty"`
7207
7208	// UnderExposedLikelihood: Under-exposed likelihood.
7209	//
7210	// Possible values:
7211	//   "UNKNOWN" - Unknown likelihood.
7212	//   "VERY_UNLIKELY" - It is very unlikely.
7213	//   "UNLIKELY" - It is unlikely.
7214	//   "POSSIBLE" - It is possible.
7215	//   "LIKELY" - It is likely.
7216	//   "VERY_LIKELY" - It is very likely.
7217	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
7218
7219	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
7220	// unconditionally include in API requests. By default, fields with
7221	// empty or default values are omitted from API requests. However, any
7222	// non-pointer, non-interface field appearing in ForceSendFields will be
7223	// sent to the server regardless of whether the field is empty or not.
7224	// This may be used to include empty fields in Patch requests.
7225	ForceSendFields []string `json:"-"`
7226
7227	// NullFields is a list of field names (e.g. "AngerLikelihood") to
7228	// include in API requests with the JSON null value. By default, fields
7229	// with empty values are omitted from API requests. However, any field
7230	// with an empty value appearing in NullFields will be sent to the
7231	// server as null. It is an error if a field in this list has a
7232	// non-empty value. This may be used to include null fields in Patch
7233	// requests.
7234	NullFields []string `json:"-"`
7235}
7236
7237func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
7238	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7239	raw := NoMethod(*s)
7240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7241}
7242
7243func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
7244	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7245	var s1 struct {
7246		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
7247		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
7248		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
7249		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
7250		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
7251		*NoMethod
7252	}
7253	s1.NoMethod = (*NoMethod)(s)
7254	if err := json.Unmarshal(data, &s1); err != nil {
7255		return err
7256	}
7257	s.DetectionConfidence = float64(s1.DetectionConfidence)
7258	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
7259	s.PanAngle = float64(s1.PanAngle)
7260	s.RollAngle = float64(s1.RollAngle)
7261	s.TiltAngle = float64(s1.TiltAngle)
7262	return nil
7263}
7264
7265// GoogleCloudVisionV1p3beta1FaceAnnotationLandmark: A face-specific
7266// landmark (for example, a face feature).
7267type GoogleCloudVisionV1p3beta1FaceAnnotationLandmark struct {
7268	// Position: Face landmark position.
7269	Position *GoogleCloudVisionV1p3beta1Position `json:"position,omitempty"`
7270
7271	// Type: Face landmark type.
7272	//
7273	// Possible values:
7274	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
7275	// filled.
7276	//   "LEFT_EYE" - Left eye.
7277	//   "RIGHT_EYE" - Right eye.
7278	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
7279	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
7280	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
7281	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
7282	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
7283	//   "NOSE_TIP" - Nose tip.
7284	//   "UPPER_LIP" - Upper lip.
7285	//   "LOWER_LIP" - Lower lip.
7286	//   "MOUTH_LEFT" - Mouth left.
7287	//   "MOUTH_RIGHT" - Mouth right.
7288	//   "MOUTH_CENTER" - Mouth center.
7289	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
7290	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
7291	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
7292	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
7293	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
7294	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
7295	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
7296	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
7297	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
7298	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
7299	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
7300	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
7301	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
7302	//   "LEFT_EAR_TRAGION" - Left ear tragion.
7303	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
7304	//   "LEFT_EYE_PUPIL" - Left eye pupil.
7305	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
7306	//   "FOREHEAD_GLABELLA" - Forehead glabella.
7307	//   "CHIN_GNATHION" - Chin gnathion.
7308	//   "CHIN_LEFT_GONION" - Chin left gonion.
7309	//   "CHIN_RIGHT_GONION" - Chin right gonion.
7310	//   "LEFT_CHEEK_CENTER" - Left cheek center.
7311	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
7312	Type string `json:"type,omitempty"`
7313
7314	// ForceSendFields is a list of field names (e.g. "Position") to
7315	// unconditionally include in API requests. By default, fields with
7316	// empty or default values are omitted from API requests. However, any
7317	// non-pointer, non-interface field appearing in ForceSendFields will be
7318	// sent to the server regardless of whether the field is empty or not.
7319	// This may be used to include empty fields in Patch requests.
7320	ForceSendFields []string `json:"-"`
7321
7322	// NullFields is a list of field names (e.g. "Position") to include in
7323	// API requests with the JSON null value. By default, fields with empty
7324	// values are omitted from API requests. However, any field with an
7325	// empty value appearing in NullFields will be sent to the server as
7326	// null. It is an error if a field in this list has a non-empty value.
7327	// This may be used to include null fields in Patch requests.
7328	NullFields []string `json:"-"`
7329}
7330
7331func (s *GoogleCloudVisionV1p3beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
7332	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotationLandmark
7333	raw := NoMethod(*s)
7334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7335}
7336
7337// GoogleCloudVisionV1p3beta1GcsDestination: The Google Cloud Storage
7338// location where the output will be written to.
7339type GoogleCloudVisionV1p3beta1GcsDestination struct {
7340	// Uri: Google Cloud Storage URI prefix where the results will be
7341	// stored. Results will be in JSON format and preceded by its
7342	// corresponding input URI prefix. This field can either represent a gcs
7343	// file prefix or gcs directory. In either case, the uri should be
7344	// unique because in order to get all of the output files, you will need
7345	// to do a wildcard gcs search on the uri prefix you provide. Examples:
7346	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
7347	// will be created in gs://bucket-name/here/ and the names of the output
7348	// files will begin with "filenameprefix". * Directory Prefix:
7349	// gs://bucket-name/some/location/ The output files will be created in
7350	// gs://bucket-name/some/location/ and the names of the output files
7351	// could be anything because there was no filename prefix specified. If
7352	// multiple outputs, each response is still AnnotateFileResponse, each
7353	// of which contains some subset of the full list of
7354	// AnnotateImageResponse. Multiple outputs can happen if, for example,
7355	// the output JSON is too large and overflows into multiple sharded
7356	// files.
7357	Uri string `json:"uri,omitempty"`
7358
7359	// ForceSendFields is a list of field names (e.g. "Uri") to
7360	// unconditionally include in API requests. By default, fields with
7361	// empty or default values are omitted from API requests. However, any
7362	// non-pointer, non-interface field appearing in ForceSendFields will be
7363	// sent to the server regardless of whether the field is empty or not.
7364	// This may be used to include empty fields in Patch requests.
7365	ForceSendFields []string `json:"-"`
7366
7367	// NullFields is a list of field names (e.g. "Uri") to include in API
7368	// requests with the JSON null value. By default, fields with empty
7369	// values are omitted from API requests. However, any field with an
7370	// empty value appearing in NullFields will be sent to the server as
7371	// null. It is an error if a field in this list has a non-empty value.
7372	// This may be used to include null fields in Patch requests.
7373	NullFields []string `json:"-"`
7374}
7375
7376func (s *GoogleCloudVisionV1p3beta1GcsDestination) MarshalJSON() ([]byte, error) {
7377	type NoMethod GoogleCloudVisionV1p3beta1GcsDestination
7378	raw := NoMethod(*s)
7379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7380}
7381
7382// GoogleCloudVisionV1p3beta1GcsSource: The Google Cloud Storage
7383// location where the input will be read from.
7384type GoogleCloudVisionV1p3beta1GcsSource struct {
7385	// Uri: Google Cloud Storage URI for the input file. This must only be a
7386	// Google Cloud Storage object. Wildcards are not currently supported.
7387	Uri string `json:"uri,omitempty"`
7388
7389	// ForceSendFields is a list of field names (e.g. "Uri") 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. "Uri") to include in API
7398	// requests with the JSON null value. By default, fields with empty
7399	// values are omitted from API requests. However, any field with an
7400	// empty value appearing in NullFields will be sent to the server as
7401	// null. It is an error if a field in this list has a non-empty value.
7402	// This may be used to include null fields in Patch requests.
7403	NullFields []string `json:"-"`
7404}
7405
7406func (s *GoogleCloudVisionV1p3beta1GcsSource) MarshalJSON() ([]byte, error) {
7407	type NoMethod GoogleCloudVisionV1p3beta1GcsSource
7408	raw := NoMethod(*s)
7409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7410}
7411
7412// GoogleCloudVisionV1p3beta1ImageAnnotationContext: If an image was
7413// produced from a file (e.g. a PDF), this message gives information
7414// about the source of that image.
7415type GoogleCloudVisionV1p3beta1ImageAnnotationContext struct {
7416	// PageNumber: If the file was a PDF or TIFF, this field gives the page
7417	// number within the file used to produce the image.
7418	PageNumber int64 `json:"pageNumber,omitempty"`
7419
7420	// Uri: The URI of the file used to produce the image.
7421	Uri string `json:"uri,omitempty"`
7422
7423	// ForceSendFields is a list of field names (e.g. "PageNumber") to
7424	// unconditionally include in API requests. By default, fields with
7425	// empty or default values are omitted from API requests. However, any
7426	// non-pointer, non-interface field appearing in ForceSendFields will be
7427	// sent to the server regardless of whether the field is empty or not.
7428	// This may be used to include empty fields in Patch requests.
7429	ForceSendFields []string `json:"-"`
7430
7431	// NullFields is a list of field names (e.g. "PageNumber") to include in
7432	// API requests with the JSON null value. By default, fields with empty
7433	// values are omitted from API requests. However, any field with an
7434	// empty value appearing in NullFields will be sent to the server as
7435	// null. It is an error if a field in this list has a non-empty value.
7436	// This may be used to include null fields in Patch requests.
7437	NullFields []string `json:"-"`
7438}
7439
7440func (s *GoogleCloudVisionV1p3beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
7441	type NoMethod GoogleCloudVisionV1p3beta1ImageAnnotationContext
7442	raw := NoMethod(*s)
7443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7444}
7445
7446// GoogleCloudVisionV1p3beta1ImageProperties: Stores image properties,
7447// such as dominant colors.
7448type GoogleCloudVisionV1p3beta1ImageProperties struct {
7449	// DominantColors: If present, dominant colors completed successfully.
7450	DominantColors *GoogleCloudVisionV1p3beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
7451
7452	// ForceSendFields is a list of field names (e.g. "DominantColors") to
7453	// unconditionally include in API requests. By default, fields with
7454	// empty or default values are omitted from API requests. However, any
7455	// non-pointer, non-interface field appearing in ForceSendFields will be
7456	// sent to the server regardless of whether the field is empty or not.
7457	// This may be used to include empty fields in Patch requests.
7458	ForceSendFields []string `json:"-"`
7459
7460	// NullFields is a list of field names (e.g. "DominantColors") to
7461	// include in API requests with the JSON null value. By default, fields
7462	// with empty values are omitted from API requests. However, any field
7463	// with an empty value appearing in NullFields will be sent to the
7464	// server as null. It is an error if a field in this list has a
7465	// non-empty value. This may be used to include null fields in Patch
7466	// requests.
7467	NullFields []string `json:"-"`
7468}
7469
7470func (s *GoogleCloudVisionV1p3beta1ImageProperties) MarshalJSON() ([]byte, error) {
7471	type NoMethod GoogleCloudVisionV1p3beta1ImageProperties
7472	raw := NoMethod(*s)
7473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7474}
7475
7476// GoogleCloudVisionV1p3beta1ImportProductSetsResponse: Response message
7477// for the `ImportProductSets` method. This message is returned by the
7478// google.longrunning.Operations.GetOperation method in the returned
7479// google.longrunning.Operation.response field.
7480type GoogleCloudVisionV1p3beta1ImportProductSetsResponse struct {
7481	// ReferenceImages: The list of reference_images that are imported
7482	// successfully.
7483	ReferenceImages []*GoogleCloudVisionV1p3beta1ReferenceImage `json:"referenceImages,omitempty"`
7484
7485	// Statuses: The rpc status for each ImportProductSet request, including
7486	// both successes and errors. The number of statuses here matches the
7487	// number of lines in the csv file, and statuses[i] stores the success
7488	// or failure status of processing the i-th line of the csv, starting
7489	// from line 0.
7490	Statuses []*Status `json:"statuses,omitempty"`
7491
7492	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
7493	// unconditionally include in API requests. By default, fields with
7494	// empty or default values are omitted from API requests. However, any
7495	// non-pointer, non-interface field appearing in ForceSendFields will be
7496	// sent to the server regardless of whether the field is empty or not.
7497	// This may be used to include empty fields in Patch requests.
7498	ForceSendFields []string `json:"-"`
7499
7500	// NullFields is a list of field names (e.g. "ReferenceImages") to
7501	// include in API requests with the JSON null value. By default, fields
7502	// with empty values are omitted from API requests. However, any field
7503	// with an empty value appearing in NullFields will be sent to the
7504	// server as null. It is an error if a field in this list has a
7505	// non-empty value. This may be used to include null fields in Patch
7506	// requests.
7507	NullFields []string `json:"-"`
7508}
7509
7510func (s *GoogleCloudVisionV1p3beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
7511	type NoMethod GoogleCloudVisionV1p3beta1ImportProductSetsResponse
7512	raw := NoMethod(*s)
7513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7514}
7515
7516// GoogleCloudVisionV1p3beta1InputConfig: The desired input location and
7517// metadata.
7518type GoogleCloudVisionV1p3beta1InputConfig struct {
7519	// Content: File content, represented as a stream of bytes. Note: As
7520	// with all `bytes` fields, protobuffers use a pure binary
7521	// representation, whereas JSON representations use base64. Currently,
7522	// this field only works for BatchAnnotateFiles requests. It does not
7523	// work for AsyncBatchAnnotateFiles requests.
7524	Content string `json:"content,omitempty"`
7525
7526	// GcsSource: The Google Cloud Storage location to read the input from.
7527	GcsSource *GoogleCloudVisionV1p3beta1GcsSource `json:"gcsSource,omitempty"`
7528
7529	// MimeType: The type of the file. Currently only "application/pdf",
7530	// "image/tiff" and "image/gif" are supported. Wildcards are not
7531	// supported.
7532	MimeType string `json:"mimeType,omitempty"`
7533
7534	// ForceSendFields is a list of field names (e.g. "Content") to
7535	// unconditionally include in API requests. By default, fields with
7536	// empty or default values are omitted from API requests. However, any
7537	// non-pointer, non-interface field appearing in ForceSendFields will be
7538	// sent to the server regardless of whether the field is empty or not.
7539	// This may be used to include empty fields in Patch requests.
7540	ForceSendFields []string `json:"-"`
7541
7542	// NullFields is a list of field names (e.g. "Content") to include in
7543	// API requests with the JSON null value. By default, fields with empty
7544	// values are omitted from API requests. However, any field with an
7545	// empty value appearing in NullFields will be sent to the server as
7546	// null. It is an error if a field in this list has a non-empty value.
7547	// This may be used to include null fields in Patch requests.
7548	NullFields []string `json:"-"`
7549}
7550
7551func (s *GoogleCloudVisionV1p3beta1InputConfig) MarshalJSON() ([]byte, error) {
7552	type NoMethod GoogleCloudVisionV1p3beta1InputConfig
7553	raw := NoMethod(*s)
7554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7555}
7556
7557// GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation: Set of detected
7558// objects with bounding boxes.
7559type GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation struct {
7560	// BoundingPoly: Image region to which this object belongs. This must be
7561	// populated.
7562	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7563
7564	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
7565	// For more information, see
7566	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
7567	LanguageCode string `json:"languageCode,omitempty"`
7568
7569	// Mid: Object ID that should align with EntityAnnotation mid.
7570	Mid string `json:"mid,omitempty"`
7571
7572	// Name: Object name, expressed in its `language_code` language.
7573	Name string `json:"name,omitempty"`
7574
7575	// Score: Score of the result. Range [0, 1].
7576	Score float64 `json:"score,omitempty"`
7577
7578	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7579	// unconditionally include in API requests. By default, fields with
7580	// empty or default values are omitted from API requests. However, any
7581	// non-pointer, non-interface field appearing in ForceSendFields will be
7582	// sent to the server regardless of whether the field is empty or not.
7583	// This may be used to include empty fields in Patch requests.
7584	ForceSendFields []string `json:"-"`
7585
7586	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7587	// in API requests with the JSON null value. By default, fields with
7588	// empty values are omitted from API requests. However, any field with
7589	// an empty value appearing in NullFields will be sent to the server as
7590	// null. It is an error if a field in this list has a non-empty value.
7591	// This may be used to include null fields in Patch requests.
7592	NullFields []string `json:"-"`
7593}
7594
7595func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
7596	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
7597	raw := NoMethod(*s)
7598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7599}
7600
7601func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
7602	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
7603	var s1 struct {
7604		Score gensupport.JSONFloat64 `json:"score"`
7605		*NoMethod
7606	}
7607	s1.NoMethod = (*NoMethod)(s)
7608	if err := json.Unmarshal(data, &s1); err != nil {
7609		return err
7610	}
7611	s.Score = float64(s1.Score)
7612	return nil
7613}
7614
7615// GoogleCloudVisionV1p3beta1LocationInfo: Detected entity location
7616// information.
7617type GoogleCloudVisionV1p3beta1LocationInfo struct {
7618	// LatLng: lat/long location coordinates.
7619	LatLng *LatLng `json:"latLng,omitempty"`
7620
7621	// ForceSendFields is a list of field names (e.g. "LatLng") to
7622	// unconditionally include in API requests. By default, fields with
7623	// empty or default values are omitted from API requests. However, any
7624	// non-pointer, non-interface field appearing in ForceSendFields will be
7625	// sent to the server regardless of whether the field is empty or not.
7626	// This may be used to include empty fields in Patch requests.
7627	ForceSendFields []string `json:"-"`
7628
7629	// NullFields is a list of field names (e.g. "LatLng") to include in API
7630	// requests with the JSON null value. By default, fields with empty
7631	// values are omitted from API requests. However, any field with an
7632	// empty value appearing in NullFields will be sent to the server as
7633	// null. It is an error if a field in this list has a non-empty value.
7634	// This may be used to include null fields in Patch requests.
7635	NullFields []string `json:"-"`
7636}
7637
7638func (s *GoogleCloudVisionV1p3beta1LocationInfo) MarshalJSON() ([]byte, error) {
7639	type NoMethod GoogleCloudVisionV1p3beta1LocationInfo
7640	raw := NoMethod(*s)
7641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7642}
7643
7644// GoogleCloudVisionV1p3beta1NormalizedVertex: A vertex represents a 2D
7645// point in the image. NOTE: the normalized vertex coordinates are
7646// relative to the original image and range from 0 to 1.
7647type GoogleCloudVisionV1p3beta1NormalizedVertex struct {
7648	// X: X coordinate.
7649	X float64 `json:"x,omitempty"`
7650
7651	// Y: Y coordinate.
7652	Y float64 `json:"y,omitempty"`
7653
7654	// ForceSendFields is a list of field names (e.g. "X") to
7655	// unconditionally include in API requests. By default, fields with
7656	// empty or default values are omitted from API requests. However, any
7657	// non-pointer, non-interface field appearing in ForceSendFields will be
7658	// sent to the server regardless of whether the field is empty or not.
7659	// This may be used to include empty fields in Patch requests.
7660	ForceSendFields []string `json:"-"`
7661
7662	// NullFields is a list of field names (e.g. "X") to include in API
7663	// requests with the JSON null value. By default, fields with empty
7664	// values are omitted from API requests. However, any field with an
7665	// empty value appearing in NullFields will be sent to the server as
7666	// null. It is an error if a field in this list has a non-empty value.
7667	// This may be used to include null fields in Patch requests.
7668	NullFields []string `json:"-"`
7669}
7670
7671func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
7672	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
7673	raw := NoMethod(*s)
7674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7675}
7676
7677func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
7678	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
7679	var s1 struct {
7680		X gensupport.JSONFloat64 `json:"x"`
7681		Y gensupport.JSONFloat64 `json:"y"`
7682		*NoMethod
7683	}
7684	s1.NoMethod = (*NoMethod)(s)
7685	if err := json.Unmarshal(data, &s1); err != nil {
7686		return err
7687	}
7688	s.X = float64(s1.X)
7689	s.Y = float64(s1.Y)
7690	return nil
7691}
7692
7693// GoogleCloudVisionV1p3beta1OperationMetadata: Contains metadata for
7694// the BatchAnnotateImages operation.
7695type GoogleCloudVisionV1p3beta1OperationMetadata struct {
7696	// CreateTime: The time when the batch request was received.
7697	CreateTime string `json:"createTime,omitempty"`
7698
7699	// State: Current state of the batch operation.
7700	//
7701	// Possible values:
7702	//   "STATE_UNSPECIFIED" - Invalid.
7703	//   "CREATED" - Request is received.
7704	//   "RUNNING" - Request is actively being processed.
7705	//   "DONE" - The batch processing is done.
7706	//   "CANCELLED" - The batch processing was cancelled.
7707	State string `json:"state,omitempty"`
7708
7709	// UpdateTime: The time when the operation result was last updated.
7710	UpdateTime string `json:"updateTime,omitempty"`
7711
7712	// ForceSendFields is a list of field names (e.g. "CreateTime") to
7713	// unconditionally include in API requests. By default, fields with
7714	// empty or default values are omitted from API requests. However, any
7715	// non-pointer, non-interface field appearing in ForceSendFields will be
7716	// sent to the server regardless of whether the field is empty or not.
7717	// This may be used to include empty fields in Patch requests.
7718	ForceSendFields []string `json:"-"`
7719
7720	// NullFields is a list of field names (e.g. "CreateTime") to include in
7721	// API requests with the JSON null value. By default, fields with empty
7722	// values are omitted from API requests. However, any field with an
7723	// empty value appearing in NullFields will be sent to the server as
7724	// null. It is an error if a field in this list has a non-empty value.
7725	// This may be used to include null fields in Patch requests.
7726	NullFields []string `json:"-"`
7727}
7728
7729func (s *GoogleCloudVisionV1p3beta1OperationMetadata) MarshalJSON() ([]byte, error) {
7730	type NoMethod GoogleCloudVisionV1p3beta1OperationMetadata
7731	raw := NoMethod(*s)
7732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7733}
7734
7735// GoogleCloudVisionV1p3beta1OutputConfig: The desired output location
7736// and metadata.
7737type GoogleCloudVisionV1p3beta1OutputConfig struct {
7738	// BatchSize: The max number of response protos to put into each output
7739	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
7740	// not specified, the default value is 20. For example, for one pdf file
7741	// with 100 pages, 100 response protos will be generated. If
7742	// `batch_size` = 20, then 5 json files each containing 20 response
7743	// protos will be written under the prefix `gcs_destination`.`uri`.
7744	// Currently, batch_size only applies to GcsDestination, with potential
7745	// future support for other output configurations.
7746	BatchSize int64 `json:"batchSize,omitempty"`
7747
7748	// GcsDestination: The Google Cloud Storage location to write the
7749	// output(s) to.
7750	GcsDestination *GoogleCloudVisionV1p3beta1GcsDestination `json:"gcsDestination,omitempty"`
7751
7752	// ForceSendFields is a list of field names (e.g. "BatchSize") to
7753	// unconditionally include in API requests. By default, fields with
7754	// empty or default values are omitted from API requests. However, any
7755	// non-pointer, non-interface field appearing in ForceSendFields will be
7756	// sent to the server regardless of whether the field is empty or not.
7757	// This may be used to include empty fields in Patch requests.
7758	ForceSendFields []string `json:"-"`
7759
7760	// NullFields is a list of field names (e.g. "BatchSize") to include in
7761	// API requests with the JSON null value. By default, fields with empty
7762	// values are omitted from API requests. However, any field with an
7763	// empty value appearing in NullFields will be sent to the server as
7764	// null. It is an error if a field in this list has a non-empty value.
7765	// This may be used to include null fields in Patch requests.
7766	NullFields []string `json:"-"`
7767}
7768
7769func (s *GoogleCloudVisionV1p3beta1OutputConfig) MarshalJSON() ([]byte, error) {
7770	type NoMethod GoogleCloudVisionV1p3beta1OutputConfig
7771	raw := NoMethod(*s)
7772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7773}
7774
7775// GoogleCloudVisionV1p3beta1Page: Detected page from OCR.
7776type GoogleCloudVisionV1p3beta1Page struct {
7777	// Blocks: List of blocks of text, images etc on this page.
7778	Blocks []*GoogleCloudVisionV1p3beta1Block `json:"blocks,omitempty"`
7779
7780	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
7781	Confidence float64 `json:"confidence,omitempty"`
7782
7783	// Height: Page height. For PDFs the unit is points. For images
7784	// (including TIFFs) the unit is pixels.
7785	Height int64 `json:"height,omitempty"`
7786
7787	// Property: Additional information detected on the page.
7788	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7789
7790	// Width: Page width. For PDFs the unit is points. For images (including
7791	// TIFFs) the unit is pixels.
7792	Width int64 `json:"width,omitempty"`
7793
7794	// ForceSendFields is a list of field names (e.g. "Blocks") to
7795	// unconditionally include in API requests. By default, fields with
7796	// empty or default values are omitted from API requests. However, any
7797	// non-pointer, non-interface field appearing in ForceSendFields will be
7798	// sent to the server regardless of whether the field is empty or not.
7799	// This may be used to include empty fields in Patch requests.
7800	ForceSendFields []string `json:"-"`
7801
7802	// NullFields is a list of field names (e.g. "Blocks") to include in API
7803	// requests with the JSON null value. By default, fields with empty
7804	// values are omitted from API requests. However, any field with an
7805	// empty value appearing in NullFields will be sent to the server as
7806	// null. It is an error if a field in this list has a non-empty value.
7807	// This may be used to include null fields in Patch requests.
7808	NullFields []string `json:"-"`
7809}
7810
7811func (s *GoogleCloudVisionV1p3beta1Page) MarshalJSON() ([]byte, error) {
7812	type NoMethod GoogleCloudVisionV1p3beta1Page
7813	raw := NoMethod(*s)
7814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7815}
7816
7817func (s *GoogleCloudVisionV1p3beta1Page) UnmarshalJSON(data []byte) error {
7818	type NoMethod GoogleCloudVisionV1p3beta1Page
7819	var s1 struct {
7820		Confidence gensupport.JSONFloat64 `json:"confidence"`
7821		*NoMethod
7822	}
7823	s1.NoMethod = (*NoMethod)(s)
7824	if err := json.Unmarshal(data, &s1); err != nil {
7825		return err
7826	}
7827	s.Confidence = float64(s1.Confidence)
7828	return nil
7829}
7830
7831// GoogleCloudVisionV1p3beta1Paragraph: Structural unit of text
7832// representing a number of words in certain order.
7833type GoogleCloudVisionV1p3beta1Paragraph struct {
7834	// BoundingBox: The bounding box for the paragraph. The vertices are in
7835	// the order of top-left, top-right, bottom-right, bottom-left. When a
7836	// rotation of the bounding box is detected the rotation is represented
7837	// as around the top-left corner as defined when the text is read in the
7838	// 'natural' orientation. For example: * when the text is horizontal it
7839	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
7840	// around the top-left corner it becomes: 2----3 | | 1----0 and the
7841	// vertex order will still be (0, 1, 2, 3).
7842	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
7843
7844	// Confidence: Confidence of the OCR results for the paragraph. Range
7845	// [0, 1].
7846	Confidence float64 `json:"confidence,omitempty"`
7847
7848	// Property: Additional information detected for the paragraph.
7849	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7850
7851	// Words: List of all words in this paragraph.
7852	Words []*GoogleCloudVisionV1p3beta1Word `json:"words,omitempty"`
7853
7854	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
7855	// unconditionally include in API requests. By default, fields with
7856	// empty or default values are omitted from API requests. However, any
7857	// non-pointer, non-interface field appearing in ForceSendFields will be
7858	// sent to the server regardless of whether the field is empty or not.
7859	// This may be used to include empty fields in Patch requests.
7860	ForceSendFields []string `json:"-"`
7861
7862	// NullFields is a list of field names (e.g. "BoundingBox") to include
7863	// in API requests with the JSON null value. By default, fields with
7864	// empty values are omitted from API requests. However, any field with
7865	// an empty value appearing in NullFields will be sent to the server as
7866	// null. It is an error if a field in this list has a non-empty value.
7867	// This may be used to include null fields in Patch requests.
7868	NullFields []string `json:"-"`
7869}
7870
7871func (s *GoogleCloudVisionV1p3beta1Paragraph) MarshalJSON() ([]byte, error) {
7872	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
7873	raw := NoMethod(*s)
7874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7875}
7876
7877func (s *GoogleCloudVisionV1p3beta1Paragraph) UnmarshalJSON(data []byte) error {
7878	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
7879	var s1 struct {
7880		Confidence gensupport.JSONFloat64 `json:"confidence"`
7881		*NoMethod
7882	}
7883	s1.NoMethod = (*NoMethod)(s)
7884	if err := json.Unmarshal(data, &s1); err != nil {
7885		return err
7886	}
7887	s.Confidence = float64(s1.Confidence)
7888	return nil
7889}
7890
7891// GoogleCloudVisionV1p3beta1Position: A 3D position in the image, used
7892// primarily for Face detection landmarks. A valid Position must have
7893// both x and y coordinates. The position coordinates are in the same
7894// scale as the original image.
7895type GoogleCloudVisionV1p3beta1Position struct {
7896	// X: X coordinate.
7897	X float64 `json:"x,omitempty"`
7898
7899	// Y: Y coordinate.
7900	Y float64 `json:"y,omitempty"`
7901
7902	// Z: Z coordinate (or depth).
7903	Z float64 `json:"z,omitempty"`
7904
7905	// ForceSendFields is a list of field names (e.g. "X") to
7906	// unconditionally include in API requests. By default, fields with
7907	// empty or default values are omitted from API requests. However, any
7908	// non-pointer, non-interface field appearing in ForceSendFields will be
7909	// sent to the server regardless of whether the field is empty or not.
7910	// This may be used to include empty fields in Patch requests.
7911	ForceSendFields []string `json:"-"`
7912
7913	// NullFields is a list of field names (e.g. "X") to include in API
7914	// requests with the JSON null value. By default, fields with empty
7915	// values are omitted from API requests. However, any field with an
7916	// empty value appearing in NullFields will be sent to the server as
7917	// null. It is an error if a field in this list has a non-empty value.
7918	// This may be used to include null fields in Patch requests.
7919	NullFields []string `json:"-"`
7920}
7921
7922func (s *GoogleCloudVisionV1p3beta1Position) MarshalJSON() ([]byte, error) {
7923	type NoMethod GoogleCloudVisionV1p3beta1Position
7924	raw := NoMethod(*s)
7925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7926}
7927
7928func (s *GoogleCloudVisionV1p3beta1Position) UnmarshalJSON(data []byte) error {
7929	type NoMethod GoogleCloudVisionV1p3beta1Position
7930	var s1 struct {
7931		X gensupport.JSONFloat64 `json:"x"`
7932		Y gensupport.JSONFloat64 `json:"y"`
7933		Z gensupport.JSONFloat64 `json:"z"`
7934		*NoMethod
7935	}
7936	s1.NoMethod = (*NoMethod)(s)
7937	if err := json.Unmarshal(data, &s1); err != nil {
7938		return err
7939	}
7940	s.X = float64(s1.X)
7941	s.Y = float64(s1.Y)
7942	s.Z = float64(s1.Z)
7943	return nil
7944}
7945
7946// GoogleCloudVisionV1p3beta1Product: A Product contains
7947// ReferenceImages.
7948type GoogleCloudVisionV1p3beta1Product struct {
7949	// Description: User-provided metadata to be stored with this product.
7950	// Must be at most 4096 characters long.
7951	Description string `json:"description,omitempty"`
7952
7953	// DisplayName: The user-provided name for this Product. Must not be
7954	// empty. Must be at most 4096 characters long.
7955	DisplayName string `json:"displayName,omitempty"`
7956
7957	// Name: The resource name of the product. Format is:
7958	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
7959	// field is ignored when creating a product.
7960	Name string `json:"name,omitempty"`
7961
7962	// ProductCategory: Immutable. The category for the product identified
7963	// by the reference image. This should be one of "homegoods-v2",
7964	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
7965	// legacy categories "homegoods", "apparel", and "toys" are still
7966	// supported, but these should not be used for new products.
7967	ProductCategory string `json:"productCategory,omitempty"`
7968
7969	// ProductLabels: Key-value pairs that can be attached to a product. At
7970	// query time, constraints can be specified based on the product_labels.
7971	// Note that integer values can be provided as strings, e.g. "1199".
7972	// Only strings with integer values can match a range-based restriction
7973	// which is to be supported soon. Multiple values can be assigned to the
7974	// same key. One product may have up to 500 product_labels. Notice that
7975	// the total number of distinct product_labels over all products in one
7976	// ProductSet cannot exceed 1M, otherwise the product search pipeline
7977	// will refuse to work for that ProductSet.
7978	ProductLabels []*GoogleCloudVisionV1p3beta1ProductKeyValue `json:"productLabels,omitempty"`
7979
7980	// ForceSendFields is a list of field names (e.g. "Description") to
7981	// unconditionally include in API requests. By default, fields with
7982	// empty or default values are omitted from API requests. However, any
7983	// non-pointer, non-interface field appearing in ForceSendFields will be
7984	// sent to the server regardless of whether the field is empty or not.
7985	// This may be used to include empty fields in Patch requests.
7986	ForceSendFields []string `json:"-"`
7987
7988	// NullFields is a list of field names (e.g. "Description") to include
7989	// in API requests with the JSON null value. By default, fields with
7990	// empty values are omitted from API requests. However, any field with
7991	// an empty value appearing in NullFields will be sent to the server as
7992	// null. It is an error if a field in this list has a non-empty value.
7993	// This may be used to include null fields in Patch requests.
7994	NullFields []string `json:"-"`
7995}
7996
7997func (s *GoogleCloudVisionV1p3beta1Product) MarshalJSON() ([]byte, error) {
7998	type NoMethod GoogleCloudVisionV1p3beta1Product
7999	raw := NoMethod(*s)
8000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8001}
8002
8003// GoogleCloudVisionV1p3beta1ProductKeyValue: A product label
8004// represented as a key-value pair.
8005type GoogleCloudVisionV1p3beta1ProductKeyValue struct {
8006	// Key: The key of the label attached to the product. Cannot be empty
8007	// and cannot exceed 128 bytes.
8008	Key string `json:"key,omitempty"`
8009
8010	// Value: The value of the label attached to the product. Cannot be
8011	// empty and cannot exceed 128 bytes.
8012	Value string `json:"value,omitempty"`
8013
8014	// ForceSendFields is a list of field names (e.g. "Key") to
8015	// unconditionally include in API requests. By default, fields with
8016	// empty or default values are omitted from API requests. However, any
8017	// non-pointer, non-interface field appearing in ForceSendFields will be
8018	// sent to the server regardless of whether the field is empty or not.
8019	// This may be used to include empty fields in Patch requests.
8020	ForceSendFields []string `json:"-"`
8021
8022	// NullFields is a list of field names (e.g. "Key") to include in API
8023	// requests with the JSON null value. By default, fields with empty
8024	// values are omitted from API requests. However, any field with an
8025	// empty value appearing in NullFields will be sent to the server as
8026	// null. It is an error if a field in this list has a non-empty value.
8027	// This may be used to include null fields in Patch requests.
8028	NullFields []string `json:"-"`
8029}
8030
8031func (s *GoogleCloudVisionV1p3beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
8032	type NoMethod GoogleCloudVisionV1p3beta1ProductKeyValue
8033	raw := NoMethod(*s)
8034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8035}
8036
8037// GoogleCloudVisionV1p3beta1ProductSearchResults: Results for a product
8038// search request.
8039type GoogleCloudVisionV1p3beta1ProductSearchResults struct {
8040	// IndexTime: Timestamp of the index which provided these results.
8041	// Products added to the product set and products removed from the
8042	// product set after this time are not reflected in the current results.
8043	IndexTime string `json:"indexTime,omitempty"`
8044
8045	// ProductGroupedResults: List of results grouped by products detected
8046	// in the query image. Each entry corresponds to one bounding polygon in
8047	// the query image, and contains the matching products specific to that
8048	// region. There may be duplicate product matches in the union of all
8049	// the per-product results.
8050	ProductGroupedResults []*GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
8051
8052	// Results: List of results, one for each product match.
8053	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8054
8055	// ForceSendFields is a list of field names (e.g. "IndexTime") to
8056	// unconditionally include in API requests. By default, fields with
8057	// empty or default values are omitted from API requests. However, any
8058	// non-pointer, non-interface field appearing in ForceSendFields will be
8059	// sent to the server regardless of whether the field is empty or not.
8060	// This may be used to include empty fields in Patch requests.
8061	ForceSendFields []string `json:"-"`
8062
8063	// NullFields is a list of field names (e.g. "IndexTime") to include in
8064	// API requests with the JSON null value. By default, fields with empty
8065	// values are omitted from API requests. However, any field with an
8066	// empty value appearing in NullFields will be sent to the server as
8067	// null. It is an error if a field in this list has a non-empty value.
8068	// This may be used to include null fields in Patch requests.
8069	NullFields []string `json:"-"`
8070}
8071
8072func (s *GoogleCloudVisionV1p3beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
8073	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResults
8074	raw := NoMethod(*s)
8075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8076}
8077
8078// GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult:
8079// Information about the products similar to a single product in a query
8080// image.
8081type GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult struct {
8082	// BoundingPoly: The bounding polygon around the product detected in the
8083	// query image.
8084	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8085
8086	// ObjectAnnotations: List of generic predictions for the object in the
8087	// bounding box.
8088	ObjectAnnotations []*GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
8089
8090	// Results: List of results, one for each product match.
8091	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8092
8093	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8094	// unconditionally include in API requests. By default, fields with
8095	// empty or default values are omitted from API requests. However, any
8096	// non-pointer, non-interface field appearing in ForceSendFields will be
8097	// sent to the server regardless of whether the field is empty or not.
8098	// This may be used to include empty fields in Patch requests.
8099	ForceSendFields []string `json:"-"`
8100
8101	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8102	// in API requests with the JSON null value. By default, fields with
8103	// empty values are omitted from API requests. However, any field with
8104	// an empty value appearing in NullFields will be sent to the server as
8105	// null. It is an error if a field in this list has a non-empty value.
8106	// This may be used to include null fields in Patch requests.
8107	NullFields []string `json:"-"`
8108}
8109
8110func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
8111	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult
8112	raw := NoMethod(*s)
8113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8114}
8115
8116// GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation:
8117// Prediction for what the object in the bounding box is.
8118type GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation struct {
8119	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8120	// For more information, see
8121	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8122	LanguageCode string `json:"languageCode,omitempty"`
8123
8124	// Mid: Object ID that should align with EntityAnnotation mid.
8125	Mid string `json:"mid,omitempty"`
8126
8127	// Name: Object name, expressed in its `language_code` language.
8128	Name string `json:"name,omitempty"`
8129
8130	// Score: Score of the result. Range [0, 1].
8131	Score float64 `json:"score,omitempty"`
8132
8133	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
8134	// unconditionally include in API requests. By default, fields with
8135	// empty or default values are omitted from API requests. However, any
8136	// non-pointer, non-interface field appearing in ForceSendFields will be
8137	// sent to the server regardless of whether the field is empty or not.
8138	// This may be used to include empty fields in Patch requests.
8139	ForceSendFields []string `json:"-"`
8140
8141	// NullFields is a list of field names (e.g. "LanguageCode") to include
8142	// in API requests with the JSON null value. By default, fields with
8143	// empty values are omitted from API requests. However, any field with
8144	// an empty value appearing in NullFields will be sent to the server as
8145	// null. It is an error if a field in this list has a non-empty value.
8146	// This may be used to include null fields in Patch requests.
8147	NullFields []string `json:"-"`
8148}
8149
8150func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
8151	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8152	raw := NoMethod(*s)
8153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8154}
8155
8156func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
8157	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8158	var s1 struct {
8159		Score gensupport.JSONFloat64 `json:"score"`
8160		*NoMethod
8161	}
8162	s1.NoMethod = (*NoMethod)(s)
8163	if err := json.Unmarshal(data, &s1); err != nil {
8164		return err
8165	}
8166	s.Score = float64(s1.Score)
8167	return nil
8168}
8169
8170// GoogleCloudVisionV1p3beta1ProductSearchResultsResult: Information
8171// about a product.
8172type GoogleCloudVisionV1p3beta1ProductSearchResultsResult struct {
8173	// Image: The resource name of the image from the product that is the
8174	// closest match to the query.
8175	Image string `json:"image,omitempty"`
8176
8177	// Product: The Product.
8178	Product *GoogleCloudVisionV1p3beta1Product `json:"product,omitempty"`
8179
8180	// Score: A confidence level on the match, ranging from 0 (no
8181	// confidence) to 1 (full confidence).
8182	Score float64 `json:"score,omitempty"`
8183
8184	// ForceSendFields is a list of field names (e.g. "Image") 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. "Image") 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 *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
8202	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8203	raw := NoMethod(*s)
8204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8205}
8206
8207func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
8208	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8209	var s1 struct {
8210		Score gensupport.JSONFloat64 `json:"score"`
8211		*NoMethod
8212	}
8213	s1.NoMethod = (*NoMethod)(s)
8214	if err := json.Unmarshal(data, &s1); err != nil {
8215		return err
8216	}
8217	s.Score = float64(s1.Score)
8218	return nil
8219}
8220
8221// GoogleCloudVisionV1p3beta1Property: A `Property` consists of a
8222// user-supplied name/value pair.
8223type GoogleCloudVisionV1p3beta1Property struct {
8224	// Name: Name of the property.
8225	Name string `json:"name,omitempty"`
8226
8227	// Uint64Value: Value of numeric properties.
8228	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
8229
8230	// Value: Value of the property.
8231	Value string `json:"value,omitempty"`
8232
8233	// ForceSendFields is a list of field names (e.g. "Name") to
8234	// unconditionally include in API requests. By default, fields with
8235	// empty or default values are omitted from API requests. However, any
8236	// non-pointer, non-interface field appearing in ForceSendFields will be
8237	// sent to the server regardless of whether the field is empty or not.
8238	// This may be used to include empty fields in Patch requests.
8239	ForceSendFields []string `json:"-"`
8240
8241	// NullFields is a list of field names (e.g. "Name") to include in API
8242	// requests with the JSON null value. By default, fields with empty
8243	// values are omitted from API requests. However, any field with an
8244	// empty value appearing in NullFields will be sent to the server as
8245	// null. It is an error if a field in this list has a non-empty value.
8246	// This may be used to include null fields in Patch requests.
8247	NullFields []string `json:"-"`
8248}
8249
8250func (s *GoogleCloudVisionV1p3beta1Property) MarshalJSON() ([]byte, error) {
8251	type NoMethod GoogleCloudVisionV1p3beta1Property
8252	raw := NoMethod(*s)
8253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8254}
8255
8256// GoogleCloudVisionV1p3beta1ReferenceImage: A `ReferenceImage`
8257// represents a product image and its associated metadata, such as
8258// bounding boxes.
8259type GoogleCloudVisionV1p3beta1ReferenceImage struct {
8260	// BoundingPolys: Optional. Bounding polygons around the areas of
8261	// interest in the reference image. If this field is empty, the system
8262	// will try to detect regions of interest. At most 10 bounding polygons
8263	// will be used. The provided shape is converted into a non-rotated
8264	// rectangle. Once converted, the small edge of the rectangle must be
8265	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
8266	// less (i.e. 1:3 is ok; 1:5 is not).
8267	BoundingPolys []*GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPolys,omitempty"`
8268
8269	// Name: The resource name of the reference image. Format is:
8270	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
8271	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
8272	Name string `json:"name,omitempty"`
8273
8274	// Uri: Required. The Google Cloud Storage URI of the reference image.
8275	// The URI must start with `gs://`.
8276	Uri string `json:"uri,omitempty"`
8277
8278	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
8279	// unconditionally include in API requests. By default, fields with
8280	// empty or default values are omitted from API requests. However, any
8281	// non-pointer, non-interface field appearing in ForceSendFields will be
8282	// sent to the server regardless of whether the field is empty or not.
8283	// This may be used to include empty fields in Patch requests.
8284	ForceSendFields []string `json:"-"`
8285
8286	// NullFields is a list of field names (e.g. "BoundingPolys") to include
8287	// in API requests with the JSON null value. By default, fields with
8288	// empty values are omitted from API requests. However, any field with
8289	// an empty value appearing in NullFields will be sent to the server as
8290	// null. It is an error if a field in this list has a non-empty value.
8291	// This may be used to include null fields in Patch requests.
8292	NullFields []string `json:"-"`
8293}
8294
8295func (s *GoogleCloudVisionV1p3beta1ReferenceImage) MarshalJSON() ([]byte, error) {
8296	type NoMethod GoogleCloudVisionV1p3beta1ReferenceImage
8297	raw := NoMethod(*s)
8298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8299}
8300
8301// GoogleCloudVisionV1p3beta1SafeSearchAnnotation: Set of features
8302// pertaining to the image, computed by computer vision methods over
8303// safe-search verticals (for example, adult, spoof, medical, violence).
8304type GoogleCloudVisionV1p3beta1SafeSearchAnnotation struct {
8305	// Adult: Represents the adult content likelihood for the image. Adult
8306	// content may contain elements such as nudity, pornographic images or
8307	// cartoons, or sexual activities.
8308	//
8309	// Possible values:
8310	//   "UNKNOWN" - Unknown likelihood.
8311	//   "VERY_UNLIKELY" - It is very unlikely.
8312	//   "UNLIKELY" - It is unlikely.
8313	//   "POSSIBLE" - It is possible.
8314	//   "LIKELY" - It is likely.
8315	//   "VERY_LIKELY" - It is very likely.
8316	Adult string `json:"adult,omitempty"`
8317
8318	// Medical: Likelihood that this is a medical image.
8319	//
8320	// Possible values:
8321	//   "UNKNOWN" - Unknown likelihood.
8322	//   "VERY_UNLIKELY" - It is very unlikely.
8323	//   "UNLIKELY" - It is unlikely.
8324	//   "POSSIBLE" - It is possible.
8325	//   "LIKELY" - It is likely.
8326	//   "VERY_LIKELY" - It is very likely.
8327	Medical string `json:"medical,omitempty"`
8328
8329	// Racy: Likelihood that the request image contains racy content. Racy
8330	// content may include (but is not limited to) skimpy or sheer clothing,
8331	// strategically covered nudity, lewd or provocative poses, or close-ups
8332	// of sensitive body areas.
8333	//
8334	// Possible values:
8335	//   "UNKNOWN" - Unknown likelihood.
8336	//   "VERY_UNLIKELY" - It is very unlikely.
8337	//   "UNLIKELY" - It is unlikely.
8338	//   "POSSIBLE" - It is possible.
8339	//   "LIKELY" - It is likely.
8340	//   "VERY_LIKELY" - It is very likely.
8341	Racy string `json:"racy,omitempty"`
8342
8343	// Spoof: Spoof likelihood. The likelihood that an modification was made
8344	// to the image's canonical version to make it appear funny or
8345	// offensive.
8346	//
8347	// Possible values:
8348	//   "UNKNOWN" - Unknown likelihood.
8349	//   "VERY_UNLIKELY" - It is very unlikely.
8350	//   "UNLIKELY" - It is unlikely.
8351	//   "POSSIBLE" - It is possible.
8352	//   "LIKELY" - It is likely.
8353	//   "VERY_LIKELY" - It is very likely.
8354	Spoof string `json:"spoof,omitempty"`
8355
8356	// Violence: Likelihood that this image contains violent content.
8357	//
8358	// Possible values:
8359	//   "UNKNOWN" - Unknown likelihood.
8360	//   "VERY_UNLIKELY" - It is very unlikely.
8361	//   "UNLIKELY" - It is unlikely.
8362	//   "POSSIBLE" - It is possible.
8363	//   "LIKELY" - It is likely.
8364	//   "VERY_LIKELY" - It is very likely.
8365	Violence string `json:"violence,omitempty"`
8366
8367	// ForceSendFields is a list of field names (e.g. "Adult") to
8368	// unconditionally include in API requests. By default, fields with
8369	// empty or default values are omitted from API requests. However, any
8370	// non-pointer, non-interface field appearing in ForceSendFields will be
8371	// sent to the server regardless of whether the field is empty or not.
8372	// This may be used to include empty fields in Patch requests.
8373	ForceSendFields []string `json:"-"`
8374
8375	// NullFields is a list of field names (e.g. "Adult") to include in API
8376	// requests with the JSON null value. By default, fields with empty
8377	// values are omitted from API requests. However, any field with an
8378	// empty value appearing in NullFields will be sent to the server as
8379	// null. It is an error if a field in this list has a non-empty value.
8380	// This may be used to include null fields in Patch requests.
8381	NullFields []string `json:"-"`
8382}
8383
8384func (s *GoogleCloudVisionV1p3beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
8385	type NoMethod GoogleCloudVisionV1p3beta1SafeSearchAnnotation
8386	raw := NoMethod(*s)
8387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8388}
8389
8390// GoogleCloudVisionV1p3beta1Symbol: A single symbol representation.
8391type GoogleCloudVisionV1p3beta1Symbol struct {
8392	// BoundingBox: The bounding box for the symbol. The vertices are in the
8393	// order of top-left, top-right, bottom-right, bottom-left. When a
8394	// rotation of the bounding box is detected the rotation is represented
8395	// as around the top-left corner as defined when the text is read in the
8396	// 'natural' orientation. For example: * when the text is horizontal it
8397	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
8398	// around the top-left corner it becomes: 2----3 | | 1----0 and the
8399	// vertex order will still be (0, 1, 2, 3).
8400	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8401
8402	// Confidence: Confidence of the OCR results for the symbol. Range [0,
8403	// 1].
8404	Confidence float64 `json:"confidence,omitempty"`
8405
8406	// Property: Additional information detected for the symbol.
8407	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8408
8409	// Text: The actual UTF-8 representation of the symbol.
8410	Text string `json:"text,omitempty"`
8411
8412	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8413	// unconditionally include in API requests. By default, fields with
8414	// empty or default values are omitted from API requests. However, any
8415	// non-pointer, non-interface field appearing in ForceSendFields will be
8416	// sent to the server regardless of whether the field is empty or not.
8417	// This may be used to include empty fields in Patch requests.
8418	ForceSendFields []string `json:"-"`
8419
8420	// NullFields is a list of field names (e.g. "BoundingBox") to include
8421	// in API requests with the JSON null value. By default, fields with
8422	// empty values are omitted from API requests. However, any field with
8423	// an empty value appearing in NullFields will be sent to the server as
8424	// null. It is an error if a field in this list has a non-empty value.
8425	// This may be used to include null fields in Patch requests.
8426	NullFields []string `json:"-"`
8427}
8428
8429func (s *GoogleCloudVisionV1p3beta1Symbol) MarshalJSON() ([]byte, error) {
8430	type NoMethod GoogleCloudVisionV1p3beta1Symbol
8431	raw := NoMethod(*s)
8432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8433}
8434
8435func (s *GoogleCloudVisionV1p3beta1Symbol) UnmarshalJSON(data []byte) error {
8436	type NoMethod GoogleCloudVisionV1p3beta1Symbol
8437	var s1 struct {
8438		Confidence gensupport.JSONFloat64 `json:"confidence"`
8439		*NoMethod
8440	}
8441	s1.NoMethod = (*NoMethod)(s)
8442	if err := json.Unmarshal(data, &s1); err != nil {
8443		return err
8444	}
8445	s.Confidence = float64(s1.Confidence)
8446	return nil
8447}
8448
8449// GoogleCloudVisionV1p3beta1TextAnnotation: TextAnnotation contains a
8450// structured representation of OCR extracted text. The hierarchy of an
8451// OCR extracted text structure is like this: TextAnnotation -> Page ->
8452// Block -> Paragraph -> Word -> Symbol Each structural component,
8453// starting from Page, may further have their own properties. Properties
8454// describe detected languages, breaks etc.. Please refer to the
8455// TextAnnotation.TextProperty message definition below for more detail.
8456type GoogleCloudVisionV1p3beta1TextAnnotation struct {
8457	// Pages: List of pages detected by OCR.
8458	Pages []*GoogleCloudVisionV1p3beta1Page `json:"pages,omitempty"`
8459
8460	// Text: UTF-8 text detected on the pages.
8461	Text string `json:"text,omitempty"`
8462
8463	// ForceSendFields is a list of field names (e.g. "Pages") to
8464	// unconditionally include in API requests. By default, fields with
8465	// empty or default values are omitted from API requests. However, any
8466	// non-pointer, non-interface field appearing in ForceSendFields will be
8467	// sent to the server regardless of whether the field is empty or not.
8468	// This may be used to include empty fields in Patch requests.
8469	ForceSendFields []string `json:"-"`
8470
8471	// NullFields is a list of field names (e.g. "Pages") to include in API
8472	// requests with the JSON null value. By default, fields with empty
8473	// values are omitted from API requests. However, any field with an
8474	// empty value appearing in NullFields will be sent to the server as
8475	// null. It is an error if a field in this list has a non-empty value.
8476	// This may be used to include null fields in Patch requests.
8477	NullFields []string `json:"-"`
8478}
8479
8480func (s *GoogleCloudVisionV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
8481	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotation
8482	raw := NoMethod(*s)
8483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8484}
8485
8486// GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak: Detected start
8487// or end of a structural component.
8488type GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak struct {
8489	// IsPrefix: True if break prepends the element.
8490	IsPrefix bool `json:"isPrefix,omitempty"`
8491
8492	// Type: Detected break type.
8493	//
8494	// Possible values:
8495	//   "UNKNOWN" - Unknown break label type.
8496	//   "SPACE" - Regular space.
8497	//   "SURE_SPACE" - Sure space (very wide).
8498	//   "EOL_SURE_SPACE" - Line-wrapping break.
8499	//   "HYPHEN" - End-line hyphen that is not present in text; does not
8500	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
8501	//   "LINE_BREAK" - Line break that ends a paragraph.
8502	Type string `json:"type,omitempty"`
8503
8504	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
8505	// unconditionally include in API requests. By default, fields with
8506	// empty or default values are omitted from API requests. However, any
8507	// non-pointer, non-interface field appearing in ForceSendFields will be
8508	// sent to the server regardless of whether the field is empty or not.
8509	// This may be used to include empty fields in Patch requests.
8510	ForceSendFields []string `json:"-"`
8511
8512	// NullFields is a list of field names (e.g. "IsPrefix") to include in
8513	// API requests with the JSON null value. By default, fields with empty
8514	// values are omitted from API requests. However, any field with an
8515	// empty value appearing in NullFields will be sent to the server as
8516	// null. It is an error if a field in this list has a non-empty value.
8517	// This may be used to include null fields in Patch requests.
8518	NullFields []string `json:"-"`
8519}
8520
8521func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
8522	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak
8523	raw := NoMethod(*s)
8524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8525}
8526
8527// GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage: Detected
8528// language for a structural component.
8529type GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage struct {
8530	// Confidence: Confidence of detected language. Range [0, 1].
8531	Confidence float64 `json:"confidence,omitempty"`
8532
8533	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8534	// For more information, see
8535	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8536	LanguageCode string `json:"languageCode,omitempty"`
8537
8538	// ForceSendFields is a list of field names (e.g. "Confidence") to
8539	// unconditionally include in API requests. By default, fields with
8540	// empty or default values are omitted from API requests. However, any
8541	// non-pointer, non-interface field appearing in ForceSendFields will be
8542	// sent to the server regardless of whether the field is empty or not.
8543	// This may be used to include empty fields in Patch requests.
8544	ForceSendFields []string `json:"-"`
8545
8546	// NullFields is a list of field names (e.g. "Confidence") to include in
8547	// API requests with the JSON null value. By default, fields with empty
8548	// values are omitted from API requests. However, any field with an
8549	// empty value appearing in NullFields will be sent to the server as
8550	// null. It is an error if a field in this list has a non-empty value.
8551	// This may be used to include null fields in Patch requests.
8552	NullFields []string `json:"-"`
8553}
8554
8555func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
8556	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
8557	raw := NoMethod(*s)
8558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8559}
8560
8561func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
8562	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
8563	var s1 struct {
8564		Confidence gensupport.JSONFloat64 `json:"confidence"`
8565		*NoMethod
8566	}
8567	s1.NoMethod = (*NoMethod)(s)
8568	if err := json.Unmarshal(data, &s1); err != nil {
8569		return err
8570	}
8571	s.Confidence = float64(s1.Confidence)
8572	return nil
8573}
8574
8575// GoogleCloudVisionV1p3beta1TextAnnotationTextProperty: Additional
8576// information detected on the structural component.
8577type GoogleCloudVisionV1p3beta1TextAnnotationTextProperty struct {
8578	// DetectedBreak: Detected start or end of a text segment.
8579	DetectedBreak *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
8580
8581	// DetectedLanguages: A list of detected languages together with
8582	// confidence.
8583	DetectedLanguages []*GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
8584
8585	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
8586	// unconditionally include in API requests. By default, fields with
8587	// empty or default values are omitted from API requests. However, any
8588	// non-pointer, non-interface field appearing in ForceSendFields will be
8589	// sent to the server regardless of whether the field is empty or not.
8590	// This may be used to include empty fields in Patch requests.
8591	ForceSendFields []string `json:"-"`
8592
8593	// NullFields is a list of field names (e.g. "DetectedBreak") to include
8594	// in API requests with the JSON null value. By default, fields with
8595	// empty values are omitted from API requests. However, any field with
8596	// an empty value appearing in NullFields will be sent to the server as
8597	// null. It is an error if a field in this list has a non-empty value.
8598	// This may be used to include null fields in Patch requests.
8599	NullFields []string `json:"-"`
8600}
8601
8602func (s *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
8603	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationTextProperty
8604	raw := NoMethod(*s)
8605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8606}
8607
8608// GoogleCloudVisionV1p3beta1Vertex: A vertex represents a 2D point in
8609// the image. NOTE: the vertex coordinates are in the same scale as the
8610// original image.
8611type GoogleCloudVisionV1p3beta1Vertex struct {
8612	// X: X coordinate.
8613	X int64 `json:"x,omitempty"`
8614
8615	// Y: Y coordinate.
8616	Y int64 `json:"y,omitempty"`
8617
8618	// ForceSendFields is a list of field names (e.g. "X") to
8619	// unconditionally include in API requests. By default, fields with
8620	// empty or default values are omitted from API requests. However, any
8621	// non-pointer, non-interface field appearing in ForceSendFields will be
8622	// sent to the server regardless of whether the field is empty or not.
8623	// This may be used to include empty fields in Patch requests.
8624	ForceSendFields []string `json:"-"`
8625
8626	// NullFields is a list of field names (e.g. "X") to include in API
8627	// requests with the JSON null value. By default, fields with empty
8628	// values are omitted from API requests. However, any field with an
8629	// empty value appearing in NullFields will be sent to the server as
8630	// null. It is an error if a field in this list has a non-empty value.
8631	// This may be used to include null fields in Patch requests.
8632	NullFields []string `json:"-"`
8633}
8634
8635func (s *GoogleCloudVisionV1p3beta1Vertex) MarshalJSON() ([]byte, error) {
8636	type NoMethod GoogleCloudVisionV1p3beta1Vertex
8637	raw := NoMethod(*s)
8638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8639}
8640
8641// GoogleCloudVisionV1p3beta1WebDetection: Relevant information for the
8642// image from the Internet.
8643type GoogleCloudVisionV1p3beta1WebDetection struct {
8644	// BestGuessLabels: The service's best guess as to the topic of the
8645	// request image. Inferred from similar images on the open web.
8646	BestGuessLabels []*GoogleCloudVisionV1p3beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
8647
8648	// FullMatchingImages: Fully matching images from the Internet. Can
8649	// include resized copies of the query image.
8650	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
8651
8652	// PagesWithMatchingImages: Web pages containing the matching images
8653	// from the Internet.
8654	PagesWithMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
8655
8656	// PartialMatchingImages: Partial matching images from the Internet.
8657	// Those images are similar enough to share some key-point features. For
8658	// example an original image will likely have partial matching for its
8659	// crops.
8660	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
8661
8662	// VisuallySimilarImages: The visually similar image results.
8663	VisuallySimilarImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
8664
8665	// WebEntities: Deduced entities from similar images on the Internet.
8666	WebEntities []*GoogleCloudVisionV1p3beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
8667
8668	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
8669	// unconditionally include in API requests. By default, fields with
8670	// empty or default values are omitted from API requests. However, any
8671	// non-pointer, non-interface field appearing in ForceSendFields will be
8672	// sent to the server regardless of whether the field is empty or not.
8673	// This may be used to include empty fields in Patch requests.
8674	ForceSendFields []string `json:"-"`
8675
8676	// NullFields is a list of field names (e.g. "BestGuessLabels") to
8677	// include in API requests with the JSON null value. By default, fields
8678	// with empty values are omitted from API requests. However, any field
8679	// with an empty value appearing in NullFields will be sent to the
8680	// server as null. It is an error if a field in this list has a
8681	// non-empty value. This may be used to include null fields in Patch
8682	// requests.
8683	NullFields []string `json:"-"`
8684}
8685
8686func (s *GoogleCloudVisionV1p3beta1WebDetection) MarshalJSON() ([]byte, error) {
8687	type NoMethod GoogleCloudVisionV1p3beta1WebDetection
8688	raw := NoMethod(*s)
8689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8690}
8691
8692// GoogleCloudVisionV1p3beta1WebDetectionWebEntity: Entity deduced from
8693// similar images on the Internet.
8694type GoogleCloudVisionV1p3beta1WebDetectionWebEntity struct {
8695	// Description: Canonical description of the entity, in English.
8696	Description string `json:"description,omitempty"`
8697
8698	// EntityId: Opaque entity ID.
8699	EntityId string `json:"entityId,omitempty"`
8700
8701	// Score: Overall relevancy score for the entity. Not normalized and not
8702	// comparable across different image queries.
8703	Score float64 `json:"score,omitempty"`
8704
8705	// ForceSendFields is a list of field names (e.g. "Description") to
8706	// unconditionally include in API requests. By default, fields with
8707	// empty or default values are omitted from API requests. However, any
8708	// non-pointer, non-interface field appearing in ForceSendFields will be
8709	// sent to the server regardless of whether the field is empty or not.
8710	// This may be used to include empty fields in Patch requests.
8711	ForceSendFields []string `json:"-"`
8712
8713	// NullFields is a list of field names (e.g. "Description") to include
8714	// in API requests with the JSON null value. By default, fields with
8715	// empty values are omitted from API requests. However, any field with
8716	// an empty value appearing in NullFields will be sent to the server as
8717	// null. It is an error if a field in this list has a non-empty value.
8718	// This may be used to include null fields in Patch requests.
8719	NullFields []string `json:"-"`
8720}
8721
8722func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
8723	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
8724	raw := NoMethod(*s)
8725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8726}
8727
8728func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
8729	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
8730	var s1 struct {
8731		Score gensupport.JSONFloat64 `json:"score"`
8732		*NoMethod
8733	}
8734	s1.NoMethod = (*NoMethod)(s)
8735	if err := json.Unmarshal(data, &s1); err != nil {
8736		return err
8737	}
8738	s.Score = float64(s1.Score)
8739	return nil
8740}
8741
8742// GoogleCloudVisionV1p3beta1WebDetectionWebImage: Metadata for online
8743// images.
8744type GoogleCloudVisionV1p3beta1WebDetectionWebImage struct {
8745	// Score: (Deprecated) Overall relevancy score for the image.
8746	Score float64 `json:"score,omitempty"`
8747
8748	// Url: The result image URL.
8749	Url string `json:"url,omitempty"`
8750
8751	// ForceSendFields is a list of field names (e.g. "Score") to
8752	// unconditionally include in API requests. By default, fields with
8753	// empty or default values are omitted from API requests. However, any
8754	// non-pointer, non-interface field appearing in ForceSendFields will be
8755	// sent to the server regardless of whether the field is empty or not.
8756	// This may be used to include empty fields in Patch requests.
8757	ForceSendFields []string `json:"-"`
8758
8759	// NullFields is a list of field names (e.g. "Score") to include in API
8760	// requests with the JSON null value. By default, fields with empty
8761	// values are omitted from API requests. However, any field with an
8762	// empty value appearing in NullFields will be sent to the server as
8763	// null. It is an error if a field in this list has a non-empty value.
8764	// This may be used to include null fields in Patch requests.
8765	NullFields []string `json:"-"`
8766}
8767
8768func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
8769	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
8770	raw := NoMethod(*s)
8771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8772}
8773
8774func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
8775	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
8776	var s1 struct {
8777		Score gensupport.JSONFloat64 `json:"score"`
8778		*NoMethod
8779	}
8780	s1.NoMethod = (*NoMethod)(s)
8781	if err := json.Unmarshal(data, &s1); err != nil {
8782		return err
8783	}
8784	s.Score = float64(s1.Score)
8785	return nil
8786}
8787
8788// GoogleCloudVisionV1p3beta1WebDetectionWebLabel: Label to provide
8789// extra metadata for the web detection.
8790type GoogleCloudVisionV1p3beta1WebDetectionWebLabel struct {
8791	// Label: Label for extra metadata.
8792	Label string `json:"label,omitempty"`
8793
8794	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
8795	// or "sr-Latn". For more information, see
8796	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8797	LanguageCode string `json:"languageCode,omitempty"`
8798
8799	// ForceSendFields is a list of field names (e.g. "Label") to
8800	// unconditionally include in API requests. By default, fields with
8801	// empty or default values are omitted from API requests. However, any
8802	// non-pointer, non-interface field appearing in ForceSendFields will be
8803	// sent to the server regardless of whether the field is empty or not.
8804	// This may be used to include empty fields in Patch requests.
8805	ForceSendFields []string `json:"-"`
8806
8807	// NullFields is a list of field names (e.g. "Label") to include in API
8808	// requests with the JSON null value. By default, fields with empty
8809	// values are omitted from API requests. However, any field with an
8810	// empty value appearing in NullFields will be sent to the server as
8811	// null. It is an error if a field in this list has a non-empty value.
8812	// This may be used to include null fields in Patch requests.
8813	NullFields []string `json:"-"`
8814}
8815
8816func (s *GoogleCloudVisionV1p3beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
8817	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebLabel
8818	raw := NoMethod(*s)
8819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8820}
8821
8822// GoogleCloudVisionV1p3beta1WebDetectionWebPage: Metadata for web
8823// pages.
8824type GoogleCloudVisionV1p3beta1WebDetectionWebPage struct {
8825	// FullMatchingImages: Fully matching images on the page. Can include
8826	// resized copies of the query image.
8827	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
8828
8829	// PageTitle: Title for the web page, may contain HTML markups.
8830	PageTitle string `json:"pageTitle,omitempty"`
8831
8832	// PartialMatchingImages: Partial matching images on the page. Those
8833	// images are similar enough to share some key-point features. For
8834	// example an original image will likely have partial matching for its
8835	// crops.
8836	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
8837
8838	// Score: (Deprecated) Overall relevancy score for the web page.
8839	Score float64 `json:"score,omitempty"`
8840
8841	// Url: The result web page URL.
8842	Url string `json:"url,omitempty"`
8843
8844	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
8845	// to unconditionally include in API requests. By default, fields with
8846	// empty or default values are omitted from API requests. However, any
8847	// non-pointer, non-interface field appearing in ForceSendFields will be
8848	// sent to the server regardless of whether the field is empty or not.
8849	// This may be used to include empty fields in Patch requests.
8850	ForceSendFields []string `json:"-"`
8851
8852	// NullFields is a list of field names (e.g. "FullMatchingImages") to
8853	// include in API requests with the JSON null value. By default, fields
8854	// with empty values are omitted from API requests. However, any field
8855	// with an empty value appearing in NullFields will be sent to the
8856	// server as null. It is an error if a field in this list has a
8857	// non-empty value. This may be used to include null fields in Patch
8858	// requests.
8859	NullFields []string `json:"-"`
8860}
8861
8862func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
8863	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
8864	raw := NoMethod(*s)
8865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8866}
8867
8868func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
8869	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
8870	var s1 struct {
8871		Score gensupport.JSONFloat64 `json:"score"`
8872		*NoMethod
8873	}
8874	s1.NoMethod = (*NoMethod)(s)
8875	if err := json.Unmarshal(data, &s1); err != nil {
8876		return err
8877	}
8878	s.Score = float64(s1.Score)
8879	return nil
8880}
8881
8882// GoogleCloudVisionV1p3beta1Word: A word representation.
8883type GoogleCloudVisionV1p3beta1Word struct {
8884	// BoundingBox: The bounding box for the word. The vertices are in the
8885	// order of top-left, top-right, bottom-right, bottom-left. When a
8886	// rotation of the bounding box is detected the rotation is represented
8887	// as around the top-left corner as defined when the text is read in the
8888	// 'natural' orientation. For example: * when the text is horizontal it
8889	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
8890	// around the top-left corner it becomes: 2----3 | | 1----0 and the
8891	// vertex order will still be (0, 1, 2, 3).
8892	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8893
8894	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
8895	Confidence float64 `json:"confidence,omitempty"`
8896
8897	// Property: Additional information detected for the word.
8898	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8899
8900	// Symbols: List of symbols in the word. The order of the symbols
8901	// follows the natural reading order.
8902	Symbols []*GoogleCloudVisionV1p3beta1Symbol `json:"symbols,omitempty"`
8903
8904	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8905	// unconditionally include in API requests. By default, fields with
8906	// empty or default values are omitted from API requests. However, any
8907	// non-pointer, non-interface field appearing in ForceSendFields will be
8908	// sent to the server regardless of whether the field is empty or not.
8909	// This may be used to include empty fields in Patch requests.
8910	ForceSendFields []string `json:"-"`
8911
8912	// NullFields is a list of field names (e.g. "BoundingBox") to include
8913	// in API requests with the JSON null value. By default, fields with
8914	// empty values are omitted from API requests. However, any field with
8915	// an empty value appearing in NullFields will be sent to the server as
8916	// null. It is an error if a field in this list has a non-empty value.
8917	// This may be used to include null fields in Patch requests.
8918	NullFields []string `json:"-"`
8919}
8920
8921func (s *GoogleCloudVisionV1p3beta1Word) MarshalJSON() ([]byte, error) {
8922	type NoMethod GoogleCloudVisionV1p3beta1Word
8923	raw := NoMethod(*s)
8924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8925}
8926
8927func (s *GoogleCloudVisionV1p3beta1Word) UnmarshalJSON(data []byte) error {
8928	type NoMethod GoogleCloudVisionV1p3beta1Word
8929	var s1 struct {
8930		Confidence gensupport.JSONFloat64 `json:"confidence"`
8931		*NoMethod
8932	}
8933	s1.NoMethod = (*NoMethod)(s)
8934	if err := json.Unmarshal(data, &s1); err != nil {
8935		return err
8936	}
8937	s.Confidence = float64(s1.Confidence)
8938	return nil
8939}
8940
8941// GoogleCloudVisionV1p4beta1AnnotateFileResponse: Response to a single
8942// file annotation request. A file may contain one or more images, which
8943// individually have their own responses.
8944type GoogleCloudVisionV1p4beta1AnnotateFileResponse struct {
8945	// Error: If set, represents the error message for the failed request.
8946	// The `responses` field will not be set in this case.
8947	Error *Status `json:"error,omitempty"`
8948
8949	// InputConfig: Information about the file for which this response is
8950	// generated.
8951	InputConfig *GoogleCloudVisionV1p4beta1InputConfig `json:"inputConfig,omitempty"`
8952
8953	// Responses: Individual responses to images found within the file. This
8954	// field will be empty if the `error` field is set.
8955	Responses []*GoogleCloudVisionV1p4beta1AnnotateImageResponse `json:"responses,omitempty"`
8956
8957	// TotalPages: This field gives the total number of pages in the file.
8958	TotalPages int64 `json:"totalPages,omitempty"`
8959
8960	// ForceSendFields is a list of field names (e.g. "Error") to
8961	// unconditionally include in API requests. By default, fields with
8962	// empty or default values are omitted from API requests. However, any
8963	// non-pointer, non-interface field appearing in ForceSendFields will be
8964	// sent to the server regardless of whether the field is empty or not.
8965	// This may be used to include empty fields in Patch requests.
8966	ForceSendFields []string `json:"-"`
8967
8968	// NullFields is a list of field names (e.g. "Error") to include in API
8969	// requests with the JSON null value. By default, fields with empty
8970	// values are omitted from API requests. However, any field with an
8971	// empty value appearing in NullFields will be sent to the server as
8972	// null. It is an error if a field in this list has a non-empty value.
8973	// This may be used to include null fields in Patch requests.
8974	NullFields []string `json:"-"`
8975}
8976
8977func (s *GoogleCloudVisionV1p4beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
8978	type NoMethod GoogleCloudVisionV1p4beta1AnnotateFileResponse
8979	raw := NoMethod(*s)
8980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8981}
8982
8983// GoogleCloudVisionV1p4beta1AnnotateImageResponse: Response to an image
8984// annotation request.
8985type GoogleCloudVisionV1p4beta1AnnotateImageResponse struct {
8986	// Context: If present, contextual information is needed to understand
8987	// where this image comes from.
8988	Context *GoogleCloudVisionV1p4beta1ImageAnnotationContext `json:"context,omitempty"`
8989
8990	// CropHintsAnnotation: If present, crop hints have completed
8991	// successfully.
8992	CropHintsAnnotation *GoogleCloudVisionV1p4beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
8993
8994	// Error: If set, represents the error message for the operation. Note
8995	// that filled-in image annotations are guaranteed to be correct, even
8996	// when `error` is set.
8997	Error *Status `json:"error,omitempty"`
8998
8999	// FaceAnnotations: If present, face detection has completed
9000	// successfully.
9001	FaceAnnotations []*GoogleCloudVisionV1p4beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
9002
9003	// FullTextAnnotation: If present, text (OCR) detection or document
9004	// (OCR) text detection has completed successfully. This annotation
9005	// provides the structural hierarchy for the OCR detected text.
9006	FullTextAnnotation *GoogleCloudVisionV1p4beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
9007
9008	// ImagePropertiesAnnotation: If present, image properties were
9009	// extracted successfully.
9010	ImagePropertiesAnnotation *GoogleCloudVisionV1p4beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
9011
9012	// LabelAnnotations: If present, label detection has completed
9013	// successfully.
9014	LabelAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
9015
9016	// LandmarkAnnotations: If present, landmark detection has completed
9017	// successfully.
9018	LandmarkAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
9019
9020	// LocalizedObjectAnnotations: If present, localized object detection
9021	// has completed successfully. This will be sorted descending by
9022	// confidence score.
9023	LocalizedObjectAnnotations []*GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
9024
9025	// LogoAnnotations: If present, logo detection has completed
9026	// successfully.
9027	LogoAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
9028
9029	// ProductSearchResults: If present, product search has completed
9030	// successfully.
9031	ProductSearchResults *GoogleCloudVisionV1p4beta1ProductSearchResults `json:"productSearchResults,omitempty"`
9032
9033	// SafeSearchAnnotation: If present, safe-search annotation has
9034	// completed successfully.
9035	SafeSearchAnnotation *GoogleCloudVisionV1p4beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
9036
9037	// TextAnnotations: If present, text (OCR) detection has completed
9038	// successfully.
9039	TextAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"textAnnotations,omitempty"`
9040
9041	// WebDetection: If present, web detection has completed successfully.
9042	WebDetection *GoogleCloudVisionV1p4beta1WebDetection `json:"webDetection,omitempty"`
9043
9044	// ForceSendFields is a list of field names (e.g. "Context") to
9045	// unconditionally include in API requests. By default, fields with
9046	// empty or default values are omitted from API requests. However, any
9047	// non-pointer, non-interface field appearing in ForceSendFields will be
9048	// sent to the server regardless of whether the field is empty or not.
9049	// This may be used to include empty fields in Patch requests.
9050	ForceSendFields []string `json:"-"`
9051
9052	// NullFields is a list of field names (e.g. "Context") to include in
9053	// API requests with the JSON null value. By default, fields with empty
9054	// values are omitted from API requests. However, any field with an
9055	// empty value appearing in NullFields will be sent to the server as
9056	// null. It is an error if a field in this list has a non-empty value.
9057	// This may be used to include null fields in Patch requests.
9058	NullFields []string `json:"-"`
9059}
9060
9061func (s *GoogleCloudVisionV1p4beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
9062	type NoMethod GoogleCloudVisionV1p4beta1AnnotateImageResponse
9063	raw := NoMethod(*s)
9064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9065}
9066
9067// GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse: The response for
9068// a single offline file annotation request.
9069type GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse struct {
9070	// OutputConfig: The output location and metadata from
9071	// AsyncAnnotateFileRequest.
9072	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9073
9074	// ForceSendFields is a list of field names (e.g. "OutputConfig") 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. "OutputConfig") 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 *GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
9092	type NoMethod GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse
9093	raw := NoMethod(*s)
9094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9095}
9096
9097// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse: Response
9098// to an async batch file annotation request.
9099type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse struct {
9100	// Responses: The list of file annotation responses, one for each
9101	// request in AsyncBatchAnnotateFilesRequest.
9102	Responses []*GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
9103
9104	// ForceSendFields is a list of field names (e.g. "Responses") to
9105	// unconditionally include in API requests. By default, fields with
9106	// empty or default values are omitted from API requests. However, any
9107	// non-pointer, non-interface field appearing in ForceSendFields will be
9108	// sent to the server regardless of whether the field is empty or not.
9109	// This may be used to include empty fields in Patch requests.
9110	ForceSendFields []string `json:"-"`
9111
9112	// NullFields is a list of field names (e.g. "Responses") to include in
9113	// API requests with the JSON null value. By default, fields with empty
9114	// values are omitted from API requests. However, any field with an
9115	// empty value appearing in NullFields will be sent to the server as
9116	// null. It is an error if a field in this list has a non-empty value.
9117	// This may be used to include null fields in Patch requests.
9118	NullFields []string `json:"-"`
9119}
9120
9121func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9122	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse
9123	raw := NoMethod(*s)
9124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9125}
9126
9127// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse: Response
9128// to an async batch image annotation request.
9129type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse struct {
9130	// OutputConfig: The output location and metadata from
9131	// AsyncBatchAnnotateImagesRequest.
9132	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9133
9134	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9135	// unconditionally include in API requests. By default, fields with
9136	// empty or default values are omitted from API requests. However, any
9137	// non-pointer, non-interface field appearing in ForceSendFields will be
9138	// sent to the server regardless of whether the field is empty or not.
9139	// This may be used to include empty fields in Patch requests.
9140	ForceSendFields []string `json:"-"`
9141
9142	// NullFields is a list of field names (e.g. "OutputConfig") to include
9143	// in API requests with the JSON null value. By default, fields with
9144	// empty values are omitted from API requests. However, any field with
9145	// an empty value appearing in NullFields will be sent to the server as
9146	// null. It is an error if a field in this list has a non-empty value.
9147	// This may be used to include null fields in Patch requests.
9148	NullFields []string `json:"-"`
9149}
9150
9151func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
9152	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse
9153	raw := NoMethod(*s)
9154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9155}
9156
9157// GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse: A list of file
9158// annotation responses.
9159type GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse struct {
9160	// Responses: The list of file annotation responses, each response
9161	// corresponding to each AnnotateFileRequest in
9162	// BatchAnnotateFilesRequest.
9163	Responses []*GoogleCloudVisionV1p4beta1AnnotateFileResponse `json:"responses,omitempty"`
9164
9165	// ForceSendFields is a list of field names (e.g. "Responses") to
9166	// unconditionally include in API requests. By default, fields with
9167	// empty or default values are omitted from API requests. However, any
9168	// non-pointer, non-interface field appearing in ForceSendFields will be
9169	// sent to the server regardless of whether the field is empty or not.
9170	// This may be used to include empty fields in Patch requests.
9171	ForceSendFields []string `json:"-"`
9172
9173	// NullFields is a list of field names (e.g. "Responses") to include in
9174	// API requests with the JSON null value. By default, fields with empty
9175	// values are omitted from API requests. However, any field with an
9176	// empty value appearing in NullFields will be sent to the server as
9177	// null. It is an error if a field in this list has a non-empty value.
9178	// This may be used to include null fields in Patch requests.
9179	NullFields []string `json:"-"`
9180}
9181
9182func (s *GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9183	type NoMethod GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse
9184	raw := NoMethod(*s)
9185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9186}
9187
9188// GoogleCloudVisionV1p4beta1BatchOperationMetadata: Metadata for the
9189// batch operations such as the current state. This is included in the
9190// `metadata` field of the `Operation` returned by the `GetOperation`
9191// call of the `google::longrunning::Operations` service.
9192type GoogleCloudVisionV1p4beta1BatchOperationMetadata struct {
9193	// EndTime: The time when the batch request is finished and
9194	// google.longrunning.Operation.done is set to true.
9195	EndTime string `json:"endTime,omitempty"`
9196
9197	// State: The current state of the batch operation.
9198	//
9199	// Possible values:
9200	//   "STATE_UNSPECIFIED" - Invalid.
9201	//   "PROCESSING" - Request is actively being processed.
9202	//   "SUCCESSFUL" - The request is done and at least one item has been
9203	// successfully processed.
9204	//   "FAILED" - The request is done and no item has been successfully
9205	// processed.
9206	//   "CANCELLED" - The request is done after the
9207	// longrunning.Operations.CancelOperation has been called by the user.
9208	// Any records that were processed before the cancel command are output
9209	// as specified in the request.
9210	State string `json:"state,omitempty"`
9211
9212	// SubmitTime: The time when the batch request was submitted to the
9213	// server.
9214	SubmitTime string `json:"submitTime,omitempty"`
9215
9216	// ForceSendFields is a list of field names (e.g. "EndTime") to
9217	// unconditionally include in API requests. By default, fields with
9218	// empty or default values are omitted from API requests. However, any
9219	// non-pointer, non-interface field appearing in ForceSendFields will be
9220	// sent to the server regardless of whether the field is empty or not.
9221	// This may be used to include empty fields in Patch requests.
9222	ForceSendFields []string `json:"-"`
9223
9224	// NullFields is a list of field names (e.g. "EndTime") to include in
9225	// API requests with the JSON null value. By default, fields with empty
9226	// values are omitted from API requests. However, any field with an
9227	// empty value appearing in NullFields will be sent to the server as
9228	// null. It is an error if a field in this list has a non-empty value.
9229	// This may be used to include null fields in Patch requests.
9230	NullFields []string `json:"-"`
9231}
9232
9233func (s *GoogleCloudVisionV1p4beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
9234	type NoMethod GoogleCloudVisionV1p4beta1BatchOperationMetadata
9235	raw := NoMethod(*s)
9236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9237}
9238
9239// GoogleCloudVisionV1p4beta1Block: Logical element on the page.
9240type GoogleCloudVisionV1p4beta1Block struct {
9241	// BlockType: Detected block type (text, image etc) for this block.
9242	//
9243	// Possible values:
9244	//   "UNKNOWN" - Unknown block type.
9245	//   "TEXT" - Regular text block.
9246	//   "TABLE" - Table block.
9247	//   "PICTURE" - Image block.
9248	//   "RULER" - Horizontal/vertical line box.
9249	//   "BARCODE" - Barcode block.
9250	BlockType string `json:"blockType,omitempty"`
9251
9252	// BoundingBox: The bounding box for the block. The vertices are in the
9253	// order of top-left, top-right, bottom-right, bottom-left. When a
9254	// rotation of the bounding box is detected the rotation is represented
9255	// as around the top-left corner as defined when the text is read in the
9256	// 'natural' orientation. For example: * when the text is horizontal it
9257	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
9258	// around the top-left corner it becomes: 2----3 | | 1----0 and the
9259	// vertex order will still be (0, 1, 2, 3).
9260	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
9261
9262	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
9263	Confidence float64 `json:"confidence,omitempty"`
9264
9265	// Paragraphs: List of paragraphs in this block (if this blocks is of
9266	// type text).
9267	Paragraphs []*GoogleCloudVisionV1p4beta1Paragraph `json:"paragraphs,omitempty"`
9268
9269	// Property: Additional information detected for the block.
9270	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
9271
9272	// ForceSendFields is a list of field names (e.g. "BlockType") to
9273	// unconditionally include in API requests. By default, fields with
9274	// empty or default values are omitted from API requests. However, any
9275	// non-pointer, non-interface field appearing in ForceSendFields will be
9276	// sent to the server regardless of whether the field is empty or not.
9277	// This may be used to include empty fields in Patch requests.
9278	ForceSendFields []string `json:"-"`
9279
9280	// NullFields is a list of field names (e.g. "BlockType") to include in
9281	// API requests with the JSON null value. By default, fields with empty
9282	// values are omitted from API requests. However, any field with an
9283	// empty value appearing in NullFields will be sent to the server as
9284	// null. It is an error if a field in this list has a non-empty value.
9285	// This may be used to include null fields in Patch requests.
9286	NullFields []string `json:"-"`
9287}
9288
9289func (s *GoogleCloudVisionV1p4beta1Block) MarshalJSON() ([]byte, error) {
9290	type NoMethod GoogleCloudVisionV1p4beta1Block
9291	raw := NoMethod(*s)
9292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9293}
9294
9295func (s *GoogleCloudVisionV1p4beta1Block) UnmarshalJSON(data []byte) error {
9296	type NoMethod GoogleCloudVisionV1p4beta1Block
9297	var s1 struct {
9298		Confidence gensupport.JSONFloat64 `json:"confidence"`
9299		*NoMethod
9300	}
9301	s1.NoMethod = (*NoMethod)(s)
9302	if err := json.Unmarshal(data, &s1); err != nil {
9303		return err
9304	}
9305	s.Confidence = float64(s1.Confidence)
9306	return nil
9307}
9308
9309// GoogleCloudVisionV1p4beta1BoundingPoly: A bounding polygon for the
9310// detected image annotation.
9311type GoogleCloudVisionV1p4beta1BoundingPoly struct {
9312	// NormalizedVertices: The bounding polygon normalized vertices.
9313	NormalizedVertices []*GoogleCloudVisionV1p4beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
9314
9315	// Vertices: The bounding polygon vertices.
9316	Vertices []*GoogleCloudVisionV1p4beta1Vertex `json:"vertices,omitempty"`
9317
9318	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
9319	// to unconditionally include in API requests. By default, fields with
9320	// empty or default values are omitted from API requests. However, any
9321	// non-pointer, non-interface field appearing in ForceSendFields will be
9322	// sent to the server regardless of whether the field is empty or not.
9323	// This may be used to include empty fields in Patch requests.
9324	ForceSendFields []string `json:"-"`
9325
9326	// NullFields is a list of field names (e.g. "NormalizedVertices") to
9327	// include in API requests with the JSON null value. By default, fields
9328	// with empty values are omitted from API requests. However, any field
9329	// with an empty value appearing in NullFields will be sent to the
9330	// server as null. It is an error if a field in this list has a
9331	// non-empty value. This may be used to include null fields in Patch
9332	// requests.
9333	NullFields []string `json:"-"`
9334}
9335
9336func (s *GoogleCloudVisionV1p4beta1BoundingPoly) MarshalJSON() ([]byte, error) {
9337	type NoMethod GoogleCloudVisionV1p4beta1BoundingPoly
9338	raw := NoMethod(*s)
9339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9340}
9341
9342// GoogleCloudVisionV1p4beta1Celebrity: A Celebrity is a group of Faces
9343// with an identity.
9344type GoogleCloudVisionV1p4beta1Celebrity struct {
9345	// Description: The Celebrity's description.
9346	Description string `json:"description,omitempty"`
9347
9348	// DisplayName: The Celebrity's display name.
9349	DisplayName string `json:"displayName,omitempty"`
9350
9351	// Name: The resource name of the preloaded Celebrity. Has the format
9352	// `builtin/{mid}`.
9353	Name string `json:"name,omitempty"`
9354
9355	// ForceSendFields is a list of field names (e.g. "Description") to
9356	// unconditionally include in API requests. By default, fields with
9357	// empty or default values are omitted from API requests. However, any
9358	// non-pointer, non-interface field appearing in ForceSendFields will be
9359	// sent to the server regardless of whether the field is empty or not.
9360	// This may be used to include empty fields in Patch requests.
9361	ForceSendFields []string `json:"-"`
9362
9363	// NullFields is a list of field names (e.g. "Description") to include
9364	// in API requests with the JSON null value. By default, fields with
9365	// empty values are omitted from API requests. However, any field with
9366	// an empty value appearing in NullFields will be sent to the server as
9367	// null. It is an error if a field in this list has a non-empty value.
9368	// This may be used to include null fields in Patch requests.
9369	NullFields []string `json:"-"`
9370}
9371
9372func (s *GoogleCloudVisionV1p4beta1Celebrity) MarshalJSON() ([]byte, error) {
9373	type NoMethod GoogleCloudVisionV1p4beta1Celebrity
9374	raw := NoMethod(*s)
9375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9376}
9377
9378// GoogleCloudVisionV1p4beta1ColorInfo: Color information consists of
9379// RGB channels, score, and the fraction of the image that the color
9380// occupies in the image.
9381type GoogleCloudVisionV1p4beta1ColorInfo struct {
9382	// Color: RGB components of the color.
9383	Color *Color `json:"color,omitempty"`
9384
9385	// PixelFraction: The fraction of pixels the color occupies in the
9386	// image. Value in range [0, 1].
9387	PixelFraction float64 `json:"pixelFraction,omitempty"`
9388
9389	// Score: Image-specific score for this color. Value in range [0, 1].
9390	Score float64 `json:"score,omitempty"`
9391
9392	// ForceSendFields is a list of field names (e.g. "Color") to
9393	// unconditionally include in API requests. By default, fields with
9394	// empty or default values are omitted from API requests. However, any
9395	// non-pointer, non-interface field appearing in ForceSendFields will be
9396	// sent to the server regardless of whether the field is empty or not.
9397	// This may be used to include empty fields in Patch requests.
9398	ForceSendFields []string `json:"-"`
9399
9400	// NullFields is a list of field names (e.g. "Color") to include in API
9401	// requests with the JSON null value. By default, fields with empty
9402	// values are omitted from API requests. However, any field with an
9403	// empty value appearing in NullFields will be sent to the server as
9404	// null. It is an error if a field in this list has a non-empty value.
9405	// This may be used to include null fields in Patch requests.
9406	NullFields []string `json:"-"`
9407}
9408
9409func (s *GoogleCloudVisionV1p4beta1ColorInfo) MarshalJSON() ([]byte, error) {
9410	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
9411	raw := NoMethod(*s)
9412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9413}
9414
9415func (s *GoogleCloudVisionV1p4beta1ColorInfo) UnmarshalJSON(data []byte) error {
9416	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
9417	var s1 struct {
9418		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
9419		Score         gensupport.JSONFloat64 `json:"score"`
9420		*NoMethod
9421	}
9422	s1.NoMethod = (*NoMethod)(s)
9423	if err := json.Unmarshal(data, &s1); err != nil {
9424		return err
9425	}
9426	s.PixelFraction = float64(s1.PixelFraction)
9427	s.Score = float64(s1.Score)
9428	return nil
9429}
9430
9431// GoogleCloudVisionV1p4beta1CropHint: Single crop hint that is used to
9432// generate a new crop when serving an image.
9433type GoogleCloudVisionV1p4beta1CropHint struct {
9434	// BoundingPoly: The bounding polygon for the crop region. The
9435	// coordinates of the bounding box are in the original image's scale.
9436	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9437
9438	// Confidence: Confidence of this being a salient region. Range [0, 1].
9439	Confidence float64 `json:"confidence,omitempty"`
9440
9441	// ImportanceFraction: Fraction of importance of this salient region
9442	// with respect to the original image.
9443	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
9444
9445	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
9446	// unconditionally include in API requests. By default, fields with
9447	// empty or default values are omitted from API requests. However, any
9448	// non-pointer, non-interface field appearing in ForceSendFields will be
9449	// sent to the server regardless of whether the field is empty or not.
9450	// This may be used to include empty fields in Patch requests.
9451	ForceSendFields []string `json:"-"`
9452
9453	// NullFields is a list of field names (e.g. "BoundingPoly") to include
9454	// in API requests with the JSON null value. By default, fields with
9455	// empty values are omitted from API requests. However, any field with
9456	// an empty value appearing in NullFields will be sent to the server as
9457	// null. It is an error if a field in this list has a non-empty value.
9458	// This may be used to include null fields in Patch requests.
9459	NullFields []string `json:"-"`
9460}
9461
9462func (s *GoogleCloudVisionV1p4beta1CropHint) MarshalJSON() ([]byte, error) {
9463	type NoMethod GoogleCloudVisionV1p4beta1CropHint
9464	raw := NoMethod(*s)
9465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9466}
9467
9468func (s *GoogleCloudVisionV1p4beta1CropHint) UnmarshalJSON(data []byte) error {
9469	type NoMethod GoogleCloudVisionV1p4beta1CropHint
9470	var s1 struct {
9471		Confidence         gensupport.JSONFloat64 `json:"confidence"`
9472		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
9473		*NoMethod
9474	}
9475	s1.NoMethod = (*NoMethod)(s)
9476	if err := json.Unmarshal(data, &s1); err != nil {
9477		return err
9478	}
9479	s.Confidence = float64(s1.Confidence)
9480	s.ImportanceFraction = float64(s1.ImportanceFraction)
9481	return nil
9482}
9483
9484// GoogleCloudVisionV1p4beta1CropHintsAnnotation: Set of crop hints that
9485// are used to generate new crops when serving images.
9486type GoogleCloudVisionV1p4beta1CropHintsAnnotation struct {
9487	// CropHints: Crop hint results.
9488	CropHints []*GoogleCloudVisionV1p4beta1CropHint `json:"cropHints,omitempty"`
9489
9490	// ForceSendFields is a list of field names (e.g. "CropHints") to
9491	// unconditionally include in API requests. By default, fields with
9492	// empty or default values are omitted from API requests. However, any
9493	// non-pointer, non-interface field appearing in ForceSendFields will be
9494	// sent to the server regardless of whether the field is empty or not.
9495	// This may be used to include empty fields in Patch requests.
9496	ForceSendFields []string `json:"-"`
9497
9498	// NullFields is a list of field names (e.g. "CropHints") to include in
9499	// API requests with the JSON null value. By default, fields with empty
9500	// values are omitted from API requests. However, any field with an
9501	// empty value appearing in NullFields will be sent to the server as
9502	// null. It is an error if a field in this list has a non-empty value.
9503	// This may be used to include null fields in Patch requests.
9504	NullFields []string `json:"-"`
9505}
9506
9507func (s *GoogleCloudVisionV1p4beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
9508	type NoMethod GoogleCloudVisionV1p4beta1CropHintsAnnotation
9509	raw := NoMethod(*s)
9510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9511}
9512
9513// GoogleCloudVisionV1p4beta1DominantColorsAnnotation: Set of dominant
9514// colors and their corresponding scores.
9515type GoogleCloudVisionV1p4beta1DominantColorsAnnotation struct {
9516	// Colors: RGB color values with their score and pixel fraction.
9517	Colors []*GoogleCloudVisionV1p4beta1ColorInfo `json:"colors,omitempty"`
9518
9519	// ForceSendFields is a list of field names (e.g. "Colors") to
9520	// unconditionally include in API requests. By default, fields with
9521	// empty or default values are omitted from API requests. However, any
9522	// non-pointer, non-interface field appearing in ForceSendFields will be
9523	// sent to the server regardless of whether the field is empty or not.
9524	// This may be used to include empty fields in Patch requests.
9525	ForceSendFields []string `json:"-"`
9526
9527	// NullFields is a list of field names (e.g. "Colors") to include in API
9528	// requests with the JSON null value. By default, fields with empty
9529	// values are omitted from API requests. However, any field with an
9530	// empty value appearing in NullFields will be sent to the server as
9531	// null. It is an error if a field in this list has a non-empty value.
9532	// This may be used to include null fields in Patch requests.
9533	NullFields []string `json:"-"`
9534}
9535
9536func (s *GoogleCloudVisionV1p4beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
9537	type NoMethod GoogleCloudVisionV1p4beta1DominantColorsAnnotation
9538	raw := NoMethod(*s)
9539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9540}
9541
9542// GoogleCloudVisionV1p4beta1EntityAnnotation: Set of detected entity
9543// features.
9544type GoogleCloudVisionV1p4beta1EntityAnnotation struct {
9545	// BoundingPoly: Image region to which this entity belongs. Not produced
9546	// for `LABEL_DETECTION` features.
9547	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9548
9549	// Confidence: **Deprecated. Use `score` instead.** The accuracy of the
9550	// entity detection in an image. For example, for an image in which the
9551	// "Eiffel Tower" entity is detected, this field represents the
9552	// confidence that there is a tower in the query image. Range [0, 1].
9553	Confidence float64 `json:"confidence,omitempty"`
9554
9555	// Description: Entity textual description, expressed in its `locale`
9556	// language.
9557	Description string `json:"description,omitempty"`
9558
9559	// Locale: The language code for the locale in which the entity textual
9560	// `description` is expressed.
9561	Locale string `json:"locale,omitempty"`
9562
9563	// Locations: The location information for the detected entity. Multiple
9564	// `LocationInfo` elements can be present because one location may
9565	// indicate the location of the scene in the image, and another location
9566	// may indicate the location of the place where the image was taken.
9567	// Location information is usually present for landmarks.
9568	Locations []*GoogleCloudVisionV1p4beta1LocationInfo `json:"locations,omitempty"`
9569
9570	// Mid: Opaque entity ID. Some IDs may be available in Google Knowledge
9571	// Graph Search API (https://developers.google.com/knowledge-graph/).
9572	Mid string `json:"mid,omitempty"`
9573
9574	// Properties: Some entities may have optional user-supplied `Property`
9575	// (name/value) fields, such a score or string that qualifies the
9576	// entity.
9577	Properties []*GoogleCloudVisionV1p4beta1Property `json:"properties,omitempty"`
9578
9579	// Score: Overall score of the result. Range [0, 1].
9580	Score float64 `json:"score,omitempty"`
9581
9582	// Topicality: The relevancy of the ICA (Image Content Annotation) label
9583	// to the image. For example, the relevancy of "tower" is likely higher
9584	// to an image containing the detected "Eiffel Tower" than to an image
9585	// containing a detected distant towering building, even though the
9586	// confidence that there is a tower in each image may be the same. Range
9587	// [0, 1].
9588	Topicality float64 `json:"topicality,omitempty"`
9589
9590	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
9591	// unconditionally include in API requests. By default, fields with
9592	// empty or default values are omitted from API requests. However, any
9593	// non-pointer, non-interface field appearing in ForceSendFields will be
9594	// sent to the server regardless of whether the field is empty or not.
9595	// This may be used to include empty fields in Patch requests.
9596	ForceSendFields []string `json:"-"`
9597
9598	// NullFields is a list of field names (e.g. "BoundingPoly") to include
9599	// in API requests with the JSON null value. By default, fields with
9600	// empty values are omitted from API requests. However, any field with
9601	// an empty value appearing in NullFields will be sent to the server as
9602	// null. It is an error if a field in this list has a non-empty value.
9603	// This may be used to include null fields in Patch requests.
9604	NullFields []string `json:"-"`
9605}
9606
9607func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
9608	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
9609	raw := NoMethod(*s)
9610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9611}
9612
9613func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
9614	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
9615	var s1 struct {
9616		Confidence gensupport.JSONFloat64 `json:"confidence"`
9617		Score      gensupport.JSONFloat64 `json:"score"`
9618		Topicality gensupport.JSONFloat64 `json:"topicality"`
9619		*NoMethod
9620	}
9621	s1.NoMethod = (*NoMethod)(s)
9622	if err := json.Unmarshal(data, &s1); err != nil {
9623		return err
9624	}
9625	s.Confidence = float64(s1.Confidence)
9626	s.Score = float64(s1.Score)
9627	s.Topicality = float64(s1.Topicality)
9628	return nil
9629}
9630
9631// GoogleCloudVisionV1p4beta1FaceAnnotation: A face annotation object
9632// contains the results of face detection.
9633type GoogleCloudVisionV1p4beta1FaceAnnotation struct {
9634	// AngerLikelihood: Anger likelihood.
9635	//
9636	// Possible values:
9637	//   "UNKNOWN" - Unknown likelihood.
9638	//   "VERY_UNLIKELY" - It is very unlikely.
9639	//   "UNLIKELY" - It is unlikely.
9640	//   "POSSIBLE" - It is possible.
9641	//   "LIKELY" - It is likely.
9642	//   "VERY_LIKELY" - It is very likely.
9643	AngerLikelihood string `json:"angerLikelihood,omitempty"`
9644
9645	// BlurredLikelihood: Blurred likelihood.
9646	//
9647	// Possible values:
9648	//   "UNKNOWN" - Unknown likelihood.
9649	//   "VERY_UNLIKELY" - It is very unlikely.
9650	//   "UNLIKELY" - It is unlikely.
9651	//   "POSSIBLE" - It is possible.
9652	//   "LIKELY" - It is likely.
9653	//   "VERY_LIKELY" - It is very likely.
9654	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
9655
9656	// BoundingPoly: The bounding polygon around the face. The coordinates
9657	// of the bounding box are in the original image's scale. The bounding
9658	// box is computed to "frame" the face in accordance with human
9659	// expectations. It is based on the landmarker results. Note that one or
9660	// more x and/or y coordinates may not be generated in the
9661	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
9662	// appears in the image to be annotated.
9663	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
9664
9665	// DetectionConfidence: Detection confidence. Range [0, 1].
9666	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
9667
9668	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
9669	// than the `boundingPoly`, and encloses only the skin part of the face.
9670	// Typically, it is used to eliminate the face from any image analysis
9671	// that detects the "amount of skin" visible in an image. It is not
9672	// based on the landmarker results, only on the initial face detection,
9673	// hence the fd (face detection) prefix.
9674	FdBoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
9675
9676	// HeadwearLikelihood: Headwear likelihood.
9677	//
9678	// Possible values:
9679	//   "UNKNOWN" - Unknown likelihood.
9680	//   "VERY_UNLIKELY" - It is very unlikely.
9681	//   "UNLIKELY" - It is unlikely.
9682	//   "POSSIBLE" - It is possible.
9683	//   "LIKELY" - It is likely.
9684	//   "VERY_LIKELY" - It is very likely.
9685	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
9686
9687	// JoyLikelihood: Joy likelihood.
9688	//
9689	// Possible values:
9690	//   "UNKNOWN" - Unknown likelihood.
9691	//   "VERY_UNLIKELY" - It is very unlikely.
9692	//   "UNLIKELY" - It is unlikely.
9693	//   "POSSIBLE" - It is possible.
9694	//   "LIKELY" - It is likely.
9695	//   "VERY_LIKELY" - It is very likely.
9696	JoyLikelihood string `json:"joyLikelihood,omitempty"`
9697
9698	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
9699	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
9700
9701	// Landmarks: Detected face landmarks.
9702	Landmarks []*GoogleCloudVisionV1p4beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
9703
9704	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
9705	// that the face is pointing relative to the vertical plane
9706	// perpendicular to the image. Range [-180,180].
9707	PanAngle float64 `json:"panAngle,omitempty"`
9708
9709	// RecognitionResult: Additional recognition information. Only computed
9710	// if image_context.face_recognition_params is provided, **and** a match
9711	// is found to a Celebrity in the input CelebritySet. This field is
9712	// sorted in order of decreasing confidence values.
9713	RecognitionResult []*GoogleCloudVisionV1p4beta1FaceRecognitionResult `json:"recognitionResult,omitempty"`
9714
9715	// RollAngle: Roll angle, which indicates the amount of
9716	// clockwise/anti-clockwise rotation of the face relative to the image
9717	// vertical about the axis perpendicular to the face. Range [-180,180].
9718	RollAngle float64 `json:"rollAngle,omitempty"`
9719
9720	// SorrowLikelihood: Sorrow likelihood.
9721	//
9722	// Possible values:
9723	//   "UNKNOWN" - Unknown likelihood.
9724	//   "VERY_UNLIKELY" - It is very unlikely.
9725	//   "UNLIKELY" - It is unlikely.
9726	//   "POSSIBLE" - It is possible.
9727	//   "LIKELY" - It is likely.
9728	//   "VERY_LIKELY" - It is very likely.
9729	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
9730
9731	// SurpriseLikelihood: Surprise likelihood.
9732	//
9733	// Possible values:
9734	//   "UNKNOWN" - Unknown likelihood.
9735	//   "VERY_UNLIKELY" - It is very unlikely.
9736	//   "UNLIKELY" - It is unlikely.
9737	//   "POSSIBLE" - It is possible.
9738	//   "LIKELY" - It is likely.
9739	//   "VERY_LIKELY" - It is very likely.
9740	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
9741
9742	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
9743	// that the face is pointing relative to the image's horizontal plane.
9744	// Range [-180,180].
9745	TiltAngle float64 `json:"tiltAngle,omitempty"`
9746
9747	// UnderExposedLikelihood: Under-exposed likelihood.
9748	//
9749	// Possible values:
9750	//   "UNKNOWN" - Unknown likelihood.
9751	//   "VERY_UNLIKELY" - It is very unlikely.
9752	//   "UNLIKELY" - It is unlikely.
9753	//   "POSSIBLE" - It is possible.
9754	//   "LIKELY" - It is likely.
9755	//   "VERY_LIKELY" - It is very likely.
9756	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
9757
9758	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
9759	// unconditionally include in API requests. By default, fields with
9760	// empty or default values are omitted from API requests. However, any
9761	// non-pointer, non-interface field appearing in ForceSendFields will be
9762	// sent to the server regardless of whether the field is empty or not.
9763	// This may be used to include empty fields in Patch requests.
9764	ForceSendFields []string `json:"-"`
9765
9766	// NullFields is a list of field names (e.g. "AngerLikelihood") to
9767	// include in API requests with the JSON null value. By default, fields
9768	// with empty values are omitted from API requests. However, any field
9769	// with an empty value appearing in NullFields will be sent to the
9770	// server as null. It is an error if a field in this list has a
9771	// non-empty value. This may be used to include null fields in Patch
9772	// requests.
9773	NullFields []string `json:"-"`
9774}
9775
9776func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
9777	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
9778	raw := NoMethod(*s)
9779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9780}
9781
9782func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
9783	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
9784	var s1 struct {
9785		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
9786		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
9787		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
9788		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
9789		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
9790		*NoMethod
9791	}
9792	s1.NoMethod = (*NoMethod)(s)
9793	if err := json.Unmarshal(data, &s1); err != nil {
9794		return err
9795	}
9796	s.DetectionConfidence = float64(s1.DetectionConfidence)
9797	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
9798	s.PanAngle = float64(s1.PanAngle)
9799	s.RollAngle = float64(s1.RollAngle)
9800	s.TiltAngle = float64(s1.TiltAngle)
9801	return nil
9802}
9803
9804// GoogleCloudVisionV1p4beta1FaceAnnotationLandmark: A face-specific
9805// landmark (for example, a face feature).
9806type GoogleCloudVisionV1p4beta1FaceAnnotationLandmark struct {
9807	// Position: Face landmark position.
9808	Position *GoogleCloudVisionV1p4beta1Position `json:"position,omitempty"`
9809
9810	// Type: Face landmark type.
9811	//
9812	// Possible values:
9813	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
9814	// filled.
9815	//   "LEFT_EYE" - Left eye.
9816	//   "RIGHT_EYE" - Right eye.
9817	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
9818	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
9819	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
9820	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
9821	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
9822	//   "NOSE_TIP" - Nose tip.
9823	//   "UPPER_LIP" - Upper lip.
9824	//   "LOWER_LIP" - Lower lip.
9825	//   "MOUTH_LEFT" - Mouth left.
9826	//   "MOUTH_RIGHT" - Mouth right.
9827	//   "MOUTH_CENTER" - Mouth center.
9828	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
9829	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
9830	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
9831	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
9832	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
9833	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
9834	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
9835	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
9836	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
9837	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
9838	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
9839	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
9840	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
9841	//   "LEFT_EAR_TRAGION" - Left ear tragion.
9842	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
9843	//   "LEFT_EYE_PUPIL" - Left eye pupil.
9844	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
9845	//   "FOREHEAD_GLABELLA" - Forehead glabella.
9846	//   "CHIN_GNATHION" - Chin gnathion.
9847	//   "CHIN_LEFT_GONION" - Chin left gonion.
9848	//   "CHIN_RIGHT_GONION" - Chin right gonion.
9849	//   "LEFT_CHEEK_CENTER" - Left cheek center.
9850	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
9851	Type string `json:"type,omitempty"`
9852
9853	// ForceSendFields is a list of field names (e.g. "Position") to
9854	// unconditionally include in API requests. By default, fields with
9855	// empty or default values are omitted from API requests. However, any
9856	// non-pointer, non-interface field appearing in ForceSendFields will be
9857	// sent to the server regardless of whether the field is empty or not.
9858	// This may be used to include empty fields in Patch requests.
9859	ForceSendFields []string `json:"-"`
9860
9861	// NullFields is a list of field names (e.g. "Position") to include in
9862	// API requests with the JSON null value. By default, fields with empty
9863	// values are omitted from API requests. However, any field with an
9864	// empty value appearing in NullFields will be sent to the server as
9865	// null. It is an error if a field in this list has a non-empty value.
9866	// This may be used to include null fields in Patch requests.
9867	NullFields []string `json:"-"`
9868}
9869
9870func (s *GoogleCloudVisionV1p4beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
9871	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotationLandmark
9872	raw := NoMethod(*s)
9873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9874}
9875
9876// GoogleCloudVisionV1p4beta1FaceRecognitionResult: Information about a
9877// face's identity.
9878type GoogleCloudVisionV1p4beta1FaceRecognitionResult struct {
9879	// Celebrity: The Celebrity that this face was matched to.
9880	Celebrity *GoogleCloudVisionV1p4beta1Celebrity `json:"celebrity,omitempty"`
9881
9882	// Confidence: Recognition confidence. Range [0, 1].
9883	Confidence float64 `json:"confidence,omitempty"`
9884
9885	// ForceSendFields is a list of field names (e.g. "Celebrity") to
9886	// unconditionally include in API requests. By default, fields with
9887	// empty or default values are omitted from API requests. However, any
9888	// non-pointer, non-interface field appearing in ForceSendFields will be
9889	// sent to the server regardless of whether the field is empty or not.
9890	// This may be used to include empty fields in Patch requests.
9891	ForceSendFields []string `json:"-"`
9892
9893	// NullFields is a list of field names (e.g. "Celebrity") to include in
9894	// API requests with the JSON null value. By default, fields with empty
9895	// values are omitted from API requests. However, any field with an
9896	// empty value appearing in NullFields will be sent to the server as
9897	// null. It is an error if a field in this list has a non-empty value.
9898	// This may be used to include null fields in Patch requests.
9899	NullFields []string `json:"-"`
9900}
9901
9902func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) MarshalJSON() ([]byte, error) {
9903	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
9904	raw := NoMethod(*s)
9905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9906}
9907
9908func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) UnmarshalJSON(data []byte) error {
9909	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
9910	var s1 struct {
9911		Confidence gensupport.JSONFloat64 `json:"confidence"`
9912		*NoMethod
9913	}
9914	s1.NoMethod = (*NoMethod)(s)
9915	if err := json.Unmarshal(data, &s1); err != nil {
9916		return err
9917	}
9918	s.Confidence = float64(s1.Confidence)
9919	return nil
9920}
9921
9922// GoogleCloudVisionV1p4beta1GcsDestination: The Google Cloud Storage
9923// location where the output will be written to.
9924type GoogleCloudVisionV1p4beta1GcsDestination struct {
9925	// Uri: Google Cloud Storage URI prefix where the results will be
9926	// stored. Results will be in JSON format and preceded by its
9927	// corresponding input URI prefix. This field can either represent a gcs
9928	// file prefix or gcs directory. In either case, the uri should be
9929	// unique because in order to get all of the output files, you will need
9930	// to do a wildcard gcs search on the uri prefix you provide. Examples:
9931	// * File Prefix: gs://bucket-name/here/filenameprefix The output files
9932	// will be created in gs://bucket-name/here/ and the names of the output
9933	// files will begin with "filenameprefix". * Directory Prefix:
9934	// gs://bucket-name/some/location/ The output files will be created in
9935	// gs://bucket-name/some/location/ and the names of the output files
9936	// could be anything because there was no filename prefix specified. If
9937	// multiple outputs, each response is still AnnotateFileResponse, each
9938	// of which contains some subset of the full list of
9939	// AnnotateImageResponse. Multiple outputs can happen if, for example,
9940	// the output JSON is too large and overflows into multiple sharded
9941	// files.
9942	Uri string `json:"uri,omitempty"`
9943
9944	// ForceSendFields is a list of field names (e.g. "Uri") to
9945	// unconditionally include in API requests. By default, fields with
9946	// empty or default values are omitted from API requests. However, any
9947	// non-pointer, non-interface field appearing in ForceSendFields will be
9948	// sent to the server regardless of whether the field is empty or not.
9949	// This may be used to include empty fields in Patch requests.
9950	ForceSendFields []string `json:"-"`
9951
9952	// NullFields is a list of field names (e.g. "Uri") to include in API
9953	// requests with the JSON null value. By default, fields with empty
9954	// values are omitted from API requests. However, any field with an
9955	// empty value appearing in NullFields will be sent to the server as
9956	// null. It is an error if a field in this list has a non-empty value.
9957	// This may be used to include null fields in Patch requests.
9958	NullFields []string `json:"-"`
9959}
9960
9961func (s *GoogleCloudVisionV1p4beta1GcsDestination) MarshalJSON() ([]byte, error) {
9962	type NoMethod GoogleCloudVisionV1p4beta1GcsDestination
9963	raw := NoMethod(*s)
9964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9965}
9966
9967// GoogleCloudVisionV1p4beta1GcsSource: The Google Cloud Storage
9968// location where the input will be read from.
9969type GoogleCloudVisionV1p4beta1GcsSource struct {
9970	// Uri: Google Cloud Storage URI for the input file. This must only be a
9971	// Google Cloud Storage object. Wildcards are not currently supported.
9972	Uri string `json:"uri,omitempty"`
9973
9974	// ForceSendFields is a list of field names (e.g. "Uri") to
9975	// unconditionally include in API requests. By default, fields with
9976	// empty or default values are omitted from API requests. However, any
9977	// non-pointer, non-interface field appearing in ForceSendFields will be
9978	// sent to the server regardless of whether the field is empty or not.
9979	// This may be used to include empty fields in Patch requests.
9980	ForceSendFields []string `json:"-"`
9981
9982	// NullFields is a list of field names (e.g. "Uri") to include in API
9983	// requests with the JSON null value. By default, fields with empty
9984	// values are omitted from API requests. However, any field with an
9985	// empty value appearing in NullFields will be sent to the server as
9986	// null. It is an error if a field in this list has a non-empty value.
9987	// This may be used to include null fields in Patch requests.
9988	NullFields []string `json:"-"`
9989}
9990
9991func (s *GoogleCloudVisionV1p4beta1GcsSource) MarshalJSON() ([]byte, error) {
9992	type NoMethod GoogleCloudVisionV1p4beta1GcsSource
9993	raw := NoMethod(*s)
9994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9995}
9996
9997// GoogleCloudVisionV1p4beta1ImageAnnotationContext: If an image was
9998// produced from a file (e.g. a PDF), this message gives information
9999// about the source of that image.
10000type GoogleCloudVisionV1p4beta1ImageAnnotationContext struct {
10001	// PageNumber: If the file was a PDF or TIFF, this field gives the page
10002	// number within the file used to produce the image.
10003	PageNumber int64 `json:"pageNumber,omitempty"`
10004
10005	// Uri: The URI of the file used to produce the image.
10006	Uri string `json:"uri,omitempty"`
10007
10008	// ForceSendFields is a list of field names (e.g. "PageNumber") to
10009	// unconditionally include in API requests. By default, fields with
10010	// empty or default values are omitted from API requests. However, any
10011	// non-pointer, non-interface field appearing in ForceSendFields will be
10012	// sent to the server regardless of whether the field is empty or not.
10013	// This may be used to include empty fields in Patch requests.
10014	ForceSendFields []string `json:"-"`
10015
10016	// NullFields is a list of field names (e.g. "PageNumber") to include in
10017	// API requests with the JSON null value. By default, fields with empty
10018	// values are omitted from API requests. However, any field with an
10019	// empty value appearing in NullFields will be sent to the server as
10020	// null. It is an error if a field in this list has a non-empty value.
10021	// This may be used to include null fields in Patch requests.
10022	NullFields []string `json:"-"`
10023}
10024
10025func (s *GoogleCloudVisionV1p4beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
10026	type NoMethod GoogleCloudVisionV1p4beta1ImageAnnotationContext
10027	raw := NoMethod(*s)
10028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10029}
10030
10031// GoogleCloudVisionV1p4beta1ImageProperties: Stores image properties,
10032// such as dominant colors.
10033type GoogleCloudVisionV1p4beta1ImageProperties struct {
10034	// DominantColors: If present, dominant colors completed successfully.
10035	DominantColors *GoogleCloudVisionV1p4beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
10036
10037	// ForceSendFields is a list of field names (e.g. "DominantColors") to
10038	// unconditionally include in API requests. By default, fields with
10039	// empty or default values are omitted from API requests. However, any
10040	// non-pointer, non-interface field appearing in ForceSendFields will be
10041	// sent to the server regardless of whether the field is empty or not.
10042	// This may be used to include empty fields in Patch requests.
10043	ForceSendFields []string `json:"-"`
10044
10045	// NullFields is a list of field names (e.g. "DominantColors") to
10046	// include in API requests with the JSON null value. By default, fields
10047	// with empty values are omitted from API requests. However, any field
10048	// with an empty value appearing in NullFields will be sent to the
10049	// server as null. It is an error if a field in this list has a
10050	// non-empty value. This may be used to include null fields in Patch
10051	// requests.
10052	NullFields []string `json:"-"`
10053}
10054
10055func (s *GoogleCloudVisionV1p4beta1ImageProperties) MarshalJSON() ([]byte, error) {
10056	type NoMethod GoogleCloudVisionV1p4beta1ImageProperties
10057	raw := NoMethod(*s)
10058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10059}
10060
10061// GoogleCloudVisionV1p4beta1ImportProductSetsResponse: Response message
10062// for the `ImportProductSets` method. This message is returned by the
10063// google.longrunning.Operations.GetOperation method in the returned
10064// google.longrunning.Operation.response field.
10065type GoogleCloudVisionV1p4beta1ImportProductSetsResponse struct {
10066	// ReferenceImages: The list of reference_images that are imported
10067	// successfully.
10068	ReferenceImages []*GoogleCloudVisionV1p4beta1ReferenceImage `json:"referenceImages,omitempty"`
10069
10070	// Statuses: The rpc status for each ImportProductSet request, including
10071	// both successes and errors. The number of statuses here matches the
10072	// number of lines in the csv file, and statuses[i] stores the success
10073	// or failure status of processing the i-th line of the csv, starting
10074	// from line 0.
10075	Statuses []*Status `json:"statuses,omitempty"`
10076
10077	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
10078	// unconditionally include in API requests. By default, fields with
10079	// empty or default values are omitted from API requests. However, any
10080	// non-pointer, non-interface field appearing in ForceSendFields will be
10081	// sent to the server regardless of whether the field is empty or not.
10082	// This may be used to include empty fields in Patch requests.
10083	ForceSendFields []string `json:"-"`
10084
10085	// NullFields is a list of field names (e.g. "ReferenceImages") to
10086	// include in API requests with the JSON null value. By default, fields
10087	// with empty values are omitted from API requests. However, any field
10088	// with an empty value appearing in NullFields will be sent to the
10089	// server as null. It is an error if a field in this list has a
10090	// non-empty value. This may be used to include null fields in Patch
10091	// requests.
10092	NullFields []string `json:"-"`
10093}
10094
10095func (s *GoogleCloudVisionV1p4beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
10096	type NoMethod GoogleCloudVisionV1p4beta1ImportProductSetsResponse
10097	raw := NoMethod(*s)
10098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10099}
10100
10101// GoogleCloudVisionV1p4beta1InputConfig: The desired input location and
10102// metadata.
10103type GoogleCloudVisionV1p4beta1InputConfig struct {
10104	// Content: File content, represented as a stream of bytes. Note: As
10105	// with all `bytes` fields, protobuffers use a pure binary
10106	// representation, whereas JSON representations use base64. Currently,
10107	// this field only works for BatchAnnotateFiles requests. It does not
10108	// work for AsyncBatchAnnotateFiles requests.
10109	Content string `json:"content,omitempty"`
10110
10111	// GcsSource: The Google Cloud Storage location to read the input from.
10112	GcsSource *GoogleCloudVisionV1p4beta1GcsSource `json:"gcsSource,omitempty"`
10113
10114	// MimeType: The type of the file. Currently only "application/pdf",
10115	// "image/tiff" and "image/gif" are supported. Wildcards are not
10116	// supported.
10117	MimeType string `json:"mimeType,omitempty"`
10118
10119	// ForceSendFields is a list of field names (e.g. "Content") to
10120	// unconditionally include in API requests. By default, fields with
10121	// empty or default values are omitted from API requests. However, any
10122	// non-pointer, non-interface field appearing in ForceSendFields will be
10123	// sent to the server regardless of whether the field is empty or not.
10124	// This may be used to include empty fields in Patch requests.
10125	ForceSendFields []string `json:"-"`
10126
10127	// NullFields is a list of field names (e.g. "Content") to include in
10128	// API requests with the JSON null value. By default, fields with empty
10129	// values are omitted from API requests. However, any field with an
10130	// empty value appearing in NullFields will be sent to the server as
10131	// null. It is an error if a field in this list has a non-empty value.
10132	// This may be used to include null fields in Patch requests.
10133	NullFields []string `json:"-"`
10134}
10135
10136func (s *GoogleCloudVisionV1p4beta1InputConfig) MarshalJSON() ([]byte, error) {
10137	type NoMethod GoogleCloudVisionV1p4beta1InputConfig
10138	raw := NoMethod(*s)
10139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10140}
10141
10142// GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation: Set of detected
10143// objects with bounding boxes.
10144type GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation struct {
10145	// BoundingPoly: Image region to which this object belongs. This must be
10146	// populated.
10147	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10148
10149	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
10150	// For more information, see
10151	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
10152	LanguageCode string `json:"languageCode,omitempty"`
10153
10154	// Mid: Object ID that should align with EntityAnnotation mid.
10155	Mid string `json:"mid,omitempty"`
10156
10157	// Name: Object name, expressed in its `language_code` language.
10158	Name string `json:"name,omitempty"`
10159
10160	// Score: Score of the result. Range [0, 1].
10161	Score float64 `json:"score,omitempty"`
10162
10163	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10164	// unconditionally include in API requests. By default, fields with
10165	// empty or default values are omitted from API requests. However, any
10166	// non-pointer, non-interface field appearing in ForceSendFields will be
10167	// sent to the server regardless of whether the field is empty or not.
10168	// This may be used to include empty fields in Patch requests.
10169	ForceSendFields []string `json:"-"`
10170
10171	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10172	// in API requests with the JSON null value. By default, fields with
10173	// empty values are omitted from API requests. However, any field with
10174	// an empty value appearing in NullFields will be sent to the server as
10175	// null. It is an error if a field in this list has a non-empty value.
10176	// This may be used to include null fields in Patch requests.
10177	NullFields []string `json:"-"`
10178}
10179
10180func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
10181	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10182	raw := NoMethod(*s)
10183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10184}
10185
10186func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
10187	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
10188	var s1 struct {
10189		Score gensupport.JSONFloat64 `json:"score"`
10190		*NoMethod
10191	}
10192	s1.NoMethod = (*NoMethod)(s)
10193	if err := json.Unmarshal(data, &s1); err != nil {
10194		return err
10195	}
10196	s.Score = float64(s1.Score)
10197	return nil
10198}
10199
10200// GoogleCloudVisionV1p4beta1LocationInfo: Detected entity location
10201// information.
10202type GoogleCloudVisionV1p4beta1LocationInfo struct {
10203	// LatLng: lat/long location coordinates.
10204	LatLng *LatLng `json:"latLng,omitempty"`
10205
10206	// ForceSendFields is a list of field names (e.g. "LatLng") to
10207	// unconditionally include in API requests. By default, fields with
10208	// empty or default values are omitted from API requests. However, any
10209	// non-pointer, non-interface field appearing in ForceSendFields will be
10210	// sent to the server regardless of whether the field is empty or not.
10211	// This may be used to include empty fields in Patch requests.
10212	ForceSendFields []string `json:"-"`
10213
10214	// NullFields is a list of field names (e.g. "LatLng") to include in API
10215	// requests with the JSON null value. By default, fields with empty
10216	// values are omitted from API requests. However, any field with an
10217	// empty value appearing in NullFields will be sent to the server as
10218	// null. It is an error if a field in this list has a non-empty value.
10219	// This may be used to include null fields in Patch requests.
10220	NullFields []string `json:"-"`
10221}
10222
10223func (s *GoogleCloudVisionV1p4beta1LocationInfo) MarshalJSON() ([]byte, error) {
10224	type NoMethod GoogleCloudVisionV1p4beta1LocationInfo
10225	raw := NoMethod(*s)
10226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10227}
10228
10229// GoogleCloudVisionV1p4beta1NormalizedVertex: A vertex represents a 2D
10230// point in the image. NOTE: the normalized vertex coordinates are
10231// relative to the original image and range from 0 to 1.
10232type GoogleCloudVisionV1p4beta1NormalizedVertex struct {
10233	// X: X coordinate.
10234	X float64 `json:"x,omitempty"`
10235
10236	// Y: Y coordinate.
10237	Y float64 `json:"y,omitempty"`
10238
10239	// ForceSendFields is a list of field names (e.g. "X") to
10240	// unconditionally include in API requests. By default, fields with
10241	// empty or default values are omitted from API requests. However, any
10242	// non-pointer, non-interface field appearing in ForceSendFields will be
10243	// sent to the server regardless of whether the field is empty or not.
10244	// This may be used to include empty fields in Patch requests.
10245	ForceSendFields []string `json:"-"`
10246
10247	// NullFields is a list of field names (e.g. "X") to include in API
10248	// requests with the JSON null value. By default, fields with empty
10249	// values are omitted from API requests. However, any field with an
10250	// empty value appearing in NullFields will be sent to the server as
10251	// null. It is an error if a field in this list has a non-empty value.
10252	// This may be used to include null fields in Patch requests.
10253	NullFields []string `json:"-"`
10254}
10255
10256func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
10257	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
10258	raw := NoMethod(*s)
10259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10260}
10261
10262func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
10263	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
10264	var s1 struct {
10265		X gensupport.JSONFloat64 `json:"x"`
10266		Y gensupport.JSONFloat64 `json:"y"`
10267		*NoMethod
10268	}
10269	s1.NoMethod = (*NoMethod)(s)
10270	if err := json.Unmarshal(data, &s1); err != nil {
10271		return err
10272	}
10273	s.X = float64(s1.X)
10274	s.Y = float64(s1.Y)
10275	return nil
10276}
10277
10278// GoogleCloudVisionV1p4beta1OperationMetadata: Contains metadata for
10279// the BatchAnnotateImages operation.
10280type GoogleCloudVisionV1p4beta1OperationMetadata struct {
10281	// CreateTime: The time when the batch request was received.
10282	CreateTime string `json:"createTime,omitempty"`
10283
10284	// State: Current state of the batch operation.
10285	//
10286	// Possible values:
10287	//   "STATE_UNSPECIFIED" - Invalid.
10288	//   "CREATED" - Request is received.
10289	//   "RUNNING" - Request is actively being processed.
10290	//   "DONE" - The batch processing is done.
10291	//   "CANCELLED" - The batch processing was cancelled.
10292	State string `json:"state,omitempty"`
10293
10294	// UpdateTime: The time when the operation result was last updated.
10295	UpdateTime string `json:"updateTime,omitempty"`
10296
10297	// ForceSendFields is a list of field names (e.g. "CreateTime") to
10298	// unconditionally include in API requests. By default, fields with
10299	// empty or default values are omitted from API requests. However, any
10300	// non-pointer, non-interface field appearing in ForceSendFields will be
10301	// sent to the server regardless of whether the field is empty or not.
10302	// This may be used to include empty fields in Patch requests.
10303	ForceSendFields []string `json:"-"`
10304
10305	// NullFields is a list of field names (e.g. "CreateTime") to include in
10306	// API requests with the JSON null value. By default, fields with empty
10307	// values are omitted from API requests. However, any field with an
10308	// empty value appearing in NullFields will be sent to the server as
10309	// null. It is an error if a field in this list has a non-empty value.
10310	// This may be used to include null fields in Patch requests.
10311	NullFields []string `json:"-"`
10312}
10313
10314func (s *GoogleCloudVisionV1p4beta1OperationMetadata) MarshalJSON() ([]byte, error) {
10315	type NoMethod GoogleCloudVisionV1p4beta1OperationMetadata
10316	raw := NoMethod(*s)
10317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10318}
10319
10320// GoogleCloudVisionV1p4beta1OutputConfig: The desired output location
10321// and metadata.
10322type GoogleCloudVisionV1p4beta1OutputConfig struct {
10323	// BatchSize: The max number of response protos to put into each output
10324	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
10325	// not specified, the default value is 20. For example, for one pdf file
10326	// with 100 pages, 100 response protos will be generated. If
10327	// `batch_size` = 20, then 5 json files each containing 20 response
10328	// protos will be written under the prefix `gcs_destination`.`uri`.
10329	// Currently, batch_size only applies to GcsDestination, with potential
10330	// future support for other output configurations.
10331	BatchSize int64 `json:"batchSize,omitempty"`
10332
10333	// GcsDestination: The Google Cloud Storage location to write the
10334	// output(s) to.
10335	GcsDestination *GoogleCloudVisionV1p4beta1GcsDestination `json:"gcsDestination,omitempty"`
10336
10337	// ForceSendFields is a list of field names (e.g. "BatchSize") to
10338	// unconditionally include in API requests. By default, fields with
10339	// empty or default values are omitted from API requests. However, any
10340	// non-pointer, non-interface field appearing in ForceSendFields will be
10341	// sent to the server regardless of whether the field is empty or not.
10342	// This may be used to include empty fields in Patch requests.
10343	ForceSendFields []string `json:"-"`
10344
10345	// NullFields is a list of field names (e.g. "BatchSize") to include in
10346	// API requests with the JSON null value. By default, fields with empty
10347	// values are omitted from API requests. However, any field with an
10348	// empty value appearing in NullFields will be sent to the server as
10349	// null. It is an error if a field in this list has a non-empty value.
10350	// This may be used to include null fields in Patch requests.
10351	NullFields []string `json:"-"`
10352}
10353
10354func (s *GoogleCloudVisionV1p4beta1OutputConfig) MarshalJSON() ([]byte, error) {
10355	type NoMethod GoogleCloudVisionV1p4beta1OutputConfig
10356	raw := NoMethod(*s)
10357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10358}
10359
10360// GoogleCloudVisionV1p4beta1Page: Detected page from OCR.
10361type GoogleCloudVisionV1p4beta1Page struct {
10362	// Blocks: List of blocks of text, images etc on this page.
10363	Blocks []*GoogleCloudVisionV1p4beta1Block `json:"blocks,omitempty"`
10364
10365	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
10366	Confidence float64 `json:"confidence,omitempty"`
10367
10368	// Height: Page height. For PDFs the unit is points. For images
10369	// (including TIFFs) the unit is pixels.
10370	Height int64 `json:"height,omitempty"`
10371
10372	// Property: Additional information detected on the page.
10373	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10374
10375	// Width: Page width. For PDFs the unit is points. For images (including
10376	// TIFFs) the unit is pixels.
10377	Width int64 `json:"width,omitempty"`
10378
10379	// ForceSendFields is a list of field names (e.g. "Blocks") to
10380	// unconditionally include in API requests. By default, fields with
10381	// empty or default values are omitted from API requests. However, any
10382	// non-pointer, non-interface field appearing in ForceSendFields will be
10383	// sent to the server regardless of whether the field is empty or not.
10384	// This may be used to include empty fields in Patch requests.
10385	ForceSendFields []string `json:"-"`
10386
10387	// NullFields is a list of field names (e.g. "Blocks") to include in API
10388	// requests with the JSON null value. By default, fields with empty
10389	// values are omitted from API requests. However, any field with an
10390	// empty value appearing in NullFields will be sent to the server as
10391	// null. It is an error if a field in this list has a non-empty value.
10392	// This may be used to include null fields in Patch requests.
10393	NullFields []string `json:"-"`
10394}
10395
10396func (s *GoogleCloudVisionV1p4beta1Page) MarshalJSON() ([]byte, error) {
10397	type NoMethod GoogleCloudVisionV1p4beta1Page
10398	raw := NoMethod(*s)
10399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10400}
10401
10402func (s *GoogleCloudVisionV1p4beta1Page) UnmarshalJSON(data []byte) error {
10403	type NoMethod GoogleCloudVisionV1p4beta1Page
10404	var s1 struct {
10405		Confidence gensupport.JSONFloat64 `json:"confidence"`
10406		*NoMethod
10407	}
10408	s1.NoMethod = (*NoMethod)(s)
10409	if err := json.Unmarshal(data, &s1); err != nil {
10410		return err
10411	}
10412	s.Confidence = float64(s1.Confidence)
10413	return nil
10414}
10415
10416// GoogleCloudVisionV1p4beta1Paragraph: Structural unit of text
10417// representing a number of words in certain order.
10418type GoogleCloudVisionV1p4beta1Paragraph struct {
10419	// BoundingBox: The bounding box for the paragraph. The vertices are in
10420	// the order of top-left, top-right, bottom-right, bottom-left. When a
10421	// rotation of the bounding box is detected the rotation is represented
10422	// as around the top-left corner as defined when the text is read in the
10423	// 'natural' orientation. For example: * when the text is horizontal it
10424	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
10425	// around the top-left corner it becomes: 2----3 | | 1----0 and the
10426	// vertex order will still be (0, 1, 2, 3).
10427	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10428
10429	// Confidence: Confidence of the OCR results for the paragraph. Range
10430	// [0, 1].
10431	Confidence float64 `json:"confidence,omitempty"`
10432
10433	// Property: Additional information detected for the paragraph.
10434	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10435
10436	// Words: List of all words in this paragraph.
10437	Words []*GoogleCloudVisionV1p4beta1Word `json:"words,omitempty"`
10438
10439	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
10440	// unconditionally include in API requests. By default, fields with
10441	// empty or default values are omitted from API requests. However, any
10442	// non-pointer, non-interface field appearing in ForceSendFields will be
10443	// sent to the server regardless of whether the field is empty or not.
10444	// This may be used to include empty fields in Patch requests.
10445	ForceSendFields []string `json:"-"`
10446
10447	// NullFields is a list of field names (e.g. "BoundingBox") to include
10448	// in API requests with the JSON null value. By default, fields with
10449	// empty values are omitted from API requests. However, any field with
10450	// an empty value appearing in NullFields will be sent to the server as
10451	// null. It is an error if a field in this list has a non-empty value.
10452	// This may be used to include null fields in Patch requests.
10453	NullFields []string `json:"-"`
10454}
10455
10456func (s *GoogleCloudVisionV1p4beta1Paragraph) MarshalJSON() ([]byte, error) {
10457	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
10458	raw := NoMethod(*s)
10459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10460}
10461
10462func (s *GoogleCloudVisionV1p4beta1Paragraph) UnmarshalJSON(data []byte) error {
10463	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
10464	var s1 struct {
10465		Confidence gensupport.JSONFloat64 `json:"confidence"`
10466		*NoMethod
10467	}
10468	s1.NoMethod = (*NoMethod)(s)
10469	if err := json.Unmarshal(data, &s1); err != nil {
10470		return err
10471	}
10472	s.Confidence = float64(s1.Confidence)
10473	return nil
10474}
10475
10476// GoogleCloudVisionV1p4beta1Position: A 3D position in the image, used
10477// primarily for Face detection landmarks. A valid Position must have
10478// both x and y coordinates. The position coordinates are in the same
10479// scale as the original image.
10480type GoogleCloudVisionV1p4beta1Position struct {
10481	// X: X coordinate.
10482	X float64 `json:"x,omitempty"`
10483
10484	// Y: Y coordinate.
10485	Y float64 `json:"y,omitempty"`
10486
10487	// Z: Z coordinate (or depth).
10488	Z float64 `json:"z,omitempty"`
10489
10490	// ForceSendFields is a list of field names (e.g. "X") to
10491	// unconditionally include in API requests. By default, fields with
10492	// empty or default values are omitted from API requests. However, any
10493	// non-pointer, non-interface field appearing in ForceSendFields will be
10494	// sent to the server regardless of whether the field is empty or not.
10495	// This may be used to include empty fields in Patch requests.
10496	ForceSendFields []string `json:"-"`
10497
10498	// NullFields is a list of field names (e.g. "X") to include in API
10499	// requests with the JSON null value. By default, fields with empty
10500	// values are omitted from API requests. However, any field with an
10501	// empty value appearing in NullFields will be sent to the server as
10502	// null. It is an error if a field in this list has a non-empty value.
10503	// This may be used to include null fields in Patch requests.
10504	NullFields []string `json:"-"`
10505}
10506
10507func (s *GoogleCloudVisionV1p4beta1Position) MarshalJSON() ([]byte, error) {
10508	type NoMethod GoogleCloudVisionV1p4beta1Position
10509	raw := NoMethod(*s)
10510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10511}
10512
10513func (s *GoogleCloudVisionV1p4beta1Position) UnmarshalJSON(data []byte) error {
10514	type NoMethod GoogleCloudVisionV1p4beta1Position
10515	var s1 struct {
10516		X gensupport.JSONFloat64 `json:"x"`
10517		Y gensupport.JSONFloat64 `json:"y"`
10518		Z gensupport.JSONFloat64 `json:"z"`
10519		*NoMethod
10520	}
10521	s1.NoMethod = (*NoMethod)(s)
10522	if err := json.Unmarshal(data, &s1); err != nil {
10523		return err
10524	}
10525	s.X = float64(s1.X)
10526	s.Y = float64(s1.Y)
10527	s.Z = float64(s1.Z)
10528	return nil
10529}
10530
10531// GoogleCloudVisionV1p4beta1Product: A Product contains
10532// ReferenceImages.
10533type GoogleCloudVisionV1p4beta1Product struct {
10534	// Description: User-provided metadata to be stored with this product.
10535	// Must be at most 4096 characters long.
10536	Description string `json:"description,omitempty"`
10537
10538	// DisplayName: The user-provided name for this Product. Must not be
10539	// empty. Must be at most 4096 characters long.
10540	DisplayName string `json:"displayName,omitempty"`
10541
10542	// Name: The resource name of the product. Format is:
10543	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
10544	// field is ignored when creating a product.
10545	Name string `json:"name,omitempty"`
10546
10547	// ProductCategory: Immutable. The category for the product identified
10548	// by the reference image. This should be one of "homegoods-v2",
10549	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
10550	// legacy categories "homegoods", "apparel", and "toys" are still
10551	// supported, but these should not be used for new products.
10552	ProductCategory string `json:"productCategory,omitempty"`
10553
10554	// ProductLabels: Key-value pairs that can be attached to a product. At
10555	// query time, constraints can be specified based on the product_labels.
10556	// Note that integer values can be provided as strings, e.g. "1199".
10557	// Only strings with integer values can match a range-based restriction
10558	// which is to be supported soon. Multiple values can be assigned to the
10559	// same key. One product may have up to 500 product_labels. Notice that
10560	// the total number of distinct product_labels over all products in one
10561	// ProductSet cannot exceed 1M, otherwise the product search pipeline
10562	// will refuse to work for that ProductSet.
10563	ProductLabels []*GoogleCloudVisionV1p4beta1ProductKeyValue `json:"productLabels,omitempty"`
10564
10565	// ForceSendFields is a list of field names (e.g. "Description") to
10566	// unconditionally include in API requests. By default, fields with
10567	// empty or default values are omitted from API requests. However, any
10568	// non-pointer, non-interface field appearing in ForceSendFields will be
10569	// sent to the server regardless of whether the field is empty or not.
10570	// This may be used to include empty fields in Patch requests.
10571	ForceSendFields []string `json:"-"`
10572
10573	// NullFields is a list of field names (e.g. "Description") to include
10574	// in API requests with the JSON null value. By default, fields with
10575	// empty values are omitted from API requests. However, any field with
10576	// an empty value appearing in NullFields will be sent to the server as
10577	// null. It is an error if a field in this list has a non-empty value.
10578	// This may be used to include null fields in Patch requests.
10579	NullFields []string `json:"-"`
10580}
10581
10582func (s *GoogleCloudVisionV1p4beta1Product) MarshalJSON() ([]byte, error) {
10583	type NoMethod GoogleCloudVisionV1p4beta1Product
10584	raw := NoMethod(*s)
10585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10586}
10587
10588// GoogleCloudVisionV1p4beta1ProductKeyValue: A product label
10589// represented as a key-value pair.
10590type GoogleCloudVisionV1p4beta1ProductKeyValue struct {
10591	// Key: The key of the label attached to the product. Cannot be empty
10592	// and cannot exceed 128 bytes.
10593	Key string `json:"key,omitempty"`
10594
10595	// Value: The value of the label attached to the product. Cannot be
10596	// empty and cannot exceed 128 bytes.
10597	Value string `json:"value,omitempty"`
10598
10599	// ForceSendFields is a list of field names (e.g. "Key") to
10600	// unconditionally include in API requests. By default, fields with
10601	// empty or default values are omitted from API requests. However, any
10602	// non-pointer, non-interface field appearing in ForceSendFields will be
10603	// sent to the server regardless of whether the field is empty or not.
10604	// This may be used to include empty fields in Patch requests.
10605	ForceSendFields []string `json:"-"`
10606
10607	// NullFields is a list of field names (e.g. "Key") to include in API
10608	// requests with the JSON null value. By default, fields with empty
10609	// values are omitted from API requests. However, any field with an
10610	// empty value appearing in NullFields will be sent to the server as
10611	// null. It is an error if a field in this list has a non-empty value.
10612	// This may be used to include null fields in Patch requests.
10613	NullFields []string `json:"-"`
10614}
10615
10616func (s *GoogleCloudVisionV1p4beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
10617	type NoMethod GoogleCloudVisionV1p4beta1ProductKeyValue
10618	raw := NoMethod(*s)
10619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10620}
10621
10622// GoogleCloudVisionV1p4beta1ProductSearchResults: Results for a product
10623// search request.
10624type GoogleCloudVisionV1p4beta1ProductSearchResults struct {
10625	// IndexTime: Timestamp of the index which provided these results.
10626	// Products added to the product set and products removed from the
10627	// product set after this time are not reflected in the current results.
10628	IndexTime string `json:"indexTime,omitempty"`
10629
10630	// ProductGroupedResults: List of results grouped by products detected
10631	// in the query image. Each entry corresponds to one bounding polygon in
10632	// the query image, and contains the matching products specific to that
10633	// region. There may be duplicate product matches in the union of all
10634	// the per-product results.
10635	ProductGroupedResults []*GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
10636
10637	// Results: List of results, one for each product match.
10638	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
10639
10640	// ForceSendFields is a list of field names (e.g. "IndexTime") to
10641	// unconditionally include in API requests. By default, fields with
10642	// empty or default values are omitted from API requests. However, any
10643	// non-pointer, non-interface field appearing in ForceSendFields will be
10644	// sent to the server regardless of whether the field is empty or not.
10645	// This may be used to include empty fields in Patch requests.
10646	ForceSendFields []string `json:"-"`
10647
10648	// NullFields is a list of field names (e.g. "IndexTime") to include in
10649	// API requests with the JSON null value. By default, fields with empty
10650	// values are omitted from API requests. However, any field with an
10651	// empty value appearing in NullFields will be sent to the server as
10652	// null. It is an error if a field in this list has a non-empty value.
10653	// This may be used to include null fields in Patch requests.
10654	NullFields []string `json:"-"`
10655}
10656
10657func (s *GoogleCloudVisionV1p4beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
10658	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResults
10659	raw := NoMethod(*s)
10660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10661}
10662
10663// GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult:
10664// Information about the products similar to a single product in a query
10665// image.
10666type GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult struct {
10667	// BoundingPoly: The bounding polygon around the product detected in the
10668	// query image.
10669	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10670
10671	// ObjectAnnotations: List of generic predictions for the object in the
10672	// bounding box.
10673	ObjectAnnotations []*GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
10674
10675	// Results: List of results, one for each product match.
10676	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
10677
10678	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10679	// unconditionally include in API requests. By default, fields with
10680	// empty or default values are omitted from API requests. However, any
10681	// non-pointer, non-interface field appearing in ForceSendFields will be
10682	// sent to the server regardless of whether the field is empty or not.
10683	// This may be used to include empty fields in Patch requests.
10684	ForceSendFields []string `json:"-"`
10685
10686	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10687	// in API requests with the JSON null value. By default, fields with
10688	// empty values are omitted from API requests. However, any field with
10689	// an empty value appearing in NullFields will be sent to the server as
10690	// null. It is an error if a field in this list has a non-empty value.
10691	// This may be used to include null fields in Patch requests.
10692	NullFields []string `json:"-"`
10693}
10694
10695func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
10696	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult
10697	raw := NoMethod(*s)
10698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10699}
10700
10701// GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation:
10702// Prediction for what the object in the bounding box is.
10703type GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation struct {
10704	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
10705	// For more information, see
10706	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
10707	LanguageCode string `json:"languageCode,omitempty"`
10708
10709	// Mid: Object ID that should align with EntityAnnotation mid.
10710	Mid string `json:"mid,omitempty"`
10711
10712	// Name: Object name, expressed in its `language_code` language.
10713	Name string `json:"name,omitempty"`
10714
10715	// Score: Score of the result. Range [0, 1].
10716	Score float64 `json:"score,omitempty"`
10717
10718	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
10719	// unconditionally include in API requests. By default, fields with
10720	// empty or default values are omitted from API requests. However, any
10721	// non-pointer, non-interface field appearing in ForceSendFields will be
10722	// sent to the server regardless of whether the field is empty or not.
10723	// This may be used to include empty fields in Patch requests.
10724	ForceSendFields []string `json:"-"`
10725
10726	// NullFields is a list of field names (e.g. "LanguageCode") to include
10727	// in API requests with the JSON null value. By default, fields with
10728	// empty values are omitted from API requests. However, any field with
10729	// an empty value appearing in NullFields will be sent to the server as
10730	// null. It is an error if a field in this list has a non-empty value.
10731	// This may be used to include null fields in Patch requests.
10732	NullFields []string `json:"-"`
10733}
10734
10735func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
10736	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
10737	raw := NoMethod(*s)
10738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10739}
10740
10741func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
10742	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
10743	var s1 struct {
10744		Score gensupport.JSONFloat64 `json:"score"`
10745		*NoMethod
10746	}
10747	s1.NoMethod = (*NoMethod)(s)
10748	if err := json.Unmarshal(data, &s1); err != nil {
10749		return err
10750	}
10751	s.Score = float64(s1.Score)
10752	return nil
10753}
10754
10755// GoogleCloudVisionV1p4beta1ProductSearchResultsResult: Information
10756// about a product.
10757type GoogleCloudVisionV1p4beta1ProductSearchResultsResult struct {
10758	// Image: The resource name of the image from the product that is the
10759	// closest match to the query.
10760	Image string `json:"image,omitempty"`
10761
10762	// Product: The Product.
10763	Product *GoogleCloudVisionV1p4beta1Product `json:"product,omitempty"`
10764
10765	// Score: A confidence level on the match, ranging from 0 (no
10766	// confidence) to 1 (full confidence).
10767	Score float64 `json:"score,omitempty"`
10768
10769	// ForceSendFields is a list of field names (e.g. "Image") 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. "Image") 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 *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
10787	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
10788	raw := NoMethod(*s)
10789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10790}
10791
10792func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
10793	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
10794	var s1 struct {
10795		Score gensupport.JSONFloat64 `json:"score"`
10796		*NoMethod
10797	}
10798	s1.NoMethod = (*NoMethod)(s)
10799	if err := json.Unmarshal(data, &s1); err != nil {
10800		return err
10801	}
10802	s.Score = float64(s1.Score)
10803	return nil
10804}
10805
10806// GoogleCloudVisionV1p4beta1Property: A `Property` consists of a
10807// user-supplied name/value pair.
10808type GoogleCloudVisionV1p4beta1Property struct {
10809	// Name: Name of the property.
10810	Name string `json:"name,omitempty"`
10811
10812	// Uint64Value: Value of numeric properties.
10813	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
10814
10815	// Value: Value of the property.
10816	Value string `json:"value,omitempty"`
10817
10818	// ForceSendFields is a list of field names (e.g. "Name") to
10819	// unconditionally include in API requests. By default, fields with
10820	// empty or default values are omitted from API requests. However, any
10821	// non-pointer, non-interface field appearing in ForceSendFields will be
10822	// sent to the server regardless of whether the field is empty or not.
10823	// This may be used to include empty fields in Patch requests.
10824	ForceSendFields []string `json:"-"`
10825
10826	// NullFields is a list of field names (e.g. "Name") to include in API
10827	// requests with the JSON null value. By default, fields with empty
10828	// values are omitted from API requests. However, any field with an
10829	// empty value appearing in NullFields will be sent to the server as
10830	// null. It is an error if a field in this list has a non-empty value.
10831	// This may be used to include null fields in Patch requests.
10832	NullFields []string `json:"-"`
10833}
10834
10835func (s *GoogleCloudVisionV1p4beta1Property) MarshalJSON() ([]byte, error) {
10836	type NoMethod GoogleCloudVisionV1p4beta1Property
10837	raw := NoMethod(*s)
10838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10839}
10840
10841// GoogleCloudVisionV1p4beta1ReferenceImage: A `ReferenceImage`
10842// represents a product image and its associated metadata, such as
10843// bounding boxes.
10844type GoogleCloudVisionV1p4beta1ReferenceImage struct {
10845	// BoundingPolys: Optional. Bounding polygons around the areas of
10846	// interest in the reference image. If this field is empty, the system
10847	// will try to detect regions of interest. At most 10 bounding polygons
10848	// will be used. The provided shape is converted into a non-rotated
10849	// rectangle. Once converted, the small edge of the rectangle must be
10850	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
10851	// less (i.e. 1:3 is ok; 1:5 is not).
10852	BoundingPolys []*GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPolys,omitempty"`
10853
10854	// Name: The resource name of the reference image. Format is:
10855	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
10856	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
10857	Name string `json:"name,omitempty"`
10858
10859	// Uri: Required. The Google Cloud Storage URI of the reference image.
10860	// The URI must start with `gs://`.
10861	Uri string `json:"uri,omitempty"`
10862
10863	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
10864	// unconditionally include in API requests. By default, fields with
10865	// empty or default values are omitted from API requests. However, any
10866	// non-pointer, non-interface field appearing in ForceSendFields will be
10867	// sent to the server regardless of whether the field is empty or not.
10868	// This may be used to include empty fields in Patch requests.
10869	ForceSendFields []string `json:"-"`
10870
10871	// NullFields is a list of field names (e.g. "BoundingPolys") to include
10872	// in API requests with the JSON null value. By default, fields with
10873	// empty values are omitted from API requests. However, any field with
10874	// an empty value appearing in NullFields will be sent to the server as
10875	// null. It is an error if a field in this list has a non-empty value.
10876	// This may be used to include null fields in Patch requests.
10877	NullFields []string `json:"-"`
10878}
10879
10880func (s *GoogleCloudVisionV1p4beta1ReferenceImage) MarshalJSON() ([]byte, error) {
10881	type NoMethod GoogleCloudVisionV1p4beta1ReferenceImage
10882	raw := NoMethod(*s)
10883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10884}
10885
10886// GoogleCloudVisionV1p4beta1SafeSearchAnnotation: Set of features
10887// pertaining to the image, computed by computer vision methods over
10888// safe-search verticals (for example, adult, spoof, medical, violence).
10889type GoogleCloudVisionV1p4beta1SafeSearchAnnotation struct {
10890	// Adult: Represents the adult content likelihood for the image. Adult
10891	// content may contain elements such as nudity, pornographic images or
10892	// cartoons, or sexual activities.
10893	//
10894	// Possible values:
10895	//   "UNKNOWN" - Unknown likelihood.
10896	//   "VERY_UNLIKELY" - It is very unlikely.
10897	//   "UNLIKELY" - It is unlikely.
10898	//   "POSSIBLE" - It is possible.
10899	//   "LIKELY" - It is likely.
10900	//   "VERY_LIKELY" - It is very likely.
10901	Adult string `json:"adult,omitempty"`
10902
10903	// Medical: Likelihood that this is a medical image.
10904	//
10905	// Possible values:
10906	//   "UNKNOWN" - Unknown likelihood.
10907	//   "VERY_UNLIKELY" - It is very unlikely.
10908	//   "UNLIKELY" - It is unlikely.
10909	//   "POSSIBLE" - It is possible.
10910	//   "LIKELY" - It is likely.
10911	//   "VERY_LIKELY" - It is very likely.
10912	Medical string `json:"medical,omitempty"`
10913
10914	// Racy: Likelihood that the request image contains racy content. Racy
10915	// content may include (but is not limited to) skimpy or sheer clothing,
10916	// strategically covered nudity, lewd or provocative poses, or close-ups
10917	// of sensitive body areas.
10918	//
10919	// Possible values:
10920	//   "UNKNOWN" - Unknown likelihood.
10921	//   "VERY_UNLIKELY" - It is very unlikely.
10922	//   "UNLIKELY" - It is unlikely.
10923	//   "POSSIBLE" - It is possible.
10924	//   "LIKELY" - It is likely.
10925	//   "VERY_LIKELY" - It is very likely.
10926	Racy string `json:"racy,omitempty"`
10927
10928	// Spoof: Spoof likelihood. The likelihood that an modification was made
10929	// to the image's canonical version to make it appear funny or
10930	// offensive.
10931	//
10932	// Possible values:
10933	//   "UNKNOWN" - Unknown likelihood.
10934	//   "VERY_UNLIKELY" - It is very unlikely.
10935	//   "UNLIKELY" - It is unlikely.
10936	//   "POSSIBLE" - It is possible.
10937	//   "LIKELY" - It is likely.
10938	//   "VERY_LIKELY" - It is very likely.
10939	Spoof string `json:"spoof,omitempty"`
10940
10941	// Violence: Likelihood that this image contains violent content.
10942	//
10943	// Possible values:
10944	//   "UNKNOWN" - Unknown likelihood.
10945	//   "VERY_UNLIKELY" - It is very unlikely.
10946	//   "UNLIKELY" - It is unlikely.
10947	//   "POSSIBLE" - It is possible.
10948	//   "LIKELY" - It is likely.
10949	//   "VERY_LIKELY" - It is very likely.
10950	Violence string `json:"violence,omitempty"`
10951
10952	// ForceSendFields is a list of field names (e.g. "Adult") to
10953	// unconditionally include in API requests. By default, fields with
10954	// empty or default values are omitted from API requests. However, any
10955	// non-pointer, non-interface field appearing in ForceSendFields will be
10956	// sent to the server regardless of whether the field is empty or not.
10957	// This may be used to include empty fields in Patch requests.
10958	ForceSendFields []string `json:"-"`
10959
10960	// NullFields is a list of field names (e.g. "Adult") to include in API
10961	// requests with the JSON null value. By default, fields with empty
10962	// values are omitted from API requests. However, any field with an
10963	// empty value appearing in NullFields will be sent to the server as
10964	// null. It is an error if a field in this list has a non-empty value.
10965	// This may be used to include null fields in Patch requests.
10966	NullFields []string `json:"-"`
10967}
10968
10969func (s *GoogleCloudVisionV1p4beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
10970	type NoMethod GoogleCloudVisionV1p4beta1SafeSearchAnnotation
10971	raw := NoMethod(*s)
10972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10973}
10974
10975// GoogleCloudVisionV1p4beta1Symbol: A single symbol representation.
10976type GoogleCloudVisionV1p4beta1Symbol struct {
10977	// BoundingBox: The bounding box for the symbol. The vertices are in the
10978	// order of top-left, top-right, bottom-right, bottom-left. When a
10979	// rotation of the bounding box is detected the rotation is represented
10980	// as around the top-left corner as defined when the text is read in the
10981	// 'natural' orientation. For example: * when the text is horizontal it
10982	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
10983	// around the top-left corner it becomes: 2----3 | | 1----0 and the
10984	// vertex order will still be (0, 1, 2, 3).
10985	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10986
10987	// Confidence: Confidence of the OCR results for the symbol. Range [0,
10988	// 1].
10989	Confidence float64 `json:"confidence,omitempty"`
10990
10991	// Property: Additional information detected for the symbol.
10992	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10993
10994	// Text: The actual UTF-8 representation of the symbol.
10995	Text string `json:"text,omitempty"`
10996
10997	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
10998	// unconditionally include in API requests. By default, fields with
10999	// empty or default values are omitted from API requests. However, any
11000	// non-pointer, non-interface field appearing in ForceSendFields will be
11001	// sent to the server regardless of whether the field is empty or not.
11002	// This may be used to include empty fields in Patch requests.
11003	ForceSendFields []string `json:"-"`
11004
11005	// NullFields is a list of field names (e.g. "BoundingBox") to include
11006	// in API requests with the JSON null value. By default, fields with
11007	// empty values are omitted from API requests. However, any field with
11008	// an empty value appearing in NullFields will be sent to the server as
11009	// null. It is an error if a field in this list has a non-empty value.
11010	// This may be used to include null fields in Patch requests.
11011	NullFields []string `json:"-"`
11012}
11013
11014func (s *GoogleCloudVisionV1p4beta1Symbol) MarshalJSON() ([]byte, error) {
11015	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11016	raw := NoMethod(*s)
11017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11018}
11019
11020func (s *GoogleCloudVisionV1p4beta1Symbol) UnmarshalJSON(data []byte) error {
11021	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11022	var s1 struct {
11023		Confidence gensupport.JSONFloat64 `json:"confidence"`
11024		*NoMethod
11025	}
11026	s1.NoMethod = (*NoMethod)(s)
11027	if err := json.Unmarshal(data, &s1); err != nil {
11028		return err
11029	}
11030	s.Confidence = float64(s1.Confidence)
11031	return nil
11032}
11033
11034// GoogleCloudVisionV1p4beta1TextAnnotation: TextAnnotation contains a
11035// structured representation of OCR extracted text. The hierarchy of an
11036// OCR extracted text structure is like this: TextAnnotation -> Page ->
11037// Block -> Paragraph -> Word -> Symbol Each structural component,
11038// starting from Page, may further have their own properties. Properties
11039// describe detected languages, breaks etc.. Please refer to the
11040// TextAnnotation.TextProperty message definition below for more detail.
11041type GoogleCloudVisionV1p4beta1TextAnnotation struct {
11042	// Pages: List of pages detected by OCR.
11043	Pages []*GoogleCloudVisionV1p4beta1Page `json:"pages,omitempty"`
11044
11045	// Text: UTF-8 text detected on the pages.
11046	Text string `json:"text,omitempty"`
11047
11048	// ForceSendFields is a list of field names (e.g. "Pages") to
11049	// unconditionally include in API requests. By default, fields with
11050	// empty or default values are omitted from API requests. However, any
11051	// non-pointer, non-interface field appearing in ForceSendFields will be
11052	// sent to the server regardless of whether the field is empty or not.
11053	// This may be used to include empty fields in Patch requests.
11054	ForceSendFields []string `json:"-"`
11055
11056	// NullFields is a list of field names (e.g. "Pages") to include in API
11057	// requests with the JSON null value. By default, fields with empty
11058	// values are omitted from API requests. However, any field with an
11059	// empty value appearing in NullFields will be sent to the server as
11060	// null. It is an error if a field in this list has a non-empty value.
11061	// This may be used to include null fields in Patch requests.
11062	NullFields []string `json:"-"`
11063}
11064
11065func (s *GoogleCloudVisionV1p4beta1TextAnnotation) MarshalJSON() ([]byte, error) {
11066	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotation
11067	raw := NoMethod(*s)
11068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11069}
11070
11071// GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak: Detected start
11072// or end of a structural component.
11073type GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak struct {
11074	// IsPrefix: True if break prepends the element.
11075	IsPrefix bool `json:"isPrefix,omitempty"`
11076
11077	// Type: Detected break type.
11078	//
11079	// Possible values:
11080	//   "UNKNOWN" - Unknown break label type.
11081	//   "SPACE" - Regular space.
11082	//   "SURE_SPACE" - Sure space (very wide).
11083	//   "EOL_SURE_SPACE" - Line-wrapping break.
11084	//   "HYPHEN" - End-line hyphen that is not present in text; does not
11085	// co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
11086	//   "LINE_BREAK" - Line break that ends a paragraph.
11087	Type string `json:"type,omitempty"`
11088
11089	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
11090	// unconditionally include in API requests. By default, fields with
11091	// empty or default values are omitted from API requests. However, any
11092	// non-pointer, non-interface field appearing in ForceSendFields will be
11093	// sent to the server regardless of whether the field is empty or not.
11094	// This may be used to include empty fields in Patch requests.
11095	ForceSendFields []string `json:"-"`
11096
11097	// NullFields is a list of field names (e.g. "IsPrefix") to include in
11098	// API requests with the JSON null value. By default, fields with empty
11099	// values are omitted from API requests. However, any field with an
11100	// empty value appearing in NullFields will be sent to the server as
11101	// null. It is an error if a field in this list has a non-empty value.
11102	// This may be used to include null fields in Patch requests.
11103	NullFields []string `json:"-"`
11104}
11105
11106func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
11107	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak
11108	raw := NoMethod(*s)
11109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11110}
11111
11112// GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage: Detected
11113// language for a structural component.
11114type GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage struct {
11115	// Confidence: Confidence of detected language. Range [0, 1].
11116	Confidence float64 `json:"confidence,omitempty"`
11117
11118	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11119	// For more information, see
11120	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11121	LanguageCode string `json:"languageCode,omitempty"`
11122
11123	// ForceSendFields is a list of field names (e.g. "Confidence") to
11124	// unconditionally include in API requests. By default, fields with
11125	// empty or default values are omitted from API requests. However, any
11126	// non-pointer, non-interface field appearing in ForceSendFields will be
11127	// sent to the server regardless of whether the field is empty or not.
11128	// This may be used to include empty fields in Patch requests.
11129	ForceSendFields []string `json:"-"`
11130
11131	// NullFields is a list of field names (e.g. "Confidence") to include in
11132	// API requests with the JSON null value. By default, fields with empty
11133	// values are omitted from API requests. However, any field with an
11134	// empty value appearing in NullFields will be sent to the server as
11135	// null. It is an error if a field in this list has a non-empty value.
11136	// This may be used to include null fields in Patch requests.
11137	NullFields []string `json:"-"`
11138}
11139
11140func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
11141	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
11142	raw := NoMethod(*s)
11143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11144}
11145
11146func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
11147	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
11148	var s1 struct {
11149		Confidence gensupport.JSONFloat64 `json:"confidence"`
11150		*NoMethod
11151	}
11152	s1.NoMethod = (*NoMethod)(s)
11153	if err := json.Unmarshal(data, &s1); err != nil {
11154		return err
11155	}
11156	s.Confidence = float64(s1.Confidence)
11157	return nil
11158}
11159
11160// GoogleCloudVisionV1p4beta1TextAnnotationTextProperty: Additional
11161// information detected on the structural component.
11162type GoogleCloudVisionV1p4beta1TextAnnotationTextProperty struct {
11163	// DetectedBreak: Detected start or end of a text segment.
11164	DetectedBreak *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
11165
11166	// DetectedLanguages: A list of detected languages together with
11167	// confidence.
11168	DetectedLanguages []*GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
11169
11170	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
11171	// unconditionally include in API requests. By default, fields with
11172	// empty or default values are omitted from API requests. However, any
11173	// non-pointer, non-interface field appearing in ForceSendFields will be
11174	// sent to the server regardless of whether the field is empty or not.
11175	// This may be used to include empty fields in Patch requests.
11176	ForceSendFields []string `json:"-"`
11177
11178	// NullFields is a list of field names (e.g. "DetectedBreak") to include
11179	// in API requests with the JSON null value. By default, fields with
11180	// empty values are omitted from API requests. However, any field with
11181	// an empty value appearing in NullFields will be sent to the server as
11182	// null. It is an error if a field in this list has a non-empty value.
11183	// This may be used to include null fields in Patch requests.
11184	NullFields []string `json:"-"`
11185}
11186
11187func (s *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
11188	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationTextProperty
11189	raw := NoMethod(*s)
11190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11191}
11192
11193// GoogleCloudVisionV1p4beta1Vertex: A vertex represents a 2D point in
11194// the image. NOTE: the vertex coordinates are in the same scale as the
11195// original image.
11196type GoogleCloudVisionV1p4beta1Vertex struct {
11197	// X: X coordinate.
11198	X int64 `json:"x,omitempty"`
11199
11200	// Y: Y coordinate.
11201	Y int64 `json:"y,omitempty"`
11202
11203	// ForceSendFields is a list of field names (e.g. "X") to
11204	// unconditionally include in API requests. By default, fields with
11205	// empty or default values are omitted from API requests. However, any
11206	// non-pointer, non-interface field appearing in ForceSendFields will be
11207	// sent to the server regardless of whether the field is empty or not.
11208	// This may be used to include empty fields in Patch requests.
11209	ForceSendFields []string `json:"-"`
11210
11211	// NullFields is a list of field names (e.g. "X") to include in API
11212	// requests with the JSON null value. By default, fields with empty
11213	// values are omitted from API requests. However, any field with an
11214	// empty value appearing in NullFields will be sent to the server as
11215	// null. It is an error if a field in this list has a non-empty value.
11216	// This may be used to include null fields in Patch requests.
11217	NullFields []string `json:"-"`
11218}
11219
11220func (s *GoogleCloudVisionV1p4beta1Vertex) MarshalJSON() ([]byte, error) {
11221	type NoMethod GoogleCloudVisionV1p4beta1Vertex
11222	raw := NoMethod(*s)
11223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11224}
11225
11226// GoogleCloudVisionV1p4beta1WebDetection: Relevant information for the
11227// image from the Internet.
11228type GoogleCloudVisionV1p4beta1WebDetection struct {
11229	// BestGuessLabels: The service's best guess as to the topic of the
11230	// request image. Inferred from similar images on the open web.
11231	BestGuessLabels []*GoogleCloudVisionV1p4beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
11232
11233	// FullMatchingImages: Fully matching images from the Internet. Can
11234	// include resized copies of the query image.
11235	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
11236
11237	// PagesWithMatchingImages: Web pages containing the matching images
11238	// from the Internet.
11239	PagesWithMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
11240
11241	// PartialMatchingImages: Partial matching images from the Internet.
11242	// Those images are similar enough to share some key-point features. For
11243	// example an original image will likely have partial matching for its
11244	// crops.
11245	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
11246
11247	// VisuallySimilarImages: The visually similar image results.
11248	VisuallySimilarImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
11249
11250	// WebEntities: Deduced entities from similar images on the Internet.
11251	WebEntities []*GoogleCloudVisionV1p4beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
11252
11253	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
11254	// unconditionally include in API requests. By default, fields with
11255	// empty or default values are omitted from API requests. However, any
11256	// non-pointer, non-interface field appearing in ForceSendFields will be
11257	// sent to the server regardless of whether the field is empty or not.
11258	// This may be used to include empty fields in Patch requests.
11259	ForceSendFields []string `json:"-"`
11260
11261	// NullFields is a list of field names (e.g. "BestGuessLabels") to
11262	// include in API requests with the JSON null value. By default, fields
11263	// with empty values are omitted from API requests. However, any field
11264	// with an empty value appearing in NullFields will be sent to the
11265	// server as null. It is an error if a field in this list has a
11266	// non-empty value. This may be used to include null fields in Patch
11267	// requests.
11268	NullFields []string `json:"-"`
11269}
11270
11271func (s *GoogleCloudVisionV1p4beta1WebDetection) MarshalJSON() ([]byte, error) {
11272	type NoMethod GoogleCloudVisionV1p4beta1WebDetection
11273	raw := NoMethod(*s)
11274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11275}
11276
11277// GoogleCloudVisionV1p4beta1WebDetectionWebEntity: Entity deduced from
11278// similar images on the Internet.
11279type GoogleCloudVisionV1p4beta1WebDetectionWebEntity struct {
11280	// Description: Canonical description of the entity, in English.
11281	Description string `json:"description,omitempty"`
11282
11283	// EntityId: Opaque entity ID.
11284	EntityId string `json:"entityId,omitempty"`
11285
11286	// Score: Overall relevancy score for the entity. Not normalized and not
11287	// comparable across different image queries.
11288	Score float64 `json:"score,omitempty"`
11289
11290	// ForceSendFields is a list of field names (e.g. "Description") to
11291	// unconditionally include in API requests. By default, fields with
11292	// empty or default values are omitted from API requests. However, any
11293	// non-pointer, non-interface field appearing in ForceSendFields will be
11294	// sent to the server regardless of whether the field is empty or not.
11295	// This may be used to include empty fields in Patch requests.
11296	ForceSendFields []string `json:"-"`
11297
11298	// NullFields is a list of field names (e.g. "Description") to include
11299	// in API requests with the JSON null value. By default, fields with
11300	// empty values are omitted from API requests. However, any field with
11301	// an empty value appearing in NullFields will be sent to the server as
11302	// null. It is an error if a field in this list has a non-empty value.
11303	// This may be used to include null fields in Patch requests.
11304	NullFields []string `json:"-"`
11305}
11306
11307func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
11308	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
11309	raw := NoMethod(*s)
11310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11311}
11312
11313func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
11314	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
11315	var s1 struct {
11316		Score gensupport.JSONFloat64 `json:"score"`
11317		*NoMethod
11318	}
11319	s1.NoMethod = (*NoMethod)(s)
11320	if err := json.Unmarshal(data, &s1); err != nil {
11321		return err
11322	}
11323	s.Score = float64(s1.Score)
11324	return nil
11325}
11326
11327// GoogleCloudVisionV1p4beta1WebDetectionWebImage: Metadata for online
11328// images.
11329type GoogleCloudVisionV1p4beta1WebDetectionWebImage struct {
11330	// Score: (Deprecated) Overall relevancy score for the image.
11331	Score float64 `json:"score,omitempty"`
11332
11333	// Url: The result image URL.
11334	Url string `json:"url,omitempty"`
11335
11336	// ForceSendFields is a list of field names (e.g. "Score") to
11337	// unconditionally include in API requests. By default, fields with
11338	// empty or default values are omitted from API requests. However, any
11339	// non-pointer, non-interface field appearing in ForceSendFields will be
11340	// sent to the server regardless of whether the field is empty or not.
11341	// This may be used to include empty fields in Patch requests.
11342	ForceSendFields []string `json:"-"`
11343
11344	// NullFields is a list of field names (e.g. "Score") to include in API
11345	// requests with the JSON null value. By default, fields with empty
11346	// values are omitted from API requests. However, any field with an
11347	// empty value appearing in NullFields will be sent to the server as
11348	// null. It is an error if a field in this list has a non-empty value.
11349	// This may be used to include null fields in Patch requests.
11350	NullFields []string `json:"-"`
11351}
11352
11353func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
11354	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
11355	raw := NoMethod(*s)
11356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11357}
11358
11359func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
11360	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
11361	var s1 struct {
11362		Score gensupport.JSONFloat64 `json:"score"`
11363		*NoMethod
11364	}
11365	s1.NoMethod = (*NoMethod)(s)
11366	if err := json.Unmarshal(data, &s1); err != nil {
11367		return err
11368	}
11369	s.Score = float64(s1.Score)
11370	return nil
11371}
11372
11373// GoogleCloudVisionV1p4beta1WebDetectionWebLabel: Label to provide
11374// extra metadata for the web detection.
11375type GoogleCloudVisionV1p4beta1WebDetectionWebLabel struct {
11376	// Label: Label for extra metadata.
11377	Label string `json:"label,omitempty"`
11378
11379	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
11380	// or "sr-Latn". For more information, see
11381	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11382	LanguageCode string `json:"languageCode,omitempty"`
11383
11384	// ForceSendFields is a list of field names (e.g. "Label") to
11385	// unconditionally include in API requests. By default, fields with
11386	// empty or default values are omitted from API requests. However, any
11387	// non-pointer, non-interface field appearing in ForceSendFields will be
11388	// sent to the server regardless of whether the field is empty or not.
11389	// This may be used to include empty fields in Patch requests.
11390	ForceSendFields []string `json:"-"`
11391
11392	// NullFields is a list of field names (e.g. "Label") to include in API
11393	// requests with the JSON null value. By default, fields with empty
11394	// values are omitted from API requests. However, any field with an
11395	// empty value appearing in NullFields will be sent to the server as
11396	// null. It is an error if a field in this list has a non-empty value.
11397	// This may be used to include null fields in Patch requests.
11398	NullFields []string `json:"-"`
11399}
11400
11401func (s *GoogleCloudVisionV1p4beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
11402	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebLabel
11403	raw := NoMethod(*s)
11404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11405}
11406
11407// GoogleCloudVisionV1p4beta1WebDetectionWebPage: Metadata for web
11408// pages.
11409type GoogleCloudVisionV1p4beta1WebDetectionWebPage struct {
11410	// FullMatchingImages: Fully matching images on the page. Can include
11411	// resized copies of the query image.
11412	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
11413
11414	// PageTitle: Title for the web page, may contain HTML markups.
11415	PageTitle string `json:"pageTitle,omitempty"`
11416
11417	// PartialMatchingImages: Partial matching images on the page. Those
11418	// images are similar enough to share some key-point features. For
11419	// example an original image will likely have partial matching for its
11420	// crops.
11421	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
11422
11423	// Score: (Deprecated) Overall relevancy score for the web page.
11424	Score float64 `json:"score,omitempty"`
11425
11426	// Url: The result web page URL.
11427	Url string `json:"url,omitempty"`
11428
11429	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
11430	// to unconditionally include in API requests. By default, fields with
11431	// empty or default values are omitted from API requests. However, any
11432	// non-pointer, non-interface field appearing in ForceSendFields will be
11433	// sent to the server regardless of whether the field is empty or not.
11434	// This may be used to include empty fields in Patch requests.
11435	ForceSendFields []string `json:"-"`
11436
11437	// NullFields is a list of field names (e.g. "FullMatchingImages") to
11438	// include in API requests with the JSON null value. By default, fields
11439	// with empty values are omitted from API requests. However, any field
11440	// with an empty value appearing in NullFields will be sent to the
11441	// server as null. It is an error if a field in this list has a
11442	// non-empty value. This may be used to include null fields in Patch
11443	// requests.
11444	NullFields []string `json:"-"`
11445}
11446
11447func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
11448	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
11449	raw := NoMethod(*s)
11450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11451}
11452
11453func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
11454	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
11455	var s1 struct {
11456		Score gensupport.JSONFloat64 `json:"score"`
11457		*NoMethod
11458	}
11459	s1.NoMethod = (*NoMethod)(s)
11460	if err := json.Unmarshal(data, &s1); err != nil {
11461		return err
11462	}
11463	s.Score = float64(s1.Score)
11464	return nil
11465}
11466
11467// GoogleCloudVisionV1p4beta1Word: A word representation.
11468type GoogleCloudVisionV1p4beta1Word struct {
11469	// BoundingBox: The bounding box for the word. The vertices are in the
11470	// order of top-left, top-right, bottom-right, bottom-left. When a
11471	// rotation of the bounding box is detected the rotation is represented
11472	// as around the top-left corner as defined when the text is read in the
11473	// 'natural' orientation. For example: * when the text is horizontal it
11474	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
11475	// around the top-left corner it becomes: 2----3 | | 1----0 and the
11476	// vertex order will still be (0, 1, 2, 3).
11477	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11478
11479	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
11480	Confidence float64 `json:"confidence,omitempty"`
11481
11482	// Property: Additional information detected for the word.
11483	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11484
11485	// Symbols: List of symbols in the word. The order of the symbols
11486	// follows the natural reading order.
11487	Symbols []*GoogleCloudVisionV1p4beta1Symbol `json:"symbols,omitempty"`
11488
11489	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11490	// unconditionally include in API requests. By default, fields with
11491	// empty or default values are omitted from API requests. However, any
11492	// non-pointer, non-interface field appearing in ForceSendFields will be
11493	// sent to the server regardless of whether the field is empty or not.
11494	// This may be used to include empty fields in Patch requests.
11495	ForceSendFields []string `json:"-"`
11496
11497	// NullFields is a list of field names (e.g. "BoundingBox") to include
11498	// in API requests with the JSON null value. By default, fields with
11499	// empty values are omitted from API requests. However, any field with
11500	// an empty value appearing in NullFields will be sent to the server as
11501	// null. It is an error if a field in this list has a non-empty value.
11502	// This may be used to include null fields in Patch requests.
11503	NullFields []string `json:"-"`
11504}
11505
11506func (s *GoogleCloudVisionV1p4beta1Word) MarshalJSON() ([]byte, error) {
11507	type NoMethod GoogleCloudVisionV1p4beta1Word
11508	raw := NoMethod(*s)
11509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11510}
11511
11512func (s *GoogleCloudVisionV1p4beta1Word) UnmarshalJSON(data []byte) error {
11513	type NoMethod GoogleCloudVisionV1p4beta1Word
11514	var s1 struct {
11515		Confidence gensupport.JSONFloat64 `json:"confidence"`
11516		*NoMethod
11517	}
11518	s1.NoMethod = (*NoMethod)(s)
11519	if err := json.Unmarshal(data, &s1); err != nil {
11520		return err
11521	}
11522	s.Confidence = float64(s1.Confidence)
11523	return nil
11524}
11525
11526// GroupedResult: Information about the products similar to a single
11527// product in a query image.
11528type GroupedResult struct {
11529	// BoundingPoly: The bounding polygon around the product detected in the
11530	// query image.
11531	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
11532
11533	// ObjectAnnotations: List of generic predictions for the object in the
11534	// bounding box.
11535	ObjectAnnotations []*ObjectAnnotation `json:"objectAnnotations,omitempty"`
11536
11537	// Results: List of results, one for each product match.
11538	Results []*Result `json:"results,omitempty"`
11539
11540	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11541	// unconditionally include in API requests. By default, fields with
11542	// empty or default values are omitted from API requests. However, any
11543	// non-pointer, non-interface field appearing in ForceSendFields will be
11544	// sent to the server regardless of whether the field is empty or not.
11545	// This may be used to include empty fields in Patch requests.
11546	ForceSendFields []string `json:"-"`
11547
11548	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11549	// in API requests with the JSON null value. By default, fields with
11550	// empty values are omitted from API requests. However, any field with
11551	// an empty value appearing in NullFields will be sent to the server as
11552	// null. It is an error if a field in this list has a non-empty value.
11553	// This may be used to include null fields in Patch requests.
11554	NullFields []string `json:"-"`
11555}
11556
11557func (s *GroupedResult) MarshalJSON() ([]byte, error) {
11558	type NoMethod GroupedResult
11559	raw := NoMethod(*s)
11560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11561}
11562
11563// Image: Client image to perform Google Cloud Vision API tasks over.
11564type Image struct {
11565	// Content: Image content, represented as a stream of bytes. Note: As
11566	// with all `bytes` fields, protobuffers use a pure binary
11567	// representation, whereas JSON representations use base64. Currently,
11568	// this field only works for BatchAnnotateImages requests. It does not
11569	// work for AsyncBatchAnnotateImages requests.
11570	Content string `json:"content,omitempty"`
11571
11572	// Source: Google Cloud Storage image location, or publicly-accessible
11573	// image URL. If both `content` and `source` are provided for an image,
11574	// `content` takes precedence and is used to perform the image
11575	// annotation request.
11576	Source *ImageSource `json:"source,omitempty"`
11577
11578	// ForceSendFields is a list of field names (e.g. "Content") to
11579	// unconditionally include in API requests. By default, fields with
11580	// empty or default values are omitted from API requests. However, any
11581	// non-pointer, non-interface field appearing in ForceSendFields will be
11582	// sent to the server regardless of whether the field is empty or not.
11583	// This may be used to include empty fields in Patch requests.
11584	ForceSendFields []string `json:"-"`
11585
11586	// NullFields is a list of field names (e.g. "Content") to include in
11587	// API requests with the JSON null value. By default, fields with empty
11588	// values are omitted from API requests. However, any field with an
11589	// empty value appearing in NullFields will be sent to the server as
11590	// null. It is an error if a field in this list has a non-empty value.
11591	// This may be used to include null fields in Patch requests.
11592	NullFields []string `json:"-"`
11593}
11594
11595func (s *Image) MarshalJSON() ([]byte, error) {
11596	type NoMethod Image
11597	raw := NoMethod(*s)
11598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11599}
11600
11601// ImageAnnotationContext: If an image was produced from a file (e.g. a
11602// PDF), this message gives information about the source of that image.
11603type ImageAnnotationContext struct {
11604	// PageNumber: If the file was a PDF or TIFF, this field gives the page
11605	// number within the file used to produce the image.
11606	PageNumber int64 `json:"pageNumber,omitempty"`
11607
11608	// Uri: The URI of the file used to produce the image.
11609	Uri string `json:"uri,omitempty"`
11610
11611	// ForceSendFields is a list of field names (e.g. "PageNumber") to
11612	// unconditionally include in API requests. By default, fields with
11613	// empty or default values are omitted from API requests. However, any
11614	// non-pointer, non-interface field appearing in ForceSendFields will be
11615	// sent to the server regardless of whether the field is empty or not.
11616	// This may be used to include empty fields in Patch requests.
11617	ForceSendFields []string `json:"-"`
11618
11619	// NullFields is a list of field names (e.g. "PageNumber") to include in
11620	// API requests with the JSON null value. By default, fields with empty
11621	// values are omitted from API requests. However, any field with an
11622	// empty value appearing in NullFields will be sent to the server as
11623	// null. It is an error if a field in this list has a non-empty value.
11624	// This may be used to include null fields in Patch requests.
11625	NullFields []string `json:"-"`
11626}
11627
11628func (s *ImageAnnotationContext) MarshalJSON() ([]byte, error) {
11629	type NoMethod ImageAnnotationContext
11630	raw := NoMethod(*s)
11631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11632}
11633
11634// ImageContext: Image context and/or feature-specific parameters.
11635type ImageContext struct {
11636	// CropHintsParams: Parameters for crop hints annotation request.
11637	CropHintsParams *CropHintsParams `json:"cropHintsParams,omitempty"`
11638
11639	// LanguageHints: List of languages to use for TEXT_DETECTION. In most
11640	// cases, an empty value yields the best results since it enables
11641	// automatic language detection. For languages based on the Latin
11642	// alphabet, setting `language_hints` is not needed. In rare cases, when
11643	// the language of the text in the image is known, setting a hint will
11644	// help get better results (although it will be a significant hindrance
11645	// if the hint is wrong). Text detection returns an error if one or more
11646	// of the specified languages is not one of the supported languages
11647	// (https://cloud.google.com/vision/docs/languages).
11648	LanguageHints []string `json:"languageHints,omitempty"`
11649
11650	// LatLongRect: Not used.
11651	LatLongRect *LatLongRect `json:"latLongRect,omitempty"`
11652
11653	// ProductSearchParams: Parameters for product search.
11654	ProductSearchParams *ProductSearchParams `json:"productSearchParams,omitempty"`
11655
11656	// TextDetectionParams: Parameters for text detection and document text
11657	// detection.
11658	TextDetectionParams *TextDetectionParams `json:"textDetectionParams,omitempty"`
11659
11660	// WebDetectionParams: Parameters for web detection.
11661	WebDetectionParams *WebDetectionParams `json:"webDetectionParams,omitempty"`
11662
11663	// ForceSendFields is a list of field names (e.g. "CropHintsParams") to
11664	// unconditionally include in API requests. By default, fields with
11665	// empty or default values are omitted from API requests. However, any
11666	// non-pointer, non-interface field appearing in ForceSendFields will be
11667	// sent to the server regardless of whether the field is empty or not.
11668	// This may be used to include empty fields in Patch requests.
11669	ForceSendFields []string `json:"-"`
11670
11671	// NullFields is a list of field names (e.g. "CropHintsParams") to
11672	// include in API requests with the JSON null value. By default, fields
11673	// with empty values are omitted from API requests. However, any field
11674	// with an empty value appearing in NullFields will be sent to the
11675	// server as null. It is an error if a field in this list has a
11676	// non-empty value. This may be used to include null fields in Patch
11677	// requests.
11678	NullFields []string `json:"-"`
11679}
11680
11681func (s *ImageContext) MarshalJSON() ([]byte, error) {
11682	type NoMethod ImageContext
11683	raw := NoMethod(*s)
11684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11685}
11686
11687// ImageProperties: Stores image properties, such as dominant colors.
11688type ImageProperties struct {
11689	// DominantColors: If present, dominant colors completed successfully.
11690	DominantColors *DominantColorsAnnotation `json:"dominantColors,omitempty"`
11691
11692	// ForceSendFields is a list of field names (e.g. "DominantColors") to
11693	// unconditionally include in API requests. By default, fields with
11694	// empty or default values are omitted from API requests. However, any
11695	// non-pointer, non-interface field appearing in ForceSendFields will be
11696	// sent to the server regardless of whether the field is empty or not.
11697	// This may be used to include empty fields in Patch requests.
11698	ForceSendFields []string `json:"-"`
11699
11700	// NullFields is a list of field names (e.g. "DominantColors") to
11701	// include in API requests with the JSON null value. By default, fields
11702	// with empty values are omitted from API requests. However, any field
11703	// with an empty value appearing in NullFields will be sent to the
11704	// server as null. It is an error if a field in this list has a
11705	// non-empty value. This may be used to include null fields in Patch
11706	// requests.
11707	NullFields []string `json:"-"`
11708}
11709
11710func (s *ImageProperties) MarshalJSON() ([]byte, error) {
11711	type NoMethod ImageProperties
11712	raw := NoMethod(*s)
11713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11714}
11715
11716// ImageSource: External image source (Google Cloud Storage or web URL
11717// image location).
11718type ImageSource struct {
11719	// GcsImageUri: **Use `image_uri` instead.** The Google Cloud Storage
11720	// URI of the form `gs://bucket_name/object_name`. Object versioning is
11721	// not supported. See Google Cloud Storage Request URIs
11722	// (https://cloud.google.com/storage/docs/reference-uris) for more info.
11723	GcsImageUri string `json:"gcsImageUri,omitempty"`
11724
11725	// ImageUri: The URI of the source image. Can be either: 1. A Google
11726	// Cloud Storage URI of the form `gs://bucket_name/object_name`. Object
11727	// versioning is not supported. See Google Cloud Storage Request URIs
11728	// (https://cloud.google.com/storage/docs/reference-uris) for more info.
11729	// 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images
11730	// from HTTP/HTTPS URLs, Google cannot guarantee that the request will
11731	// be completed. Your request may fail if the specified host denies the
11732	// request (e.g. due to request throttling or DOS prevention), or if
11733	// Google throttles requests to the site for abuse prevention. You
11734	// should not depend on externally-hosted images for production
11735	// applications. When both `gcs_image_uri` and `image_uri` are
11736	// specified, `image_uri` takes precedence.
11737	ImageUri string `json:"imageUri,omitempty"`
11738
11739	// ForceSendFields is a list of field names (e.g. "GcsImageUri") to
11740	// unconditionally include in API requests. By default, fields with
11741	// empty or default values are omitted from API requests. However, any
11742	// non-pointer, non-interface field appearing in ForceSendFields will be
11743	// sent to the server regardless of whether the field is empty or not.
11744	// This may be used to include empty fields in Patch requests.
11745	ForceSendFields []string `json:"-"`
11746
11747	// NullFields is a list of field names (e.g. "GcsImageUri") to include
11748	// in API requests with the JSON null value. By default, fields with
11749	// empty values are omitted from API requests. However, any field with
11750	// an empty value appearing in NullFields will be sent to the server as
11751	// null. It is an error if a field in this list has a non-empty value.
11752	// This may be used to include null fields in Patch requests.
11753	NullFields []string `json:"-"`
11754}
11755
11756func (s *ImageSource) MarshalJSON() ([]byte, error) {
11757	type NoMethod ImageSource
11758	raw := NoMethod(*s)
11759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11760}
11761
11762// ImportProductSetsGcsSource: The Google Cloud Storage location for a
11763// csv file which preserves a list of ImportProductSetRequests in each
11764// line.
11765type ImportProductSetsGcsSource struct {
11766	// CsvFileUri: The Google Cloud Storage URI of the input csv file. The
11767	// URI must start with `gs://`. The format of the input csv file should
11768	// be one image per line. In each line, there are 8 columns. 1.
11769	// image-uri 2. image-id 3. product-set-id 4. product-id 5.
11770	// product-category 6. product-display-name 7. labels 8. bounding-poly
11771	// The `image-uri`, `product-set-id`, `product-id`, and
11772	// `product-category` columns are required. All other columns are
11773	// optional. If the `ProductSet` or `Product` specified by the
11774	// `product-set-id` and `product-id` values does not exist, then the
11775	// system will create a new `ProductSet` or `Product` for the image. In
11776	// this case, the `product-display-name` column refers to display_name,
11777	// the `product-category` column refers to product_category, and the
11778	// `labels` column refers to product_labels. The `image-id` column is
11779	// optional but must be unique if provided. If it is empty, the system
11780	// will automatically assign a unique id to the image. The
11781	// `product-display-name` column is optional. If it is empty, the system
11782	// sets the display_name field for the product to a space (" "). You can
11783	// update the `display_name` later by using the API. If a `Product` with
11784	// the specified `product-id` already exists, then the system ignores
11785	// the `product-display-name`, `product-category`, and `labels` columns.
11786	// The `labels` column (optional) is a line containing a list of
11787	// comma-separated key-value pairs, in the following format:
11788	// "key_1=value_1,key_2=value_2,...,key_n=value_n" The `bounding-poly`
11789	// column (optional) identifies one region of interest from the image in
11790	// the same manner as `CreateReferenceImage`. If you do not specify the
11791	// `bounding-poly` column, then the system will try to detect regions of
11792	// interest automatically. At most one `bounding-poly` column is allowed
11793	// per line. If the image contains multiple regions of interest, add a
11794	// line to the CSV file that includes the same product information, and
11795	// the `bounding-poly` values for each region of interest. The
11796	// `bounding-poly` column must contain an even number of comma-separated
11797	// numbers, in the format "p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y". Use
11798	// non-negative integers for absolute bounding polygons, and float
11799	// values in [0, 1] for normalized bounding polygons. The system will
11800	// resize the image if the image resolution is too large to process
11801	// (larger than 20MP).
11802	CsvFileUri string `json:"csvFileUri,omitempty"`
11803
11804	// ForceSendFields is a list of field names (e.g. "CsvFileUri") to
11805	// unconditionally include in API requests. By default, fields with
11806	// empty or default values are omitted from API requests. However, any
11807	// non-pointer, non-interface field appearing in ForceSendFields will be
11808	// sent to the server regardless of whether the field is empty or not.
11809	// This may be used to include empty fields in Patch requests.
11810	ForceSendFields []string `json:"-"`
11811
11812	// NullFields is a list of field names (e.g. "CsvFileUri") to include in
11813	// API requests with the JSON null value. By default, fields with empty
11814	// values are omitted from API requests. However, any field with an
11815	// empty value appearing in NullFields will be sent to the server as
11816	// null. It is an error if a field in this list has a non-empty value.
11817	// This may be used to include null fields in Patch requests.
11818	NullFields []string `json:"-"`
11819}
11820
11821func (s *ImportProductSetsGcsSource) MarshalJSON() ([]byte, error) {
11822	type NoMethod ImportProductSetsGcsSource
11823	raw := NoMethod(*s)
11824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11825}
11826
11827// ImportProductSetsInputConfig: The input content for the
11828// `ImportProductSets` method.
11829type ImportProductSetsInputConfig struct {
11830	// GcsSource: The Google Cloud Storage location for a csv file which
11831	// preserves a list of ImportProductSetRequests in each line.
11832	GcsSource *ImportProductSetsGcsSource `json:"gcsSource,omitempty"`
11833
11834	// ForceSendFields is a list of field names (e.g. "GcsSource") to
11835	// unconditionally include in API requests. By default, fields with
11836	// empty or default values are omitted from API requests. However, any
11837	// non-pointer, non-interface field appearing in ForceSendFields will be
11838	// sent to the server regardless of whether the field is empty or not.
11839	// This may be used to include empty fields in Patch requests.
11840	ForceSendFields []string `json:"-"`
11841
11842	// NullFields is a list of field names (e.g. "GcsSource") to include in
11843	// API requests with the JSON null value. By default, fields with empty
11844	// values are omitted from API requests. However, any field with an
11845	// empty value appearing in NullFields will be sent to the server as
11846	// null. It is an error if a field in this list has a non-empty value.
11847	// This may be used to include null fields in Patch requests.
11848	NullFields []string `json:"-"`
11849}
11850
11851func (s *ImportProductSetsInputConfig) MarshalJSON() ([]byte, error) {
11852	type NoMethod ImportProductSetsInputConfig
11853	raw := NoMethod(*s)
11854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11855}
11856
11857// ImportProductSetsRequest: Request message for the `ImportProductSets`
11858// method.
11859type ImportProductSetsRequest struct {
11860	// InputConfig: Required. The input content for the list of requests.
11861	InputConfig *ImportProductSetsInputConfig `json:"inputConfig,omitempty"`
11862
11863	// ForceSendFields is a list of field names (e.g. "InputConfig") to
11864	// unconditionally include in API requests. By default, fields with
11865	// empty or default values are omitted from API requests. However, any
11866	// non-pointer, non-interface field appearing in ForceSendFields will be
11867	// sent to the server regardless of whether the field is empty or not.
11868	// This may be used to include empty fields in Patch requests.
11869	ForceSendFields []string `json:"-"`
11870
11871	// NullFields is a list of field names (e.g. "InputConfig") to include
11872	// in API requests with the JSON null value. By default, fields with
11873	// empty values are omitted from API requests. However, any field with
11874	// an empty value appearing in NullFields will be sent to the server as
11875	// null. It is an error if a field in this list has a non-empty value.
11876	// This may be used to include null fields in Patch requests.
11877	NullFields []string `json:"-"`
11878}
11879
11880func (s *ImportProductSetsRequest) MarshalJSON() ([]byte, error) {
11881	type NoMethod ImportProductSetsRequest
11882	raw := NoMethod(*s)
11883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11884}
11885
11886// ImportProductSetsResponse: Response message for the
11887// `ImportProductSets` method. This message is returned by the
11888// google.longrunning.Operations.GetOperation method in the returned
11889// google.longrunning.Operation.response field.
11890type ImportProductSetsResponse struct {
11891	// ReferenceImages: The list of reference_images that are imported
11892	// successfully.
11893	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
11894
11895	// Statuses: The rpc status for each ImportProductSet request, including
11896	// both successes and errors. The number of statuses here matches the
11897	// number of lines in the csv file, and statuses[i] stores the success
11898	// or failure status of processing the i-th line of the csv, starting
11899	// from line 0.
11900	Statuses []*Status `json:"statuses,omitempty"`
11901
11902	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
11903	// unconditionally include in API requests. By default, fields with
11904	// empty or default values are omitted from API requests. However, any
11905	// non-pointer, non-interface field appearing in ForceSendFields will be
11906	// sent to the server regardless of whether the field is empty or not.
11907	// This may be used to include empty fields in Patch requests.
11908	ForceSendFields []string `json:"-"`
11909
11910	// NullFields is a list of field names (e.g. "ReferenceImages") to
11911	// include in API requests with the JSON null value. By default, fields
11912	// with empty values are omitted from API requests. However, any field
11913	// with an empty value appearing in NullFields will be sent to the
11914	// server as null. It is an error if a field in this list has a
11915	// non-empty value. This may be used to include null fields in Patch
11916	// requests.
11917	NullFields []string `json:"-"`
11918}
11919
11920func (s *ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
11921	type NoMethod ImportProductSetsResponse
11922	raw := NoMethod(*s)
11923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11924}
11925
11926// InputConfig: The desired input location and metadata.
11927type InputConfig struct {
11928	// Content: File content, represented as a stream of bytes. Note: As
11929	// with all `bytes` fields, protobuffers use a pure binary
11930	// representation, whereas JSON representations use base64. Currently,
11931	// this field only works for BatchAnnotateFiles requests. It does not
11932	// work for AsyncBatchAnnotateFiles requests.
11933	Content string `json:"content,omitempty"`
11934
11935	// GcsSource: The Google Cloud Storage location to read the input from.
11936	GcsSource *GcsSource `json:"gcsSource,omitempty"`
11937
11938	// MimeType: The type of the file. Currently only "application/pdf",
11939	// "image/tiff" and "image/gif" are supported. Wildcards are not
11940	// supported.
11941	MimeType string `json:"mimeType,omitempty"`
11942
11943	// ForceSendFields is a list of field names (e.g. "Content") to
11944	// unconditionally include in API requests. By default, fields with
11945	// empty or default values are omitted from API requests. However, any
11946	// non-pointer, non-interface field appearing in ForceSendFields will be
11947	// sent to the server regardless of whether the field is empty or not.
11948	// This may be used to include empty fields in Patch requests.
11949	ForceSendFields []string `json:"-"`
11950
11951	// NullFields is a list of field names (e.g. "Content") to include in
11952	// API requests with the JSON null value. By default, fields with empty
11953	// values are omitted from API requests. However, any field with an
11954	// empty value appearing in NullFields will be sent to the server as
11955	// null. It is an error if a field in this list has a non-empty value.
11956	// This may be used to include null fields in Patch requests.
11957	NullFields []string `json:"-"`
11958}
11959
11960func (s *InputConfig) MarshalJSON() ([]byte, error) {
11961	type NoMethod InputConfig
11962	raw := NoMethod(*s)
11963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11964}
11965
11966// KeyValue: A product label represented as a key-value pair.
11967type KeyValue struct {
11968	// Key: The key of the label attached to the product. Cannot be empty
11969	// and cannot exceed 128 bytes.
11970	Key string `json:"key,omitempty"`
11971
11972	// Value: The value of the label attached to the product. Cannot be
11973	// empty and cannot exceed 128 bytes.
11974	Value string `json:"value,omitempty"`
11975
11976	// ForceSendFields is a list of field names (e.g. "Key") to
11977	// unconditionally include in API requests. By default, fields with
11978	// empty or default values are omitted from API requests. However, any
11979	// non-pointer, non-interface field appearing in ForceSendFields will be
11980	// sent to the server regardless of whether the field is empty or not.
11981	// This may be used to include empty fields in Patch requests.
11982	ForceSendFields []string `json:"-"`
11983
11984	// NullFields is a list of field names (e.g. "Key") to include in API
11985	// requests with the JSON null value. By default, fields with empty
11986	// values are omitted from API requests. However, any field with an
11987	// empty value appearing in NullFields will be sent to the server as
11988	// null. It is an error if a field in this list has a non-empty value.
11989	// This may be used to include null fields in Patch requests.
11990	NullFields []string `json:"-"`
11991}
11992
11993func (s *KeyValue) MarshalJSON() ([]byte, error) {
11994	type NoMethod KeyValue
11995	raw := NoMethod(*s)
11996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11997}
11998
11999// Landmark: A face-specific landmark (for example, a face feature).
12000type Landmark struct {
12001	// Position: Face landmark position.
12002	Position *Position `json:"position,omitempty"`
12003
12004	// Type: Face landmark type.
12005	//
12006	// Possible values:
12007	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
12008	// filled.
12009	//   "LEFT_EYE" - Left eye.
12010	//   "RIGHT_EYE" - Right eye.
12011	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
12012	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
12013	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
12014	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
12015	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
12016	//   "NOSE_TIP" - Nose tip.
12017	//   "UPPER_LIP" - Upper lip.
12018	//   "LOWER_LIP" - Lower lip.
12019	//   "MOUTH_LEFT" - Mouth left.
12020	//   "MOUTH_RIGHT" - Mouth right.
12021	//   "MOUTH_CENTER" - Mouth center.
12022	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
12023	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
12024	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
12025	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
12026	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
12027	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
12028	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
12029	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
12030	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
12031	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
12032	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
12033	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
12034	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
12035	//   "LEFT_EAR_TRAGION" - Left ear tragion.
12036	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
12037	//   "LEFT_EYE_PUPIL" - Left eye pupil.
12038	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
12039	//   "FOREHEAD_GLABELLA" - Forehead glabella.
12040	//   "CHIN_GNATHION" - Chin gnathion.
12041	//   "CHIN_LEFT_GONION" - Chin left gonion.
12042	//   "CHIN_RIGHT_GONION" - Chin right gonion.
12043	//   "LEFT_CHEEK_CENTER" - Left cheek center.
12044	//   "RIGHT_CHEEK_CENTER" - Right cheek center.
12045	Type string `json:"type,omitempty"`
12046
12047	// ForceSendFields is a list of field names (e.g. "Position") to
12048	// unconditionally include in API requests. By default, fields with
12049	// empty or default values are omitted from API requests. However, any
12050	// non-pointer, non-interface field appearing in ForceSendFields will be
12051	// sent to the server regardless of whether the field is empty or not.
12052	// This may be used to include empty fields in Patch requests.
12053	ForceSendFields []string `json:"-"`
12054
12055	// NullFields is a list of field names (e.g. "Position") to include in
12056	// API requests with the JSON null value. By default, fields with empty
12057	// values are omitted from API requests. However, any field with an
12058	// empty value appearing in NullFields will be sent to the server as
12059	// null. It is an error if a field in this list has a non-empty value.
12060	// This may be used to include null fields in Patch requests.
12061	NullFields []string `json:"-"`
12062}
12063
12064func (s *Landmark) MarshalJSON() ([]byte, error) {
12065	type NoMethod Landmark
12066	raw := NoMethod(*s)
12067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12068}
12069
12070// LatLng: An object that represents a latitude/longitude pair. This is
12071// expressed as a pair of doubles to represent degrees latitude and
12072// degrees longitude. Unless specified otherwise, this object must
12073// conform to the WGS84 standard. Values must be within normalized
12074// ranges.
12075type LatLng struct {
12076	// Latitude: The latitude in degrees. It must be in the range [-90.0,
12077	// +90.0].
12078	Latitude float64 `json:"latitude,omitempty"`
12079
12080	// Longitude: The longitude in degrees. It must be in the range [-180.0,
12081	// +180.0].
12082	Longitude float64 `json:"longitude,omitempty"`
12083
12084	// ForceSendFields is a list of field names (e.g. "Latitude") to
12085	// unconditionally include in API requests. By default, fields with
12086	// empty or default values are omitted from API requests. However, any
12087	// non-pointer, non-interface field appearing in ForceSendFields will be
12088	// sent to the server regardless of whether the field is empty or not.
12089	// This may be used to include empty fields in Patch requests.
12090	ForceSendFields []string `json:"-"`
12091
12092	// NullFields is a list of field names (e.g. "Latitude") to include in
12093	// API requests with the JSON null value. By default, fields with empty
12094	// values are omitted from API requests. However, any field with an
12095	// empty value appearing in NullFields will be sent to the server as
12096	// null. It is an error if a field in this list has a non-empty value.
12097	// This may be used to include null fields in Patch requests.
12098	NullFields []string `json:"-"`
12099}
12100
12101func (s *LatLng) MarshalJSON() ([]byte, error) {
12102	type NoMethod LatLng
12103	raw := NoMethod(*s)
12104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12105}
12106
12107func (s *LatLng) UnmarshalJSON(data []byte) error {
12108	type NoMethod LatLng
12109	var s1 struct {
12110		Latitude  gensupport.JSONFloat64 `json:"latitude"`
12111		Longitude gensupport.JSONFloat64 `json:"longitude"`
12112		*NoMethod
12113	}
12114	s1.NoMethod = (*NoMethod)(s)
12115	if err := json.Unmarshal(data, &s1); err != nil {
12116		return err
12117	}
12118	s.Latitude = float64(s1.Latitude)
12119	s.Longitude = float64(s1.Longitude)
12120	return nil
12121}
12122
12123// LatLongRect: Rectangle determined by min and max `LatLng` pairs.
12124type LatLongRect struct {
12125	// MaxLatLng: Max lat/long pair.
12126	MaxLatLng *LatLng `json:"maxLatLng,omitempty"`
12127
12128	// MinLatLng: Min lat/long pair.
12129	MinLatLng *LatLng `json:"minLatLng,omitempty"`
12130
12131	// ForceSendFields is a list of field names (e.g. "MaxLatLng") to
12132	// unconditionally include in API requests. By default, fields with
12133	// empty or default values are omitted from API requests. However, any
12134	// non-pointer, non-interface field appearing in ForceSendFields will be
12135	// sent to the server regardless of whether the field is empty or not.
12136	// This may be used to include empty fields in Patch requests.
12137	ForceSendFields []string `json:"-"`
12138
12139	// NullFields is a list of field names (e.g. "MaxLatLng") to include in
12140	// API requests with the JSON null value. By default, fields with empty
12141	// values are omitted from API requests. However, any field with an
12142	// empty value appearing in NullFields will be sent to the server as
12143	// null. It is an error if a field in this list has a non-empty value.
12144	// This may be used to include null fields in Patch requests.
12145	NullFields []string `json:"-"`
12146}
12147
12148func (s *LatLongRect) MarshalJSON() ([]byte, error) {
12149	type NoMethod LatLongRect
12150	raw := NoMethod(*s)
12151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12152}
12153
12154// ListOperationsResponse: The response message for
12155// Operations.ListOperations.
12156type ListOperationsResponse struct {
12157	// NextPageToken: The standard List next-page token.
12158	NextPageToken string `json:"nextPageToken,omitempty"`
12159
12160	// Operations: A list of operations that matches the specified filter in
12161	// the request.
12162	Operations []*Operation `json:"operations,omitempty"`
12163
12164	// ServerResponse contains the HTTP response code and headers from the
12165	// server.
12166	googleapi.ServerResponse `json:"-"`
12167
12168	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12169	// unconditionally include in API requests. By default, fields with
12170	// empty or default values are omitted from API requests. However, any
12171	// non-pointer, non-interface field appearing in ForceSendFields will be
12172	// sent to the server regardless of whether the field is empty or not.
12173	// This may be used to include empty fields in Patch requests.
12174	ForceSendFields []string `json:"-"`
12175
12176	// NullFields is a list of field names (e.g. "NextPageToken") to include
12177	// in API requests with the JSON null value. By default, fields with
12178	// empty values are omitted from API requests. However, any field with
12179	// an empty value appearing in NullFields will be sent to the server as
12180	// null. It is an error if a field in this list has a non-empty value.
12181	// This may be used to include null fields in Patch requests.
12182	NullFields []string `json:"-"`
12183}
12184
12185func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
12186	type NoMethod ListOperationsResponse
12187	raw := NoMethod(*s)
12188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12189}
12190
12191// ListProductSetsResponse: Response message for the `ListProductSets`
12192// method.
12193type ListProductSetsResponse struct {
12194	// NextPageToken: Token to retrieve the next page of results, or empty
12195	// if there are no more results in the list.
12196	NextPageToken string `json:"nextPageToken,omitempty"`
12197
12198	// ProductSets: List of ProductSets.
12199	ProductSets []*ProductSet `json:"productSets,omitempty"`
12200
12201	// ServerResponse contains the HTTP response code and headers from the
12202	// server.
12203	googleapi.ServerResponse `json:"-"`
12204
12205	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12206	// unconditionally include in API requests. By default, fields with
12207	// empty or default values are omitted from API requests. However, any
12208	// non-pointer, non-interface field appearing in ForceSendFields will be
12209	// sent to the server regardless of whether the field is empty or not.
12210	// This may be used to include empty fields in Patch requests.
12211	ForceSendFields []string `json:"-"`
12212
12213	// NullFields is a list of field names (e.g. "NextPageToken") to include
12214	// in API requests with the JSON null value. By default, fields with
12215	// empty values are omitted from API requests. However, any field with
12216	// an empty value appearing in NullFields will be sent to the server as
12217	// null. It is an error if a field in this list has a non-empty value.
12218	// This may be used to include null fields in Patch requests.
12219	NullFields []string `json:"-"`
12220}
12221
12222func (s *ListProductSetsResponse) MarshalJSON() ([]byte, error) {
12223	type NoMethod ListProductSetsResponse
12224	raw := NoMethod(*s)
12225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12226}
12227
12228// ListProductsInProductSetResponse: Response message for the
12229// `ListProductsInProductSet` method.
12230type ListProductsInProductSetResponse struct {
12231	// NextPageToken: Token to retrieve the next page of results, or empty
12232	// if there are no more results in the list.
12233	NextPageToken string `json:"nextPageToken,omitempty"`
12234
12235	// Products: The list of Products.
12236	Products []*Product `json:"products,omitempty"`
12237
12238	// ServerResponse contains the HTTP response code and headers from the
12239	// server.
12240	googleapi.ServerResponse `json:"-"`
12241
12242	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12243	// unconditionally include in API requests. By default, fields with
12244	// empty or default values are omitted from API requests. However, any
12245	// non-pointer, non-interface field appearing in ForceSendFields will be
12246	// sent to the server regardless of whether the field is empty or not.
12247	// This may be used to include empty fields in Patch requests.
12248	ForceSendFields []string `json:"-"`
12249
12250	// NullFields is a list of field names (e.g. "NextPageToken") to include
12251	// in API requests with the JSON null value. By default, fields with
12252	// empty values are omitted from API requests. However, any field with
12253	// an empty value appearing in NullFields will be sent to the server as
12254	// null. It is an error if a field in this list has a non-empty value.
12255	// This may be used to include null fields in Patch requests.
12256	NullFields []string `json:"-"`
12257}
12258
12259func (s *ListProductsInProductSetResponse) MarshalJSON() ([]byte, error) {
12260	type NoMethod ListProductsInProductSetResponse
12261	raw := NoMethod(*s)
12262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12263}
12264
12265// ListProductsResponse: Response message for the `ListProducts` method.
12266type ListProductsResponse struct {
12267	// NextPageToken: Token to retrieve the next page of results, or empty
12268	// if there are no more results in the list.
12269	NextPageToken string `json:"nextPageToken,omitempty"`
12270
12271	// Products: List of products.
12272	Products []*Product `json:"products,omitempty"`
12273
12274	// ServerResponse contains the HTTP response code and headers from the
12275	// server.
12276	googleapi.ServerResponse `json:"-"`
12277
12278	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12279	// unconditionally include in API requests. By default, fields with
12280	// empty or default values are omitted from API requests. However, any
12281	// non-pointer, non-interface field appearing in ForceSendFields will be
12282	// sent to the server regardless of whether the field is empty or not.
12283	// This may be used to include empty fields in Patch requests.
12284	ForceSendFields []string `json:"-"`
12285
12286	// NullFields is a list of field names (e.g. "NextPageToken") to include
12287	// in API requests with the JSON null value. By default, fields with
12288	// empty values are omitted from API requests. However, any field with
12289	// an empty value appearing in NullFields will be sent to the server as
12290	// null. It is an error if a field in this list has a non-empty value.
12291	// This may be used to include null fields in Patch requests.
12292	NullFields []string `json:"-"`
12293}
12294
12295func (s *ListProductsResponse) MarshalJSON() ([]byte, error) {
12296	type NoMethod ListProductsResponse
12297	raw := NoMethod(*s)
12298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12299}
12300
12301// ListReferenceImagesResponse: Response message for the
12302// `ListReferenceImages` method.
12303type ListReferenceImagesResponse struct {
12304	// NextPageToken: The next_page_token returned from a previous List
12305	// request, if any.
12306	NextPageToken string `json:"nextPageToken,omitempty"`
12307
12308	// PageSize: The maximum number of items to return. Default 10, maximum
12309	// 100.
12310	PageSize int64 `json:"pageSize,omitempty"`
12311
12312	// ReferenceImages: The list of reference images.
12313	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
12314
12315	// ServerResponse contains the HTTP response code and headers from the
12316	// server.
12317	googleapi.ServerResponse `json:"-"`
12318
12319	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12320	// unconditionally include in API requests. By default, fields with
12321	// empty or default values are omitted from API requests. However, any
12322	// non-pointer, non-interface field appearing in ForceSendFields will be
12323	// sent to the server regardless of whether the field is empty or not.
12324	// This may be used to include empty fields in Patch requests.
12325	ForceSendFields []string `json:"-"`
12326
12327	// NullFields is a list of field names (e.g. "NextPageToken") to include
12328	// in API requests with the JSON null value. By default, fields with
12329	// empty values are omitted from API requests. However, any field with
12330	// an empty value appearing in NullFields will be sent to the server as
12331	// null. It is an error if a field in this list has a non-empty value.
12332	// This may be used to include null fields in Patch requests.
12333	NullFields []string `json:"-"`
12334}
12335
12336func (s *ListReferenceImagesResponse) MarshalJSON() ([]byte, error) {
12337	type NoMethod ListReferenceImagesResponse
12338	raw := NoMethod(*s)
12339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12340}
12341
12342// LocalizedObjectAnnotation: Set of detected objects with bounding
12343// boxes.
12344type LocalizedObjectAnnotation struct {
12345	// BoundingPoly: Image region to which this object belongs. This must be
12346	// populated.
12347	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
12348
12349	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12350	// For more information, see
12351	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12352	LanguageCode string `json:"languageCode,omitempty"`
12353
12354	// Mid: Object ID that should align with EntityAnnotation mid.
12355	Mid string `json:"mid,omitempty"`
12356
12357	// Name: Object name, expressed in its `language_code` language.
12358	Name string `json:"name,omitempty"`
12359
12360	// Score: Score of the result. Range [0, 1].
12361	Score float64 `json:"score,omitempty"`
12362
12363	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12364	// unconditionally include in API requests. By default, fields with
12365	// empty or default values are omitted from API requests. However, any
12366	// non-pointer, non-interface field appearing in ForceSendFields will be
12367	// sent to the server regardless of whether the field is empty or not.
12368	// This may be used to include empty fields in Patch requests.
12369	ForceSendFields []string `json:"-"`
12370
12371	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12372	// in API requests with the JSON null value. By default, fields with
12373	// empty values are omitted from API requests. However, any field with
12374	// an empty value appearing in NullFields will be sent to the server as
12375	// null. It is an error if a field in this list has a non-empty value.
12376	// This may be used to include null fields in Patch requests.
12377	NullFields []string `json:"-"`
12378}
12379
12380func (s *LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
12381	type NoMethod LocalizedObjectAnnotation
12382	raw := NoMethod(*s)
12383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12384}
12385
12386func (s *LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
12387	type NoMethod LocalizedObjectAnnotation
12388	var s1 struct {
12389		Score gensupport.JSONFloat64 `json:"score"`
12390		*NoMethod
12391	}
12392	s1.NoMethod = (*NoMethod)(s)
12393	if err := json.Unmarshal(data, &s1); err != nil {
12394		return err
12395	}
12396	s.Score = float64(s1.Score)
12397	return nil
12398}
12399
12400// LocationInfo: Detected entity location information.
12401type LocationInfo struct {
12402	// LatLng: lat/long location coordinates.
12403	LatLng *LatLng `json:"latLng,omitempty"`
12404
12405	// ForceSendFields is a list of field names (e.g. "LatLng") to
12406	// unconditionally include in API requests. By default, fields with
12407	// empty or default values are omitted from API requests. However, any
12408	// non-pointer, non-interface field appearing in ForceSendFields will be
12409	// sent to the server regardless of whether the field is empty or not.
12410	// This may be used to include empty fields in Patch requests.
12411	ForceSendFields []string `json:"-"`
12412
12413	// NullFields is a list of field names (e.g. "LatLng") to include in API
12414	// requests with the JSON null value. By default, fields with empty
12415	// values are omitted from API requests. However, any field with an
12416	// empty value appearing in NullFields will be sent to the server as
12417	// null. It is an error if a field in this list has a non-empty value.
12418	// This may be used to include null fields in Patch requests.
12419	NullFields []string `json:"-"`
12420}
12421
12422func (s *LocationInfo) MarshalJSON() ([]byte, error) {
12423	type NoMethod LocationInfo
12424	raw := NoMethod(*s)
12425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12426}
12427
12428// NormalizedVertex: A vertex represents a 2D point in the image. NOTE:
12429// the normalized vertex coordinates are relative to the original image
12430// and range from 0 to 1.
12431type NormalizedVertex struct {
12432	// X: X coordinate.
12433	X float64 `json:"x,omitempty"`
12434
12435	// Y: Y coordinate.
12436	Y float64 `json:"y,omitempty"`
12437
12438	// ForceSendFields is a list of field names (e.g. "X") to
12439	// unconditionally include in API requests. By default, fields with
12440	// empty or default values are omitted from API requests. However, any
12441	// non-pointer, non-interface field appearing in ForceSendFields will be
12442	// sent to the server regardless of whether the field is empty or not.
12443	// This may be used to include empty fields in Patch requests.
12444	ForceSendFields []string `json:"-"`
12445
12446	// NullFields is a list of field names (e.g. "X") to include in API
12447	// requests with the JSON null value. By default, fields with empty
12448	// values are omitted from API requests. However, any field with an
12449	// empty value appearing in NullFields will be sent to the server as
12450	// null. It is an error if a field in this list has a non-empty value.
12451	// This may be used to include null fields in Patch requests.
12452	NullFields []string `json:"-"`
12453}
12454
12455func (s *NormalizedVertex) MarshalJSON() ([]byte, error) {
12456	type NoMethod NormalizedVertex
12457	raw := NoMethod(*s)
12458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12459}
12460
12461func (s *NormalizedVertex) UnmarshalJSON(data []byte) error {
12462	type NoMethod NormalizedVertex
12463	var s1 struct {
12464		X gensupport.JSONFloat64 `json:"x"`
12465		Y gensupport.JSONFloat64 `json:"y"`
12466		*NoMethod
12467	}
12468	s1.NoMethod = (*NoMethod)(s)
12469	if err := json.Unmarshal(data, &s1); err != nil {
12470		return err
12471	}
12472	s.X = float64(s1.X)
12473	s.Y = float64(s1.Y)
12474	return nil
12475}
12476
12477// ObjectAnnotation: Prediction for what the object in the bounding box
12478// is.
12479type ObjectAnnotation struct {
12480	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12481	// For more information, see
12482	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12483	LanguageCode string `json:"languageCode,omitempty"`
12484
12485	// Mid: Object ID that should align with EntityAnnotation mid.
12486	Mid string `json:"mid,omitempty"`
12487
12488	// Name: Object name, expressed in its `language_code` language.
12489	Name string `json:"name,omitempty"`
12490
12491	// Score: Score of the result. Range [0, 1].
12492	Score float64 `json:"score,omitempty"`
12493
12494	// ForceSendFields is a list of field names (e.g. "LanguageCode") 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. "LanguageCode") to include
12503	// in API requests with the JSON null value. By default, fields with
12504	// empty values are omitted from API requests. However, any field with
12505	// an 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 *ObjectAnnotation) MarshalJSON() ([]byte, error) {
12512	type NoMethod ObjectAnnotation
12513	raw := NoMethod(*s)
12514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12515}
12516
12517func (s *ObjectAnnotation) UnmarshalJSON(data []byte) error {
12518	type NoMethod ObjectAnnotation
12519	var s1 struct {
12520		Score gensupport.JSONFloat64 `json:"score"`
12521		*NoMethod
12522	}
12523	s1.NoMethod = (*NoMethod)(s)
12524	if err := json.Unmarshal(data, &s1); err != nil {
12525		return err
12526	}
12527	s.Score = float64(s1.Score)
12528	return nil
12529}
12530
12531// Operation: This resource represents a long-running operation that is
12532// the result of a network API call.
12533type Operation struct {
12534	// Done: If the value is `false`, it means the operation is still in
12535	// progress. If `true`, the operation is completed, and either `error`
12536	// or `response` is available.
12537	Done bool `json:"done,omitempty"`
12538
12539	// Error: The error result of the operation in case of failure or
12540	// cancellation.
12541	Error *Status `json:"error,omitempty"`
12542
12543	// Metadata: Service-specific metadata associated with the operation. It
12544	// typically contains progress information and common metadata such as
12545	// create time. Some services might not provide such metadata. Any
12546	// method that returns a long-running operation should document the
12547	// metadata type, if any.
12548	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
12549
12550	// Name: The server-assigned name, which is only unique within the same
12551	// service that originally returns it. If you use the default HTTP
12552	// mapping, the `name` should be a resource name ending with
12553	// `operations/{unique_id}`.
12554	Name string `json:"name,omitempty"`
12555
12556	// Response: The normal response of the operation in case of success. If
12557	// the original method returns no data on success, such as `Delete`, the
12558	// response is `google.protobuf.Empty`. If the original method is
12559	// standard `Get`/`Create`/`Update`, the response should be the
12560	// resource. For other methods, the response should have the type
12561	// `XxxResponse`, where `Xxx` is the original method name. For example,
12562	// if the original method name is `TakeSnapshot()`, the inferred
12563	// response type is `TakeSnapshotResponse`.
12564	Response googleapi.RawMessage `json:"response,omitempty"`
12565
12566	// ServerResponse contains the HTTP response code and headers from the
12567	// server.
12568	googleapi.ServerResponse `json:"-"`
12569
12570	// ForceSendFields is a list of field names (e.g. "Done") to
12571	// unconditionally include in API requests. By default, fields with
12572	// empty or default values are omitted from API requests. However, any
12573	// non-pointer, non-interface field appearing in ForceSendFields will be
12574	// sent to the server regardless of whether the field is empty or not.
12575	// This may be used to include empty fields in Patch requests.
12576	ForceSendFields []string `json:"-"`
12577
12578	// NullFields is a list of field names (e.g. "Done") to include in API
12579	// requests with the JSON null value. By default, fields with empty
12580	// values are omitted from API requests. However, any field with an
12581	// empty value appearing in NullFields will be sent to the server as
12582	// null. It is an error if a field in this list has a non-empty value.
12583	// This may be used to include null fields in Patch requests.
12584	NullFields []string `json:"-"`
12585}
12586
12587func (s *Operation) MarshalJSON() ([]byte, error) {
12588	type NoMethod Operation
12589	raw := NoMethod(*s)
12590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12591}
12592
12593// OperationMetadata: Contains metadata for the BatchAnnotateImages
12594// operation.
12595type OperationMetadata struct {
12596	// CreateTime: The time when the batch request was received.
12597	CreateTime string `json:"createTime,omitempty"`
12598
12599	// State: Current state of the batch operation.
12600	//
12601	// Possible values:
12602	//   "STATE_UNSPECIFIED" - Invalid.
12603	//   "CREATED" - Request is received.
12604	//   "RUNNING" - Request is actively being processed.
12605	//   "DONE" - The batch processing is done.
12606	//   "CANCELLED" - The batch processing was cancelled.
12607	State string `json:"state,omitempty"`
12608
12609	// UpdateTime: The time when the operation result was last updated.
12610	UpdateTime string `json:"updateTime,omitempty"`
12611
12612	// ForceSendFields is a list of field names (e.g. "CreateTime") to
12613	// unconditionally include in API requests. By default, fields with
12614	// empty or default values are omitted from API requests. However, any
12615	// non-pointer, non-interface field appearing in ForceSendFields will be
12616	// sent to the server regardless of whether the field is empty or not.
12617	// This may be used to include empty fields in Patch requests.
12618	ForceSendFields []string `json:"-"`
12619
12620	// NullFields is a list of field names (e.g. "CreateTime") to include in
12621	// API requests with the JSON null value. By default, fields with empty
12622	// values are omitted from API requests. However, any field with an
12623	// empty value appearing in NullFields will be sent to the server as
12624	// null. It is an error if a field in this list has a non-empty value.
12625	// This may be used to include null fields in Patch requests.
12626	NullFields []string `json:"-"`
12627}
12628
12629func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
12630	type NoMethod OperationMetadata
12631	raw := NoMethod(*s)
12632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12633}
12634
12635// OutputConfig: The desired output location and metadata.
12636type OutputConfig struct {
12637	// BatchSize: The max number of response protos to put into each output
12638	// JSON file on Google Cloud Storage. The valid range is [1, 100]. If
12639	// not specified, the default value is 20. For example, for one pdf file
12640	// with 100 pages, 100 response protos will be generated. If
12641	// `batch_size` = 20, then 5 json files each containing 20 response
12642	// protos will be written under the prefix `gcs_destination`.`uri`.
12643	// Currently, batch_size only applies to GcsDestination, with potential
12644	// future support for other output configurations.
12645	BatchSize int64 `json:"batchSize,omitempty"`
12646
12647	// GcsDestination: The Google Cloud Storage location to write the
12648	// output(s) to.
12649	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
12650
12651	// ForceSendFields is a list of field names (e.g. "BatchSize") to
12652	// unconditionally include in API requests. By default, fields with
12653	// empty or default values are omitted from API requests. However, any
12654	// non-pointer, non-interface field appearing in ForceSendFields will be
12655	// sent to the server regardless of whether the field is empty or not.
12656	// This may be used to include empty fields in Patch requests.
12657	ForceSendFields []string `json:"-"`
12658
12659	// NullFields is a list of field names (e.g. "BatchSize") to include in
12660	// API requests with the JSON null value. By default, fields with empty
12661	// values are omitted from API requests. However, any field with an
12662	// empty value appearing in NullFields will be sent to the server as
12663	// null. It is an error if a field in this list has a non-empty value.
12664	// This may be used to include null fields in Patch requests.
12665	NullFields []string `json:"-"`
12666}
12667
12668func (s *OutputConfig) MarshalJSON() ([]byte, error) {
12669	type NoMethod OutputConfig
12670	raw := NoMethod(*s)
12671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12672}
12673
12674// Page: Detected page from OCR.
12675type Page struct {
12676	// Blocks: List of blocks of text, images etc on this page.
12677	Blocks []*Block `json:"blocks,omitempty"`
12678
12679	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
12680	Confidence float64 `json:"confidence,omitempty"`
12681
12682	// Height: Page height. For PDFs the unit is points. For images
12683	// (including TIFFs) the unit is pixels.
12684	Height int64 `json:"height,omitempty"`
12685
12686	// Property: Additional information detected on the page.
12687	Property *TextProperty `json:"property,omitempty"`
12688
12689	// Width: Page width. For PDFs the unit is points. For images (including
12690	// TIFFs) the unit is pixels.
12691	Width int64 `json:"width,omitempty"`
12692
12693	// ForceSendFields is a list of field names (e.g. "Blocks") to
12694	// unconditionally include in API requests. By default, fields with
12695	// empty or default values are omitted from API requests. However, any
12696	// non-pointer, non-interface field appearing in ForceSendFields will be
12697	// sent to the server regardless of whether the field is empty or not.
12698	// This may be used to include empty fields in Patch requests.
12699	ForceSendFields []string `json:"-"`
12700
12701	// NullFields is a list of field names (e.g. "Blocks") to include in API
12702	// requests with the JSON null value. By default, fields with empty
12703	// values are omitted from API requests. However, any field with an
12704	// empty value appearing in NullFields will be sent to the server as
12705	// null. It is an error if a field in this list has a non-empty value.
12706	// This may be used to include null fields in Patch requests.
12707	NullFields []string `json:"-"`
12708}
12709
12710func (s *Page) MarshalJSON() ([]byte, error) {
12711	type NoMethod Page
12712	raw := NoMethod(*s)
12713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12714}
12715
12716func (s *Page) UnmarshalJSON(data []byte) error {
12717	type NoMethod Page
12718	var s1 struct {
12719		Confidence gensupport.JSONFloat64 `json:"confidence"`
12720		*NoMethod
12721	}
12722	s1.NoMethod = (*NoMethod)(s)
12723	if err := json.Unmarshal(data, &s1); err != nil {
12724		return err
12725	}
12726	s.Confidence = float64(s1.Confidence)
12727	return nil
12728}
12729
12730// Paragraph: Structural unit of text representing a number of words in
12731// certain order.
12732type Paragraph struct {
12733	// BoundingBox: The bounding box for the paragraph. The vertices are in
12734	// the order of top-left, top-right, bottom-right, bottom-left. When a
12735	// rotation of the bounding box is detected the rotation is represented
12736	// as around the top-left corner as defined when the text is read in the
12737	// 'natural' orientation. For example: * when the text is horizontal it
12738	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
12739	// around the top-left corner it becomes: 2----3 | | 1----0 and the
12740	// vertex order will still be (0, 1, 2, 3).
12741	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
12742
12743	// Confidence: Confidence of the OCR results for the paragraph. Range
12744	// [0, 1].
12745	Confidence float64 `json:"confidence,omitempty"`
12746
12747	// Property: Additional information detected for the paragraph.
12748	Property *TextProperty `json:"property,omitempty"`
12749
12750	// Words: List of all words in this paragraph.
12751	Words []*Word `json:"words,omitempty"`
12752
12753	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12754	// unconditionally include in API requests. By default, fields with
12755	// empty or default values are omitted from API requests. However, any
12756	// non-pointer, non-interface field appearing in ForceSendFields will be
12757	// sent to the server regardless of whether the field is empty or not.
12758	// This may be used to include empty fields in Patch requests.
12759	ForceSendFields []string `json:"-"`
12760
12761	// NullFields is a list of field names (e.g. "BoundingBox") to include
12762	// in API requests with the JSON null value. By default, fields with
12763	// empty values are omitted from API requests. However, any field with
12764	// an empty value appearing in NullFields will be sent to the server as
12765	// null. It is an error if a field in this list has a non-empty value.
12766	// This may be used to include null fields in Patch requests.
12767	NullFields []string `json:"-"`
12768}
12769
12770func (s *Paragraph) MarshalJSON() ([]byte, error) {
12771	type NoMethod Paragraph
12772	raw := NoMethod(*s)
12773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12774}
12775
12776func (s *Paragraph) UnmarshalJSON(data []byte) error {
12777	type NoMethod Paragraph
12778	var s1 struct {
12779		Confidence gensupport.JSONFloat64 `json:"confidence"`
12780		*NoMethod
12781	}
12782	s1.NoMethod = (*NoMethod)(s)
12783	if err := json.Unmarshal(data, &s1); err != nil {
12784		return err
12785	}
12786	s.Confidence = float64(s1.Confidence)
12787	return nil
12788}
12789
12790// Position: A 3D position in the image, used primarily for Face
12791// detection landmarks. A valid Position must have both x and y
12792// coordinates. The position coordinates are in the same scale as the
12793// original image.
12794type Position struct {
12795	// X: X coordinate.
12796	X float64 `json:"x,omitempty"`
12797
12798	// Y: Y coordinate.
12799	Y float64 `json:"y,omitempty"`
12800
12801	// Z: Z coordinate (or depth).
12802	Z float64 `json:"z,omitempty"`
12803
12804	// ForceSendFields is a list of field names (e.g. "X") to
12805	// unconditionally include in API requests. By default, fields with
12806	// empty or default values are omitted from API requests. However, any
12807	// non-pointer, non-interface field appearing in ForceSendFields will be
12808	// sent to the server regardless of whether the field is empty or not.
12809	// This may be used to include empty fields in Patch requests.
12810	ForceSendFields []string `json:"-"`
12811
12812	// NullFields is a list of field names (e.g. "X") to include in API
12813	// requests with the JSON null value. By default, fields with empty
12814	// values are omitted from API requests. However, any field with an
12815	// empty value appearing in NullFields will be sent to the server as
12816	// null. It is an error if a field in this list has a non-empty value.
12817	// This may be used to include null fields in Patch requests.
12818	NullFields []string `json:"-"`
12819}
12820
12821func (s *Position) MarshalJSON() ([]byte, error) {
12822	type NoMethod Position
12823	raw := NoMethod(*s)
12824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12825}
12826
12827func (s *Position) UnmarshalJSON(data []byte) error {
12828	type NoMethod Position
12829	var s1 struct {
12830		X gensupport.JSONFloat64 `json:"x"`
12831		Y gensupport.JSONFloat64 `json:"y"`
12832		Z gensupport.JSONFloat64 `json:"z"`
12833		*NoMethod
12834	}
12835	s1.NoMethod = (*NoMethod)(s)
12836	if err := json.Unmarshal(data, &s1); err != nil {
12837		return err
12838	}
12839	s.X = float64(s1.X)
12840	s.Y = float64(s1.Y)
12841	s.Z = float64(s1.Z)
12842	return nil
12843}
12844
12845// Product: A Product contains ReferenceImages.
12846type Product struct {
12847	// Description: User-provided metadata to be stored with this product.
12848	// Must be at most 4096 characters long.
12849	Description string `json:"description,omitempty"`
12850
12851	// DisplayName: The user-provided name for this Product. Must not be
12852	// empty. Must be at most 4096 characters long.
12853	DisplayName string `json:"displayName,omitempty"`
12854
12855	// Name: The resource name of the product. Format is:
12856	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
12857	// field is ignored when creating a product.
12858	Name string `json:"name,omitempty"`
12859
12860	// ProductCategory: Immutable. The category for the product identified
12861	// by the reference image. This should be one of "homegoods-v2",
12862	// "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The
12863	// legacy categories "homegoods", "apparel", and "toys" are still
12864	// supported, but these should not be used for new products.
12865	ProductCategory string `json:"productCategory,omitempty"`
12866
12867	// ProductLabels: Key-value pairs that can be attached to a product. At
12868	// query time, constraints can be specified based on the product_labels.
12869	// Note that integer values can be provided as strings, e.g. "1199".
12870	// Only strings with integer values can match a range-based restriction
12871	// which is to be supported soon. Multiple values can be assigned to the
12872	// same key. One product may have up to 500 product_labels. Notice that
12873	// the total number of distinct product_labels over all products in one
12874	// ProductSet cannot exceed 1M, otherwise the product search pipeline
12875	// will refuse to work for that ProductSet.
12876	ProductLabels []*KeyValue `json:"productLabels,omitempty"`
12877
12878	// ServerResponse contains the HTTP response code and headers from the
12879	// server.
12880	googleapi.ServerResponse `json:"-"`
12881
12882	// ForceSendFields is a list of field names (e.g. "Description") to
12883	// unconditionally include in API requests. By default, fields with
12884	// empty or default values are omitted from API requests. However, any
12885	// non-pointer, non-interface field appearing in ForceSendFields will be
12886	// sent to the server regardless of whether the field is empty or not.
12887	// This may be used to include empty fields in Patch requests.
12888	ForceSendFields []string `json:"-"`
12889
12890	// NullFields is a list of field names (e.g. "Description") to include
12891	// in API requests with the JSON null value. By default, fields with
12892	// empty values are omitted from API requests. However, any field with
12893	// an empty value appearing in NullFields will be sent to the server as
12894	// null. It is an error if a field in this list has a non-empty value.
12895	// This may be used to include null fields in Patch requests.
12896	NullFields []string `json:"-"`
12897}
12898
12899func (s *Product) MarshalJSON() ([]byte, error) {
12900	type NoMethod Product
12901	raw := NoMethod(*s)
12902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12903}
12904
12905// ProductSearchParams: Parameters for a product search request.
12906type ProductSearchParams struct {
12907	// BoundingPoly: The bounding polygon around the area of interest in the
12908	// image. If it is not specified, system discretion will be applied.
12909	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
12910
12911	// Filter: The filtering expression. This can be used to restrict search
12912	// results based on Product labels. We currently support an AND of OR of
12913	// key-value expressions, where each expression within an OR must have
12914	// the same key. An '=' should be used to connect the key and value. For
12915	// example, "(color = red OR color = blue) AND brand = Google" is
12916	// acceptable, but "(color = red OR brand = Google)" is not acceptable.
12917	// "color: red" is not acceptable because it uses a ':' instead of an
12918	// '='.
12919	Filter string `json:"filter,omitempty"`
12920
12921	// ProductCategories: The list of product categories to search in.
12922	// Currently, we only consider the first category, and either
12923	// "homegoods-v2", "apparel-v2", "toys-v2", "packagedgoods-v1", or
12924	// "general-v1" should be specified. The legacy categories "homegoods",
12925	// "apparel", and "toys" are still supported but will be deprecated. For
12926	// new products, please use "homegoods-v2", "apparel-v2", or "toys-v2"
12927	// for better product search accuracy. It is recommended to migrate
12928	// existing products to these categories as well.
12929	ProductCategories []string `json:"productCategories,omitempty"`
12930
12931	// ProductSet: The resource name of a ProductSet to be searched for
12932	// similar images. Format is:
12933	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
12934	ProductSet string `json:"productSet,omitempty"`
12935
12936	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12937	// unconditionally include in API requests. By default, fields with
12938	// empty or default values are omitted from API requests. However, any
12939	// non-pointer, non-interface field appearing in ForceSendFields will be
12940	// sent to the server regardless of whether the field is empty or not.
12941	// This may be used to include empty fields in Patch requests.
12942	ForceSendFields []string `json:"-"`
12943
12944	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12945	// in API requests with the JSON null value. By default, fields with
12946	// empty values are omitted from API requests. However, any field with
12947	// an empty value appearing in NullFields will be sent to the server as
12948	// null. It is an error if a field in this list has a non-empty value.
12949	// This may be used to include null fields in Patch requests.
12950	NullFields []string `json:"-"`
12951}
12952
12953func (s *ProductSearchParams) MarshalJSON() ([]byte, error) {
12954	type NoMethod ProductSearchParams
12955	raw := NoMethod(*s)
12956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12957}
12958
12959// ProductSearchResults: Results for a product search request.
12960type ProductSearchResults struct {
12961	// IndexTime: Timestamp of the index which provided these results.
12962	// Products added to the product set and products removed from the
12963	// product set after this time are not reflected in the current results.
12964	IndexTime string `json:"indexTime,omitempty"`
12965
12966	// ProductGroupedResults: List of results grouped by products detected
12967	// in the query image. Each entry corresponds to one bounding polygon in
12968	// the query image, and contains the matching products specific to that
12969	// region. There may be duplicate product matches in the union of all
12970	// the per-product results.
12971	ProductGroupedResults []*GroupedResult `json:"productGroupedResults,omitempty"`
12972
12973	// Results: List of results, one for each product match.
12974	Results []*Result `json:"results,omitempty"`
12975
12976	// ForceSendFields is a list of field names (e.g. "IndexTime") to
12977	// unconditionally include in API requests. By default, fields with
12978	// empty or default values are omitted from API requests. However, any
12979	// non-pointer, non-interface field appearing in ForceSendFields will be
12980	// sent to the server regardless of whether the field is empty or not.
12981	// This may be used to include empty fields in Patch requests.
12982	ForceSendFields []string `json:"-"`
12983
12984	// NullFields is a list of field names (e.g. "IndexTime") to include in
12985	// API requests with the JSON null value. By default, fields with empty
12986	// values are omitted from API requests. However, any field with an
12987	// empty value appearing in NullFields will be sent to the server as
12988	// null. It is an error if a field in this list has a non-empty value.
12989	// This may be used to include null fields in Patch requests.
12990	NullFields []string `json:"-"`
12991}
12992
12993func (s *ProductSearchResults) MarshalJSON() ([]byte, error) {
12994	type NoMethod ProductSearchResults
12995	raw := NoMethod(*s)
12996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12997}
12998
12999// ProductSet: A ProductSet contains Products. A ProductSet can contain
13000// a maximum of 1 million reference images. If the limit is exceeded,
13001// periodic indexing will fail.
13002type ProductSet struct {
13003	// DisplayName: The user-provided name for this ProductSet. Must not be
13004	// empty. Must be at most 4096 characters long.
13005	DisplayName string `json:"displayName,omitempty"`
13006
13007	// IndexError: Output only. If there was an error with indexing the
13008	// product set, the field is populated. This field is ignored when
13009	// creating a ProductSet.
13010	IndexError *Status `json:"indexError,omitempty"`
13011
13012	// IndexTime: Output only. The time at which this ProductSet was last
13013	// indexed. Query results will reflect all updates before this time. If
13014	// this ProductSet has never been indexed, this timestamp is the default
13015	// value "1970-01-01T00:00:00Z". This field is ignored when creating a
13016	// ProductSet.
13017	IndexTime string `json:"indexTime,omitempty"`
13018
13019	// Name: The resource name of the ProductSet. Format is:
13020	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
13021	// This field is ignored when creating a ProductSet.
13022	Name string `json:"name,omitempty"`
13023
13024	// ServerResponse contains the HTTP response code and headers from the
13025	// server.
13026	googleapi.ServerResponse `json:"-"`
13027
13028	// ForceSendFields is a list of field names (e.g. "DisplayName") to
13029	// unconditionally include in API requests. By default, fields with
13030	// empty or default values are omitted from API requests. However, any
13031	// non-pointer, non-interface field appearing in ForceSendFields will be
13032	// sent to the server regardless of whether the field is empty or not.
13033	// This may be used to include empty fields in Patch requests.
13034	ForceSendFields []string `json:"-"`
13035
13036	// NullFields is a list of field names (e.g. "DisplayName") to include
13037	// in API requests with the JSON null value. By default, fields with
13038	// empty values are omitted from API requests. However, any field with
13039	// an empty value appearing in NullFields will be sent to the server as
13040	// null. It is an error if a field in this list has a non-empty value.
13041	// This may be used to include null fields in Patch requests.
13042	NullFields []string `json:"-"`
13043}
13044
13045func (s *ProductSet) MarshalJSON() ([]byte, error) {
13046	type NoMethod ProductSet
13047	raw := NoMethod(*s)
13048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13049}
13050
13051// ProductSetPurgeConfig: Config to control which ProductSet contains
13052// the Products to be deleted.
13053type ProductSetPurgeConfig struct {
13054	// ProductSetId: The ProductSet that contains the Products to delete. If
13055	// a Product is a member of product_set_id in addition to other
13056	// ProductSets, the Product will still be deleted.
13057	ProductSetId string `json:"productSetId,omitempty"`
13058
13059	// ForceSendFields is a list of field names (e.g. "ProductSetId") to
13060	// unconditionally include in API requests. By default, fields with
13061	// empty or default values are omitted from API requests. However, any
13062	// non-pointer, non-interface field appearing in ForceSendFields will be
13063	// sent to the server regardless of whether the field is empty or not.
13064	// This may be used to include empty fields in Patch requests.
13065	ForceSendFields []string `json:"-"`
13066
13067	// NullFields is a list of field names (e.g. "ProductSetId") to include
13068	// in API requests with the JSON null value. By default, fields with
13069	// empty values are omitted from API requests. However, any field with
13070	// an empty value appearing in NullFields will be sent to the server as
13071	// null. It is an error if a field in this list has a non-empty value.
13072	// This may be used to include null fields in Patch requests.
13073	NullFields []string `json:"-"`
13074}
13075
13076func (s *ProductSetPurgeConfig) MarshalJSON() ([]byte, error) {
13077	type NoMethod ProductSetPurgeConfig
13078	raw := NoMethod(*s)
13079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13080}
13081
13082// Property: A `Property` consists of a user-supplied name/value pair.
13083type Property struct {
13084	// Name: Name of the property.
13085	Name string `json:"name,omitempty"`
13086
13087	// Uint64Value: Value of numeric properties.
13088	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
13089
13090	// Value: Value of the property.
13091	Value string `json:"value,omitempty"`
13092
13093	// ForceSendFields is a list of field names (e.g. "Name") to
13094	// unconditionally include in API requests. By default, fields with
13095	// empty or default values are omitted from API requests. However, any
13096	// non-pointer, non-interface field appearing in ForceSendFields will be
13097	// sent to the server regardless of whether the field is empty or not.
13098	// This may be used to include empty fields in Patch requests.
13099	ForceSendFields []string `json:"-"`
13100
13101	// NullFields is a list of field names (e.g. "Name") to include in API
13102	// requests with the JSON null value. By default, fields with empty
13103	// values are omitted from API requests. However, any field with an
13104	// empty value appearing in NullFields will be sent to the server as
13105	// null. It is an error if a field in this list has a non-empty value.
13106	// This may be used to include null fields in Patch requests.
13107	NullFields []string `json:"-"`
13108}
13109
13110func (s *Property) MarshalJSON() ([]byte, error) {
13111	type NoMethod Property
13112	raw := NoMethod(*s)
13113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13114}
13115
13116// PurgeProductsRequest: Request message for the `PurgeProducts` method.
13117type PurgeProductsRequest struct {
13118	// DeleteOrphanProducts: If delete_orphan_products is true, all Products
13119	// that are not in any ProductSet will be deleted.
13120	DeleteOrphanProducts bool `json:"deleteOrphanProducts,omitempty"`
13121
13122	// Force: The default value is false. Override this value to true to
13123	// actually perform the purge.
13124	Force bool `json:"force,omitempty"`
13125
13126	// ProductSetPurgeConfig: Specify which ProductSet contains the Products
13127	// to be deleted.
13128	ProductSetPurgeConfig *ProductSetPurgeConfig `json:"productSetPurgeConfig,omitempty"`
13129
13130	// ForceSendFields is a list of field names (e.g.
13131	// "DeleteOrphanProducts") to unconditionally include in API requests.
13132	// By default, fields with empty or default values are omitted from API
13133	// requests. However, any non-pointer, non-interface field appearing in
13134	// ForceSendFields will be sent to the server regardless of whether the
13135	// field is empty or not. This may be used to include empty fields in
13136	// Patch requests.
13137	ForceSendFields []string `json:"-"`
13138
13139	// NullFields is a list of field names (e.g. "DeleteOrphanProducts") to
13140	// include in API requests with the JSON null value. By default, fields
13141	// with empty values are omitted from API requests. However, any field
13142	// with an empty value appearing in NullFields will be sent to the
13143	// server as null. It is an error if a field in this list has a
13144	// non-empty value. This may be used to include null fields in Patch
13145	// requests.
13146	NullFields []string `json:"-"`
13147}
13148
13149func (s *PurgeProductsRequest) MarshalJSON() ([]byte, error) {
13150	type NoMethod PurgeProductsRequest
13151	raw := NoMethod(*s)
13152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13153}
13154
13155// ReferenceImage: A `ReferenceImage` represents a product image and its
13156// associated metadata, such as bounding boxes.
13157type ReferenceImage struct {
13158	// BoundingPolys: Optional. Bounding polygons around the areas of
13159	// interest in the reference image. If this field is empty, the system
13160	// will try to detect regions of interest. At most 10 bounding polygons
13161	// will be used. The provided shape is converted into a non-rotated
13162	// rectangle. Once converted, the small edge of the rectangle must be
13163	// greater than or equal to 300 pixels. The aspect ratio must be 1:4 or
13164	// less (i.e. 1:3 is ok; 1:5 is not).
13165	BoundingPolys []*BoundingPoly `json:"boundingPolys,omitempty"`
13166
13167	// Name: The resource name of the reference image. Format is:
13168	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceIma
13169	// ges/IMAGE_ID`. This field is ignored when creating a reference image.
13170	Name string `json:"name,omitempty"`
13171
13172	// Uri: Required. The Google Cloud Storage URI of the reference image.
13173	// The URI must start with `gs://`.
13174	Uri string `json:"uri,omitempty"`
13175
13176	// ServerResponse contains the HTTP response code and headers from the
13177	// server.
13178	googleapi.ServerResponse `json:"-"`
13179
13180	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
13181	// unconditionally include in API requests. By default, fields with
13182	// empty or default values are omitted from API requests. However, any
13183	// non-pointer, non-interface field appearing in ForceSendFields will be
13184	// sent to the server regardless of whether the field is empty or not.
13185	// This may be used to include empty fields in Patch requests.
13186	ForceSendFields []string `json:"-"`
13187
13188	// NullFields is a list of field names (e.g. "BoundingPolys") to include
13189	// in API requests with the JSON null value. By default, fields with
13190	// empty values are omitted from API requests. However, any field with
13191	// an empty value appearing in NullFields will be sent to the server as
13192	// null. It is an error if a field in this list has a non-empty value.
13193	// This may be used to include null fields in Patch requests.
13194	NullFields []string `json:"-"`
13195}
13196
13197func (s *ReferenceImage) MarshalJSON() ([]byte, error) {
13198	type NoMethod ReferenceImage
13199	raw := NoMethod(*s)
13200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13201}
13202
13203// RemoveProductFromProductSetRequest: Request message for the
13204// `RemoveProductFromProductSet` method.
13205type RemoveProductFromProductSetRequest struct {
13206	// Product: Required. The resource name for the Product to be removed
13207	// from this ProductSet. Format is:
13208	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
13209	Product string `json:"product,omitempty"`
13210
13211	// ForceSendFields is a list of field names (e.g. "Product") to
13212	// unconditionally include in API requests. By default, fields with
13213	// empty or default values are omitted from API requests. However, any
13214	// non-pointer, non-interface field appearing in ForceSendFields will be
13215	// sent to the server regardless of whether the field is empty or not.
13216	// This may be used to include empty fields in Patch requests.
13217	ForceSendFields []string `json:"-"`
13218
13219	// NullFields is a list of field names (e.g. "Product") to include in
13220	// API requests with the JSON null value. By default, fields with empty
13221	// values are omitted from API requests. However, any field with an
13222	// empty value appearing in NullFields will be sent to the server as
13223	// null. It is an error if a field in this list has a non-empty value.
13224	// This may be used to include null fields in Patch requests.
13225	NullFields []string `json:"-"`
13226}
13227
13228func (s *RemoveProductFromProductSetRequest) MarshalJSON() ([]byte, error) {
13229	type NoMethod RemoveProductFromProductSetRequest
13230	raw := NoMethod(*s)
13231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13232}
13233
13234// Result: Information about a product.
13235type Result struct {
13236	// Image: The resource name of the image from the product that is the
13237	// closest match to the query.
13238	Image string `json:"image,omitempty"`
13239
13240	// Product: The Product.
13241	Product *Product `json:"product,omitempty"`
13242
13243	// Score: A confidence level on the match, ranging from 0 (no
13244	// confidence) to 1 (full confidence).
13245	Score float64 `json:"score,omitempty"`
13246
13247	// ForceSendFields is a list of field names (e.g. "Image") to
13248	// unconditionally include in API requests. By default, fields with
13249	// empty or default values are omitted from API requests. However, any
13250	// non-pointer, non-interface field appearing in ForceSendFields will be
13251	// sent to the server regardless of whether the field is empty or not.
13252	// This may be used to include empty fields in Patch requests.
13253	ForceSendFields []string `json:"-"`
13254
13255	// NullFields is a list of field names (e.g. "Image") to include in API
13256	// requests with the JSON null value. By default, fields with empty
13257	// values are omitted from API requests. However, any field with an
13258	// empty value appearing in NullFields will be sent to the server as
13259	// null. It is an error if a field in this list has a non-empty value.
13260	// This may be used to include null fields in Patch requests.
13261	NullFields []string `json:"-"`
13262}
13263
13264func (s *Result) MarshalJSON() ([]byte, error) {
13265	type NoMethod Result
13266	raw := NoMethod(*s)
13267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13268}
13269
13270func (s *Result) UnmarshalJSON(data []byte) error {
13271	type NoMethod Result
13272	var s1 struct {
13273		Score gensupport.JSONFloat64 `json:"score"`
13274		*NoMethod
13275	}
13276	s1.NoMethod = (*NoMethod)(s)
13277	if err := json.Unmarshal(data, &s1); err != nil {
13278		return err
13279	}
13280	s.Score = float64(s1.Score)
13281	return nil
13282}
13283
13284// SafeSearchAnnotation: Set of features pertaining to the image,
13285// computed by computer vision methods over safe-search verticals (for
13286// example, adult, spoof, medical, violence).
13287type SafeSearchAnnotation struct {
13288	// Adult: Represents the adult content likelihood for the image. Adult
13289	// content may contain elements such as nudity, pornographic images or
13290	// cartoons, or sexual activities.
13291	//
13292	// Possible values:
13293	//   "UNKNOWN" - Unknown likelihood.
13294	//   "VERY_UNLIKELY" - It is very unlikely.
13295	//   "UNLIKELY" - It is unlikely.
13296	//   "POSSIBLE" - It is possible.
13297	//   "LIKELY" - It is likely.
13298	//   "VERY_LIKELY" - It is very likely.
13299	Adult string `json:"adult,omitempty"`
13300
13301	// Medical: Likelihood that this is a medical image.
13302	//
13303	// Possible values:
13304	//   "UNKNOWN" - Unknown likelihood.
13305	//   "VERY_UNLIKELY" - It is very unlikely.
13306	//   "UNLIKELY" - It is unlikely.
13307	//   "POSSIBLE" - It is possible.
13308	//   "LIKELY" - It is likely.
13309	//   "VERY_LIKELY" - It is very likely.
13310	Medical string `json:"medical,omitempty"`
13311
13312	// Racy: Likelihood that the request image contains racy content. Racy
13313	// content may include (but is not limited to) skimpy or sheer clothing,
13314	// strategically covered nudity, lewd or provocative poses, or close-ups
13315	// of sensitive body areas.
13316	//
13317	// Possible values:
13318	//   "UNKNOWN" - Unknown likelihood.
13319	//   "VERY_UNLIKELY" - It is very unlikely.
13320	//   "UNLIKELY" - It is unlikely.
13321	//   "POSSIBLE" - It is possible.
13322	//   "LIKELY" - It is likely.
13323	//   "VERY_LIKELY" - It is very likely.
13324	Racy string `json:"racy,omitempty"`
13325
13326	// Spoof: Spoof likelihood. The likelihood that an modification was made
13327	// to the image's canonical version to make it appear funny or
13328	// offensive.
13329	//
13330	// Possible values:
13331	//   "UNKNOWN" - Unknown likelihood.
13332	//   "VERY_UNLIKELY" - It is very unlikely.
13333	//   "UNLIKELY" - It is unlikely.
13334	//   "POSSIBLE" - It is possible.
13335	//   "LIKELY" - It is likely.
13336	//   "VERY_LIKELY" - It is very likely.
13337	Spoof string `json:"spoof,omitempty"`
13338
13339	// Violence: Likelihood that this image contains violent content.
13340	//
13341	// Possible values:
13342	//   "UNKNOWN" - Unknown likelihood.
13343	//   "VERY_UNLIKELY" - It is very unlikely.
13344	//   "UNLIKELY" - It is unlikely.
13345	//   "POSSIBLE" - It is possible.
13346	//   "LIKELY" - It is likely.
13347	//   "VERY_LIKELY" - It is very likely.
13348	Violence string `json:"violence,omitempty"`
13349
13350	// ForceSendFields is a list of field names (e.g. "Adult") to
13351	// unconditionally include in API requests. By default, fields with
13352	// empty or default values are omitted from API requests. However, any
13353	// non-pointer, non-interface field appearing in ForceSendFields will be
13354	// sent to the server regardless of whether the field is empty or not.
13355	// This may be used to include empty fields in Patch requests.
13356	ForceSendFields []string `json:"-"`
13357
13358	// NullFields is a list of field names (e.g. "Adult") to include in API
13359	// requests with the JSON null value. By default, fields with empty
13360	// values are omitted from API requests. However, any field with an
13361	// empty value appearing in NullFields will be sent to the server as
13362	// null. It is an error if a field in this list has a non-empty value.
13363	// This may be used to include null fields in Patch requests.
13364	NullFields []string `json:"-"`
13365}
13366
13367func (s *SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
13368	type NoMethod SafeSearchAnnotation
13369	raw := NoMethod(*s)
13370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13371}
13372
13373// Status: The `Status` type defines a logical error model that is
13374// suitable for different programming environments, including REST APIs
13375// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
13376// `Status` message contains three pieces of data: error code, error
13377// message, and error details. You can find out more about this error
13378// model and how to work with it in the API Design Guide
13379// (https://cloud.google.com/apis/design/errors).
13380type Status struct {
13381	// Code: The status code, which should be an enum value of
13382	// google.rpc.Code.
13383	Code int64 `json:"code,omitempty"`
13384
13385	// Details: A list of messages that carry the error details. There is a
13386	// common set of message types for APIs to use.
13387	Details []googleapi.RawMessage `json:"details,omitempty"`
13388
13389	// Message: A developer-facing error message, which should be in
13390	// English. Any user-facing error message should be localized and sent
13391	// in the google.rpc.Status.details field, or localized by the client.
13392	Message string `json:"message,omitempty"`
13393
13394	// ForceSendFields is a list of field names (e.g. "Code") to
13395	// unconditionally include in API requests. By default, fields with
13396	// empty or default values are omitted from API requests. However, any
13397	// non-pointer, non-interface field appearing in ForceSendFields will be
13398	// sent to the server regardless of whether the field is empty or not.
13399	// This may be used to include empty fields in Patch requests.
13400	ForceSendFields []string `json:"-"`
13401
13402	// NullFields is a list of field names (e.g. "Code") to include in API
13403	// requests with the JSON null value. By default, fields with empty
13404	// values are omitted from API requests. However, any field with an
13405	// empty value appearing in NullFields will be sent to the server as
13406	// null. It is an error if a field in this list has a non-empty value.
13407	// This may be used to include null fields in Patch requests.
13408	NullFields []string `json:"-"`
13409}
13410
13411func (s *Status) MarshalJSON() ([]byte, error) {
13412	type NoMethod Status
13413	raw := NoMethod(*s)
13414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13415}
13416
13417// Symbol: A single symbol representation.
13418type Symbol struct {
13419	// BoundingBox: The bounding box for the symbol. The vertices are in the
13420	// order of top-left, top-right, bottom-right, bottom-left. When a
13421	// rotation of the bounding box is detected the rotation is represented
13422	// as around the top-left corner as defined when the text is read in the
13423	// 'natural' orientation. For example: * when the text is horizontal it
13424	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
13425	// around the top-left corner it becomes: 2----3 | | 1----0 and the
13426	// vertex order will still be (0, 1, 2, 3).
13427	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
13428
13429	// Confidence: Confidence of the OCR results for the symbol. Range [0,
13430	// 1].
13431	Confidence float64 `json:"confidence,omitempty"`
13432
13433	// Property: Additional information detected for the symbol.
13434	Property *TextProperty `json:"property,omitempty"`
13435
13436	// Text: The actual UTF-8 representation of the symbol.
13437	Text string `json:"text,omitempty"`
13438
13439	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
13440	// unconditionally include in API requests. By default, fields with
13441	// empty or default values are omitted from API requests. However, any
13442	// non-pointer, non-interface field appearing in ForceSendFields will be
13443	// sent to the server regardless of whether the field is empty or not.
13444	// This may be used to include empty fields in Patch requests.
13445	ForceSendFields []string `json:"-"`
13446
13447	// NullFields is a list of field names (e.g. "BoundingBox") to include
13448	// in API requests with the JSON null value. By default, fields with
13449	// empty values are omitted from API requests. However, any field with
13450	// an empty value appearing in NullFields will be sent to the server as
13451	// null. It is an error if a field in this list has a non-empty value.
13452	// This may be used to include null fields in Patch requests.
13453	NullFields []string `json:"-"`
13454}
13455
13456func (s *Symbol) MarshalJSON() ([]byte, error) {
13457	type NoMethod Symbol
13458	raw := NoMethod(*s)
13459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13460}
13461
13462func (s *Symbol) UnmarshalJSON(data []byte) error {
13463	type NoMethod Symbol
13464	var s1 struct {
13465		Confidence gensupport.JSONFloat64 `json:"confidence"`
13466		*NoMethod
13467	}
13468	s1.NoMethod = (*NoMethod)(s)
13469	if err := json.Unmarshal(data, &s1); err != nil {
13470		return err
13471	}
13472	s.Confidence = float64(s1.Confidence)
13473	return nil
13474}
13475
13476// TextAnnotation: TextAnnotation contains a structured representation
13477// of OCR extracted text. The hierarchy of an OCR extracted text
13478// structure is like this: TextAnnotation -> Page -> Block -> Paragraph
13479// -> Word -> Symbol Each structural component, starting from Page, may
13480// further have their own properties. Properties describe detected
13481// languages, breaks etc.. Please refer to the
13482// TextAnnotation.TextProperty message definition below for more detail.
13483type TextAnnotation struct {
13484	// Pages: List of pages detected by OCR.
13485	Pages []*Page `json:"pages,omitempty"`
13486
13487	// Text: UTF-8 text detected on the pages.
13488	Text string `json:"text,omitempty"`
13489
13490	// ForceSendFields is a list of field names (e.g. "Pages") to
13491	// unconditionally include in API requests. By default, fields with
13492	// empty or default values are omitted from API requests. However, any
13493	// non-pointer, non-interface field appearing in ForceSendFields will be
13494	// sent to the server regardless of whether the field is empty or not.
13495	// This may be used to include empty fields in Patch requests.
13496	ForceSendFields []string `json:"-"`
13497
13498	// NullFields is a list of field names (e.g. "Pages") to include in API
13499	// requests with the JSON null value. By default, fields with empty
13500	// values are omitted from API requests. However, any field with an
13501	// empty value appearing in NullFields will be sent to the server as
13502	// null. It is an error if a field in this list has a non-empty value.
13503	// This may be used to include null fields in Patch requests.
13504	NullFields []string `json:"-"`
13505}
13506
13507func (s *TextAnnotation) MarshalJSON() ([]byte, error) {
13508	type NoMethod TextAnnotation
13509	raw := NoMethod(*s)
13510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13511}
13512
13513// TextDetectionParams: Parameters for text detections. This is used to
13514// control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.
13515type TextDetectionParams struct {
13516	// EnableTextDetectionConfidenceScore: By default, Cloud Vision API only
13517	// includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the
13518	// flag to true to include confidence score for TEXT_DETECTION as well.
13519	EnableTextDetectionConfidenceScore bool `json:"enableTextDetectionConfidenceScore,omitempty"`
13520
13521	// ForceSendFields is a list of field names (e.g.
13522	// "EnableTextDetectionConfidenceScore") to unconditionally include in
13523	// API requests. By default, fields with empty or default values are
13524	// omitted from API requests. However, any non-pointer, non-interface
13525	// field appearing in ForceSendFields will be sent to the server
13526	// regardless of whether the field is empty or not. This may be used to
13527	// include empty fields in Patch requests.
13528	ForceSendFields []string `json:"-"`
13529
13530	// NullFields is a list of field names (e.g.
13531	// "EnableTextDetectionConfidenceScore") to include in API requests with
13532	// the JSON null value. By default, fields with empty values are omitted
13533	// from API requests. However, any field with an empty value appearing
13534	// in NullFields will be sent to the server as null. It is an error if a
13535	// field in this list has a non-empty value. This may be used to include
13536	// null fields in Patch requests.
13537	NullFields []string `json:"-"`
13538}
13539
13540func (s *TextDetectionParams) MarshalJSON() ([]byte, error) {
13541	type NoMethod TextDetectionParams
13542	raw := NoMethod(*s)
13543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13544}
13545
13546// TextProperty: Additional information detected on the structural
13547// component.
13548type TextProperty struct {
13549	// DetectedBreak: Detected start or end of a text segment.
13550	DetectedBreak *DetectedBreak `json:"detectedBreak,omitempty"`
13551
13552	// DetectedLanguages: A list of detected languages together with
13553	// confidence.
13554	DetectedLanguages []*DetectedLanguage `json:"detectedLanguages,omitempty"`
13555
13556	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
13557	// unconditionally include in API requests. By default, fields with
13558	// empty or default values are omitted from API requests. However, any
13559	// non-pointer, non-interface field appearing in ForceSendFields will be
13560	// sent to the server regardless of whether the field is empty or not.
13561	// This may be used to include empty fields in Patch requests.
13562	ForceSendFields []string `json:"-"`
13563
13564	// NullFields is a list of field names (e.g. "DetectedBreak") to include
13565	// in API requests with the JSON null value. By default, fields with
13566	// empty values are omitted from API requests. However, any field with
13567	// an empty value appearing in NullFields will be sent to the server as
13568	// null. It is an error if a field in this list has a non-empty value.
13569	// This may be used to include null fields in Patch requests.
13570	NullFields []string `json:"-"`
13571}
13572
13573func (s *TextProperty) MarshalJSON() ([]byte, error) {
13574	type NoMethod TextProperty
13575	raw := NoMethod(*s)
13576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13577}
13578
13579// Vertex: A vertex represents a 2D point in the image. NOTE: the vertex
13580// coordinates are in the same scale as the original image.
13581type Vertex struct {
13582	// X: X coordinate.
13583	X int64 `json:"x,omitempty"`
13584
13585	// Y: Y coordinate.
13586	Y int64 `json:"y,omitempty"`
13587
13588	// ForceSendFields is a list of field names (e.g. "X") to
13589	// unconditionally include in API requests. By default, fields with
13590	// empty or default values are omitted from API requests. However, any
13591	// non-pointer, non-interface field appearing in ForceSendFields will be
13592	// sent to the server regardless of whether the field is empty or not.
13593	// This may be used to include empty fields in Patch requests.
13594	ForceSendFields []string `json:"-"`
13595
13596	// NullFields is a list of field names (e.g. "X") to include in API
13597	// requests with the JSON null value. By default, fields with empty
13598	// values are omitted from API requests. However, any field with an
13599	// empty value appearing in NullFields will be sent to the server as
13600	// null. It is an error if a field in this list has a non-empty value.
13601	// This may be used to include null fields in Patch requests.
13602	NullFields []string `json:"-"`
13603}
13604
13605func (s *Vertex) MarshalJSON() ([]byte, error) {
13606	type NoMethod Vertex
13607	raw := NoMethod(*s)
13608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13609}
13610
13611// WebDetection: Relevant information for the image from the Internet.
13612type WebDetection struct {
13613	// BestGuessLabels: The service's best guess as to the topic of the
13614	// request image. Inferred from similar images on the open web.
13615	BestGuessLabels []*WebLabel `json:"bestGuessLabels,omitempty"`
13616
13617	// FullMatchingImages: Fully matching images from the Internet. Can
13618	// include resized copies of the query image.
13619	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
13620
13621	// PagesWithMatchingImages: Web pages containing the matching images
13622	// from the Internet.
13623	PagesWithMatchingImages []*WebPage `json:"pagesWithMatchingImages,omitempty"`
13624
13625	// PartialMatchingImages: Partial matching images from the Internet.
13626	// Those images are similar enough to share some key-point features. For
13627	// example an original image will likely have partial matching for its
13628	// crops.
13629	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
13630
13631	// VisuallySimilarImages: The visually similar image results.
13632	VisuallySimilarImages []*WebImage `json:"visuallySimilarImages,omitempty"`
13633
13634	// WebEntities: Deduced entities from similar images on the Internet.
13635	WebEntities []*WebEntity `json:"webEntities,omitempty"`
13636
13637	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
13638	// unconditionally include in API requests. By default, fields with
13639	// empty or default values are omitted from API requests. However, any
13640	// non-pointer, non-interface field appearing in ForceSendFields will be
13641	// sent to the server regardless of whether the field is empty or not.
13642	// This may be used to include empty fields in Patch requests.
13643	ForceSendFields []string `json:"-"`
13644
13645	// NullFields is a list of field names (e.g. "BestGuessLabels") to
13646	// include in API requests with the JSON null value. By default, fields
13647	// with empty values are omitted from API requests. However, any field
13648	// with an empty value appearing in NullFields will be sent to the
13649	// server as null. It is an error if a field in this list has a
13650	// non-empty value. This may be used to include null fields in Patch
13651	// requests.
13652	NullFields []string `json:"-"`
13653}
13654
13655func (s *WebDetection) MarshalJSON() ([]byte, error) {
13656	type NoMethod WebDetection
13657	raw := NoMethod(*s)
13658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13659}
13660
13661// WebDetectionParams: Parameters for web detection request.
13662type WebDetectionParams struct {
13663	// IncludeGeoResults: Whether to include results derived from the geo
13664	// information in the image.
13665	IncludeGeoResults bool `json:"includeGeoResults,omitempty"`
13666
13667	// ForceSendFields is a list of field names (e.g. "IncludeGeoResults")
13668	// to unconditionally include in API requests. By default, fields with
13669	// empty or default values are omitted from API requests. However, any
13670	// non-pointer, non-interface field appearing in ForceSendFields will be
13671	// sent to the server regardless of whether the field is empty or not.
13672	// This may be used to include empty fields in Patch requests.
13673	ForceSendFields []string `json:"-"`
13674
13675	// NullFields is a list of field names (e.g. "IncludeGeoResults") to
13676	// include in API requests with the JSON null value. By default, fields
13677	// with empty values are omitted from API requests. However, any field
13678	// with an empty value appearing in NullFields will be sent to the
13679	// server as null. It is an error if a field in this list has a
13680	// non-empty value. This may be used to include null fields in Patch
13681	// requests.
13682	NullFields []string `json:"-"`
13683}
13684
13685func (s *WebDetectionParams) MarshalJSON() ([]byte, error) {
13686	type NoMethod WebDetectionParams
13687	raw := NoMethod(*s)
13688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13689}
13690
13691// WebEntity: Entity deduced from similar images on the Internet.
13692type WebEntity struct {
13693	// Description: Canonical description of the entity, in English.
13694	Description string `json:"description,omitempty"`
13695
13696	// EntityId: Opaque entity ID.
13697	EntityId string `json:"entityId,omitempty"`
13698
13699	// Score: Overall relevancy score for the entity. Not normalized and not
13700	// comparable across different image queries.
13701	Score float64 `json:"score,omitempty"`
13702
13703	// ForceSendFields is a list of field names (e.g. "Description") to
13704	// unconditionally include in API requests. By default, fields with
13705	// empty or default values are omitted from API requests. However, any
13706	// non-pointer, non-interface field appearing in ForceSendFields will be
13707	// sent to the server regardless of whether the field is empty or not.
13708	// This may be used to include empty fields in Patch requests.
13709	ForceSendFields []string `json:"-"`
13710
13711	// NullFields is a list of field names (e.g. "Description") to include
13712	// in API requests with the JSON null value. By default, fields with
13713	// empty values are omitted from API requests. However, any field with
13714	// an empty value appearing in NullFields will be sent to the server as
13715	// null. It is an error if a field in this list has a non-empty value.
13716	// This may be used to include null fields in Patch requests.
13717	NullFields []string `json:"-"`
13718}
13719
13720func (s *WebEntity) MarshalJSON() ([]byte, error) {
13721	type NoMethod WebEntity
13722	raw := NoMethod(*s)
13723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13724}
13725
13726func (s *WebEntity) UnmarshalJSON(data []byte) error {
13727	type NoMethod WebEntity
13728	var s1 struct {
13729		Score gensupport.JSONFloat64 `json:"score"`
13730		*NoMethod
13731	}
13732	s1.NoMethod = (*NoMethod)(s)
13733	if err := json.Unmarshal(data, &s1); err != nil {
13734		return err
13735	}
13736	s.Score = float64(s1.Score)
13737	return nil
13738}
13739
13740// WebImage: Metadata for online images.
13741type WebImage struct {
13742	// Score: (Deprecated) Overall relevancy score for the image.
13743	Score float64 `json:"score,omitempty"`
13744
13745	// Url: The result image URL.
13746	Url string `json:"url,omitempty"`
13747
13748	// ForceSendFields is a list of field names (e.g. "Score") to
13749	// unconditionally include in API requests. By default, fields with
13750	// empty or default values are omitted from API requests. However, any
13751	// non-pointer, non-interface field appearing in ForceSendFields will be
13752	// sent to the server regardless of whether the field is empty or not.
13753	// This may be used to include empty fields in Patch requests.
13754	ForceSendFields []string `json:"-"`
13755
13756	// NullFields is a list of field names (e.g. "Score") to include in API
13757	// requests with the JSON null value. By default, fields with empty
13758	// values are omitted from API requests. However, any field with an
13759	// empty value appearing in NullFields will be sent to the server as
13760	// null. It is an error if a field in this list has a non-empty value.
13761	// This may be used to include null fields in Patch requests.
13762	NullFields []string `json:"-"`
13763}
13764
13765func (s *WebImage) MarshalJSON() ([]byte, error) {
13766	type NoMethod WebImage
13767	raw := NoMethod(*s)
13768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13769}
13770
13771func (s *WebImage) UnmarshalJSON(data []byte) error {
13772	type NoMethod WebImage
13773	var s1 struct {
13774		Score gensupport.JSONFloat64 `json:"score"`
13775		*NoMethod
13776	}
13777	s1.NoMethod = (*NoMethod)(s)
13778	if err := json.Unmarshal(data, &s1); err != nil {
13779		return err
13780	}
13781	s.Score = float64(s1.Score)
13782	return nil
13783}
13784
13785// WebLabel: Label to provide extra metadata for the web detection.
13786type WebLabel struct {
13787	// Label: Label for extra metadata.
13788	Label string `json:"label,omitempty"`
13789
13790	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
13791	// or "sr-Latn". For more information, see
13792	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13793	LanguageCode string `json:"languageCode,omitempty"`
13794
13795	// ForceSendFields is a list of field names (e.g. "Label") to
13796	// unconditionally include in API requests. By default, fields with
13797	// empty or default values are omitted from API requests. However, any
13798	// non-pointer, non-interface field appearing in ForceSendFields will be
13799	// sent to the server regardless of whether the field is empty or not.
13800	// This may be used to include empty fields in Patch requests.
13801	ForceSendFields []string `json:"-"`
13802
13803	// NullFields is a list of field names (e.g. "Label") to include in API
13804	// requests with the JSON null value. By default, fields with empty
13805	// values are omitted from API requests. However, any field with an
13806	// empty value appearing in NullFields will be sent to the server as
13807	// null. It is an error if a field in this list has a non-empty value.
13808	// This may be used to include null fields in Patch requests.
13809	NullFields []string `json:"-"`
13810}
13811
13812func (s *WebLabel) MarshalJSON() ([]byte, error) {
13813	type NoMethod WebLabel
13814	raw := NoMethod(*s)
13815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13816}
13817
13818// WebPage: Metadata for web pages.
13819type WebPage struct {
13820	// FullMatchingImages: Fully matching images on the page. Can include
13821	// resized copies of the query image.
13822	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
13823
13824	// PageTitle: Title for the web page, may contain HTML markups.
13825	PageTitle string `json:"pageTitle,omitempty"`
13826
13827	// PartialMatchingImages: Partial matching images on the page. Those
13828	// images are similar enough to share some key-point features. For
13829	// example an original image will likely have partial matching for its
13830	// crops.
13831	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
13832
13833	// Score: (Deprecated) Overall relevancy score for the web page.
13834	Score float64 `json:"score,omitempty"`
13835
13836	// Url: The result web page URL.
13837	Url string `json:"url,omitempty"`
13838
13839	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
13840	// to unconditionally include in API requests. By default, fields with
13841	// empty or default values are omitted from API requests. However, any
13842	// non-pointer, non-interface field appearing in ForceSendFields will be
13843	// sent to the server regardless of whether the field is empty or not.
13844	// This may be used to include empty fields in Patch requests.
13845	ForceSendFields []string `json:"-"`
13846
13847	// NullFields is a list of field names (e.g. "FullMatchingImages") to
13848	// include in API requests with the JSON null value. By default, fields
13849	// with empty values are omitted from API requests. However, any field
13850	// with an empty value appearing in NullFields will be sent to the
13851	// server as null. It is an error if a field in this list has a
13852	// non-empty value. This may be used to include null fields in Patch
13853	// requests.
13854	NullFields []string `json:"-"`
13855}
13856
13857func (s *WebPage) MarshalJSON() ([]byte, error) {
13858	type NoMethod WebPage
13859	raw := NoMethod(*s)
13860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13861}
13862
13863func (s *WebPage) UnmarshalJSON(data []byte) error {
13864	type NoMethod WebPage
13865	var s1 struct {
13866		Score gensupport.JSONFloat64 `json:"score"`
13867		*NoMethod
13868	}
13869	s1.NoMethod = (*NoMethod)(s)
13870	if err := json.Unmarshal(data, &s1); err != nil {
13871		return err
13872	}
13873	s.Score = float64(s1.Score)
13874	return nil
13875}
13876
13877// Word: A word representation.
13878type Word struct {
13879	// BoundingBox: The bounding box for the word. The vertices are in the
13880	// order of top-left, top-right, bottom-right, bottom-left. When a
13881	// rotation of the bounding box is detected the rotation is represented
13882	// as around the top-left corner as defined when the text is read in the
13883	// 'natural' orientation. For example: * when the text is horizontal it
13884	// might look like: 0----1 | | 3----2 * when it's rotated 180 degrees
13885	// around the top-left corner it becomes: 2----3 | | 1----0 and the
13886	// vertex order will still be (0, 1, 2, 3).
13887	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
13888
13889	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
13890	Confidence float64 `json:"confidence,omitempty"`
13891
13892	// Property: Additional information detected for the word.
13893	Property *TextProperty `json:"property,omitempty"`
13894
13895	// Symbols: List of symbols in the word. The order of the symbols
13896	// follows the natural reading order.
13897	Symbols []*Symbol `json:"symbols,omitempty"`
13898
13899	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
13900	// unconditionally include in API requests. By default, fields with
13901	// empty or default values are omitted from API requests. However, any
13902	// non-pointer, non-interface field appearing in ForceSendFields will be
13903	// sent to the server regardless of whether the field is empty or not.
13904	// This may be used to include empty fields in Patch requests.
13905	ForceSendFields []string `json:"-"`
13906
13907	// NullFields is a list of field names (e.g. "BoundingBox") to include
13908	// in API requests with the JSON null value. By default, fields with
13909	// empty values are omitted from API requests. However, any field with
13910	// an empty value appearing in NullFields will be sent to the server as
13911	// null. It is an error if a field in this list has a non-empty value.
13912	// This may be used to include null fields in Patch requests.
13913	NullFields []string `json:"-"`
13914}
13915
13916func (s *Word) MarshalJSON() ([]byte, error) {
13917	type NoMethod Word
13918	raw := NoMethod(*s)
13919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13920}
13921
13922func (s *Word) UnmarshalJSON(data []byte) error {
13923	type NoMethod Word
13924	var s1 struct {
13925		Confidence gensupport.JSONFloat64 `json:"confidence"`
13926		*NoMethod
13927	}
13928	s1.NoMethod = (*NoMethod)(s)
13929	if err := json.Unmarshal(data, &s1); err != nil {
13930		return err
13931	}
13932	s.Confidence = float64(s1.Confidence)
13933	return nil
13934}
13935
13936// method id "vision.files.annotate":
13937
13938type FilesAnnotateCall struct {
13939	s                         *Service
13940	batchannotatefilesrequest *BatchAnnotateFilesRequest
13941	urlParams_                gensupport.URLParams
13942	ctx_                      context.Context
13943	header_                   http.Header
13944}
13945
13946// Annotate: Service that performs image detection and annotation for a
13947// batch of files. Now only "application/pdf", "image/tiff" and
13948// "image/gif" are supported. This service will extract at most 5
13949// (customers can specify which 5 in AnnotateFileRequest.pages) frames
13950// (gif) or pages (pdf or tiff) from each file provided and perform
13951// detection and annotation for each image extracted.
13952func (r *FilesService) Annotate(batchannotatefilesrequest *BatchAnnotateFilesRequest) *FilesAnnotateCall {
13953	c := &FilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13954	c.batchannotatefilesrequest = batchannotatefilesrequest
13955	return c
13956}
13957
13958// Fields allows partial responses to be retrieved. See
13959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13960// for more information.
13961func (c *FilesAnnotateCall) Fields(s ...googleapi.Field) *FilesAnnotateCall {
13962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13963	return c
13964}
13965
13966// Context sets the context to be used in this call's Do method. Any
13967// pending HTTP request will be aborted if the provided context is
13968// canceled.
13969func (c *FilesAnnotateCall) Context(ctx context.Context) *FilesAnnotateCall {
13970	c.ctx_ = ctx
13971	return c
13972}
13973
13974// Header returns an http.Header that can be modified by the caller to
13975// add HTTP headers to the request.
13976func (c *FilesAnnotateCall) Header() http.Header {
13977	if c.header_ == nil {
13978		c.header_ = make(http.Header)
13979	}
13980	return c.header_
13981}
13982
13983func (c *FilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
13984	reqHeaders := make(http.Header)
13985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
13986	for k, v := range c.header_ {
13987		reqHeaders[k] = v
13988	}
13989	reqHeaders.Set("User-Agent", c.s.userAgent())
13990	var body io.Reader = nil
13991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
13992	if err != nil {
13993		return nil, err
13994	}
13995	reqHeaders.Set("Content-Type", "application/json")
13996	c.urlParams_.Set("alt", alt)
13997	c.urlParams_.Set("prettyPrint", "false")
13998	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:annotate")
13999	urls += "?" + c.urlParams_.Encode()
14000	req, err := http.NewRequest("POST", urls, body)
14001	if err != nil {
14002		return nil, err
14003	}
14004	req.Header = reqHeaders
14005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14006}
14007
14008// Do executes the "vision.files.annotate" call.
14009// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
14010// Any non-2xx status code is an error. Response headers are in either
14011// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
14012// was returned at all) in error.(*googleapi.Error).Header. Use
14013// googleapi.IsNotModified to check whether the returned error was
14014// because http.StatusNotModified was returned.
14015func (c *FilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
14016	gensupport.SetOptions(c.urlParams_, opts...)
14017	res, err := c.doRequest("json")
14018	if res != nil && res.StatusCode == http.StatusNotModified {
14019		if res.Body != nil {
14020			res.Body.Close()
14021		}
14022		return nil, &googleapi.Error{
14023			Code:   res.StatusCode,
14024			Header: res.Header,
14025		}
14026	}
14027	if err != nil {
14028		return nil, err
14029	}
14030	defer googleapi.CloseBody(res)
14031	if err := googleapi.CheckResponse(res); err != nil {
14032		return nil, err
14033	}
14034	ret := &BatchAnnotateFilesResponse{
14035		ServerResponse: googleapi.ServerResponse{
14036			Header:         res.Header,
14037			HTTPStatusCode: res.StatusCode,
14038		},
14039	}
14040	target := &ret
14041	if err := gensupport.DecodeResponse(target, res); err != nil {
14042		return nil, err
14043	}
14044	return ret, nil
14045	// {
14046	//   "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.",
14047	//   "flatPath": "v1/files:annotate",
14048	//   "httpMethod": "POST",
14049	//   "id": "vision.files.annotate",
14050	//   "parameterOrder": [],
14051	//   "parameters": {},
14052	//   "path": "v1/files:annotate",
14053	//   "request": {
14054	//     "$ref": "BatchAnnotateFilesRequest"
14055	//   },
14056	//   "response": {
14057	//     "$ref": "BatchAnnotateFilesResponse"
14058	//   },
14059	//   "scopes": [
14060	//     "https://www.googleapis.com/auth/cloud-platform",
14061	//     "https://www.googleapis.com/auth/cloud-vision"
14062	//   ]
14063	// }
14064
14065}
14066
14067// method id "vision.files.asyncBatchAnnotate":
14068
14069type FilesAsyncBatchAnnotateCall struct {
14070	s                              *Service
14071	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
14072	urlParams_                     gensupport.URLParams
14073	ctx_                           context.Context
14074	header_                        http.Header
14075}
14076
14077// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14078// for a list of generic files, such as PDF files, which may contain
14079// multiple pages and multiple images per page. Progress and results can
14080// be retrieved through the `google.longrunning.Operations` interface.
14081// `Operation.metadata` contains `OperationMetadata` (metadata).
14082// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
14083// (results).
14084func (r *FilesService) AsyncBatchAnnotate(asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *FilesAsyncBatchAnnotateCall {
14085	c := &FilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14086	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
14087	return c
14088}
14089
14090// Fields allows partial responses to be retrieved. See
14091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14092// for more information.
14093func (c *FilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *FilesAsyncBatchAnnotateCall {
14094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14095	return c
14096}
14097
14098// Context sets the context to be used in this call's Do method. Any
14099// pending HTTP request will be aborted if the provided context is
14100// canceled.
14101func (c *FilesAsyncBatchAnnotateCall) Context(ctx context.Context) *FilesAsyncBatchAnnotateCall {
14102	c.ctx_ = ctx
14103	return c
14104}
14105
14106// Header returns an http.Header that can be modified by the caller to
14107// add HTTP headers to the request.
14108func (c *FilesAsyncBatchAnnotateCall) Header() http.Header {
14109	if c.header_ == nil {
14110		c.header_ = make(http.Header)
14111	}
14112	return c.header_
14113}
14114
14115func (c *FilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
14116	reqHeaders := make(http.Header)
14117	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14118	for k, v := range c.header_ {
14119		reqHeaders[k] = v
14120	}
14121	reqHeaders.Set("User-Agent", c.s.userAgent())
14122	var body io.Reader = nil
14123	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
14124	if err != nil {
14125		return nil, err
14126	}
14127	reqHeaders.Set("Content-Type", "application/json")
14128	c.urlParams_.Set("alt", alt)
14129	c.urlParams_.Set("prettyPrint", "false")
14130	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:asyncBatchAnnotate")
14131	urls += "?" + c.urlParams_.Encode()
14132	req, err := http.NewRequest("POST", urls, body)
14133	if err != nil {
14134		return nil, err
14135	}
14136	req.Header = reqHeaders
14137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14138}
14139
14140// Do executes the "vision.files.asyncBatchAnnotate" call.
14141// Exactly one of *Operation or error will be non-nil. Any non-2xx
14142// status code is an error. Response headers are in either
14143// *Operation.ServerResponse.Header or (if a response was returned at
14144// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14145// to check whether the returned error was because
14146// http.StatusNotModified was returned.
14147func (c *FilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14148	gensupport.SetOptions(c.urlParams_, opts...)
14149	res, err := c.doRequest("json")
14150	if res != nil && res.StatusCode == http.StatusNotModified {
14151		if res.Body != nil {
14152			res.Body.Close()
14153		}
14154		return nil, &googleapi.Error{
14155			Code:   res.StatusCode,
14156			Header: res.Header,
14157		}
14158	}
14159	if err != nil {
14160		return nil, err
14161	}
14162	defer googleapi.CloseBody(res)
14163	if err := googleapi.CheckResponse(res); err != nil {
14164		return nil, err
14165	}
14166	ret := &Operation{
14167		ServerResponse: googleapi.ServerResponse{
14168			Header:         res.Header,
14169			HTTPStatusCode: res.StatusCode,
14170		},
14171	}
14172	target := &ret
14173	if err := gensupport.DecodeResponse(target, res); err != nil {
14174		return nil, err
14175	}
14176	return ret, nil
14177	// {
14178	//   "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).",
14179	//   "flatPath": "v1/files:asyncBatchAnnotate",
14180	//   "httpMethod": "POST",
14181	//   "id": "vision.files.asyncBatchAnnotate",
14182	//   "parameterOrder": [],
14183	//   "parameters": {},
14184	//   "path": "v1/files:asyncBatchAnnotate",
14185	//   "request": {
14186	//     "$ref": "AsyncBatchAnnotateFilesRequest"
14187	//   },
14188	//   "response": {
14189	//     "$ref": "Operation"
14190	//   },
14191	//   "scopes": [
14192	//     "https://www.googleapis.com/auth/cloud-platform",
14193	//     "https://www.googleapis.com/auth/cloud-vision"
14194	//   ]
14195	// }
14196
14197}
14198
14199// method id "vision.images.annotate":
14200
14201type ImagesAnnotateCall struct {
14202	s                          *Service
14203	batchannotateimagesrequest *BatchAnnotateImagesRequest
14204	urlParams_                 gensupport.URLParams
14205	ctx_                       context.Context
14206	header_                    http.Header
14207}
14208
14209// Annotate: Run image detection and annotation for a batch of images.
14210func (r *ImagesService) Annotate(batchannotateimagesrequest *BatchAnnotateImagesRequest) *ImagesAnnotateCall {
14211	c := &ImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14212	c.batchannotateimagesrequest = batchannotateimagesrequest
14213	return c
14214}
14215
14216// Fields allows partial responses to be retrieved. See
14217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14218// for more information.
14219func (c *ImagesAnnotateCall) Fields(s ...googleapi.Field) *ImagesAnnotateCall {
14220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14221	return c
14222}
14223
14224// Context sets the context to be used in this call's Do method. Any
14225// pending HTTP request will be aborted if the provided context is
14226// canceled.
14227func (c *ImagesAnnotateCall) Context(ctx context.Context) *ImagesAnnotateCall {
14228	c.ctx_ = ctx
14229	return c
14230}
14231
14232// Header returns an http.Header that can be modified by the caller to
14233// add HTTP headers to the request.
14234func (c *ImagesAnnotateCall) Header() http.Header {
14235	if c.header_ == nil {
14236		c.header_ = make(http.Header)
14237	}
14238	return c.header_
14239}
14240
14241func (c *ImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
14242	reqHeaders := make(http.Header)
14243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14244	for k, v := range c.header_ {
14245		reqHeaders[k] = v
14246	}
14247	reqHeaders.Set("User-Agent", c.s.userAgent())
14248	var body io.Reader = nil
14249	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
14250	if err != nil {
14251		return nil, err
14252	}
14253	reqHeaders.Set("Content-Type", "application/json")
14254	c.urlParams_.Set("alt", alt)
14255	c.urlParams_.Set("prettyPrint", "false")
14256	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:annotate")
14257	urls += "?" + c.urlParams_.Encode()
14258	req, err := http.NewRequest("POST", urls, body)
14259	if err != nil {
14260		return nil, err
14261	}
14262	req.Header = reqHeaders
14263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14264}
14265
14266// Do executes the "vision.images.annotate" call.
14267// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
14268// Any non-2xx status code is an error. Response headers are in either
14269// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
14270// was returned at all) in error.(*googleapi.Error).Header. Use
14271// googleapi.IsNotModified to check whether the returned error was
14272// because http.StatusNotModified was returned.
14273func (c *ImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
14274	gensupport.SetOptions(c.urlParams_, opts...)
14275	res, err := c.doRequest("json")
14276	if res != nil && res.StatusCode == http.StatusNotModified {
14277		if res.Body != nil {
14278			res.Body.Close()
14279		}
14280		return nil, &googleapi.Error{
14281			Code:   res.StatusCode,
14282			Header: res.Header,
14283		}
14284	}
14285	if err != nil {
14286		return nil, err
14287	}
14288	defer googleapi.CloseBody(res)
14289	if err := googleapi.CheckResponse(res); err != nil {
14290		return nil, err
14291	}
14292	ret := &BatchAnnotateImagesResponse{
14293		ServerResponse: googleapi.ServerResponse{
14294			Header:         res.Header,
14295			HTTPStatusCode: res.StatusCode,
14296		},
14297	}
14298	target := &ret
14299	if err := gensupport.DecodeResponse(target, res); err != nil {
14300		return nil, err
14301	}
14302	return ret, nil
14303	// {
14304	//   "description": "Run image detection and annotation for a batch of images.",
14305	//   "flatPath": "v1/images:annotate",
14306	//   "httpMethod": "POST",
14307	//   "id": "vision.images.annotate",
14308	//   "parameterOrder": [],
14309	//   "parameters": {},
14310	//   "path": "v1/images:annotate",
14311	//   "request": {
14312	//     "$ref": "BatchAnnotateImagesRequest"
14313	//   },
14314	//   "response": {
14315	//     "$ref": "BatchAnnotateImagesResponse"
14316	//   },
14317	//   "scopes": [
14318	//     "https://www.googleapis.com/auth/cloud-platform",
14319	//     "https://www.googleapis.com/auth/cloud-vision"
14320	//   ]
14321	// }
14322
14323}
14324
14325// method id "vision.images.asyncBatchAnnotate":
14326
14327type ImagesAsyncBatchAnnotateCall struct {
14328	s                               *Service
14329	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
14330	urlParams_                      gensupport.URLParams
14331	ctx_                            context.Context
14332	header_                         http.Header
14333}
14334
14335// AsyncBatchAnnotate: Run asynchronous image detection and annotation
14336// for a list of images. Progress and results can be retrieved through
14337// the `google.longrunning.Operations` interface. `Operation.metadata`
14338// contains `OperationMetadata` (metadata). `Operation.response`
14339// contains `AsyncBatchAnnotateImagesResponse` (results). This service
14340// will write image annotation outputs to json files in customer GCS
14341// bucket, each json file containing BatchAnnotateImagesResponse proto.
14342func (r *ImagesService) AsyncBatchAnnotate(asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ImagesAsyncBatchAnnotateCall {
14343	c := &ImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14344	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
14345	return c
14346}
14347
14348// Fields allows partial responses to be retrieved. See
14349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14350// for more information.
14351func (c *ImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ImagesAsyncBatchAnnotateCall {
14352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14353	return c
14354}
14355
14356// Context sets the context to be used in this call's Do method. Any
14357// pending HTTP request will be aborted if the provided context is
14358// canceled.
14359func (c *ImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ImagesAsyncBatchAnnotateCall {
14360	c.ctx_ = ctx
14361	return c
14362}
14363
14364// Header returns an http.Header that can be modified by the caller to
14365// add HTTP headers to the request.
14366func (c *ImagesAsyncBatchAnnotateCall) Header() http.Header {
14367	if c.header_ == nil {
14368		c.header_ = make(http.Header)
14369	}
14370	return c.header_
14371}
14372
14373func (c *ImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
14374	reqHeaders := make(http.Header)
14375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14376	for k, v := range c.header_ {
14377		reqHeaders[k] = v
14378	}
14379	reqHeaders.Set("User-Agent", c.s.userAgent())
14380	var body io.Reader = nil
14381	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
14382	if err != nil {
14383		return nil, err
14384	}
14385	reqHeaders.Set("Content-Type", "application/json")
14386	c.urlParams_.Set("alt", alt)
14387	c.urlParams_.Set("prettyPrint", "false")
14388	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:asyncBatchAnnotate")
14389	urls += "?" + c.urlParams_.Encode()
14390	req, err := http.NewRequest("POST", urls, body)
14391	if err != nil {
14392		return nil, err
14393	}
14394	req.Header = reqHeaders
14395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14396}
14397
14398// Do executes the "vision.images.asyncBatchAnnotate" call.
14399// Exactly one of *Operation or error will be non-nil. Any non-2xx
14400// status code is an error. Response headers are in either
14401// *Operation.ServerResponse.Header or (if a response was returned at
14402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14403// to check whether the returned error was because
14404// http.StatusNotModified was returned.
14405func (c *ImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14406	gensupport.SetOptions(c.urlParams_, opts...)
14407	res, err := c.doRequest("json")
14408	if res != nil && res.StatusCode == http.StatusNotModified {
14409		if res.Body != nil {
14410			res.Body.Close()
14411		}
14412		return nil, &googleapi.Error{
14413			Code:   res.StatusCode,
14414			Header: res.Header,
14415		}
14416	}
14417	if err != nil {
14418		return nil, err
14419	}
14420	defer googleapi.CloseBody(res)
14421	if err := googleapi.CheckResponse(res); err != nil {
14422		return nil, err
14423	}
14424	ret := &Operation{
14425		ServerResponse: googleapi.ServerResponse{
14426			Header:         res.Header,
14427			HTTPStatusCode: res.StatusCode,
14428		},
14429	}
14430	target := &ret
14431	if err := gensupport.DecodeResponse(target, res); err != nil {
14432		return nil, err
14433	}
14434	return ret, nil
14435	// {
14436	//   "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.",
14437	//   "flatPath": "v1/images:asyncBatchAnnotate",
14438	//   "httpMethod": "POST",
14439	//   "id": "vision.images.asyncBatchAnnotate",
14440	//   "parameterOrder": [],
14441	//   "parameters": {},
14442	//   "path": "v1/images:asyncBatchAnnotate",
14443	//   "request": {
14444	//     "$ref": "AsyncBatchAnnotateImagesRequest"
14445	//   },
14446	//   "response": {
14447	//     "$ref": "Operation"
14448	//   },
14449	//   "scopes": [
14450	//     "https://www.googleapis.com/auth/cloud-platform",
14451	//     "https://www.googleapis.com/auth/cloud-vision"
14452	//   ]
14453	// }
14454
14455}
14456
14457// method id "vision.locations.operations.get":
14458
14459type LocationsOperationsGetCall struct {
14460	s            *Service
14461	name         string
14462	urlParams_   gensupport.URLParams
14463	ifNoneMatch_ string
14464	ctx_         context.Context
14465	header_      http.Header
14466}
14467
14468// Get: Gets the latest state of a long-running operation. Clients can
14469// use this method to poll the operation result at intervals as
14470// recommended by the API service.
14471//
14472// - name: The name of the operation resource.
14473func (r *LocationsOperationsService) Get(name string) *LocationsOperationsGetCall {
14474	c := &LocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14475	c.name = name
14476	return c
14477}
14478
14479// Fields allows partial responses to be retrieved. See
14480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14481// for more information.
14482func (c *LocationsOperationsGetCall) Fields(s ...googleapi.Field) *LocationsOperationsGetCall {
14483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14484	return c
14485}
14486
14487// IfNoneMatch sets the optional parameter which makes the operation
14488// fail if the object's ETag matches the given value. This is useful for
14489// getting updates only after the object has changed since the last
14490// request. Use googleapi.IsNotModified to check whether the response
14491// error from Do is the result of In-None-Match.
14492func (c *LocationsOperationsGetCall) IfNoneMatch(entityTag string) *LocationsOperationsGetCall {
14493	c.ifNoneMatch_ = entityTag
14494	return c
14495}
14496
14497// Context sets the context to be used in this call's Do method. Any
14498// pending HTTP request will be aborted if the provided context is
14499// canceled.
14500func (c *LocationsOperationsGetCall) Context(ctx context.Context) *LocationsOperationsGetCall {
14501	c.ctx_ = ctx
14502	return c
14503}
14504
14505// Header returns an http.Header that can be modified by the caller to
14506// add HTTP headers to the request.
14507func (c *LocationsOperationsGetCall) Header() http.Header {
14508	if c.header_ == nil {
14509		c.header_ = make(http.Header)
14510	}
14511	return c.header_
14512}
14513
14514func (c *LocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
14515	reqHeaders := make(http.Header)
14516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14517	for k, v := range c.header_ {
14518		reqHeaders[k] = v
14519	}
14520	reqHeaders.Set("User-Agent", c.s.userAgent())
14521	if c.ifNoneMatch_ != "" {
14522		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14523	}
14524	var body io.Reader = nil
14525	c.urlParams_.Set("alt", alt)
14526	c.urlParams_.Set("prettyPrint", "false")
14527	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
14528	urls += "?" + c.urlParams_.Encode()
14529	req, err := http.NewRequest("GET", urls, body)
14530	if err != nil {
14531		return nil, err
14532	}
14533	req.Header = reqHeaders
14534	googleapi.Expand(req.URL, map[string]string{
14535		"name": c.name,
14536	})
14537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14538}
14539
14540// Do executes the "vision.locations.operations.get" call.
14541// Exactly one of *Operation or error will be non-nil. Any non-2xx
14542// status code is an error. Response headers are in either
14543// *Operation.ServerResponse.Header or (if a response was returned at
14544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14545// to check whether the returned error was because
14546// http.StatusNotModified was returned.
14547func (c *LocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14548	gensupport.SetOptions(c.urlParams_, opts...)
14549	res, err := c.doRequest("json")
14550	if res != nil && res.StatusCode == http.StatusNotModified {
14551		if res.Body != nil {
14552			res.Body.Close()
14553		}
14554		return nil, &googleapi.Error{
14555			Code:   res.StatusCode,
14556			Header: res.Header,
14557		}
14558	}
14559	if err != nil {
14560		return nil, err
14561	}
14562	defer googleapi.CloseBody(res)
14563	if err := googleapi.CheckResponse(res); err != nil {
14564		return nil, err
14565	}
14566	ret := &Operation{
14567		ServerResponse: googleapi.ServerResponse{
14568			Header:         res.Header,
14569			HTTPStatusCode: res.StatusCode,
14570		},
14571	}
14572	target := &ret
14573	if err := gensupport.DecodeResponse(target, res); err != nil {
14574		return nil, err
14575	}
14576	return ret, nil
14577	// {
14578	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
14579	//   "flatPath": "v1/locations/{locationsId}/operations/{operationsId}",
14580	//   "httpMethod": "GET",
14581	//   "id": "vision.locations.operations.get",
14582	//   "parameterOrder": [
14583	//     "name"
14584	//   ],
14585	//   "parameters": {
14586	//     "name": {
14587	//       "description": "The name of the operation resource.",
14588	//       "location": "path",
14589	//       "pattern": "^locations/[^/]+/operations/[^/]+$",
14590	//       "required": true,
14591	//       "type": "string"
14592	//     }
14593	//   },
14594	//   "path": "v1/{+name}",
14595	//   "response": {
14596	//     "$ref": "Operation"
14597	//   },
14598	//   "scopes": [
14599	//     "https://www.googleapis.com/auth/cloud-platform",
14600	//     "https://www.googleapis.com/auth/cloud-vision"
14601	//   ]
14602	// }
14603
14604}
14605
14606// method id "vision.operations.cancel":
14607
14608type OperationsCancelCall struct {
14609	s                      *Service
14610	name                   string
14611	canceloperationrequest *CancelOperationRequest
14612	urlParams_             gensupport.URLParams
14613	ctx_                   context.Context
14614	header_                http.Header
14615}
14616
14617// Cancel: Starts asynchronous cancellation on a long-running operation.
14618// The server makes a best effort to cancel the operation, but success
14619// is not guaranteed. If the server doesn't support this method, it
14620// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
14621// Operations.GetOperation or other methods to check whether the
14622// cancellation succeeded or whether the operation completed despite
14623// cancellation. On successful cancellation, the operation is not
14624// deleted; instead, it becomes an operation with an Operation.error
14625// value with a google.rpc.Status.code of 1, corresponding to
14626// `Code.CANCELLED`.
14627//
14628// - name: The name of the operation resource to be cancelled.
14629func (r *OperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *OperationsCancelCall {
14630	c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14631	c.name = name
14632	c.canceloperationrequest = canceloperationrequest
14633	return c
14634}
14635
14636// Fields allows partial responses to be retrieved. See
14637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14638// for more information.
14639func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall {
14640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14641	return c
14642}
14643
14644// Context sets the context to be used in this call's Do method. Any
14645// pending HTTP request will be aborted if the provided context is
14646// canceled.
14647func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall {
14648	c.ctx_ = ctx
14649	return c
14650}
14651
14652// Header returns an http.Header that can be modified by the caller to
14653// add HTTP headers to the request.
14654func (c *OperationsCancelCall) Header() http.Header {
14655	if c.header_ == nil {
14656		c.header_ = make(http.Header)
14657	}
14658	return c.header_
14659}
14660
14661func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) {
14662	reqHeaders := make(http.Header)
14663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14664	for k, v := range c.header_ {
14665		reqHeaders[k] = v
14666	}
14667	reqHeaders.Set("User-Agent", c.s.userAgent())
14668	var body io.Reader = nil
14669	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
14670	if err != nil {
14671		return nil, err
14672	}
14673	reqHeaders.Set("Content-Type", "application/json")
14674	c.urlParams_.Set("alt", alt)
14675	c.urlParams_.Set("prettyPrint", "false")
14676	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
14677	urls += "?" + c.urlParams_.Encode()
14678	req, err := http.NewRequest("POST", urls, body)
14679	if err != nil {
14680		return nil, err
14681	}
14682	req.Header = reqHeaders
14683	googleapi.Expand(req.URL, map[string]string{
14684		"name": c.name,
14685	})
14686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14687}
14688
14689// Do executes the "vision.operations.cancel" call.
14690// Exactly one of *Empty or error will be non-nil. Any non-2xx status
14691// code is an error. Response headers are in either
14692// *Empty.ServerResponse.Header or (if a response was returned at all)
14693// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14694// check whether the returned error was because http.StatusNotModified
14695// was returned.
14696func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
14697	gensupport.SetOptions(c.urlParams_, opts...)
14698	res, err := c.doRequest("json")
14699	if res != nil && res.StatusCode == http.StatusNotModified {
14700		if res.Body != nil {
14701			res.Body.Close()
14702		}
14703		return nil, &googleapi.Error{
14704			Code:   res.StatusCode,
14705			Header: res.Header,
14706		}
14707	}
14708	if err != nil {
14709		return nil, err
14710	}
14711	defer googleapi.CloseBody(res)
14712	if err := googleapi.CheckResponse(res); err != nil {
14713		return nil, err
14714	}
14715	ret := &Empty{
14716		ServerResponse: googleapi.ServerResponse{
14717			Header:         res.Header,
14718			HTTPStatusCode: res.StatusCode,
14719		},
14720	}
14721	target := &ret
14722	if err := gensupport.DecodeResponse(target, res); err != nil {
14723		return nil, err
14724	}
14725	return ret, nil
14726	// {
14727	//   "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
14728	//   "flatPath": "v1/operations/{operationsId}:cancel",
14729	//   "httpMethod": "POST",
14730	//   "id": "vision.operations.cancel",
14731	//   "parameterOrder": [
14732	//     "name"
14733	//   ],
14734	//   "parameters": {
14735	//     "name": {
14736	//       "description": "The name of the operation resource to be cancelled.",
14737	//       "location": "path",
14738	//       "pattern": "^operations/.*$",
14739	//       "required": true,
14740	//       "type": "string"
14741	//     }
14742	//   },
14743	//   "path": "v1/{+name}:cancel",
14744	//   "request": {
14745	//     "$ref": "CancelOperationRequest"
14746	//   },
14747	//   "response": {
14748	//     "$ref": "Empty"
14749	//   },
14750	//   "scopes": [
14751	//     "https://www.googleapis.com/auth/cloud-platform",
14752	//     "https://www.googleapis.com/auth/cloud-vision"
14753	//   ]
14754	// }
14755
14756}
14757
14758// method id "vision.operations.delete":
14759
14760type OperationsDeleteCall struct {
14761	s          *Service
14762	name       string
14763	urlParams_ gensupport.URLParams
14764	ctx_       context.Context
14765	header_    http.Header
14766}
14767
14768// Delete: Deletes a long-running operation. This method indicates that
14769// the client is no longer interested in the operation result. It does
14770// not cancel the operation. If the server doesn't support this method,
14771// it returns `google.rpc.Code.UNIMPLEMENTED`.
14772//
14773// - name: The name of the operation resource to be deleted.
14774func (r *OperationsService) Delete(name string) *OperationsDeleteCall {
14775	c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14776	c.name = name
14777	return c
14778}
14779
14780// Fields allows partial responses to be retrieved. See
14781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14782// for more information.
14783func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall {
14784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14785	return c
14786}
14787
14788// Context sets the context to be used in this call's Do method. Any
14789// pending HTTP request will be aborted if the provided context is
14790// canceled.
14791func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall {
14792	c.ctx_ = ctx
14793	return c
14794}
14795
14796// Header returns an http.Header that can be modified by the caller to
14797// add HTTP headers to the request.
14798func (c *OperationsDeleteCall) Header() http.Header {
14799	if c.header_ == nil {
14800		c.header_ = make(http.Header)
14801	}
14802	return c.header_
14803}
14804
14805func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
14806	reqHeaders := make(http.Header)
14807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14808	for k, v := range c.header_ {
14809		reqHeaders[k] = v
14810	}
14811	reqHeaders.Set("User-Agent", c.s.userAgent())
14812	var body io.Reader = nil
14813	c.urlParams_.Set("alt", alt)
14814	c.urlParams_.Set("prettyPrint", "false")
14815	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
14816	urls += "?" + c.urlParams_.Encode()
14817	req, err := http.NewRequest("DELETE", urls, body)
14818	if err != nil {
14819		return nil, err
14820	}
14821	req.Header = reqHeaders
14822	googleapi.Expand(req.URL, map[string]string{
14823		"name": c.name,
14824	})
14825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14826}
14827
14828// Do executes the "vision.operations.delete" call.
14829// Exactly one of *Empty or error will be non-nil. Any non-2xx status
14830// code is an error. Response headers are in either
14831// *Empty.ServerResponse.Header or (if a response was returned at all)
14832// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14833// check whether the returned error was because http.StatusNotModified
14834// was returned.
14835func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
14836	gensupport.SetOptions(c.urlParams_, opts...)
14837	res, err := c.doRequest("json")
14838	if res != nil && res.StatusCode == http.StatusNotModified {
14839		if res.Body != nil {
14840			res.Body.Close()
14841		}
14842		return nil, &googleapi.Error{
14843			Code:   res.StatusCode,
14844			Header: res.Header,
14845		}
14846	}
14847	if err != nil {
14848		return nil, err
14849	}
14850	defer googleapi.CloseBody(res)
14851	if err := googleapi.CheckResponse(res); err != nil {
14852		return nil, err
14853	}
14854	ret := &Empty{
14855		ServerResponse: googleapi.ServerResponse{
14856			Header:         res.Header,
14857			HTTPStatusCode: res.StatusCode,
14858		},
14859	}
14860	target := &ret
14861	if err := gensupport.DecodeResponse(target, res); err != nil {
14862		return nil, err
14863	}
14864	return ret, nil
14865	// {
14866	//   "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
14867	//   "flatPath": "v1/operations/{operationsId}",
14868	//   "httpMethod": "DELETE",
14869	//   "id": "vision.operations.delete",
14870	//   "parameterOrder": [
14871	//     "name"
14872	//   ],
14873	//   "parameters": {
14874	//     "name": {
14875	//       "description": "The name of the operation resource to be deleted.",
14876	//       "location": "path",
14877	//       "pattern": "^operations/.*$",
14878	//       "required": true,
14879	//       "type": "string"
14880	//     }
14881	//   },
14882	//   "path": "v1/{+name}",
14883	//   "response": {
14884	//     "$ref": "Empty"
14885	//   },
14886	//   "scopes": [
14887	//     "https://www.googleapis.com/auth/cloud-platform",
14888	//     "https://www.googleapis.com/auth/cloud-vision"
14889	//   ]
14890	// }
14891
14892}
14893
14894// method id "vision.operations.get":
14895
14896type OperationsGetCall struct {
14897	s            *Service
14898	name         string
14899	urlParams_   gensupport.URLParams
14900	ifNoneMatch_ string
14901	ctx_         context.Context
14902	header_      http.Header
14903}
14904
14905// Get: Gets the latest state of a long-running operation. Clients can
14906// use this method to poll the operation result at intervals as
14907// recommended by the API service.
14908//
14909// - name: The name of the operation resource.
14910func (r *OperationsService) Get(name string) *OperationsGetCall {
14911	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14912	c.name = name
14913	return c
14914}
14915
14916// Fields allows partial responses to be retrieved. See
14917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14918// for more information.
14919func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
14920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14921	return c
14922}
14923
14924// IfNoneMatch sets the optional parameter which makes the operation
14925// fail if the object's ETag matches the given value. This is useful for
14926// getting updates only after the object has changed since the last
14927// request. Use googleapi.IsNotModified to check whether the response
14928// error from Do is the result of In-None-Match.
14929func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
14930	c.ifNoneMatch_ = entityTag
14931	return c
14932}
14933
14934// Context sets the context to be used in this call's Do method. Any
14935// pending HTTP request will be aborted if the provided context is
14936// canceled.
14937func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
14938	c.ctx_ = ctx
14939	return c
14940}
14941
14942// Header returns an http.Header that can be modified by the caller to
14943// add HTTP headers to the request.
14944func (c *OperationsGetCall) Header() http.Header {
14945	if c.header_ == nil {
14946		c.header_ = make(http.Header)
14947	}
14948	return c.header_
14949}
14950
14951func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
14952	reqHeaders := make(http.Header)
14953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
14954	for k, v := range c.header_ {
14955		reqHeaders[k] = v
14956	}
14957	reqHeaders.Set("User-Agent", c.s.userAgent())
14958	if c.ifNoneMatch_ != "" {
14959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14960	}
14961	var body io.Reader = nil
14962	c.urlParams_.Set("alt", alt)
14963	c.urlParams_.Set("prettyPrint", "false")
14964	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
14965	urls += "?" + c.urlParams_.Encode()
14966	req, err := http.NewRequest("GET", urls, body)
14967	if err != nil {
14968		return nil, err
14969	}
14970	req.Header = reqHeaders
14971	googleapi.Expand(req.URL, map[string]string{
14972		"name": c.name,
14973	})
14974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14975}
14976
14977// Do executes the "vision.operations.get" call.
14978// Exactly one of *Operation or error will be non-nil. Any non-2xx
14979// status code is an error. Response headers are in either
14980// *Operation.ServerResponse.Header or (if a response was returned at
14981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14982// to check whether the returned error was because
14983// http.StatusNotModified was returned.
14984func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
14985	gensupport.SetOptions(c.urlParams_, opts...)
14986	res, err := c.doRequest("json")
14987	if res != nil && res.StatusCode == http.StatusNotModified {
14988		if res.Body != nil {
14989			res.Body.Close()
14990		}
14991		return nil, &googleapi.Error{
14992			Code:   res.StatusCode,
14993			Header: res.Header,
14994		}
14995	}
14996	if err != nil {
14997		return nil, err
14998	}
14999	defer googleapi.CloseBody(res)
15000	if err := googleapi.CheckResponse(res); err != nil {
15001		return nil, err
15002	}
15003	ret := &Operation{
15004		ServerResponse: googleapi.ServerResponse{
15005			Header:         res.Header,
15006			HTTPStatusCode: res.StatusCode,
15007		},
15008	}
15009	target := &ret
15010	if err := gensupport.DecodeResponse(target, res); err != nil {
15011		return nil, err
15012	}
15013	return ret, nil
15014	// {
15015	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
15016	//   "flatPath": "v1/operations/{operationsId}",
15017	//   "httpMethod": "GET",
15018	//   "id": "vision.operations.get",
15019	//   "parameterOrder": [
15020	//     "name"
15021	//   ],
15022	//   "parameters": {
15023	//     "name": {
15024	//       "description": "The name of the operation resource.",
15025	//       "location": "path",
15026	//       "pattern": "^operations/[^/]+$",
15027	//       "required": true,
15028	//       "type": "string"
15029	//     }
15030	//   },
15031	//   "path": "v1/{+name}",
15032	//   "response": {
15033	//     "$ref": "Operation"
15034	//   },
15035	//   "scopes": [
15036	//     "https://www.googleapis.com/auth/cloud-platform",
15037	//     "https://www.googleapis.com/auth/cloud-vision"
15038	//   ]
15039	// }
15040
15041}
15042
15043// method id "vision.operations.list":
15044
15045type OperationsListCall struct {
15046	s            *Service
15047	name         string
15048	urlParams_   gensupport.URLParams
15049	ifNoneMatch_ string
15050	ctx_         context.Context
15051	header_      http.Header
15052}
15053
15054// List: Lists operations that match the specified filter in the
15055// request. If the server doesn't support this method, it returns
15056// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
15057// override the binding to use different resource name schemes, such as
15058// `users/*/operations`. To override the binding, API services can add a
15059// binding such as "/v1/{name=users/*}/operations" to their service
15060// configuration. For backwards compatibility, the default name includes
15061// the operations collection id, however overriding users must ensure
15062// the name binding is the parent resource, without the operations
15063// collection id.
15064//
15065// - name: The name of the operation's parent resource.
15066func (r *OperationsService) List(name string) *OperationsListCall {
15067	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15068	c.name = name
15069	return c
15070}
15071
15072// Filter sets the optional parameter "filter": The standard list
15073// filter.
15074func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
15075	c.urlParams_.Set("filter", filter)
15076	return c
15077}
15078
15079// PageSize sets the optional parameter "pageSize": The standard list
15080// page size.
15081func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall {
15082	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
15083	return c
15084}
15085
15086// PageToken sets the optional parameter "pageToken": The standard list
15087// page token.
15088func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
15089	c.urlParams_.Set("pageToken", pageToken)
15090	return c
15091}
15092
15093// Fields allows partial responses to be retrieved. See
15094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15095// for more information.
15096func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
15097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15098	return c
15099}
15100
15101// IfNoneMatch sets the optional parameter which makes the operation
15102// fail if the object's ETag matches the given value. This is useful for
15103// getting updates only after the object has changed since the last
15104// request. Use googleapi.IsNotModified to check whether the response
15105// error from Do is the result of In-None-Match.
15106func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
15107	c.ifNoneMatch_ = entityTag
15108	return c
15109}
15110
15111// Context sets the context to be used in this call's Do method. Any
15112// pending HTTP request will be aborted if the provided context is
15113// canceled.
15114func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
15115	c.ctx_ = ctx
15116	return c
15117}
15118
15119// Header returns an http.Header that can be modified by the caller to
15120// add HTTP headers to the request.
15121func (c *OperationsListCall) Header() http.Header {
15122	if c.header_ == nil {
15123		c.header_ = make(http.Header)
15124	}
15125	return c.header_
15126}
15127
15128func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
15129	reqHeaders := make(http.Header)
15130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15131	for k, v := range c.header_ {
15132		reqHeaders[k] = v
15133	}
15134	reqHeaders.Set("User-Agent", c.s.userAgent())
15135	if c.ifNoneMatch_ != "" {
15136		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15137	}
15138	var body io.Reader = nil
15139	c.urlParams_.Set("alt", alt)
15140	c.urlParams_.Set("prettyPrint", "false")
15141	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
15142	urls += "?" + c.urlParams_.Encode()
15143	req, err := http.NewRequest("GET", urls, body)
15144	if err != nil {
15145		return nil, err
15146	}
15147	req.Header = reqHeaders
15148	googleapi.Expand(req.URL, map[string]string{
15149		"name": c.name,
15150	})
15151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15152}
15153
15154// Do executes the "vision.operations.list" call.
15155// Exactly one of *ListOperationsResponse or error will be non-nil. Any
15156// non-2xx status code is an error. Response headers are in either
15157// *ListOperationsResponse.ServerResponse.Header or (if a response was
15158// returned at all) in error.(*googleapi.Error).Header. Use
15159// googleapi.IsNotModified to check whether the returned error was
15160// because http.StatusNotModified was returned.
15161func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
15162	gensupport.SetOptions(c.urlParams_, opts...)
15163	res, err := c.doRequest("json")
15164	if res != nil && res.StatusCode == http.StatusNotModified {
15165		if res.Body != nil {
15166			res.Body.Close()
15167		}
15168		return nil, &googleapi.Error{
15169			Code:   res.StatusCode,
15170			Header: res.Header,
15171		}
15172	}
15173	if err != nil {
15174		return nil, err
15175	}
15176	defer googleapi.CloseBody(res)
15177	if err := googleapi.CheckResponse(res); err != nil {
15178		return nil, err
15179	}
15180	ret := &ListOperationsResponse{
15181		ServerResponse: googleapi.ServerResponse{
15182			Header:         res.Header,
15183			HTTPStatusCode: res.StatusCode,
15184		},
15185	}
15186	target := &ret
15187	if err := gensupport.DecodeResponse(target, res); err != nil {
15188		return nil, err
15189	}
15190	return ret, nil
15191	// {
15192	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
15193	//   "flatPath": "v1/operations",
15194	//   "httpMethod": "GET",
15195	//   "id": "vision.operations.list",
15196	//   "parameterOrder": [
15197	//     "name"
15198	//   ],
15199	//   "parameters": {
15200	//     "filter": {
15201	//       "description": "The standard list filter.",
15202	//       "location": "query",
15203	//       "type": "string"
15204	//     },
15205	//     "name": {
15206	//       "description": "The name of the operation's parent resource.",
15207	//       "location": "path",
15208	//       "pattern": "^operations$",
15209	//       "required": true,
15210	//       "type": "string"
15211	//     },
15212	//     "pageSize": {
15213	//       "description": "The standard list page size.",
15214	//       "format": "int32",
15215	//       "location": "query",
15216	//       "type": "integer"
15217	//     },
15218	//     "pageToken": {
15219	//       "description": "The standard list page token.",
15220	//       "location": "query",
15221	//       "type": "string"
15222	//     }
15223	//   },
15224	//   "path": "v1/{+name}",
15225	//   "response": {
15226	//     "$ref": "ListOperationsResponse"
15227	//   },
15228	//   "scopes": [
15229	//     "https://www.googleapis.com/auth/cloud-platform",
15230	//     "https://www.googleapis.com/auth/cloud-vision"
15231	//   ]
15232	// }
15233
15234}
15235
15236// Pages invokes f for each page of results.
15237// A non-nil error returned from f will halt the iteration.
15238// The provided context supersedes any context provided to the Context method.
15239func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
15240	c.ctx_ = ctx
15241	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
15242	for {
15243		x, err := c.Do()
15244		if err != nil {
15245			return err
15246		}
15247		if err := f(x); err != nil {
15248			return err
15249		}
15250		if x.NextPageToken == "" {
15251			return nil
15252		}
15253		c.PageToken(x.NextPageToken)
15254	}
15255}
15256
15257// method id "vision.projects.files.annotate":
15258
15259type ProjectsFilesAnnotateCall struct {
15260	s                         *Service
15261	parent                    string
15262	batchannotatefilesrequest *BatchAnnotateFilesRequest
15263	urlParams_                gensupport.URLParams
15264	ctx_                      context.Context
15265	header_                   http.Header
15266}
15267
15268// Annotate: Service that performs image detection and annotation for a
15269// batch of files. Now only "application/pdf", "image/tiff" and
15270// "image/gif" are supported. This service will extract at most 5
15271// (customers can specify which 5 in AnnotateFileRequest.pages) frames
15272// (gif) or pages (pdf or tiff) from each file provided and perform
15273// detection and annotation for each image extracted.
15274//
15275// - parent: Optional. Target project and location to make a call.
15276//   Format: `projects/{project-id}/locations/{location-id}`. If no
15277//   parent is specified, a region will be chosen automatically.
15278//   Supported location-ids: `us`: USA country only, `asia`: East asia
15279//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
15280//   `projects/project-A/locations/eu`.
15281func (r *ProjectsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsFilesAnnotateCall {
15282	c := &ProjectsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15283	c.parent = parent
15284	c.batchannotatefilesrequest = batchannotatefilesrequest
15285	return c
15286}
15287
15288// Fields allows partial responses to be retrieved. See
15289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15290// for more information.
15291func (c *ProjectsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAnnotateCall {
15292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15293	return c
15294}
15295
15296// Context sets the context to be used in this call's Do method. Any
15297// pending HTTP request will be aborted if the provided context is
15298// canceled.
15299func (c *ProjectsFilesAnnotateCall) Context(ctx context.Context) *ProjectsFilesAnnotateCall {
15300	c.ctx_ = ctx
15301	return c
15302}
15303
15304// Header returns an http.Header that can be modified by the caller to
15305// add HTTP headers to the request.
15306func (c *ProjectsFilesAnnotateCall) Header() http.Header {
15307	if c.header_ == nil {
15308		c.header_ = make(http.Header)
15309	}
15310	return c.header_
15311}
15312
15313func (c *ProjectsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15314	reqHeaders := make(http.Header)
15315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15316	for k, v := range c.header_ {
15317		reqHeaders[k] = v
15318	}
15319	reqHeaders.Set("User-Agent", c.s.userAgent())
15320	var body io.Reader = nil
15321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
15322	if err != nil {
15323		return nil, err
15324	}
15325	reqHeaders.Set("Content-Type", "application/json")
15326	c.urlParams_.Set("alt", alt)
15327	c.urlParams_.Set("prettyPrint", "false")
15328	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
15329	urls += "?" + c.urlParams_.Encode()
15330	req, err := http.NewRequest("POST", urls, body)
15331	if err != nil {
15332		return nil, err
15333	}
15334	req.Header = reqHeaders
15335	googleapi.Expand(req.URL, map[string]string{
15336		"parent": c.parent,
15337	})
15338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15339}
15340
15341// Do executes the "vision.projects.files.annotate" call.
15342// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
15343// Any non-2xx status code is an error. Response headers are in either
15344// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
15345// was returned at all) in error.(*googleapi.Error).Header. Use
15346// googleapi.IsNotModified to check whether the returned error was
15347// because http.StatusNotModified was returned.
15348func (c *ProjectsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
15349	gensupport.SetOptions(c.urlParams_, opts...)
15350	res, err := c.doRequest("json")
15351	if res != nil && res.StatusCode == http.StatusNotModified {
15352		if res.Body != nil {
15353			res.Body.Close()
15354		}
15355		return nil, &googleapi.Error{
15356			Code:   res.StatusCode,
15357			Header: res.Header,
15358		}
15359	}
15360	if err != nil {
15361		return nil, err
15362	}
15363	defer googleapi.CloseBody(res)
15364	if err := googleapi.CheckResponse(res); err != nil {
15365		return nil, err
15366	}
15367	ret := &BatchAnnotateFilesResponse{
15368		ServerResponse: googleapi.ServerResponse{
15369			Header:         res.Header,
15370			HTTPStatusCode: res.StatusCode,
15371		},
15372	}
15373	target := &ret
15374	if err := gensupport.DecodeResponse(target, res); err != nil {
15375		return nil, err
15376	}
15377	return ret, nil
15378	// {
15379	//   "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.",
15380	//   "flatPath": "v1/projects/{projectsId}/files:annotate",
15381	//   "httpMethod": "POST",
15382	//   "id": "vision.projects.files.annotate",
15383	//   "parameterOrder": [
15384	//     "parent"
15385	//   ],
15386	//   "parameters": {
15387	//     "parent": {
15388	//       "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`.",
15389	//       "location": "path",
15390	//       "pattern": "^projects/[^/]+$",
15391	//       "required": true,
15392	//       "type": "string"
15393	//     }
15394	//   },
15395	//   "path": "v1/{+parent}/files:annotate",
15396	//   "request": {
15397	//     "$ref": "BatchAnnotateFilesRequest"
15398	//   },
15399	//   "response": {
15400	//     "$ref": "BatchAnnotateFilesResponse"
15401	//   },
15402	//   "scopes": [
15403	//     "https://www.googleapis.com/auth/cloud-platform",
15404	//     "https://www.googleapis.com/auth/cloud-vision"
15405	//   ]
15406	// }
15407
15408}
15409
15410// method id "vision.projects.files.asyncBatchAnnotate":
15411
15412type ProjectsFilesAsyncBatchAnnotateCall struct {
15413	s                              *Service
15414	parent                         string
15415	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
15416	urlParams_                     gensupport.URLParams
15417	ctx_                           context.Context
15418	header_                        http.Header
15419}
15420
15421// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15422// for a list of generic files, such as PDF files, which may contain
15423// multiple pages and multiple images per page. Progress and results can
15424// be retrieved through the `google.longrunning.Operations` interface.
15425// `Operation.metadata` contains `OperationMetadata` (metadata).
15426// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
15427// (results).
15428//
15429// - parent: Optional. Target project and location to make a call.
15430//   Format: `projects/{project-id}/locations/{location-id}`. If no
15431//   parent is specified, a region will be chosen automatically.
15432//   Supported location-ids: `us`: USA country only, `asia`: East asia
15433//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
15434//   `projects/project-A/locations/eu`.
15435func (r *ProjectsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsFilesAsyncBatchAnnotateCall {
15436	c := &ProjectsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15437	c.parent = parent
15438	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
15439	return c
15440}
15441
15442// Fields allows partial responses to be retrieved. See
15443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15444// for more information.
15445func (c *ProjectsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAsyncBatchAnnotateCall {
15446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15447	return c
15448}
15449
15450// Context sets the context to be used in this call's Do method. Any
15451// pending HTTP request will be aborted if the provided context is
15452// canceled.
15453func (c *ProjectsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsFilesAsyncBatchAnnotateCall {
15454	c.ctx_ = ctx
15455	return c
15456}
15457
15458// Header returns an http.Header that can be modified by the caller to
15459// add HTTP headers to the request.
15460func (c *ProjectsFilesAsyncBatchAnnotateCall) Header() http.Header {
15461	if c.header_ == nil {
15462		c.header_ = make(http.Header)
15463	}
15464	return c.header_
15465}
15466
15467func (c *ProjectsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15468	reqHeaders := make(http.Header)
15469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15470	for k, v := range c.header_ {
15471		reqHeaders[k] = v
15472	}
15473	reqHeaders.Set("User-Agent", c.s.userAgent())
15474	var body io.Reader = nil
15475	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
15476	if err != nil {
15477		return nil, err
15478	}
15479	reqHeaders.Set("Content-Type", "application/json")
15480	c.urlParams_.Set("alt", alt)
15481	c.urlParams_.Set("prettyPrint", "false")
15482	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
15483	urls += "?" + c.urlParams_.Encode()
15484	req, err := http.NewRequest("POST", urls, body)
15485	if err != nil {
15486		return nil, err
15487	}
15488	req.Header = reqHeaders
15489	googleapi.Expand(req.URL, map[string]string{
15490		"parent": c.parent,
15491	})
15492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15493}
15494
15495// Do executes the "vision.projects.files.asyncBatchAnnotate" call.
15496// Exactly one of *Operation or error will be non-nil. Any non-2xx
15497// status code is an error. Response headers are in either
15498// *Operation.ServerResponse.Header or (if a response was returned at
15499// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15500// to check whether the returned error was because
15501// http.StatusNotModified was returned.
15502func (c *ProjectsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15503	gensupport.SetOptions(c.urlParams_, opts...)
15504	res, err := c.doRequest("json")
15505	if res != nil && res.StatusCode == http.StatusNotModified {
15506		if res.Body != nil {
15507			res.Body.Close()
15508		}
15509		return nil, &googleapi.Error{
15510			Code:   res.StatusCode,
15511			Header: res.Header,
15512		}
15513	}
15514	if err != nil {
15515		return nil, err
15516	}
15517	defer googleapi.CloseBody(res)
15518	if err := googleapi.CheckResponse(res); err != nil {
15519		return nil, err
15520	}
15521	ret := &Operation{
15522		ServerResponse: googleapi.ServerResponse{
15523			Header:         res.Header,
15524			HTTPStatusCode: res.StatusCode,
15525		},
15526	}
15527	target := &ret
15528	if err := gensupport.DecodeResponse(target, res); err != nil {
15529		return nil, err
15530	}
15531	return ret, nil
15532	// {
15533	//   "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).",
15534	//   "flatPath": "v1/projects/{projectsId}/files:asyncBatchAnnotate",
15535	//   "httpMethod": "POST",
15536	//   "id": "vision.projects.files.asyncBatchAnnotate",
15537	//   "parameterOrder": [
15538	//     "parent"
15539	//   ],
15540	//   "parameters": {
15541	//     "parent": {
15542	//       "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`.",
15543	//       "location": "path",
15544	//       "pattern": "^projects/[^/]+$",
15545	//       "required": true,
15546	//       "type": "string"
15547	//     }
15548	//   },
15549	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
15550	//   "request": {
15551	//     "$ref": "AsyncBatchAnnotateFilesRequest"
15552	//   },
15553	//   "response": {
15554	//     "$ref": "Operation"
15555	//   },
15556	//   "scopes": [
15557	//     "https://www.googleapis.com/auth/cloud-platform",
15558	//     "https://www.googleapis.com/auth/cloud-vision"
15559	//   ]
15560	// }
15561
15562}
15563
15564// method id "vision.projects.images.annotate":
15565
15566type ProjectsImagesAnnotateCall struct {
15567	s                          *Service
15568	parent                     string
15569	batchannotateimagesrequest *BatchAnnotateImagesRequest
15570	urlParams_                 gensupport.URLParams
15571	ctx_                       context.Context
15572	header_                    http.Header
15573}
15574
15575// Annotate: Run image detection and annotation for a batch of images.
15576//
15577// - parent: Optional. Target project and location to make a call.
15578//   Format: `projects/{project-id}/locations/{location-id}`. If no
15579//   parent is specified, a region will be chosen automatically.
15580//   Supported location-ids: `us`: USA country only, `asia`: East asia
15581//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
15582//   `projects/project-A/locations/eu`.
15583func (r *ProjectsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsImagesAnnotateCall {
15584	c := &ProjectsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15585	c.parent = parent
15586	c.batchannotateimagesrequest = batchannotateimagesrequest
15587	return c
15588}
15589
15590// Fields allows partial responses to be retrieved. See
15591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15592// for more information.
15593func (c *ProjectsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAnnotateCall {
15594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15595	return c
15596}
15597
15598// Context sets the context to be used in this call's Do method. Any
15599// pending HTTP request will be aborted if the provided context is
15600// canceled.
15601func (c *ProjectsImagesAnnotateCall) Context(ctx context.Context) *ProjectsImagesAnnotateCall {
15602	c.ctx_ = ctx
15603	return c
15604}
15605
15606// Header returns an http.Header that can be modified by the caller to
15607// add HTTP headers to the request.
15608func (c *ProjectsImagesAnnotateCall) Header() http.Header {
15609	if c.header_ == nil {
15610		c.header_ = make(http.Header)
15611	}
15612	return c.header_
15613}
15614
15615func (c *ProjectsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15616	reqHeaders := make(http.Header)
15617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15618	for k, v := range c.header_ {
15619		reqHeaders[k] = v
15620	}
15621	reqHeaders.Set("User-Agent", c.s.userAgent())
15622	var body io.Reader = nil
15623	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
15624	if err != nil {
15625		return nil, err
15626	}
15627	reqHeaders.Set("Content-Type", "application/json")
15628	c.urlParams_.Set("alt", alt)
15629	c.urlParams_.Set("prettyPrint", "false")
15630	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
15631	urls += "?" + c.urlParams_.Encode()
15632	req, err := http.NewRequest("POST", urls, body)
15633	if err != nil {
15634		return nil, err
15635	}
15636	req.Header = reqHeaders
15637	googleapi.Expand(req.URL, map[string]string{
15638		"parent": c.parent,
15639	})
15640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15641}
15642
15643// Do executes the "vision.projects.images.annotate" call.
15644// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
15645// Any non-2xx status code is an error. Response headers are in either
15646// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
15647// was returned at all) in error.(*googleapi.Error).Header. Use
15648// googleapi.IsNotModified to check whether the returned error was
15649// because http.StatusNotModified was returned.
15650func (c *ProjectsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
15651	gensupport.SetOptions(c.urlParams_, opts...)
15652	res, err := c.doRequest("json")
15653	if res != nil && res.StatusCode == http.StatusNotModified {
15654		if res.Body != nil {
15655			res.Body.Close()
15656		}
15657		return nil, &googleapi.Error{
15658			Code:   res.StatusCode,
15659			Header: res.Header,
15660		}
15661	}
15662	if err != nil {
15663		return nil, err
15664	}
15665	defer googleapi.CloseBody(res)
15666	if err := googleapi.CheckResponse(res); err != nil {
15667		return nil, err
15668	}
15669	ret := &BatchAnnotateImagesResponse{
15670		ServerResponse: googleapi.ServerResponse{
15671			Header:         res.Header,
15672			HTTPStatusCode: res.StatusCode,
15673		},
15674	}
15675	target := &ret
15676	if err := gensupport.DecodeResponse(target, res); err != nil {
15677		return nil, err
15678	}
15679	return ret, nil
15680	// {
15681	//   "description": "Run image detection and annotation for a batch of images.",
15682	//   "flatPath": "v1/projects/{projectsId}/images:annotate",
15683	//   "httpMethod": "POST",
15684	//   "id": "vision.projects.images.annotate",
15685	//   "parameterOrder": [
15686	//     "parent"
15687	//   ],
15688	//   "parameters": {
15689	//     "parent": {
15690	//       "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`.",
15691	//       "location": "path",
15692	//       "pattern": "^projects/[^/]+$",
15693	//       "required": true,
15694	//       "type": "string"
15695	//     }
15696	//   },
15697	//   "path": "v1/{+parent}/images:annotate",
15698	//   "request": {
15699	//     "$ref": "BatchAnnotateImagesRequest"
15700	//   },
15701	//   "response": {
15702	//     "$ref": "BatchAnnotateImagesResponse"
15703	//   },
15704	//   "scopes": [
15705	//     "https://www.googleapis.com/auth/cloud-platform",
15706	//     "https://www.googleapis.com/auth/cloud-vision"
15707	//   ]
15708	// }
15709
15710}
15711
15712// method id "vision.projects.images.asyncBatchAnnotate":
15713
15714type ProjectsImagesAsyncBatchAnnotateCall struct {
15715	s                               *Service
15716	parent                          string
15717	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
15718	urlParams_                      gensupport.URLParams
15719	ctx_                            context.Context
15720	header_                         http.Header
15721}
15722
15723// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15724// for a list of images. Progress and results can be retrieved through
15725// the `google.longrunning.Operations` interface. `Operation.metadata`
15726// contains `OperationMetadata` (metadata). `Operation.response`
15727// contains `AsyncBatchAnnotateImagesResponse` (results). This service
15728// will write image annotation outputs to json files in customer GCS
15729// bucket, each json file containing BatchAnnotateImagesResponse proto.
15730//
15731// - parent: Optional. Target project and location to make a call.
15732//   Format: `projects/{project-id}/locations/{location-id}`. If no
15733//   parent is specified, a region will be chosen automatically.
15734//   Supported location-ids: `us`: USA country only, `asia`: East asia
15735//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
15736//   `projects/project-A/locations/eu`.
15737func (r *ProjectsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsImagesAsyncBatchAnnotateCall {
15738	c := &ProjectsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15739	c.parent = parent
15740	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
15741	return c
15742}
15743
15744// Fields allows partial responses to be retrieved. See
15745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15746// for more information.
15747func (c *ProjectsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAsyncBatchAnnotateCall {
15748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15749	return c
15750}
15751
15752// Context sets the context to be used in this call's Do method. Any
15753// pending HTTP request will be aborted if the provided context is
15754// canceled.
15755func (c *ProjectsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsImagesAsyncBatchAnnotateCall {
15756	c.ctx_ = ctx
15757	return c
15758}
15759
15760// Header returns an http.Header that can be modified by the caller to
15761// add HTTP headers to the request.
15762func (c *ProjectsImagesAsyncBatchAnnotateCall) Header() http.Header {
15763	if c.header_ == nil {
15764		c.header_ = make(http.Header)
15765	}
15766	return c.header_
15767}
15768
15769func (c *ProjectsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15770	reqHeaders := make(http.Header)
15771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15772	for k, v := range c.header_ {
15773		reqHeaders[k] = v
15774	}
15775	reqHeaders.Set("User-Agent", c.s.userAgent())
15776	var body io.Reader = nil
15777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
15778	if err != nil {
15779		return nil, err
15780	}
15781	reqHeaders.Set("Content-Type", "application/json")
15782	c.urlParams_.Set("alt", alt)
15783	c.urlParams_.Set("prettyPrint", "false")
15784	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
15785	urls += "?" + c.urlParams_.Encode()
15786	req, err := http.NewRequest("POST", urls, body)
15787	if err != nil {
15788		return nil, err
15789	}
15790	req.Header = reqHeaders
15791	googleapi.Expand(req.URL, map[string]string{
15792		"parent": c.parent,
15793	})
15794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15795}
15796
15797// Do executes the "vision.projects.images.asyncBatchAnnotate" call.
15798// Exactly one of *Operation or error will be non-nil. Any non-2xx
15799// status code is an error. Response headers are in either
15800// *Operation.ServerResponse.Header or (if a response was returned at
15801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15802// to check whether the returned error was because
15803// http.StatusNotModified was returned.
15804func (c *ProjectsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15805	gensupport.SetOptions(c.urlParams_, opts...)
15806	res, err := c.doRequest("json")
15807	if res != nil && res.StatusCode == http.StatusNotModified {
15808		if res.Body != nil {
15809			res.Body.Close()
15810		}
15811		return nil, &googleapi.Error{
15812			Code:   res.StatusCode,
15813			Header: res.Header,
15814		}
15815	}
15816	if err != nil {
15817		return nil, err
15818	}
15819	defer googleapi.CloseBody(res)
15820	if err := googleapi.CheckResponse(res); err != nil {
15821		return nil, err
15822	}
15823	ret := &Operation{
15824		ServerResponse: googleapi.ServerResponse{
15825			Header:         res.Header,
15826			HTTPStatusCode: res.StatusCode,
15827		},
15828	}
15829	target := &ret
15830	if err := gensupport.DecodeResponse(target, res); err != nil {
15831		return nil, err
15832	}
15833	return ret, nil
15834	// {
15835	//   "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.",
15836	//   "flatPath": "v1/projects/{projectsId}/images:asyncBatchAnnotate",
15837	//   "httpMethod": "POST",
15838	//   "id": "vision.projects.images.asyncBatchAnnotate",
15839	//   "parameterOrder": [
15840	//     "parent"
15841	//   ],
15842	//   "parameters": {
15843	//     "parent": {
15844	//       "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`.",
15845	//       "location": "path",
15846	//       "pattern": "^projects/[^/]+$",
15847	//       "required": true,
15848	//       "type": "string"
15849	//     }
15850	//   },
15851	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
15852	//   "request": {
15853	//     "$ref": "AsyncBatchAnnotateImagesRequest"
15854	//   },
15855	//   "response": {
15856	//     "$ref": "Operation"
15857	//   },
15858	//   "scopes": [
15859	//     "https://www.googleapis.com/auth/cloud-platform",
15860	//     "https://www.googleapis.com/auth/cloud-vision"
15861	//   ]
15862	// }
15863
15864}
15865
15866// method id "vision.projects.locations.files.annotate":
15867
15868type ProjectsLocationsFilesAnnotateCall struct {
15869	s                         *Service
15870	parent                    string
15871	batchannotatefilesrequest *BatchAnnotateFilesRequest
15872	urlParams_                gensupport.URLParams
15873	ctx_                      context.Context
15874	header_                   http.Header
15875}
15876
15877// Annotate: Service that performs image detection and annotation for a
15878// batch of files. Now only "application/pdf", "image/tiff" and
15879// "image/gif" are supported. This service will extract at most 5
15880// (customers can specify which 5 in AnnotateFileRequest.pages) frames
15881// (gif) or pages (pdf or tiff) from each file provided and perform
15882// detection and annotation for each image extracted.
15883//
15884// - parent: Optional. Target project and location to make a call.
15885//   Format: `projects/{project-id}/locations/{location-id}`. If no
15886//   parent is specified, a region will be chosen automatically.
15887//   Supported location-ids: `us`: USA country only, `asia`: East asia
15888//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
15889//   `projects/project-A/locations/eu`.
15890func (r *ProjectsLocationsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsLocationsFilesAnnotateCall {
15891	c := &ProjectsLocationsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15892	c.parent = parent
15893	c.batchannotatefilesrequest = batchannotatefilesrequest
15894	return c
15895}
15896
15897// Fields allows partial responses to be retrieved. See
15898// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15899// for more information.
15900func (c *ProjectsLocationsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAnnotateCall {
15901	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15902	return c
15903}
15904
15905// Context sets the context to be used in this call's Do method. Any
15906// pending HTTP request will be aborted if the provided context is
15907// canceled.
15908func (c *ProjectsLocationsFilesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAnnotateCall {
15909	c.ctx_ = ctx
15910	return c
15911}
15912
15913// Header returns an http.Header that can be modified by the caller to
15914// add HTTP headers to the request.
15915func (c *ProjectsLocationsFilesAnnotateCall) Header() http.Header {
15916	if c.header_ == nil {
15917		c.header_ = make(http.Header)
15918	}
15919	return c.header_
15920}
15921
15922func (c *ProjectsLocationsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15923	reqHeaders := make(http.Header)
15924	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
15925	for k, v := range c.header_ {
15926		reqHeaders[k] = v
15927	}
15928	reqHeaders.Set("User-Agent", c.s.userAgent())
15929	var body io.Reader = nil
15930	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
15931	if err != nil {
15932		return nil, err
15933	}
15934	reqHeaders.Set("Content-Type", "application/json")
15935	c.urlParams_.Set("alt", alt)
15936	c.urlParams_.Set("prettyPrint", "false")
15937	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
15938	urls += "?" + c.urlParams_.Encode()
15939	req, err := http.NewRequest("POST", urls, body)
15940	if err != nil {
15941		return nil, err
15942	}
15943	req.Header = reqHeaders
15944	googleapi.Expand(req.URL, map[string]string{
15945		"parent": c.parent,
15946	})
15947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15948}
15949
15950// Do executes the "vision.projects.locations.files.annotate" call.
15951// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
15952// Any non-2xx status code is an error. Response headers are in either
15953// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
15954// was returned at all) in error.(*googleapi.Error).Header. Use
15955// googleapi.IsNotModified to check whether the returned error was
15956// because http.StatusNotModified was returned.
15957func (c *ProjectsLocationsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
15958	gensupport.SetOptions(c.urlParams_, opts...)
15959	res, err := c.doRequest("json")
15960	if res != nil && res.StatusCode == http.StatusNotModified {
15961		if res.Body != nil {
15962			res.Body.Close()
15963		}
15964		return nil, &googleapi.Error{
15965			Code:   res.StatusCode,
15966			Header: res.Header,
15967		}
15968	}
15969	if err != nil {
15970		return nil, err
15971	}
15972	defer googleapi.CloseBody(res)
15973	if err := googleapi.CheckResponse(res); err != nil {
15974		return nil, err
15975	}
15976	ret := &BatchAnnotateFilesResponse{
15977		ServerResponse: googleapi.ServerResponse{
15978			Header:         res.Header,
15979			HTTPStatusCode: res.StatusCode,
15980		},
15981	}
15982	target := &ret
15983	if err := gensupport.DecodeResponse(target, res); err != nil {
15984		return nil, err
15985	}
15986	return ret, nil
15987	// {
15988	//   "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.",
15989	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:annotate",
15990	//   "httpMethod": "POST",
15991	//   "id": "vision.projects.locations.files.annotate",
15992	//   "parameterOrder": [
15993	//     "parent"
15994	//   ],
15995	//   "parameters": {
15996	//     "parent": {
15997	//       "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`.",
15998	//       "location": "path",
15999	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
16000	//       "required": true,
16001	//       "type": "string"
16002	//     }
16003	//   },
16004	//   "path": "v1/{+parent}/files:annotate",
16005	//   "request": {
16006	//     "$ref": "BatchAnnotateFilesRequest"
16007	//   },
16008	//   "response": {
16009	//     "$ref": "BatchAnnotateFilesResponse"
16010	//   },
16011	//   "scopes": [
16012	//     "https://www.googleapis.com/auth/cloud-platform",
16013	//     "https://www.googleapis.com/auth/cloud-vision"
16014	//   ]
16015	// }
16016
16017}
16018
16019// method id "vision.projects.locations.files.asyncBatchAnnotate":
16020
16021type ProjectsLocationsFilesAsyncBatchAnnotateCall struct {
16022	s                              *Service
16023	parent                         string
16024	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
16025	urlParams_                     gensupport.URLParams
16026	ctx_                           context.Context
16027	header_                        http.Header
16028}
16029
16030// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16031// for a list of generic files, such as PDF files, which may contain
16032// multiple pages and multiple images per page. Progress and results can
16033// be retrieved through the `google.longrunning.Operations` interface.
16034// `Operation.metadata` contains `OperationMetadata` (metadata).
16035// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
16036// (results).
16037//
16038// - parent: Optional. Target project and location to make a call.
16039//   Format: `projects/{project-id}/locations/{location-id}`. If no
16040//   parent is specified, a region will be chosen automatically.
16041//   Supported location-ids: `us`: USA country only, `asia`: East asia
16042//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
16043//   `projects/project-A/locations/eu`.
16044func (r *ProjectsLocationsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
16045	c := &ProjectsLocationsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16046	c.parent = parent
16047	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
16048	return c
16049}
16050
16051// Fields allows partial responses to be retrieved. See
16052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16053// for more information.
16054func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
16055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16056	return c
16057}
16058
16059// Context sets the context to be used in this call's Do method. Any
16060// pending HTTP request will be aborted if the provided context is
16061// canceled.
16062func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
16063	c.ctx_ = ctx
16064	return c
16065}
16066
16067// Header returns an http.Header that can be modified by the caller to
16068// add HTTP headers to the request.
16069func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Header() http.Header {
16070	if c.header_ == nil {
16071		c.header_ = make(http.Header)
16072	}
16073	return c.header_
16074}
16075
16076func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16077	reqHeaders := make(http.Header)
16078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16079	for k, v := range c.header_ {
16080		reqHeaders[k] = v
16081	}
16082	reqHeaders.Set("User-Agent", c.s.userAgent())
16083	var body io.Reader = nil
16084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
16085	if err != nil {
16086		return nil, err
16087	}
16088	reqHeaders.Set("Content-Type", "application/json")
16089	c.urlParams_.Set("alt", alt)
16090	c.urlParams_.Set("prettyPrint", "false")
16091	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
16092	urls += "?" + c.urlParams_.Encode()
16093	req, err := http.NewRequest("POST", urls, body)
16094	if err != nil {
16095		return nil, err
16096	}
16097	req.Header = reqHeaders
16098	googleapi.Expand(req.URL, map[string]string{
16099		"parent": c.parent,
16100	})
16101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16102}
16103
16104// Do executes the "vision.projects.locations.files.asyncBatchAnnotate" call.
16105// Exactly one of *Operation or error will be non-nil. Any non-2xx
16106// status code is an error. Response headers are in either
16107// *Operation.ServerResponse.Header or (if a response was returned at
16108// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16109// to check whether the returned error was because
16110// http.StatusNotModified was returned.
16111func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16112	gensupport.SetOptions(c.urlParams_, opts...)
16113	res, err := c.doRequest("json")
16114	if res != nil && res.StatusCode == http.StatusNotModified {
16115		if res.Body != nil {
16116			res.Body.Close()
16117		}
16118		return nil, &googleapi.Error{
16119			Code:   res.StatusCode,
16120			Header: res.Header,
16121		}
16122	}
16123	if err != nil {
16124		return nil, err
16125	}
16126	defer googleapi.CloseBody(res)
16127	if err := googleapi.CheckResponse(res); err != nil {
16128		return nil, err
16129	}
16130	ret := &Operation{
16131		ServerResponse: googleapi.ServerResponse{
16132			Header:         res.Header,
16133			HTTPStatusCode: res.StatusCode,
16134		},
16135	}
16136	target := &ret
16137	if err := gensupport.DecodeResponse(target, res); err != nil {
16138		return nil, err
16139	}
16140	return ret, nil
16141	// {
16142	//   "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).",
16143	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:asyncBatchAnnotate",
16144	//   "httpMethod": "POST",
16145	//   "id": "vision.projects.locations.files.asyncBatchAnnotate",
16146	//   "parameterOrder": [
16147	//     "parent"
16148	//   ],
16149	//   "parameters": {
16150	//     "parent": {
16151	//       "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`.",
16152	//       "location": "path",
16153	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
16154	//       "required": true,
16155	//       "type": "string"
16156	//     }
16157	//   },
16158	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
16159	//   "request": {
16160	//     "$ref": "AsyncBatchAnnotateFilesRequest"
16161	//   },
16162	//   "response": {
16163	//     "$ref": "Operation"
16164	//   },
16165	//   "scopes": [
16166	//     "https://www.googleapis.com/auth/cloud-platform",
16167	//     "https://www.googleapis.com/auth/cloud-vision"
16168	//   ]
16169	// }
16170
16171}
16172
16173// method id "vision.projects.locations.images.annotate":
16174
16175type ProjectsLocationsImagesAnnotateCall struct {
16176	s                          *Service
16177	parent                     string
16178	batchannotateimagesrequest *BatchAnnotateImagesRequest
16179	urlParams_                 gensupport.URLParams
16180	ctx_                       context.Context
16181	header_                    http.Header
16182}
16183
16184// Annotate: Run image detection and annotation for a batch of images.
16185//
16186// - parent: Optional. Target project and location to make a call.
16187//   Format: `projects/{project-id}/locations/{location-id}`. If no
16188//   parent is specified, a region will be chosen automatically.
16189//   Supported location-ids: `us`: USA country only, `asia`: East asia
16190//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
16191//   `projects/project-A/locations/eu`.
16192func (r *ProjectsLocationsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsLocationsImagesAnnotateCall {
16193	c := &ProjectsLocationsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16194	c.parent = parent
16195	c.batchannotateimagesrequest = batchannotateimagesrequest
16196	return c
16197}
16198
16199// Fields allows partial responses to be retrieved. See
16200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16201// for more information.
16202func (c *ProjectsLocationsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAnnotateCall {
16203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16204	return c
16205}
16206
16207// Context sets the context to be used in this call's Do method. Any
16208// pending HTTP request will be aborted if the provided context is
16209// canceled.
16210func (c *ProjectsLocationsImagesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAnnotateCall {
16211	c.ctx_ = ctx
16212	return c
16213}
16214
16215// Header returns an http.Header that can be modified by the caller to
16216// add HTTP headers to the request.
16217func (c *ProjectsLocationsImagesAnnotateCall) Header() http.Header {
16218	if c.header_ == nil {
16219		c.header_ = make(http.Header)
16220	}
16221	return c.header_
16222}
16223
16224func (c *ProjectsLocationsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
16225	reqHeaders := make(http.Header)
16226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16227	for k, v := range c.header_ {
16228		reqHeaders[k] = v
16229	}
16230	reqHeaders.Set("User-Agent", c.s.userAgent())
16231	var body io.Reader = nil
16232	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
16233	if err != nil {
16234		return nil, err
16235	}
16236	reqHeaders.Set("Content-Type", "application/json")
16237	c.urlParams_.Set("alt", alt)
16238	c.urlParams_.Set("prettyPrint", "false")
16239	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
16240	urls += "?" + c.urlParams_.Encode()
16241	req, err := http.NewRequest("POST", urls, body)
16242	if err != nil {
16243		return nil, err
16244	}
16245	req.Header = reqHeaders
16246	googleapi.Expand(req.URL, map[string]string{
16247		"parent": c.parent,
16248	})
16249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16250}
16251
16252// Do executes the "vision.projects.locations.images.annotate" call.
16253// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
16254// Any non-2xx status code is an error. Response headers are in either
16255// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
16256// was returned at all) in error.(*googleapi.Error).Header. Use
16257// googleapi.IsNotModified to check whether the returned error was
16258// because http.StatusNotModified was returned.
16259func (c *ProjectsLocationsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
16260	gensupport.SetOptions(c.urlParams_, opts...)
16261	res, err := c.doRequest("json")
16262	if res != nil && res.StatusCode == http.StatusNotModified {
16263		if res.Body != nil {
16264			res.Body.Close()
16265		}
16266		return nil, &googleapi.Error{
16267			Code:   res.StatusCode,
16268			Header: res.Header,
16269		}
16270	}
16271	if err != nil {
16272		return nil, err
16273	}
16274	defer googleapi.CloseBody(res)
16275	if err := googleapi.CheckResponse(res); err != nil {
16276		return nil, err
16277	}
16278	ret := &BatchAnnotateImagesResponse{
16279		ServerResponse: googleapi.ServerResponse{
16280			Header:         res.Header,
16281			HTTPStatusCode: res.StatusCode,
16282		},
16283	}
16284	target := &ret
16285	if err := gensupport.DecodeResponse(target, res); err != nil {
16286		return nil, err
16287	}
16288	return ret, nil
16289	// {
16290	//   "description": "Run image detection and annotation for a batch of images.",
16291	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:annotate",
16292	//   "httpMethod": "POST",
16293	//   "id": "vision.projects.locations.images.annotate",
16294	//   "parameterOrder": [
16295	//     "parent"
16296	//   ],
16297	//   "parameters": {
16298	//     "parent": {
16299	//       "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`.",
16300	//       "location": "path",
16301	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
16302	//       "required": true,
16303	//       "type": "string"
16304	//     }
16305	//   },
16306	//   "path": "v1/{+parent}/images:annotate",
16307	//   "request": {
16308	//     "$ref": "BatchAnnotateImagesRequest"
16309	//   },
16310	//   "response": {
16311	//     "$ref": "BatchAnnotateImagesResponse"
16312	//   },
16313	//   "scopes": [
16314	//     "https://www.googleapis.com/auth/cloud-platform",
16315	//     "https://www.googleapis.com/auth/cloud-vision"
16316	//   ]
16317	// }
16318
16319}
16320
16321// method id "vision.projects.locations.images.asyncBatchAnnotate":
16322
16323type ProjectsLocationsImagesAsyncBatchAnnotateCall struct {
16324	s                               *Service
16325	parent                          string
16326	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
16327	urlParams_                      gensupport.URLParams
16328	ctx_                            context.Context
16329	header_                         http.Header
16330}
16331
16332// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16333// for a list of images. Progress and results can be retrieved through
16334// the `google.longrunning.Operations` interface. `Operation.metadata`
16335// contains `OperationMetadata` (metadata). `Operation.response`
16336// contains `AsyncBatchAnnotateImagesResponse` (results). This service
16337// will write image annotation outputs to json files in customer GCS
16338// bucket, each json file containing BatchAnnotateImagesResponse proto.
16339//
16340// - parent: Optional. Target project and location to make a call.
16341//   Format: `projects/{project-id}/locations/{location-id}`. If no
16342//   parent is specified, a region will be chosen automatically.
16343//   Supported location-ids: `us`: USA country only, `asia`: East asia
16344//   areas, like Japan, Taiwan, `eu`: The European Union. Example:
16345//   `projects/project-A/locations/eu`.
16346func (r *ProjectsLocationsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
16347	c := &ProjectsLocationsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16348	c.parent = parent
16349	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
16350	return c
16351}
16352
16353// Fields allows partial responses to be retrieved. See
16354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16355// for more information.
16356func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
16357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16358	return c
16359}
16360
16361// Context sets the context to be used in this call's Do method. Any
16362// pending HTTP request will be aborted if the provided context is
16363// canceled.
16364func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
16365	c.ctx_ = ctx
16366	return c
16367}
16368
16369// Header returns an http.Header that can be modified by the caller to
16370// add HTTP headers to the request.
16371func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Header() http.Header {
16372	if c.header_ == nil {
16373		c.header_ = make(http.Header)
16374	}
16375	return c.header_
16376}
16377
16378func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16379	reqHeaders := make(http.Header)
16380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16381	for k, v := range c.header_ {
16382		reqHeaders[k] = v
16383	}
16384	reqHeaders.Set("User-Agent", c.s.userAgent())
16385	var body io.Reader = nil
16386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
16387	if err != nil {
16388		return nil, err
16389	}
16390	reqHeaders.Set("Content-Type", "application/json")
16391	c.urlParams_.Set("alt", alt)
16392	c.urlParams_.Set("prettyPrint", "false")
16393	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
16394	urls += "?" + c.urlParams_.Encode()
16395	req, err := http.NewRequest("POST", urls, body)
16396	if err != nil {
16397		return nil, err
16398	}
16399	req.Header = reqHeaders
16400	googleapi.Expand(req.URL, map[string]string{
16401		"parent": c.parent,
16402	})
16403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16404}
16405
16406// Do executes the "vision.projects.locations.images.asyncBatchAnnotate" call.
16407// Exactly one of *Operation or error will be non-nil. Any non-2xx
16408// status code is an error. Response headers are in either
16409// *Operation.ServerResponse.Header or (if a response was returned at
16410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16411// to check whether the returned error was because
16412// http.StatusNotModified was returned.
16413func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16414	gensupport.SetOptions(c.urlParams_, opts...)
16415	res, err := c.doRequest("json")
16416	if res != nil && res.StatusCode == http.StatusNotModified {
16417		if res.Body != nil {
16418			res.Body.Close()
16419		}
16420		return nil, &googleapi.Error{
16421			Code:   res.StatusCode,
16422			Header: res.Header,
16423		}
16424	}
16425	if err != nil {
16426		return nil, err
16427	}
16428	defer googleapi.CloseBody(res)
16429	if err := googleapi.CheckResponse(res); err != nil {
16430		return nil, err
16431	}
16432	ret := &Operation{
16433		ServerResponse: googleapi.ServerResponse{
16434			Header:         res.Header,
16435			HTTPStatusCode: res.StatusCode,
16436		},
16437	}
16438	target := &ret
16439	if err := gensupport.DecodeResponse(target, res); err != nil {
16440		return nil, err
16441	}
16442	return ret, nil
16443	// {
16444	//   "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.",
16445	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:asyncBatchAnnotate",
16446	//   "httpMethod": "POST",
16447	//   "id": "vision.projects.locations.images.asyncBatchAnnotate",
16448	//   "parameterOrder": [
16449	//     "parent"
16450	//   ],
16451	//   "parameters": {
16452	//     "parent": {
16453	//       "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`.",
16454	//       "location": "path",
16455	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
16456	//       "required": true,
16457	//       "type": "string"
16458	//     }
16459	//   },
16460	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
16461	//   "request": {
16462	//     "$ref": "AsyncBatchAnnotateImagesRequest"
16463	//   },
16464	//   "response": {
16465	//     "$ref": "Operation"
16466	//   },
16467	//   "scopes": [
16468	//     "https://www.googleapis.com/auth/cloud-platform",
16469	//     "https://www.googleapis.com/auth/cloud-vision"
16470	//   ]
16471	// }
16472
16473}
16474
16475// method id "vision.projects.locations.operations.get":
16476
16477type ProjectsLocationsOperationsGetCall struct {
16478	s            *Service
16479	name         string
16480	urlParams_   gensupport.URLParams
16481	ifNoneMatch_ string
16482	ctx_         context.Context
16483	header_      http.Header
16484}
16485
16486// Get: Gets the latest state of a long-running operation. Clients can
16487// use this method to poll the operation result at intervals as
16488// recommended by the API service.
16489//
16490// - name: The name of the operation resource.
16491func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
16492	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16493	c.name = name
16494	return c
16495}
16496
16497// Fields allows partial responses to be retrieved. See
16498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16499// for more information.
16500func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
16501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16502	return c
16503}
16504
16505// IfNoneMatch sets the optional parameter which makes the operation
16506// fail if the object's ETag matches the given value. This is useful for
16507// getting updates only after the object has changed since the last
16508// request. Use googleapi.IsNotModified to check whether the response
16509// error from Do is the result of In-None-Match.
16510func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
16511	c.ifNoneMatch_ = entityTag
16512	return c
16513}
16514
16515// Context sets the context to be used in this call's Do method. Any
16516// pending HTTP request will be aborted if the provided context is
16517// canceled.
16518func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
16519	c.ctx_ = ctx
16520	return c
16521}
16522
16523// Header returns an http.Header that can be modified by the caller to
16524// add HTTP headers to the request.
16525func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
16526	if c.header_ == nil {
16527		c.header_ = make(http.Header)
16528	}
16529	return c.header_
16530}
16531
16532func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
16533	reqHeaders := make(http.Header)
16534	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16535	for k, v := range c.header_ {
16536		reqHeaders[k] = v
16537	}
16538	reqHeaders.Set("User-Agent", c.s.userAgent())
16539	if c.ifNoneMatch_ != "" {
16540		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16541	}
16542	var body io.Reader = nil
16543	c.urlParams_.Set("alt", alt)
16544	c.urlParams_.Set("prettyPrint", "false")
16545	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16546	urls += "?" + c.urlParams_.Encode()
16547	req, err := http.NewRequest("GET", urls, body)
16548	if err != nil {
16549		return nil, err
16550	}
16551	req.Header = reqHeaders
16552	googleapi.Expand(req.URL, map[string]string{
16553		"name": c.name,
16554	})
16555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16556}
16557
16558// Do executes the "vision.projects.locations.operations.get" call.
16559// Exactly one of *Operation or error will be non-nil. Any non-2xx
16560// status code is an error. Response headers are in either
16561// *Operation.ServerResponse.Header or (if a response was returned at
16562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16563// to check whether the returned error was because
16564// http.StatusNotModified was returned.
16565func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16566	gensupport.SetOptions(c.urlParams_, opts...)
16567	res, err := c.doRequest("json")
16568	if res != nil && res.StatusCode == http.StatusNotModified {
16569		if res.Body != nil {
16570			res.Body.Close()
16571		}
16572		return nil, &googleapi.Error{
16573			Code:   res.StatusCode,
16574			Header: res.Header,
16575		}
16576	}
16577	if err != nil {
16578		return nil, err
16579	}
16580	defer googleapi.CloseBody(res)
16581	if err := googleapi.CheckResponse(res); err != nil {
16582		return nil, err
16583	}
16584	ret := &Operation{
16585		ServerResponse: googleapi.ServerResponse{
16586			Header:         res.Header,
16587			HTTPStatusCode: res.StatusCode,
16588		},
16589	}
16590	target := &ret
16591	if err := gensupport.DecodeResponse(target, res); err != nil {
16592		return nil, err
16593	}
16594	return ret, nil
16595	// {
16596	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
16597	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
16598	//   "httpMethod": "GET",
16599	//   "id": "vision.projects.locations.operations.get",
16600	//   "parameterOrder": [
16601	//     "name"
16602	//   ],
16603	//   "parameters": {
16604	//     "name": {
16605	//       "description": "The name of the operation resource.",
16606	//       "location": "path",
16607	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
16608	//       "required": true,
16609	//       "type": "string"
16610	//     }
16611	//   },
16612	//   "path": "v1/{+name}",
16613	//   "response": {
16614	//     "$ref": "Operation"
16615	//   },
16616	//   "scopes": [
16617	//     "https://www.googleapis.com/auth/cloud-platform",
16618	//     "https://www.googleapis.com/auth/cloud-vision"
16619	//   ]
16620	// }
16621
16622}
16623
16624// method id "vision.projects.locations.productSets.addProduct":
16625
16626type ProjectsLocationsProductSetsAddProductCall struct {
16627	s                             *Service
16628	name                          string
16629	addproducttoproductsetrequest *AddProductToProductSetRequest
16630	urlParams_                    gensupport.URLParams
16631	ctx_                          context.Context
16632	header_                       http.Header
16633}
16634
16635// AddProduct: Adds a Product to the specified ProductSet. If the
16636// Product is already present, no change is made. One Product can be
16637// added to at most 100 ProductSets. Possible errors: * Returns
16638// NOT_FOUND if the Product or the ProductSet doesn't exist.
16639//
16640// - name: The resource name for the ProductSet to modify. Format is:
16641//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
16642func (r *ProjectsLocationsProductSetsService) AddProduct(name string, addproducttoproductsetrequest *AddProductToProductSetRequest) *ProjectsLocationsProductSetsAddProductCall {
16643	c := &ProjectsLocationsProductSetsAddProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16644	c.name = name
16645	c.addproducttoproductsetrequest = addproducttoproductsetrequest
16646	return c
16647}
16648
16649// Fields allows partial responses to be retrieved. See
16650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16651// for more information.
16652func (c *ProjectsLocationsProductSetsAddProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsAddProductCall {
16653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16654	return c
16655}
16656
16657// Context sets the context to be used in this call's Do method. Any
16658// pending HTTP request will be aborted if the provided context is
16659// canceled.
16660func (c *ProjectsLocationsProductSetsAddProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsAddProductCall {
16661	c.ctx_ = ctx
16662	return c
16663}
16664
16665// Header returns an http.Header that can be modified by the caller to
16666// add HTTP headers to the request.
16667func (c *ProjectsLocationsProductSetsAddProductCall) Header() http.Header {
16668	if c.header_ == nil {
16669		c.header_ = make(http.Header)
16670	}
16671	return c.header_
16672}
16673
16674func (c *ProjectsLocationsProductSetsAddProductCall) doRequest(alt string) (*http.Response, error) {
16675	reqHeaders := make(http.Header)
16676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16677	for k, v := range c.header_ {
16678		reqHeaders[k] = v
16679	}
16680	reqHeaders.Set("User-Agent", c.s.userAgent())
16681	var body io.Reader = nil
16682	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addproducttoproductsetrequest)
16683	if err != nil {
16684		return nil, err
16685	}
16686	reqHeaders.Set("Content-Type", "application/json")
16687	c.urlParams_.Set("alt", alt)
16688	c.urlParams_.Set("prettyPrint", "false")
16689	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:addProduct")
16690	urls += "?" + c.urlParams_.Encode()
16691	req, err := http.NewRequest("POST", urls, body)
16692	if err != nil {
16693		return nil, err
16694	}
16695	req.Header = reqHeaders
16696	googleapi.Expand(req.URL, map[string]string{
16697		"name": c.name,
16698	})
16699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16700}
16701
16702// Do executes the "vision.projects.locations.productSets.addProduct" call.
16703// Exactly one of *Empty or error will be non-nil. Any non-2xx status
16704// code is an error. Response headers are in either
16705// *Empty.ServerResponse.Header or (if a response was returned at all)
16706// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
16707// check whether the returned error was because http.StatusNotModified
16708// was returned.
16709func (c *ProjectsLocationsProductSetsAddProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
16710	gensupport.SetOptions(c.urlParams_, opts...)
16711	res, err := c.doRequest("json")
16712	if res != nil && res.StatusCode == http.StatusNotModified {
16713		if res.Body != nil {
16714			res.Body.Close()
16715		}
16716		return nil, &googleapi.Error{
16717			Code:   res.StatusCode,
16718			Header: res.Header,
16719		}
16720	}
16721	if err != nil {
16722		return nil, err
16723	}
16724	defer googleapi.CloseBody(res)
16725	if err := googleapi.CheckResponse(res); err != nil {
16726		return nil, err
16727	}
16728	ret := &Empty{
16729		ServerResponse: googleapi.ServerResponse{
16730			Header:         res.Header,
16731			HTTPStatusCode: res.StatusCode,
16732		},
16733	}
16734	target := &ret
16735	if err := gensupport.DecodeResponse(target, res); err != nil {
16736		return nil, err
16737	}
16738	return ret, nil
16739	// {
16740	//   "description": "Adds a Product to the specified ProductSet. If the Product is already present, no change is made. One Product can be added to at most 100 ProductSets. Possible errors: * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.",
16741	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:addProduct",
16742	//   "httpMethod": "POST",
16743	//   "id": "vision.projects.locations.productSets.addProduct",
16744	//   "parameterOrder": [
16745	//     "name"
16746	//   ],
16747	//   "parameters": {
16748	//     "name": {
16749	//       "description": "Required. The resource name for the ProductSet to modify. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
16750	//       "location": "path",
16751	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
16752	//       "required": true,
16753	//       "type": "string"
16754	//     }
16755	//   },
16756	//   "path": "v1/{+name}:addProduct",
16757	//   "request": {
16758	//     "$ref": "AddProductToProductSetRequest"
16759	//   },
16760	//   "response": {
16761	//     "$ref": "Empty"
16762	//   },
16763	//   "scopes": [
16764	//     "https://www.googleapis.com/auth/cloud-platform",
16765	//     "https://www.googleapis.com/auth/cloud-vision"
16766	//   ]
16767	// }
16768
16769}
16770
16771// method id "vision.projects.locations.productSets.create":
16772
16773type ProjectsLocationsProductSetsCreateCall struct {
16774	s          *Service
16775	parent     string
16776	productset *ProductSet
16777	urlParams_ gensupport.URLParams
16778	ctx_       context.Context
16779	header_    http.Header
16780}
16781
16782// Create: Creates and returns a new ProductSet resource. Possible
16783// errors: * Returns INVALID_ARGUMENT if display_name is missing, or is
16784// longer than 4096 characters.
16785//
16786// - parent: The project in which the ProductSet should be created.
16787//   Format is `projects/PROJECT_ID/locations/LOC_ID`.
16788func (r *ProjectsLocationsProductSetsService) Create(parent string, productset *ProductSet) *ProjectsLocationsProductSetsCreateCall {
16789	c := &ProjectsLocationsProductSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16790	c.parent = parent
16791	c.productset = productset
16792	return c
16793}
16794
16795// ProductSetId sets the optional parameter "productSetId": A
16796// user-supplied resource id for this ProductSet. If set, the server
16797// will attempt to use this value as the resource id. If it is already
16798// in use, an error is returned with code ALREADY_EXISTS. Must be at
16799// most 128 characters long. It cannot contain the character `/`.
16800func (c *ProjectsLocationsProductSetsCreateCall) ProductSetId(productSetId string) *ProjectsLocationsProductSetsCreateCall {
16801	c.urlParams_.Set("productSetId", productSetId)
16802	return c
16803}
16804
16805// Fields allows partial responses to be retrieved. See
16806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16807// for more information.
16808func (c *ProjectsLocationsProductSetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsCreateCall {
16809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16810	return c
16811}
16812
16813// Context sets the context to be used in this call's Do method. Any
16814// pending HTTP request will be aborted if the provided context is
16815// canceled.
16816func (c *ProjectsLocationsProductSetsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductSetsCreateCall {
16817	c.ctx_ = ctx
16818	return c
16819}
16820
16821// Header returns an http.Header that can be modified by the caller to
16822// add HTTP headers to the request.
16823func (c *ProjectsLocationsProductSetsCreateCall) Header() http.Header {
16824	if c.header_ == nil {
16825		c.header_ = make(http.Header)
16826	}
16827	return c.header_
16828}
16829
16830func (c *ProjectsLocationsProductSetsCreateCall) doRequest(alt string) (*http.Response, error) {
16831	reqHeaders := make(http.Header)
16832	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16833	for k, v := range c.header_ {
16834		reqHeaders[k] = v
16835	}
16836	reqHeaders.Set("User-Agent", c.s.userAgent())
16837	var body io.Reader = nil
16838	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
16839	if err != nil {
16840		return nil, err
16841	}
16842	reqHeaders.Set("Content-Type", "application/json")
16843	c.urlParams_.Set("alt", alt)
16844	c.urlParams_.Set("prettyPrint", "false")
16845	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
16846	urls += "?" + c.urlParams_.Encode()
16847	req, err := http.NewRequest("POST", urls, body)
16848	if err != nil {
16849		return nil, err
16850	}
16851	req.Header = reqHeaders
16852	googleapi.Expand(req.URL, map[string]string{
16853		"parent": c.parent,
16854	})
16855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16856}
16857
16858// Do executes the "vision.projects.locations.productSets.create" call.
16859// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
16860// status code is an error. Response headers are in either
16861// *ProductSet.ServerResponse.Header or (if a response was returned at
16862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16863// to check whether the returned error was because
16864// http.StatusNotModified was returned.
16865func (c *ProjectsLocationsProductSetsCreateCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
16866	gensupport.SetOptions(c.urlParams_, opts...)
16867	res, err := c.doRequest("json")
16868	if res != nil && res.StatusCode == http.StatusNotModified {
16869		if res.Body != nil {
16870			res.Body.Close()
16871		}
16872		return nil, &googleapi.Error{
16873			Code:   res.StatusCode,
16874			Header: res.Header,
16875		}
16876	}
16877	if err != nil {
16878		return nil, err
16879	}
16880	defer googleapi.CloseBody(res)
16881	if err := googleapi.CheckResponse(res); err != nil {
16882		return nil, err
16883	}
16884	ret := &ProductSet{
16885		ServerResponse: googleapi.ServerResponse{
16886			Header:         res.Header,
16887			HTTPStatusCode: res.StatusCode,
16888		},
16889	}
16890	target := &ret
16891	if err := gensupport.DecodeResponse(target, res); err != nil {
16892		return nil, err
16893	}
16894	return ret, nil
16895	// {
16896	//   "description": "Creates and returns a new ProductSet resource. Possible errors: * Returns INVALID_ARGUMENT if display_name is missing, or is longer than 4096 characters.",
16897	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
16898	//   "httpMethod": "POST",
16899	//   "id": "vision.projects.locations.productSets.create",
16900	//   "parameterOrder": [
16901	//     "parent"
16902	//   ],
16903	//   "parameters": {
16904	//     "parent": {
16905	//       "description": "Required. The project in which the ProductSet should be created. Format is `projects/PROJECT_ID/locations/LOC_ID`.",
16906	//       "location": "path",
16907	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
16908	//       "required": true,
16909	//       "type": "string"
16910	//     },
16911	//     "productSetId": {
16912	//       "description": "A user-supplied resource id for this ProductSet. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.",
16913	//       "location": "query",
16914	//       "type": "string"
16915	//     }
16916	//   },
16917	//   "path": "v1/{+parent}/productSets",
16918	//   "request": {
16919	//     "$ref": "ProductSet"
16920	//   },
16921	//   "response": {
16922	//     "$ref": "ProductSet"
16923	//   },
16924	//   "scopes": [
16925	//     "https://www.googleapis.com/auth/cloud-platform",
16926	//     "https://www.googleapis.com/auth/cloud-vision"
16927	//   ]
16928	// }
16929
16930}
16931
16932// method id "vision.projects.locations.productSets.delete":
16933
16934type ProjectsLocationsProductSetsDeleteCall struct {
16935	s          *Service
16936	name       string
16937	urlParams_ gensupport.URLParams
16938	ctx_       context.Context
16939	header_    http.Header
16940}
16941
16942// Delete: Permanently deletes a ProductSet. Products and
16943// ReferenceImages in the ProductSet are not deleted. The actual image
16944// files are not deleted from Google Cloud Storage.
16945//
16946// - name: Resource name of the ProductSet to delete. Format is:
16947//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
16948func (r *ProjectsLocationsProductSetsService) Delete(name string) *ProjectsLocationsProductSetsDeleteCall {
16949	c := &ProjectsLocationsProductSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16950	c.name = name
16951	return c
16952}
16953
16954// Fields allows partial responses to be retrieved. See
16955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16956// for more information.
16957func (c *ProjectsLocationsProductSetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsDeleteCall {
16958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16959	return c
16960}
16961
16962// Context sets the context to be used in this call's Do method. Any
16963// pending HTTP request will be aborted if the provided context is
16964// canceled.
16965func (c *ProjectsLocationsProductSetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductSetsDeleteCall {
16966	c.ctx_ = ctx
16967	return c
16968}
16969
16970// Header returns an http.Header that can be modified by the caller to
16971// add HTTP headers to the request.
16972func (c *ProjectsLocationsProductSetsDeleteCall) Header() http.Header {
16973	if c.header_ == nil {
16974		c.header_ = make(http.Header)
16975	}
16976	return c.header_
16977}
16978
16979func (c *ProjectsLocationsProductSetsDeleteCall) doRequest(alt string) (*http.Response, error) {
16980	reqHeaders := make(http.Header)
16981	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
16982	for k, v := range c.header_ {
16983		reqHeaders[k] = v
16984	}
16985	reqHeaders.Set("User-Agent", c.s.userAgent())
16986	var body io.Reader = nil
16987	c.urlParams_.Set("alt", alt)
16988	c.urlParams_.Set("prettyPrint", "false")
16989	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16990	urls += "?" + c.urlParams_.Encode()
16991	req, err := http.NewRequest("DELETE", urls, body)
16992	if err != nil {
16993		return nil, err
16994	}
16995	req.Header = reqHeaders
16996	googleapi.Expand(req.URL, map[string]string{
16997		"name": c.name,
16998	})
16999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17000}
17001
17002// Do executes the "vision.projects.locations.productSets.delete" call.
17003// Exactly one of *Empty or error will be non-nil. Any non-2xx status
17004// code is an error. Response headers are in either
17005// *Empty.ServerResponse.Header or (if a response was returned at all)
17006// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17007// check whether the returned error was because http.StatusNotModified
17008// was returned.
17009func (c *ProjectsLocationsProductSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
17010	gensupport.SetOptions(c.urlParams_, opts...)
17011	res, err := c.doRequest("json")
17012	if res != nil && res.StatusCode == http.StatusNotModified {
17013		if res.Body != nil {
17014			res.Body.Close()
17015		}
17016		return nil, &googleapi.Error{
17017			Code:   res.StatusCode,
17018			Header: res.Header,
17019		}
17020	}
17021	if err != nil {
17022		return nil, err
17023	}
17024	defer googleapi.CloseBody(res)
17025	if err := googleapi.CheckResponse(res); err != nil {
17026		return nil, err
17027	}
17028	ret := &Empty{
17029		ServerResponse: googleapi.ServerResponse{
17030			Header:         res.Header,
17031			HTTPStatusCode: res.StatusCode,
17032		},
17033	}
17034	target := &ret
17035	if err := gensupport.DecodeResponse(target, res); err != nil {
17036		return nil, err
17037	}
17038	return ret, nil
17039	// {
17040	//   "description": "Permanently deletes a ProductSet. Products and ReferenceImages in the ProductSet are not deleted. The actual image files are not deleted from Google Cloud Storage.",
17041	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
17042	//   "httpMethod": "DELETE",
17043	//   "id": "vision.projects.locations.productSets.delete",
17044	//   "parameterOrder": [
17045	//     "name"
17046	//   ],
17047	//   "parameters": {
17048	//     "name": {
17049	//       "description": "Required. Resource name of the ProductSet to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
17050	//       "location": "path",
17051	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17052	//       "required": true,
17053	//       "type": "string"
17054	//     }
17055	//   },
17056	//   "path": "v1/{+name}",
17057	//   "response": {
17058	//     "$ref": "Empty"
17059	//   },
17060	//   "scopes": [
17061	//     "https://www.googleapis.com/auth/cloud-platform",
17062	//     "https://www.googleapis.com/auth/cloud-vision"
17063	//   ]
17064	// }
17065
17066}
17067
17068// method id "vision.projects.locations.productSets.get":
17069
17070type ProjectsLocationsProductSetsGetCall struct {
17071	s            *Service
17072	name         string
17073	urlParams_   gensupport.URLParams
17074	ifNoneMatch_ string
17075	ctx_         context.Context
17076	header_      http.Header
17077}
17078
17079// Get: Gets information associated with a ProductSet. Possible errors:
17080// * Returns NOT_FOUND if the ProductSet does not exist.
17081//
17082// - name: Resource name of the ProductSet to get. Format is:
17083//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
17084func (r *ProjectsLocationsProductSetsService) Get(name string) *ProjectsLocationsProductSetsGetCall {
17085	c := &ProjectsLocationsProductSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17086	c.name = name
17087	return c
17088}
17089
17090// Fields allows partial responses to be retrieved. See
17091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17092// for more information.
17093func (c *ProjectsLocationsProductSetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsGetCall {
17094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17095	return c
17096}
17097
17098// IfNoneMatch sets the optional parameter which makes the operation
17099// fail if the object's ETag matches the given value. This is useful for
17100// getting updates only after the object has changed since the last
17101// request. Use googleapi.IsNotModified to check whether the response
17102// error from Do is the result of In-None-Match.
17103func (c *ProjectsLocationsProductSetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsGetCall {
17104	c.ifNoneMatch_ = entityTag
17105	return c
17106}
17107
17108// Context sets the context to be used in this call's Do method. Any
17109// pending HTTP request will be aborted if the provided context is
17110// canceled.
17111func (c *ProjectsLocationsProductSetsGetCall) Context(ctx context.Context) *ProjectsLocationsProductSetsGetCall {
17112	c.ctx_ = ctx
17113	return c
17114}
17115
17116// Header returns an http.Header that can be modified by the caller to
17117// add HTTP headers to the request.
17118func (c *ProjectsLocationsProductSetsGetCall) Header() http.Header {
17119	if c.header_ == nil {
17120		c.header_ = make(http.Header)
17121	}
17122	return c.header_
17123}
17124
17125func (c *ProjectsLocationsProductSetsGetCall) doRequest(alt string) (*http.Response, error) {
17126	reqHeaders := make(http.Header)
17127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17128	for k, v := range c.header_ {
17129		reqHeaders[k] = v
17130	}
17131	reqHeaders.Set("User-Agent", c.s.userAgent())
17132	if c.ifNoneMatch_ != "" {
17133		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17134	}
17135	var body io.Reader = nil
17136	c.urlParams_.Set("alt", alt)
17137	c.urlParams_.Set("prettyPrint", "false")
17138	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
17139	urls += "?" + c.urlParams_.Encode()
17140	req, err := http.NewRequest("GET", urls, body)
17141	if err != nil {
17142		return nil, err
17143	}
17144	req.Header = reqHeaders
17145	googleapi.Expand(req.URL, map[string]string{
17146		"name": c.name,
17147	})
17148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17149}
17150
17151// Do executes the "vision.projects.locations.productSets.get" call.
17152// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
17153// status code is an error. Response headers are in either
17154// *ProductSet.ServerResponse.Header or (if a response was returned at
17155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17156// to check whether the returned error was because
17157// http.StatusNotModified was returned.
17158func (c *ProjectsLocationsProductSetsGetCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
17159	gensupport.SetOptions(c.urlParams_, opts...)
17160	res, err := c.doRequest("json")
17161	if res != nil && res.StatusCode == http.StatusNotModified {
17162		if res.Body != nil {
17163			res.Body.Close()
17164		}
17165		return nil, &googleapi.Error{
17166			Code:   res.StatusCode,
17167			Header: res.Header,
17168		}
17169	}
17170	if err != nil {
17171		return nil, err
17172	}
17173	defer googleapi.CloseBody(res)
17174	if err := googleapi.CheckResponse(res); err != nil {
17175		return nil, err
17176	}
17177	ret := &ProductSet{
17178		ServerResponse: googleapi.ServerResponse{
17179			Header:         res.Header,
17180			HTTPStatusCode: res.StatusCode,
17181		},
17182	}
17183	target := &ret
17184	if err := gensupport.DecodeResponse(target, res); err != nil {
17185		return nil, err
17186	}
17187	return ret, nil
17188	// {
17189	//   "description": "Gets information associated with a ProductSet. Possible errors: * Returns NOT_FOUND if the ProductSet does not exist.",
17190	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
17191	//   "httpMethod": "GET",
17192	//   "id": "vision.projects.locations.productSets.get",
17193	//   "parameterOrder": [
17194	//     "name"
17195	//   ],
17196	//   "parameters": {
17197	//     "name": {
17198	//       "description": "Required. Resource name of the ProductSet to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
17199	//       "location": "path",
17200	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17201	//       "required": true,
17202	//       "type": "string"
17203	//     }
17204	//   },
17205	//   "path": "v1/{+name}",
17206	//   "response": {
17207	//     "$ref": "ProductSet"
17208	//   },
17209	//   "scopes": [
17210	//     "https://www.googleapis.com/auth/cloud-platform",
17211	//     "https://www.googleapis.com/auth/cloud-vision"
17212	//   ]
17213	// }
17214
17215}
17216
17217// method id "vision.projects.locations.productSets.import":
17218
17219type ProjectsLocationsProductSetsImportCall struct {
17220	s                        *Service
17221	parent                   string
17222	importproductsetsrequest *ImportProductSetsRequest
17223	urlParams_               gensupport.URLParams
17224	ctx_                     context.Context
17225	header_                  http.Header
17226}
17227
17228// Import: Asynchronous API that imports a list of reference images to
17229// specified product sets based on a list of image information. The
17230// google.longrunning.Operation API can be used to keep track of the
17231// progress and results of the request. `Operation.metadata` contains
17232// `BatchOperationMetadata`. (progress) `Operation.response` contains
17233// `ImportProductSetsResponse`. (results) The input source of this
17234// method is a csv file on Google Cloud Storage. For the format of the
17235// csv file please see ImportProductSetsGcsSource.csv_file_uri.
17236//
17237// - parent: The project in which the ProductSets should be imported.
17238//   Format is `projects/PROJECT_ID/locations/LOC_ID`.
17239func (r *ProjectsLocationsProductSetsService) Import(parent string, importproductsetsrequest *ImportProductSetsRequest) *ProjectsLocationsProductSetsImportCall {
17240	c := &ProjectsLocationsProductSetsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17241	c.parent = parent
17242	c.importproductsetsrequest = importproductsetsrequest
17243	return c
17244}
17245
17246// Fields allows partial responses to be retrieved. See
17247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17248// for more information.
17249func (c *ProjectsLocationsProductSetsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsImportCall {
17250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17251	return c
17252}
17253
17254// Context sets the context to be used in this call's Do method. Any
17255// pending HTTP request will be aborted if the provided context is
17256// canceled.
17257func (c *ProjectsLocationsProductSetsImportCall) Context(ctx context.Context) *ProjectsLocationsProductSetsImportCall {
17258	c.ctx_ = ctx
17259	return c
17260}
17261
17262// Header returns an http.Header that can be modified by the caller to
17263// add HTTP headers to the request.
17264func (c *ProjectsLocationsProductSetsImportCall) Header() http.Header {
17265	if c.header_ == nil {
17266		c.header_ = make(http.Header)
17267	}
17268	return c.header_
17269}
17270
17271func (c *ProjectsLocationsProductSetsImportCall) doRequest(alt string) (*http.Response, error) {
17272	reqHeaders := make(http.Header)
17273	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17274	for k, v := range c.header_ {
17275		reqHeaders[k] = v
17276	}
17277	reqHeaders.Set("User-Agent", c.s.userAgent())
17278	var body io.Reader = nil
17279	body, err := googleapi.WithoutDataWrapper.JSONReader(c.importproductsetsrequest)
17280	if err != nil {
17281		return nil, err
17282	}
17283	reqHeaders.Set("Content-Type", "application/json")
17284	c.urlParams_.Set("alt", alt)
17285	c.urlParams_.Set("prettyPrint", "false")
17286	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets:import")
17287	urls += "?" + c.urlParams_.Encode()
17288	req, err := http.NewRequest("POST", urls, body)
17289	if err != nil {
17290		return nil, err
17291	}
17292	req.Header = reqHeaders
17293	googleapi.Expand(req.URL, map[string]string{
17294		"parent": c.parent,
17295	})
17296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17297}
17298
17299// Do executes the "vision.projects.locations.productSets.import" call.
17300// Exactly one of *Operation or error will be non-nil. Any non-2xx
17301// status code is an error. Response headers are in either
17302// *Operation.ServerResponse.Header or (if a response was returned at
17303// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17304// to check whether the returned error was because
17305// http.StatusNotModified was returned.
17306func (c *ProjectsLocationsProductSetsImportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17307	gensupport.SetOptions(c.urlParams_, opts...)
17308	res, err := c.doRequest("json")
17309	if res != nil && res.StatusCode == http.StatusNotModified {
17310		if res.Body != nil {
17311			res.Body.Close()
17312		}
17313		return nil, &googleapi.Error{
17314			Code:   res.StatusCode,
17315			Header: res.Header,
17316		}
17317	}
17318	if err != nil {
17319		return nil, err
17320	}
17321	defer googleapi.CloseBody(res)
17322	if err := googleapi.CheckResponse(res); err != nil {
17323		return nil, err
17324	}
17325	ret := &Operation{
17326		ServerResponse: googleapi.ServerResponse{
17327			Header:         res.Header,
17328			HTTPStatusCode: res.StatusCode,
17329		},
17330	}
17331	target := &ret
17332	if err := gensupport.DecodeResponse(target, res); err != nil {
17333		return nil, err
17334	}
17335	return ret, nil
17336	// {
17337	//   "description": "Asynchronous API that imports a list of reference images to specified product sets based on a list of image information. The google.longrunning.Operation API can be used to keep track of the progress and results of the request. `Operation.metadata` contains `BatchOperationMetadata`. (progress) `Operation.response` contains `ImportProductSetsResponse`. (results) The input source of this method is a csv file on Google Cloud Storage. For the format of the csv file please see ImportProductSetsGcsSource.csv_file_uri.",
17338	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets:import",
17339	//   "httpMethod": "POST",
17340	//   "id": "vision.projects.locations.productSets.import",
17341	//   "parameterOrder": [
17342	//     "parent"
17343	//   ],
17344	//   "parameters": {
17345	//     "parent": {
17346	//       "description": "Required. The project in which the ProductSets should be imported. Format is `projects/PROJECT_ID/locations/LOC_ID`.",
17347	//       "location": "path",
17348	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17349	//       "required": true,
17350	//       "type": "string"
17351	//     }
17352	//   },
17353	//   "path": "v1/{+parent}/productSets:import",
17354	//   "request": {
17355	//     "$ref": "ImportProductSetsRequest"
17356	//   },
17357	//   "response": {
17358	//     "$ref": "Operation"
17359	//   },
17360	//   "scopes": [
17361	//     "https://www.googleapis.com/auth/cloud-platform",
17362	//     "https://www.googleapis.com/auth/cloud-vision"
17363	//   ]
17364	// }
17365
17366}
17367
17368// method id "vision.projects.locations.productSets.list":
17369
17370type ProjectsLocationsProductSetsListCall struct {
17371	s            *Service
17372	parent       string
17373	urlParams_   gensupport.URLParams
17374	ifNoneMatch_ string
17375	ctx_         context.Context
17376	header_      http.Header
17377}
17378
17379// List: Lists ProductSets in an unspecified order. Possible errors: *
17380// Returns INVALID_ARGUMENT if page_size is greater than 100, or less
17381// than 1.
17382//
17383// - parent: The project from which ProductSets should be listed. Format
17384//   is `projects/PROJECT_ID/locations/LOC_ID`.
17385func (r *ProjectsLocationsProductSetsService) List(parent string) *ProjectsLocationsProductSetsListCall {
17386	c := &ProjectsLocationsProductSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17387	c.parent = parent
17388	return c
17389}
17390
17391// PageSize sets the optional parameter "pageSize": The maximum number
17392// of items to return. Default 10, maximum 100.
17393func (c *ProjectsLocationsProductSetsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsListCall {
17394	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
17395	return c
17396}
17397
17398// PageToken sets the optional parameter "pageToken": The
17399// next_page_token returned from a previous List request, if any.
17400func (c *ProjectsLocationsProductSetsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsListCall {
17401	c.urlParams_.Set("pageToken", pageToken)
17402	return c
17403}
17404
17405// Fields allows partial responses to be retrieved. See
17406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17407// for more information.
17408func (c *ProjectsLocationsProductSetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsListCall {
17409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17410	return c
17411}
17412
17413// IfNoneMatch sets the optional parameter which makes the operation
17414// fail if the object's ETag matches the given value. This is useful for
17415// getting updates only after the object has changed since the last
17416// request. Use googleapi.IsNotModified to check whether the response
17417// error from Do is the result of In-None-Match.
17418func (c *ProjectsLocationsProductSetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsListCall {
17419	c.ifNoneMatch_ = entityTag
17420	return c
17421}
17422
17423// Context sets the context to be used in this call's Do method. Any
17424// pending HTTP request will be aborted if the provided context is
17425// canceled.
17426func (c *ProjectsLocationsProductSetsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsListCall {
17427	c.ctx_ = ctx
17428	return c
17429}
17430
17431// Header returns an http.Header that can be modified by the caller to
17432// add HTTP headers to the request.
17433func (c *ProjectsLocationsProductSetsListCall) Header() http.Header {
17434	if c.header_ == nil {
17435		c.header_ = make(http.Header)
17436	}
17437	return c.header_
17438}
17439
17440func (c *ProjectsLocationsProductSetsListCall) doRequest(alt string) (*http.Response, error) {
17441	reqHeaders := make(http.Header)
17442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17443	for k, v := range c.header_ {
17444		reqHeaders[k] = v
17445	}
17446	reqHeaders.Set("User-Agent", c.s.userAgent())
17447	if c.ifNoneMatch_ != "" {
17448		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17449	}
17450	var body io.Reader = nil
17451	c.urlParams_.Set("alt", alt)
17452	c.urlParams_.Set("prettyPrint", "false")
17453	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
17454	urls += "?" + c.urlParams_.Encode()
17455	req, err := http.NewRequest("GET", urls, body)
17456	if err != nil {
17457		return nil, err
17458	}
17459	req.Header = reqHeaders
17460	googleapi.Expand(req.URL, map[string]string{
17461		"parent": c.parent,
17462	})
17463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17464}
17465
17466// Do executes the "vision.projects.locations.productSets.list" call.
17467// Exactly one of *ListProductSetsResponse or error will be non-nil. Any
17468// non-2xx status code is an error. Response headers are in either
17469// *ListProductSetsResponse.ServerResponse.Header or (if a response was
17470// returned at all) in error.(*googleapi.Error).Header. Use
17471// googleapi.IsNotModified to check whether the returned error was
17472// because http.StatusNotModified was returned.
17473func (c *ProjectsLocationsProductSetsListCall) Do(opts ...googleapi.CallOption) (*ListProductSetsResponse, error) {
17474	gensupport.SetOptions(c.urlParams_, opts...)
17475	res, err := c.doRequest("json")
17476	if res != nil && res.StatusCode == http.StatusNotModified {
17477		if res.Body != nil {
17478			res.Body.Close()
17479		}
17480		return nil, &googleapi.Error{
17481			Code:   res.StatusCode,
17482			Header: res.Header,
17483		}
17484	}
17485	if err != nil {
17486		return nil, err
17487	}
17488	defer googleapi.CloseBody(res)
17489	if err := googleapi.CheckResponse(res); err != nil {
17490		return nil, err
17491	}
17492	ret := &ListProductSetsResponse{
17493		ServerResponse: googleapi.ServerResponse{
17494			Header:         res.Header,
17495			HTTPStatusCode: res.StatusCode,
17496		},
17497	}
17498	target := &ret
17499	if err := gensupport.DecodeResponse(target, res); err != nil {
17500		return nil, err
17501	}
17502	return ret, nil
17503	// {
17504	//   "description": "Lists ProductSets in an unspecified order. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100, or less than 1.",
17505	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
17506	//   "httpMethod": "GET",
17507	//   "id": "vision.projects.locations.productSets.list",
17508	//   "parameterOrder": [
17509	//     "parent"
17510	//   ],
17511	//   "parameters": {
17512	//     "pageSize": {
17513	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
17514	//       "format": "int32",
17515	//       "location": "query",
17516	//       "type": "integer"
17517	//     },
17518	//     "pageToken": {
17519	//       "description": "The next_page_token returned from a previous List request, if any.",
17520	//       "location": "query",
17521	//       "type": "string"
17522	//     },
17523	//     "parent": {
17524	//       "description": "Required. The project from which ProductSets should be listed. Format is `projects/PROJECT_ID/locations/LOC_ID`.",
17525	//       "location": "path",
17526	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17527	//       "required": true,
17528	//       "type": "string"
17529	//     }
17530	//   },
17531	//   "path": "v1/{+parent}/productSets",
17532	//   "response": {
17533	//     "$ref": "ListProductSetsResponse"
17534	//   },
17535	//   "scopes": [
17536	//     "https://www.googleapis.com/auth/cloud-platform",
17537	//     "https://www.googleapis.com/auth/cloud-vision"
17538	//   ]
17539	// }
17540
17541}
17542
17543// Pages invokes f for each page of results.
17544// A non-nil error returned from f will halt the iteration.
17545// The provided context supersedes any context provided to the Context method.
17546func (c *ProjectsLocationsProductSetsListCall) Pages(ctx context.Context, f func(*ListProductSetsResponse) error) error {
17547	c.ctx_ = ctx
17548	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
17549	for {
17550		x, err := c.Do()
17551		if err != nil {
17552			return err
17553		}
17554		if err := f(x); err != nil {
17555			return err
17556		}
17557		if x.NextPageToken == "" {
17558			return nil
17559		}
17560		c.PageToken(x.NextPageToken)
17561	}
17562}
17563
17564// method id "vision.projects.locations.productSets.patch":
17565
17566type ProjectsLocationsProductSetsPatchCall struct {
17567	s          *Service
17568	name       string
17569	productset *ProductSet
17570	urlParams_ gensupport.URLParams
17571	ctx_       context.Context
17572	header_    http.Header
17573}
17574
17575// Patch: Makes changes to a ProductSet resource. Only display_name can
17576// be updated currently. Possible errors: * Returns NOT_FOUND if the
17577// ProductSet does not exist. * Returns INVALID_ARGUMENT if display_name
17578// is present in update_mask but missing from the request or longer than
17579// 4096 characters.
17580//
17581// - name: The resource name of the ProductSet. Format is:
17582//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
17583//   This field is ignored when creating a ProductSet.
17584func (r *ProjectsLocationsProductSetsService) Patch(name string, productset *ProductSet) *ProjectsLocationsProductSetsPatchCall {
17585	c := &ProjectsLocationsProductSetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17586	c.name = name
17587	c.productset = productset
17588	return c
17589}
17590
17591// UpdateMask sets the optional parameter "updateMask": The FieldMask
17592// that specifies which fields to update. If update_mask isn't
17593// specified, all mutable fields are to be updated. Valid mask path is
17594// `display_name`.
17595func (c *ProjectsLocationsProductSetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductSetsPatchCall {
17596	c.urlParams_.Set("updateMask", updateMask)
17597	return c
17598}
17599
17600// Fields allows partial responses to be retrieved. See
17601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17602// for more information.
17603func (c *ProjectsLocationsProductSetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsPatchCall {
17604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17605	return c
17606}
17607
17608// Context sets the context to be used in this call's Do method. Any
17609// pending HTTP request will be aborted if the provided context is
17610// canceled.
17611func (c *ProjectsLocationsProductSetsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductSetsPatchCall {
17612	c.ctx_ = ctx
17613	return c
17614}
17615
17616// Header returns an http.Header that can be modified by the caller to
17617// add HTTP headers to the request.
17618func (c *ProjectsLocationsProductSetsPatchCall) Header() http.Header {
17619	if c.header_ == nil {
17620		c.header_ = make(http.Header)
17621	}
17622	return c.header_
17623}
17624
17625func (c *ProjectsLocationsProductSetsPatchCall) doRequest(alt string) (*http.Response, error) {
17626	reqHeaders := make(http.Header)
17627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17628	for k, v := range c.header_ {
17629		reqHeaders[k] = v
17630	}
17631	reqHeaders.Set("User-Agent", c.s.userAgent())
17632	var body io.Reader = nil
17633	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
17634	if err != nil {
17635		return nil, err
17636	}
17637	reqHeaders.Set("Content-Type", "application/json")
17638	c.urlParams_.Set("alt", alt)
17639	c.urlParams_.Set("prettyPrint", "false")
17640	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
17641	urls += "?" + c.urlParams_.Encode()
17642	req, err := http.NewRequest("PATCH", urls, body)
17643	if err != nil {
17644		return nil, err
17645	}
17646	req.Header = reqHeaders
17647	googleapi.Expand(req.URL, map[string]string{
17648		"name": c.name,
17649	})
17650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17651}
17652
17653// Do executes the "vision.projects.locations.productSets.patch" call.
17654// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
17655// status code is an error. Response headers are in either
17656// *ProductSet.ServerResponse.Header or (if a response was returned at
17657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17658// to check whether the returned error was because
17659// http.StatusNotModified was returned.
17660func (c *ProjectsLocationsProductSetsPatchCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
17661	gensupport.SetOptions(c.urlParams_, opts...)
17662	res, err := c.doRequest("json")
17663	if res != nil && res.StatusCode == http.StatusNotModified {
17664		if res.Body != nil {
17665			res.Body.Close()
17666		}
17667		return nil, &googleapi.Error{
17668			Code:   res.StatusCode,
17669			Header: res.Header,
17670		}
17671	}
17672	if err != nil {
17673		return nil, err
17674	}
17675	defer googleapi.CloseBody(res)
17676	if err := googleapi.CheckResponse(res); err != nil {
17677		return nil, err
17678	}
17679	ret := &ProductSet{
17680		ServerResponse: googleapi.ServerResponse{
17681			Header:         res.Header,
17682			HTTPStatusCode: res.StatusCode,
17683		},
17684	}
17685	target := &ret
17686	if err := gensupport.DecodeResponse(target, res); err != nil {
17687		return nil, err
17688	}
17689	return ret, nil
17690	// {
17691	//   "description": "Makes changes to a ProductSet resource. Only display_name can be updated currently. Possible errors: * Returns NOT_FOUND if the ProductSet does not exist. * Returns INVALID_ARGUMENT if display_name is present in update_mask but missing from the request or longer than 4096 characters.",
17692	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
17693	//   "httpMethod": "PATCH",
17694	//   "id": "vision.projects.locations.productSets.patch",
17695	//   "parameterOrder": [
17696	//     "name"
17697	//   ],
17698	//   "parameters": {
17699	//     "name": {
17700	//       "description": "The resource name of the ProductSet. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. This field is ignored when creating a ProductSet.",
17701	//       "location": "path",
17702	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17703	//       "required": true,
17704	//       "type": "string"
17705	//     },
17706	//     "updateMask": {
17707	//       "description": "The FieldMask that specifies which fields to update. If update_mask isn't specified, all mutable fields are to be updated. Valid mask path is `display_name`.",
17708	//       "format": "google-fieldmask",
17709	//       "location": "query",
17710	//       "type": "string"
17711	//     }
17712	//   },
17713	//   "path": "v1/{+name}",
17714	//   "request": {
17715	//     "$ref": "ProductSet"
17716	//   },
17717	//   "response": {
17718	//     "$ref": "ProductSet"
17719	//   },
17720	//   "scopes": [
17721	//     "https://www.googleapis.com/auth/cloud-platform",
17722	//     "https://www.googleapis.com/auth/cloud-vision"
17723	//   ]
17724	// }
17725
17726}
17727
17728// method id "vision.projects.locations.productSets.removeProduct":
17729
17730type ProjectsLocationsProductSetsRemoveProductCall struct {
17731	s                                  *Service
17732	name                               string
17733	removeproductfromproductsetrequest *RemoveProductFromProductSetRequest
17734	urlParams_                         gensupport.URLParams
17735	ctx_                               context.Context
17736	header_                            http.Header
17737}
17738
17739// RemoveProduct: Removes a Product from the specified ProductSet.
17740//
17741// - name: The resource name for the ProductSet to modify. Format is:
17742//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
17743func (r *ProjectsLocationsProductSetsService) RemoveProduct(name string, removeproductfromproductsetrequest *RemoveProductFromProductSetRequest) *ProjectsLocationsProductSetsRemoveProductCall {
17744	c := &ProjectsLocationsProductSetsRemoveProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17745	c.name = name
17746	c.removeproductfromproductsetrequest = removeproductfromproductsetrequest
17747	return c
17748}
17749
17750// Fields allows partial responses to be retrieved. See
17751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17752// for more information.
17753func (c *ProjectsLocationsProductSetsRemoveProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsRemoveProductCall {
17754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17755	return c
17756}
17757
17758// Context sets the context to be used in this call's Do method. Any
17759// pending HTTP request will be aborted if the provided context is
17760// canceled.
17761func (c *ProjectsLocationsProductSetsRemoveProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsRemoveProductCall {
17762	c.ctx_ = ctx
17763	return c
17764}
17765
17766// Header returns an http.Header that can be modified by the caller to
17767// add HTTP headers to the request.
17768func (c *ProjectsLocationsProductSetsRemoveProductCall) Header() http.Header {
17769	if c.header_ == nil {
17770		c.header_ = make(http.Header)
17771	}
17772	return c.header_
17773}
17774
17775func (c *ProjectsLocationsProductSetsRemoveProductCall) doRequest(alt string) (*http.Response, error) {
17776	reqHeaders := make(http.Header)
17777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17778	for k, v := range c.header_ {
17779		reqHeaders[k] = v
17780	}
17781	reqHeaders.Set("User-Agent", c.s.userAgent())
17782	var body io.Reader = nil
17783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.removeproductfromproductsetrequest)
17784	if err != nil {
17785		return nil, err
17786	}
17787	reqHeaders.Set("Content-Type", "application/json")
17788	c.urlParams_.Set("alt", alt)
17789	c.urlParams_.Set("prettyPrint", "false")
17790	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:removeProduct")
17791	urls += "?" + c.urlParams_.Encode()
17792	req, err := http.NewRequest("POST", urls, body)
17793	if err != nil {
17794		return nil, err
17795	}
17796	req.Header = reqHeaders
17797	googleapi.Expand(req.URL, map[string]string{
17798		"name": c.name,
17799	})
17800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17801}
17802
17803// Do executes the "vision.projects.locations.productSets.removeProduct" call.
17804// Exactly one of *Empty or error will be non-nil. Any non-2xx status
17805// code is an error. Response headers are in either
17806// *Empty.ServerResponse.Header or (if a response was returned at all)
17807// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17808// check whether the returned error was because http.StatusNotModified
17809// was returned.
17810func (c *ProjectsLocationsProductSetsRemoveProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
17811	gensupport.SetOptions(c.urlParams_, opts...)
17812	res, err := c.doRequest("json")
17813	if res != nil && res.StatusCode == http.StatusNotModified {
17814		if res.Body != nil {
17815			res.Body.Close()
17816		}
17817		return nil, &googleapi.Error{
17818			Code:   res.StatusCode,
17819			Header: res.Header,
17820		}
17821	}
17822	if err != nil {
17823		return nil, err
17824	}
17825	defer googleapi.CloseBody(res)
17826	if err := googleapi.CheckResponse(res); err != nil {
17827		return nil, err
17828	}
17829	ret := &Empty{
17830		ServerResponse: googleapi.ServerResponse{
17831			Header:         res.Header,
17832			HTTPStatusCode: res.StatusCode,
17833		},
17834	}
17835	target := &ret
17836	if err := gensupport.DecodeResponse(target, res); err != nil {
17837		return nil, err
17838	}
17839	return ret, nil
17840	// {
17841	//   "description": "Removes a Product from the specified ProductSet.",
17842	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:removeProduct",
17843	//   "httpMethod": "POST",
17844	//   "id": "vision.projects.locations.productSets.removeProduct",
17845	//   "parameterOrder": [
17846	//     "name"
17847	//   ],
17848	//   "parameters": {
17849	//     "name": {
17850	//       "description": "Required. The resource name for the ProductSet to modify. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
17851	//       "location": "path",
17852	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17853	//       "required": true,
17854	//       "type": "string"
17855	//     }
17856	//   },
17857	//   "path": "v1/{+name}:removeProduct",
17858	//   "request": {
17859	//     "$ref": "RemoveProductFromProductSetRequest"
17860	//   },
17861	//   "response": {
17862	//     "$ref": "Empty"
17863	//   },
17864	//   "scopes": [
17865	//     "https://www.googleapis.com/auth/cloud-platform",
17866	//     "https://www.googleapis.com/auth/cloud-vision"
17867	//   ]
17868	// }
17869
17870}
17871
17872// method id "vision.projects.locations.productSets.products.list":
17873
17874type ProjectsLocationsProductSetsProductsListCall struct {
17875	s            *Service
17876	name         string
17877	urlParams_   gensupport.URLParams
17878	ifNoneMatch_ string
17879	ctx_         context.Context
17880	header_      http.Header
17881}
17882
17883// List: Lists the Products in a ProductSet, in an unspecified order. If
17884// the ProductSet does not exist, the products field of the response
17885// will be empty. Possible errors: * Returns INVALID_ARGUMENT if
17886// page_size is greater than 100 or less than 1.
17887//
17888// - name: The ProductSet resource for which to retrieve Products.
17889//   Format is:
17890//   `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
17891func (r *ProjectsLocationsProductSetsProductsService) List(name string) *ProjectsLocationsProductSetsProductsListCall {
17892	c := &ProjectsLocationsProductSetsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17893	c.name = name
17894	return c
17895}
17896
17897// PageSize sets the optional parameter "pageSize": The maximum number
17898// of items to return. Default 10, maximum 100.
17899func (c *ProjectsLocationsProductSetsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsProductsListCall {
17900	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
17901	return c
17902}
17903
17904// PageToken sets the optional parameter "pageToken": The
17905// next_page_token returned from a previous List request, if any.
17906func (c *ProjectsLocationsProductSetsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsProductsListCall {
17907	c.urlParams_.Set("pageToken", pageToken)
17908	return c
17909}
17910
17911// Fields allows partial responses to be retrieved. See
17912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17913// for more information.
17914func (c *ProjectsLocationsProductSetsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsProductsListCall {
17915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17916	return c
17917}
17918
17919// IfNoneMatch sets the optional parameter which makes the operation
17920// fail if the object's ETag matches the given value. This is useful for
17921// getting updates only after the object has changed since the last
17922// request. Use googleapi.IsNotModified to check whether the response
17923// error from Do is the result of In-None-Match.
17924func (c *ProjectsLocationsProductSetsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsProductsListCall {
17925	c.ifNoneMatch_ = entityTag
17926	return c
17927}
17928
17929// Context sets the context to be used in this call's Do method. Any
17930// pending HTTP request will be aborted if the provided context is
17931// canceled.
17932func (c *ProjectsLocationsProductSetsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsProductsListCall {
17933	c.ctx_ = ctx
17934	return c
17935}
17936
17937// Header returns an http.Header that can be modified by the caller to
17938// add HTTP headers to the request.
17939func (c *ProjectsLocationsProductSetsProductsListCall) Header() http.Header {
17940	if c.header_ == nil {
17941		c.header_ = make(http.Header)
17942	}
17943	return c.header_
17944}
17945
17946func (c *ProjectsLocationsProductSetsProductsListCall) doRequest(alt string) (*http.Response, error) {
17947	reqHeaders := make(http.Header)
17948	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
17949	for k, v := range c.header_ {
17950		reqHeaders[k] = v
17951	}
17952	reqHeaders.Set("User-Agent", c.s.userAgent())
17953	if c.ifNoneMatch_ != "" {
17954		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17955	}
17956	var body io.Reader = nil
17957	c.urlParams_.Set("alt", alt)
17958	c.urlParams_.Set("prettyPrint", "false")
17959	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/products")
17960	urls += "?" + c.urlParams_.Encode()
17961	req, err := http.NewRequest("GET", urls, body)
17962	if err != nil {
17963		return nil, err
17964	}
17965	req.Header = reqHeaders
17966	googleapi.Expand(req.URL, map[string]string{
17967		"name": c.name,
17968	})
17969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17970}
17971
17972// Do executes the "vision.projects.locations.productSets.products.list" call.
17973// Exactly one of *ListProductsInProductSetResponse or error will be
17974// non-nil. Any non-2xx status code is an error. Response headers are in
17975// either *ListProductsInProductSetResponse.ServerResponse.Header or (if
17976// a response was returned at all) in error.(*googleapi.Error).Header.
17977// Use googleapi.IsNotModified to check whether the returned error was
17978// because http.StatusNotModified was returned.
17979func (c *ProjectsLocationsProductSetsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsInProductSetResponse, error) {
17980	gensupport.SetOptions(c.urlParams_, opts...)
17981	res, err := c.doRequest("json")
17982	if res != nil && res.StatusCode == http.StatusNotModified {
17983		if res.Body != nil {
17984			res.Body.Close()
17985		}
17986		return nil, &googleapi.Error{
17987			Code:   res.StatusCode,
17988			Header: res.Header,
17989		}
17990	}
17991	if err != nil {
17992		return nil, err
17993	}
17994	defer googleapi.CloseBody(res)
17995	if err := googleapi.CheckResponse(res); err != nil {
17996		return nil, err
17997	}
17998	ret := &ListProductsInProductSetResponse{
17999		ServerResponse: googleapi.ServerResponse{
18000			Header:         res.Header,
18001			HTTPStatusCode: res.StatusCode,
18002		},
18003	}
18004	target := &ret
18005	if err := gensupport.DecodeResponse(target, res); err != nil {
18006		return nil, err
18007	}
18008	return ret, nil
18009	// {
18010	//   "description": "Lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be empty. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.",
18011	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}/products",
18012	//   "httpMethod": "GET",
18013	//   "id": "vision.projects.locations.productSets.products.list",
18014	//   "parameterOrder": [
18015	//     "name"
18016	//   ],
18017	//   "parameters": {
18018	//     "name": {
18019	//       "description": "Required. The ProductSet resource for which to retrieve Products. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
18020	//       "location": "path",
18021	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18022	//       "required": true,
18023	//       "type": "string"
18024	//     },
18025	//     "pageSize": {
18026	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
18027	//       "format": "int32",
18028	//       "location": "query",
18029	//       "type": "integer"
18030	//     },
18031	//     "pageToken": {
18032	//       "description": "The next_page_token returned from a previous List request, if any.",
18033	//       "location": "query",
18034	//       "type": "string"
18035	//     }
18036	//   },
18037	//   "path": "v1/{+name}/products",
18038	//   "response": {
18039	//     "$ref": "ListProductsInProductSetResponse"
18040	//   },
18041	//   "scopes": [
18042	//     "https://www.googleapis.com/auth/cloud-platform",
18043	//     "https://www.googleapis.com/auth/cloud-vision"
18044	//   ]
18045	// }
18046
18047}
18048
18049// Pages invokes f for each page of results.
18050// A non-nil error returned from f will halt the iteration.
18051// The provided context supersedes any context provided to the Context method.
18052func (c *ProjectsLocationsProductSetsProductsListCall) Pages(ctx context.Context, f func(*ListProductsInProductSetResponse) error) error {
18053	c.ctx_ = ctx
18054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18055	for {
18056		x, err := c.Do()
18057		if err != nil {
18058			return err
18059		}
18060		if err := f(x); err != nil {
18061			return err
18062		}
18063		if x.NextPageToken == "" {
18064			return nil
18065		}
18066		c.PageToken(x.NextPageToken)
18067	}
18068}
18069
18070// method id "vision.projects.locations.products.create":
18071
18072type ProjectsLocationsProductsCreateCall struct {
18073	s          *Service
18074	parent     string
18075	product    *Product
18076	urlParams_ gensupport.URLParams
18077	ctx_       context.Context
18078	header_    http.Header
18079}
18080
18081// Create: Creates and returns a new product resource. Possible errors:
18082// * Returns INVALID_ARGUMENT if display_name is missing or longer than
18083// 4096 characters. * Returns INVALID_ARGUMENT if description is longer
18084// than 4096 characters. * Returns INVALID_ARGUMENT if product_category
18085// is missing or invalid.
18086//
18087// - parent: The project in which the Product should be created. Format
18088//   is `projects/PROJECT_ID/locations/LOC_ID`.
18089func (r *ProjectsLocationsProductsService) Create(parent string, product *Product) *ProjectsLocationsProductsCreateCall {
18090	c := &ProjectsLocationsProductsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18091	c.parent = parent
18092	c.product = product
18093	return c
18094}
18095
18096// ProductId sets the optional parameter "productId": A user-supplied
18097// resource id for this Product. If set, the server will attempt to use
18098// this value as the resource id. If it is already in use, an error is
18099// returned with code ALREADY_EXISTS. Must be at most 128 characters
18100// long. It cannot contain the character `/`.
18101func (c *ProjectsLocationsProductsCreateCall) ProductId(productId string) *ProjectsLocationsProductsCreateCall {
18102	c.urlParams_.Set("productId", productId)
18103	return c
18104}
18105
18106// Fields allows partial responses to be retrieved. See
18107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18108// for more information.
18109func (c *ProjectsLocationsProductsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsCreateCall {
18110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18111	return c
18112}
18113
18114// Context sets the context to be used in this call's Do method. Any
18115// pending HTTP request will be aborted if the provided context is
18116// canceled.
18117func (c *ProjectsLocationsProductsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsCreateCall {
18118	c.ctx_ = ctx
18119	return c
18120}
18121
18122// Header returns an http.Header that can be modified by the caller to
18123// add HTTP headers to the request.
18124func (c *ProjectsLocationsProductsCreateCall) Header() http.Header {
18125	if c.header_ == nil {
18126		c.header_ = make(http.Header)
18127	}
18128	return c.header_
18129}
18130
18131func (c *ProjectsLocationsProductsCreateCall) doRequest(alt string) (*http.Response, error) {
18132	reqHeaders := make(http.Header)
18133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18134	for k, v := range c.header_ {
18135		reqHeaders[k] = v
18136	}
18137	reqHeaders.Set("User-Agent", c.s.userAgent())
18138	var body io.Reader = nil
18139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
18140	if err != nil {
18141		return nil, err
18142	}
18143	reqHeaders.Set("Content-Type", "application/json")
18144	c.urlParams_.Set("alt", alt)
18145	c.urlParams_.Set("prettyPrint", "false")
18146	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
18147	urls += "?" + c.urlParams_.Encode()
18148	req, err := http.NewRequest("POST", urls, body)
18149	if err != nil {
18150		return nil, err
18151	}
18152	req.Header = reqHeaders
18153	googleapi.Expand(req.URL, map[string]string{
18154		"parent": c.parent,
18155	})
18156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18157}
18158
18159// Do executes the "vision.projects.locations.products.create" call.
18160// Exactly one of *Product or error will be non-nil. Any non-2xx status
18161// code is an error. Response headers are in either
18162// *Product.ServerResponse.Header or (if a response was returned at all)
18163// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18164// check whether the returned error was because http.StatusNotModified
18165// was returned.
18166func (c *ProjectsLocationsProductsCreateCall) Do(opts ...googleapi.CallOption) (*Product, error) {
18167	gensupport.SetOptions(c.urlParams_, opts...)
18168	res, err := c.doRequest("json")
18169	if res != nil && res.StatusCode == http.StatusNotModified {
18170		if res.Body != nil {
18171			res.Body.Close()
18172		}
18173		return nil, &googleapi.Error{
18174			Code:   res.StatusCode,
18175			Header: res.Header,
18176		}
18177	}
18178	if err != nil {
18179		return nil, err
18180	}
18181	defer googleapi.CloseBody(res)
18182	if err := googleapi.CheckResponse(res); err != nil {
18183		return nil, err
18184	}
18185	ret := &Product{
18186		ServerResponse: googleapi.ServerResponse{
18187			Header:         res.Header,
18188			HTTPStatusCode: res.StatusCode,
18189		},
18190	}
18191	target := &ret
18192	if err := gensupport.DecodeResponse(target, res); err != nil {
18193		return nil, err
18194	}
18195	return ret, nil
18196	// {
18197	//   "description": "Creates and returns a new product resource. Possible errors: * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters. * Returns INVALID_ARGUMENT if description is longer than 4096 characters. * Returns INVALID_ARGUMENT if product_category is missing or invalid.",
18198	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
18199	//   "httpMethod": "POST",
18200	//   "id": "vision.projects.locations.products.create",
18201	//   "parameterOrder": [
18202	//     "parent"
18203	//   ],
18204	//   "parameters": {
18205	//     "parent": {
18206	//       "description": "Required. The project in which the Product should be created. Format is `projects/PROJECT_ID/locations/LOC_ID`.",
18207	//       "location": "path",
18208	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18209	//       "required": true,
18210	//       "type": "string"
18211	//     },
18212	//     "productId": {
18213	//       "description": "A user-supplied resource id for this Product. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.",
18214	//       "location": "query",
18215	//       "type": "string"
18216	//     }
18217	//   },
18218	//   "path": "v1/{+parent}/products",
18219	//   "request": {
18220	//     "$ref": "Product"
18221	//   },
18222	//   "response": {
18223	//     "$ref": "Product"
18224	//   },
18225	//   "scopes": [
18226	//     "https://www.googleapis.com/auth/cloud-platform",
18227	//     "https://www.googleapis.com/auth/cloud-vision"
18228	//   ]
18229	// }
18230
18231}
18232
18233// method id "vision.projects.locations.products.delete":
18234
18235type ProjectsLocationsProductsDeleteCall struct {
18236	s          *Service
18237	name       string
18238	urlParams_ gensupport.URLParams
18239	ctx_       context.Context
18240	header_    http.Header
18241}
18242
18243// Delete: Permanently deletes a product and its reference images.
18244// Metadata of the product and all its images will be deleted right
18245// away, but search queries against ProductSets containing the product
18246// may still work until all related caches are refreshed.
18247//
18248// - name: Resource name of product to delete. Format is:
18249//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
18250func (r *ProjectsLocationsProductsService) Delete(name string) *ProjectsLocationsProductsDeleteCall {
18251	c := &ProjectsLocationsProductsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18252	c.name = name
18253	return c
18254}
18255
18256// Fields allows partial responses to be retrieved. See
18257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18258// for more information.
18259func (c *ProjectsLocationsProductsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsDeleteCall {
18260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18261	return c
18262}
18263
18264// Context sets the context to be used in this call's Do method. Any
18265// pending HTTP request will be aborted if the provided context is
18266// canceled.
18267func (c *ProjectsLocationsProductsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsDeleteCall {
18268	c.ctx_ = ctx
18269	return c
18270}
18271
18272// Header returns an http.Header that can be modified by the caller to
18273// add HTTP headers to the request.
18274func (c *ProjectsLocationsProductsDeleteCall) Header() http.Header {
18275	if c.header_ == nil {
18276		c.header_ = make(http.Header)
18277	}
18278	return c.header_
18279}
18280
18281func (c *ProjectsLocationsProductsDeleteCall) doRequest(alt string) (*http.Response, error) {
18282	reqHeaders := make(http.Header)
18283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18284	for k, v := range c.header_ {
18285		reqHeaders[k] = v
18286	}
18287	reqHeaders.Set("User-Agent", c.s.userAgent())
18288	var body io.Reader = nil
18289	c.urlParams_.Set("alt", alt)
18290	c.urlParams_.Set("prettyPrint", "false")
18291	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18292	urls += "?" + c.urlParams_.Encode()
18293	req, err := http.NewRequest("DELETE", urls, body)
18294	if err != nil {
18295		return nil, err
18296	}
18297	req.Header = reqHeaders
18298	googleapi.Expand(req.URL, map[string]string{
18299		"name": c.name,
18300	})
18301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18302}
18303
18304// Do executes the "vision.projects.locations.products.delete" call.
18305// Exactly one of *Empty or error will be non-nil. Any non-2xx status
18306// code is an error. Response headers are in either
18307// *Empty.ServerResponse.Header or (if a response was returned at all)
18308// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18309// check whether the returned error was because http.StatusNotModified
18310// was returned.
18311func (c *ProjectsLocationsProductsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
18312	gensupport.SetOptions(c.urlParams_, opts...)
18313	res, err := c.doRequest("json")
18314	if res != nil && res.StatusCode == http.StatusNotModified {
18315		if res.Body != nil {
18316			res.Body.Close()
18317		}
18318		return nil, &googleapi.Error{
18319			Code:   res.StatusCode,
18320			Header: res.Header,
18321		}
18322	}
18323	if err != nil {
18324		return nil, err
18325	}
18326	defer googleapi.CloseBody(res)
18327	if err := googleapi.CheckResponse(res); err != nil {
18328		return nil, err
18329	}
18330	ret := &Empty{
18331		ServerResponse: googleapi.ServerResponse{
18332			Header:         res.Header,
18333			HTTPStatusCode: res.StatusCode,
18334		},
18335	}
18336	target := &ret
18337	if err := gensupport.DecodeResponse(target, res); err != nil {
18338		return nil, err
18339	}
18340	return ret, nil
18341	// {
18342	//   "description": "Permanently deletes a product and its reference images. Metadata of the product and all its images will be deleted right away, but search queries against ProductSets containing the product may still work until all related caches are refreshed.",
18343	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
18344	//   "httpMethod": "DELETE",
18345	//   "id": "vision.projects.locations.products.delete",
18346	//   "parameterOrder": [
18347	//     "name"
18348	//   ],
18349	//   "parameters": {
18350	//     "name": {
18351	//       "description": "Required. Resource name of product to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
18352	//       "location": "path",
18353	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
18354	//       "required": true,
18355	//       "type": "string"
18356	//     }
18357	//   },
18358	//   "path": "v1/{+name}",
18359	//   "response": {
18360	//     "$ref": "Empty"
18361	//   },
18362	//   "scopes": [
18363	//     "https://www.googleapis.com/auth/cloud-platform",
18364	//     "https://www.googleapis.com/auth/cloud-vision"
18365	//   ]
18366	// }
18367
18368}
18369
18370// method id "vision.projects.locations.products.get":
18371
18372type ProjectsLocationsProductsGetCall struct {
18373	s            *Service
18374	name         string
18375	urlParams_   gensupport.URLParams
18376	ifNoneMatch_ string
18377	ctx_         context.Context
18378	header_      http.Header
18379}
18380
18381// Get: Gets information associated with a Product. Possible errors: *
18382// Returns NOT_FOUND if the Product does not exist.
18383//
18384// - name: Resource name of the Product to get. Format is:
18385//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
18386func (r *ProjectsLocationsProductsService) Get(name string) *ProjectsLocationsProductsGetCall {
18387	c := &ProjectsLocationsProductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18388	c.name = name
18389	return c
18390}
18391
18392// Fields allows partial responses to be retrieved. See
18393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18394// for more information.
18395func (c *ProjectsLocationsProductsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsGetCall {
18396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18397	return c
18398}
18399
18400// IfNoneMatch sets the optional parameter which makes the operation
18401// fail if the object's ETag matches the given value. This is useful for
18402// getting updates only after the object has changed since the last
18403// request. Use googleapi.IsNotModified to check whether the response
18404// error from Do is the result of In-None-Match.
18405func (c *ProjectsLocationsProductsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsGetCall {
18406	c.ifNoneMatch_ = entityTag
18407	return c
18408}
18409
18410// Context sets the context to be used in this call's Do method. Any
18411// pending HTTP request will be aborted if the provided context is
18412// canceled.
18413func (c *ProjectsLocationsProductsGetCall) Context(ctx context.Context) *ProjectsLocationsProductsGetCall {
18414	c.ctx_ = ctx
18415	return c
18416}
18417
18418// Header returns an http.Header that can be modified by the caller to
18419// add HTTP headers to the request.
18420func (c *ProjectsLocationsProductsGetCall) Header() http.Header {
18421	if c.header_ == nil {
18422		c.header_ = make(http.Header)
18423	}
18424	return c.header_
18425}
18426
18427func (c *ProjectsLocationsProductsGetCall) doRequest(alt string) (*http.Response, error) {
18428	reqHeaders := make(http.Header)
18429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18430	for k, v := range c.header_ {
18431		reqHeaders[k] = v
18432	}
18433	reqHeaders.Set("User-Agent", c.s.userAgent())
18434	if c.ifNoneMatch_ != "" {
18435		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18436	}
18437	var body io.Reader = nil
18438	c.urlParams_.Set("alt", alt)
18439	c.urlParams_.Set("prettyPrint", "false")
18440	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18441	urls += "?" + c.urlParams_.Encode()
18442	req, err := http.NewRequest("GET", urls, body)
18443	if err != nil {
18444		return nil, err
18445	}
18446	req.Header = reqHeaders
18447	googleapi.Expand(req.URL, map[string]string{
18448		"name": c.name,
18449	})
18450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18451}
18452
18453// Do executes the "vision.projects.locations.products.get" call.
18454// Exactly one of *Product or error will be non-nil. Any non-2xx status
18455// code is an error. Response headers are in either
18456// *Product.ServerResponse.Header or (if a response was returned at all)
18457// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18458// check whether the returned error was because http.StatusNotModified
18459// was returned.
18460func (c *ProjectsLocationsProductsGetCall) Do(opts ...googleapi.CallOption) (*Product, error) {
18461	gensupport.SetOptions(c.urlParams_, opts...)
18462	res, err := c.doRequest("json")
18463	if res != nil && res.StatusCode == http.StatusNotModified {
18464		if res.Body != nil {
18465			res.Body.Close()
18466		}
18467		return nil, &googleapi.Error{
18468			Code:   res.StatusCode,
18469			Header: res.Header,
18470		}
18471	}
18472	if err != nil {
18473		return nil, err
18474	}
18475	defer googleapi.CloseBody(res)
18476	if err := googleapi.CheckResponse(res); err != nil {
18477		return nil, err
18478	}
18479	ret := &Product{
18480		ServerResponse: googleapi.ServerResponse{
18481			Header:         res.Header,
18482			HTTPStatusCode: res.StatusCode,
18483		},
18484	}
18485	target := &ret
18486	if err := gensupport.DecodeResponse(target, res); err != nil {
18487		return nil, err
18488	}
18489	return ret, nil
18490	// {
18491	//   "description": "Gets information associated with a Product. Possible errors: * Returns NOT_FOUND if the Product does not exist.",
18492	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
18493	//   "httpMethod": "GET",
18494	//   "id": "vision.projects.locations.products.get",
18495	//   "parameterOrder": [
18496	//     "name"
18497	//   ],
18498	//   "parameters": {
18499	//     "name": {
18500	//       "description": "Required. Resource name of the Product to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
18501	//       "location": "path",
18502	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
18503	//       "required": true,
18504	//       "type": "string"
18505	//     }
18506	//   },
18507	//   "path": "v1/{+name}",
18508	//   "response": {
18509	//     "$ref": "Product"
18510	//   },
18511	//   "scopes": [
18512	//     "https://www.googleapis.com/auth/cloud-platform",
18513	//     "https://www.googleapis.com/auth/cloud-vision"
18514	//   ]
18515	// }
18516
18517}
18518
18519// method id "vision.projects.locations.products.list":
18520
18521type ProjectsLocationsProductsListCall struct {
18522	s            *Service
18523	parent       string
18524	urlParams_   gensupport.URLParams
18525	ifNoneMatch_ string
18526	ctx_         context.Context
18527	header_      http.Header
18528}
18529
18530// List: Lists products in an unspecified order. Possible errors: *
18531// Returns INVALID_ARGUMENT if page_size is greater than 100 or less
18532// than 1.
18533//
18534// - parent: The project OR ProductSet from which Products should be
18535//   listed. Format: `projects/PROJECT_ID/locations/LOC_ID`.
18536func (r *ProjectsLocationsProductsService) List(parent string) *ProjectsLocationsProductsListCall {
18537	c := &ProjectsLocationsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18538	c.parent = parent
18539	return c
18540}
18541
18542// PageSize sets the optional parameter "pageSize": The maximum number
18543// of items to return. Default 10, maximum 100.
18544func (c *ProjectsLocationsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductsListCall {
18545	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
18546	return c
18547}
18548
18549// PageToken sets the optional parameter "pageToken": The
18550// next_page_token returned from a previous List request, if any.
18551func (c *ProjectsLocationsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductsListCall {
18552	c.urlParams_.Set("pageToken", pageToken)
18553	return c
18554}
18555
18556// Fields allows partial responses to be retrieved. See
18557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18558// for more information.
18559func (c *ProjectsLocationsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsListCall {
18560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18561	return c
18562}
18563
18564// IfNoneMatch sets the optional parameter which makes the operation
18565// fail if the object's ETag matches the given value. This is useful for
18566// getting updates only after the object has changed since the last
18567// request. Use googleapi.IsNotModified to check whether the response
18568// error from Do is the result of In-None-Match.
18569func (c *ProjectsLocationsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsListCall {
18570	c.ifNoneMatch_ = entityTag
18571	return c
18572}
18573
18574// Context sets the context to be used in this call's Do method. Any
18575// pending HTTP request will be aborted if the provided context is
18576// canceled.
18577func (c *ProjectsLocationsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductsListCall {
18578	c.ctx_ = ctx
18579	return c
18580}
18581
18582// Header returns an http.Header that can be modified by the caller to
18583// add HTTP headers to the request.
18584func (c *ProjectsLocationsProductsListCall) Header() http.Header {
18585	if c.header_ == nil {
18586		c.header_ = make(http.Header)
18587	}
18588	return c.header_
18589}
18590
18591func (c *ProjectsLocationsProductsListCall) doRequest(alt string) (*http.Response, error) {
18592	reqHeaders := make(http.Header)
18593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18594	for k, v := range c.header_ {
18595		reqHeaders[k] = v
18596	}
18597	reqHeaders.Set("User-Agent", c.s.userAgent())
18598	if c.ifNoneMatch_ != "" {
18599		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18600	}
18601	var body io.Reader = nil
18602	c.urlParams_.Set("alt", alt)
18603	c.urlParams_.Set("prettyPrint", "false")
18604	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
18605	urls += "?" + c.urlParams_.Encode()
18606	req, err := http.NewRequest("GET", urls, body)
18607	if err != nil {
18608		return nil, err
18609	}
18610	req.Header = reqHeaders
18611	googleapi.Expand(req.URL, map[string]string{
18612		"parent": c.parent,
18613	})
18614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18615}
18616
18617// Do executes the "vision.projects.locations.products.list" call.
18618// Exactly one of *ListProductsResponse or error will be non-nil. Any
18619// non-2xx status code is an error. Response headers are in either
18620// *ListProductsResponse.ServerResponse.Header or (if a response was
18621// returned at all) in error.(*googleapi.Error).Header. Use
18622// googleapi.IsNotModified to check whether the returned error was
18623// because http.StatusNotModified was returned.
18624func (c *ProjectsLocationsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsResponse, error) {
18625	gensupport.SetOptions(c.urlParams_, opts...)
18626	res, err := c.doRequest("json")
18627	if res != nil && res.StatusCode == http.StatusNotModified {
18628		if res.Body != nil {
18629			res.Body.Close()
18630		}
18631		return nil, &googleapi.Error{
18632			Code:   res.StatusCode,
18633			Header: res.Header,
18634		}
18635	}
18636	if err != nil {
18637		return nil, err
18638	}
18639	defer googleapi.CloseBody(res)
18640	if err := googleapi.CheckResponse(res); err != nil {
18641		return nil, err
18642	}
18643	ret := &ListProductsResponse{
18644		ServerResponse: googleapi.ServerResponse{
18645			Header:         res.Header,
18646			HTTPStatusCode: res.StatusCode,
18647		},
18648	}
18649	target := &ret
18650	if err := gensupport.DecodeResponse(target, res); err != nil {
18651		return nil, err
18652	}
18653	return ret, nil
18654	// {
18655	//   "description": "Lists products in an unspecified order. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.",
18656	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
18657	//   "httpMethod": "GET",
18658	//   "id": "vision.projects.locations.products.list",
18659	//   "parameterOrder": [
18660	//     "parent"
18661	//   ],
18662	//   "parameters": {
18663	//     "pageSize": {
18664	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
18665	//       "format": "int32",
18666	//       "location": "query",
18667	//       "type": "integer"
18668	//     },
18669	//     "pageToken": {
18670	//       "description": "The next_page_token returned from a previous List request, if any.",
18671	//       "location": "query",
18672	//       "type": "string"
18673	//     },
18674	//     "parent": {
18675	//       "description": "Required. The project OR ProductSet from which Products should be listed. Format: `projects/PROJECT_ID/locations/LOC_ID`",
18676	//       "location": "path",
18677	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18678	//       "required": true,
18679	//       "type": "string"
18680	//     }
18681	//   },
18682	//   "path": "v1/{+parent}/products",
18683	//   "response": {
18684	//     "$ref": "ListProductsResponse"
18685	//   },
18686	//   "scopes": [
18687	//     "https://www.googleapis.com/auth/cloud-platform",
18688	//     "https://www.googleapis.com/auth/cloud-vision"
18689	//   ]
18690	// }
18691
18692}
18693
18694// Pages invokes f for each page of results.
18695// A non-nil error returned from f will halt the iteration.
18696// The provided context supersedes any context provided to the Context method.
18697func (c *ProjectsLocationsProductsListCall) Pages(ctx context.Context, f func(*ListProductsResponse) error) error {
18698	c.ctx_ = ctx
18699	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18700	for {
18701		x, err := c.Do()
18702		if err != nil {
18703			return err
18704		}
18705		if err := f(x); err != nil {
18706			return err
18707		}
18708		if x.NextPageToken == "" {
18709			return nil
18710		}
18711		c.PageToken(x.NextPageToken)
18712	}
18713}
18714
18715// method id "vision.projects.locations.products.patch":
18716
18717type ProjectsLocationsProductsPatchCall struct {
18718	s          *Service
18719	name       string
18720	product    *Product
18721	urlParams_ gensupport.URLParams
18722	ctx_       context.Context
18723	header_    http.Header
18724}
18725
18726// Patch: Makes changes to a Product resource. Only the `display_name`,
18727// `description`, and `labels` fields can be updated right now. If
18728// labels are updated, the change will not be reflected in queries until
18729// the next index time. Possible errors: * Returns NOT_FOUND if the
18730// Product does not exist. * Returns INVALID_ARGUMENT if display_name is
18731// present in update_mask but is missing from the request or longer than
18732// 4096 characters. * Returns INVALID_ARGUMENT if description is present
18733// in update_mask but is longer than 4096 characters. * Returns
18734// INVALID_ARGUMENT if product_category is present in update_mask.
18735//
18736// - name: The resource name of the product. Format is:
18737//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This
18738//   field is ignored when creating a product.
18739func (r *ProjectsLocationsProductsService) Patch(name string, product *Product) *ProjectsLocationsProductsPatchCall {
18740	c := &ProjectsLocationsProductsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18741	c.name = name
18742	c.product = product
18743	return c
18744}
18745
18746// UpdateMask sets the optional parameter "updateMask": The FieldMask
18747// that specifies which fields to update. If update_mask isn't
18748// specified, all mutable fields are to be updated. Valid mask paths
18749// include `product_labels`, `display_name`, and `description`.
18750func (c *ProjectsLocationsProductsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductsPatchCall {
18751	c.urlParams_.Set("updateMask", updateMask)
18752	return c
18753}
18754
18755// Fields allows partial responses to be retrieved. See
18756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18757// for more information.
18758func (c *ProjectsLocationsProductsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPatchCall {
18759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18760	return c
18761}
18762
18763// Context sets the context to be used in this call's Do method. Any
18764// pending HTTP request will be aborted if the provided context is
18765// canceled.
18766func (c *ProjectsLocationsProductsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductsPatchCall {
18767	c.ctx_ = ctx
18768	return c
18769}
18770
18771// Header returns an http.Header that can be modified by the caller to
18772// add HTTP headers to the request.
18773func (c *ProjectsLocationsProductsPatchCall) Header() http.Header {
18774	if c.header_ == nil {
18775		c.header_ = make(http.Header)
18776	}
18777	return c.header_
18778}
18779
18780func (c *ProjectsLocationsProductsPatchCall) doRequest(alt string) (*http.Response, error) {
18781	reqHeaders := make(http.Header)
18782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18783	for k, v := range c.header_ {
18784		reqHeaders[k] = v
18785	}
18786	reqHeaders.Set("User-Agent", c.s.userAgent())
18787	var body io.Reader = nil
18788	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
18789	if err != nil {
18790		return nil, err
18791	}
18792	reqHeaders.Set("Content-Type", "application/json")
18793	c.urlParams_.Set("alt", alt)
18794	c.urlParams_.Set("prettyPrint", "false")
18795	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18796	urls += "?" + c.urlParams_.Encode()
18797	req, err := http.NewRequest("PATCH", urls, body)
18798	if err != nil {
18799		return nil, err
18800	}
18801	req.Header = reqHeaders
18802	googleapi.Expand(req.URL, map[string]string{
18803		"name": c.name,
18804	})
18805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18806}
18807
18808// Do executes the "vision.projects.locations.products.patch" call.
18809// Exactly one of *Product or error will be non-nil. Any non-2xx status
18810// code is an error. Response headers are in either
18811// *Product.ServerResponse.Header or (if a response was returned at all)
18812// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18813// check whether the returned error was because http.StatusNotModified
18814// was returned.
18815func (c *ProjectsLocationsProductsPatchCall) Do(opts ...googleapi.CallOption) (*Product, error) {
18816	gensupport.SetOptions(c.urlParams_, opts...)
18817	res, err := c.doRequest("json")
18818	if res != nil && res.StatusCode == http.StatusNotModified {
18819		if res.Body != nil {
18820			res.Body.Close()
18821		}
18822		return nil, &googleapi.Error{
18823			Code:   res.StatusCode,
18824			Header: res.Header,
18825		}
18826	}
18827	if err != nil {
18828		return nil, err
18829	}
18830	defer googleapi.CloseBody(res)
18831	if err := googleapi.CheckResponse(res); err != nil {
18832		return nil, err
18833	}
18834	ret := &Product{
18835		ServerResponse: googleapi.ServerResponse{
18836			Header:         res.Header,
18837			HTTPStatusCode: res.StatusCode,
18838		},
18839	}
18840	target := &ret
18841	if err := gensupport.DecodeResponse(target, res); err != nil {
18842		return nil, err
18843	}
18844	return ret, nil
18845	// {
18846	//   "description": "Makes changes to a Product resource. Only the `display_name`, `description`, and `labels` fields can be updated right now. If labels are updated, the change will not be reflected in queries until the next index time. Possible errors: * Returns NOT_FOUND if the Product does not exist. * Returns INVALID_ARGUMENT if display_name is present in update_mask but is missing from the request or longer than 4096 characters. * Returns INVALID_ARGUMENT if description is present in update_mask but is longer than 4096 characters. * Returns INVALID_ARGUMENT if product_category is present in update_mask.",
18847	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
18848	//   "httpMethod": "PATCH",
18849	//   "id": "vision.projects.locations.products.patch",
18850	//   "parameterOrder": [
18851	//     "name"
18852	//   ],
18853	//   "parameters": {
18854	//     "name": {
18855	//       "description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.",
18856	//       "location": "path",
18857	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
18858	//       "required": true,
18859	//       "type": "string"
18860	//     },
18861	//     "updateMask": {
18862	//       "description": "The FieldMask that specifies which fields to update. If update_mask isn't specified, all mutable fields are to be updated. Valid mask paths include `product_labels`, `display_name`, and `description`.",
18863	//       "format": "google-fieldmask",
18864	//       "location": "query",
18865	//       "type": "string"
18866	//     }
18867	//   },
18868	//   "path": "v1/{+name}",
18869	//   "request": {
18870	//     "$ref": "Product"
18871	//   },
18872	//   "response": {
18873	//     "$ref": "Product"
18874	//   },
18875	//   "scopes": [
18876	//     "https://www.googleapis.com/auth/cloud-platform",
18877	//     "https://www.googleapis.com/auth/cloud-vision"
18878	//   ]
18879	// }
18880
18881}
18882
18883// method id "vision.projects.locations.products.purge":
18884
18885type ProjectsLocationsProductsPurgeCall struct {
18886	s                    *Service
18887	parent               string
18888	purgeproductsrequest *PurgeProductsRequest
18889	urlParams_           gensupport.URLParams
18890	ctx_                 context.Context
18891	header_              http.Header
18892}
18893
18894// Purge: Asynchronous API to delete all Products in a ProductSet or all
18895// Products that are in no ProductSet. If a Product is a member of the
18896// specified ProductSet in addition to other ProductSets, the Product
18897// will still be deleted. It is recommended to not delete the specified
18898// ProductSet until after this operation has completed. It is also
18899// recommended to not add any of the Products involved in the batch
18900// delete to a new ProductSet while this operation is running because
18901// those Products may still end up deleted. It's not possible to undo
18902// the PurgeProducts operation. Therefore, it is recommended to keep the
18903// csv files used in ImportProductSets (if that was how you originally
18904// built the Product Set) before starting PurgeProducts, in case you
18905// need to re-import the data after deletion. If the plan is to purge
18906// all of the Products from a ProductSet and then re-use the empty
18907// ProductSet to re-import new Products into the empty ProductSet, you
18908// must wait until the PurgeProducts operation has finished for that
18909// ProductSet. The google.longrunning.Operation API can be used to keep
18910// track of the progress and results of the request.
18911// `Operation.metadata` contains `BatchOperationMetadata`. (progress)
18912//
18913// - parent: The project and location in which the Products should be
18914//   deleted. Format is `projects/PROJECT_ID/locations/LOC_ID`.
18915func (r *ProjectsLocationsProductsService) Purge(parent string, purgeproductsrequest *PurgeProductsRequest) *ProjectsLocationsProductsPurgeCall {
18916	c := &ProjectsLocationsProductsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18917	c.parent = parent
18918	c.purgeproductsrequest = purgeproductsrequest
18919	return c
18920}
18921
18922// Fields allows partial responses to be retrieved. See
18923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18924// for more information.
18925func (c *ProjectsLocationsProductsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPurgeCall {
18926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18927	return c
18928}
18929
18930// Context sets the context to be used in this call's Do method. Any
18931// pending HTTP request will be aborted if the provided context is
18932// canceled.
18933func (c *ProjectsLocationsProductsPurgeCall) Context(ctx context.Context) *ProjectsLocationsProductsPurgeCall {
18934	c.ctx_ = ctx
18935	return c
18936}
18937
18938// Header returns an http.Header that can be modified by the caller to
18939// add HTTP headers to the request.
18940func (c *ProjectsLocationsProductsPurgeCall) Header() http.Header {
18941	if c.header_ == nil {
18942		c.header_ = make(http.Header)
18943	}
18944	return c.header_
18945}
18946
18947func (c *ProjectsLocationsProductsPurgeCall) doRequest(alt string) (*http.Response, error) {
18948	reqHeaders := make(http.Header)
18949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
18950	for k, v := range c.header_ {
18951		reqHeaders[k] = v
18952	}
18953	reqHeaders.Set("User-Agent", c.s.userAgent())
18954	var body io.Reader = nil
18955	body, err := googleapi.WithoutDataWrapper.JSONReader(c.purgeproductsrequest)
18956	if err != nil {
18957		return nil, err
18958	}
18959	reqHeaders.Set("Content-Type", "application/json")
18960	c.urlParams_.Set("alt", alt)
18961	c.urlParams_.Set("prettyPrint", "false")
18962	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products:purge")
18963	urls += "?" + c.urlParams_.Encode()
18964	req, err := http.NewRequest("POST", urls, body)
18965	if err != nil {
18966		return nil, err
18967	}
18968	req.Header = reqHeaders
18969	googleapi.Expand(req.URL, map[string]string{
18970		"parent": c.parent,
18971	})
18972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18973}
18974
18975// Do executes the "vision.projects.locations.products.purge" call.
18976// Exactly one of *Operation or error will be non-nil. Any non-2xx
18977// status code is an error. Response headers are in either
18978// *Operation.ServerResponse.Header or (if a response was returned at
18979// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18980// to check whether the returned error was because
18981// http.StatusNotModified was returned.
18982func (c *ProjectsLocationsProductsPurgeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
18983	gensupport.SetOptions(c.urlParams_, opts...)
18984	res, err := c.doRequest("json")
18985	if res != nil && res.StatusCode == http.StatusNotModified {
18986		if res.Body != nil {
18987			res.Body.Close()
18988		}
18989		return nil, &googleapi.Error{
18990			Code:   res.StatusCode,
18991			Header: res.Header,
18992		}
18993	}
18994	if err != nil {
18995		return nil, err
18996	}
18997	defer googleapi.CloseBody(res)
18998	if err := googleapi.CheckResponse(res); err != nil {
18999		return nil, err
19000	}
19001	ret := &Operation{
19002		ServerResponse: googleapi.ServerResponse{
19003			Header:         res.Header,
19004			HTTPStatusCode: res.StatusCode,
19005		},
19006	}
19007	target := &ret
19008	if err := gensupport.DecodeResponse(target, res); err != nil {
19009		return nil, err
19010	}
19011	return ret, nil
19012	// {
19013	//   "description": "Asynchronous API to delete all Products in a ProductSet or all Products that are in no ProductSet. If a Product is a member of the specified ProductSet in addition to other ProductSets, the Product will still be deleted. It is recommended to not delete the specified ProductSet until after this operation has completed. It is also recommended to not add any of the Products involved in the batch delete to a new ProductSet while this operation is running because those Products may still end up deleted. It's not possible to undo the PurgeProducts operation. Therefore, it is recommended to keep the csv files used in ImportProductSets (if that was how you originally built the Product Set) before starting PurgeProducts, in case you need to re-import the data after deletion. If the plan is to purge all of the Products from a ProductSet and then re-use the empty ProductSet to re-import new Products into the empty ProductSet, you must wait until the PurgeProducts operation has finished for that ProductSet. The google.longrunning.Operation API can be used to keep track of the progress and results of the request. `Operation.metadata` contains `BatchOperationMetadata`. (progress)",
19014	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products:purge",
19015	//   "httpMethod": "POST",
19016	//   "id": "vision.projects.locations.products.purge",
19017	//   "parameterOrder": [
19018	//     "parent"
19019	//   ],
19020	//   "parameters": {
19021	//     "parent": {
19022	//       "description": "Required. The project and location in which the Products should be deleted. Format is `projects/PROJECT_ID/locations/LOC_ID`.",
19023	//       "location": "path",
19024	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
19025	//       "required": true,
19026	//       "type": "string"
19027	//     }
19028	//   },
19029	//   "path": "v1/{+parent}/products:purge",
19030	//   "request": {
19031	//     "$ref": "PurgeProductsRequest"
19032	//   },
19033	//   "response": {
19034	//     "$ref": "Operation"
19035	//   },
19036	//   "scopes": [
19037	//     "https://www.googleapis.com/auth/cloud-platform",
19038	//     "https://www.googleapis.com/auth/cloud-vision"
19039	//   ]
19040	// }
19041
19042}
19043
19044// method id "vision.projects.locations.products.referenceImages.create":
19045
19046type ProjectsLocationsProductsReferenceImagesCreateCall struct {
19047	s              *Service
19048	parent         string
19049	referenceimage *ReferenceImage
19050	urlParams_     gensupport.URLParams
19051	ctx_           context.Context
19052	header_        http.Header
19053}
19054
19055// Create: Creates and returns a new ReferenceImage resource. The
19056// `bounding_poly` field is optional. If `bounding_poly` is not
19057// specified, the system will try to detect regions of interest in the
19058// image that are compatible with the product_category on the parent
19059// product. If it is specified, detection is ALWAYS skipped. The system
19060// converts polygons into non-rotated rectangles. Note that the pipeline
19061// will resize the image if the image resolution is too large to process
19062// (above 50MP). Possible errors: * Returns INVALID_ARGUMENT if the
19063// image_uri is missing or longer than 4096 characters. * Returns
19064// INVALID_ARGUMENT if the product does not exist. * Returns
19065// INVALID_ARGUMENT if bounding_poly is not provided, and nothing
19066// compatible with the parent product's product_category is detected. *
19067// Returns INVALID_ARGUMENT if bounding_poly contains more than 10
19068// polygons.
19069//
19070// - parent: Resource name of the product in which to create the
19071//   reference image. Format is
19072//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
19073func (r *ProjectsLocationsProductsReferenceImagesService) Create(parent string, referenceimage *ReferenceImage) *ProjectsLocationsProductsReferenceImagesCreateCall {
19074	c := &ProjectsLocationsProductsReferenceImagesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19075	c.parent = parent
19076	c.referenceimage = referenceimage
19077	return c
19078}
19079
19080// ReferenceImageId sets the optional parameter "referenceImageId": A
19081// user-supplied resource id for the ReferenceImage to be added. If set,
19082// the server will attempt to use this value as the resource id. If it
19083// is already in use, an error is returned with code ALREADY_EXISTS.
19084// Must be at most 128 characters long. It cannot contain the character
19085// `/`.
19086func (c *ProjectsLocationsProductsReferenceImagesCreateCall) ReferenceImageId(referenceImageId string) *ProjectsLocationsProductsReferenceImagesCreateCall {
19087	c.urlParams_.Set("referenceImageId", referenceImageId)
19088	return c
19089}
19090
19091// Fields allows partial responses to be retrieved. See
19092// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19093// for more information.
19094func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesCreateCall {
19095	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19096	return c
19097}
19098
19099// Context sets the context to be used in this call's Do method. Any
19100// pending HTTP request will be aborted if the provided context is
19101// canceled.
19102func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesCreateCall {
19103	c.ctx_ = ctx
19104	return c
19105}
19106
19107// Header returns an http.Header that can be modified by the caller to
19108// add HTTP headers to the request.
19109func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Header() http.Header {
19110	if c.header_ == nil {
19111		c.header_ = make(http.Header)
19112	}
19113	return c.header_
19114}
19115
19116func (c *ProjectsLocationsProductsReferenceImagesCreateCall) doRequest(alt string) (*http.Response, error) {
19117	reqHeaders := make(http.Header)
19118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
19119	for k, v := range c.header_ {
19120		reqHeaders[k] = v
19121	}
19122	reqHeaders.Set("User-Agent", c.s.userAgent())
19123	var body io.Reader = nil
19124	body, err := googleapi.WithoutDataWrapper.JSONReader(c.referenceimage)
19125	if err != nil {
19126		return nil, err
19127	}
19128	reqHeaders.Set("Content-Type", "application/json")
19129	c.urlParams_.Set("alt", alt)
19130	c.urlParams_.Set("prettyPrint", "false")
19131	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
19132	urls += "?" + c.urlParams_.Encode()
19133	req, err := http.NewRequest("POST", urls, body)
19134	if err != nil {
19135		return nil, err
19136	}
19137	req.Header = reqHeaders
19138	googleapi.Expand(req.URL, map[string]string{
19139		"parent": c.parent,
19140	})
19141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19142}
19143
19144// Do executes the "vision.projects.locations.products.referenceImages.create" call.
19145// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
19146// status code is an error. Response headers are in either
19147// *ReferenceImage.ServerResponse.Header or (if a response was returned
19148// at all) in error.(*googleapi.Error).Header. Use
19149// googleapi.IsNotModified to check whether the returned error was
19150// because http.StatusNotModified was returned.
19151func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
19152	gensupport.SetOptions(c.urlParams_, opts...)
19153	res, err := c.doRequest("json")
19154	if res != nil && res.StatusCode == http.StatusNotModified {
19155		if res.Body != nil {
19156			res.Body.Close()
19157		}
19158		return nil, &googleapi.Error{
19159			Code:   res.StatusCode,
19160			Header: res.Header,
19161		}
19162	}
19163	if err != nil {
19164		return nil, err
19165	}
19166	defer googleapi.CloseBody(res)
19167	if err := googleapi.CheckResponse(res); err != nil {
19168		return nil, err
19169	}
19170	ret := &ReferenceImage{
19171		ServerResponse: googleapi.ServerResponse{
19172			Header:         res.Header,
19173			HTTPStatusCode: res.StatusCode,
19174		},
19175	}
19176	target := &ret
19177	if err := gensupport.DecodeResponse(target, res); err != nil {
19178		return nil, err
19179	}
19180	return ret, nil
19181	// {
19182	//   "description": "Creates and returns a new ReferenceImage resource. The `bounding_poly` field is optional. If `bounding_poly` is not specified, the system will try to detect regions of interest in the image that are compatible with the product_category on the parent product. If it is specified, detection is ALWAYS skipped. The system converts polygons into non-rotated rectangles. Note that the pipeline will resize the image if the image resolution is too large to process (above 50MP). Possible errors: * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 characters. * Returns INVALID_ARGUMENT if the product does not exist. * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing compatible with the parent product's product_category is detected. * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.",
19183	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
19184	//   "httpMethod": "POST",
19185	//   "id": "vision.projects.locations.products.referenceImages.create",
19186	//   "parameterOrder": [
19187	//     "parent"
19188	//   ],
19189	//   "parameters": {
19190	//     "parent": {
19191	//       "description": "Required. Resource name of the product in which to create the reference image. Format is `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.",
19192	//       "location": "path",
19193	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19194	//       "required": true,
19195	//       "type": "string"
19196	//     },
19197	//     "referenceImageId": {
19198	//       "description": "A user-supplied resource id for the ReferenceImage to be added. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.",
19199	//       "location": "query",
19200	//       "type": "string"
19201	//     }
19202	//   },
19203	//   "path": "v1/{+parent}/referenceImages",
19204	//   "request": {
19205	//     "$ref": "ReferenceImage"
19206	//   },
19207	//   "response": {
19208	//     "$ref": "ReferenceImage"
19209	//   },
19210	//   "scopes": [
19211	//     "https://www.googleapis.com/auth/cloud-platform",
19212	//     "https://www.googleapis.com/auth/cloud-vision"
19213	//   ]
19214	// }
19215
19216}
19217
19218// method id "vision.projects.locations.products.referenceImages.delete":
19219
19220type ProjectsLocationsProductsReferenceImagesDeleteCall struct {
19221	s          *Service
19222	name       string
19223	urlParams_ gensupport.URLParams
19224	ctx_       context.Context
19225	header_    http.Header
19226}
19227
19228// Delete: Permanently deletes a reference image. The image metadata
19229// will be deleted right away, but search queries against ProductSets
19230// containing the image may still work until all related caches are
19231// refreshed. The actual image files are not deleted from Google Cloud
19232// Storage.
19233//
19234// - name: The resource name of the reference image to delete. Format
19235//   is:
19236//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceI
19237//   mages/IMAGE_ID`.
19238func (r *ProjectsLocationsProductsReferenceImagesService) Delete(name string) *ProjectsLocationsProductsReferenceImagesDeleteCall {
19239	c := &ProjectsLocationsProductsReferenceImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19240	c.name = name
19241	return c
19242}
19243
19244// Fields allows partial responses to be retrieved. See
19245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19246// for more information.
19247func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesDeleteCall {
19248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19249	return c
19250}
19251
19252// Context sets the context to be used in this call's Do method. Any
19253// pending HTTP request will be aborted if the provided context is
19254// canceled.
19255func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesDeleteCall {
19256	c.ctx_ = ctx
19257	return c
19258}
19259
19260// Header returns an http.Header that can be modified by the caller to
19261// add HTTP headers to the request.
19262func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Header() http.Header {
19263	if c.header_ == nil {
19264		c.header_ = make(http.Header)
19265	}
19266	return c.header_
19267}
19268
19269func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
19270	reqHeaders := make(http.Header)
19271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
19272	for k, v := range c.header_ {
19273		reqHeaders[k] = v
19274	}
19275	reqHeaders.Set("User-Agent", c.s.userAgent())
19276	var body io.Reader = nil
19277	c.urlParams_.Set("alt", alt)
19278	c.urlParams_.Set("prettyPrint", "false")
19279	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19280	urls += "?" + c.urlParams_.Encode()
19281	req, err := http.NewRequest("DELETE", urls, body)
19282	if err != nil {
19283		return nil, err
19284	}
19285	req.Header = reqHeaders
19286	googleapi.Expand(req.URL, map[string]string{
19287		"name": c.name,
19288	})
19289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19290}
19291
19292// Do executes the "vision.projects.locations.products.referenceImages.delete" call.
19293// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19294// code is an error. Response headers are in either
19295// *Empty.ServerResponse.Header or (if a response was returned at all)
19296// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19297// check whether the returned error was because http.StatusNotModified
19298// was returned.
19299func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19300	gensupport.SetOptions(c.urlParams_, opts...)
19301	res, err := c.doRequest("json")
19302	if res != nil && res.StatusCode == http.StatusNotModified {
19303		if res.Body != nil {
19304			res.Body.Close()
19305		}
19306		return nil, &googleapi.Error{
19307			Code:   res.StatusCode,
19308			Header: res.Header,
19309		}
19310	}
19311	if err != nil {
19312		return nil, err
19313	}
19314	defer googleapi.CloseBody(res)
19315	if err := googleapi.CheckResponse(res); err != nil {
19316		return nil, err
19317	}
19318	ret := &Empty{
19319		ServerResponse: googleapi.ServerResponse{
19320			Header:         res.Header,
19321			HTTPStatusCode: res.StatusCode,
19322		},
19323	}
19324	target := &ret
19325	if err := gensupport.DecodeResponse(target, res); err != nil {
19326		return nil, err
19327	}
19328	return ret, nil
19329	// {
19330	//   "description": "Permanently deletes a reference image. The image metadata will be deleted right away, but search queries against ProductSets containing the image may still work until all related caches are refreshed. The actual image files are not deleted from Google Cloud Storage.",
19331	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
19332	//   "httpMethod": "DELETE",
19333	//   "id": "vision.projects.locations.products.referenceImages.delete",
19334	//   "parameterOrder": [
19335	//     "name"
19336	//   ],
19337	//   "parameters": {
19338	//     "name": {
19339	//       "description": "Required. The resource name of the reference image to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`",
19340	//       "location": "path",
19341	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
19342	//       "required": true,
19343	//       "type": "string"
19344	//     }
19345	//   },
19346	//   "path": "v1/{+name}",
19347	//   "response": {
19348	//     "$ref": "Empty"
19349	//   },
19350	//   "scopes": [
19351	//     "https://www.googleapis.com/auth/cloud-platform",
19352	//     "https://www.googleapis.com/auth/cloud-vision"
19353	//   ]
19354	// }
19355
19356}
19357
19358// method id "vision.projects.locations.products.referenceImages.get":
19359
19360type ProjectsLocationsProductsReferenceImagesGetCall struct {
19361	s            *Service
19362	name         string
19363	urlParams_   gensupport.URLParams
19364	ifNoneMatch_ string
19365	ctx_         context.Context
19366	header_      http.Header
19367}
19368
19369// Get: Gets information associated with a ReferenceImage. Possible
19370// errors: * Returns NOT_FOUND if the specified image does not exist.
19371//
19372// - name: The resource name of the ReferenceImage to get. Format is:
19373//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceI
19374//   mages/IMAGE_ID`.
19375func (r *ProjectsLocationsProductsReferenceImagesService) Get(name string) *ProjectsLocationsProductsReferenceImagesGetCall {
19376	c := &ProjectsLocationsProductsReferenceImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19377	c.name = name
19378	return c
19379}
19380
19381// Fields allows partial responses to be retrieved. See
19382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19383// for more information.
19384func (c *ProjectsLocationsProductsReferenceImagesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesGetCall {
19385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19386	return c
19387}
19388
19389// IfNoneMatch sets the optional parameter which makes the operation
19390// fail if the object's ETag matches the given value. This is useful for
19391// getting updates only after the object has changed since the last
19392// request. Use googleapi.IsNotModified to check whether the response
19393// error from Do is the result of In-None-Match.
19394func (c *ProjectsLocationsProductsReferenceImagesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesGetCall {
19395	c.ifNoneMatch_ = entityTag
19396	return c
19397}
19398
19399// Context sets the context to be used in this call's Do method. Any
19400// pending HTTP request will be aborted if the provided context is
19401// canceled.
19402func (c *ProjectsLocationsProductsReferenceImagesGetCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesGetCall {
19403	c.ctx_ = ctx
19404	return c
19405}
19406
19407// Header returns an http.Header that can be modified by the caller to
19408// add HTTP headers to the request.
19409func (c *ProjectsLocationsProductsReferenceImagesGetCall) Header() http.Header {
19410	if c.header_ == nil {
19411		c.header_ = make(http.Header)
19412	}
19413	return c.header_
19414}
19415
19416func (c *ProjectsLocationsProductsReferenceImagesGetCall) doRequest(alt string) (*http.Response, error) {
19417	reqHeaders := make(http.Header)
19418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
19419	for k, v := range c.header_ {
19420		reqHeaders[k] = v
19421	}
19422	reqHeaders.Set("User-Agent", c.s.userAgent())
19423	if c.ifNoneMatch_ != "" {
19424		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19425	}
19426	var body io.Reader = nil
19427	c.urlParams_.Set("alt", alt)
19428	c.urlParams_.Set("prettyPrint", "false")
19429	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19430	urls += "?" + c.urlParams_.Encode()
19431	req, err := http.NewRequest("GET", urls, body)
19432	if err != nil {
19433		return nil, err
19434	}
19435	req.Header = reqHeaders
19436	googleapi.Expand(req.URL, map[string]string{
19437		"name": c.name,
19438	})
19439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19440}
19441
19442// Do executes the "vision.projects.locations.products.referenceImages.get" call.
19443// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
19444// status code is an error. Response headers are in either
19445// *ReferenceImage.ServerResponse.Header or (if a response was returned
19446// at all) in error.(*googleapi.Error).Header. Use
19447// googleapi.IsNotModified to check whether the returned error was
19448// because http.StatusNotModified was returned.
19449func (c *ProjectsLocationsProductsReferenceImagesGetCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
19450	gensupport.SetOptions(c.urlParams_, opts...)
19451	res, err := c.doRequest("json")
19452	if res != nil && res.StatusCode == http.StatusNotModified {
19453		if res.Body != nil {
19454			res.Body.Close()
19455		}
19456		return nil, &googleapi.Error{
19457			Code:   res.StatusCode,
19458			Header: res.Header,
19459		}
19460	}
19461	if err != nil {
19462		return nil, err
19463	}
19464	defer googleapi.CloseBody(res)
19465	if err := googleapi.CheckResponse(res); err != nil {
19466		return nil, err
19467	}
19468	ret := &ReferenceImage{
19469		ServerResponse: googleapi.ServerResponse{
19470			Header:         res.Header,
19471			HTTPStatusCode: res.StatusCode,
19472		},
19473	}
19474	target := &ret
19475	if err := gensupport.DecodeResponse(target, res); err != nil {
19476		return nil, err
19477	}
19478	return ret, nil
19479	// {
19480	//   "description": "Gets information associated with a ReferenceImage. Possible errors: * Returns NOT_FOUND if the specified image does not exist.",
19481	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
19482	//   "httpMethod": "GET",
19483	//   "id": "vision.projects.locations.products.referenceImages.get",
19484	//   "parameterOrder": [
19485	//     "name"
19486	//   ],
19487	//   "parameters": {
19488	//     "name": {
19489	//       "description": "Required. The resource name of the ReferenceImage to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`.",
19490	//       "location": "path",
19491	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
19492	//       "required": true,
19493	//       "type": "string"
19494	//     }
19495	//   },
19496	//   "path": "v1/{+name}",
19497	//   "response": {
19498	//     "$ref": "ReferenceImage"
19499	//   },
19500	//   "scopes": [
19501	//     "https://www.googleapis.com/auth/cloud-platform",
19502	//     "https://www.googleapis.com/auth/cloud-vision"
19503	//   ]
19504	// }
19505
19506}
19507
19508// method id "vision.projects.locations.products.referenceImages.list":
19509
19510type ProjectsLocationsProductsReferenceImagesListCall struct {
19511	s            *Service
19512	parent       string
19513	urlParams_   gensupport.URLParams
19514	ifNoneMatch_ string
19515	ctx_         context.Context
19516	header_      http.Header
19517}
19518
19519// List: Lists reference images. Possible errors: * Returns NOT_FOUND if
19520// the parent product does not exist. * Returns INVALID_ARGUMENT if the
19521// page_size is greater than 100, or less than 1.
19522//
19523// - parent: Resource name of the product containing the reference
19524//   images. Format is
19525//   `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
19526func (r *ProjectsLocationsProductsReferenceImagesService) List(parent string) *ProjectsLocationsProductsReferenceImagesListCall {
19527	c := &ProjectsLocationsProductsReferenceImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19528	c.parent = parent
19529	return c
19530}
19531
19532// PageSize sets the optional parameter "pageSize": The maximum number
19533// of items to return. Default 10, maximum 100.
19534func (c *ProjectsLocationsProductsReferenceImagesListCall) PageSize(pageSize int64) *ProjectsLocationsProductsReferenceImagesListCall {
19535	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19536	return c
19537}
19538
19539// PageToken sets the optional parameter "pageToken": A token
19540// identifying a page of results to be returned. This is the value of
19541// `nextPageToken` returned in a previous reference image list request.
19542// Defaults to the first page if not specified.
19543func (c *ProjectsLocationsProductsReferenceImagesListCall) PageToken(pageToken string) *ProjectsLocationsProductsReferenceImagesListCall {
19544	c.urlParams_.Set("pageToken", pageToken)
19545	return c
19546}
19547
19548// Fields allows partial responses to be retrieved. See
19549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19550// for more information.
19551func (c *ProjectsLocationsProductsReferenceImagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesListCall {
19552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19553	return c
19554}
19555
19556// IfNoneMatch sets the optional parameter which makes the operation
19557// fail if the object's ETag matches the given value. This is useful for
19558// getting updates only after the object has changed since the last
19559// request. Use googleapi.IsNotModified to check whether the response
19560// error from Do is the result of In-None-Match.
19561func (c *ProjectsLocationsProductsReferenceImagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesListCall {
19562	c.ifNoneMatch_ = entityTag
19563	return c
19564}
19565
19566// Context sets the context to be used in this call's Do method. Any
19567// pending HTTP request will be aborted if the provided context is
19568// canceled.
19569func (c *ProjectsLocationsProductsReferenceImagesListCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesListCall {
19570	c.ctx_ = ctx
19571	return c
19572}
19573
19574// Header returns an http.Header that can be modified by the caller to
19575// add HTTP headers to the request.
19576func (c *ProjectsLocationsProductsReferenceImagesListCall) Header() http.Header {
19577	if c.header_ == nil {
19578		c.header_ = make(http.Header)
19579	}
19580	return c.header_
19581}
19582
19583func (c *ProjectsLocationsProductsReferenceImagesListCall) doRequest(alt string) (*http.Response, error) {
19584	reqHeaders := make(http.Header)
19585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
19586	for k, v := range c.header_ {
19587		reqHeaders[k] = v
19588	}
19589	reqHeaders.Set("User-Agent", c.s.userAgent())
19590	if c.ifNoneMatch_ != "" {
19591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19592	}
19593	var body io.Reader = nil
19594	c.urlParams_.Set("alt", alt)
19595	c.urlParams_.Set("prettyPrint", "false")
19596	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
19597	urls += "?" + c.urlParams_.Encode()
19598	req, err := http.NewRequest("GET", urls, body)
19599	if err != nil {
19600		return nil, err
19601	}
19602	req.Header = reqHeaders
19603	googleapi.Expand(req.URL, map[string]string{
19604		"parent": c.parent,
19605	})
19606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19607}
19608
19609// Do executes the "vision.projects.locations.products.referenceImages.list" call.
19610// Exactly one of *ListReferenceImagesResponse or error will be non-nil.
19611// Any non-2xx status code is an error. Response headers are in either
19612// *ListReferenceImagesResponse.ServerResponse.Header or (if a response
19613// was returned at all) in error.(*googleapi.Error).Header. Use
19614// googleapi.IsNotModified to check whether the returned error was
19615// because http.StatusNotModified was returned.
19616func (c *ProjectsLocationsProductsReferenceImagesListCall) Do(opts ...googleapi.CallOption) (*ListReferenceImagesResponse, error) {
19617	gensupport.SetOptions(c.urlParams_, opts...)
19618	res, err := c.doRequest("json")
19619	if res != nil && res.StatusCode == http.StatusNotModified {
19620		if res.Body != nil {
19621			res.Body.Close()
19622		}
19623		return nil, &googleapi.Error{
19624			Code:   res.StatusCode,
19625			Header: res.Header,
19626		}
19627	}
19628	if err != nil {
19629		return nil, err
19630	}
19631	defer googleapi.CloseBody(res)
19632	if err := googleapi.CheckResponse(res); err != nil {
19633		return nil, err
19634	}
19635	ret := &ListReferenceImagesResponse{
19636		ServerResponse: googleapi.ServerResponse{
19637			Header:         res.Header,
19638			HTTPStatusCode: res.StatusCode,
19639		},
19640	}
19641	target := &ret
19642	if err := gensupport.DecodeResponse(target, res); err != nil {
19643		return nil, err
19644	}
19645	return ret, nil
19646	// {
19647	//   "description": "Lists reference images. Possible errors: * Returns NOT_FOUND if the parent product does not exist. * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less than 1.",
19648	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
19649	//   "httpMethod": "GET",
19650	//   "id": "vision.projects.locations.products.referenceImages.list",
19651	//   "parameterOrder": [
19652	//     "parent"
19653	//   ],
19654	//   "parameters": {
19655	//     "pageSize": {
19656	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
19657	//       "format": "int32",
19658	//       "location": "query",
19659	//       "type": "integer"
19660	//     },
19661	//     "pageToken": {
19662	//       "description": "A token identifying a page of results to be returned. This is the value of `nextPageToken` returned in a previous reference image list request. Defaults to the first page if not specified.",
19663	//       "location": "query",
19664	//       "type": "string"
19665	//     },
19666	//     "parent": {
19667	//       "description": "Required. Resource name of the product containing the reference images. Format is `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.",
19668	//       "location": "path",
19669	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19670	//       "required": true,
19671	//       "type": "string"
19672	//     }
19673	//   },
19674	//   "path": "v1/{+parent}/referenceImages",
19675	//   "response": {
19676	//     "$ref": "ListReferenceImagesResponse"
19677	//   },
19678	//   "scopes": [
19679	//     "https://www.googleapis.com/auth/cloud-platform",
19680	//     "https://www.googleapis.com/auth/cloud-vision"
19681	//   ]
19682	// }
19683
19684}
19685
19686// Pages invokes f for each page of results.
19687// A non-nil error returned from f will halt the iteration.
19688// The provided context supersedes any context provided to the Context method.
19689func (c *ProjectsLocationsProductsReferenceImagesListCall) Pages(ctx context.Context, f func(*ListReferenceImagesResponse) error) error {
19690	c.ctx_ = ctx
19691	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19692	for {
19693		x, err := c.Do()
19694		if err != nil {
19695			return err
19696		}
19697		if err := f(x); err != nil {
19698			return err
19699		}
19700		if x.NextPageToken == "" {
19701			return nil
19702		}
19703		c.PageToken(x.NextPageToken)
19704	}
19705}
19706
19707// method id "vision.projects.operations.get":
19708
19709type ProjectsOperationsGetCall struct {
19710	s            *Service
19711	name         string
19712	urlParams_   gensupport.URLParams
19713	ifNoneMatch_ string
19714	ctx_         context.Context
19715	header_      http.Header
19716}
19717
19718// Get: Gets the latest state of a long-running operation. Clients can
19719// use this method to poll the operation result at intervals as
19720// recommended by the API service.
19721//
19722// - name: The name of the operation resource.
19723func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
19724	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19725	c.name = name
19726	return c
19727}
19728
19729// Fields allows partial responses to be retrieved. See
19730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19731// for more information.
19732func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
19733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19734	return c
19735}
19736
19737// IfNoneMatch sets the optional parameter which makes the operation
19738// fail if the object's ETag matches the given value. This is useful for
19739// getting updates only after the object has changed since the last
19740// request. Use googleapi.IsNotModified to check whether the response
19741// error from Do is the result of In-None-Match.
19742func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
19743	c.ifNoneMatch_ = entityTag
19744	return c
19745}
19746
19747// Context sets the context to be used in this call's Do method. Any
19748// pending HTTP request will be aborted if the provided context is
19749// canceled.
19750func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
19751	c.ctx_ = ctx
19752	return c
19753}
19754
19755// Header returns an http.Header that can be modified by the caller to
19756// add HTTP headers to the request.
19757func (c *ProjectsOperationsGetCall) Header() http.Header {
19758	if c.header_ == nil {
19759		c.header_ = make(http.Header)
19760	}
19761	return c.header_
19762}
19763
19764func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
19765	reqHeaders := make(http.Header)
19766	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
19767	for k, v := range c.header_ {
19768		reqHeaders[k] = v
19769	}
19770	reqHeaders.Set("User-Agent", c.s.userAgent())
19771	if c.ifNoneMatch_ != "" {
19772		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19773	}
19774	var body io.Reader = nil
19775	c.urlParams_.Set("alt", alt)
19776	c.urlParams_.Set("prettyPrint", "false")
19777	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19778	urls += "?" + c.urlParams_.Encode()
19779	req, err := http.NewRequest("GET", urls, body)
19780	if err != nil {
19781		return nil, err
19782	}
19783	req.Header = reqHeaders
19784	googleapi.Expand(req.URL, map[string]string{
19785		"name": c.name,
19786	})
19787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19788}
19789
19790// Do executes the "vision.projects.operations.get" call.
19791// Exactly one of *Operation or error will be non-nil. Any non-2xx
19792// status code is an error. Response headers are in either
19793// *Operation.ServerResponse.Header or (if a response was returned at
19794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
19795// to check whether the returned error was because
19796// http.StatusNotModified was returned.
19797func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
19798	gensupport.SetOptions(c.urlParams_, opts...)
19799	res, err := c.doRequest("json")
19800	if res != nil && res.StatusCode == http.StatusNotModified {
19801		if res.Body != nil {
19802			res.Body.Close()
19803		}
19804		return nil, &googleapi.Error{
19805			Code:   res.StatusCode,
19806			Header: res.Header,
19807		}
19808	}
19809	if err != nil {
19810		return nil, err
19811	}
19812	defer googleapi.CloseBody(res)
19813	if err := googleapi.CheckResponse(res); err != nil {
19814		return nil, err
19815	}
19816	ret := &Operation{
19817		ServerResponse: googleapi.ServerResponse{
19818			Header:         res.Header,
19819			HTTPStatusCode: res.StatusCode,
19820		},
19821	}
19822	target := &ret
19823	if err := gensupport.DecodeResponse(target, res); err != nil {
19824		return nil, err
19825	}
19826	return ret, nil
19827	// {
19828	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
19829	//   "flatPath": "v1/projects/{projectsId}/operations/{operationsId}",
19830	//   "httpMethod": "GET",
19831	//   "id": "vision.projects.operations.get",
19832	//   "parameterOrder": [
19833	//     "name"
19834	//   ],
19835	//   "parameters": {
19836	//     "name": {
19837	//       "description": "The name of the operation resource.",
19838	//       "location": "path",
19839	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
19840	//       "required": true,
19841	//       "type": "string"
19842	//     }
19843	//   },
19844	//   "path": "v1/{+name}",
19845	//   "response": {
19846	//     "$ref": "Operation"
19847	//   },
19848	//   "scopes": [
19849	//     "https://www.googleapis.com/auth/cloud-platform",
19850	//     "https://www.googleapis.com/auth/cloud-vision"
19851	//   ]
19852	// }
19853
19854}
19855