1// Copyright 2020 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	// View and manage your data across Google Cloud Platform services
89	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
90
91	// Apply machine learning models to understand and label images
92	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
93)
94
95// NewService creates a new Service.
96func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
97	scopesOption := option.WithScopes(
98		"https://www.googleapis.com/auth/cloud-platform",
99		"https://www.googleapis.com/auth/cloud-vision",
100	)
101	// NOTE: prepend, so we don't override user-specified scopes.
102	opts = append([]option.ClientOption{scopesOption}, opts...)
103	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
104	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
105	client, endpoint, err := htransport.NewClient(ctx, opts...)
106	if err != nil {
107		return nil, err
108	}
109	s, err := New(client)
110	if err != nil {
111		return nil, err
112	}
113	if endpoint != "" {
114		s.BasePath = endpoint
115	}
116	return s, nil
117}
118
119// New creates a new Service. It uses the provided http.Client for requests.
120//
121// Deprecated: please use NewService instead.
122// To provide a custom HTTP client, use option.WithHTTPClient.
123// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
124func New(client *http.Client) (*Service, error) {
125	if client == nil {
126		return nil, errors.New("client is nil")
127	}
128	s := &Service{client: client, BasePath: basePath}
129	s.Files = NewFilesService(s)
130	s.Images = NewImagesService(s)
131	s.Locations = NewLocationsService(s)
132	s.Operations = NewOperationsService(s)
133	s.Projects = NewProjectsService(s)
134	return s, nil
135}
136
137type Service struct {
138	client    *http.Client
139	BasePath  string // API endpoint base URL
140	UserAgent string // optional additional User-Agent fragment
141
142	Files *FilesService
143
144	Images *ImagesService
145
146	Locations *LocationsService
147
148	Operations *OperationsService
149
150	Projects *ProjectsService
151}
152
153func (s *Service) userAgent() string {
154	if s.UserAgent == "" {
155		return googleapi.UserAgent
156	}
157	return googleapi.UserAgent + " " + s.UserAgent
158}
159
160func NewFilesService(s *Service) *FilesService {
161	rs := &FilesService{s: s}
162	return rs
163}
164
165type FilesService struct {
166	s *Service
167}
168
169func NewImagesService(s *Service) *ImagesService {
170	rs := &ImagesService{s: s}
171	return rs
172}
173
174type ImagesService struct {
175	s *Service
176}
177
178func NewLocationsService(s *Service) *LocationsService {
179	rs := &LocationsService{s: s}
180	rs.Operations = NewLocationsOperationsService(s)
181	return rs
182}
183
184type LocationsService struct {
185	s *Service
186
187	Operations *LocationsOperationsService
188}
189
190func NewLocationsOperationsService(s *Service) *LocationsOperationsService {
191	rs := &LocationsOperationsService{s: s}
192	return rs
193}
194
195type LocationsOperationsService struct {
196	s *Service
197}
198
199func NewOperationsService(s *Service) *OperationsService {
200	rs := &OperationsService{s: s}
201	return rs
202}
203
204type OperationsService struct {
205	s *Service
206}
207
208func NewProjectsService(s *Service) *ProjectsService {
209	rs := &ProjectsService{s: s}
210	rs.Files = NewProjectsFilesService(s)
211	rs.Images = NewProjectsImagesService(s)
212	rs.Locations = NewProjectsLocationsService(s)
213	rs.Operations = NewProjectsOperationsService(s)
214	return rs
215}
216
217type ProjectsService struct {
218	s *Service
219
220	Files *ProjectsFilesService
221
222	Images *ProjectsImagesService
223
224	Locations *ProjectsLocationsService
225
226	Operations *ProjectsOperationsService
227}
228
229func NewProjectsFilesService(s *Service) *ProjectsFilesService {
230	rs := &ProjectsFilesService{s: s}
231	return rs
232}
233
234type ProjectsFilesService struct {
235	s *Service
236}
237
238func NewProjectsImagesService(s *Service) *ProjectsImagesService {
239	rs := &ProjectsImagesService{s: s}
240	return rs
241}
242
243type ProjectsImagesService struct {
244	s *Service
245}
246
247func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
248	rs := &ProjectsLocationsService{s: s}
249	rs.Files = NewProjectsLocationsFilesService(s)
250	rs.Images = NewProjectsLocationsImagesService(s)
251	rs.Operations = NewProjectsLocationsOperationsService(s)
252	rs.ProductSets = NewProjectsLocationsProductSetsService(s)
253	rs.Products = NewProjectsLocationsProductsService(s)
254	return rs
255}
256
257type ProjectsLocationsService struct {
258	s *Service
259
260	Files *ProjectsLocationsFilesService
261
262	Images *ProjectsLocationsImagesService
263
264	Operations *ProjectsLocationsOperationsService
265
266	ProductSets *ProjectsLocationsProductSetsService
267
268	Products *ProjectsLocationsProductsService
269}
270
271func NewProjectsLocationsFilesService(s *Service) *ProjectsLocationsFilesService {
272	rs := &ProjectsLocationsFilesService{s: s}
273	return rs
274}
275
276type ProjectsLocationsFilesService struct {
277	s *Service
278}
279
280func NewProjectsLocationsImagesService(s *Service) *ProjectsLocationsImagesService {
281	rs := &ProjectsLocationsImagesService{s: s}
282	return rs
283}
284
285type ProjectsLocationsImagesService struct {
286	s *Service
287}
288
289func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
290	rs := &ProjectsLocationsOperationsService{s: s}
291	return rs
292}
293
294type ProjectsLocationsOperationsService struct {
295	s *Service
296}
297
298func NewProjectsLocationsProductSetsService(s *Service) *ProjectsLocationsProductSetsService {
299	rs := &ProjectsLocationsProductSetsService{s: s}
300	rs.Products = NewProjectsLocationsProductSetsProductsService(s)
301	return rs
302}
303
304type ProjectsLocationsProductSetsService struct {
305	s *Service
306
307	Products *ProjectsLocationsProductSetsProductsService
308}
309
310func NewProjectsLocationsProductSetsProductsService(s *Service) *ProjectsLocationsProductSetsProductsService {
311	rs := &ProjectsLocationsProductSetsProductsService{s: s}
312	return rs
313}
314
315type ProjectsLocationsProductSetsProductsService struct {
316	s *Service
317}
318
319func NewProjectsLocationsProductsService(s *Service) *ProjectsLocationsProductsService {
320	rs := &ProjectsLocationsProductsService{s: s}
321	rs.ReferenceImages = NewProjectsLocationsProductsReferenceImagesService(s)
322	return rs
323}
324
325type ProjectsLocationsProductsService struct {
326	s *Service
327
328	ReferenceImages *ProjectsLocationsProductsReferenceImagesService
329}
330
331func NewProjectsLocationsProductsReferenceImagesService(s *Service) *ProjectsLocationsProductsReferenceImagesService {
332	rs := &ProjectsLocationsProductsReferenceImagesService{s: s}
333	return rs
334}
335
336type ProjectsLocationsProductsReferenceImagesService struct {
337	s *Service
338}
339
340func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
341	rs := &ProjectsOperationsService{s: s}
342	return rs
343}
344
345type ProjectsOperationsService struct {
346	s *Service
347}
348
349// AddProductToProductSetRequest: Request message for the
350// `AddProductToProductSet` method.
351type AddProductToProductSetRequest struct {
352	// Product: Required. The resource name for the Product to be added to
353	// this ProductSet.
354	//
355	// Format is:
356	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
357	Product string `json:"product,omitempty"`
358
359	// ForceSendFields is a list of field names (e.g. "Product") to
360	// unconditionally include in API requests. By default, fields with
361	// empty values are omitted from API requests. However, any non-pointer,
362	// non-interface field appearing in ForceSendFields will be sent to the
363	// server regardless of whether the field is empty or not. This may be
364	// used to include empty fields in Patch requests.
365	ForceSendFields []string `json:"-"`
366
367	// NullFields is a list of field names (e.g. "Product") to include in
368	// API requests with the JSON null value. By default, fields with empty
369	// values are omitted from API requests. However, any field with an
370	// empty value appearing in NullFields will be sent to the server as
371	// null. It is an error if a field in this list has a non-empty value.
372	// This may be used to include null fields in Patch requests.
373	NullFields []string `json:"-"`
374}
375
376func (s *AddProductToProductSetRequest) MarshalJSON() ([]byte, error) {
377	type NoMethod AddProductToProductSetRequest
378	raw := NoMethod(*s)
379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
380}
381
382// AnnotateFileRequest: A request to annotate one single file, e.g. a
383// PDF, TIFF or GIF file.
384type AnnotateFileRequest struct {
385	// Features: Required. Requested features.
386	Features []*Feature `json:"features,omitempty"`
387
388	// ImageContext: Additional context that may accompany the image(s) in
389	// the file.
390	ImageContext *ImageContext `json:"imageContext,omitempty"`
391
392	// InputConfig: Required. Information about the input file.
393	InputConfig *InputConfig `json:"inputConfig,omitempty"`
394
395	// Pages: Pages of the file to perform image annotation.
396	//
397	// Pages starts from 1, we assume the first page of the file is page
398	// 1.
399	// At most 5 pages are supported per request. Pages can be
400	// negative.
401	//
402	// Page 1 means the first page.
403	// Page 2 means the second page.
404	// Page -1 means the last page.
405	// Page -2 means the second to the last page.
406	//
407	// If the file is GIF instead of PDF or TIFF, page refers to GIF
408	// frames.
409	//
410	// If this field is empty, by default the service performs image
411	// annotation
412	// for the first 5 pages of the file.
413	Pages []int64 `json:"pages,omitempty"`
414
415	// ForceSendFields is a list of field names (e.g. "Features") to
416	// unconditionally include in API requests. By default, fields with
417	// empty values are omitted from API requests. However, any non-pointer,
418	// non-interface field appearing in ForceSendFields will be sent to the
419	// server regardless of whether the field is empty or not. This may be
420	// used to include empty fields in Patch requests.
421	ForceSendFields []string `json:"-"`
422
423	// NullFields is a list of field names (e.g. "Features") to include in
424	// API requests with the JSON null value. By default, fields with empty
425	// values are omitted from API requests. However, any field with an
426	// empty value appearing in NullFields will be sent to the server as
427	// null. It is an error if a field in this list has a non-empty value.
428	// This may be used to include null fields in Patch requests.
429	NullFields []string `json:"-"`
430}
431
432func (s *AnnotateFileRequest) MarshalJSON() ([]byte, error) {
433	type NoMethod AnnotateFileRequest
434	raw := NoMethod(*s)
435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
436}
437
438// AnnotateFileResponse: Response to a single file annotation request. A
439// file may contain one or more
440// images, which individually have their own responses.
441type AnnotateFileResponse struct {
442	// Error: If set, represents the error message for the failed request.
443	// The
444	// `responses` field will not be set in this case.
445	Error *Status `json:"error,omitempty"`
446
447	// InputConfig: Information about the file for which this response is
448	// generated.
449	InputConfig *InputConfig `json:"inputConfig,omitempty"`
450
451	// Responses: Individual responses to images found within the file. This
452	// field will be
453	// empty if the `error` field is set.
454	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
455
456	// TotalPages: This field gives the total number of pages in the file.
457	TotalPages int64 `json:"totalPages,omitempty"`
458
459	// ForceSendFields is a list of field names (e.g. "Error") to
460	// unconditionally include in API requests. By default, fields with
461	// empty values are omitted from API requests. However, any non-pointer,
462	// non-interface field appearing in ForceSendFields will be sent to the
463	// server regardless of whether the field is empty or not. This may be
464	// used to include empty fields in Patch requests.
465	ForceSendFields []string `json:"-"`
466
467	// NullFields is a list of field names (e.g. "Error") to include in API
468	// requests with the JSON null value. By default, fields with empty
469	// values are omitted from API requests. However, any field with an
470	// empty value appearing in NullFields will be sent to the server as
471	// null. It is an error if a field in this list has a non-empty value.
472	// This may be used to include null fields in Patch requests.
473	NullFields []string `json:"-"`
474}
475
476func (s *AnnotateFileResponse) MarshalJSON() ([]byte, error) {
477	type NoMethod AnnotateFileResponse
478	raw := NoMethod(*s)
479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
480}
481
482// AnnotateImageRequest: Request for performing Google Cloud Vision API
483// tasks over a user-provided
484// image, with user-requested features, and with context information.
485type AnnotateImageRequest struct {
486	// Features: Requested features.
487	Features []*Feature `json:"features,omitempty"`
488
489	// Image: The image to be processed.
490	Image *Image `json:"image,omitempty"`
491
492	// ImageContext: Additional context that may accompany the image.
493	ImageContext *ImageContext `json:"imageContext,omitempty"`
494
495	// ForceSendFields is a list of field names (e.g. "Features") to
496	// unconditionally include in API requests. By default, fields with
497	// empty values are omitted from API requests. However, any non-pointer,
498	// non-interface field appearing in ForceSendFields will be sent to the
499	// server regardless of whether the field is empty or not. This may be
500	// used to include empty fields in Patch requests.
501	ForceSendFields []string `json:"-"`
502
503	// NullFields is a list of field names (e.g. "Features") to include in
504	// API requests with the JSON null value. By default, fields with empty
505	// values are omitted from API requests. However, any field with an
506	// empty value appearing in NullFields will be sent to the server as
507	// null. It is an error if a field in this list has a non-empty value.
508	// This may be used to include null fields in Patch requests.
509	NullFields []string `json:"-"`
510}
511
512func (s *AnnotateImageRequest) MarshalJSON() ([]byte, error) {
513	type NoMethod AnnotateImageRequest
514	raw := NoMethod(*s)
515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
516}
517
518// AnnotateImageResponse: Response to an image annotation request.
519type AnnotateImageResponse struct {
520	// Context: If present, contextual information is needed to understand
521	// where this image
522	// comes from.
523	Context *ImageAnnotationContext `json:"context,omitempty"`
524
525	// CropHintsAnnotation: If present, crop hints have completed
526	// successfully.
527	CropHintsAnnotation *CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
528
529	// Error: If set, represents the error message for the operation.
530	// Note that filled-in image annotations are guaranteed to be
531	// correct, even when `error` is set.
532	Error *Status `json:"error,omitempty"`
533
534	// FaceAnnotations: If present, face detection has completed
535	// successfully.
536	FaceAnnotations []*FaceAnnotation `json:"faceAnnotations,omitempty"`
537
538	// FullTextAnnotation: If present, text (OCR) detection or document
539	// (OCR) text detection has
540	// completed successfully.
541	// This annotation provides the structural hierarchy for the OCR
542	// detected
543	// text.
544	FullTextAnnotation *TextAnnotation `json:"fullTextAnnotation,omitempty"`
545
546	// ImagePropertiesAnnotation: If present, image properties were
547	// extracted successfully.
548	ImagePropertiesAnnotation *ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
549
550	// LabelAnnotations: If present, label detection has completed
551	// successfully.
552	LabelAnnotations []*EntityAnnotation `json:"labelAnnotations,omitempty"`
553
554	// LandmarkAnnotations: If present, landmark detection has completed
555	// successfully.
556	LandmarkAnnotations []*EntityAnnotation `json:"landmarkAnnotations,omitempty"`
557
558	// LocalizedObjectAnnotations: If present, localized object detection
559	// has completed successfully.
560	// This will be sorted descending by confidence score.
561	LocalizedObjectAnnotations []*LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
562
563	// LogoAnnotations: If present, logo detection has completed
564	// successfully.
565	LogoAnnotations []*EntityAnnotation `json:"logoAnnotations,omitempty"`
566
567	// ProductSearchResults: If present, product search has completed
568	// successfully.
569	ProductSearchResults *ProductSearchResults `json:"productSearchResults,omitempty"`
570
571	// SafeSearchAnnotation: If present, safe-search annotation has
572	// completed successfully.
573	SafeSearchAnnotation *SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
574
575	// TextAnnotations: If present, text (OCR) detection has completed
576	// successfully.
577	TextAnnotations []*EntityAnnotation `json:"textAnnotations,omitempty"`
578
579	// WebDetection: If present, web detection has completed successfully.
580	WebDetection *WebDetection `json:"webDetection,omitempty"`
581
582	// ForceSendFields is a list of field names (e.g. "Context") to
583	// unconditionally include in API requests. By default, fields with
584	// empty values are omitted from API requests. However, any non-pointer,
585	// non-interface field appearing in ForceSendFields will be sent to the
586	// server regardless of whether the field is empty or not. This may be
587	// used to include empty fields in Patch requests.
588	ForceSendFields []string `json:"-"`
589
590	// NullFields is a list of field names (e.g. "Context") to include in
591	// API requests with the JSON null value. By default, fields with empty
592	// values are omitted from API requests. However, any field with an
593	// empty value appearing in NullFields will be sent to the server as
594	// null. It is an error if a field in this list has a non-empty value.
595	// This may be used to include null fields in Patch requests.
596	NullFields []string `json:"-"`
597}
598
599func (s *AnnotateImageResponse) MarshalJSON() ([]byte, error) {
600	type NoMethod AnnotateImageResponse
601	raw := NoMethod(*s)
602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
603}
604
605// AsyncAnnotateFileRequest: An offline file annotation request.
606type AsyncAnnotateFileRequest struct {
607	// Features: Required. Requested features.
608	Features []*Feature `json:"features,omitempty"`
609
610	// ImageContext: Additional context that may accompany the image(s) in
611	// the file.
612	ImageContext *ImageContext `json:"imageContext,omitempty"`
613
614	// InputConfig: Required. Information about the input file.
615	InputConfig *InputConfig `json:"inputConfig,omitempty"`
616
617	// OutputConfig: Required. The desired output location and metadata
618	// (e.g. format).
619	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
620
621	// ForceSendFields is a list of field names (e.g. "Features") to
622	// unconditionally include in API requests. By default, fields with
623	// empty values are omitted from API requests. However, any non-pointer,
624	// non-interface field appearing in ForceSendFields will be sent to the
625	// server regardless of whether the field is empty or not. This may be
626	// used to include empty fields in Patch requests.
627	ForceSendFields []string `json:"-"`
628
629	// NullFields is a list of field names (e.g. "Features") to include in
630	// API requests with the JSON null value. By default, fields with empty
631	// values are omitted from API requests. However, any field with an
632	// empty value appearing in NullFields will be sent to the server as
633	// null. It is an error if a field in this list has a non-empty value.
634	// This may be used to include null fields in Patch requests.
635	NullFields []string `json:"-"`
636}
637
638func (s *AsyncAnnotateFileRequest) MarshalJSON() ([]byte, error) {
639	type NoMethod AsyncAnnotateFileRequest
640	raw := NoMethod(*s)
641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
642}
643
644// AsyncAnnotateFileResponse: The response for a single offline file
645// annotation request.
646type AsyncAnnotateFileResponse struct {
647	// OutputConfig: The output location and metadata from
648	// AsyncAnnotateFileRequest.
649	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
650
651	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
652	// unconditionally include in API requests. By default, fields with
653	// empty values are omitted from API requests. However, any non-pointer,
654	// non-interface field appearing in ForceSendFields will be sent to the
655	// server regardless of whether the field is empty or not. This may be
656	// used to include empty fields in Patch requests.
657	ForceSendFields []string `json:"-"`
658
659	// NullFields is a list of field names (e.g. "OutputConfig") to include
660	// in API requests with the JSON null value. By default, fields with
661	// empty values are omitted from API requests. However, any field with
662	// an empty value appearing in NullFields will be sent to the server as
663	// null. It is an error if a field in this list has a non-empty value.
664	// This may be used to include null fields in Patch requests.
665	NullFields []string `json:"-"`
666}
667
668func (s *AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
669	type NoMethod AsyncAnnotateFileResponse
670	raw := NoMethod(*s)
671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
672}
673
674// AsyncBatchAnnotateFilesRequest: Multiple async file annotation
675// requests are batched into a single service
676// call.
677type AsyncBatchAnnotateFilesRequest struct {
678	// Parent: Optional. Target project and location to make a
679	// call.
680	//
681	// Format: `projects/{project-id}/locations/{location-id}`.
682	//
683	// If no parent is specified, a region will be chosen
684	// automatically.
685	//
686	// Supported location-ids:
687	//     `us`: USA country only,
688	//     `asia`: East asia areas, like Japan, Taiwan,
689	//     `eu`: The European Union.
690	//
691	// Example: `projects/project-A/locations/eu`.
692	Parent string `json:"parent,omitempty"`
693
694	// Requests: Required. Individual async file annotation requests for
695	// this batch.
696	Requests []*AsyncAnnotateFileRequest `json:"requests,omitempty"`
697
698	// ForceSendFields is a list of field names (e.g. "Parent") to
699	// unconditionally include in API requests. By default, fields with
700	// empty values are omitted from API requests. However, any non-pointer,
701	// non-interface field appearing in ForceSendFields will be sent to the
702	// server regardless of whether the field is empty or not. This may be
703	// used to include empty fields in Patch requests.
704	ForceSendFields []string `json:"-"`
705
706	// NullFields is a list of field names (e.g. "Parent") to include in API
707	// requests with the JSON null value. By default, fields with empty
708	// values are omitted from API requests. However, any field with an
709	// empty value appearing in NullFields will be sent to the server as
710	// null. It is an error if a field in this list has a non-empty value.
711	// This may be used to include null fields in Patch requests.
712	NullFields []string `json:"-"`
713}
714
715func (s *AsyncBatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
716	type NoMethod AsyncBatchAnnotateFilesRequest
717	raw := NoMethod(*s)
718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
719}
720
721// AsyncBatchAnnotateFilesResponse: Response to an async batch file
722// annotation request.
723type AsyncBatchAnnotateFilesResponse struct {
724	// Responses: The list of file annotation responses, one for each
725	// request in
726	// AsyncBatchAnnotateFilesRequest.
727	Responses []*AsyncAnnotateFileResponse `json:"responses,omitempty"`
728
729	// ForceSendFields is a list of field names (e.g. "Responses") to
730	// unconditionally include in API requests. By default, fields with
731	// empty values are omitted from API requests. However, any non-pointer,
732	// non-interface field appearing in ForceSendFields will be sent to the
733	// server regardless of whether the field is empty or not. This may be
734	// used to include empty fields in Patch requests.
735	ForceSendFields []string `json:"-"`
736
737	// NullFields is a list of field names (e.g. "Responses") to include in
738	// API requests with the JSON null value. By default, fields with empty
739	// values are omitted from API requests. However, any field with an
740	// empty value appearing in NullFields will be sent to the server as
741	// null. It is an error if a field in this list has a non-empty value.
742	// This may be used to include null fields in Patch requests.
743	NullFields []string `json:"-"`
744}
745
746func (s *AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
747	type NoMethod AsyncBatchAnnotateFilesResponse
748	raw := NoMethod(*s)
749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
750}
751
752// AsyncBatchAnnotateImagesRequest: Request for async image annotation
753// for a list of images.
754type AsyncBatchAnnotateImagesRequest struct {
755	// OutputConfig: Required. The desired output location and metadata
756	// (e.g. format).
757	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
758
759	// Parent: Optional. Target project and location to make a
760	// call.
761	//
762	// Format: `projects/{project-id}/locations/{location-id}`.
763	//
764	// If no parent is specified, a region will be chosen
765	// automatically.
766	//
767	// Supported location-ids:
768	//     `us`: USA country only,
769	//     `asia`: East asia areas, like Japan, Taiwan,
770	//     `eu`: The European Union.
771	//
772	// Example: `projects/project-A/locations/eu`.
773	Parent string `json:"parent,omitempty"`
774
775	// Requests: Required. Individual image annotation requests for this
776	// batch.
777	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
778
779	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
780	// unconditionally include in API requests. By default, fields with
781	// empty values are omitted from API requests. However, any non-pointer,
782	// non-interface field appearing in ForceSendFields will be sent to the
783	// server regardless of whether the field is empty or not. This may be
784	// used to include empty fields in Patch requests.
785	ForceSendFields []string `json:"-"`
786
787	// NullFields is a list of field names (e.g. "OutputConfig") to include
788	// in API requests with the JSON null value. By default, fields with
789	// empty values are omitted from API requests. However, any field with
790	// an empty value appearing in NullFields will be sent to the server as
791	// null. It is an error if a field in this list has a non-empty value.
792	// This may be used to include null fields in Patch requests.
793	NullFields []string `json:"-"`
794}
795
796func (s *AsyncBatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
797	type NoMethod AsyncBatchAnnotateImagesRequest
798	raw := NoMethod(*s)
799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
800}
801
802// AsyncBatchAnnotateImagesResponse: Response to an async batch image
803// annotation request.
804type AsyncBatchAnnotateImagesResponse struct {
805	// OutputConfig: The output location and metadata from
806	// AsyncBatchAnnotateImagesRequest.
807	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
808
809	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
810	// unconditionally include in API requests. By default, fields with
811	// empty values are omitted from API requests. However, any non-pointer,
812	// non-interface field appearing in ForceSendFields will be sent to the
813	// server regardless of whether the field is empty or not. This may be
814	// used to include empty fields in Patch requests.
815	ForceSendFields []string `json:"-"`
816
817	// NullFields is a list of field names (e.g. "OutputConfig") to include
818	// in API requests with the JSON null value. By default, fields with
819	// empty values are omitted from API requests. However, any field with
820	// an empty value appearing in NullFields will be sent to the server as
821	// null. It is an error if a field in this list has a non-empty value.
822	// This may be used to include null fields in Patch requests.
823	NullFields []string `json:"-"`
824}
825
826func (s *AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
827	type NoMethod AsyncBatchAnnotateImagesResponse
828	raw := NoMethod(*s)
829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
830}
831
832// BatchAnnotateFilesRequest: A list of requests to annotate files using
833// the BatchAnnotateFiles API.
834type BatchAnnotateFilesRequest struct {
835	// Parent: Optional. Target project and location to make a
836	// call.
837	//
838	// Format: `projects/{project-id}/locations/{location-id}`.
839	//
840	// If no parent is specified, a region will be chosen
841	// automatically.
842	//
843	// Supported location-ids:
844	//     `us`: USA country only,
845	//     `asia`: East asia areas, like Japan, Taiwan,
846	//     `eu`: The European Union.
847	//
848	// Example: `projects/project-A/locations/eu`.
849	Parent string `json:"parent,omitempty"`
850
851	// Requests: Required. The list of file annotation requests. Right now
852	// we support only one
853	// AnnotateFileRequest in BatchAnnotateFilesRequest.
854	Requests []*AnnotateFileRequest `json:"requests,omitempty"`
855
856	// ForceSendFields is a list of field names (e.g. "Parent") to
857	// unconditionally include in API requests. By default, fields with
858	// empty values are omitted from API requests. However, any non-pointer,
859	// non-interface field appearing in ForceSendFields will be sent to the
860	// server regardless of whether the field is empty or not. This may be
861	// used to include empty fields in Patch requests.
862	ForceSendFields []string `json:"-"`
863
864	// NullFields is a list of field names (e.g. "Parent") to include in API
865	// requests with the JSON null value. By default, fields with empty
866	// values are omitted from API requests. However, any field with an
867	// empty value appearing in NullFields will be sent to the server as
868	// null. It is an error if a field in this list has a non-empty value.
869	// This may be used to include null fields in Patch requests.
870	NullFields []string `json:"-"`
871}
872
873func (s *BatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
874	type NoMethod BatchAnnotateFilesRequest
875	raw := NoMethod(*s)
876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
877}
878
879// BatchAnnotateFilesResponse: A list of file annotation responses.
880type BatchAnnotateFilesResponse struct {
881	// Responses: The list of file annotation responses, each response
882	// corresponding to each
883	// AnnotateFileRequest in BatchAnnotateFilesRequest.
884	Responses []*AnnotateFileResponse `json:"responses,omitempty"`
885
886	// ServerResponse contains the HTTP response code and headers from the
887	// server.
888	googleapi.ServerResponse `json:"-"`
889
890	// ForceSendFields is a list of field names (e.g. "Responses") to
891	// unconditionally include in API requests. By default, fields with
892	// empty values are omitted from API requests. However, any non-pointer,
893	// non-interface field appearing in ForceSendFields will be sent to the
894	// server regardless of whether the field is empty or not. This may be
895	// used to include empty fields in Patch requests.
896	ForceSendFields []string `json:"-"`
897
898	// NullFields is a list of field names (e.g. "Responses") to include in
899	// API requests with the JSON null value. By default, fields with empty
900	// values are omitted from API requests. However, any field with an
901	// empty value appearing in NullFields will be sent to the server as
902	// null. It is an error if a field in this list has a non-empty value.
903	// This may be used to include null fields in Patch requests.
904	NullFields []string `json:"-"`
905}
906
907func (s *BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
908	type NoMethod BatchAnnotateFilesResponse
909	raw := NoMethod(*s)
910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
911}
912
913// BatchAnnotateImagesRequest: Multiple image annotation requests are
914// batched into a single service call.
915type BatchAnnotateImagesRequest struct {
916	// Parent: Optional. Target project and location to make a
917	// call.
918	//
919	// Format: `projects/{project-id}/locations/{location-id}`.
920	//
921	// If no parent is specified, a region will be chosen
922	// automatically.
923	//
924	// Supported location-ids:
925	//     `us`: USA country only,
926	//     `asia`: East asia areas, like Japan, Taiwan,
927	//     `eu`: The European Union.
928	//
929	// Example: `projects/project-A/locations/eu`.
930	Parent string `json:"parent,omitempty"`
931
932	// Requests: Required. Individual image annotation requests for this
933	// batch.
934	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
935
936	// ForceSendFields is a list of field names (e.g. "Parent") to
937	// unconditionally include in API requests. By default, fields with
938	// empty values are omitted from API requests. However, any non-pointer,
939	// non-interface field appearing in ForceSendFields will be sent to the
940	// server regardless of whether the field is empty or not. This may be
941	// used to include empty fields in Patch requests.
942	ForceSendFields []string `json:"-"`
943
944	// NullFields is a list of field names (e.g. "Parent") to include in API
945	// requests with the JSON null value. By default, fields with empty
946	// values are omitted from API requests. However, any field with an
947	// empty value appearing in NullFields will be sent to the server as
948	// null. It is an error if a field in this list has a non-empty value.
949	// This may be used to include null fields in Patch requests.
950	NullFields []string `json:"-"`
951}
952
953func (s *BatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
954	type NoMethod BatchAnnotateImagesRequest
955	raw := NoMethod(*s)
956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
957}
958
959// BatchAnnotateImagesResponse: Response to a batch image annotation
960// request.
961type BatchAnnotateImagesResponse struct {
962	// Responses: Individual responses to image annotation requests within
963	// the batch.
964	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
965
966	// ServerResponse contains the HTTP response code and headers from the
967	// server.
968	googleapi.ServerResponse `json:"-"`
969
970	// ForceSendFields is a list of field names (e.g. "Responses") to
971	// unconditionally include in API requests. By default, fields with
972	// empty values are omitted from API requests. However, any non-pointer,
973	// non-interface field appearing in ForceSendFields will be sent to the
974	// server regardless of whether the field is empty or not. This may be
975	// used to include empty fields in Patch requests.
976	ForceSendFields []string `json:"-"`
977
978	// NullFields is a list of field names (e.g. "Responses") to include in
979	// API requests with the JSON null value. By default, fields with empty
980	// values are omitted from API requests. However, any field with an
981	// empty value appearing in NullFields will be sent to the server as
982	// null. It is an error if a field in this list has a non-empty value.
983	// This may be used to include null fields in Patch requests.
984	NullFields []string `json:"-"`
985}
986
987func (s *BatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
988	type NoMethod BatchAnnotateImagesResponse
989	raw := NoMethod(*s)
990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
991}
992
993// BatchOperationMetadata: Metadata for the batch operations such as the
994// current state.
995//
996// This is included in the `metadata` field of the `Operation` returned
997// by the
998// `GetOperation` call of the `google::longrunning::Operations` service.
999type BatchOperationMetadata struct {
1000	// EndTime: The time when the batch request is finished
1001	// and
1002	// google.longrunning.Operation.done is set to true.
1003	EndTime string `json:"endTime,omitempty"`
1004
1005	// State: The current state of the batch operation.
1006	//
1007	// Possible values:
1008	//   "STATE_UNSPECIFIED" - Invalid.
1009	//   "PROCESSING" - Request is actively being processed.
1010	//   "SUCCESSFUL" - The request is done and at least one item has been
1011	// successfully
1012	// processed.
1013	//   "FAILED" - The request is done and no item has been successfully
1014	// processed.
1015	//   "CANCELLED" - The request is done after the
1016	// longrunning.Operations.CancelOperation has
1017	// been called by the user.  Any records that were processed before
1018	// the
1019	// cancel command are output as specified in the request.
1020	State string `json:"state,omitempty"`
1021
1022	// SubmitTime: The time when the batch request was submitted to the
1023	// server.
1024	SubmitTime string `json:"submitTime,omitempty"`
1025
1026	// ForceSendFields is a list of field names (e.g. "EndTime") to
1027	// unconditionally include in API requests. By default, fields with
1028	// empty values are omitted from API requests. However, any non-pointer,
1029	// non-interface field appearing in ForceSendFields will be sent to the
1030	// server regardless of whether the field is empty or not. This may be
1031	// used to include empty fields in Patch requests.
1032	ForceSendFields []string `json:"-"`
1033
1034	// NullFields is a list of field names (e.g. "EndTime") to include in
1035	// API requests with the JSON null value. By default, fields with empty
1036	// values are omitted from API requests. However, any field with an
1037	// empty value appearing in NullFields will be sent to the server as
1038	// null. It is an error if a field in this list has a non-empty value.
1039	// This may be used to include null fields in Patch requests.
1040	NullFields []string `json:"-"`
1041}
1042
1043func (s *BatchOperationMetadata) MarshalJSON() ([]byte, error) {
1044	type NoMethod BatchOperationMetadata
1045	raw := NoMethod(*s)
1046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1047}
1048
1049// Block: Logical element on the page.
1050type Block struct {
1051	// BlockType: Detected block type (text, image etc) for this block.
1052	//
1053	// Possible values:
1054	//   "UNKNOWN" - Unknown block type.
1055	//   "TEXT" - Regular text block.
1056	//   "TABLE" - Table block.
1057	//   "PICTURE" - Image block.
1058	//   "RULER" - Horizontal/vertical line box.
1059	//   "BARCODE" - Barcode block.
1060	BlockType string `json:"blockType,omitempty"`
1061
1062	// BoundingBox: The bounding box for the block.
1063	// The vertices are in the order of top-left, top-right,
1064	// bottom-right,
1065	// bottom-left. When a rotation of the bounding box is detected the
1066	// rotation
1067	// is represented as around the top-left corner as defined when the text
1068	// is
1069	// read in the 'natural' orientation.
1070	// For example:
1071	//
1072	// * when the text is horizontal it might look like:
1073	//
1074	//         0----1
1075	//         |    |
1076	//         3----2
1077	//
1078	// * when it's rotated 180 degrees around the top-left corner it
1079	// becomes:
1080	//
1081	//         2----3
1082	//         |    |
1083	//         1----0
1084	//
1085	//   and the vertex order will still be (0, 1, 2, 3).
1086	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
1087
1088	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
1089	Confidence float64 `json:"confidence,omitempty"`
1090
1091	// Paragraphs: List of paragraphs in this block (if this blocks is of
1092	// type text).
1093	Paragraphs []*Paragraph `json:"paragraphs,omitempty"`
1094
1095	// Property: Additional information detected for the block.
1096	Property *TextProperty `json:"property,omitempty"`
1097
1098	// ForceSendFields is a list of field names (e.g. "BlockType") to
1099	// unconditionally include in API requests. By default, fields with
1100	// empty values are omitted from API requests. However, any non-pointer,
1101	// non-interface field appearing in ForceSendFields will be sent to the
1102	// server regardless of whether the field is empty or not. This may be
1103	// used to include empty fields in Patch requests.
1104	ForceSendFields []string `json:"-"`
1105
1106	// NullFields is a list of field names (e.g. "BlockType") to include in
1107	// API requests with the JSON null value. By default, fields with empty
1108	// values are omitted from API requests. However, any field with an
1109	// empty value appearing in NullFields will be sent to the server as
1110	// null. It is an error if a field in this list has a non-empty value.
1111	// This may be used to include null fields in Patch requests.
1112	NullFields []string `json:"-"`
1113}
1114
1115func (s *Block) MarshalJSON() ([]byte, error) {
1116	type NoMethod Block
1117	raw := NoMethod(*s)
1118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1119}
1120
1121func (s *Block) UnmarshalJSON(data []byte) error {
1122	type NoMethod Block
1123	var s1 struct {
1124		Confidence gensupport.JSONFloat64 `json:"confidence"`
1125		*NoMethod
1126	}
1127	s1.NoMethod = (*NoMethod)(s)
1128	if err := json.Unmarshal(data, &s1); err != nil {
1129		return err
1130	}
1131	s.Confidence = float64(s1.Confidence)
1132	return nil
1133}
1134
1135// BoundingPoly: A bounding polygon for the detected image annotation.
1136type BoundingPoly struct {
1137	// NormalizedVertices: The bounding polygon normalized vertices.
1138	NormalizedVertices []*NormalizedVertex `json:"normalizedVertices,omitempty"`
1139
1140	// Vertices: The bounding polygon vertices.
1141	Vertices []*Vertex `json:"vertices,omitempty"`
1142
1143	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
1144	// to unconditionally include in API requests. By default, fields with
1145	// empty values are omitted from API requests. However, any non-pointer,
1146	// non-interface field appearing in ForceSendFields will be sent to the
1147	// server regardless of whether the field is empty or not. This may be
1148	// used to include empty fields in Patch requests.
1149	ForceSendFields []string `json:"-"`
1150
1151	// NullFields is a list of field names (e.g. "NormalizedVertices") to
1152	// include in API requests with the JSON null value. By default, fields
1153	// with empty values are omitted from API requests. However, any field
1154	// with an empty value appearing in NullFields will be sent to the
1155	// server as null. It is an error if a field in this list has a
1156	// non-empty value. This may be used to include null fields in Patch
1157	// requests.
1158	NullFields []string `json:"-"`
1159}
1160
1161func (s *BoundingPoly) MarshalJSON() ([]byte, error) {
1162	type NoMethod BoundingPoly
1163	raw := NoMethod(*s)
1164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1165}
1166
1167// CancelOperationRequest: The request message for
1168// Operations.CancelOperation.
1169type CancelOperationRequest struct {
1170}
1171
1172// Color: Represents a color in the RGBA color space. This
1173// representation is designed
1174// for simplicity of conversion to/from color representations in
1175// various
1176// languages over compactness; for example, the fields of this
1177// representation
1178// can be trivially provided to the constructor of "java.awt.Color" in
1179// Java; it
1180// can also be trivially provided to UIColor's
1181// "+colorWithRed:green:blue:alpha"
1182// method in iOS; and, with just a little work, it can be easily
1183// formatted into
1184// a CSS "rgba()" string in JavaScript, as well.
1185//
1186// Note: this proto does not carry information about the absolute color
1187// space
1188// that should be used to interpret the RGB value (e.g. sRGB, Adobe
1189// RGB,
1190// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
1191// sRGB color
1192// space.
1193//
1194// Note: when color equality needs to be decided, implementations,
1195// unless
1196// documented otherwise, will treat two colors to be equal if all their
1197// red,
1198// green, blue and alpha values each differ by at most 1e-5.
1199//
1200// Example (Java):
1201//
1202//      import com.google.type.Color;
1203//
1204//      // ...
1205//      public static java.awt.Color fromProto(Color protocolor) {
1206//        float alpha = protocolor.hasAlpha()
1207//            ? protocolor.getAlpha().getValue()
1208//            : 1.0;
1209//
1210//        return new java.awt.Color(
1211//            protocolor.getRed(),
1212//            protocolor.getGreen(),
1213//            protocolor.getBlue(),
1214//            alpha);
1215//      }
1216//
1217//      public static Color toProto(java.awt.Color color) {
1218//        float red = (float) color.getRed();
1219//        float green = (float) color.getGreen();
1220//        float blue = (float) color.getBlue();
1221//        float denominator = 255.0;
1222//        Color.Builder resultBuilder =
1223//            Color
1224//                .newBuilder()
1225//                .setRed(red / denominator)
1226//                .setGreen(green / denominator)
1227//                .setBlue(blue / denominator);
1228//        int alpha = color.getAlpha();
1229//        if (alpha != 255) {
1230//          result.setAlpha(
1231//              FloatValue
1232//                  .newBuilder()
1233//                  .setValue(((float) alpha) / denominator)
1234//                  .build());
1235//        }
1236//        return resultBuilder.build();
1237//      }
1238//      // ...
1239//
1240// Example (iOS / Obj-C):
1241//
1242//      // ...
1243//      static UIColor* fromProto(Color* protocolor) {
1244//         float red = [protocolor red];
1245//         float green = [protocolor green];
1246//         float blue = [protocolor blue];
1247//         FloatValue* alpha_wrapper = [protocolor alpha];
1248//         float alpha = 1.0;
1249//         if (alpha_wrapper != nil) {
1250//           alpha = [alpha_wrapper value];
1251//         }
1252//         return [UIColor colorWithRed:red green:green blue:blue
1253// alpha:alpha];
1254//      }
1255//
1256//      static Color* toProto(UIColor* color) {
1257//          CGFloat red, green, blue, alpha;
1258//          if (![color getRed:&red green:&green blue:&blue
1259// alpha:&alpha]) {
1260//            return nil;
1261//          }
1262//          Color* result = [[Color alloc] init];
1263//          [result setRed:red];
1264//          [result setGreen:green];
1265//          [result setBlue:blue];
1266//          if (alpha <= 0.9999) {
1267//            [result setAlpha:floatWrapperWithValue(alpha)];
1268//          }
1269//          [result autorelease];
1270//          return result;
1271//     }
1272//     // ...
1273//
1274//  Example (JavaScript):
1275//
1276//     // ...
1277//
1278//     var protoToCssColor = function(rgb_color) {
1279//        var redFrac = rgb_color.red || 0.0;
1280//        var greenFrac = rgb_color.green || 0.0;
1281//        var blueFrac = rgb_color.blue || 0.0;
1282//        var red = Math.floor(redFrac * 255);
1283//        var green = Math.floor(greenFrac * 255);
1284//        var blue = Math.floor(blueFrac * 255);
1285//
1286//        if (!('alpha' in rgb_color)) {
1287//           return rgbToCssColor_(red, green, blue);
1288//        }
1289//
1290//        var alphaFrac = rgb_color.alpha.value || 0.0;
1291//        var rgbParams = [red, green, blue].join(',');
1292//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1293//     };
1294//
1295//     var rgbToCssColor_ = function(red, green, blue) {
1296//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1297//       var hexString = rgbNumber.toString(16);
1298//       var missingZeros = 6 - hexString.length;
1299//       var resultBuilder = ['#'];
1300//       for (var i = 0; i < missingZeros; i++) {
1301//          resultBuilder.push('0');
1302//       }
1303//       resultBuilder.push(hexString);
1304//       return resultBuilder.join('');
1305//     };
1306//
1307//     // ...
1308type Color struct {
1309	// Alpha: The fraction of this color that should be applied to the
1310	// pixel. That is,
1311	// the final pixel color is defined by the equation:
1312	//
1313	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
1314	// color)
1315	//
1316	// This means that a value of 1.0 corresponds to a solid color,
1317	// whereas
1318	// a value of 0.0 corresponds to a completely transparent color.
1319	// This
1320	// uses a wrapper message rather than a simple float scalar so that it
1321	// is
1322	// possible to distinguish between a default value and the value being
1323	// unset.
1324	// If omitted, this color object is to be rendered as a solid color
1325	// (as if the alpha value had been explicitly given with a value of
1326	// 1.0).
1327	Alpha float64 `json:"alpha,omitempty"`
1328
1329	// Blue: The amount of blue in the color as a value in the interval [0,
1330	// 1].
1331	Blue float64 `json:"blue,omitempty"`
1332
1333	// Green: The amount of green in the color as a value in the interval
1334	// [0, 1].
1335	Green float64 `json:"green,omitempty"`
1336
1337	// Red: The amount of red in the color as a value in the interval [0,
1338	// 1].
1339	Red float64 `json:"red,omitempty"`
1340
1341	// ForceSendFields is a list of field names (e.g. "Alpha") to
1342	// unconditionally include in API requests. By default, fields with
1343	// empty values are omitted from API requests. However, any non-pointer,
1344	// non-interface field appearing in ForceSendFields will be sent to the
1345	// server regardless of whether the field is empty or not. This may be
1346	// used to include empty fields in Patch requests.
1347	ForceSendFields []string `json:"-"`
1348
1349	// NullFields is a list of field names (e.g. "Alpha") to include in API
1350	// requests with the JSON null value. By default, fields with empty
1351	// values are omitted from API requests. However, any field with an
1352	// empty value appearing in NullFields will be sent to the server as
1353	// null. It is an error if a field in this list has a non-empty value.
1354	// This may be used to include null fields in Patch requests.
1355	NullFields []string `json:"-"`
1356}
1357
1358func (s *Color) MarshalJSON() ([]byte, error) {
1359	type NoMethod Color
1360	raw := NoMethod(*s)
1361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1362}
1363
1364func (s *Color) UnmarshalJSON(data []byte) error {
1365	type NoMethod Color
1366	var s1 struct {
1367		Alpha gensupport.JSONFloat64 `json:"alpha"`
1368		Blue  gensupport.JSONFloat64 `json:"blue"`
1369		Green gensupport.JSONFloat64 `json:"green"`
1370		Red   gensupport.JSONFloat64 `json:"red"`
1371		*NoMethod
1372	}
1373	s1.NoMethod = (*NoMethod)(s)
1374	if err := json.Unmarshal(data, &s1); err != nil {
1375		return err
1376	}
1377	s.Alpha = float64(s1.Alpha)
1378	s.Blue = float64(s1.Blue)
1379	s.Green = float64(s1.Green)
1380	s.Red = float64(s1.Red)
1381	return nil
1382}
1383
1384// ColorInfo: Color information consists of RGB channels, score, and the
1385// fraction of
1386// the image that the color occupies in the image.
1387type ColorInfo struct {
1388	// Color: RGB components of the color.
1389	Color *Color `json:"color,omitempty"`
1390
1391	// PixelFraction: The fraction of pixels the color occupies in the
1392	// image.
1393	// Value in range [0, 1].
1394	PixelFraction float64 `json:"pixelFraction,omitempty"`
1395
1396	// Score: Image-specific score for this color. Value in range [0, 1].
1397	Score float64 `json:"score,omitempty"`
1398
1399	// ForceSendFields is a list of field names (e.g. "Color") to
1400	// unconditionally include in API requests. By default, fields with
1401	// empty values are omitted from API requests. However, any non-pointer,
1402	// non-interface field appearing in ForceSendFields will be sent to the
1403	// server regardless of whether the field is empty or not. This may be
1404	// used to include empty fields in Patch requests.
1405	ForceSendFields []string `json:"-"`
1406
1407	// NullFields is a list of field names (e.g. "Color") to include in API
1408	// requests with the JSON null value. By default, fields with empty
1409	// values are omitted from API requests. However, any field with an
1410	// empty value appearing in NullFields will be sent to the server as
1411	// null. It is an error if a field in this list has a non-empty value.
1412	// This may be used to include null fields in Patch requests.
1413	NullFields []string `json:"-"`
1414}
1415
1416func (s *ColorInfo) MarshalJSON() ([]byte, error) {
1417	type NoMethod ColorInfo
1418	raw := NoMethod(*s)
1419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1420}
1421
1422func (s *ColorInfo) UnmarshalJSON(data []byte) error {
1423	type NoMethod ColorInfo
1424	var s1 struct {
1425		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
1426		Score         gensupport.JSONFloat64 `json:"score"`
1427		*NoMethod
1428	}
1429	s1.NoMethod = (*NoMethod)(s)
1430	if err := json.Unmarshal(data, &s1); err != nil {
1431		return err
1432	}
1433	s.PixelFraction = float64(s1.PixelFraction)
1434	s.Score = float64(s1.Score)
1435	return nil
1436}
1437
1438// CropHint: Single crop hint that is used to generate a new crop when
1439// serving an image.
1440type CropHint struct {
1441	// BoundingPoly: The bounding polygon for the crop region. The
1442	// coordinates of the bounding
1443	// box are in the original image's scale.
1444	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1445
1446	// Confidence: Confidence of this being a salient region.  Range [0, 1].
1447	Confidence float64 `json:"confidence,omitempty"`
1448
1449	// ImportanceFraction: Fraction of importance of this salient region
1450	// with respect to the original
1451	// image.
1452	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
1453
1454	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1455	// unconditionally include in API requests. By default, fields with
1456	// empty values are omitted from API requests. However, any non-pointer,
1457	// non-interface field appearing in ForceSendFields will be sent to the
1458	// server regardless of whether the field is empty or not. This may be
1459	// used to include empty fields in Patch requests.
1460	ForceSendFields []string `json:"-"`
1461
1462	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1463	// in API requests with the JSON null value. By default, fields with
1464	// empty values are omitted from API requests. However, any field with
1465	// an empty value appearing in NullFields will be sent to the server as
1466	// null. It is an error if a field in this list has a non-empty value.
1467	// This may be used to include null fields in Patch requests.
1468	NullFields []string `json:"-"`
1469}
1470
1471func (s *CropHint) MarshalJSON() ([]byte, error) {
1472	type NoMethod CropHint
1473	raw := NoMethod(*s)
1474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1475}
1476
1477func (s *CropHint) UnmarshalJSON(data []byte) error {
1478	type NoMethod CropHint
1479	var s1 struct {
1480		Confidence         gensupport.JSONFloat64 `json:"confidence"`
1481		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
1482		*NoMethod
1483	}
1484	s1.NoMethod = (*NoMethod)(s)
1485	if err := json.Unmarshal(data, &s1); err != nil {
1486		return err
1487	}
1488	s.Confidence = float64(s1.Confidence)
1489	s.ImportanceFraction = float64(s1.ImportanceFraction)
1490	return nil
1491}
1492
1493// CropHintsAnnotation: Set of crop hints that are used to generate new
1494// crops when serving images.
1495type CropHintsAnnotation struct {
1496	// CropHints: Crop hint results.
1497	CropHints []*CropHint `json:"cropHints,omitempty"`
1498
1499	// ForceSendFields is a list of field names (e.g. "CropHints") to
1500	// unconditionally include in API requests. By default, fields with
1501	// empty values are omitted from API requests. However, any non-pointer,
1502	// non-interface field appearing in ForceSendFields will be sent to the
1503	// server regardless of whether the field is empty or not. This may be
1504	// used to include empty fields in Patch requests.
1505	ForceSendFields []string `json:"-"`
1506
1507	// NullFields is a list of field names (e.g. "CropHints") to include in
1508	// API requests with the JSON null value. By default, fields with empty
1509	// values are omitted from API requests. However, any field with an
1510	// empty value appearing in NullFields will be sent to the server as
1511	// null. It is an error if a field in this list has a non-empty value.
1512	// This may be used to include null fields in Patch requests.
1513	NullFields []string `json:"-"`
1514}
1515
1516func (s *CropHintsAnnotation) MarshalJSON() ([]byte, error) {
1517	type NoMethod CropHintsAnnotation
1518	raw := NoMethod(*s)
1519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1520}
1521
1522// CropHintsParams: Parameters for crop hints annotation request.
1523type CropHintsParams struct {
1524	// AspectRatios: Aspect ratios in floats, representing the ratio of the
1525	// width to the height
1526	// of the image. For example, if the desired aspect ratio is 4/3,
1527	// the
1528	// corresponding float value should be 1.33333.  If not specified,
1529	// the
1530	// best possible crop is returned. The number of provided aspect ratios
1531	// is
1532	// limited to a maximum of 16; any aspect ratios provided after the 16th
1533	// are
1534	// ignored.
1535	AspectRatios []float64 `json:"aspectRatios,omitempty"`
1536
1537	// ForceSendFields is a list of field names (e.g. "AspectRatios") to
1538	// unconditionally include in API requests. By default, fields with
1539	// empty values are omitted from API requests. However, any non-pointer,
1540	// non-interface field appearing in ForceSendFields will be sent to the
1541	// server regardless of whether the field is empty or not. This may be
1542	// used to include empty fields in Patch requests.
1543	ForceSendFields []string `json:"-"`
1544
1545	// NullFields is a list of field names (e.g. "AspectRatios") to include
1546	// in API requests with the JSON null value. By default, fields with
1547	// empty values are omitted from API requests. However, any field with
1548	// an empty value appearing in NullFields will be sent to the server as
1549	// null. It is an error if a field in this list has a non-empty value.
1550	// This may be used to include null fields in Patch requests.
1551	NullFields []string `json:"-"`
1552}
1553
1554func (s *CropHintsParams) MarshalJSON() ([]byte, error) {
1555	type NoMethod CropHintsParams
1556	raw := NoMethod(*s)
1557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1558}
1559
1560// DetectedBreak: Detected start or end of a structural component.
1561type DetectedBreak struct {
1562	// IsPrefix: True if break prepends the element.
1563	IsPrefix bool `json:"isPrefix,omitempty"`
1564
1565	// Type: Detected break type.
1566	//
1567	// Possible values:
1568	//   "UNKNOWN" - Unknown break label type.
1569	//   "SPACE" - Regular space.
1570	//   "SURE_SPACE" - Sure space (very wide).
1571	//   "EOL_SURE_SPACE" - Line-wrapping break.
1572	//   "HYPHEN" - End-line hyphen that is not present in text; does not
1573	// co-occur with
1574	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
1575	//   "LINE_BREAK" - Line break that ends a paragraph.
1576	Type string `json:"type,omitempty"`
1577
1578	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
1579	// unconditionally include in API requests. By default, fields with
1580	// empty values are omitted from API requests. However, any non-pointer,
1581	// non-interface field appearing in ForceSendFields will be sent to the
1582	// server regardless of whether the field is empty or not. This may be
1583	// used to include empty fields in Patch requests.
1584	ForceSendFields []string `json:"-"`
1585
1586	// NullFields is a list of field names (e.g. "IsPrefix") to include in
1587	// API requests with the JSON null value. By default, fields with empty
1588	// values are omitted from API requests. However, any field with an
1589	// empty value appearing in NullFields will be sent to the server as
1590	// null. It is an error if a field in this list has a non-empty value.
1591	// This may be used to include null fields in Patch requests.
1592	NullFields []string `json:"-"`
1593}
1594
1595func (s *DetectedBreak) MarshalJSON() ([]byte, error) {
1596	type NoMethod DetectedBreak
1597	raw := NoMethod(*s)
1598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1599}
1600
1601// DetectedLanguage: Detected language for a structural component.
1602type DetectedLanguage struct {
1603	// Confidence: Confidence of detected language. Range [0, 1].
1604	Confidence float64 `json:"confidence,omitempty"`
1605
1606	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
1607	// For more
1608	// information,
1609	// see
1610	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
1611	LanguageCode string `json:"languageCode,omitempty"`
1612
1613	// ForceSendFields is a list of field names (e.g. "Confidence") to
1614	// unconditionally include in API requests. By default, fields with
1615	// empty values are omitted from API requests. However, any non-pointer,
1616	// non-interface field appearing in ForceSendFields will be sent to the
1617	// server regardless of whether the field is empty or not. This may be
1618	// used to include empty fields in Patch requests.
1619	ForceSendFields []string `json:"-"`
1620
1621	// NullFields is a list of field names (e.g. "Confidence") to include in
1622	// API requests with the JSON null value. By default, fields with empty
1623	// values are omitted from API requests. However, any field with an
1624	// empty value appearing in NullFields will be sent to the server as
1625	// null. It is an error if a field in this list has a non-empty value.
1626	// This may be used to include null fields in Patch requests.
1627	NullFields []string `json:"-"`
1628}
1629
1630func (s *DetectedLanguage) MarshalJSON() ([]byte, error) {
1631	type NoMethod DetectedLanguage
1632	raw := NoMethod(*s)
1633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1634}
1635
1636func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
1637	type NoMethod DetectedLanguage
1638	var s1 struct {
1639		Confidence gensupport.JSONFloat64 `json:"confidence"`
1640		*NoMethod
1641	}
1642	s1.NoMethod = (*NoMethod)(s)
1643	if err := json.Unmarshal(data, &s1); err != nil {
1644		return err
1645	}
1646	s.Confidence = float64(s1.Confidence)
1647	return nil
1648}
1649
1650// DominantColorsAnnotation: Set of dominant colors and their
1651// corresponding scores.
1652type DominantColorsAnnotation struct {
1653	// Colors: RGB color values with their score and pixel fraction.
1654	Colors []*ColorInfo `json:"colors,omitempty"`
1655
1656	// ForceSendFields is a list of field names (e.g. "Colors") to
1657	// unconditionally include in API requests. By default, fields with
1658	// empty values are omitted from API requests. However, any non-pointer,
1659	// non-interface field appearing in ForceSendFields will be sent to the
1660	// server regardless of whether the field is empty or not. This may be
1661	// used to include empty fields in Patch requests.
1662	ForceSendFields []string `json:"-"`
1663
1664	// NullFields is a list of field names (e.g. "Colors") to include in API
1665	// requests with the JSON null value. By default, fields with empty
1666	// values are omitted from API requests. However, any field with an
1667	// empty value appearing in NullFields will be sent to the server as
1668	// null. It is an error if a field in this list has a non-empty value.
1669	// This may be used to include null fields in Patch requests.
1670	NullFields []string `json:"-"`
1671}
1672
1673func (s *DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1674	type NoMethod DominantColorsAnnotation
1675	raw := NoMethod(*s)
1676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1677}
1678
1679// Empty: A generic empty message that you can re-use to avoid defining
1680// duplicated
1681// empty messages in your APIs. A typical example is to use it as the
1682// request
1683// or the response type of an API method. For instance:
1684//
1685//     service Foo {
1686//       rpc Bar(google.protobuf.Empty) returns
1687// (google.protobuf.Empty);
1688//     }
1689//
1690// The JSON representation for `Empty` is empty JSON object `{}`.
1691type Empty struct {
1692	// ServerResponse contains the HTTP response code and headers from the
1693	// server.
1694	googleapi.ServerResponse `json:"-"`
1695}
1696
1697// EntityAnnotation: Set of detected entity features.
1698type EntityAnnotation struct {
1699	// BoundingPoly: Image region to which this entity belongs. Not
1700	// produced
1701	// for `LABEL_DETECTION` features.
1702	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1703
1704	// Confidence: **Deprecated. Use `score` instead.**
1705	// The accuracy of the entity detection in an image.
1706	// For example, for an image in which the "Eiffel Tower" entity is
1707	// detected,
1708	// this field represents the confidence that there is a tower in the
1709	// query
1710	// image. Range [0, 1].
1711	Confidence float64 `json:"confidence,omitempty"`
1712
1713	// Description: Entity textual description, expressed in its `locale`
1714	// language.
1715	Description string `json:"description,omitempty"`
1716
1717	// Locale: The language code for the locale in which the entity
1718	// textual
1719	// `description` is expressed.
1720	Locale string `json:"locale,omitempty"`
1721
1722	// Locations: The location information for the detected entity.
1723	// Multiple
1724	// `LocationInfo` elements can be present because one location
1725	// may
1726	// indicate the location of the scene in the image, and another
1727	// location
1728	// may indicate the location of the place where the image was
1729	// taken.
1730	// Location information is usually present for landmarks.
1731	Locations []*LocationInfo `json:"locations,omitempty"`
1732
1733	// Mid: Opaque entity ID. Some IDs may be available in
1734	// [Google Knowledge Graph
1735	// Search
1736	// API](https://developers.google.com/knowledge-graph/).
1737	Mid string `json:"mid,omitempty"`
1738
1739	// Properties: Some entities may have optional user-supplied `Property`
1740	// (name/value)
1741	// fields, such a score or string that qualifies the entity.
1742	Properties []*Property `json:"properties,omitempty"`
1743
1744	// Score: Overall score of the result. Range [0, 1].
1745	Score float64 `json:"score,omitempty"`
1746
1747	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1748	// to the
1749	// image. For example, the relevancy of "tower" is likely higher to an
1750	// image
1751	// containing the detected "Eiffel Tower" than to an image containing
1752	// a
1753	// detected distant towering building, even though the confidence
1754	// that
1755	// there is a tower in each image may be the same. Range [0, 1].
1756	Topicality float64 `json:"topicality,omitempty"`
1757
1758	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1759	// unconditionally include in API requests. By default, fields with
1760	// empty values are omitted from API requests. However, any non-pointer,
1761	// non-interface field appearing in ForceSendFields will be sent to the
1762	// server regardless of whether the field is empty or not. This may be
1763	// used to include empty fields in Patch requests.
1764	ForceSendFields []string `json:"-"`
1765
1766	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1767	// in API requests with the JSON null value. By default, fields with
1768	// empty values are omitted from API requests. However, any field with
1769	// an empty value appearing in NullFields will be sent to the server as
1770	// null. It is an error if a field in this list has a non-empty value.
1771	// This may be used to include null fields in Patch requests.
1772	NullFields []string `json:"-"`
1773}
1774
1775func (s *EntityAnnotation) MarshalJSON() ([]byte, error) {
1776	type NoMethod EntityAnnotation
1777	raw := NoMethod(*s)
1778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1779}
1780
1781func (s *EntityAnnotation) UnmarshalJSON(data []byte) error {
1782	type NoMethod EntityAnnotation
1783	var s1 struct {
1784		Confidence gensupport.JSONFloat64 `json:"confidence"`
1785		Score      gensupport.JSONFloat64 `json:"score"`
1786		Topicality gensupport.JSONFloat64 `json:"topicality"`
1787		*NoMethod
1788	}
1789	s1.NoMethod = (*NoMethod)(s)
1790	if err := json.Unmarshal(data, &s1); err != nil {
1791		return err
1792	}
1793	s.Confidence = float64(s1.Confidence)
1794	s.Score = float64(s1.Score)
1795	s.Topicality = float64(s1.Topicality)
1796	return nil
1797}
1798
1799// FaceAnnotation: A face annotation object contains the results of face
1800// detection.
1801type FaceAnnotation struct {
1802	// AngerLikelihood: Anger likelihood.
1803	//
1804	// Possible values:
1805	//   "UNKNOWN" - Unknown likelihood.
1806	//   "VERY_UNLIKELY" - It is very unlikely.
1807	//   "UNLIKELY" - It is unlikely.
1808	//   "POSSIBLE" - It is possible.
1809	//   "LIKELY" - It is likely.
1810	//   "VERY_LIKELY" - It is very likely.
1811	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1812
1813	// BlurredLikelihood: Blurred likelihood.
1814	//
1815	// Possible values:
1816	//   "UNKNOWN" - Unknown likelihood.
1817	//   "VERY_UNLIKELY" - It is very unlikely.
1818	//   "UNLIKELY" - It is unlikely.
1819	//   "POSSIBLE" - It is possible.
1820	//   "LIKELY" - It is likely.
1821	//   "VERY_LIKELY" - It is very likely.
1822	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1823
1824	// BoundingPoly: The bounding polygon around the face. The coordinates
1825	// of the bounding box
1826	// are in the original image's scale.
1827	// The bounding box is computed to "frame" the face in accordance with
1828	// human
1829	// expectations. It is based on the landmarker results.
1830	// Note that one or more x and/or y coordinates may not be generated in
1831	// the
1832	// `BoundingPoly` (the polygon will be unbounded) if only a partial
1833	// face
1834	// appears in the image to be annotated.
1835	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1836
1837	// DetectionConfidence: Detection confidence. Range [0, 1].
1838	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1839
1840	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1841	// than the
1842	// `boundingPoly`, and encloses only the skin part of the face.
1843	// Typically, it
1844	// is used to eliminate the face from any image analysis that detects
1845	// the
1846	// "amount of skin" visible in an image. It is not based on
1847	// the
1848	// landmarker results, only on the initial face detection, hence
1849	// the <code>fd</code> (face detection) prefix.
1850	FdBoundingPoly *BoundingPoly `json:"fdBoundingPoly,omitempty"`
1851
1852	// HeadwearLikelihood: Headwear likelihood.
1853	//
1854	// Possible values:
1855	//   "UNKNOWN" - Unknown likelihood.
1856	//   "VERY_UNLIKELY" - It is very unlikely.
1857	//   "UNLIKELY" - It is unlikely.
1858	//   "POSSIBLE" - It is possible.
1859	//   "LIKELY" - It is likely.
1860	//   "VERY_LIKELY" - It is very likely.
1861	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1862
1863	// JoyLikelihood: Joy likelihood.
1864	//
1865	// Possible values:
1866	//   "UNKNOWN" - Unknown likelihood.
1867	//   "VERY_UNLIKELY" - It is very unlikely.
1868	//   "UNLIKELY" - It is unlikely.
1869	//   "POSSIBLE" - It is possible.
1870	//   "LIKELY" - It is likely.
1871	//   "VERY_LIKELY" - It is very likely.
1872	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1873
1874	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1875	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1876
1877	// Landmarks: Detected face landmarks.
1878	Landmarks []*Landmark `json:"landmarks,omitempty"`
1879
1880	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1881	// that the face is
1882	// pointing relative to the vertical plane perpendicular to the image.
1883	// Range
1884	// [-180,180].
1885	PanAngle float64 `json:"panAngle,omitempty"`
1886
1887	// RollAngle: Roll angle, which indicates the amount of
1888	// clockwise/anti-clockwise rotation
1889	// of the face relative to the image vertical about the axis
1890	// perpendicular to
1891	// the face. Range [-180,180].
1892	RollAngle float64 `json:"rollAngle,omitempty"`
1893
1894	// SorrowLikelihood: Sorrow likelihood.
1895	//
1896	// Possible values:
1897	//   "UNKNOWN" - Unknown likelihood.
1898	//   "VERY_UNLIKELY" - It is very unlikely.
1899	//   "UNLIKELY" - It is unlikely.
1900	//   "POSSIBLE" - It is possible.
1901	//   "LIKELY" - It is likely.
1902	//   "VERY_LIKELY" - It is very likely.
1903	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1904
1905	// SurpriseLikelihood: Surprise likelihood.
1906	//
1907	// Possible values:
1908	//   "UNKNOWN" - Unknown likelihood.
1909	//   "VERY_UNLIKELY" - It is very unlikely.
1910	//   "UNLIKELY" - It is unlikely.
1911	//   "POSSIBLE" - It is possible.
1912	//   "LIKELY" - It is likely.
1913	//   "VERY_LIKELY" - It is very likely.
1914	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1915
1916	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1917	// that the face is
1918	// pointing relative to the image's horizontal plane. Range [-180,180].
1919	TiltAngle float64 `json:"tiltAngle,omitempty"`
1920
1921	// UnderExposedLikelihood: Under-exposed likelihood.
1922	//
1923	// Possible values:
1924	//   "UNKNOWN" - Unknown likelihood.
1925	//   "VERY_UNLIKELY" - It is very unlikely.
1926	//   "UNLIKELY" - It is unlikely.
1927	//   "POSSIBLE" - It is possible.
1928	//   "LIKELY" - It is likely.
1929	//   "VERY_LIKELY" - It is very likely.
1930	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
1931
1932	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
1933	// unconditionally include in API requests. By default, fields with
1934	// empty values are omitted from API requests. However, any non-pointer,
1935	// non-interface field appearing in ForceSendFields will be sent to the
1936	// server regardless of whether the field is empty or not. This may be
1937	// used to include empty fields in Patch requests.
1938	ForceSendFields []string `json:"-"`
1939
1940	// NullFields is a list of field names (e.g. "AngerLikelihood") to
1941	// include in API requests with the JSON null value. By default, fields
1942	// with empty values are omitted from API requests. However, any field
1943	// with an empty value appearing in NullFields will be sent to the
1944	// server as null. It is an error if a field in this list has a
1945	// non-empty value. This may be used to include null fields in Patch
1946	// requests.
1947	NullFields []string `json:"-"`
1948}
1949
1950func (s *FaceAnnotation) MarshalJSON() ([]byte, error) {
1951	type NoMethod FaceAnnotation
1952	raw := NoMethod(*s)
1953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1954}
1955
1956func (s *FaceAnnotation) UnmarshalJSON(data []byte) error {
1957	type NoMethod FaceAnnotation
1958	var s1 struct {
1959		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
1960		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
1961		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
1962		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
1963		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
1964		*NoMethod
1965	}
1966	s1.NoMethod = (*NoMethod)(s)
1967	if err := json.Unmarshal(data, &s1); err != nil {
1968		return err
1969	}
1970	s.DetectionConfidence = float64(s1.DetectionConfidence)
1971	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
1972	s.PanAngle = float64(s1.PanAngle)
1973	s.RollAngle = float64(s1.RollAngle)
1974	s.TiltAngle = float64(s1.TiltAngle)
1975	return nil
1976}
1977
1978// Feature: The type of Google Cloud Vision API detection to perform,
1979// and the maximum
1980// number of results to return for that type. Multiple `Feature` objects
1981// can
1982// be specified in the `features` list.
1983type Feature struct {
1984	// MaxResults: Maximum number of results of this type. Does not apply
1985	// to
1986	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
1987	MaxResults int64 `json:"maxResults,omitempty"`
1988
1989	// Model: Model to use for the feature.
1990	// Supported values: "builtin/stable" (the default if unset)
1991	// and
1992	// "builtin/latest".
1993	Model string `json:"model,omitempty"`
1994
1995	// Type: The feature type.
1996	//
1997	// Possible values:
1998	//   "TYPE_UNSPECIFIED" - Unspecified feature type.
1999	//   "FACE_DETECTION" - Run face detection.
2000	//   "LANDMARK_DETECTION" - Run landmark detection.
2001	//   "LOGO_DETECTION" - Run logo detection.
2002	//   "LABEL_DETECTION" - Run label detection.
2003	//   "TEXT_DETECTION" - Run text detection / optical character
2004	// recognition (OCR). Text detection
2005	// is optimized for areas of text within a larger image; if the image
2006	// is
2007	// a document, use `DOCUMENT_TEXT_DETECTION` instead.
2008	//   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
2009	// precedence when both
2010	// `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present.
2011	//   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
2012	// unsafe
2013	// or undesirable content.
2014	//   "IMAGE_PROPERTIES" - Compute a set of image properties, such as
2015	// the
2016	// image's dominant colors.
2017	//   "CROP_HINTS" - Run crop hints.
2018	//   "WEB_DETECTION" - Run web detection.
2019	//   "PRODUCT_SEARCH" - Run Product Search.
2020	//   "OBJECT_LOCALIZATION" - Run localizer for object detection.
2021	Type string `json:"type,omitempty"`
2022
2023	// ForceSendFields is a list of field names (e.g. "MaxResults") to
2024	// unconditionally include in API requests. By default, fields with
2025	// empty values are omitted from API requests. However, any non-pointer,
2026	// non-interface field appearing in ForceSendFields will be sent to the
2027	// server regardless of whether the field is empty or not. This may be
2028	// used to include empty fields in Patch requests.
2029	ForceSendFields []string `json:"-"`
2030
2031	// NullFields is a list of field names (e.g. "MaxResults") to include in
2032	// API requests with the JSON null value. By default, fields with empty
2033	// values are omitted from API requests. However, any field with an
2034	// empty value appearing in NullFields will be sent to the server as
2035	// null. It is an error if a field in this list has a non-empty value.
2036	// This may be used to include null fields in Patch requests.
2037	NullFields []string `json:"-"`
2038}
2039
2040func (s *Feature) MarshalJSON() ([]byte, error) {
2041	type NoMethod Feature
2042	raw := NoMethod(*s)
2043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2044}
2045
2046// GcsDestination: The Google Cloud Storage location where the output
2047// will be written to.
2048type GcsDestination struct {
2049	// Uri: Google Cloud Storage URI prefix where the results will be
2050	// stored. Results
2051	// will be in JSON format and preceded by its corresponding input URI
2052	// prefix.
2053	// This field can either represent a gcs file prefix or gcs directory.
2054	// In
2055	// either case, the uri should be unique because in order to get all of
2056	// the
2057	// output files, you will need to do a wildcard gcs search on the uri
2058	// prefix
2059	// you provide.
2060	//
2061	// Examples:
2062	//
2063	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
2064	// files
2065	// will be created in gs://bucket-name/here/ and the names of the
2066	// output files will begin with "filenameprefix".
2067	//
2068	// *    Directory Prefix: gs://bucket-name/some/location/   The output
2069	// files
2070	// will be created in gs://bucket-name/some/location/ and the names of
2071	// the
2072	// output files could be anything because there was no filename
2073	// prefix
2074	// specified.
2075	//
2076	// If multiple outputs, each response is still AnnotateFileResponse,
2077	// each of
2078	// which contains some subset of the full list of
2079	// AnnotateImageResponse.
2080	// Multiple outputs can happen if, for example, the output JSON is too
2081	// large
2082	// and overflows into multiple sharded files.
2083	Uri string `json:"uri,omitempty"`
2084
2085	// ForceSendFields is a list of field names (e.g. "Uri") to
2086	// unconditionally include in API requests. By default, fields with
2087	// empty values are omitted from API requests. However, any non-pointer,
2088	// non-interface field appearing in ForceSendFields will be sent to the
2089	// server regardless of whether the field is empty or not. This may be
2090	// used to include empty fields in Patch requests.
2091	ForceSendFields []string `json:"-"`
2092
2093	// NullFields is a list of field names (e.g. "Uri") to include in API
2094	// requests with the JSON null value. By default, fields with empty
2095	// values are omitted from API requests. However, any field with an
2096	// empty value appearing in NullFields will be sent to the server as
2097	// null. It is an error if a field in this list has a non-empty value.
2098	// This may be used to include null fields in Patch requests.
2099	NullFields []string `json:"-"`
2100}
2101
2102func (s *GcsDestination) MarshalJSON() ([]byte, error) {
2103	type NoMethod GcsDestination
2104	raw := NoMethod(*s)
2105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2106}
2107
2108// GcsSource: The Google Cloud Storage location where the input will be
2109// read from.
2110type GcsSource struct {
2111	// Uri: Google Cloud Storage URI for the input file. This must only be
2112	// a
2113	// Google Cloud Storage object. Wildcards are not currently supported.
2114	Uri string `json:"uri,omitempty"`
2115
2116	// ForceSendFields is a list of field names (e.g. "Uri") to
2117	// unconditionally include in API requests. By default, fields with
2118	// empty values are omitted from API requests. However, any non-pointer,
2119	// non-interface field appearing in ForceSendFields will be sent to the
2120	// server regardless of whether the field is empty or not. This may be
2121	// used to include empty fields in Patch requests.
2122	ForceSendFields []string `json:"-"`
2123
2124	// NullFields is a list of field names (e.g. "Uri") to include in API
2125	// requests with the JSON null value. By default, fields with empty
2126	// values are omitted from API requests. However, any field with an
2127	// empty value appearing in NullFields will be sent to the server as
2128	// null. It is an error if a field in this list has a non-empty value.
2129	// This may be used to include null fields in Patch requests.
2130	NullFields []string `json:"-"`
2131}
2132
2133func (s *GcsSource) MarshalJSON() ([]byte, error) {
2134	type NoMethod GcsSource
2135	raw := NoMethod(*s)
2136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2137}
2138
2139// GoogleCloudVisionV1p1beta1AnnotateFileResponse: Response to a single
2140// file annotation request. A file may contain one or more
2141// images, which individually have their own responses.
2142type GoogleCloudVisionV1p1beta1AnnotateFileResponse struct {
2143	// Error: If set, represents the error message for the failed request.
2144	// The
2145	// `responses` field will not be set in this case.
2146	Error *Status `json:"error,omitempty"`
2147
2148	// InputConfig: Information about the file for which this response is
2149	// generated.
2150	InputConfig *GoogleCloudVisionV1p1beta1InputConfig `json:"inputConfig,omitempty"`
2151
2152	// Responses: Individual responses to images found within the file. This
2153	// field will be
2154	// empty if the `error` field is set.
2155	Responses []*GoogleCloudVisionV1p1beta1AnnotateImageResponse `json:"responses,omitempty"`
2156
2157	// TotalPages: This field gives the total number of pages in the file.
2158	TotalPages int64 `json:"totalPages,omitempty"`
2159
2160	// ForceSendFields is a list of field names (e.g. "Error") to
2161	// unconditionally include in API requests. By default, fields with
2162	// empty values are omitted from API requests. However, any non-pointer,
2163	// non-interface field appearing in ForceSendFields will be sent to the
2164	// server regardless of whether the field is empty or not. This may be
2165	// used to include empty fields in Patch requests.
2166	ForceSendFields []string `json:"-"`
2167
2168	// NullFields is a list of field names (e.g. "Error") to include in API
2169	// requests with the JSON null value. By default, fields with empty
2170	// values are omitted from API requests. However, any field with an
2171	// empty value appearing in NullFields will be sent to the server as
2172	// null. It is an error if a field in this list has a non-empty value.
2173	// This may be used to include null fields in Patch requests.
2174	NullFields []string `json:"-"`
2175}
2176
2177func (s *GoogleCloudVisionV1p1beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
2178	type NoMethod GoogleCloudVisionV1p1beta1AnnotateFileResponse
2179	raw := NoMethod(*s)
2180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2181}
2182
2183// GoogleCloudVisionV1p1beta1AnnotateImageResponse: Response to an image
2184// annotation request.
2185type GoogleCloudVisionV1p1beta1AnnotateImageResponse struct {
2186	// Context: If present, contextual information is needed to understand
2187	// where this image
2188	// comes from.
2189	Context *GoogleCloudVisionV1p1beta1ImageAnnotationContext `json:"context,omitempty"`
2190
2191	// CropHintsAnnotation: If present, crop hints have completed
2192	// successfully.
2193	CropHintsAnnotation *GoogleCloudVisionV1p1beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
2194
2195	// Error: If set, represents the error message for the operation.
2196	// Note that filled-in image annotations are guaranteed to be
2197	// correct, even when `error` is set.
2198	Error *Status `json:"error,omitempty"`
2199
2200	// FaceAnnotations: If present, face detection has completed
2201	// successfully.
2202	FaceAnnotations []*GoogleCloudVisionV1p1beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
2203
2204	// FullTextAnnotation: If present, text (OCR) detection or document
2205	// (OCR) text detection has
2206	// completed successfully.
2207	// This annotation provides the structural hierarchy for the OCR
2208	// detected
2209	// text.
2210	FullTextAnnotation *GoogleCloudVisionV1p1beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
2211
2212	// ImagePropertiesAnnotation: If present, image properties were
2213	// extracted successfully.
2214	ImagePropertiesAnnotation *GoogleCloudVisionV1p1beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
2215
2216	// LabelAnnotations: If present, label detection has completed
2217	// successfully.
2218	LabelAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
2219
2220	// LandmarkAnnotations: If present, landmark detection has completed
2221	// successfully.
2222	LandmarkAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
2223
2224	// LocalizedObjectAnnotations: If present, localized object detection
2225	// has completed successfully.
2226	// This will be sorted descending by confidence score.
2227	LocalizedObjectAnnotations []*GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
2228
2229	// LogoAnnotations: If present, logo detection has completed
2230	// successfully.
2231	LogoAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
2232
2233	// ProductSearchResults: If present, product search has completed
2234	// successfully.
2235	ProductSearchResults *GoogleCloudVisionV1p1beta1ProductSearchResults `json:"productSearchResults,omitempty"`
2236
2237	// SafeSearchAnnotation: If present, safe-search annotation has
2238	// completed successfully.
2239	SafeSearchAnnotation *GoogleCloudVisionV1p1beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
2240
2241	// TextAnnotations: If present, text (OCR) detection has completed
2242	// successfully.
2243	TextAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"textAnnotations,omitempty"`
2244
2245	// WebDetection: If present, web detection has completed successfully.
2246	WebDetection *GoogleCloudVisionV1p1beta1WebDetection `json:"webDetection,omitempty"`
2247
2248	// ForceSendFields is a list of field names (e.g. "Context") to
2249	// unconditionally include in API requests. By default, fields with
2250	// empty values are omitted from API requests. However, any non-pointer,
2251	// non-interface field appearing in ForceSendFields will be sent to the
2252	// server regardless of whether the field is empty or not. This may be
2253	// used to include empty fields in Patch requests.
2254	ForceSendFields []string `json:"-"`
2255
2256	// NullFields is a list of field names (e.g. "Context") to include in
2257	// API requests with the JSON null value. By default, fields with empty
2258	// values are omitted from API requests. However, any field with an
2259	// empty value appearing in NullFields will be sent to the server as
2260	// null. It is an error if a field in this list has a non-empty value.
2261	// This may be used to include null fields in Patch requests.
2262	NullFields []string `json:"-"`
2263}
2264
2265func (s *GoogleCloudVisionV1p1beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
2266	type NoMethod GoogleCloudVisionV1p1beta1AnnotateImageResponse
2267	raw := NoMethod(*s)
2268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2269}
2270
2271// GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse: The response for
2272// a single offline file annotation request.
2273type GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse struct {
2274	// OutputConfig: The output location and metadata from
2275	// AsyncAnnotateFileRequest.
2276	OutputConfig *GoogleCloudVisionV1p1beta1OutputConfig `json:"outputConfig,omitempty"`
2277
2278	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
2279	// unconditionally include in API requests. By default, fields with
2280	// empty values are omitted from API requests. However, any non-pointer,
2281	// non-interface field appearing in ForceSendFields will be sent to the
2282	// server regardless of whether the field is empty or not. This may be
2283	// used to include empty fields in Patch requests.
2284	ForceSendFields []string `json:"-"`
2285
2286	// NullFields is a list of field names (e.g. "OutputConfig") to include
2287	// in API requests with the JSON null value. By default, fields with
2288	// empty values are omitted from API requests. However, any field with
2289	// an empty value appearing in NullFields will be sent to the server as
2290	// null. It is an error if a field in this list has a non-empty value.
2291	// This may be used to include null fields in Patch requests.
2292	NullFields []string `json:"-"`
2293}
2294
2295func (s *GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
2296	type NoMethod GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse
2297	raw := NoMethod(*s)
2298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2299}
2300
2301// GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse: Response
2302// to an async batch file annotation request.
2303type GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse struct {
2304	// Responses: The list of file annotation responses, one for each
2305	// request in
2306	// AsyncBatchAnnotateFilesRequest.
2307	Responses []*GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
2308
2309	// ForceSendFields is a list of field names (e.g. "Responses") to
2310	// unconditionally include in API requests. By default, fields with
2311	// empty values are omitted from API requests. However, any non-pointer,
2312	// non-interface field appearing in ForceSendFields will be sent to the
2313	// server regardless of whether the field is empty or not. This may be
2314	// used to include empty fields in Patch requests.
2315	ForceSendFields []string `json:"-"`
2316
2317	// NullFields is a list of field names (e.g. "Responses") to include in
2318	// API requests with the JSON null value. By default, fields with empty
2319	// values are omitted from API requests. However, any field with an
2320	// empty value appearing in NullFields will be sent to the server as
2321	// null. It is an error if a field in this list has a non-empty value.
2322	// This may be used to include null fields in Patch requests.
2323	NullFields []string `json:"-"`
2324}
2325
2326func (s *GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
2327	type NoMethod GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse
2328	raw := NoMethod(*s)
2329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2330}
2331
2332// GoogleCloudVisionV1p1beta1Block: Logical element on the page.
2333type GoogleCloudVisionV1p1beta1Block struct {
2334	// BlockType: Detected block type (text, image etc) for this block.
2335	//
2336	// Possible values:
2337	//   "UNKNOWN" - Unknown block type.
2338	//   "TEXT" - Regular text block.
2339	//   "TABLE" - Table block.
2340	//   "PICTURE" - Image block.
2341	//   "RULER" - Horizontal/vertical line box.
2342	//   "BARCODE" - Barcode block.
2343	BlockType string `json:"blockType,omitempty"`
2344
2345	// BoundingBox: The bounding box for the block.
2346	// The vertices are in the order of top-left, top-right,
2347	// bottom-right,
2348	// bottom-left. When a rotation of the bounding box is detected the
2349	// rotation
2350	// is represented as around the top-left corner as defined when the text
2351	// is
2352	// read in the 'natural' orientation.
2353	// For example:
2354	//
2355	// * when the text is horizontal it might look like:
2356	//
2357	//         0----1
2358	//         |    |
2359	//         3----2
2360	//
2361	// * when it's rotated 180 degrees around the top-left corner it
2362	// becomes:
2363	//
2364	//         2----3
2365	//         |    |
2366	//         1----0
2367	//
2368	//   and the vertex order will still be (0, 1, 2, 3).
2369	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
2370
2371	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
2372	Confidence float64 `json:"confidence,omitempty"`
2373
2374	// Paragraphs: List of paragraphs in this block (if this blocks is of
2375	// type text).
2376	Paragraphs []*GoogleCloudVisionV1p1beta1Paragraph `json:"paragraphs,omitempty"`
2377
2378	// Property: Additional information detected for the block.
2379	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2380
2381	// ForceSendFields is a list of field names (e.g. "BlockType") to
2382	// unconditionally include in API requests. By default, fields with
2383	// empty values are omitted from API requests. However, any non-pointer,
2384	// non-interface field appearing in ForceSendFields will be sent to the
2385	// server regardless of whether the field is empty or not. This may be
2386	// used to include empty fields in Patch requests.
2387	ForceSendFields []string `json:"-"`
2388
2389	// NullFields is a list of field names (e.g. "BlockType") to include in
2390	// API requests with the JSON null value. By default, fields with empty
2391	// values are omitted from API requests. However, any field with an
2392	// empty value appearing in NullFields will be sent to the server as
2393	// null. It is an error if a field in this list has a non-empty value.
2394	// This may be used to include null fields in Patch requests.
2395	NullFields []string `json:"-"`
2396}
2397
2398func (s *GoogleCloudVisionV1p1beta1Block) MarshalJSON() ([]byte, error) {
2399	type NoMethod GoogleCloudVisionV1p1beta1Block
2400	raw := NoMethod(*s)
2401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2402}
2403
2404func (s *GoogleCloudVisionV1p1beta1Block) UnmarshalJSON(data []byte) error {
2405	type NoMethod GoogleCloudVisionV1p1beta1Block
2406	var s1 struct {
2407		Confidence gensupport.JSONFloat64 `json:"confidence"`
2408		*NoMethod
2409	}
2410	s1.NoMethod = (*NoMethod)(s)
2411	if err := json.Unmarshal(data, &s1); err != nil {
2412		return err
2413	}
2414	s.Confidence = float64(s1.Confidence)
2415	return nil
2416}
2417
2418// GoogleCloudVisionV1p1beta1BoundingPoly: A bounding polygon for the
2419// detected image annotation.
2420type GoogleCloudVisionV1p1beta1BoundingPoly struct {
2421	// NormalizedVertices: The bounding polygon normalized vertices.
2422	NormalizedVertices []*GoogleCloudVisionV1p1beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
2423
2424	// Vertices: The bounding polygon vertices.
2425	Vertices []*GoogleCloudVisionV1p1beta1Vertex `json:"vertices,omitempty"`
2426
2427	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
2428	// to unconditionally include in API requests. By default, fields with
2429	// empty values are omitted from API requests. However, any non-pointer,
2430	// non-interface field appearing in ForceSendFields will be sent to the
2431	// server regardless of whether the field is empty or not. This may be
2432	// used to include empty fields in Patch requests.
2433	ForceSendFields []string `json:"-"`
2434
2435	// NullFields is a list of field names (e.g. "NormalizedVertices") to
2436	// include in API requests with the JSON null value. By default, fields
2437	// with empty values are omitted from API requests. However, any field
2438	// with an empty value appearing in NullFields will be sent to the
2439	// server as null. It is an error if a field in this list has a
2440	// non-empty value. This may be used to include null fields in Patch
2441	// requests.
2442	NullFields []string `json:"-"`
2443}
2444
2445func (s *GoogleCloudVisionV1p1beta1BoundingPoly) MarshalJSON() ([]byte, error) {
2446	type NoMethod GoogleCloudVisionV1p1beta1BoundingPoly
2447	raw := NoMethod(*s)
2448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2449}
2450
2451// GoogleCloudVisionV1p1beta1ColorInfo: Color information consists of
2452// RGB channels, score, and the fraction of
2453// the image that the color occupies in the image.
2454type GoogleCloudVisionV1p1beta1ColorInfo struct {
2455	// Color: RGB components of the color.
2456	Color *Color `json:"color,omitempty"`
2457
2458	// PixelFraction: The fraction of pixels the color occupies in the
2459	// image.
2460	// Value in range [0, 1].
2461	PixelFraction float64 `json:"pixelFraction,omitempty"`
2462
2463	// Score: Image-specific score for this color. Value in range [0, 1].
2464	Score float64 `json:"score,omitempty"`
2465
2466	// ForceSendFields is a list of field names (e.g. "Color") to
2467	// unconditionally include in API requests. By default, fields with
2468	// empty values are omitted from API requests. However, any non-pointer,
2469	// non-interface field appearing in ForceSendFields will be sent to the
2470	// server regardless of whether the field is empty or not. This may be
2471	// used to include empty fields in Patch requests.
2472	ForceSendFields []string `json:"-"`
2473
2474	// NullFields is a list of field names (e.g. "Color") to include in API
2475	// requests with the JSON null value. By default, fields with empty
2476	// values are omitted from API requests. However, any field with an
2477	// empty value appearing in NullFields will be sent to the server as
2478	// null. It is an error if a field in this list has a non-empty value.
2479	// This may be used to include null fields in Patch requests.
2480	NullFields []string `json:"-"`
2481}
2482
2483func (s *GoogleCloudVisionV1p1beta1ColorInfo) MarshalJSON() ([]byte, error) {
2484	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2485	raw := NoMethod(*s)
2486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2487}
2488
2489func (s *GoogleCloudVisionV1p1beta1ColorInfo) UnmarshalJSON(data []byte) error {
2490	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2491	var s1 struct {
2492		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
2493		Score         gensupport.JSONFloat64 `json:"score"`
2494		*NoMethod
2495	}
2496	s1.NoMethod = (*NoMethod)(s)
2497	if err := json.Unmarshal(data, &s1); err != nil {
2498		return err
2499	}
2500	s.PixelFraction = float64(s1.PixelFraction)
2501	s.Score = float64(s1.Score)
2502	return nil
2503}
2504
2505// GoogleCloudVisionV1p1beta1CropHint: Single crop hint that is used to
2506// generate a new crop when serving an image.
2507type GoogleCloudVisionV1p1beta1CropHint struct {
2508	// BoundingPoly: The bounding polygon for the crop region. The
2509	// coordinates of the bounding
2510	// box are in the original image's scale.
2511	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2512
2513	// Confidence: Confidence of this being a salient region.  Range [0, 1].
2514	Confidence float64 `json:"confidence,omitempty"`
2515
2516	// ImportanceFraction: Fraction of importance of this salient region
2517	// with respect to the original
2518	// image.
2519	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
2520
2521	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2522	// unconditionally include in API requests. By default, fields with
2523	// empty values are omitted from API requests. However, any non-pointer,
2524	// non-interface field appearing in ForceSendFields will be sent to the
2525	// server regardless of whether the field is empty or not. This may be
2526	// used to include empty fields in Patch requests.
2527	ForceSendFields []string `json:"-"`
2528
2529	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2530	// in API requests with the JSON null value. By default, fields with
2531	// empty values are omitted from API requests. However, any field with
2532	// an empty value appearing in NullFields will be sent to the server as
2533	// null. It is an error if a field in this list has a non-empty value.
2534	// This may be used to include null fields in Patch requests.
2535	NullFields []string `json:"-"`
2536}
2537
2538func (s *GoogleCloudVisionV1p1beta1CropHint) MarshalJSON() ([]byte, error) {
2539	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2540	raw := NoMethod(*s)
2541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2542}
2543
2544func (s *GoogleCloudVisionV1p1beta1CropHint) UnmarshalJSON(data []byte) error {
2545	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2546	var s1 struct {
2547		Confidence         gensupport.JSONFloat64 `json:"confidence"`
2548		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
2549		*NoMethod
2550	}
2551	s1.NoMethod = (*NoMethod)(s)
2552	if err := json.Unmarshal(data, &s1); err != nil {
2553		return err
2554	}
2555	s.Confidence = float64(s1.Confidence)
2556	s.ImportanceFraction = float64(s1.ImportanceFraction)
2557	return nil
2558}
2559
2560// GoogleCloudVisionV1p1beta1CropHintsAnnotation: Set of crop hints that
2561// are used to generate new crops when serving images.
2562type GoogleCloudVisionV1p1beta1CropHintsAnnotation struct {
2563	// CropHints: Crop hint results.
2564	CropHints []*GoogleCloudVisionV1p1beta1CropHint `json:"cropHints,omitempty"`
2565
2566	// ForceSendFields is a list of field names (e.g. "CropHints") to
2567	// unconditionally include in API requests. By default, fields with
2568	// empty values are omitted from API requests. However, any non-pointer,
2569	// non-interface field appearing in ForceSendFields will be sent to the
2570	// server regardless of whether the field is empty or not. This may be
2571	// used to include empty fields in Patch requests.
2572	ForceSendFields []string `json:"-"`
2573
2574	// NullFields is a list of field names (e.g. "CropHints") to include in
2575	// API requests with the JSON null value. By default, fields with empty
2576	// values are omitted from API requests. However, any field with an
2577	// empty value appearing in NullFields will be sent to the server as
2578	// null. It is an error if a field in this list has a non-empty value.
2579	// This may be used to include null fields in Patch requests.
2580	NullFields []string `json:"-"`
2581}
2582
2583func (s *GoogleCloudVisionV1p1beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
2584	type NoMethod GoogleCloudVisionV1p1beta1CropHintsAnnotation
2585	raw := NoMethod(*s)
2586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2587}
2588
2589// GoogleCloudVisionV1p1beta1DominantColorsAnnotation: Set of dominant
2590// colors and their corresponding scores.
2591type GoogleCloudVisionV1p1beta1DominantColorsAnnotation struct {
2592	// Colors: RGB color values with their score and pixel fraction.
2593	Colors []*GoogleCloudVisionV1p1beta1ColorInfo `json:"colors,omitempty"`
2594
2595	// ForceSendFields is a list of field names (e.g. "Colors") to
2596	// unconditionally include in API requests. By default, fields with
2597	// empty values are omitted from API requests. However, any non-pointer,
2598	// non-interface field appearing in ForceSendFields will be sent to the
2599	// server regardless of whether the field is empty or not. This may be
2600	// used to include empty fields in Patch requests.
2601	ForceSendFields []string `json:"-"`
2602
2603	// NullFields is a list of field names (e.g. "Colors") to include in API
2604	// requests with the JSON null value. By default, fields with empty
2605	// values are omitted from API requests. However, any field with an
2606	// empty value appearing in NullFields will be sent to the server as
2607	// null. It is an error if a field in this list has a non-empty value.
2608	// This may be used to include null fields in Patch requests.
2609	NullFields []string `json:"-"`
2610}
2611
2612func (s *GoogleCloudVisionV1p1beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
2613	type NoMethod GoogleCloudVisionV1p1beta1DominantColorsAnnotation
2614	raw := NoMethod(*s)
2615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2616}
2617
2618// GoogleCloudVisionV1p1beta1EntityAnnotation: Set of detected entity
2619// features.
2620type GoogleCloudVisionV1p1beta1EntityAnnotation struct {
2621	// BoundingPoly: Image region to which this entity belongs. Not
2622	// produced
2623	// for `LABEL_DETECTION` features.
2624	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2625
2626	// Confidence: **Deprecated. Use `score` instead.**
2627	// The accuracy of the entity detection in an image.
2628	// For example, for an image in which the "Eiffel Tower" entity is
2629	// detected,
2630	// this field represents the confidence that there is a tower in the
2631	// query
2632	// image. Range [0, 1].
2633	Confidence float64 `json:"confidence,omitempty"`
2634
2635	// Description: Entity textual description, expressed in its `locale`
2636	// language.
2637	Description string `json:"description,omitempty"`
2638
2639	// Locale: The language code for the locale in which the entity
2640	// textual
2641	// `description` is expressed.
2642	Locale string `json:"locale,omitempty"`
2643
2644	// Locations: The location information for the detected entity.
2645	// Multiple
2646	// `LocationInfo` elements can be present because one location
2647	// may
2648	// indicate the location of the scene in the image, and another
2649	// location
2650	// may indicate the location of the place where the image was
2651	// taken.
2652	// Location information is usually present for landmarks.
2653	Locations []*GoogleCloudVisionV1p1beta1LocationInfo `json:"locations,omitempty"`
2654
2655	// Mid: Opaque entity ID. Some IDs may be available in
2656	// [Google Knowledge Graph
2657	// Search
2658	// API](https://developers.google.com/knowledge-graph/).
2659	Mid string `json:"mid,omitempty"`
2660
2661	// Properties: Some entities may have optional user-supplied `Property`
2662	// (name/value)
2663	// fields, such a score or string that qualifies the entity.
2664	Properties []*GoogleCloudVisionV1p1beta1Property `json:"properties,omitempty"`
2665
2666	// Score: Overall score of the result. Range [0, 1].
2667	Score float64 `json:"score,omitempty"`
2668
2669	// Topicality: The relevancy of the ICA (Image Content Annotation) label
2670	// to the
2671	// image. For example, the relevancy of "tower" is likely higher to an
2672	// image
2673	// containing the detected "Eiffel Tower" than to an image containing
2674	// a
2675	// detected distant towering building, even though the confidence
2676	// that
2677	// there is a tower in each image may be the same. Range [0, 1].
2678	Topicality float64 `json:"topicality,omitempty"`
2679
2680	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2681	// unconditionally include in API requests. By default, fields with
2682	// empty values are omitted from API requests. However, any non-pointer,
2683	// non-interface field appearing in ForceSendFields will be sent to the
2684	// server regardless of whether the field is empty or not. This may be
2685	// used to include empty fields in Patch requests.
2686	ForceSendFields []string `json:"-"`
2687
2688	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2689	// in API requests with the JSON null value. By default, fields with
2690	// empty values are omitted from API requests. However, any field with
2691	// an empty value appearing in NullFields will be sent to the server as
2692	// null. It is an error if a field in this list has a non-empty value.
2693	// This may be used to include null fields in Patch requests.
2694	NullFields []string `json:"-"`
2695}
2696
2697func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
2698	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2699	raw := NoMethod(*s)
2700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2701}
2702
2703func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
2704	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2705	var s1 struct {
2706		Confidence gensupport.JSONFloat64 `json:"confidence"`
2707		Score      gensupport.JSONFloat64 `json:"score"`
2708		Topicality gensupport.JSONFloat64 `json:"topicality"`
2709		*NoMethod
2710	}
2711	s1.NoMethod = (*NoMethod)(s)
2712	if err := json.Unmarshal(data, &s1); err != nil {
2713		return err
2714	}
2715	s.Confidence = float64(s1.Confidence)
2716	s.Score = float64(s1.Score)
2717	s.Topicality = float64(s1.Topicality)
2718	return nil
2719}
2720
2721// GoogleCloudVisionV1p1beta1FaceAnnotation: A face annotation object
2722// contains the results of face detection.
2723type GoogleCloudVisionV1p1beta1FaceAnnotation struct {
2724	// AngerLikelihood: Anger likelihood.
2725	//
2726	// Possible values:
2727	//   "UNKNOWN" - Unknown likelihood.
2728	//   "VERY_UNLIKELY" - It is very unlikely.
2729	//   "UNLIKELY" - It is unlikely.
2730	//   "POSSIBLE" - It is possible.
2731	//   "LIKELY" - It is likely.
2732	//   "VERY_LIKELY" - It is very likely.
2733	AngerLikelihood string `json:"angerLikelihood,omitempty"`
2734
2735	// BlurredLikelihood: Blurred likelihood.
2736	//
2737	// Possible values:
2738	//   "UNKNOWN" - Unknown likelihood.
2739	//   "VERY_UNLIKELY" - It is very unlikely.
2740	//   "UNLIKELY" - It is unlikely.
2741	//   "POSSIBLE" - It is possible.
2742	//   "LIKELY" - It is likely.
2743	//   "VERY_LIKELY" - It is very likely.
2744	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
2745
2746	// BoundingPoly: The bounding polygon around the face. The coordinates
2747	// of the bounding box
2748	// are in the original image's scale.
2749	// The bounding box is computed to "frame" the face in accordance with
2750	// human
2751	// expectations. It is based on the landmarker results.
2752	// Note that one or more x and/or y coordinates may not be generated in
2753	// the
2754	// `BoundingPoly` (the polygon will be unbounded) if only a partial
2755	// face
2756	// appears in the image to be annotated.
2757	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2758
2759	// DetectionConfidence: Detection confidence. Range [0, 1].
2760	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
2761
2762	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
2763	// than the
2764	// `boundingPoly`, and encloses only the skin part of the face.
2765	// Typically, it
2766	// is used to eliminate the face from any image analysis that detects
2767	// the
2768	// "amount of skin" visible in an image. It is not based on
2769	// the
2770	// landmarker results, only on the initial face detection, hence
2771	// the <code>fd</code> (face detection) prefix.
2772	FdBoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
2773
2774	// HeadwearLikelihood: Headwear likelihood.
2775	//
2776	// Possible values:
2777	//   "UNKNOWN" - Unknown likelihood.
2778	//   "VERY_UNLIKELY" - It is very unlikely.
2779	//   "UNLIKELY" - It is unlikely.
2780	//   "POSSIBLE" - It is possible.
2781	//   "LIKELY" - It is likely.
2782	//   "VERY_LIKELY" - It is very likely.
2783	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
2784
2785	// JoyLikelihood: Joy likelihood.
2786	//
2787	// Possible values:
2788	//   "UNKNOWN" - Unknown likelihood.
2789	//   "VERY_UNLIKELY" - It is very unlikely.
2790	//   "UNLIKELY" - It is unlikely.
2791	//   "POSSIBLE" - It is possible.
2792	//   "LIKELY" - It is likely.
2793	//   "VERY_LIKELY" - It is very likely.
2794	JoyLikelihood string `json:"joyLikelihood,omitempty"`
2795
2796	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
2797	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
2798
2799	// Landmarks: Detected face landmarks.
2800	Landmarks []*GoogleCloudVisionV1p1beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
2801
2802	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
2803	// that the face is
2804	// pointing relative to the vertical plane perpendicular to the image.
2805	// Range
2806	// [-180,180].
2807	PanAngle float64 `json:"panAngle,omitempty"`
2808
2809	// RollAngle: Roll angle, which indicates the amount of
2810	// clockwise/anti-clockwise rotation
2811	// of the face relative to the image vertical about the axis
2812	// perpendicular to
2813	// the face. Range [-180,180].
2814	RollAngle float64 `json:"rollAngle,omitempty"`
2815
2816	// SorrowLikelihood: Sorrow likelihood.
2817	//
2818	// Possible values:
2819	//   "UNKNOWN" - Unknown likelihood.
2820	//   "VERY_UNLIKELY" - It is very unlikely.
2821	//   "UNLIKELY" - It is unlikely.
2822	//   "POSSIBLE" - It is possible.
2823	//   "LIKELY" - It is likely.
2824	//   "VERY_LIKELY" - It is very likely.
2825	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
2826
2827	// SurpriseLikelihood: Surprise likelihood.
2828	//
2829	// Possible values:
2830	//   "UNKNOWN" - Unknown likelihood.
2831	//   "VERY_UNLIKELY" - It is very unlikely.
2832	//   "UNLIKELY" - It is unlikely.
2833	//   "POSSIBLE" - It is possible.
2834	//   "LIKELY" - It is likely.
2835	//   "VERY_LIKELY" - It is very likely.
2836	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
2837
2838	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
2839	// that the face is
2840	// pointing relative to the image's horizontal plane. Range [-180,180].
2841	TiltAngle float64 `json:"tiltAngle,omitempty"`
2842
2843	// UnderExposedLikelihood: Under-exposed likelihood.
2844	//
2845	// Possible values:
2846	//   "UNKNOWN" - Unknown likelihood.
2847	//   "VERY_UNLIKELY" - It is very unlikely.
2848	//   "UNLIKELY" - It is unlikely.
2849	//   "POSSIBLE" - It is possible.
2850	//   "LIKELY" - It is likely.
2851	//   "VERY_LIKELY" - It is very likely.
2852	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
2853
2854	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
2855	// unconditionally include in API requests. By default, fields with
2856	// empty values are omitted from API requests. However, any non-pointer,
2857	// non-interface field appearing in ForceSendFields will be sent to the
2858	// server regardless of whether the field is empty or not. This may be
2859	// used to include empty fields in Patch requests.
2860	ForceSendFields []string `json:"-"`
2861
2862	// NullFields is a list of field names (e.g. "AngerLikelihood") to
2863	// include in API requests with the JSON null value. By default, fields
2864	// with empty values are omitted from API requests. However, any field
2865	// with an empty value appearing in NullFields will be sent to the
2866	// server as null. It is an error if a field in this list has a
2867	// non-empty value. This may be used to include null fields in Patch
2868	// requests.
2869	NullFields []string `json:"-"`
2870}
2871
2872func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
2873	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2874	raw := NoMethod(*s)
2875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2876}
2877
2878func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
2879	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2880	var s1 struct {
2881		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
2882		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
2883		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
2884		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
2885		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
2886		*NoMethod
2887	}
2888	s1.NoMethod = (*NoMethod)(s)
2889	if err := json.Unmarshal(data, &s1); err != nil {
2890		return err
2891	}
2892	s.DetectionConfidence = float64(s1.DetectionConfidence)
2893	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
2894	s.PanAngle = float64(s1.PanAngle)
2895	s.RollAngle = float64(s1.RollAngle)
2896	s.TiltAngle = float64(s1.TiltAngle)
2897	return nil
2898}
2899
2900// GoogleCloudVisionV1p1beta1FaceAnnotationLandmark: A face-specific
2901// landmark (for example, a face feature).
2902type GoogleCloudVisionV1p1beta1FaceAnnotationLandmark struct {
2903	// Position: Face landmark position.
2904	Position *GoogleCloudVisionV1p1beta1Position `json:"position,omitempty"`
2905
2906	// Type: Face landmark type.
2907	//
2908	// Possible values:
2909	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
2910	// filled.
2911	//   "LEFT_EYE" - Left eye.
2912	//   "RIGHT_EYE" - Right eye.
2913	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
2914	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
2915	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
2916	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
2917	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
2918	//   "NOSE_TIP" - Nose tip.
2919	//   "UPPER_LIP" - Upper lip.
2920	//   "LOWER_LIP" - Lower lip.
2921	//   "MOUTH_LEFT" - Mouth left.
2922	//   "MOUTH_RIGHT" - Mouth right.
2923	//   "MOUTH_CENTER" - Mouth center.
2924	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
2925	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
2926	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
2927	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
2928	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
2929	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
2930	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
2931	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
2932	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
2933	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
2934	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
2935	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
2936	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
2937	//   "LEFT_EAR_TRAGION" - Left ear tragion.
2938	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
2939	//   "LEFT_EYE_PUPIL" - Left eye pupil.
2940	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
2941	//   "FOREHEAD_GLABELLA" - Forehead glabella.
2942	//   "CHIN_GNATHION" - Chin gnathion.
2943	//   "CHIN_LEFT_GONION" - Chin left gonion.
2944	//   "CHIN_RIGHT_GONION" - Chin right gonion.
2945	Type string `json:"type,omitempty"`
2946
2947	// ForceSendFields is a list of field names (e.g. "Position") to
2948	// unconditionally include in API requests. By default, fields with
2949	// empty values are omitted from API requests. However, any non-pointer,
2950	// non-interface field appearing in ForceSendFields will be sent to the
2951	// server regardless of whether the field is empty or not. This may be
2952	// used to include empty fields in Patch requests.
2953	ForceSendFields []string `json:"-"`
2954
2955	// NullFields is a list of field names (e.g. "Position") to include in
2956	// API requests with the JSON null value. By default, fields with empty
2957	// values are omitted from API requests. However, any field with an
2958	// empty value appearing in NullFields will be sent to the server as
2959	// null. It is an error if a field in this list has a non-empty value.
2960	// This may be used to include null fields in Patch requests.
2961	NullFields []string `json:"-"`
2962}
2963
2964func (s *GoogleCloudVisionV1p1beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
2965	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotationLandmark
2966	raw := NoMethod(*s)
2967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2968}
2969
2970// GoogleCloudVisionV1p1beta1GcsDestination: The Google Cloud Storage
2971// location where the output will be written to.
2972type GoogleCloudVisionV1p1beta1GcsDestination struct {
2973	// Uri: Google Cloud Storage URI prefix where the results will be
2974	// stored. Results
2975	// will be in JSON format and preceded by its corresponding input URI
2976	// prefix.
2977	// This field can either represent a gcs file prefix or gcs directory.
2978	// In
2979	// either case, the uri should be unique because in order to get all of
2980	// the
2981	// output files, you will need to do a wildcard gcs search on the uri
2982	// prefix
2983	// you provide.
2984	//
2985	// Examples:
2986	//
2987	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
2988	// files
2989	// will be created in gs://bucket-name/here/ and the names of the
2990	// output files will begin with "filenameprefix".
2991	//
2992	// *    Directory Prefix: gs://bucket-name/some/location/   The output
2993	// files
2994	// will be created in gs://bucket-name/some/location/ and the names of
2995	// the
2996	// output files could be anything because there was no filename
2997	// prefix
2998	// specified.
2999	//
3000	// If multiple outputs, each response is still AnnotateFileResponse,
3001	// each of
3002	// which contains some subset of the full list of
3003	// AnnotateImageResponse.
3004	// Multiple outputs can happen if, for example, the output JSON is too
3005	// large
3006	// and overflows into multiple sharded files.
3007	Uri string `json:"uri,omitempty"`
3008
3009	// ForceSendFields is a list of field names (e.g. "Uri") to
3010	// unconditionally include in API requests. By default, fields with
3011	// empty values are omitted from API requests. However, any non-pointer,
3012	// non-interface field appearing in ForceSendFields will be sent to the
3013	// server regardless of whether the field is empty or not. This may be
3014	// used to include empty fields in Patch requests.
3015	ForceSendFields []string `json:"-"`
3016
3017	// NullFields is a list of field names (e.g. "Uri") to include in API
3018	// requests with the JSON null value. By default, fields with empty
3019	// values are omitted from API requests. However, any field with an
3020	// empty value appearing in NullFields will be sent to the server as
3021	// null. It is an error if a field in this list has a non-empty value.
3022	// This may be used to include null fields in Patch requests.
3023	NullFields []string `json:"-"`
3024}
3025
3026func (s *GoogleCloudVisionV1p1beta1GcsDestination) MarshalJSON() ([]byte, error) {
3027	type NoMethod GoogleCloudVisionV1p1beta1GcsDestination
3028	raw := NoMethod(*s)
3029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3030}
3031
3032// GoogleCloudVisionV1p1beta1GcsSource: The Google Cloud Storage
3033// location where the input will be read from.
3034type GoogleCloudVisionV1p1beta1GcsSource struct {
3035	// Uri: Google Cloud Storage URI for the input file. This must only be
3036	// a
3037	// Google Cloud Storage object. Wildcards are not currently supported.
3038	Uri string `json:"uri,omitempty"`
3039
3040	// ForceSendFields is a list of field names (e.g. "Uri") to
3041	// unconditionally include in API requests. By default, fields with
3042	// empty values are omitted from API requests. However, any non-pointer,
3043	// non-interface field appearing in ForceSendFields will be sent to the
3044	// server regardless of whether the field is empty or not. This may be
3045	// used to include empty fields in Patch requests.
3046	ForceSendFields []string `json:"-"`
3047
3048	// NullFields is a list of field names (e.g. "Uri") to include in API
3049	// requests with the JSON null value. By default, fields with empty
3050	// values are omitted from API requests. However, any field with an
3051	// empty value appearing in NullFields will be sent to the server as
3052	// null. It is an error if a field in this list has a non-empty value.
3053	// This may be used to include null fields in Patch requests.
3054	NullFields []string `json:"-"`
3055}
3056
3057func (s *GoogleCloudVisionV1p1beta1GcsSource) MarshalJSON() ([]byte, error) {
3058	type NoMethod GoogleCloudVisionV1p1beta1GcsSource
3059	raw := NoMethod(*s)
3060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3061}
3062
3063// GoogleCloudVisionV1p1beta1ImageAnnotationContext: If an image was
3064// produced from a file (e.g. a PDF), this message gives
3065// information about the source of that image.
3066type GoogleCloudVisionV1p1beta1ImageAnnotationContext struct {
3067	// PageNumber: If the file was a PDF or TIFF, this field gives the page
3068	// number within
3069	// the file used to produce the image.
3070	PageNumber int64 `json:"pageNumber,omitempty"`
3071
3072	// Uri: The URI of the file used to produce the image.
3073	Uri string `json:"uri,omitempty"`
3074
3075	// ForceSendFields is a list of field names (e.g. "PageNumber") to
3076	// unconditionally include in API requests. By default, fields with
3077	// empty values are omitted from API requests. However, any non-pointer,
3078	// non-interface field appearing in ForceSendFields will be sent to the
3079	// server regardless of whether the field is empty or not. This may be
3080	// used to include empty fields in Patch requests.
3081	ForceSendFields []string `json:"-"`
3082
3083	// NullFields is a list of field names (e.g. "PageNumber") to include in
3084	// API requests with the JSON null value. By default, fields with empty
3085	// values are omitted from API requests. However, any field with an
3086	// empty value appearing in NullFields will be sent to the server as
3087	// null. It is an error if a field in this list has a non-empty value.
3088	// This may be used to include null fields in Patch requests.
3089	NullFields []string `json:"-"`
3090}
3091
3092func (s *GoogleCloudVisionV1p1beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
3093	type NoMethod GoogleCloudVisionV1p1beta1ImageAnnotationContext
3094	raw := NoMethod(*s)
3095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3096}
3097
3098// GoogleCloudVisionV1p1beta1ImageProperties: Stores image properties,
3099// such as dominant colors.
3100type GoogleCloudVisionV1p1beta1ImageProperties struct {
3101	// DominantColors: If present, dominant colors completed successfully.
3102	DominantColors *GoogleCloudVisionV1p1beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
3103
3104	// ForceSendFields is a list of field names (e.g. "DominantColors") to
3105	// unconditionally include in API requests. By default, fields with
3106	// empty values are omitted from API requests. However, any non-pointer,
3107	// non-interface field appearing in ForceSendFields will be sent to the
3108	// server regardless of whether the field is empty or not. This may be
3109	// used to include empty fields in Patch requests.
3110	ForceSendFields []string `json:"-"`
3111
3112	// NullFields is a list of field names (e.g. "DominantColors") to
3113	// include in API requests with the JSON null value. By default, fields
3114	// with empty values are omitted from API requests. However, any field
3115	// with an empty value appearing in NullFields will be sent to the
3116	// server as null. It is an error if a field in this list has a
3117	// non-empty value. This may be used to include null fields in Patch
3118	// requests.
3119	NullFields []string `json:"-"`
3120}
3121
3122func (s *GoogleCloudVisionV1p1beta1ImageProperties) MarshalJSON() ([]byte, error) {
3123	type NoMethod GoogleCloudVisionV1p1beta1ImageProperties
3124	raw := NoMethod(*s)
3125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3126}
3127
3128// GoogleCloudVisionV1p1beta1InputConfig: The desired input location and
3129// metadata.
3130type GoogleCloudVisionV1p1beta1InputConfig struct {
3131	// Content: File content, represented as a stream of bytes.
3132	// Note: As with all `bytes` fields, protobuffers use a pure
3133	// binary
3134	// representation, whereas JSON representations use base64.
3135	//
3136	// Currently, this field only works for BatchAnnotateFiles requests. It
3137	// does
3138	// not work for AsyncBatchAnnotateFiles requests.
3139	Content string `json:"content,omitempty"`
3140
3141	// GcsSource: The Google Cloud Storage location to read the input from.
3142	GcsSource *GoogleCloudVisionV1p1beta1GcsSource `json:"gcsSource,omitempty"`
3143
3144	// MimeType: The type of the file. Currently only "application/pdf",
3145	// "image/tiff" and
3146	// "image/gif" are supported. Wildcards are not supported.
3147	MimeType string `json:"mimeType,omitempty"`
3148
3149	// ForceSendFields is a list of field names (e.g. "Content") to
3150	// unconditionally include in API requests. By default, fields with
3151	// empty values are omitted from API requests. However, any non-pointer,
3152	// non-interface field appearing in ForceSendFields will be sent to the
3153	// server regardless of whether the field is empty or not. This may be
3154	// used to include empty fields in Patch requests.
3155	ForceSendFields []string `json:"-"`
3156
3157	// NullFields is a list of field names (e.g. "Content") to include in
3158	// API requests with the JSON null value. By default, fields with empty
3159	// values are omitted from API requests. However, any field with an
3160	// empty value appearing in NullFields will be sent to the server as
3161	// null. It is an error if a field in this list has a non-empty value.
3162	// This may be used to include null fields in Patch requests.
3163	NullFields []string `json:"-"`
3164}
3165
3166func (s *GoogleCloudVisionV1p1beta1InputConfig) MarshalJSON() ([]byte, error) {
3167	type NoMethod GoogleCloudVisionV1p1beta1InputConfig
3168	raw := NoMethod(*s)
3169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3170}
3171
3172// GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation: Set of detected
3173// objects with bounding boxes.
3174type GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation struct {
3175	// BoundingPoly: Image region to which this object belongs. This must be
3176	// populated.
3177	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3178
3179	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3180	// For more
3181	// information,
3182	// see
3183	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3184	LanguageCode string `json:"languageCode,omitempty"`
3185
3186	// Mid: Object ID that should align with EntityAnnotation mid.
3187	Mid string `json:"mid,omitempty"`
3188
3189	// Name: Object name, expressed in its `language_code` language.
3190	Name string `json:"name,omitempty"`
3191
3192	// Score: Score of the result. Range [0, 1].
3193	Score float64 `json:"score,omitempty"`
3194
3195	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3196	// unconditionally include in API requests. By default, fields with
3197	// empty values are omitted from API requests. However, any non-pointer,
3198	// non-interface field appearing in ForceSendFields will be sent to the
3199	// server regardless of whether the field is empty or not. This may be
3200	// used to include empty fields in Patch requests.
3201	ForceSendFields []string `json:"-"`
3202
3203	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3204	// in API requests with the JSON null value. By default, fields with
3205	// empty values are omitted from API requests. However, any field with
3206	// an empty value appearing in NullFields will be sent to the server as
3207	// null. It is an error if a field in this list has a non-empty value.
3208	// This may be used to include null fields in Patch requests.
3209	NullFields []string `json:"-"`
3210}
3211
3212func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
3213	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
3214	raw := NoMethod(*s)
3215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3216}
3217
3218func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
3219	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
3220	var s1 struct {
3221		Score gensupport.JSONFloat64 `json:"score"`
3222		*NoMethod
3223	}
3224	s1.NoMethod = (*NoMethod)(s)
3225	if err := json.Unmarshal(data, &s1); err != nil {
3226		return err
3227	}
3228	s.Score = float64(s1.Score)
3229	return nil
3230}
3231
3232// GoogleCloudVisionV1p1beta1LocationInfo: Detected entity location
3233// information.
3234type GoogleCloudVisionV1p1beta1LocationInfo struct {
3235	// LatLng: lat/long location coordinates.
3236	LatLng *LatLng `json:"latLng,omitempty"`
3237
3238	// ForceSendFields is a list of field names (e.g. "LatLng") to
3239	// unconditionally include in API requests. By default, fields with
3240	// empty values are omitted from API requests. However, any non-pointer,
3241	// non-interface field appearing in ForceSendFields will be sent to the
3242	// server regardless of whether the field is empty or not. This may be
3243	// used to include empty fields in Patch requests.
3244	ForceSendFields []string `json:"-"`
3245
3246	// NullFields is a list of field names (e.g. "LatLng") to include in API
3247	// requests with the JSON null value. By default, fields with empty
3248	// values are omitted from API requests. However, any field with an
3249	// empty value appearing in NullFields will be sent to the server as
3250	// null. It is an error if a field in this list has a non-empty value.
3251	// This may be used to include null fields in Patch requests.
3252	NullFields []string `json:"-"`
3253}
3254
3255func (s *GoogleCloudVisionV1p1beta1LocationInfo) MarshalJSON() ([]byte, error) {
3256	type NoMethod GoogleCloudVisionV1p1beta1LocationInfo
3257	raw := NoMethod(*s)
3258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3259}
3260
3261// GoogleCloudVisionV1p1beta1NormalizedVertex: A vertex represents a 2D
3262// point in the image.
3263// NOTE: the normalized vertex coordinates are relative to the original
3264// image
3265// and range from 0 to 1.
3266type GoogleCloudVisionV1p1beta1NormalizedVertex struct {
3267	// X: X coordinate.
3268	X float64 `json:"x,omitempty"`
3269
3270	// Y: Y coordinate.
3271	Y float64 `json:"y,omitempty"`
3272
3273	// ForceSendFields is a list of field names (e.g. "X") to
3274	// unconditionally include in API requests. By default, fields with
3275	// empty values are omitted from API requests. However, any non-pointer,
3276	// non-interface field appearing in ForceSendFields will be sent to the
3277	// server regardless of whether the field is empty or not. This may be
3278	// used to include empty fields in Patch requests.
3279	ForceSendFields []string `json:"-"`
3280
3281	// NullFields is a list of field names (e.g. "X") to include in API
3282	// requests with the JSON null value. By default, fields with empty
3283	// values are omitted from API requests. However, any field with an
3284	// empty value appearing in NullFields will be sent to the server as
3285	// null. It is an error if a field in this list has a non-empty value.
3286	// This may be used to include null fields in Patch requests.
3287	NullFields []string `json:"-"`
3288}
3289
3290func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
3291	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
3292	raw := NoMethod(*s)
3293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3294}
3295
3296func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
3297	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
3298	var s1 struct {
3299		X gensupport.JSONFloat64 `json:"x"`
3300		Y gensupport.JSONFloat64 `json:"y"`
3301		*NoMethod
3302	}
3303	s1.NoMethod = (*NoMethod)(s)
3304	if err := json.Unmarshal(data, &s1); err != nil {
3305		return err
3306	}
3307	s.X = float64(s1.X)
3308	s.Y = float64(s1.Y)
3309	return nil
3310}
3311
3312// GoogleCloudVisionV1p1beta1OperationMetadata: Contains metadata for
3313// the BatchAnnotateImages operation.
3314type GoogleCloudVisionV1p1beta1OperationMetadata struct {
3315	// CreateTime: The time when the batch request was received.
3316	CreateTime string `json:"createTime,omitempty"`
3317
3318	// State: Current state of the batch operation.
3319	//
3320	// Possible values:
3321	//   "STATE_UNSPECIFIED" - Invalid.
3322	//   "CREATED" - Request is received.
3323	//   "RUNNING" - Request is actively being processed.
3324	//   "DONE" - The batch processing is done.
3325	//   "CANCELLED" - The batch processing was cancelled.
3326	State string `json:"state,omitempty"`
3327
3328	// UpdateTime: The time when the operation result was last updated.
3329	UpdateTime string `json:"updateTime,omitempty"`
3330
3331	// ForceSendFields is a list of field names (e.g. "CreateTime") to
3332	// unconditionally include in API requests. By default, fields with
3333	// empty values are omitted from API requests. However, any non-pointer,
3334	// non-interface field appearing in ForceSendFields will be sent to the
3335	// server regardless of whether the field is empty or not. This may be
3336	// used to include empty fields in Patch requests.
3337	ForceSendFields []string `json:"-"`
3338
3339	// NullFields is a list of field names (e.g. "CreateTime") to include in
3340	// API requests with the JSON null value. By default, fields with empty
3341	// values are omitted from API requests. However, any field with an
3342	// empty value appearing in NullFields will be sent to the server as
3343	// null. It is an error if a field in this list has a non-empty value.
3344	// This may be used to include null fields in Patch requests.
3345	NullFields []string `json:"-"`
3346}
3347
3348func (s *GoogleCloudVisionV1p1beta1OperationMetadata) MarshalJSON() ([]byte, error) {
3349	type NoMethod GoogleCloudVisionV1p1beta1OperationMetadata
3350	raw := NoMethod(*s)
3351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3352}
3353
3354// GoogleCloudVisionV1p1beta1OutputConfig: The desired output location
3355// and metadata.
3356type GoogleCloudVisionV1p1beta1OutputConfig struct {
3357	// BatchSize: The max number of response protos to put into each output
3358	// JSON file on
3359	// Google Cloud Storage.
3360	// The valid range is [1, 100]. If not specified, the default value is
3361	// 20.
3362	//
3363	// For example, for one pdf file with 100 pages, 100 response protos
3364	// will
3365	// be generated. If `batch_size` = 20, then 5 json files each
3366	// containing 20 response protos will be written under the
3367	// prefix
3368	// `gcs_destination`.`uri`.
3369	//
3370	// Currently, batch_size only applies to GcsDestination, with potential
3371	// future
3372	// support for other output configurations.
3373	BatchSize int64 `json:"batchSize,omitempty"`
3374
3375	// GcsDestination: The Google Cloud Storage location to write the
3376	// output(s) to.
3377	GcsDestination *GoogleCloudVisionV1p1beta1GcsDestination `json:"gcsDestination,omitempty"`
3378
3379	// ForceSendFields is a list of field names (e.g. "BatchSize") to
3380	// unconditionally include in API requests. By default, fields with
3381	// empty values are omitted from API requests. However, any non-pointer,
3382	// non-interface field appearing in ForceSendFields will be sent to the
3383	// server regardless of whether the field is empty or not. This may be
3384	// used to include empty fields in Patch requests.
3385	ForceSendFields []string `json:"-"`
3386
3387	// NullFields is a list of field names (e.g. "BatchSize") to include in
3388	// API requests with the JSON null value. By default, fields with empty
3389	// values are omitted from API requests. However, any field with an
3390	// empty value appearing in NullFields will be sent to the server as
3391	// null. It is an error if a field in this list has a non-empty value.
3392	// This may be used to include null fields in Patch requests.
3393	NullFields []string `json:"-"`
3394}
3395
3396func (s *GoogleCloudVisionV1p1beta1OutputConfig) MarshalJSON() ([]byte, error) {
3397	type NoMethod GoogleCloudVisionV1p1beta1OutputConfig
3398	raw := NoMethod(*s)
3399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3400}
3401
3402// GoogleCloudVisionV1p1beta1Page: Detected page from OCR.
3403type GoogleCloudVisionV1p1beta1Page struct {
3404	// Blocks: List of blocks of text, images etc on this page.
3405	Blocks []*GoogleCloudVisionV1p1beta1Block `json:"blocks,omitempty"`
3406
3407	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
3408	Confidence float64 `json:"confidence,omitempty"`
3409
3410	// Height: Page height. For PDFs the unit is points. For images
3411	// (including
3412	// TIFFs) the unit is pixels.
3413	Height int64 `json:"height,omitempty"`
3414
3415	// Property: Additional information detected on the page.
3416	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3417
3418	// Width: Page width. For PDFs the unit is points. For images
3419	// (including
3420	// TIFFs) the unit is pixels.
3421	Width int64 `json:"width,omitempty"`
3422
3423	// ForceSendFields is a list of field names (e.g. "Blocks") to
3424	// unconditionally include in API requests. By default, fields with
3425	// empty values are omitted from API requests. However, any non-pointer,
3426	// non-interface field appearing in ForceSendFields will be sent to the
3427	// server regardless of whether the field is empty or not. This may be
3428	// used to include empty fields in Patch requests.
3429	ForceSendFields []string `json:"-"`
3430
3431	// NullFields is a list of field names (e.g. "Blocks") to include in API
3432	// requests with the JSON null value. By default, fields with empty
3433	// values are omitted from API requests. However, any field with an
3434	// empty value appearing in NullFields will be sent to the server as
3435	// null. It is an error if a field in this list has a non-empty value.
3436	// This may be used to include null fields in Patch requests.
3437	NullFields []string `json:"-"`
3438}
3439
3440func (s *GoogleCloudVisionV1p1beta1Page) MarshalJSON() ([]byte, error) {
3441	type NoMethod GoogleCloudVisionV1p1beta1Page
3442	raw := NoMethod(*s)
3443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3444}
3445
3446func (s *GoogleCloudVisionV1p1beta1Page) UnmarshalJSON(data []byte) error {
3447	type NoMethod GoogleCloudVisionV1p1beta1Page
3448	var s1 struct {
3449		Confidence gensupport.JSONFloat64 `json:"confidence"`
3450		*NoMethod
3451	}
3452	s1.NoMethod = (*NoMethod)(s)
3453	if err := json.Unmarshal(data, &s1); err != nil {
3454		return err
3455	}
3456	s.Confidence = float64(s1.Confidence)
3457	return nil
3458}
3459
3460// GoogleCloudVisionV1p1beta1Paragraph: Structural unit of text
3461// representing a number of words in certain order.
3462type GoogleCloudVisionV1p1beta1Paragraph struct {
3463	// BoundingBox: The bounding box for the paragraph.
3464	// The vertices are in the order of top-left, top-right,
3465	// bottom-right,
3466	// bottom-left. When a rotation of the bounding box is detected the
3467	// rotation
3468	// is represented as around the top-left corner as defined when the text
3469	// is
3470	// read in the 'natural' orientation.
3471	// For example:
3472	//   * when the text is horizontal it might look like:
3473	//      0----1
3474	//      |    |
3475	//      3----2
3476	//   * when it's rotated 180 degrees around the top-left corner it
3477	// becomes:
3478	//      2----3
3479	//      |    |
3480	//      1----0
3481	//   and the vertex order will still be (0, 1, 2, 3).
3482	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3483
3484	// Confidence: Confidence of the OCR results for the paragraph. Range
3485	// [0, 1].
3486	Confidence float64 `json:"confidence,omitempty"`
3487
3488	// Property: Additional information detected for the paragraph.
3489	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3490
3491	// Words: List of all words in this paragraph.
3492	Words []*GoogleCloudVisionV1p1beta1Word `json:"words,omitempty"`
3493
3494	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3495	// unconditionally include in API requests. By default, fields with
3496	// empty values are omitted from API requests. However, any non-pointer,
3497	// non-interface field appearing in ForceSendFields will be sent to the
3498	// server regardless of whether the field is empty or not. This may be
3499	// used to include empty fields in Patch requests.
3500	ForceSendFields []string `json:"-"`
3501
3502	// NullFields is a list of field names (e.g. "BoundingBox") to include
3503	// in API requests with the JSON null value. By default, fields with
3504	// empty values are omitted from API requests. However, any field with
3505	// an empty value appearing in NullFields will be sent to the server as
3506	// null. It is an error if a field in this list has a non-empty value.
3507	// This may be used to include null fields in Patch requests.
3508	NullFields []string `json:"-"`
3509}
3510
3511func (s *GoogleCloudVisionV1p1beta1Paragraph) MarshalJSON() ([]byte, error) {
3512	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3513	raw := NoMethod(*s)
3514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3515}
3516
3517func (s *GoogleCloudVisionV1p1beta1Paragraph) UnmarshalJSON(data []byte) error {
3518	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3519	var s1 struct {
3520		Confidence gensupport.JSONFloat64 `json:"confidence"`
3521		*NoMethod
3522	}
3523	s1.NoMethod = (*NoMethod)(s)
3524	if err := json.Unmarshal(data, &s1); err != nil {
3525		return err
3526	}
3527	s.Confidence = float64(s1.Confidence)
3528	return nil
3529}
3530
3531// GoogleCloudVisionV1p1beta1Position: A 3D position in the image, used
3532// primarily for Face detection landmarks.
3533// A valid Position must have both x and y coordinates.
3534// The position coordinates are in the same scale as the original image.
3535type GoogleCloudVisionV1p1beta1Position struct {
3536	// X: X coordinate.
3537	X float64 `json:"x,omitempty"`
3538
3539	// Y: Y coordinate.
3540	Y float64 `json:"y,omitempty"`
3541
3542	// Z: Z coordinate (or depth).
3543	Z float64 `json:"z,omitempty"`
3544
3545	// ForceSendFields is a list of field names (e.g. "X") to
3546	// unconditionally include in API requests. By default, fields with
3547	// empty values are omitted from API requests. However, any non-pointer,
3548	// non-interface field appearing in ForceSendFields will be sent to the
3549	// server regardless of whether the field is empty or not. This may be
3550	// used to include empty fields in Patch requests.
3551	ForceSendFields []string `json:"-"`
3552
3553	// NullFields is a list of field names (e.g. "X") to include in API
3554	// requests with the JSON null value. By default, fields with empty
3555	// values are omitted from API requests. However, any field with an
3556	// empty value appearing in NullFields will be sent to the server as
3557	// null. It is an error if a field in this list has a non-empty value.
3558	// This may be used to include null fields in Patch requests.
3559	NullFields []string `json:"-"`
3560}
3561
3562func (s *GoogleCloudVisionV1p1beta1Position) MarshalJSON() ([]byte, error) {
3563	type NoMethod GoogleCloudVisionV1p1beta1Position
3564	raw := NoMethod(*s)
3565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3566}
3567
3568func (s *GoogleCloudVisionV1p1beta1Position) UnmarshalJSON(data []byte) error {
3569	type NoMethod GoogleCloudVisionV1p1beta1Position
3570	var s1 struct {
3571		X gensupport.JSONFloat64 `json:"x"`
3572		Y gensupport.JSONFloat64 `json:"y"`
3573		Z gensupport.JSONFloat64 `json:"z"`
3574		*NoMethod
3575	}
3576	s1.NoMethod = (*NoMethod)(s)
3577	if err := json.Unmarshal(data, &s1); err != nil {
3578		return err
3579	}
3580	s.X = float64(s1.X)
3581	s.Y = float64(s1.Y)
3582	s.Z = float64(s1.Z)
3583	return nil
3584}
3585
3586// GoogleCloudVisionV1p1beta1Product: A Product contains
3587// ReferenceImages.
3588type GoogleCloudVisionV1p1beta1Product struct {
3589	// Description: User-provided metadata to be stored with this product.
3590	// Must be at most 4096
3591	// characters long.
3592	Description string `json:"description,omitempty"`
3593
3594	// DisplayName: The user-provided name for this Product. Must not be
3595	// empty. Must be at most
3596	// 4096 characters long.
3597	DisplayName string `json:"displayName,omitempty"`
3598
3599	// Name: The resource name of the product.
3600	//
3601	// Format
3602	// is:
3603	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
3604	//
3605	// This field is ignored when creating a product.
3606	Name string `json:"name,omitempty"`
3607
3608	// ProductCategory: Immutable. The category for the product identified
3609	// by the reference image. This should
3610	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
3611	// categories
3612	// "homegoods", "apparel", and "toys" are still supported, but these
3613	// should
3614	// not be used for new products.
3615	ProductCategory string `json:"productCategory,omitempty"`
3616
3617	// ProductLabels: Key-value pairs that can be attached to a product. At
3618	// query time,
3619	// constraints can be specified based on the product_labels.
3620	//
3621	// Note that integer values can be provided as strings, e.g. "1199".
3622	// Only
3623	// strings with integer values can match a range-based restriction which
3624	// is
3625	// to be supported soon.
3626	//
3627	// Multiple values can be assigned to the same key. One product may have
3628	// up to
3629	// 500 product_labels.
3630	//
3631	// Notice that the total number of distinct product_labels over all
3632	// products
3633	// in one ProductSet cannot exceed 1M, otherwise the product search
3634	// pipeline
3635	// will refuse to work for that ProductSet.
3636	ProductLabels []*GoogleCloudVisionV1p1beta1ProductKeyValue `json:"productLabels,omitempty"`
3637
3638	// ForceSendFields is a list of field names (e.g. "Description") to
3639	// unconditionally include in API requests. By default, fields with
3640	// empty values are omitted from API requests. However, any non-pointer,
3641	// non-interface field appearing in ForceSendFields will be sent to the
3642	// server regardless of whether the field is empty or not. This may be
3643	// used to include empty fields in Patch requests.
3644	ForceSendFields []string `json:"-"`
3645
3646	// NullFields is a list of field names (e.g. "Description") to include
3647	// in API requests with the JSON null value. By default, fields with
3648	// empty values are omitted from API requests. However, any field with
3649	// an empty value appearing in NullFields will be sent to the server as
3650	// null. It is an error if a field in this list has a non-empty value.
3651	// This may be used to include null fields in Patch requests.
3652	NullFields []string `json:"-"`
3653}
3654
3655func (s *GoogleCloudVisionV1p1beta1Product) MarshalJSON() ([]byte, error) {
3656	type NoMethod GoogleCloudVisionV1p1beta1Product
3657	raw := NoMethod(*s)
3658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3659}
3660
3661// GoogleCloudVisionV1p1beta1ProductKeyValue: A product label
3662// represented as a key-value pair.
3663type GoogleCloudVisionV1p1beta1ProductKeyValue struct {
3664	// Key: The key of the label attached to the product. Cannot be empty
3665	// and cannot
3666	// exceed 128 bytes.
3667	Key string `json:"key,omitempty"`
3668
3669	// Value: The value of the label attached to the product. Cannot be
3670	// empty and
3671	// cannot exceed 128 bytes.
3672	Value string `json:"value,omitempty"`
3673
3674	// ForceSendFields is a list of field names (e.g. "Key") to
3675	// unconditionally include in API requests. By default, fields with
3676	// empty values are omitted from API requests. However, any non-pointer,
3677	// non-interface field appearing in ForceSendFields will be sent to the
3678	// server regardless of whether the field is empty or not. This may be
3679	// used to include empty fields in Patch requests.
3680	ForceSendFields []string `json:"-"`
3681
3682	// NullFields is a list of field names (e.g. "Key") to include in API
3683	// requests with the JSON null value. By default, fields with empty
3684	// values are omitted from API requests. However, any field with an
3685	// empty value appearing in NullFields will be sent to the server as
3686	// null. It is an error if a field in this list has a non-empty value.
3687	// This may be used to include null fields in Patch requests.
3688	NullFields []string `json:"-"`
3689}
3690
3691func (s *GoogleCloudVisionV1p1beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
3692	type NoMethod GoogleCloudVisionV1p1beta1ProductKeyValue
3693	raw := NoMethod(*s)
3694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3695}
3696
3697// GoogleCloudVisionV1p1beta1ProductSearchResults: Results for a product
3698// search request.
3699type GoogleCloudVisionV1p1beta1ProductSearchResults struct {
3700	// IndexTime: Timestamp of the index which provided these results.
3701	// Products added to the
3702	// product set and products removed from the product set after this time
3703	// are
3704	// not reflected in the current results.
3705	IndexTime string `json:"indexTime,omitempty"`
3706
3707	// ProductGroupedResults: List of results grouped by products detected
3708	// in the query image. Each entry
3709	// corresponds to one bounding polygon in the query image, and contains
3710	// the
3711	// matching products specific to that region. There may be duplicate
3712	// product
3713	// matches in the union of all the per-product results.
3714	ProductGroupedResults []*GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
3715
3716	// Results: List of results, one for each product match.
3717	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3718
3719	// ForceSendFields is a list of field names (e.g. "IndexTime") to
3720	// unconditionally include in API requests. By default, fields with
3721	// empty values are omitted from API requests. However, any non-pointer,
3722	// non-interface field appearing in ForceSendFields will be sent to the
3723	// server regardless of whether the field is empty or not. This may be
3724	// used to include empty fields in Patch requests.
3725	ForceSendFields []string `json:"-"`
3726
3727	// NullFields is a list of field names (e.g. "IndexTime") to include in
3728	// API requests with the JSON null value. By default, fields with empty
3729	// values are omitted from API requests. However, any field with an
3730	// empty value appearing in NullFields will be sent to the server as
3731	// null. It is an error if a field in this list has a non-empty value.
3732	// This may be used to include null fields in Patch requests.
3733	NullFields []string `json:"-"`
3734}
3735
3736func (s *GoogleCloudVisionV1p1beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
3737	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResults
3738	raw := NoMethod(*s)
3739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3740}
3741
3742// GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult:
3743// Information about the products similar to a single product in a
3744// query
3745// image.
3746type GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult struct {
3747	// BoundingPoly: The bounding polygon around the product detected in the
3748	// query image.
3749	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3750
3751	// ObjectAnnotations: List of generic predictions for the object in the
3752	// bounding box.
3753	ObjectAnnotations []*GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
3754
3755	// Results: List of results, one for each product match.
3756	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3757
3758	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3759	// unconditionally include in API requests. By default, fields with
3760	// empty values are omitted from API requests. However, any non-pointer,
3761	// non-interface field appearing in ForceSendFields will be sent to the
3762	// server regardless of whether the field is empty or not. This may be
3763	// used to include empty fields in Patch requests.
3764	ForceSendFields []string `json:"-"`
3765
3766	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3767	// in API requests with the JSON null value. By default, fields with
3768	// empty values are omitted from API requests. However, any field with
3769	// an empty value appearing in NullFields will be sent to the server as
3770	// null. It is an error if a field in this list has a non-empty value.
3771	// This may be used to include null fields in Patch requests.
3772	NullFields []string `json:"-"`
3773}
3774
3775func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
3776	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult
3777	raw := NoMethod(*s)
3778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3779}
3780
3781// GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation:
3782// Prediction for what the object in the bounding box is.
3783type GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation struct {
3784	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3785	// For more
3786	// information,
3787	// see
3788	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3789	LanguageCode string `json:"languageCode,omitempty"`
3790
3791	// Mid: Object ID that should align with EntityAnnotation mid.
3792	Mid string `json:"mid,omitempty"`
3793
3794	// Name: Object name, expressed in its `language_code` language.
3795	Name string `json:"name,omitempty"`
3796
3797	// Score: Score of the result. Range [0, 1].
3798	Score float64 `json:"score,omitempty"`
3799
3800	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
3801	// unconditionally include in API requests. By default, fields with
3802	// empty values are omitted from API requests. However, any non-pointer,
3803	// non-interface field appearing in ForceSendFields will be sent to the
3804	// server regardless of whether the field is empty or not. This may be
3805	// used to include empty fields in Patch requests.
3806	ForceSendFields []string `json:"-"`
3807
3808	// NullFields is a list of field names (e.g. "LanguageCode") to include
3809	// in API requests with the JSON null value. By default, fields with
3810	// empty values are omitted from API requests. However, any field with
3811	// an empty value appearing in NullFields will be sent to the server as
3812	// null. It is an error if a field in this list has a non-empty value.
3813	// This may be used to include null fields in Patch requests.
3814	NullFields []string `json:"-"`
3815}
3816
3817func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
3818	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3819	raw := NoMethod(*s)
3820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3821}
3822
3823func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
3824	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3825	var s1 struct {
3826		Score gensupport.JSONFloat64 `json:"score"`
3827		*NoMethod
3828	}
3829	s1.NoMethod = (*NoMethod)(s)
3830	if err := json.Unmarshal(data, &s1); err != nil {
3831		return err
3832	}
3833	s.Score = float64(s1.Score)
3834	return nil
3835}
3836
3837// GoogleCloudVisionV1p1beta1ProductSearchResultsResult: Information
3838// about a product.
3839type GoogleCloudVisionV1p1beta1ProductSearchResultsResult struct {
3840	// Image: The resource name of the image from the product that is the
3841	// closest match
3842	// to the query.
3843	Image string `json:"image,omitempty"`
3844
3845	// Product: The Product.
3846	Product *GoogleCloudVisionV1p1beta1Product `json:"product,omitempty"`
3847
3848	// Score: A confidence level on the match, ranging from 0 (no
3849	// confidence) to
3850	// 1 (full confidence).
3851	Score float64 `json:"score,omitempty"`
3852
3853	// ForceSendFields is a list of field names (e.g. "Image") to
3854	// unconditionally include in API requests. By default, fields with
3855	// empty values are omitted from API requests. However, any non-pointer,
3856	// non-interface field appearing in ForceSendFields will be sent to the
3857	// server regardless of whether the field is empty or not. This may be
3858	// used to include empty fields in Patch requests.
3859	ForceSendFields []string `json:"-"`
3860
3861	// NullFields is a list of field names (e.g. "Image") to include in API
3862	// requests with the JSON null value. By default, fields with empty
3863	// values are omitted from API requests. However, any field with an
3864	// empty value appearing in NullFields will be sent to the server as
3865	// null. It is an error if a field in this list has a non-empty value.
3866	// This may be used to include null fields in Patch requests.
3867	NullFields []string `json:"-"`
3868}
3869
3870func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
3871	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3872	raw := NoMethod(*s)
3873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3874}
3875
3876func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
3877	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3878	var s1 struct {
3879		Score gensupport.JSONFloat64 `json:"score"`
3880		*NoMethod
3881	}
3882	s1.NoMethod = (*NoMethod)(s)
3883	if err := json.Unmarshal(data, &s1); err != nil {
3884		return err
3885	}
3886	s.Score = float64(s1.Score)
3887	return nil
3888}
3889
3890// GoogleCloudVisionV1p1beta1Property: A `Property` consists of a
3891// user-supplied name/value pair.
3892type GoogleCloudVisionV1p1beta1Property struct {
3893	// Name: Name of the property.
3894	Name string `json:"name,omitempty"`
3895
3896	// Uint64Value: Value of numeric properties.
3897	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
3898
3899	// Value: Value of the property.
3900	Value string `json:"value,omitempty"`
3901
3902	// ForceSendFields is a list of field names (e.g. "Name") to
3903	// unconditionally include in API requests. By default, fields with
3904	// empty values are omitted from API requests. However, any non-pointer,
3905	// non-interface field appearing in ForceSendFields will be sent to the
3906	// server regardless of whether the field is empty or not. This may be
3907	// used to include empty fields in Patch requests.
3908	ForceSendFields []string `json:"-"`
3909
3910	// NullFields is a list of field names (e.g. "Name") to include in API
3911	// requests with the JSON null value. By default, fields with empty
3912	// values are omitted from API requests. However, any field with an
3913	// empty value appearing in NullFields will be sent to the server as
3914	// null. It is an error if a field in this list has a non-empty value.
3915	// This may be used to include null fields in Patch requests.
3916	NullFields []string `json:"-"`
3917}
3918
3919func (s *GoogleCloudVisionV1p1beta1Property) MarshalJSON() ([]byte, error) {
3920	type NoMethod GoogleCloudVisionV1p1beta1Property
3921	raw := NoMethod(*s)
3922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3923}
3924
3925// GoogleCloudVisionV1p1beta1SafeSearchAnnotation: Set of features
3926// pertaining to the image, computed by computer vision
3927// methods over safe-search verticals (for example, adult, spoof,
3928// medical,
3929// violence).
3930type GoogleCloudVisionV1p1beta1SafeSearchAnnotation struct {
3931	// Adult: Represents the adult content likelihood for the image. Adult
3932	// content may
3933	// contain elements such as nudity, pornographic images or cartoons,
3934	// or
3935	// sexual activities.
3936	//
3937	// Possible values:
3938	//   "UNKNOWN" - Unknown likelihood.
3939	//   "VERY_UNLIKELY" - It is very unlikely.
3940	//   "UNLIKELY" - It is unlikely.
3941	//   "POSSIBLE" - It is possible.
3942	//   "LIKELY" - It is likely.
3943	//   "VERY_LIKELY" - It is very likely.
3944	Adult string `json:"adult,omitempty"`
3945
3946	// Medical: Likelihood that this is a medical image.
3947	//
3948	// Possible values:
3949	//   "UNKNOWN" - Unknown likelihood.
3950	//   "VERY_UNLIKELY" - It is very unlikely.
3951	//   "UNLIKELY" - It is unlikely.
3952	//   "POSSIBLE" - It is possible.
3953	//   "LIKELY" - It is likely.
3954	//   "VERY_LIKELY" - It is very likely.
3955	Medical string `json:"medical,omitempty"`
3956
3957	// Racy: Likelihood that the request image contains racy content. Racy
3958	// content may
3959	// include (but is not limited to) skimpy or sheer clothing,
3960	// strategically
3961	// covered nudity, lewd or provocative poses, or close-ups of
3962	// sensitive
3963	// body areas.
3964	//
3965	// Possible values:
3966	//   "UNKNOWN" - Unknown likelihood.
3967	//   "VERY_UNLIKELY" - It is very unlikely.
3968	//   "UNLIKELY" - It is unlikely.
3969	//   "POSSIBLE" - It is possible.
3970	//   "LIKELY" - It is likely.
3971	//   "VERY_LIKELY" - It is very likely.
3972	Racy string `json:"racy,omitempty"`
3973
3974	// Spoof: Spoof likelihood. The likelihood that an modification
3975	// was made to the image's canonical version to make it appear
3976	// funny or offensive.
3977	//
3978	// Possible values:
3979	//   "UNKNOWN" - Unknown likelihood.
3980	//   "VERY_UNLIKELY" - It is very unlikely.
3981	//   "UNLIKELY" - It is unlikely.
3982	//   "POSSIBLE" - It is possible.
3983	//   "LIKELY" - It is likely.
3984	//   "VERY_LIKELY" - It is very likely.
3985	Spoof string `json:"spoof,omitempty"`
3986
3987	// Violence: Likelihood that this image contains violent content.
3988	//
3989	// Possible values:
3990	//   "UNKNOWN" - Unknown likelihood.
3991	//   "VERY_UNLIKELY" - It is very unlikely.
3992	//   "UNLIKELY" - It is unlikely.
3993	//   "POSSIBLE" - It is possible.
3994	//   "LIKELY" - It is likely.
3995	//   "VERY_LIKELY" - It is very likely.
3996	Violence string `json:"violence,omitempty"`
3997
3998	// ForceSendFields is a list of field names (e.g. "Adult") to
3999	// unconditionally include in API requests. By default, fields with
4000	// empty values are omitted from API requests. However, any non-pointer,
4001	// non-interface field appearing in ForceSendFields will be sent to the
4002	// server regardless of whether the field is empty or not. This may be
4003	// used to include empty fields in Patch requests.
4004	ForceSendFields []string `json:"-"`
4005
4006	// NullFields is a list of field names (e.g. "Adult") to include in API
4007	// requests with the JSON null value. By default, fields with empty
4008	// values are omitted from API requests. However, any field with an
4009	// empty value appearing in NullFields will be sent to the server as
4010	// null. It is an error if a field in this list has a non-empty value.
4011	// This may be used to include null fields in Patch requests.
4012	NullFields []string `json:"-"`
4013}
4014
4015func (s *GoogleCloudVisionV1p1beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
4016	type NoMethod GoogleCloudVisionV1p1beta1SafeSearchAnnotation
4017	raw := NoMethod(*s)
4018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4019}
4020
4021// GoogleCloudVisionV1p1beta1Symbol: A single symbol representation.
4022type GoogleCloudVisionV1p1beta1Symbol struct {
4023	// BoundingBox: The bounding box for the symbol.
4024	// The vertices are in the order of top-left, top-right,
4025	// bottom-right,
4026	// bottom-left. When a rotation of the bounding box is detected the
4027	// rotation
4028	// is represented as around the top-left corner as defined when the text
4029	// is
4030	// read in the 'natural' orientation.
4031	// For example:
4032	//   * when the text is horizontal it might look like:
4033	//      0----1
4034	//      |    |
4035	//      3----2
4036	//   * when it's rotated 180 degrees around the top-left corner it
4037	// becomes:
4038	//      2----3
4039	//      |    |
4040	//      1----0
4041	//   and the vertex order will still be (0, 1, 2, 3).
4042	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
4043
4044	// Confidence: Confidence of the OCR results for the symbol. Range [0,
4045	// 1].
4046	Confidence float64 `json:"confidence,omitempty"`
4047
4048	// Property: Additional information detected for the symbol.
4049	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
4050
4051	// Text: The actual UTF-8 representation of the symbol.
4052	Text string `json:"text,omitempty"`
4053
4054	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
4055	// unconditionally include in API requests. By default, fields with
4056	// empty values are omitted from API requests. However, any non-pointer,
4057	// non-interface field appearing in ForceSendFields will be sent to the
4058	// server regardless of whether the field is empty or not. This may be
4059	// used to include empty fields in Patch requests.
4060	ForceSendFields []string `json:"-"`
4061
4062	// NullFields is a list of field names (e.g. "BoundingBox") to include
4063	// in API requests with the JSON null value. By default, fields with
4064	// empty values are omitted from API requests. However, any field with
4065	// an empty value appearing in NullFields will be sent to the server as
4066	// null. It is an error if a field in this list has a non-empty value.
4067	// This may be used to include null fields in Patch requests.
4068	NullFields []string `json:"-"`
4069}
4070
4071func (s *GoogleCloudVisionV1p1beta1Symbol) MarshalJSON() ([]byte, error) {
4072	type NoMethod GoogleCloudVisionV1p1beta1Symbol
4073	raw := NoMethod(*s)
4074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4075}
4076
4077func (s *GoogleCloudVisionV1p1beta1Symbol) UnmarshalJSON(data []byte) error {
4078	type NoMethod GoogleCloudVisionV1p1beta1Symbol
4079	var s1 struct {
4080		Confidence gensupport.JSONFloat64 `json:"confidence"`
4081		*NoMethod
4082	}
4083	s1.NoMethod = (*NoMethod)(s)
4084	if err := json.Unmarshal(data, &s1); err != nil {
4085		return err
4086	}
4087	s.Confidence = float64(s1.Confidence)
4088	return nil
4089}
4090
4091// GoogleCloudVisionV1p1beta1TextAnnotation: TextAnnotation contains a
4092// structured representation of OCR extracted text.
4093// The hierarchy of an OCR extracted text structure is like this:
4094//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
4095// Symbol
4096// Each structural component, starting from Page, may further have their
4097// own
4098// properties. Properties describe detected languages, breaks etc..
4099// Please refer
4100// to the TextAnnotation.TextProperty message definition below for
4101// more
4102// detail.
4103type GoogleCloudVisionV1p1beta1TextAnnotation struct {
4104	// Pages: List of pages detected by OCR.
4105	Pages []*GoogleCloudVisionV1p1beta1Page `json:"pages,omitempty"`
4106
4107	// Text: UTF-8 text detected on the pages.
4108	Text string `json:"text,omitempty"`
4109
4110	// ForceSendFields is a list of field names (e.g. "Pages") to
4111	// unconditionally include in API requests. By default, fields with
4112	// empty values are omitted from API requests. However, any non-pointer,
4113	// non-interface field appearing in ForceSendFields will be sent to the
4114	// server regardless of whether the field is empty or not. This may be
4115	// used to include empty fields in Patch requests.
4116	ForceSendFields []string `json:"-"`
4117
4118	// NullFields is a list of field names (e.g. "Pages") to include in API
4119	// requests with the JSON null value. By default, fields with empty
4120	// values are omitted from API requests. However, any field with an
4121	// empty value appearing in NullFields will be sent to the server as
4122	// null. It is an error if a field in this list has a non-empty value.
4123	// This may be used to include null fields in Patch requests.
4124	NullFields []string `json:"-"`
4125}
4126
4127func (s *GoogleCloudVisionV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
4128	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotation
4129	raw := NoMethod(*s)
4130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4131}
4132
4133// GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak: Detected start
4134// or end of a structural component.
4135type GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak struct {
4136	// IsPrefix: True if break prepends the element.
4137	IsPrefix bool `json:"isPrefix,omitempty"`
4138
4139	// Type: Detected break type.
4140	//
4141	// Possible values:
4142	//   "UNKNOWN" - Unknown break label type.
4143	//   "SPACE" - Regular space.
4144	//   "SURE_SPACE" - Sure space (very wide).
4145	//   "EOL_SURE_SPACE" - Line-wrapping break.
4146	//   "HYPHEN" - End-line hyphen that is not present in text; does not
4147	// co-occur with
4148	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
4149	//   "LINE_BREAK" - Line break that ends a paragraph.
4150	Type string `json:"type,omitempty"`
4151
4152	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
4153	// unconditionally include in API requests. By default, fields with
4154	// empty values are omitted from API requests. However, any non-pointer,
4155	// non-interface field appearing in ForceSendFields will be sent to the
4156	// server regardless of whether the field is empty or not. This may be
4157	// used to include empty fields in Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "IsPrefix") to include in
4161	// API requests with the JSON null value. By default, fields with empty
4162	// values are omitted from API requests. However, any field with an
4163	// empty value appearing in NullFields will be sent to the server as
4164	// null. It is an error if a field in this list has a non-empty value.
4165	// This may be used to include null fields in Patch requests.
4166	NullFields []string `json:"-"`
4167}
4168
4169func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
4170	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak
4171	raw := NoMethod(*s)
4172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4173}
4174
4175// GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage: Detected
4176// language for a structural component.
4177type GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage struct {
4178	// Confidence: Confidence of detected language. Range [0, 1].
4179	Confidence float64 `json:"confidence,omitempty"`
4180
4181	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
4182	// For more
4183	// information,
4184	// see
4185	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
4186	LanguageCode string `json:"languageCode,omitempty"`
4187
4188	// ForceSendFields is a list of field names (e.g. "Confidence") to
4189	// unconditionally include in API requests. By default, fields with
4190	// empty values are omitted from API requests. However, any non-pointer,
4191	// non-interface field appearing in ForceSendFields will be sent to the
4192	// server regardless of whether the field is empty or not. This may be
4193	// used to include empty fields in Patch requests.
4194	ForceSendFields []string `json:"-"`
4195
4196	// NullFields is a list of field names (e.g. "Confidence") to include in
4197	// API requests with the JSON null value. By default, fields with empty
4198	// values are omitted from API requests. However, any field with an
4199	// empty value appearing in NullFields will be sent to the server as
4200	// null. It is an error if a field in this list has a non-empty value.
4201	// This may be used to include null fields in Patch requests.
4202	NullFields []string `json:"-"`
4203}
4204
4205func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
4206	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
4207	raw := NoMethod(*s)
4208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4209}
4210
4211func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
4212	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
4213	var s1 struct {
4214		Confidence gensupport.JSONFloat64 `json:"confidence"`
4215		*NoMethod
4216	}
4217	s1.NoMethod = (*NoMethod)(s)
4218	if err := json.Unmarshal(data, &s1); err != nil {
4219		return err
4220	}
4221	s.Confidence = float64(s1.Confidence)
4222	return nil
4223}
4224
4225// GoogleCloudVisionV1p1beta1TextAnnotationTextProperty: Additional
4226// information detected on the structural component.
4227type GoogleCloudVisionV1p1beta1TextAnnotationTextProperty struct {
4228	// DetectedBreak: Detected start or end of a text segment.
4229	DetectedBreak *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
4230
4231	// DetectedLanguages: A list of detected languages together with
4232	// confidence.
4233	DetectedLanguages []*GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
4234
4235	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
4236	// unconditionally include in API requests. By default, fields with
4237	// empty values are omitted from API requests. However, any non-pointer,
4238	// non-interface field appearing in ForceSendFields will be sent to the
4239	// server regardless of whether the field is empty or not. This may be
4240	// used to include empty fields in Patch requests.
4241	ForceSendFields []string `json:"-"`
4242
4243	// NullFields is a list of field names (e.g. "DetectedBreak") to include
4244	// in API requests with the JSON null value. By default, fields with
4245	// empty values are omitted from API requests. However, any field with
4246	// an empty value appearing in NullFields will be sent to the server as
4247	// null. It is an error if a field in this list has a non-empty value.
4248	// This may be used to include null fields in Patch requests.
4249	NullFields []string `json:"-"`
4250}
4251
4252func (s *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
4253	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationTextProperty
4254	raw := NoMethod(*s)
4255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4256}
4257
4258// GoogleCloudVisionV1p1beta1Vertex: A vertex represents a 2D point in
4259// the image.
4260// NOTE: the vertex coordinates are in the same scale as the original
4261// image.
4262type GoogleCloudVisionV1p1beta1Vertex struct {
4263	// X: X coordinate.
4264	X int64 `json:"x,omitempty"`
4265
4266	// Y: Y coordinate.
4267	Y int64 `json:"y,omitempty"`
4268
4269	// ForceSendFields is a list of field names (e.g. "X") to
4270	// unconditionally include in API requests. By default, fields with
4271	// empty values are omitted from API requests. However, any non-pointer,
4272	// non-interface field appearing in ForceSendFields will be sent to the
4273	// server regardless of whether the field is empty or not. This may be
4274	// used to include empty fields in Patch requests.
4275	ForceSendFields []string `json:"-"`
4276
4277	// NullFields is a list of field names (e.g. "X") to include in API
4278	// requests with the JSON null value. By default, fields with empty
4279	// values are omitted from API requests. However, any field with an
4280	// empty value appearing in NullFields will be sent to the server as
4281	// null. It is an error if a field in this list has a non-empty value.
4282	// This may be used to include null fields in Patch requests.
4283	NullFields []string `json:"-"`
4284}
4285
4286func (s *GoogleCloudVisionV1p1beta1Vertex) MarshalJSON() ([]byte, error) {
4287	type NoMethod GoogleCloudVisionV1p1beta1Vertex
4288	raw := NoMethod(*s)
4289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4290}
4291
4292// GoogleCloudVisionV1p1beta1WebDetection: Relevant information for the
4293// image from the Internet.
4294type GoogleCloudVisionV1p1beta1WebDetection struct {
4295	// BestGuessLabels: The service's best guess as to the topic of the
4296	// request image.
4297	// Inferred from similar images on the open web.
4298	BestGuessLabels []*GoogleCloudVisionV1p1beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
4299
4300	// FullMatchingImages: Fully matching images from the Internet.
4301	// Can include resized copies of the query image.
4302	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
4303
4304	// PagesWithMatchingImages: Web pages containing the matching images
4305	// from the Internet.
4306	PagesWithMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
4307
4308	// PartialMatchingImages: Partial matching images from the
4309	// Internet.
4310	// Those images are similar enough to share some key-point features.
4311	// For
4312	// example an original image will likely have partial matching for its
4313	// crops.
4314	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
4315
4316	// VisuallySimilarImages: The visually similar image results.
4317	VisuallySimilarImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
4318
4319	// WebEntities: Deduced entities from similar images on the Internet.
4320	WebEntities []*GoogleCloudVisionV1p1beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
4321
4322	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
4323	// unconditionally include in API requests. By default, fields with
4324	// empty values are omitted from API requests. However, any non-pointer,
4325	// non-interface field appearing in ForceSendFields will be sent to the
4326	// server regardless of whether the field is empty or not. This may be
4327	// used to include empty fields in Patch requests.
4328	ForceSendFields []string `json:"-"`
4329
4330	// NullFields is a list of field names (e.g. "BestGuessLabels") to
4331	// include in API requests with the JSON null value. By default, fields
4332	// with empty values are omitted from API requests. However, any field
4333	// with an empty value appearing in NullFields will be sent to the
4334	// server as null. It is an error if a field in this list has a
4335	// non-empty value. This may be used to include null fields in Patch
4336	// requests.
4337	NullFields []string `json:"-"`
4338}
4339
4340func (s *GoogleCloudVisionV1p1beta1WebDetection) MarshalJSON() ([]byte, error) {
4341	type NoMethod GoogleCloudVisionV1p1beta1WebDetection
4342	raw := NoMethod(*s)
4343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4344}
4345
4346// GoogleCloudVisionV1p1beta1WebDetectionWebEntity: Entity deduced from
4347// similar images on the Internet.
4348type GoogleCloudVisionV1p1beta1WebDetectionWebEntity struct {
4349	// Description: Canonical description of the entity, in English.
4350	Description string `json:"description,omitempty"`
4351
4352	// EntityId: Opaque entity ID.
4353	EntityId string `json:"entityId,omitempty"`
4354
4355	// Score: Overall relevancy score for the entity.
4356	// Not normalized and not comparable across different image queries.
4357	Score float64 `json:"score,omitempty"`
4358
4359	// ForceSendFields is a list of field names (e.g. "Description") to
4360	// unconditionally include in API requests. By default, fields with
4361	// empty values are omitted from API requests. However, any non-pointer,
4362	// non-interface field appearing in ForceSendFields will be sent to the
4363	// server regardless of whether the field is empty or not. This may be
4364	// used to include empty fields in Patch requests.
4365	ForceSendFields []string `json:"-"`
4366
4367	// NullFields is a list of field names (e.g. "Description") to include
4368	// in API requests with the JSON null value. By default, fields with
4369	// empty values are omitted from API requests. However, any field with
4370	// an empty value appearing in NullFields will be sent to the server as
4371	// null. It is an error if a field in this list has a non-empty value.
4372	// This may be used to include null fields in Patch requests.
4373	NullFields []string `json:"-"`
4374}
4375
4376func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
4377	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
4378	raw := NoMethod(*s)
4379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4380}
4381
4382func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
4383	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
4384	var s1 struct {
4385		Score gensupport.JSONFloat64 `json:"score"`
4386		*NoMethod
4387	}
4388	s1.NoMethod = (*NoMethod)(s)
4389	if err := json.Unmarshal(data, &s1); err != nil {
4390		return err
4391	}
4392	s.Score = float64(s1.Score)
4393	return nil
4394}
4395
4396// GoogleCloudVisionV1p1beta1WebDetectionWebImage: Metadata for online
4397// images.
4398type GoogleCloudVisionV1p1beta1WebDetectionWebImage struct {
4399	// Score: (Deprecated) Overall relevancy score for the image.
4400	Score float64 `json:"score,omitempty"`
4401
4402	// Url: The result image URL.
4403	Url string `json:"url,omitempty"`
4404
4405	// ForceSendFields is a list of field names (e.g. "Score") to
4406	// unconditionally include in API requests. By default, fields with
4407	// empty values are omitted from API requests. However, any non-pointer,
4408	// non-interface field appearing in ForceSendFields will be sent to the
4409	// server regardless of whether the field is empty or not. This may be
4410	// used to include empty fields in Patch requests.
4411	ForceSendFields []string `json:"-"`
4412
4413	// NullFields is a list of field names (e.g. "Score") to include in API
4414	// requests with the JSON null value. By default, fields with empty
4415	// values are omitted from API requests. However, any field with an
4416	// empty value appearing in NullFields will be sent to the server as
4417	// null. It is an error if a field in this list has a non-empty value.
4418	// This may be used to include null fields in Patch requests.
4419	NullFields []string `json:"-"`
4420}
4421
4422func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
4423	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4424	raw := NoMethod(*s)
4425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4426}
4427
4428func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
4429	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4430	var s1 struct {
4431		Score gensupport.JSONFloat64 `json:"score"`
4432		*NoMethod
4433	}
4434	s1.NoMethod = (*NoMethod)(s)
4435	if err := json.Unmarshal(data, &s1); err != nil {
4436		return err
4437	}
4438	s.Score = float64(s1.Score)
4439	return nil
4440}
4441
4442// GoogleCloudVisionV1p1beta1WebDetectionWebLabel: Label to provide
4443// extra metadata for the web detection.
4444type GoogleCloudVisionV1p1beta1WebDetectionWebLabel struct {
4445	// Label: Label for extra metadata.
4446	Label string `json:"label,omitempty"`
4447
4448	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
4449	// or "sr-Latn".
4450	// For more information,
4451	// see
4452	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
4453	LanguageCode string `json:"languageCode,omitempty"`
4454
4455	// ForceSendFields is a list of field names (e.g. "Label") to
4456	// unconditionally include in API requests. By default, fields with
4457	// empty values are omitted from API requests. However, any non-pointer,
4458	// non-interface field appearing in ForceSendFields will be sent to the
4459	// server regardless of whether the field is empty or not. This may be
4460	// used to include empty fields in Patch requests.
4461	ForceSendFields []string `json:"-"`
4462
4463	// NullFields is a list of field names (e.g. "Label") to include in API
4464	// requests with the JSON null value. By default, fields with empty
4465	// values are omitted from API requests. However, any field with an
4466	// empty value appearing in NullFields will be sent to the server as
4467	// null. It is an error if a field in this list has a non-empty value.
4468	// This may be used to include null fields in Patch requests.
4469	NullFields []string `json:"-"`
4470}
4471
4472func (s *GoogleCloudVisionV1p1beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
4473	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebLabel
4474	raw := NoMethod(*s)
4475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4476}
4477
4478// GoogleCloudVisionV1p1beta1WebDetectionWebPage: Metadata for web
4479// pages.
4480type GoogleCloudVisionV1p1beta1WebDetectionWebPage struct {
4481	// FullMatchingImages: Fully matching images on the page.
4482	// Can include resized copies of the query image.
4483	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
4484
4485	// PageTitle: Title for the web page, may contain HTML markups.
4486	PageTitle string `json:"pageTitle,omitempty"`
4487
4488	// PartialMatchingImages: Partial matching images on the page.
4489	// Those images are similar enough to share some key-point features.
4490	// For
4491	// example an original image will likely have partial matching for
4492	// its
4493	// crops.
4494	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
4495
4496	// Score: (Deprecated) Overall relevancy score for the web page.
4497	Score float64 `json:"score,omitempty"`
4498
4499	// Url: The result web page URL.
4500	Url string `json:"url,omitempty"`
4501
4502	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
4503	// to unconditionally include in API requests. By default, fields with
4504	// empty values are omitted from API requests. However, any non-pointer,
4505	// non-interface field appearing in ForceSendFields will be sent to the
4506	// server regardless of whether the field is empty or not. This may be
4507	// used to include empty fields in Patch requests.
4508	ForceSendFields []string `json:"-"`
4509
4510	// NullFields is a list of field names (e.g. "FullMatchingImages") to
4511	// include in API requests with the JSON null value. By default, fields
4512	// with empty values are omitted from API requests. However, any field
4513	// with an empty value appearing in NullFields will be sent to the
4514	// server as null. It is an error if a field in this list has a
4515	// non-empty value. This may be used to include null fields in Patch
4516	// requests.
4517	NullFields []string `json:"-"`
4518}
4519
4520func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
4521	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4522	raw := NoMethod(*s)
4523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4524}
4525
4526func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
4527	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4528	var s1 struct {
4529		Score gensupport.JSONFloat64 `json:"score"`
4530		*NoMethod
4531	}
4532	s1.NoMethod = (*NoMethod)(s)
4533	if err := json.Unmarshal(data, &s1); err != nil {
4534		return err
4535	}
4536	s.Score = float64(s1.Score)
4537	return nil
4538}
4539
4540// GoogleCloudVisionV1p1beta1Word: A word representation.
4541type GoogleCloudVisionV1p1beta1Word struct {
4542	// BoundingBox: The bounding box for the word.
4543	// The vertices are in the order of top-left, top-right,
4544	// bottom-right,
4545	// bottom-left. When a rotation of the bounding box is detected the
4546	// rotation
4547	// is represented as around the top-left corner as defined when the text
4548	// is
4549	// read in the 'natural' orientation.
4550	// For example:
4551	//   * when the text is horizontal it might look like:
4552	//      0----1
4553	//      |    |
4554	//      3----2
4555	//   * when it's rotated 180 degrees around the top-left corner it
4556	// becomes:
4557	//      2----3
4558	//      |    |
4559	//      1----0
4560	//   and the vertex order will still be (0, 1, 2, 3).
4561	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
4562
4563	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
4564	Confidence float64 `json:"confidence,omitempty"`
4565
4566	// Property: Additional information detected for the word.
4567	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
4568
4569	// Symbols: List of symbols in the word.
4570	// The order of the symbols follows the natural reading order.
4571	Symbols []*GoogleCloudVisionV1p1beta1Symbol `json:"symbols,omitempty"`
4572
4573	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
4574	// unconditionally include in API requests. By default, fields with
4575	// empty values are omitted from API requests. However, any non-pointer,
4576	// non-interface field appearing in ForceSendFields will be sent to the
4577	// server regardless of whether the field is empty or not. This may be
4578	// used to include empty fields in Patch requests.
4579	ForceSendFields []string `json:"-"`
4580
4581	// NullFields is a list of field names (e.g. "BoundingBox") to include
4582	// in API requests with the JSON null value. By default, fields with
4583	// empty values are omitted from API requests. However, any field with
4584	// an empty value appearing in NullFields will be sent to the server as
4585	// null. It is an error if a field in this list has a non-empty value.
4586	// This may be used to include null fields in Patch requests.
4587	NullFields []string `json:"-"`
4588}
4589
4590func (s *GoogleCloudVisionV1p1beta1Word) MarshalJSON() ([]byte, error) {
4591	type NoMethod GoogleCloudVisionV1p1beta1Word
4592	raw := NoMethod(*s)
4593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4594}
4595
4596func (s *GoogleCloudVisionV1p1beta1Word) UnmarshalJSON(data []byte) error {
4597	type NoMethod GoogleCloudVisionV1p1beta1Word
4598	var s1 struct {
4599		Confidence gensupport.JSONFloat64 `json:"confidence"`
4600		*NoMethod
4601	}
4602	s1.NoMethod = (*NoMethod)(s)
4603	if err := json.Unmarshal(data, &s1); err != nil {
4604		return err
4605	}
4606	s.Confidence = float64(s1.Confidence)
4607	return nil
4608}
4609
4610// GoogleCloudVisionV1p2beta1AnnotateFileResponse: Response to a single
4611// file annotation request. A file may contain one or more
4612// images, which individually have their own responses.
4613type GoogleCloudVisionV1p2beta1AnnotateFileResponse struct {
4614	// Error: If set, represents the error message for the failed request.
4615	// The
4616	// `responses` field will not be set in this case.
4617	Error *Status `json:"error,omitempty"`
4618
4619	// InputConfig: Information about the file for which this response is
4620	// generated.
4621	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
4622
4623	// Responses: Individual responses to images found within the file. This
4624	// field will be
4625	// empty if the `error` field is set.
4626	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
4627
4628	// TotalPages: This field gives the total number of pages in the file.
4629	TotalPages int64 `json:"totalPages,omitempty"`
4630
4631	// ForceSendFields is a list of field names (e.g. "Error") to
4632	// unconditionally include in API requests. By default, fields with
4633	// empty values are omitted from API requests. However, any non-pointer,
4634	// non-interface field appearing in ForceSendFields will be sent to the
4635	// server regardless of whether the field is empty or not. This may be
4636	// used to include empty fields in Patch requests.
4637	ForceSendFields []string `json:"-"`
4638
4639	// NullFields is a list of field names (e.g. "Error") to include in API
4640	// requests with the JSON null value. By default, fields with empty
4641	// values are omitted from API requests. However, any field with an
4642	// empty value appearing in NullFields will be sent to the server as
4643	// null. It is an error if a field in this list has a non-empty value.
4644	// This may be used to include null fields in Patch requests.
4645	NullFields []string `json:"-"`
4646}
4647
4648func (s *GoogleCloudVisionV1p2beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
4649	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileResponse
4650	raw := NoMethod(*s)
4651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4652}
4653
4654// GoogleCloudVisionV1p2beta1AnnotateImageResponse: Response to an image
4655// annotation request.
4656type GoogleCloudVisionV1p2beta1AnnotateImageResponse struct {
4657	// Context: If present, contextual information is needed to understand
4658	// where this image
4659	// comes from.
4660	Context *GoogleCloudVisionV1p2beta1ImageAnnotationContext `json:"context,omitempty"`
4661
4662	// CropHintsAnnotation: If present, crop hints have completed
4663	// successfully.
4664	CropHintsAnnotation *GoogleCloudVisionV1p2beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
4665
4666	// Error: If set, represents the error message for the operation.
4667	// Note that filled-in image annotations are guaranteed to be
4668	// correct, even when `error` is set.
4669	Error *Status `json:"error,omitempty"`
4670
4671	// FaceAnnotations: If present, face detection has completed
4672	// successfully.
4673	FaceAnnotations []*GoogleCloudVisionV1p2beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
4674
4675	// FullTextAnnotation: If present, text (OCR) detection or document
4676	// (OCR) text detection has
4677	// completed successfully.
4678	// This annotation provides the structural hierarchy for the OCR
4679	// detected
4680	// text.
4681	FullTextAnnotation *GoogleCloudVisionV1p2beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
4682
4683	// ImagePropertiesAnnotation: If present, image properties were
4684	// extracted successfully.
4685	ImagePropertiesAnnotation *GoogleCloudVisionV1p2beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
4686
4687	// LabelAnnotations: If present, label detection has completed
4688	// successfully.
4689	LabelAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
4690
4691	// LandmarkAnnotations: If present, landmark detection has completed
4692	// successfully.
4693	LandmarkAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
4694
4695	// LocalizedObjectAnnotations: If present, localized object detection
4696	// has completed successfully.
4697	// This will be sorted descending by confidence score.
4698	LocalizedObjectAnnotations []*GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
4699
4700	// LogoAnnotations: If present, logo detection has completed
4701	// successfully.
4702	LogoAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
4703
4704	// ProductSearchResults: If present, product search has completed
4705	// successfully.
4706	ProductSearchResults *GoogleCloudVisionV1p2beta1ProductSearchResults `json:"productSearchResults,omitempty"`
4707
4708	// SafeSearchAnnotation: If present, safe-search annotation has
4709	// completed successfully.
4710	SafeSearchAnnotation *GoogleCloudVisionV1p2beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
4711
4712	// TextAnnotations: If present, text (OCR) detection has completed
4713	// successfully.
4714	TextAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"textAnnotations,omitempty"`
4715
4716	// WebDetection: If present, web detection has completed successfully.
4717	WebDetection *GoogleCloudVisionV1p2beta1WebDetection `json:"webDetection,omitempty"`
4718
4719	// ForceSendFields is a list of field names (e.g. "Context") to
4720	// unconditionally include in API requests. By default, fields with
4721	// empty values are omitted from API requests. However, any non-pointer,
4722	// non-interface field appearing in ForceSendFields will be sent to the
4723	// server regardless of whether the field is empty or not. This may be
4724	// used to include empty fields in Patch requests.
4725	ForceSendFields []string `json:"-"`
4726
4727	// NullFields is a list of field names (e.g. "Context") to include in
4728	// API requests with the JSON null value. By default, fields with empty
4729	// values are omitted from API requests. However, any field with an
4730	// empty value appearing in NullFields will be sent to the server as
4731	// null. It is an error if a field in this list has a non-empty value.
4732	// This may be used to include null fields in Patch requests.
4733	NullFields []string `json:"-"`
4734}
4735
4736func (s *GoogleCloudVisionV1p2beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
4737	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageResponse
4738	raw := NoMethod(*s)
4739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4740}
4741
4742// GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse: The response for
4743// a single offline file annotation request.
4744type GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse struct {
4745	// OutputConfig: The output location and metadata from
4746	// AsyncAnnotateFileRequest.
4747	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4748
4749	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4750	// unconditionally include in API requests. By default, fields with
4751	// empty values are omitted from API requests. However, any non-pointer,
4752	// non-interface field appearing in ForceSendFields will be sent to the
4753	// server regardless of whether the field is empty or not. This may be
4754	// used to include empty fields in Patch requests.
4755	ForceSendFields []string `json:"-"`
4756
4757	// NullFields is a list of field names (e.g. "OutputConfig") to include
4758	// in API requests with the JSON null value. By default, fields with
4759	// empty values are omitted from API requests. However, any field with
4760	// an empty value appearing in NullFields will be sent to the server as
4761	// null. It is an error if a field in this list has a non-empty value.
4762	// This may be used to include null fields in Patch requests.
4763	NullFields []string `json:"-"`
4764}
4765
4766func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
4767	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse
4768	raw := NoMethod(*s)
4769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4770}
4771
4772// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse: Response
4773// to an async batch file annotation request.
4774type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse struct {
4775	// Responses: The list of file annotation responses, one for each
4776	// request in
4777	// AsyncBatchAnnotateFilesRequest.
4778	Responses []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
4779
4780	// ForceSendFields is a list of field names (e.g. "Responses") to
4781	// unconditionally include in API requests. By default, fields with
4782	// empty values are omitted from API requests. However, any non-pointer,
4783	// non-interface field appearing in ForceSendFields will be sent to the
4784	// server regardless of whether the field is empty or not. This may be
4785	// used to include empty fields in Patch requests.
4786	ForceSendFields []string `json:"-"`
4787
4788	// NullFields is a list of field names (e.g. "Responses") to include in
4789	// API requests with the JSON null value. By default, fields with empty
4790	// values are omitted from API requests. However, any field with an
4791	// empty value appearing in NullFields will be sent to the server as
4792	// null. It is an error if a field in this list has a non-empty value.
4793	// This may be used to include null fields in Patch requests.
4794	NullFields []string `json:"-"`
4795}
4796
4797func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4798	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse
4799	raw := NoMethod(*s)
4800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4801}
4802
4803// GoogleCloudVisionV1p2beta1Block: Logical element on the page.
4804type GoogleCloudVisionV1p2beta1Block struct {
4805	// BlockType: Detected block type (text, image etc) for this block.
4806	//
4807	// Possible values:
4808	//   "UNKNOWN" - Unknown block type.
4809	//   "TEXT" - Regular text block.
4810	//   "TABLE" - Table block.
4811	//   "PICTURE" - Image block.
4812	//   "RULER" - Horizontal/vertical line box.
4813	//   "BARCODE" - Barcode block.
4814	BlockType string `json:"blockType,omitempty"`
4815
4816	// BoundingBox: The bounding box for the block.
4817	// The vertices are in the order of top-left, top-right,
4818	// bottom-right,
4819	// bottom-left. When a rotation of the bounding box is detected the
4820	// rotation
4821	// is represented as around the top-left corner as defined when the text
4822	// is
4823	// read in the 'natural' orientation.
4824	// For example:
4825	//
4826	// * when the text is horizontal it might look like:
4827	//
4828	//         0----1
4829	//         |    |
4830	//         3----2
4831	//
4832	// * when it's rotated 180 degrees around the top-left corner it
4833	// becomes:
4834	//
4835	//         2----3
4836	//         |    |
4837	//         1----0
4838	//
4839	//   and the vertex order will still be (0, 1, 2, 3).
4840	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
4841
4842	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
4843	Confidence float64 `json:"confidence,omitempty"`
4844
4845	// Paragraphs: List of paragraphs in this block (if this blocks is of
4846	// type text).
4847	Paragraphs []*GoogleCloudVisionV1p2beta1Paragraph `json:"paragraphs,omitempty"`
4848
4849	// Property: Additional information detected for the block.
4850	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
4851
4852	// ForceSendFields is a list of field names (e.g. "BlockType") to
4853	// unconditionally include in API requests. By default, fields with
4854	// empty values are omitted from API requests. However, any non-pointer,
4855	// non-interface field appearing in ForceSendFields will be sent to the
4856	// server regardless of whether the field is empty or not. This may be
4857	// used to include empty fields in Patch requests.
4858	ForceSendFields []string `json:"-"`
4859
4860	// NullFields is a list of field names (e.g. "BlockType") to include in
4861	// API requests with the JSON null value. By default, fields with empty
4862	// values are omitted from API requests. However, any field with an
4863	// empty value appearing in NullFields will be sent to the server as
4864	// null. It is an error if a field in this list has a non-empty value.
4865	// This may be used to include null fields in Patch requests.
4866	NullFields []string `json:"-"`
4867}
4868
4869func (s *GoogleCloudVisionV1p2beta1Block) MarshalJSON() ([]byte, error) {
4870	type NoMethod GoogleCloudVisionV1p2beta1Block
4871	raw := NoMethod(*s)
4872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4873}
4874
4875func (s *GoogleCloudVisionV1p2beta1Block) UnmarshalJSON(data []byte) error {
4876	type NoMethod GoogleCloudVisionV1p2beta1Block
4877	var s1 struct {
4878		Confidence gensupport.JSONFloat64 `json:"confidence"`
4879		*NoMethod
4880	}
4881	s1.NoMethod = (*NoMethod)(s)
4882	if err := json.Unmarshal(data, &s1); err != nil {
4883		return err
4884	}
4885	s.Confidence = float64(s1.Confidence)
4886	return nil
4887}
4888
4889// GoogleCloudVisionV1p2beta1BoundingPoly: A bounding polygon for the
4890// detected image annotation.
4891type GoogleCloudVisionV1p2beta1BoundingPoly struct {
4892	// NormalizedVertices: The bounding polygon normalized vertices.
4893	NormalizedVertices []*GoogleCloudVisionV1p2beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
4894
4895	// Vertices: The bounding polygon vertices.
4896	Vertices []*GoogleCloudVisionV1p2beta1Vertex `json:"vertices,omitempty"`
4897
4898	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
4899	// to unconditionally include in API requests. By default, fields with
4900	// empty values are omitted from API requests. However, any non-pointer,
4901	// non-interface field appearing in ForceSendFields will be sent to the
4902	// server regardless of whether the field is empty or not. This may be
4903	// used to include empty fields in Patch requests.
4904	ForceSendFields []string `json:"-"`
4905
4906	// NullFields is a list of field names (e.g. "NormalizedVertices") to
4907	// include in API requests with the JSON null value. By default, fields
4908	// with empty values are omitted from API requests. However, any field
4909	// with an empty value appearing in NullFields will be sent to the
4910	// server as null. It is an error if a field in this list has a
4911	// non-empty value. This may be used to include null fields in Patch
4912	// requests.
4913	NullFields []string `json:"-"`
4914}
4915
4916func (s *GoogleCloudVisionV1p2beta1BoundingPoly) MarshalJSON() ([]byte, error) {
4917	type NoMethod GoogleCloudVisionV1p2beta1BoundingPoly
4918	raw := NoMethod(*s)
4919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4920}
4921
4922// GoogleCloudVisionV1p2beta1ColorInfo: Color information consists of
4923// RGB channels, score, and the fraction of
4924// the image that the color occupies in the image.
4925type GoogleCloudVisionV1p2beta1ColorInfo struct {
4926	// Color: RGB components of the color.
4927	Color *Color `json:"color,omitempty"`
4928
4929	// PixelFraction: The fraction of pixels the color occupies in the
4930	// image.
4931	// Value in range [0, 1].
4932	PixelFraction float64 `json:"pixelFraction,omitempty"`
4933
4934	// Score: Image-specific score for this color. Value in range [0, 1].
4935	Score float64 `json:"score,omitempty"`
4936
4937	// ForceSendFields is a list of field names (e.g. "Color") to
4938	// unconditionally include in API requests. By default, fields with
4939	// empty values are omitted from API requests. However, any non-pointer,
4940	// non-interface field appearing in ForceSendFields will be sent to the
4941	// server regardless of whether the field is empty or not. This may be
4942	// used to include empty fields in Patch requests.
4943	ForceSendFields []string `json:"-"`
4944
4945	// NullFields is a list of field names (e.g. "Color") to include in API
4946	// requests with the JSON null value. By default, fields with empty
4947	// values are omitted from API requests. However, any field with an
4948	// empty value appearing in NullFields will be sent to the server as
4949	// null. It is an error if a field in this list has a non-empty value.
4950	// This may be used to include null fields in Patch requests.
4951	NullFields []string `json:"-"`
4952}
4953
4954func (s *GoogleCloudVisionV1p2beta1ColorInfo) MarshalJSON() ([]byte, error) {
4955	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4956	raw := NoMethod(*s)
4957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4958}
4959
4960func (s *GoogleCloudVisionV1p2beta1ColorInfo) UnmarshalJSON(data []byte) error {
4961	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4962	var s1 struct {
4963		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
4964		Score         gensupport.JSONFloat64 `json:"score"`
4965		*NoMethod
4966	}
4967	s1.NoMethod = (*NoMethod)(s)
4968	if err := json.Unmarshal(data, &s1); err != nil {
4969		return err
4970	}
4971	s.PixelFraction = float64(s1.PixelFraction)
4972	s.Score = float64(s1.Score)
4973	return nil
4974}
4975
4976// GoogleCloudVisionV1p2beta1CropHint: Single crop hint that is used to
4977// generate a new crop when serving an image.
4978type GoogleCloudVisionV1p2beta1CropHint struct {
4979	// BoundingPoly: The bounding polygon for the crop region. The
4980	// coordinates of the bounding
4981	// box are in the original image's scale.
4982	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4983
4984	// Confidence: Confidence of this being a salient region.  Range [0, 1].
4985	Confidence float64 `json:"confidence,omitempty"`
4986
4987	// ImportanceFraction: Fraction of importance of this salient region
4988	// with respect to the original
4989	// image.
4990	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
4991
4992	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4993	// unconditionally include in API requests. By default, fields with
4994	// empty values are omitted from API requests. However, any non-pointer,
4995	// non-interface field appearing in ForceSendFields will be sent to the
4996	// server regardless of whether the field is empty or not. This may be
4997	// used to include empty fields in Patch requests.
4998	ForceSendFields []string `json:"-"`
4999
5000	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5001	// in API requests with the JSON null value. By default, fields with
5002	// empty values are omitted from API requests. However, any field with
5003	// an empty value appearing in NullFields will be sent to the server as
5004	// null. It is an error if a field in this list has a non-empty value.
5005	// This may be used to include null fields in Patch requests.
5006	NullFields []string `json:"-"`
5007}
5008
5009func (s *GoogleCloudVisionV1p2beta1CropHint) MarshalJSON() ([]byte, error) {
5010	type NoMethod GoogleCloudVisionV1p2beta1CropHint
5011	raw := NoMethod(*s)
5012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5013}
5014
5015func (s *GoogleCloudVisionV1p2beta1CropHint) UnmarshalJSON(data []byte) error {
5016	type NoMethod GoogleCloudVisionV1p2beta1CropHint
5017	var s1 struct {
5018		Confidence         gensupport.JSONFloat64 `json:"confidence"`
5019		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
5020		*NoMethod
5021	}
5022	s1.NoMethod = (*NoMethod)(s)
5023	if err := json.Unmarshal(data, &s1); err != nil {
5024		return err
5025	}
5026	s.Confidence = float64(s1.Confidence)
5027	s.ImportanceFraction = float64(s1.ImportanceFraction)
5028	return nil
5029}
5030
5031// GoogleCloudVisionV1p2beta1CropHintsAnnotation: Set of crop hints that
5032// are used to generate new crops when serving images.
5033type GoogleCloudVisionV1p2beta1CropHintsAnnotation struct {
5034	// CropHints: Crop hint results.
5035	CropHints []*GoogleCloudVisionV1p2beta1CropHint `json:"cropHints,omitempty"`
5036
5037	// ForceSendFields is a list of field names (e.g. "CropHints") to
5038	// unconditionally include in API requests. By default, fields with
5039	// empty values are omitted from API requests. However, any non-pointer,
5040	// non-interface field appearing in ForceSendFields will be sent to the
5041	// server regardless of whether the field is empty or not. This may be
5042	// used to include empty fields in Patch requests.
5043	ForceSendFields []string `json:"-"`
5044
5045	// NullFields is a list of field names (e.g. "CropHints") to include in
5046	// API requests with the JSON null value. By default, fields with empty
5047	// values are omitted from API requests. However, any field with an
5048	// empty value appearing in NullFields will be sent to the server as
5049	// null. It is an error if a field in this list has a non-empty value.
5050	// This may be used to include null fields in Patch requests.
5051	NullFields []string `json:"-"`
5052}
5053
5054func (s *GoogleCloudVisionV1p2beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
5055	type NoMethod GoogleCloudVisionV1p2beta1CropHintsAnnotation
5056	raw := NoMethod(*s)
5057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5058}
5059
5060// GoogleCloudVisionV1p2beta1DominantColorsAnnotation: Set of dominant
5061// colors and their corresponding scores.
5062type GoogleCloudVisionV1p2beta1DominantColorsAnnotation struct {
5063	// Colors: RGB color values with their score and pixel fraction.
5064	Colors []*GoogleCloudVisionV1p2beta1ColorInfo `json:"colors,omitempty"`
5065
5066	// ForceSendFields is a list of field names (e.g. "Colors") to
5067	// unconditionally include in API requests. By default, fields with
5068	// empty values are omitted from API requests. However, any non-pointer,
5069	// non-interface field appearing in ForceSendFields will be sent to the
5070	// server regardless of whether the field is empty or not. This may be
5071	// used to include empty fields in Patch requests.
5072	ForceSendFields []string `json:"-"`
5073
5074	// NullFields is a list of field names (e.g. "Colors") to include in API
5075	// requests with the JSON null value. By default, fields with empty
5076	// values are omitted from API requests. However, any field with an
5077	// empty value appearing in NullFields will be sent to the server as
5078	// null. It is an error if a field in this list has a non-empty value.
5079	// This may be used to include null fields in Patch requests.
5080	NullFields []string `json:"-"`
5081}
5082
5083func (s *GoogleCloudVisionV1p2beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
5084	type NoMethod GoogleCloudVisionV1p2beta1DominantColorsAnnotation
5085	raw := NoMethod(*s)
5086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5087}
5088
5089// GoogleCloudVisionV1p2beta1EntityAnnotation: Set of detected entity
5090// features.
5091type GoogleCloudVisionV1p2beta1EntityAnnotation struct {
5092	// BoundingPoly: Image region to which this entity belongs. Not
5093	// produced
5094	// for `LABEL_DETECTION` features.
5095	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5096
5097	// Confidence: **Deprecated. Use `score` instead.**
5098	// The accuracy of the entity detection in an image.
5099	// For example, for an image in which the "Eiffel Tower" entity is
5100	// detected,
5101	// this field represents the confidence that there is a tower in the
5102	// query
5103	// image. Range [0, 1].
5104	Confidence float64 `json:"confidence,omitempty"`
5105
5106	// Description: Entity textual description, expressed in its `locale`
5107	// language.
5108	Description string `json:"description,omitempty"`
5109
5110	// Locale: The language code for the locale in which the entity
5111	// textual
5112	// `description` is expressed.
5113	Locale string `json:"locale,omitempty"`
5114
5115	// Locations: The location information for the detected entity.
5116	// Multiple
5117	// `LocationInfo` elements can be present because one location
5118	// may
5119	// indicate the location of the scene in the image, and another
5120	// location
5121	// may indicate the location of the place where the image was
5122	// taken.
5123	// Location information is usually present for landmarks.
5124	Locations []*GoogleCloudVisionV1p2beta1LocationInfo `json:"locations,omitempty"`
5125
5126	// Mid: Opaque entity ID. Some IDs may be available in
5127	// [Google Knowledge Graph
5128	// Search
5129	// API](https://developers.google.com/knowledge-graph/).
5130	Mid string `json:"mid,omitempty"`
5131
5132	// Properties: Some entities may have optional user-supplied `Property`
5133	// (name/value)
5134	// fields, such a score or string that qualifies the entity.
5135	Properties []*GoogleCloudVisionV1p2beta1Property `json:"properties,omitempty"`
5136
5137	// Score: Overall score of the result. Range [0, 1].
5138	Score float64 `json:"score,omitempty"`
5139
5140	// Topicality: The relevancy of the ICA (Image Content Annotation) label
5141	// to the
5142	// image. For example, the relevancy of "tower" is likely higher to an
5143	// image
5144	// containing the detected "Eiffel Tower" than to an image containing
5145	// a
5146	// detected distant towering building, even though the confidence
5147	// that
5148	// there is a tower in each image may be the same. Range [0, 1].
5149	Topicality float64 `json:"topicality,omitempty"`
5150
5151	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5152	// unconditionally include in API requests. By default, fields with
5153	// empty values are omitted from API requests. However, any non-pointer,
5154	// non-interface field appearing in ForceSendFields will be sent to the
5155	// server regardless of whether the field is empty or not. This may be
5156	// used to include empty fields in Patch requests.
5157	ForceSendFields []string `json:"-"`
5158
5159	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5160	// in API requests with the JSON null value. By default, fields with
5161	// empty values are omitted from API requests. However, any field with
5162	// an empty value appearing in NullFields will be sent to the server as
5163	// null. It is an error if a field in this list has a non-empty value.
5164	// This may be used to include null fields in Patch requests.
5165	NullFields []string `json:"-"`
5166}
5167
5168func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
5169	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
5170	raw := NoMethod(*s)
5171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5172}
5173
5174func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
5175	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
5176	var s1 struct {
5177		Confidence gensupport.JSONFloat64 `json:"confidence"`
5178		Score      gensupport.JSONFloat64 `json:"score"`
5179		Topicality gensupport.JSONFloat64 `json:"topicality"`
5180		*NoMethod
5181	}
5182	s1.NoMethod = (*NoMethod)(s)
5183	if err := json.Unmarshal(data, &s1); err != nil {
5184		return err
5185	}
5186	s.Confidence = float64(s1.Confidence)
5187	s.Score = float64(s1.Score)
5188	s.Topicality = float64(s1.Topicality)
5189	return nil
5190}
5191
5192// GoogleCloudVisionV1p2beta1FaceAnnotation: A face annotation object
5193// contains the results of face detection.
5194type GoogleCloudVisionV1p2beta1FaceAnnotation struct {
5195	// AngerLikelihood: Anger likelihood.
5196	//
5197	// Possible values:
5198	//   "UNKNOWN" - Unknown likelihood.
5199	//   "VERY_UNLIKELY" - It is very unlikely.
5200	//   "UNLIKELY" - It is unlikely.
5201	//   "POSSIBLE" - It is possible.
5202	//   "LIKELY" - It is likely.
5203	//   "VERY_LIKELY" - It is very likely.
5204	AngerLikelihood string `json:"angerLikelihood,omitempty"`
5205
5206	// BlurredLikelihood: Blurred likelihood.
5207	//
5208	// Possible values:
5209	//   "UNKNOWN" - Unknown likelihood.
5210	//   "VERY_UNLIKELY" - It is very unlikely.
5211	//   "UNLIKELY" - It is unlikely.
5212	//   "POSSIBLE" - It is possible.
5213	//   "LIKELY" - It is likely.
5214	//   "VERY_LIKELY" - It is very likely.
5215	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
5216
5217	// BoundingPoly: The bounding polygon around the face. The coordinates
5218	// of the bounding box
5219	// are in the original image's scale.
5220	// The bounding box is computed to "frame" the face in accordance with
5221	// human
5222	// expectations. It is based on the landmarker results.
5223	// Note that one or more x and/or y coordinates may not be generated in
5224	// the
5225	// `BoundingPoly` (the polygon will be unbounded) if only a partial
5226	// face
5227	// appears in the image to be annotated.
5228	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5229
5230	// DetectionConfidence: Detection confidence. Range [0, 1].
5231	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
5232
5233	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
5234	// than the
5235	// `boundingPoly`, and encloses only the skin part of the face.
5236	// Typically, it
5237	// is used to eliminate the face from any image analysis that detects
5238	// the
5239	// "amount of skin" visible in an image. It is not based on
5240	// the
5241	// landmarker results, only on the initial face detection, hence
5242	// the <code>fd</code> (face detection) prefix.
5243	FdBoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
5244
5245	// HeadwearLikelihood: Headwear likelihood.
5246	//
5247	// Possible values:
5248	//   "UNKNOWN" - Unknown likelihood.
5249	//   "VERY_UNLIKELY" - It is very unlikely.
5250	//   "UNLIKELY" - It is unlikely.
5251	//   "POSSIBLE" - It is possible.
5252	//   "LIKELY" - It is likely.
5253	//   "VERY_LIKELY" - It is very likely.
5254	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
5255
5256	// JoyLikelihood: Joy likelihood.
5257	//
5258	// Possible values:
5259	//   "UNKNOWN" - Unknown likelihood.
5260	//   "VERY_UNLIKELY" - It is very unlikely.
5261	//   "UNLIKELY" - It is unlikely.
5262	//   "POSSIBLE" - It is possible.
5263	//   "LIKELY" - It is likely.
5264	//   "VERY_LIKELY" - It is very likely.
5265	JoyLikelihood string `json:"joyLikelihood,omitempty"`
5266
5267	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
5268	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
5269
5270	// Landmarks: Detected face landmarks.
5271	Landmarks []*GoogleCloudVisionV1p2beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
5272
5273	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
5274	// that the face is
5275	// pointing relative to the vertical plane perpendicular to the image.
5276	// Range
5277	// [-180,180].
5278	PanAngle float64 `json:"panAngle,omitempty"`
5279
5280	// RollAngle: Roll angle, which indicates the amount of
5281	// clockwise/anti-clockwise rotation
5282	// of the face relative to the image vertical about the axis
5283	// perpendicular to
5284	// the face. Range [-180,180].
5285	RollAngle float64 `json:"rollAngle,omitempty"`
5286
5287	// SorrowLikelihood: Sorrow likelihood.
5288	//
5289	// Possible values:
5290	//   "UNKNOWN" - Unknown likelihood.
5291	//   "VERY_UNLIKELY" - It is very unlikely.
5292	//   "UNLIKELY" - It is unlikely.
5293	//   "POSSIBLE" - It is possible.
5294	//   "LIKELY" - It is likely.
5295	//   "VERY_LIKELY" - It is very likely.
5296	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
5297
5298	// SurpriseLikelihood: Surprise likelihood.
5299	//
5300	// Possible values:
5301	//   "UNKNOWN" - Unknown likelihood.
5302	//   "VERY_UNLIKELY" - It is very unlikely.
5303	//   "UNLIKELY" - It is unlikely.
5304	//   "POSSIBLE" - It is possible.
5305	//   "LIKELY" - It is likely.
5306	//   "VERY_LIKELY" - It is very likely.
5307	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
5308
5309	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
5310	// that the face is
5311	// pointing relative to the image's horizontal plane. Range [-180,180].
5312	TiltAngle float64 `json:"tiltAngle,omitempty"`
5313
5314	// UnderExposedLikelihood: Under-exposed likelihood.
5315	//
5316	// Possible values:
5317	//   "UNKNOWN" - Unknown likelihood.
5318	//   "VERY_UNLIKELY" - It is very unlikely.
5319	//   "UNLIKELY" - It is unlikely.
5320	//   "POSSIBLE" - It is possible.
5321	//   "LIKELY" - It is likely.
5322	//   "VERY_LIKELY" - It is very likely.
5323	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
5324
5325	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
5326	// unconditionally include in API requests. By default, fields with
5327	// empty values are omitted from API requests. However, any non-pointer,
5328	// non-interface field appearing in ForceSendFields will be sent to the
5329	// server regardless of whether the field is empty or not. This may be
5330	// used to include empty fields in Patch requests.
5331	ForceSendFields []string `json:"-"`
5332
5333	// NullFields is a list of field names (e.g. "AngerLikelihood") to
5334	// include in API requests with the JSON null value. By default, fields
5335	// with empty values are omitted from API requests. However, any field
5336	// with an empty value appearing in NullFields will be sent to the
5337	// server as null. It is an error if a field in this list has a
5338	// non-empty value. This may be used to include null fields in Patch
5339	// requests.
5340	NullFields []string `json:"-"`
5341}
5342
5343func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
5344	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5345	raw := NoMethod(*s)
5346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5347}
5348
5349func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
5350	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5351	var s1 struct {
5352		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
5353		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
5354		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
5355		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
5356		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
5357		*NoMethod
5358	}
5359	s1.NoMethod = (*NoMethod)(s)
5360	if err := json.Unmarshal(data, &s1); err != nil {
5361		return err
5362	}
5363	s.DetectionConfidence = float64(s1.DetectionConfidence)
5364	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
5365	s.PanAngle = float64(s1.PanAngle)
5366	s.RollAngle = float64(s1.RollAngle)
5367	s.TiltAngle = float64(s1.TiltAngle)
5368	return nil
5369}
5370
5371// GoogleCloudVisionV1p2beta1FaceAnnotationLandmark: A face-specific
5372// landmark (for example, a face feature).
5373type GoogleCloudVisionV1p2beta1FaceAnnotationLandmark struct {
5374	// Position: Face landmark position.
5375	Position *GoogleCloudVisionV1p2beta1Position `json:"position,omitempty"`
5376
5377	// Type: Face landmark type.
5378	//
5379	// Possible values:
5380	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
5381	// filled.
5382	//   "LEFT_EYE" - Left eye.
5383	//   "RIGHT_EYE" - Right eye.
5384	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
5385	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
5386	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
5387	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
5388	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
5389	//   "NOSE_TIP" - Nose tip.
5390	//   "UPPER_LIP" - Upper lip.
5391	//   "LOWER_LIP" - Lower lip.
5392	//   "MOUTH_LEFT" - Mouth left.
5393	//   "MOUTH_RIGHT" - Mouth right.
5394	//   "MOUTH_CENTER" - Mouth center.
5395	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
5396	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
5397	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
5398	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
5399	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
5400	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
5401	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
5402	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
5403	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
5404	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
5405	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
5406	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
5407	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
5408	//   "LEFT_EAR_TRAGION" - Left ear tragion.
5409	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
5410	//   "LEFT_EYE_PUPIL" - Left eye pupil.
5411	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
5412	//   "FOREHEAD_GLABELLA" - Forehead glabella.
5413	//   "CHIN_GNATHION" - Chin gnathion.
5414	//   "CHIN_LEFT_GONION" - Chin left gonion.
5415	//   "CHIN_RIGHT_GONION" - Chin right gonion.
5416	Type string `json:"type,omitempty"`
5417
5418	// ForceSendFields is a list of field names (e.g. "Position") to
5419	// unconditionally include in API requests. By default, fields with
5420	// empty values are omitted from API requests. However, any non-pointer,
5421	// non-interface field appearing in ForceSendFields will be sent to the
5422	// server regardless of whether the field is empty or not. This may be
5423	// used to include empty fields in Patch requests.
5424	ForceSendFields []string `json:"-"`
5425
5426	// NullFields is a list of field names (e.g. "Position") to include in
5427	// API requests with the JSON null value. By default, fields with empty
5428	// values are omitted from API requests. However, any field with an
5429	// empty value appearing in NullFields will be sent to the server as
5430	// null. It is an error if a field in this list has a non-empty value.
5431	// This may be used to include null fields in Patch requests.
5432	NullFields []string `json:"-"`
5433}
5434
5435func (s *GoogleCloudVisionV1p2beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
5436	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotationLandmark
5437	raw := NoMethod(*s)
5438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5439}
5440
5441// GoogleCloudVisionV1p2beta1GcsDestination: The Google Cloud Storage
5442// location where the output will be written to.
5443type GoogleCloudVisionV1p2beta1GcsDestination struct {
5444	// Uri: Google Cloud Storage URI prefix where the results will be
5445	// stored. Results
5446	// will be in JSON format and preceded by its corresponding input URI
5447	// prefix.
5448	// This field can either represent a gcs file prefix or gcs directory.
5449	// In
5450	// either case, the uri should be unique because in order to get all of
5451	// the
5452	// output files, you will need to do a wildcard gcs search on the uri
5453	// prefix
5454	// you provide.
5455	//
5456	// Examples:
5457	//
5458	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
5459	// files
5460	// will be created in gs://bucket-name/here/ and the names of the
5461	// output files will begin with "filenameprefix".
5462	//
5463	// *    Directory Prefix: gs://bucket-name/some/location/   The output
5464	// files
5465	// will be created in gs://bucket-name/some/location/ and the names of
5466	// the
5467	// output files could be anything because there was no filename
5468	// prefix
5469	// specified.
5470	//
5471	// If multiple outputs, each response is still AnnotateFileResponse,
5472	// each of
5473	// which contains some subset of the full list of
5474	// AnnotateImageResponse.
5475	// Multiple outputs can happen if, for example, the output JSON is too
5476	// large
5477	// and overflows into multiple sharded files.
5478	Uri string `json:"uri,omitempty"`
5479
5480	// ForceSendFields is a list of field names (e.g. "Uri") to
5481	// unconditionally include in API requests. By default, fields with
5482	// empty values are omitted from API requests. However, any non-pointer,
5483	// non-interface field appearing in ForceSendFields will be sent to the
5484	// server regardless of whether the field is empty or not. This may be
5485	// used to include empty fields in Patch requests.
5486	ForceSendFields []string `json:"-"`
5487
5488	// NullFields is a list of field names (e.g. "Uri") to include in API
5489	// requests with the JSON null value. By default, fields with empty
5490	// values are omitted from API requests. However, any field with an
5491	// empty value appearing in NullFields will be sent to the server as
5492	// null. It is an error if a field in this list has a non-empty value.
5493	// This may be used to include null fields in Patch requests.
5494	NullFields []string `json:"-"`
5495}
5496
5497func (s *GoogleCloudVisionV1p2beta1GcsDestination) MarshalJSON() ([]byte, error) {
5498	type NoMethod GoogleCloudVisionV1p2beta1GcsDestination
5499	raw := NoMethod(*s)
5500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5501}
5502
5503// GoogleCloudVisionV1p2beta1GcsSource: The Google Cloud Storage
5504// location where the input will be read from.
5505type GoogleCloudVisionV1p2beta1GcsSource struct {
5506	// Uri: Google Cloud Storage URI for the input file. This must only be
5507	// a
5508	// Google Cloud Storage object. Wildcards are not currently supported.
5509	Uri string `json:"uri,omitempty"`
5510
5511	// ForceSendFields is a list of field names (e.g. "Uri") to
5512	// unconditionally include in API requests. By default, fields with
5513	// empty values are omitted from API requests. However, any non-pointer,
5514	// non-interface field appearing in ForceSendFields will be sent to the
5515	// server regardless of whether the field is empty or not. This may be
5516	// used to include empty fields in Patch requests.
5517	ForceSendFields []string `json:"-"`
5518
5519	// NullFields is a list of field names (e.g. "Uri") to include in API
5520	// requests with the JSON null value. By default, fields with empty
5521	// values are omitted from API requests. However, any field with an
5522	// empty value appearing in NullFields will be sent to the server as
5523	// null. It is an error if a field in this list has a non-empty value.
5524	// This may be used to include null fields in Patch requests.
5525	NullFields []string `json:"-"`
5526}
5527
5528func (s *GoogleCloudVisionV1p2beta1GcsSource) MarshalJSON() ([]byte, error) {
5529	type NoMethod GoogleCloudVisionV1p2beta1GcsSource
5530	raw := NoMethod(*s)
5531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5532}
5533
5534// GoogleCloudVisionV1p2beta1ImageAnnotationContext: If an image was
5535// produced from a file (e.g. a PDF), this message gives
5536// information about the source of that image.
5537type GoogleCloudVisionV1p2beta1ImageAnnotationContext struct {
5538	// PageNumber: If the file was a PDF or TIFF, this field gives the page
5539	// number within
5540	// the file used to produce the image.
5541	PageNumber int64 `json:"pageNumber,omitempty"`
5542
5543	// Uri: The URI of the file used to produce the image.
5544	Uri string `json:"uri,omitempty"`
5545
5546	// ForceSendFields is a list of field names (e.g. "PageNumber") to
5547	// unconditionally include in API requests. By default, fields with
5548	// empty values are omitted from API requests. However, any non-pointer,
5549	// non-interface field appearing in ForceSendFields will be sent to the
5550	// server regardless of whether the field is empty or not. This may be
5551	// used to include empty fields in Patch requests.
5552	ForceSendFields []string `json:"-"`
5553
5554	// NullFields is a list of field names (e.g. "PageNumber") to include in
5555	// API requests with the JSON null value. By default, fields with empty
5556	// values are omitted from API requests. However, any field with an
5557	// empty value appearing in NullFields will be sent to the server as
5558	// null. It is an error if a field in this list has a non-empty value.
5559	// This may be used to include null fields in Patch requests.
5560	NullFields []string `json:"-"`
5561}
5562
5563func (s *GoogleCloudVisionV1p2beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
5564	type NoMethod GoogleCloudVisionV1p2beta1ImageAnnotationContext
5565	raw := NoMethod(*s)
5566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5567}
5568
5569// GoogleCloudVisionV1p2beta1ImageProperties: Stores image properties,
5570// such as dominant colors.
5571type GoogleCloudVisionV1p2beta1ImageProperties struct {
5572	// DominantColors: If present, dominant colors completed successfully.
5573	DominantColors *GoogleCloudVisionV1p2beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
5574
5575	// ForceSendFields is a list of field names (e.g. "DominantColors") to
5576	// unconditionally include in API requests. By default, fields with
5577	// empty values are omitted from API requests. However, any non-pointer,
5578	// non-interface field appearing in ForceSendFields will be sent to the
5579	// server regardless of whether the field is empty or not. This may be
5580	// used to include empty fields in Patch requests.
5581	ForceSendFields []string `json:"-"`
5582
5583	// NullFields is a list of field names (e.g. "DominantColors") to
5584	// include in API requests with the JSON null value. By default, fields
5585	// with empty values are omitted from API requests. However, any field
5586	// with an empty value appearing in NullFields will be sent to the
5587	// server as null. It is an error if a field in this list has a
5588	// non-empty value. This may be used to include null fields in Patch
5589	// requests.
5590	NullFields []string `json:"-"`
5591}
5592
5593func (s *GoogleCloudVisionV1p2beta1ImageProperties) MarshalJSON() ([]byte, error) {
5594	type NoMethod GoogleCloudVisionV1p2beta1ImageProperties
5595	raw := NoMethod(*s)
5596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5597}
5598
5599// GoogleCloudVisionV1p2beta1InputConfig: The desired input location and
5600// metadata.
5601type GoogleCloudVisionV1p2beta1InputConfig struct {
5602	// Content: File content, represented as a stream of bytes.
5603	// Note: As with all `bytes` fields, protobuffers use a pure
5604	// binary
5605	// representation, whereas JSON representations use base64.
5606	//
5607	// Currently, this field only works for BatchAnnotateFiles requests. It
5608	// does
5609	// not work for AsyncBatchAnnotateFiles requests.
5610	Content string `json:"content,omitempty"`
5611
5612	// GcsSource: The Google Cloud Storage location to read the input from.
5613	GcsSource *GoogleCloudVisionV1p2beta1GcsSource `json:"gcsSource,omitempty"`
5614
5615	// MimeType: The type of the file. Currently only "application/pdf",
5616	// "image/tiff" and
5617	// "image/gif" are supported. Wildcards are not supported.
5618	MimeType string `json:"mimeType,omitempty"`
5619
5620	// ForceSendFields is a list of field names (e.g. "Content") to
5621	// unconditionally include in API requests. By default, fields with
5622	// empty values are omitted from API requests. However, any non-pointer,
5623	// non-interface field appearing in ForceSendFields will be sent to the
5624	// server regardless of whether the field is empty or not. This may be
5625	// used to include empty fields in Patch requests.
5626	ForceSendFields []string `json:"-"`
5627
5628	// NullFields is a list of field names (e.g. "Content") to include in
5629	// API requests with the JSON null value. By default, fields with empty
5630	// values are omitted from API requests. However, any field with an
5631	// empty value appearing in NullFields will be sent to the server as
5632	// null. It is an error if a field in this list has a non-empty value.
5633	// This may be used to include null fields in Patch requests.
5634	NullFields []string `json:"-"`
5635}
5636
5637func (s *GoogleCloudVisionV1p2beta1InputConfig) MarshalJSON() ([]byte, error) {
5638	type NoMethod GoogleCloudVisionV1p2beta1InputConfig
5639	raw := NoMethod(*s)
5640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5641}
5642
5643// GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation: Set of detected
5644// objects with bounding boxes.
5645type GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation struct {
5646	// BoundingPoly: Image region to which this object belongs. This must be
5647	// populated.
5648	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5649
5650	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5651	// For more
5652	// information,
5653	// see
5654	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5655	LanguageCode string `json:"languageCode,omitempty"`
5656
5657	// Mid: Object ID that should align with EntityAnnotation mid.
5658	Mid string `json:"mid,omitempty"`
5659
5660	// Name: Object name, expressed in its `language_code` language.
5661	Name string `json:"name,omitempty"`
5662
5663	// Score: Score of the result. Range [0, 1].
5664	Score float64 `json:"score,omitempty"`
5665
5666	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5667	// unconditionally include in API requests. By default, fields with
5668	// empty values are omitted from API requests. However, any non-pointer,
5669	// non-interface field appearing in ForceSendFields will be sent to the
5670	// server regardless of whether the field is empty or not. This may be
5671	// used to include empty fields in Patch requests.
5672	ForceSendFields []string `json:"-"`
5673
5674	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5675	// in API requests with the JSON null value. By default, fields with
5676	// empty values are omitted from API requests. However, any field with
5677	// an empty value appearing in NullFields will be sent to the server as
5678	// null. It is an error if a field in this list has a non-empty value.
5679	// This may be used to include null fields in Patch requests.
5680	NullFields []string `json:"-"`
5681}
5682
5683func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
5684	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5685	raw := NoMethod(*s)
5686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5687}
5688
5689func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
5690	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5691	var s1 struct {
5692		Score gensupport.JSONFloat64 `json:"score"`
5693		*NoMethod
5694	}
5695	s1.NoMethod = (*NoMethod)(s)
5696	if err := json.Unmarshal(data, &s1); err != nil {
5697		return err
5698	}
5699	s.Score = float64(s1.Score)
5700	return nil
5701}
5702
5703// GoogleCloudVisionV1p2beta1LocationInfo: Detected entity location
5704// information.
5705type GoogleCloudVisionV1p2beta1LocationInfo struct {
5706	// LatLng: lat/long location coordinates.
5707	LatLng *LatLng `json:"latLng,omitempty"`
5708
5709	// ForceSendFields is a list of field names (e.g. "LatLng") to
5710	// unconditionally include in API requests. By default, fields with
5711	// empty values are omitted from API requests. However, any non-pointer,
5712	// non-interface field appearing in ForceSendFields will be sent to the
5713	// server regardless of whether the field is empty or not. This may be
5714	// used to include empty fields in Patch requests.
5715	ForceSendFields []string `json:"-"`
5716
5717	// NullFields is a list of field names (e.g. "LatLng") to include in API
5718	// requests with the JSON null value. By default, fields with empty
5719	// values are omitted from API requests. However, any field with an
5720	// empty value appearing in NullFields will be sent to the server as
5721	// null. It is an error if a field in this list has a non-empty value.
5722	// This may be used to include null fields in Patch requests.
5723	NullFields []string `json:"-"`
5724}
5725
5726func (s *GoogleCloudVisionV1p2beta1LocationInfo) MarshalJSON() ([]byte, error) {
5727	type NoMethod GoogleCloudVisionV1p2beta1LocationInfo
5728	raw := NoMethod(*s)
5729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5730}
5731
5732// GoogleCloudVisionV1p2beta1NormalizedVertex: A vertex represents a 2D
5733// point in the image.
5734// NOTE: the normalized vertex coordinates are relative to the original
5735// image
5736// and range from 0 to 1.
5737type GoogleCloudVisionV1p2beta1NormalizedVertex struct {
5738	// X: X coordinate.
5739	X float64 `json:"x,omitempty"`
5740
5741	// Y: Y coordinate.
5742	Y float64 `json:"y,omitempty"`
5743
5744	// ForceSendFields is a list of field names (e.g. "X") to
5745	// unconditionally include in API requests. By default, fields with
5746	// empty values are omitted from API requests. However, any non-pointer,
5747	// non-interface field appearing in ForceSendFields will be sent to the
5748	// server regardless of whether the field is empty or not. This may be
5749	// used to include empty fields in Patch requests.
5750	ForceSendFields []string `json:"-"`
5751
5752	// NullFields is a list of field names (e.g. "X") to include in API
5753	// requests with the JSON null value. By default, fields with empty
5754	// values are omitted from API requests. However, any field with an
5755	// empty value appearing in NullFields will be sent to the server as
5756	// null. It is an error if a field in this list has a non-empty value.
5757	// This may be used to include null fields in Patch requests.
5758	NullFields []string `json:"-"`
5759}
5760
5761func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
5762	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5763	raw := NoMethod(*s)
5764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5765}
5766
5767func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
5768	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5769	var s1 struct {
5770		X gensupport.JSONFloat64 `json:"x"`
5771		Y gensupport.JSONFloat64 `json:"y"`
5772		*NoMethod
5773	}
5774	s1.NoMethod = (*NoMethod)(s)
5775	if err := json.Unmarshal(data, &s1); err != nil {
5776		return err
5777	}
5778	s.X = float64(s1.X)
5779	s.Y = float64(s1.Y)
5780	return nil
5781}
5782
5783// GoogleCloudVisionV1p2beta1OperationMetadata: Contains metadata for
5784// the BatchAnnotateImages operation.
5785type GoogleCloudVisionV1p2beta1OperationMetadata struct {
5786	// CreateTime: The time when the batch request was received.
5787	CreateTime string `json:"createTime,omitempty"`
5788
5789	// State: Current state of the batch operation.
5790	//
5791	// Possible values:
5792	//   "STATE_UNSPECIFIED" - Invalid.
5793	//   "CREATED" - Request is received.
5794	//   "RUNNING" - Request is actively being processed.
5795	//   "DONE" - The batch processing is done.
5796	//   "CANCELLED" - The batch processing was cancelled.
5797	State string `json:"state,omitempty"`
5798
5799	// UpdateTime: The time when the operation result was last updated.
5800	UpdateTime string `json:"updateTime,omitempty"`
5801
5802	// ForceSendFields is a list of field names (e.g. "CreateTime") to
5803	// unconditionally include in API requests. By default, fields with
5804	// empty values are omitted from API requests. However, any non-pointer,
5805	// non-interface field appearing in ForceSendFields will be sent to the
5806	// server regardless of whether the field is empty or not. This may be
5807	// used to include empty fields in Patch requests.
5808	ForceSendFields []string `json:"-"`
5809
5810	// NullFields is a list of field names (e.g. "CreateTime") to include in
5811	// API requests with the JSON null value. By default, fields with empty
5812	// values are omitted from API requests. However, any field with an
5813	// empty value appearing in NullFields will be sent to the server as
5814	// null. It is an error if a field in this list has a non-empty value.
5815	// This may be used to include null fields in Patch requests.
5816	NullFields []string `json:"-"`
5817}
5818
5819func (s *GoogleCloudVisionV1p2beta1OperationMetadata) MarshalJSON() ([]byte, error) {
5820	type NoMethod GoogleCloudVisionV1p2beta1OperationMetadata
5821	raw := NoMethod(*s)
5822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5823}
5824
5825// GoogleCloudVisionV1p2beta1OutputConfig: The desired output location
5826// and metadata.
5827type GoogleCloudVisionV1p2beta1OutputConfig struct {
5828	// BatchSize: The max number of response protos to put into each output
5829	// JSON file on
5830	// Google Cloud Storage.
5831	// The valid range is [1, 100]. If not specified, the default value is
5832	// 20.
5833	//
5834	// For example, for one pdf file with 100 pages, 100 response protos
5835	// will
5836	// be generated. If `batch_size` = 20, then 5 json files each
5837	// containing 20 response protos will be written under the
5838	// prefix
5839	// `gcs_destination`.`uri`.
5840	//
5841	// Currently, batch_size only applies to GcsDestination, with potential
5842	// future
5843	// support for other output configurations.
5844	BatchSize int64 `json:"batchSize,omitempty"`
5845
5846	// GcsDestination: The Google Cloud Storage location to write the
5847	// output(s) to.
5848	GcsDestination *GoogleCloudVisionV1p2beta1GcsDestination `json:"gcsDestination,omitempty"`
5849
5850	// ForceSendFields is a list of field names (e.g. "BatchSize") to
5851	// unconditionally include in API requests. By default, fields with
5852	// empty values are omitted from API requests. However, any non-pointer,
5853	// non-interface field appearing in ForceSendFields will be sent to the
5854	// server regardless of whether the field is empty or not. This may be
5855	// used to include empty fields in Patch requests.
5856	ForceSendFields []string `json:"-"`
5857
5858	// NullFields is a list of field names (e.g. "BatchSize") to include in
5859	// API requests with the JSON null value. By default, fields with empty
5860	// values are omitted from API requests. However, any field with an
5861	// empty value appearing in NullFields will be sent to the server as
5862	// null. It is an error if a field in this list has a non-empty value.
5863	// This may be used to include null fields in Patch requests.
5864	NullFields []string `json:"-"`
5865}
5866
5867func (s *GoogleCloudVisionV1p2beta1OutputConfig) MarshalJSON() ([]byte, error) {
5868	type NoMethod GoogleCloudVisionV1p2beta1OutputConfig
5869	raw := NoMethod(*s)
5870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5871}
5872
5873// GoogleCloudVisionV1p2beta1Page: Detected page from OCR.
5874type GoogleCloudVisionV1p2beta1Page struct {
5875	// Blocks: List of blocks of text, images etc on this page.
5876	Blocks []*GoogleCloudVisionV1p2beta1Block `json:"blocks,omitempty"`
5877
5878	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
5879	Confidence float64 `json:"confidence,omitempty"`
5880
5881	// Height: Page height. For PDFs the unit is points. For images
5882	// (including
5883	// TIFFs) the unit is pixels.
5884	Height int64 `json:"height,omitempty"`
5885
5886	// Property: Additional information detected on the page.
5887	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5888
5889	// Width: Page width. For PDFs the unit is points. For images
5890	// (including
5891	// TIFFs) the unit is pixels.
5892	Width int64 `json:"width,omitempty"`
5893
5894	// ForceSendFields is a list of field names (e.g. "Blocks") to
5895	// unconditionally include in API requests. By default, fields with
5896	// empty values are omitted from API requests. However, any non-pointer,
5897	// non-interface field appearing in ForceSendFields will be sent to the
5898	// server regardless of whether the field is empty or not. This may be
5899	// used to include empty fields in Patch requests.
5900	ForceSendFields []string `json:"-"`
5901
5902	// NullFields is a list of field names (e.g. "Blocks") to include in API
5903	// requests with the JSON null value. By default, fields with empty
5904	// values are omitted from API requests. However, any field with an
5905	// empty value appearing in NullFields will be sent to the server as
5906	// null. It is an error if a field in this list has a non-empty value.
5907	// This may be used to include null fields in Patch requests.
5908	NullFields []string `json:"-"`
5909}
5910
5911func (s *GoogleCloudVisionV1p2beta1Page) MarshalJSON() ([]byte, error) {
5912	type NoMethod GoogleCloudVisionV1p2beta1Page
5913	raw := NoMethod(*s)
5914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5915}
5916
5917func (s *GoogleCloudVisionV1p2beta1Page) UnmarshalJSON(data []byte) error {
5918	type NoMethod GoogleCloudVisionV1p2beta1Page
5919	var s1 struct {
5920		Confidence gensupport.JSONFloat64 `json:"confidence"`
5921		*NoMethod
5922	}
5923	s1.NoMethod = (*NoMethod)(s)
5924	if err := json.Unmarshal(data, &s1); err != nil {
5925		return err
5926	}
5927	s.Confidence = float64(s1.Confidence)
5928	return nil
5929}
5930
5931// GoogleCloudVisionV1p2beta1Paragraph: Structural unit of text
5932// representing a number of words in certain order.
5933type GoogleCloudVisionV1p2beta1Paragraph struct {
5934	// BoundingBox: The bounding box for the paragraph.
5935	// The vertices are in the order of top-left, top-right,
5936	// bottom-right,
5937	// bottom-left. When a rotation of the bounding box is detected the
5938	// rotation
5939	// is represented as around the top-left corner as defined when the text
5940	// is
5941	// read in the 'natural' orientation.
5942	// For example:
5943	//   * when the text is horizontal it might look like:
5944	//      0----1
5945	//      |    |
5946	//      3----2
5947	//   * when it's rotated 180 degrees around the top-left corner it
5948	// becomes:
5949	//      2----3
5950	//      |    |
5951	//      1----0
5952	//   and the vertex order will still be (0, 1, 2, 3).
5953	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5954
5955	// Confidence: Confidence of the OCR results for the paragraph. Range
5956	// [0, 1].
5957	Confidence float64 `json:"confidence,omitempty"`
5958
5959	// Property: Additional information detected for the paragraph.
5960	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5961
5962	// Words: List of all words in this paragraph.
5963	Words []*GoogleCloudVisionV1p2beta1Word `json:"words,omitempty"`
5964
5965	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5966	// unconditionally include in API requests. By default, fields with
5967	// empty values are omitted from API requests. However, any non-pointer,
5968	// non-interface field appearing in ForceSendFields will be sent to the
5969	// server regardless of whether the field is empty or not. This may be
5970	// used to include empty fields in Patch requests.
5971	ForceSendFields []string `json:"-"`
5972
5973	// NullFields is a list of field names (e.g. "BoundingBox") to include
5974	// in API requests with the JSON null value. By default, fields with
5975	// empty values are omitted from API requests. However, any field with
5976	// an empty value appearing in NullFields will be sent to the server as
5977	// null. It is an error if a field in this list has a non-empty value.
5978	// This may be used to include null fields in Patch requests.
5979	NullFields []string `json:"-"`
5980}
5981
5982func (s *GoogleCloudVisionV1p2beta1Paragraph) MarshalJSON() ([]byte, error) {
5983	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5984	raw := NoMethod(*s)
5985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5986}
5987
5988func (s *GoogleCloudVisionV1p2beta1Paragraph) UnmarshalJSON(data []byte) error {
5989	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5990	var s1 struct {
5991		Confidence gensupport.JSONFloat64 `json:"confidence"`
5992		*NoMethod
5993	}
5994	s1.NoMethod = (*NoMethod)(s)
5995	if err := json.Unmarshal(data, &s1); err != nil {
5996		return err
5997	}
5998	s.Confidence = float64(s1.Confidence)
5999	return nil
6000}
6001
6002// GoogleCloudVisionV1p2beta1Position: A 3D position in the image, used
6003// primarily for Face detection landmarks.
6004// A valid Position must have both x and y coordinates.
6005// The position coordinates are in the same scale as the original image.
6006type GoogleCloudVisionV1p2beta1Position struct {
6007	// X: X coordinate.
6008	X float64 `json:"x,omitempty"`
6009
6010	// Y: Y coordinate.
6011	Y float64 `json:"y,omitempty"`
6012
6013	// Z: Z coordinate (or depth).
6014	Z float64 `json:"z,omitempty"`
6015
6016	// ForceSendFields is a list of field names (e.g. "X") to
6017	// unconditionally include in API requests. By default, fields with
6018	// empty values are omitted from API requests. However, any non-pointer,
6019	// non-interface field appearing in ForceSendFields will be sent to the
6020	// server regardless of whether the field is empty or not. This may be
6021	// used to include empty fields in Patch requests.
6022	ForceSendFields []string `json:"-"`
6023
6024	// NullFields is a list of field names (e.g. "X") to include in API
6025	// requests with the JSON null value. By default, fields with empty
6026	// values are omitted from API requests. However, any field with an
6027	// empty value appearing in NullFields will be sent to the server as
6028	// null. It is an error if a field in this list has a non-empty value.
6029	// This may be used to include null fields in Patch requests.
6030	NullFields []string `json:"-"`
6031}
6032
6033func (s *GoogleCloudVisionV1p2beta1Position) MarshalJSON() ([]byte, error) {
6034	type NoMethod GoogleCloudVisionV1p2beta1Position
6035	raw := NoMethod(*s)
6036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6037}
6038
6039func (s *GoogleCloudVisionV1p2beta1Position) UnmarshalJSON(data []byte) error {
6040	type NoMethod GoogleCloudVisionV1p2beta1Position
6041	var s1 struct {
6042		X gensupport.JSONFloat64 `json:"x"`
6043		Y gensupport.JSONFloat64 `json:"y"`
6044		Z gensupport.JSONFloat64 `json:"z"`
6045		*NoMethod
6046	}
6047	s1.NoMethod = (*NoMethod)(s)
6048	if err := json.Unmarshal(data, &s1); err != nil {
6049		return err
6050	}
6051	s.X = float64(s1.X)
6052	s.Y = float64(s1.Y)
6053	s.Z = float64(s1.Z)
6054	return nil
6055}
6056
6057// GoogleCloudVisionV1p2beta1Product: A Product contains
6058// ReferenceImages.
6059type GoogleCloudVisionV1p2beta1Product struct {
6060	// Description: User-provided metadata to be stored with this product.
6061	// Must be at most 4096
6062	// characters long.
6063	Description string `json:"description,omitempty"`
6064
6065	// DisplayName: The user-provided name for this Product. Must not be
6066	// empty. Must be at most
6067	// 4096 characters long.
6068	DisplayName string `json:"displayName,omitempty"`
6069
6070	// Name: The resource name of the product.
6071	//
6072	// Format
6073	// is:
6074	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
6075	//
6076	// This field is ignored when creating a product.
6077	Name string `json:"name,omitempty"`
6078
6079	// ProductCategory: Immutable. The category for the product identified
6080	// by the reference image. This should
6081	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
6082	// categories
6083	// "homegoods", "apparel", and "toys" are still supported, but these
6084	// should
6085	// not be used for new products.
6086	ProductCategory string `json:"productCategory,omitempty"`
6087
6088	// ProductLabels: Key-value pairs that can be attached to a product. At
6089	// query time,
6090	// constraints can be specified based on the product_labels.
6091	//
6092	// Note that integer values can be provided as strings, e.g. "1199".
6093	// Only
6094	// strings with integer values can match a range-based restriction which
6095	// is
6096	// to be supported soon.
6097	//
6098	// Multiple values can be assigned to the same key. One product may have
6099	// up to
6100	// 500 product_labels.
6101	//
6102	// Notice that the total number of distinct product_labels over all
6103	// products
6104	// in one ProductSet cannot exceed 1M, otherwise the product search
6105	// pipeline
6106	// will refuse to work for that ProductSet.
6107	ProductLabels []*GoogleCloudVisionV1p2beta1ProductKeyValue `json:"productLabels,omitempty"`
6108
6109	// ForceSendFields is a list of field names (e.g. "Description") to
6110	// unconditionally include in API requests. By default, fields with
6111	// empty values are omitted from API requests. However, any non-pointer,
6112	// non-interface field appearing in ForceSendFields will be sent to the
6113	// server regardless of whether the field is empty or not. This may be
6114	// used to include empty fields in Patch requests.
6115	ForceSendFields []string `json:"-"`
6116
6117	// NullFields is a list of field names (e.g. "Description") to include
6118	// in API requests with the JSON null value. By default, fields with
6119	// empty values are omitted from API requests. However, any field with
6120	// an empty value appearing in NullFields will be sent to the server as
6121	// null. It is an error if a field in this list has a non-empty value.
6122	// This may be used to include null fields in Patch requests.
6123	NullFields []string `json:"-"`
6124}
6125
6126func (s *GoogleCloudVisionV1p2beta1Product) MarshalJSON() ([]byte, error) {
6127	type NoMethod GoogleCloudVisionV1p2beta1Product
6128	raw := NoMethod(*s)
6129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6130}
6131
6132// GoogleCloudVisionV1p2beta1ProductKeyValue: A product label
6133// represented as a key-value pair.
6134type GoogleCloudVisionV1p2beta1ProductKeyValue struct {
6135	// Key: The key of the label attached to the product. Cannot be empty
6136	// and cannot
6137	// exceed 128 bytes.
6138	Key string `json:"key,omitempty"`
6139
6140	// Value: The value of the label attached to the product. Cannot be
6141	// empty and
6142	// cannot exceed 128 bytes.
6143	Value string `json:"value,omitempty"`
6144
6145	// ForceSendFields is a list of field names (e.g. "Key") to
6146	// unconditionally include in API requests. By default, fields with
6147	// empty values are omitted from API requests. However, any non-pointer,
6148	// non-interface field appearing in ForceSendFields will be sent to the
6149	// server regardless of whether the field is empty or not. This may be
6150	// used to include empty fields in Patch requests.
6151	ForceSendFields []string `json:"-"`
6152
6153	// NullFields is a list of field names (e.g. "Key") to include in API
6154	// requests with the JSON null value. By default, fields with empty
6155	// values are omitted from API requests. However, any field with an
6156	// empty value appearing in NullFields will be sent to the server as
6157	// null. It is an error if a field in this list has a non-empty value.
6158	// This may be used to include null fields in Patch requests.
6159	NullFields []string `json:"-"`
6160}
6161
6162func (s *GoogleCloudVisionV1p2beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
6163	type NoMethod GoogleCloudVisionV1p2beta1ProductKeyValue
6164	raw := NoMethod(*s)
6165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6166}
6167
6168// GoogleCloudVisionV1p2beta1ProductSearchResults: Results for a product
6169// search request.
6170type GoogleCloudVisionV1p2beta1ProductSearchResults struct {
6171	// IndexTime: Timestamp of the index which provided these results.
6172	// Products added to the
6173	// product set and products removed from the product set after this time
6174	// are
6175	// not reflected in the current results.
6176	IndexTime string `json:"indexTime,omitempty"`
6177
6178	// ProductGroupedResults: List of results grouped by products detected
6179	// in the query image. Each entry
6180	// corresponds to one bounding polygon in the query image, and contains
6181	// the
6182	// matching products specific to that region. There may be duplicate
6183	// product
6184	// matches in the union of all the per-product results.
6185	ProductGroupedResults []*GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
6186
6187	// Results: List of results, one for each product match.
6188	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6189
6190	// ForceSendFields is a list of field names (e.g. "IndexTime") to
6191	// unconditionally include in API requests. By default, fields with
6192	// empty values are omitted from API requests. However, any non-pointer,
6193	// non-interface field appearing in ForceSendFields will be sent to the
6194	// server regardless of whether the field is empty or not. This may be
6195	// used to include empty fields in Patch requests.
6196	ForceSendFields []string `json:"-"`
6197
6198	// NullFields is a list of field names (e.g. "IndexTime") to include in
6199	// API requests with the JSON null value. By default, fields with empty
6200	// values are omitted from API requests. However, any field with an
6201	// empty value appearing in NullFields will be sent to the server as
6202	// null. It is an error if a field in this list has a non-empty value.
6203	// This may be used to include null fields in Patch requests.
6204	NullFields []string `json:"-"`
6205}
6206
6207func (s *GoogleCloudVisionV1p2beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
6208	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResults
6209	raw := NoMethod(*s)
6210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6211}
6212
6213// GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult:
6214// Information about the products similar to a single product in a
6215// query
6216// image.
6217type GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult struct {
6218	// BoundingPoly: The bounding polygon around the product detected in the
6219	// query image.
6220	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
6221
6222	// ObjectAnnotations: List of generic predictions for the object in the
6223	// bounding box.
6224	ObjectAnnotations []*GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
6225
6226	// Results: List of results, one for each product match.
6227	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6228
6229	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
6230	// unconditionally include in API requests. By default, fields with
6231	// empty values are omitted from API requests. However, any non-pointer,
6232	// non-interface field appearing in ForceSendFields will be sent to the
6233	// server regardless of whether the field is empty or not. This may be
6234	// used to include empty fields in Patch requests.
6235	ForceSendFields []string `json:"-"`
6236
6237	// NullFields is a list of field names (e.g. "BoundingPoly") to include
6238	// in API requests with the JSON null value. By default, fields with
6239	// empty values are omitted from API requests. However, any field with
6240	// an empty value appearing in NullFields will be sent to the server as
6241	// null. It is an error if a field in this list has a non-empty value.
6242	// This may be used to include null fields in Patch requests.
6243	NullFields []string `json:"-"`
6244}
6245
6246func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
6247	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult
6248	raw := NoMethod(*s)
6249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6250}
6251
6252// GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation:
6253// Prediction for what the object in the bounding box is.
6254type GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation struct {
6255	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6256	// For more
6257	// information,
6258	// see
6259	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6260	LanguageCode string `json:"languageCode,omitempty"`
6261
6262	// Mid: Object ID that should align with EntityAnnotation mid.
6263	Mid string `json:"mid,omitempty"`
6264
6265	// Name: Object name, expressed in its `language_code` language.
6266	Name string `json:"name,omitempty"`
6267
6268	// Score: Score of the result. Range [0, 1].
6269	Score float64 `json:"score,omitempty"`
6270
6271	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
6272	// unconditionally include in API requests. By default, fields with
6273	// empty values are omitted from API requests. However, any non-pointer,
6274	// non-interface field appearing in ForceSendFields will be sent to the
6275	// server regardless of whether the field is empty or not. This may be
6276	// used to include empty fields in Patch requests.
6277	ForceSendFields []string `json:"-"`
6278
6279	// NullFields is a list of field names (e.g. "LanguageCode") to include
6280	// in API requests with the JSON null value. By default, fields with
6281	// empty values are omitted from API requests. However, any field with
6282	// an empty value appearing in NullFields will be sent to the server as
6283	// null. It is an error if a field in this list has a non-empty value.
6284	// This may be used to include null fields in Patch requests.
6285	NullFields []string `json:"-"`
6286}
6287
6288func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
6289	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
6290	raw := NoMethod(*s)
6291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6292}
6293
6294func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
6295	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
6296	var s1 struct {
6297		Score gensupport.JSONFloat64 `json:"score"`
6298		*NoMethod
6299	}
6300	s1.NoMethod = (*NoMethod)(s)
6301	if err := json.Unmarshal(data, &s1); err != nil {
6302		return err
6303	}
6304	s.Score = float64(s1.Score)
6305	return nil
6306}
6307
6308// GoogleCloudVisionV1p2beta1ProductSearchResultsResult: Information
6309// about a product.
6310type GoogleCloudVisionV1p2beta1ProductSearchResultsResult struct {
6311	// Image: The resource name of the image from the product that is the
6312	// closest match
6313	// to the query.
6314	Image string `json:"image,omitempty"`
6315
6316	// Product: The Product.
6317	Product *GoogleCloudVisionV1p2beta1Product `json:"product,omitempty"`
6318
6319	// Score: A confidence level on the match, ranging from 0 (no
6320	// confidence) to
6321	// 1 (full confidence).
6322	Score float64 `json:"score,omitempty"`
6323
6324	// ForceSendFields is a list of field names (e.g. "Image") to
6325	// unconditionally include in API requests. By default, fields with
6326	// empty values are omitted from API requests. However, any non-pointer,
6327	// non-interface field appearing in ForceSendFields will be sent to the
6328	// server regardless of whether the field is empty or not. This may be
6329	// used to include empty fields in Patch requests.
6330	ForceSendFields []string `json:"-"`
6331
6332	// NullFields is a list of field names (e.g. "Image") to include in API
6333	// requests with the JSON null value. By default, fields with empty
6334	// values are omitted from API requests. However, any field with an
6335	// empty value appearing in NullFields will be sent to the server as
6336	// null. It is an error if a field in this list has a non-empty value.
6337	// This may be used to include null fields in Patch requests.
6338	NullFields []string `json:"-"`
6339}
6340
6341func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
6342	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6343	raw := NoMethod(*s)
6344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6345}
6346
6347func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
6348	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6349	var s1 struct {
6350		Score gensupport.JSONFloat64 `json:"score"`
6351		*NoMethod
6352	}
6353	s1.NoMethod = (*NoMethod)(s)
6354	if err := json.Unmarshal(data, &s1); err != nil {
6355		return err
6356	}
6357	s.Score = float64(s1.Score)
6358	return nil
6359}
6360
6361// GoogleCloudVisionV1p2beta1Property: A `Property` consists of a
6362// user-supplied name/value pair.
6363type GoogleCloudVisionV1p2beta1Property struct {
6364	// Name: Name of the property.
6365	Name string `json:"name,omitempty"`
6366
6367	// Uint64Value: Value of numeric properties.
6368	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
6369
6370	// Value: Value of the property.
6371	Value string `json:"value,omitempty"`
6372
6373	// ForceSendFields is a list of field names (e.g. "Name") to
6374	// unconditionally include in API requests. By default, fields with
6375	// empty values are omitted from API requests. However, any non-pointer,
6376	// non-interface field appearing in ForceSendFields will be sent to the
6377	// server regardless of whether the field is empty or not. This may be
6378	// used to include empty fields in Patch requests.
6379	ForceSendFields []string `json:"-"`
6380
6381	// NullFields is a list of field names (e.g. "Name") to include in API
6382	// requests with the JSON null value. By default, fields with empty
6383	// values are omitted from API requests. However, any field with an
6384	// empty value appearing in NullFields will be sent to the server as
6385	// null. It is an error if a field in this list has a non-empty value.
6386	// This may be used to include null fields in Patch requests.
6387	NullFields []string `json:"-"`
6388}
6389
6390func (s *GoogleCloudVisionV1p2beta1Property) MarshalJSON() ([]byte, error) {
6391	type NoMethod GoogleCloudVisionV1p2beta1Property
6392	raw := NoMethod(*s)
6393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6394}
6395
6396// GoogleCloudVisionV1p2beta1SafeSearchAnnotation: Set of features
6397// pertaining to the image, computed by computer vision
6398// methods over safe-search verticals (for example, adult, spoof,
6399// medical,
6400// violence).
6401type GoogleCloudVisionV1p2beta1SafeSearchAnnotation struct {
6402	// Adult: Represents the adult content likelihood for the image. Adult
6403	// content may
6404	// contain elements such as nudity, pornographic images or cartoons,
6405	// or
6406	// sexual activities.
6407	//
6408	// Possible values:
6409	//   "UNKNOWN" - Unknown likelihood.
6410	//   "VERY_UNLIKELY" - It is very unlikely.
6411	//   "UNLIKELY" - It is unlikely.
6412	//   "POSSIBLE" - It is possible.
6413	//   "LIKELY" - It is likely.
6414	//   "VERY_LIKELY" - It is very likely.
6415	Adult string `json:"adult,omitempty"`
6416
6417	// Medical: Likelihood that this is a medical image.
6418	//
6419	// Possible values:
6420	//   "UNKNOWN" - Unknown likelihood.
6421	//   "VERY_UNLIKELY" - It is very unlikely.
6422	//   "UNLIKELY" - It is unlikely.
6423	//   "POSSIBLE" - It is possible.
6424	//   "LIKELY" - It is likely.
6425	//   "VERY_LIKELY" - It is very likely.
6426	Medical string `json:"medical,omitempty"`
6427
6428	// Racy: Likelihood that the request image contains racy content. Racy
6429	// content may
6430	// include (but is not limited to) skimpy or sheer clothing,
6431	// strategically
6432	// covered nudity, lewd or provocative poses, or close-ups of
6433	// sensitive
6434	// body areas.
6435	//
6436	// Possible values:
6437	//   "UNKNOWN" - Unknown likelihood.
6438	//   "VERY_UNLIKELY" - It is very unlikely.
6439	//   "UNLIKELY" - It is unlikely.
6440	//   "POSSIBLE" - It is possible.
6441	//   "LIKELY" - It is likely.
6442	//   "VERY_LIKELY" - It is very likely.
6443	Racy string `json:"racy,omitempty"`
6444
6445	// Spoof: Spoof likelihood. The likelihood that an modification
6446	// was made to the image's canonical version to make it appear
6447	// funny or offensive.
6448	//
6449	// Possible values:
6450	//   "UNKNOWN" - Unknown likelihood.
6451	//   "VERY_UNLIKELY" - It is very unlikely.
6452	//   "UNLIKELY" - It is unlikely.
6453	//   "POSSIBLE" - It is possible.
6454	//   "LIKELY" - It is likely.
6455	//   "VERY_LIKELY" - It is very likely.
6456	Spoof string `json:"spoof,omitempty"`
6457
6458	// Violence: Likelihood that this image contains violent content.
6459	//
6460	// Possible values:
6461	//   "UNKNOWN" - Unknown likelihood.
6462	//   "VERY_UNLIKELY" - It is very unlikely.
6463	//   "UNLIKELY" - It is unlikely.
6464	//   "POSSIBLE" - It is possible.
6465	//   "LIKELY" - It is likely.
6466	//   "VERY_LIKELY" - It is very likely.
6467	Violence string `json:"violence,omitempty"`
6468
6469	// ForceSendFields is a list of field names (e.g. "Adult") to
6470	// unconditionally include in API requests. By default, fields with
6471	// empty values are omitted from API requests. However, any non-pointer,
6472	// non-interface field appearing in ForceSendFields will be sent to the
6473	// server regardless of whether the field is empty or not. This may be
6474	// used to include empty fields in Patch requests.
6475	ForceSendFields []string `json:"-"`
6476
6477	// NullFields is a list of field names (e.g. "Adult") to include in API
6478	// requests with the JSON null value. By default, fields with empty
6479	// values are omitted from API requests. However, any field with an
6480	// empty value appearing in NullFields will be sent to the server as
6481	// null. It is an error if a field in this list has a non-empty value.
6482	// This may be used to include null fields in Patch requests.
6483	NullFields []string `json:"-"`
6484}
6485
6486func (s *GoogleCloudVisionV1p2beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
6487	type NoMethod GoogleCloudVisionV1p2beta1SafeSearchAnnotation
6488	raw := NoMethod(*s)
6489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6490}
6491
6492// GoogleCloudVisionV1p2beta1Symbol: A single symbol representation.
6493type GoogleCloudVisionV1p2beta1Symbol struct {
6494	// BoundingBox: The bounding box for the symbol.
6495	// The vertices are in the order of top-left, top-right,
6496	// bottom-right,
6497	// bottom-left. When a rotation of the bounding box is detected the
6498	// rotation
6499	// is represented as around the top-left corner as defined when the text
6500	// is
6501	// read in the 'natural' orientation.
6502	// For example:
6503	//   * when the text is horizontal it might look like:
6504	//      0----1
6505	//      |    |
6506	//      3----2
6507	//   * when it's rotated 180 degrees around the top-left corner it
6508	// becomes:
6509	//      2----3
6510	//      |    |
6511	//      1----0
6512	//   and the vertex order will still be (0, 1, 2, 3).
6513	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6514
6515	// Confidence: Confidence of the OCR results for the symbol. Range [0,
6516	// 1].
6517	Confidence float64 `json:"confidence,omitempty"`
6518
6519	// Property: Additional information detected for the symbol.
6520	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6521
6522	// Text: The actual UTF-8 representation of the symbol.
6523	Text string `json:"text,omitempty"`
6524
6525	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6526	// unconditionally include in API requests. By default, fields with
6527	// empty values are omitted from API requests. However, any non-pointer,
6528	// non-interface field appearing in ForceSendFields will be sent to the
6529	// server regardless of whether the field is empty or not. This may be
6530	// used to include empty fields in Patch requests.
6531	ForceSendFields []string `json:"-"`
6532
6533	// NullFields is a list of field names (e.g. "BoundingBox") to include
6534	// in API requests with the JSON null value. By default, fields with
6535	// empty values are omitted from API requests. However, any field with
6536	// an empty value appearing in NullFields will be sent to the server as
6537	// null. It is an error if a field in this list has a non-empty value.
6538	// This may be used to include null fields in Patch requests.
6539	NullFields []string `json:"-"`
6540}
6541
6542func (s *GoogleCloudVisionV1p2beta1Symbol) MarshalJSON() ([]byte, error) {
6543	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6544	raw := NoMethod(*s)
6545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6546}
6547
6548func (s *GoogleCloudVisionV1p2beta1Symbol) UnmarshalJSON(data []byte) error {
6549	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6550	var s1 struct {
6551		Confidence gensupport.JSONFloat64 `json:"confidence"`
6552		*NoMethod
6553	}
6554	s1.NoMethod = (*NoMethod)(s)
6555	if err := json.Unmarshal(data, &s1); err != nil {
6556		return err
6557	}
6558	s.Confidence = float64(s1.Confidence)
6559	return nil
6560}
6561
6562// GoogleCloudVisionV1p2beta1TextAnnotation: TextAnnotation contains a
6563// structured representation of OCR extracted text.
6564// The hierarchy of an OCR extracted text structure is like this:
6565//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
6566// Symbol
6567// Each structural component, starting from Page, may further have their
6568// own
6569// properties. Properties describe detected languages, breaks etc..
6570// Please refer
6571// to the TextAnnotation.TextProperty message definition below for
6572// more
6573// detail.
6574type GoogleCloudVisionV1p2beta1TextAnnotation struct {
6575	// Pages: List of pages detected by OCR.
6576	Pages []*GoogleCloudVisionV1p2beta1Page `json:"pages,omitempty"`
6577
6578	// Text: UTF-8 text detected on the pages.
6579	Text string `json:"text,omitempty"`
6580
6581	// ForceSendFields is a list of field names (e.g. "Pages") to
6582	// unconditionally include in API requests. By default, fields with
6583	// empty values are omitted from API requests. However, any non-pointer,
6584	// non-interface field appearing in ForceSendFields will be sent to the
6585	// server regardless of whether the field is empty or not. This may be
6586	// used to include empty fields in Patch requests.
6587	ForceSendFields []string `json:"-"`
6588
6589	// NullFields is a list of field names (e.g. "Pages") to include in API
6590	// requests with the JSON null value. By default, fields with empty
6591	// values are omitted from API requests. However, any field with an
6592	// empty value appearing in NullFields will be sent to the server as
6593	// null. It is an error if a field in this list has a non-empty value.
6594	// This may be used to include null fields in Patch requests.
6595	NullFields []string `json:"-"`
6596}
6597
6598func (s *GoogleCloudVisionV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
6599	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotation
6600	raw := NoMethod(*s)
6601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6602}
6603
6604// GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak: Detected start
6605// or end of a structural component.
6606type GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak struct {
6607	// IsPrefix: True if break prepends the element.
6608	IsPrefix bool `json:"isPrefix,omitempty"`
6609
6610	// Type: Detected break type.
6611	//
6612	// Possible values:
6613	//   "UNKNOWN" - Unknown break label type.
6614	//   "SPACE" - Regular space.
6615	//   "SURE_SPACE" - Sure space (very wide).
6616	//   "EOL_SURE_SPACE" - Line-wrapping break.
6617	//   "HYPHEN" - End-line hyphen that is not present in text; does not
6618	// co-occur with
6619	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
6620	//   "LINE_BREAK" - Line break that ends a paragraph.
6621	Type string `json:"type,omitempty"`
6622
6623	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
6624	// unconditionally include in API requests. By default, fields with
6625	// empty values are omitted from API requests. However, any non-pointer,
6626	// non-interface field appearing in ForceSendFields will be sent to the
6627	// server regardless of whether the field is empty or not. This may be
6628	// used to include empty fields in Patch requests.
6629	ForceSendFields []string `json:"-"`
6630
6631	// NullFields is a list of field names (e.g. "IsPrefix") to include in
6632	// API requests with the JSON null value. By default, fields with empty
6633	// values are omitted from API requests. However, any field with an
6634	// empty value appearing in NullFields will be sent to the server as
6635	// null. It is an error if a field in this list has a non-empty value.
6636	// This may be used to include null fields in Patch requests.
6637	NullFields []string `json:"-"`
6638}
6639
6640func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
6641	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak
6642	raw := NoMethod(*s)
6643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6644}
6645
6646// GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage: Detected
6647// language for a structural component.
6648type GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage struct {
6649	// Confidence: Confidence of detected language. Range [0, 1].
6650	Confidence float64 `json:"confidence,omitempty"`
6651
6652	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6653	// For more
6654	// information,
6655	// see
6656	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6657	LanguageCode string `json:"languageCode,omitempty"`
6658
6659	// ForceSendFields is a list of field names (e.g. "Confidence") to
6660	// unconditionally include in API requests. By default, fields with
6661	// empty values are omitted from API requests. However, any non-pointer,
6662	// non-interface field appearing in ForceSendFields will be sent to the
6663	// server regardless of whether the field is empty or not. This may be
6664	// used to include empty fields in Patch requests.
6665	ForceSendFields []string `json:"-"`
6666
6667	// NullFields is a list of field names (e.g. "Confidence") to include in
6668	// API requests with the JSON null value. By default, fields with empty
6669	// values are omitted from API requests. However, any field with an
6670	// empty value appearing in NullFields will be sent to the server as
6671	// null. It is an error if a field in this list has a non-empty value.
6672	// This may be used to include null fields in Patch requests.
6673	NullFields []string `json:"-"`
6674}
6675
6676func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
6677	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6678	raw := NoMethod(*s)
6679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6680}
6681
6682func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
6683	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6684	var s1 struct {
6685		Confidence gensupport.JSONFloat64 `json:"confidence"`
6686		*NoMethod
6687	}
6688	s1.NoMethod = (*NoMethod)(s)
6689	if err := json.Unmarshal(data, &s1); err != nil {
6690		return err
6691	}
6692	s.Confidence = float64(s1.Confidence)
6693	return nil
6694}
6695
6696// GoogleCloudVisionV1p2beta1TextAnnotationTextProperty: Additional
6697// information detected on the structural component.
6698type GoogleCloudVisionV1p2beta1TextAnnotationTextProperty struct {
6699	// DetectedBreak: Detected start or end of a text segment.
6700	DetectedBreak *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
6701
6702	// DetectedLanguages: A list of detected languages together with
6703	// confidence.
6704	DetectedLanguages []*GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
6705
6706	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
6707	// unconditionally include in API requests. By default, fields with
6708	// empty values are omitted from API requests. However, any non-pointer,
6709	// non-interface field appearing in ForceSendFields will be sent to the
6710	// server regardless of whether the field is empty or not. This may be
6711	// used to include empty fields in Patch requests.
6712	ForceSendFields []string `json:"-"`
6713
6714	// NullFields is a list of field names (e.g. "DetectedBreak") to include
6715	// in API requests with the JSON null value. By default, fields with
6716	// empty values are omitted from API requests. However, any field with
6717	// an empty value appearing in NullFields will be sent to the server as
6718	// null. It is an error if a field in this list has a non-empty value.
6719	// This may be used to include null fields in Patch requests.
6720	NullFields []string `json:"-"`
6721}
6722
6723func (s *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
6724	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationTextProperty
6725	raw := NoMethod(*s)
6726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6727}
6728
6729// GoogleCloudVisionV1p2beta1Vertex: A vertex represents a 2D point in
6730// the image.
6731// NOTE: the vertex coordinates are in the same scale as the original
6732// image.
6733type GoogleCloudVisionV1p2beta1Vertex struct {
6734	// X: X coordinate.
6735	X int64 `json:"x,omitempty"`
6736
6737	// Y: Y coordinate.
6738	Y int64 `json:"y,omitempty"`
6739
6740	// ForceSendFields is a list of field names (e.g. "X") to
6741	// unconditionally include in API requests. By default, fields with
6742	// empty values are omitted from API requests. However, any non-pointer,
6743	// non-interface field appearing in ForceSendFields will be sent to the
6744	// server regardless of whether the field is empty or not. This may be
6745	// used to include empty fields in Patch requests.
6746	ForceSendFields []string `json:"-"`
6747
6748	// NullFields is a list of field names (e.g. "X") to include in API
6749	// requests with the JSON null value. By default, fields with empty
6750	// values are omitted from API requests. However, any field with an
6751	// empty value appearing in NullFields will be sent to the server as
6752	// null. It is an error if a field in this list has a non-empty value.
6753	// This may be used to include null fields in Patch requests.
6754	NullFields []string `json:"-"`
6755}
6756
6757func (s *GoogleCloudVisionV1p2beta1Vertex) MarshalJSON() ([]byte, error) {
6758	type NoMethod GoogleCloudVisionV1p2beta1Vertex
6759	raw := NoMethod(*s)
6760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6761}
6762
6763// GoogleCloudVisionV1p2beta1WebDetection: Relevant information for the
6764// image from the Internet.
6765type GoogleCloudVisionV1p2beta1WebDetection struct {
6766	// BestGuessLabels: The service's best guess as to the topic of the
6767	// request image.
6768	// Inferred from similar images on the open web.
6769	BestGuessLabels []*GoogleCloudVisionV1p2beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
6770
6771	// FullMatchingImages: Fully matching images from the Internet.
6772	// Can include resized copies of the query image.
6773	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6774
6775	// PagesWithMatchingImages: Web pages containing the matching images
6776	// from the Internet.
6777	PagesWithMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
6778
6779	// PartialMatchingImages: Partial matching images from the
6780	// Internet.
6781	// Those images are similar enough to share some key-point features.
6782	// For
6783	// example an original image will likely have partial matching for its
6784	// crops.
6785	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6786
6787	// VisuallySimilarImages: The visually similar image results.
6788	VisuallySimilarImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
6789
6790	// WebEntities: Deduced entities from similar images on the Internet.
6791	WebEntities []*GoogleCloudVisionV1p2beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
6792
6793	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
6794	// unconditionally include in API requests. By default, fields with
6795	// empty values are omitted from API requests. However, any non-pointer,
6796	// non-interface field appearing in ForceSendFields will be sent to the
6797	// server regardless of whether the field is empty or not. This may be
6798	// used to include empty fields in Patch requests.
6799	ForceSendFields []string `json:"-"`
6800
6801	// NullFields is a list of field names (e.g. "BestGuessLabels") to
6802	// include in API requests with the JSON null value. By default, fields
6803	// with empty values are omitted from API requests. However, any field
6804	// with an empty value appearing in NullFields will be sent to the
6805	// server as null. It is an error if a field in this list has a
6806	// non-empty value. This may be used to include null fields in Patch
6807	// requests.
6808	NullFields []string `json:"-"`
6809}
6810
6811func (s *GoogleCloudVisionV1p2beta1WebDetection) MarshalJSON() ([]byte, error) {
6812	type NoMethod GoogleCloudVisionV1p2beta1WebDetection
6813	raw := NoMethod(*s)
6814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6815}
6816
6817// GoogleCloudVisionV1p2beta1WebDetectionWebEntity: Entity deduced from
6818// similar images on the Internet.
6819type GoogleCloudVisionV1p2beta1WebDetectionWebEntity struct {
6820	// Description: Canonical description of the entity, in English.
6821	Description string `json:"description,omitempty"`
6822
6823	// EntityId: Opaque entity ID.
6824	EntityId string `json:"entityId,omitempty"`
6825
6826	// Score: Overall relevancy score for the entity.
6827	// Not normalized and not comparable across different image queries.
6828	Score float64 `json:"score,omitempty"`
6829
6830	// ForceSendFields is a list of field names (e.g. "Description") to
6831	// unconditionally include in API requests. By default, fields with
6832	// empty values are omitted from API requests. However, any non-pointer,
6833	// non-interface field appearing in ForceSendFields will be sent to the
6834	// server regardless of whether the field is empty or not. This may be
6835	// used to include empty fields in Patch requests.
6836	ForceSendFields []string `json:"-"`
6837
6838	// NullFields is a list of field names (e.g. "Description") to include
6839	// in API requests with the JSON null value. By default, fields with
6840	// empty values are omitted from API requests. However, any field with
6841	// an empty value appearing in NullFields will be sent to the server as
6842	// null. It is an error if a field in this list has a non-empty value.
6843	// This may be used to include null fields in Patch requests.
6844	NullFields []string `json:"-"`
6845}
6846
6847func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
6848	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6849	raw := NoMethod(*s)
6850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6851}
6852
6853func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
6854	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6855	var s1 struct {
6856		Score gensupport.JSONFloat64 `json:"score"`
6857		*NoMethod
6858	}
6859	s1.NoMethod = (*NoMethod)(s)
6860	if err := json.Unmarshal(data, &s1); err != nil {
6861		return err
6862	}
6863	s.Score = float64(s1.Score)
6864	return nil
6865}
6866
6867// GoogleCloudVisionV1p2beta1WebDetectionWebImage: Metadata for online
6868// images.
6869type GoogleCloudVisionV1p2beta1WebDetectionWebImage struct {
6870	// Score: (Deprecated) Overall relevancy score for the image.
6871	Score float64 `json:"score,omitempty"`
6872
6873	// Url: The result image URL.
6874	Url string `json:"url,omitempty"`
6875
6876	// ForceSendFields is a list of field names (e.g. "Score") to
6877	// unconditionally include in API requests. By default, fields with
6878	// empty values are omitted from API requests. However, any non-pointer,
6879	// non-interface field appearing in ForceSendFields will be sent to the
6880	// server regardless of whether the field is empty or not. This may be
6881	// used to include empty fields in Patch requests.
6882	ForceSendFields []string `json:"-"`
6883
6884	// NullFields is a list of field names (e.g. "Score") to include in API
6885	// requests with the JSON null value. By default, fields with empty
6886	// values are omitted from API requests. However, any field with an
6887	// empty value appearing in NullFields will be sent to the server as
6888	// null. It is an error if a field in this list has a non-empty value.
6889	// This may be used to include null fields in Patch requests.
6890	NullFields []string `json:"-"`
6891}
6892
6893func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
6894	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6895	raw := NoMethod(*s)
6896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6897}
6898
6899func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
6900	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6901	var s1 struct {
6902		Score gensupport.JSONFloat64 `json:"score"`
6903		*NoMethod
6904	}
6905	s1.NoMethod = (*NoMethod)(s)
6906	if err := json.Unmarshal(data, &s1); err != nil {
6907		return err
6908	}
6909	s.Score = float64(s1.Score)
6910	return nil
6911}
6912
6913// GoogleCloudVisionV1p2beta1WebDetectionWebLabel: Label to provide
6914// extra metadata for the web detection.
6915type GoogleCloudVisionV1p2beta1WebDetectionWebLabel struct {
6916	// Label: Label for extra metadata.
6917	Label string `json:"label,omitempty"`
6918
6919	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
6920	// or "sr-Latn".
6921	// For more information,
6922	// see
6923	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6924	LanguageCode string `json:"languageCode,omitempty"`
6925
6926	// ForceSendFields is a list of field names (e.g. "Label") to
6927	// unconditionally include in API requests. By default, fields with
6928	// empty values are omitted from API requests. However, any non-pointer,
6929	// non-interface field appearing in ForceSendFields will be sent to the
6930	// server regardless of whether the field is empty or not. This may be
6931	// used to include empty fields in Patch requests.
6932	ForceSendFields []string `json:"-"`
6933
6934	// NullFields is a list of field names (e.g. "Label") to include in API
6935	// requests with the JSON null value. By default, fields with empty
6936	// values are omitted from API requests. However, any field with an
6937	// empty value appearing in NullFields will be sent to the server as
6938	// null. It is an error if a field in this list has a non-empty value.
6939	// This may be used to include null fields in Patch requests.
6940	NullFields []string `json:"-"`
6941}
6942
6943func (s *GoogleCloudVisionV1p2beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
6944	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebLabel
6945	raw := NoMethod(*s)
6946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6947}
6948
6949// GoogleCloudVisionV1p2beta1WebDetectionWebPage: Metadata for web
6950// pages.
6951type GoogleCloudVisionV1p2beta1WebDetectionWebPage struct {
6952	// FullMatchingImages: Fully matching images on the page.
6953	// Can include resized copies of the query image.
6954	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6955
6956	// PageTitle: Title for the web page, may contain HTML markups.
6957	PageTitle string `json:"pageTitle,omitempty"`
6958
6959	// PartialMatchingImages: Partial matching images on the page.
6960	// Those images are similar enough to share some key-point features.
6961	// For
6962	// example an original image will likely have partial matching for
6963	// its
6964	// crops.
6965	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6966
6967	// Score: (Deprecated) Overall relevancy score for the web page.
6968	Score float64 `json:"score,omitempty"`
6969
6970	// Url: The result web page URL.
6971	Url string `json:"url,omitempty"`
6972
6973	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
6974	// to unconditionally include in API requests. By default, fields with
6975	// empty values are omitted from API requests. However, any non-pointer,
6976	// non-interface field appearing in ForceSendFields will be sent to the
6977	// server regardless of whether the field is empty or not. This may be
6978	// used to include empty fields in Patch requests.
6979	ForceSendFields []string `json:"-"`
6980
6981	// NullFields is a list of field names (e.g. "FullMatchingImages") to
6982	// include in API requests with the JSON null value. By default, fields
6983	// with empty values are omitted from API requests. However, any field
6984	// with an empty value appearing in NullFields will be sent to the
6985	// server as null. It is an error if a field in this list has a
6986	// non-empty value. This may be used to include null fields in Patch
6987	// requests.
6988	NullFields []string `json:"-"`
6989}
6990
6991func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
6992	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6993	raw := NoMethod(*s)
6994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6995}
6996
6997func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
6998	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6999	var s1 struct {
7000		Score gensupport.JSONFloat64 `json:"score"`
7001		*NoMethod
7002	}
7003	s1.NoMethod = (*NoMethod)(s)
7004	if err := json.Unmarshal(data, &s1); err != nil {
7005		return err
7006	}
7007	s.Score = float64(s1.Score)
7008	return nil
7009}
7010
7011// GoogleCloudVisionV1p2beta1Word: A word representation.
7012type GoogleCloudVisionV1p2beta1Word struct {
7013	// BoundingBox: The bounding box for the word.
7014	// The vertices are in the order of top-left, top-right,
7015	// bottom-right,
7016	// bottom-left. When a rotation of the bounding box is detected the
7017	// rotation
7018	// is represented as around the top-left corner as defined when the text
7019	// is
7020	// read in the 'natural' orientation.
7021	// For example:
7022	//   * when the text is horizontal it might look like:
7023	//      0----1
7024	//      |    |
7025	//      3----2
7026	//   * when it's rotated 180 degrees around the top-left corner it
7027	// becomes:
7028	//      2----3
7029	//      |    |
7030	//      1----0
7031	//   and the vertex order will still be (0, 1, 2, 3).
7032	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
7033
7034	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
7035	Confidence float64 `json:"confidence,omitempty"`
7036
7037	// Property: Additional information detected for the word.
7038	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
7039
7040	// Symbols: List of symbols in the word.
7041	// The order of the symbols follows the natural reading order.
7042	Symbols []*GoogleCloudVisionV1p2beta1Symbol `json:"symbols,omitempty"`
7043
7044	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
7045	// unconditionally include in API requests. By default, fields with
7046	// empty values are omitted from API requests. However, any non-pointer,
7047	// non-interface field appearing in ForceSendFields will be sent to the
7048	// server regardless of whether the field is empty or not. This may be
7049	// used to include empty fields in Patch requests.
7050	ForceSendFields []string `json:"-"`
7051
7052	// NullFields is a list of field names (e.g. "BoundingBox") to include
7053	// in API requests with the JSON null value. By default, fields with
7054	// empty values are omitted from API requests. However, any field with
7055	// an empty value appearing in NullFields will be sent to the server as
7056	// null. It is an error if a field in this list has a non-empty value.
7057	// This may be used to include null fields in Patch requests.
7058	NullFields []string `json:"-"`
7059}
7060
7061func (s *GoogleCloudVisionV1p2beta1Word) MarshalJSON() ([]byte, error) {
7062	type NoMethod GoogleCloudVisionV1p2beta1Word
7063	raw := NoMethod(*s)
7064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7065}
7066
7067func (s *GoogleCloudVisionV1p2beta1Word) UnmarshalJSON(data []byte) error {
7068	type NoMethod GoogleCloudVisionV1p2beta1Word
7069	var s1 struct {
7070		Confidence gensupport.JSONFloat64 `json:"confidence"`
7071		*NoMethod
7072	}
7073	s1.NoMethod = (*NoMethod)(s)
7074	if err := json.Unmarshal(data, &s1); err != nil {
7075		return err
7076	}
7077	s.Confidence = float64(s1.Confidence)
7078	return nil
7079}
7080
7081// GoogleCloudVisionV1p3beta1AnnotateFileResponse: Response to a single
7082// file annotation request. A file may contain one or more
7083// images, which individually have their own responses.
7084type GoogleCloudVisionV1p3beta1AnnotateFileResponse struct {
7085	// Error: If set, represents the error message for the failed request.
7086	// The
7087	// `responses` field will not be set in this case.
7088	Error *Status `json:"error,omitempty"`
7089
7090	// InputConfig: Information about the file for which this response is
7091	// generated.
7092	InputConfig *GoogleCloudVisionV1p3beta1InputConfig `json:"inputConfig,omitempty"`
7093
7094	// Responses: Individual responses to images found within the file. This
7095	// field will be
7096	// empty if the `error` field is set.
7097	Responses []*GoogleCloudVisionV1p3beta1AnnotateImageResponse `json:"responses,omitempty"`
7098
7099	// TotalPages: This field gives the total number of pages in the file.
7100	TotalPages int64 `json:"totalPages,omitempty"`
7101
7102	// ForceSendFields is a list of field names (e.g. "Error") to
7103	// unconditionally include in API requests. By default, fields with
7104	// empty values are omitted from API requests. However, any non-pointer,
7105	// non-interface field appearing in ForceSendFields will be sent to the
7106	// server regardless of whether the field is empty or not. This may be
7107	// used to include empty fields in Patch requests.
7108	ForceSendFields []string `json:"-"`
7109
7110	// NullFields is a list of field names (e.g. "Error") to include in API
7111	// requests with the JSON null value. By default, fields with empty
7112	// values are omitted from API requests. However, any field with an
7113	// empty value appearing in NullFields will be sent to the server as
7114	// null. It is an error if a field in this list has a non-empty value.
7115	// This may be used to include null fields in Patch requests.
7116	NullFields []string `json:"-"`
7117}
7118
7119func (s *GoogleCloudVisionV1p3beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
7120	type NoMethod GoogleCloudVisionV1p3beta1AnnotateFileResponse
7121	raw := NoMethod(*s)
7122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7123}
7124
7125// GoogleCloudVisionV1p3beta1AnnotateImageResponse: Response to an image
7126// annotation request.
7127type GoogleCloudVisionV1p3beta1AnnotateImageResponse struct {
7128	// Context: If present, contextual information is needed to understand
7129	// where this image
7130	// comes from.
7131	Context *GoogleCloudVisionV1p3beta1ImageAnnotationContext `json:"context,omitempty"`
7132
7133	// CropHintsAnnotation: If present, crop hints have completed
7134	// successfully.
7135	CropHintsAnnotation *GoogleCloudVisionV1p3beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
7136
7137	// Error: If set, represents the error message for the operation.
7138	// Note that filled-in image annotations are guaranteed to be
7139	// correct, even when `error` is set.
7140	Error *Status `json:"error,omitempty"`
7141
7142	// FaceAnnotations: If present, face detection has completed
7143	// successfully.
7144	FaceAnnotations []*GoogleCloudVisionV1p3beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
7145
7146	// FullTextAnnotation: If present, text (OCR) detection or document
7147	// (OCR) text detection has
7148	// completed successfully.
7149	// This annotation provides the structural hierarchy for the OCR
7150	// detected
7151	// text.
7152	FullTextAnnotation *GoogleCloudVisionV1p3beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
7153
7154	// ImagePropertiesAnnotation: If present, image properties were
7155	// extracted successfully.
7156	ImagePropertiesAnnotation *GoogleCloudVisionV1p3beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
7157
7158	// LabelAnnotations: If present, label detection has completed
7159	// successfully.
7160	LabelAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
7161
7162	// LandmarkAnnotations: If present, landmark detection has completed
7163	// successfully.
7164	LandmarkAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
7165
7166	// LocalizedObjectAnnotations: If present, localized object detection
7167	// has completed successfully.
7168	// This will be sorted descending by confidence score.
7169	LocalizedObjectAnnotations []*GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
7170
7171	// LogoAnnotations: If present, logo detection has completed
7172	// successfully.
7173	LogoAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
7174
7175	// ProductSearchResults: If present, product search has completed
7176	// successfully.
7177	ProductSearchResults *GoogleCloudVisionV1p3beta1ProductSearchResults `json:"productSearchResults,omitempty"`
7178
7179	// SafeSearchAnnotation: If present, safe-search annotation has
7180	// completed successfully.
7181	SafeSearchAnnotation *GoogleCloudVisionV1p3beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
7182
7183	// TextAnnotations: If present, text (OCR) detection has completed
7184	// successfully.
7185	TextAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"textAnnotations,omitempty"`
7186
7187	// WebDetection: If present, web detection has completed successfully.
7188	WebDetection *GoogleCloudVisionV1p3beta1WebDetection `json:"webDetection,omitempty"`
7189
7190	// ForceSendFields is a list of field names (e.g. "Context") to
7191	// unconditionally include in API requests. By default, fields with
7192	// empty values are omitted from API requests. However, any non-pointer,
7193	// non-interface field appearing in ForceSendFields will be sent to the
7194	// server regardless of whether the field is empty or not. This may be
7195	// used to include empty fields in Patch requests.
7196	ForceSendFields []string `json:"-"`
7197
7198	// NullFields is a list of field names (e.g. "Context") to include in
7199	// API requests with the JSON null value. By default, fields with empty
7200	// values are omitted from API requests. However, any field with an
7201	// empty value appearing in NullFields will be sent to the server as
7202	// null. It is an error if a field in this list has a non-empty value.
7203	// This may be used to include null fields in Patch requests.
7204	NullFields []string `json:"-"`
7205}
7206
7207func (s *GoogleCloudVisionV1p3beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
7208	type NoMethod GoogleCloudVisionV1p3beta1AnnotateImageResponse
7209	raw := NoMethod(*s)
7210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7211}
7212
7213// GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse: The response for
7214// a single offline file annotation request.
7215type GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse struct {
7216	// OutputConfig: The output location and metadata from
7217	// AsyncAnnotateFileRequest.
7218	OutputConfig *GoogleCloudVisionV1p3beta1OutputConfig `json:"outputConfig,omitempty"`
7219
7220	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
7221	// unconditionally include in API requests. By default, fields with
7222	// empty values are omitted from API requests. However, any non-pointer,
7223	// non-interface field appearing in ForceSendFields will be sent to the
7224	// server regardless of whether the field is empty or not. This may be
7225	// used to include empty fields in Patch requests.
7226	ForceSendFields []string `json:"-"`
7227
7228	// NullFields is a list of field names (e.g. "OutputConfig") to include
7229	// in API requests with the JSON null value. By default, fields with
7230	// empty values are omitted from API requests. However, any field with
7231	// an empty value appearing in NullFields will be sent to the server as
7232	// null. It is an error if a field in this list has a non-empty value.
7233	// This may be used to include null fields in Patch requests.
7234	NullFields []string `json:"-"`
7235}
7236
7237func (s *GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
7238	type NoMethod GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse
7239	raw := NoMethod(*s)
7240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7241}
7242
7243// GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse: Response
7244// to an async batch file annotation request.
7245type GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse struct {
7246	// Responses: The list of file annotation responses, one for each
7247	// request in
7248	// AsyncBatchAnnotateFilesRequest.
7249	Responses []*GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
7250
7251	// ForceSendFields is a list of field names (e.g. "Responses") to
7252	// unconditionally include in API requests. By default, fields with
7253	// empty values are omitted from API requests. However, any non-pointer,
7254	// non-interface field appearing in ForceSendFields will be sent to the
7255	// server regardless of whether the field is empty or not. This may be
7256	// used to include empty fields in Patch requests.
7257	ForceSendFields []string `json:"-"`
7258
7259	// NullFields is a list of field names (e.g. "Responses") to include in
7260	// API requests with the JSON null value. By default, fields with empty
7261	// values are omitted from API requests. However, any field with an
7262	// empty value appearing in NullFields will be sent to the server as
7263	// null. It is an error if a field in this list has a non-empty value.
7264	// This may be used to include null fields in Patch requests.
7265	NullFields []string `json:"-"`
7266}
7267
7268func (s *GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
7269	type NoMethod GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse
7270	raw := NoMethod(*s)
7271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7272}
7273
7274// GoogleCloudVisionV1p3beta1BatchOperationMetadata: Metadata for the
7275// batch operations such as the current state.
7276//
7277// This is included in the `metadata` field of the `Operation` returned
7278// by the
7279// `GetOperation` call of the `google::longrunning::Operations` service.
7280type GoogleCloudVisionV1p3beta1BatchOperationMetadata struct {
7281	// EndTime: The time when the batch request is finished
7282	// and
7283	// google.longrunning.Operation.done is set to true.
7284	EndTime string `json:"endTime,omitempty"`
7285
7286	// State: The current state of the batch operation.
7287	//
7288	// Possible values:
7289	//   "STATE_UNSPECIFIED" - Invalid.
7290	//   "PROCESSING" - Request is actively being processed.
7291	//   "SUCCESSFUL" - The request is done and at least one item has been
7292	// successfully
7293	// processed.
7294	//   "FAILED" - The request is done and no item has been successfully
7295	// processed.
7296	//   "CANCELLED" - The request is done after the
7297	// longrunning.Operations.CancelOperation has
7298	// been called by the user.  Any records that were processed before
7299	// the
7300	// cancel command are output as specified in the request.
7301	State string `json:"state,omitempty"`
7302
7303	// SubmitTime: The time when the batch request was submitted to the
7304	// server.
7305	SubmitTime string `json:"submitTime,omitempty"`
7306
7307	// ForceSendFields is a list of field names (e.g. "EndTime") to
7308	// unconditionally include in API requests. By default, fields with
7309	// empty values are omitted from API requests. However, any non-pointer,
7310	// non-interface field appearing in ForceSendFields will be sent to the
7311	// server regardless of whether the field is empty or not. This may be
7312	// used to include empty fields in Patch requests.
7313	ForceSendFields []string `json:"-"`
7314
7315	// NullFields is a list of field names (e.g. "EndTime") to include in
7316	// API requests with the JSON null value. By default, fields with empty
7317	// values are omitted from API requests. However, any field with an
7318	// empty value appearing in NullFields will be sent to the server as
7319	// null. It is an error if a field in this list has a non-empty value.
7320	// This may be used to include null fields in Patch requests.
7321	NullFields []string `json:"-"`
7322}
7323
7324func (s *GoogleCloudVisionV1p3beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
7325	type NoMethod GoogleCloudVisionV1p3beta1BatchOperationMetadata
7326	raw := NoMethod(*s)
7327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7328}
7329
7330// GoogleCloudVisionV1p3beta1Block: Logical element on the page.
7331type GoogleCloudVisionV1p3beta1Block struct {
7332	// BlockType: Detected block type (text, image etc) for this block.
7333	//
7334	// Possible values:
7335	//   "UNKNOWN" - Unknown block type.
7336	//   "TEXT" - Regular text block.
7337	//   "TABLE" - Table block.
7338	//   "PICTURE" - Image block.
7339	//   "RULER" - Horizontal/vertical line box.
7340	//   "BARCODE" - Barcode block.
7341	BlockType string `json:"blockType,omitempty"`
7342
7343	// BoundingBox: The bounding box for the block.
7344	// The vertices are in the order of top-left, top-right,
7345	// bottom-right,
7346	// bottom-left. When a rotation of the bounding box is detected the
7347	// rotation
7348	// is represented as around the top-left corner as defined when the text
7349	// is
7350	// read in the 'natural' orientation.
7351	// For example:
7352	//
7353	// * when the text is horizontal it might look like:
7354	//
7355	//         0----1
7356	//         |    |
7357	//         3----2
7358	//
7359	// * when it's rotated 180 degrees around the top-left corner it
7360	// becomes:
7361	//
7362	//         2----3
7363	//         |    |
7364	//         1----0
7365	//
7366	//   and the vertex order will still be (0, 1, 2, 3).
7367	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
7368
7369	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
7370	Confidence float64 `json:"confidence,omitempty"`
7371
7372	// Paragraphs: List of paragraphs in this block (if this blocks is of
7373	// type text).
7374	Paragraphs []*GoogleCloudVisionV1p3beta1Paragraph `json:"paragraphs,omitempty"`
7375
7376	// Property: Additional information detected for the block.
7377	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7378
7379	// ForceSendFields is a list of field names (e.g. "BlockType") to
7380	// unconditionally include in API requests. By default, fields with
7381	// empty values are omitted from API requests. However, any non-pointer,
7382	// non-interface field appearing in ForceSendFields will be sent to the
7383	// server regardless of whether the field is empty or not. This may be
7384	// used to include empty fields in Patch requests.
7385	ForceSendFields []string `json:"-"`
7386
7387	// NullFields is a list of field names (e.g. "BlockType") to include in
7388	// API requests with the JSON null value. By default, fields with empty
7389	// values are omitted from API requests. However, any field with an
7390	// empty value appearing in NullFields will be sent to the server as
7391	// null. It is an error if a field in this list has a non-empty value.
7392	// This may be used to include null fields in Patch requests.
7393	NullFields []string `json:"-"`
7394}
7395
7396func (s *GoogleCloudVisionV1p3beta1Block) MarshalJSON() ([]byte, error) {
7397	type NoMethod GoogleCloudVisionV1p3beta1Block
7398	raw := NoMethod(*s)
7399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7400}
7401
7402func (s *GoogleCloudVisionV1p3beta1Block) UnmarshalJSON(data []byte) error {
7403	type NoMethod GoogleCloudVisionV1p3beta1Block
7404	var s1 struct {
7405		Confidence gensupport.JSONFloat64 `json:"confidence"`
7406		*NoMethod
7407	}
7408	s1.NoMethod = (*NoMethod)(s)
7409	if err := json.Unmarshal(data, &s1); err != nil {
7410		return err
7411	}
7412	s.Confidence = float64(s1.Confidence)
7413	return nil
7414}
7415
7416// GoogleCloudVisionV1p3beta1BoundingPoly: A bounding polygon for the
7417// detected image annotation.
7418type GoogleCloudVisionV1p3beta1BoundingPoly struct {
7419	// NormalizedVertices: The bounding polygon normalized vertices.
7420	NormalizedVertices []*GoogleCloudVisionV1p3beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
7421
7422	// Vertices: The bounding polygon vertices.
7423	Vertices []*GoogleCloudVisionV1p3beta1Vertex `json:"vertices,omitempty"`
7424
7425	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
7426	// to unconditionally include in API requests. By default, fields with
7427	// empty values are omitted from API requests. However, any non-pointer,
7428	// non-interface field appearing in ForceSendFields will be sent to the
7429	// server regardless of whether the field is empty or not. This may be
7430	// used to include empty fields in Patch requests.
7431	ForceSendFields []string `json:"-"`
7432
7433	// NullFields is a list of field names (e.g. "NormalizedVertices") to
7434	// include in API requests with the JSON null value. By default, fields
7435	// with empty values are omitted from API requests. However, any field
7436	// with an empty value appearing in NullFields will be sent to the
7437	// server as null. It is an error if a field in this list has a
7438	// non-empty value. This may be used to include null fields in Patch
7439	// requests.
7440	NullFields []string `json:"-"`
7441}
7442
7443func (s *GoogleCloudVisionV1p3beta1BoundingPoly) MarshalJSON() ([]byte, error) {
7444	type NoMethod GoogleCloudVisionV1p3beta1BoundingPoly
7445	raw := NoMethod(*s)
7446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7447}
7448
7449// GoogleCloudVisionV1p3beta1ColorInfo: Color information consists of
7450// RGB channels, score, and the fraction of
7451// the image that the color occupies in the image.
7452type GoogleCloudVisionV1p3beta1ColorInfo struct {
7453	// Color: RGB components of the color.
7454	Color *Color `json:"color,omitempty"`
7455
7456	// PixelFraction: The fraction of pixels the color occupies in the
7457	// image.
7458	// Value in range [0, 1].
7459	PixelFraction float64 `json:"pixelFraction,omitempty"`
7460
7461	// Score: Image-specific score for this color. Value in range [0, 1].
7462	Score float64 `json:"score,omitempty"`
7463
7464	// ForceSendFields is a list of field names (e.g. "Color") to
7465	// unconditionally include in API requests. By default, fields with
7466	// empty values are omitted from API requests. However, any non-pointer,
7467	// non-interface field appearing in ForceSendFields will be sent to the
7468	// server regardless of whether the field is empty or not. This may be
7469	// used to include empty fields in Patch requests.
7470	ForceSendFields []string `json:"-"`
7471
7472	// NullFields is a list of field names (e.g. "Color") to include in API
7473	// requests with the JSON null value. By default, fields with empty
7474	// values are omitted from API requests. However, any field with an
7475	// empty value appearing in NullFields will be sent to the server as
7476	// null. It is an error if a field in this list has a non-empty value.
7477	// This may be used to include null fields in Patch requests.
7478	NullFields []string `json:"-"`
7479}
7480
7481func (s *GoogleCloudVisionV1p3beta1ColorInfo) MarshalJSON() ([]byte, error) {
7482	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7483	raw := NoMethod(*s)
7484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7485}
7486
7487func (s *GoogleCloudVisionV1p3beta1ColorInfo) UnmarshalJSON(data []byte) error {
7488	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7489	var s1 struct {
7490		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
7491		Score         gensupport.JSONFloat64 `json:"score"`
7492		*NoMethod
7493	}
7494	s1.NoMethod = (*NoMethod)(s)
7495	if err := json.Unmarshal(data, &s1); err != nil {
7496		return err
7497	}
7498	s.PixelFraction = float64(s1.PixelFraction)
7499	s.Score = float64(s1.Score)
7500	return nil
7501}
7502
7503// GoogleCloudVisionV1p3beta1CropHint: Single crop hint that is used to
7504// generate a new crop when serving an image.
7505type GoogleCloudVisionV1p3beta1CropHint struct {
7506	// BoundingPoly: The bounding polygon for the crop region. The
7507	// coordinates of the bounding
7508	// box are in the original image's scale.
7509	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7510
7511	// Confidence: Confidence of this being a salient region.  Range [0, 1].
7512	Confidence float64 `json:"confidence,omitempty"`
7513
7514	// ImportanceFraction: Fraction of importance of this salient region
7515	// with respect to the original
7516	// image.
7517	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
7518
7519	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7520	// unconditionally include in API requests. By default, fields with
7521	// empty values are omitted from API requests. However, any non-pointer,
7522	// non-interface field appearing in ForceSendFields will be sent to the
7523	// server regardless of whether the field is empty or not. This may be
7524	// used to include empty fields in Patch requests.
7525	ForceSendFields []string `json:"-"`
7526
7527	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7528	// in API requests with the JSON null value. By default, fields with
7529	// empty values are omitted from API requests. However, any field with
7530	// an empty value appearing in NullFields will be sent to the server as
7531	// null. It is an error if a field in this list has a non-empty value.
7532	// This may be used to include null fields in Patch requests.
7533	NullFields []string `json:"-"`
7534}
7535
7536func (s *GoogleCloudVisionV1p3beta1CropHint) MarshalJSON() ([]byte, error) {
7537	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7538	raw := NoMethod(*s)
7539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7540}
7541
7542func (s *GoogleCloudVisionV1p3beta1CropHint) UnmarshalJSON(data []byte) error {
7543	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7544	var s1 struct {
7545		Confidence         gensupport.JSONFloat64 `json:"confidence"`
7546		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
7547		*NoMethod
7548	}
7549	s1.NoMethod = (*NoMethod)(s)
7550	if err := json.Unmarshal(data, &s1); err != nil {
7551		return err
7552	}
7553	s.Confidence = float64(s1.Confidence)
7554	s.ImportanceFraction = float64(s1.ImportanceFraction)
7555	return nil
7556}
7557
7558// GoogleCloudVisionV1p3beta1CropHintsAnnotation: Set of crop hints that
7559// are used to generate new crops when serving images.
7560type GoogleCloudVisionV1p3beta1CropHintsAnnotation struct {
7561	// CropHints: Crop hint results.
7562	CropHints []*GoogleCloudVisionV1p3beta1CropHint `json:"cropHints,omitempty"`
7563
7564	// ForceSendFields is a list of field names (e.g. "CropHints") to
7565	// unconditionally include in API requests. By default, fields with
7566	// empty values are omitted from API requests. However, any non-pointer,
7567	// non-interface field appearing in ForceSendFields will be sent to the
7568	// server regardless of whether the field is empty or not. This may be
7569	// used to include empty fields in Patch requests.
7570	ForceSendFields []string `json:"-"`
7571
7572	// NullFields is a list of field names (e.g. "CropHints") to include in
7573	// API requests with the JSON null value. By default, fields with empty
7574	// values are omitted from API requests. However, any field with an
7575	// empty value appearing in NullFields will be sent to the server as
7576	// null. It is an error if a field in this list has a non-empty value.
7577	// This may be used to include null fields in Patch requests.
7578	NullFields []string `json:"-"`
7579}
7580
7581func (s *GoogleCloudVisionV1p3beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
7582	type NoMethod GoogleCloudVisionV1p3beta1CropHintsAnnotation
7583	raw := NoMethod(*s)
7584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7585}
7586
7587// GoogleCloudVisionV1p3beta1DominantColorsAnnotation: Set of dominant
7588// colors and their corresponding scores.
7589type GoogleCloudVisionV1p3beta1DominantColorsAnnotation struct {
7590	// Colors: RGB color values with their score and pixel fraction.
7591	Colors []*GoogleCloudVisionV1p3beta1ColorInfo `json:"colors,omitempty"`
7592
7593	// ForceSendFields is a list of field names (e.g. "Colors") to
7594	// unconditionally include in API requests. By default, fields with
7595	// empty values are omitted from API requests. However, any non-pointer,
7596	// non-interface field appearing in ForceSendFields will be sent to the
7597	// server regardless of whether the field is empty or not. This may be
7598	// used to include empty fields in Patch requests.
7599	ForceSendFields []string `json:"-"`
7600
7601	// NullFields is a list of field names (e.g. "Colors") to include in API
7602	// requests with the JSON null value. By default, fields with empty
7603	// values are omitted from API requests. However, any field with an
7604	// empty value appearing in NullFields will be sent to the server as
7605	// null. It is an error if a field in this list has a non-empty value.
7606	// This may be used to include null fields in Patch requests.
7607	NullFields []string `json:"-"`
7608}
7609
7610func (s *GoogleCloudVisionV1p3beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
7611	type NoMethod GoogleCloudVisionV1p3beta1DominantColorsAnnotation
7612	raw := NoMethod(*s)
7613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7614}
7615
7616// GoogleCloudVisionV1p3beta1EntityAnnotation: Set of detected entity
7617// features.
7618type GoogleCloudVisionV1p3beta1EntityAnnotation struct {
7619	// BoundingPoly: Image region to which this entity belongs. Not
7620	// produced
7621	// for `LABEL_DETECTION` features.
7622	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7623
7624	// Confidence: **Deprecated. Use `score` instead.**
7625	// The accuracy of the entity detection in an image.
7626	// For example, for an image in which the "Eiffel Tower" entity is
7627	// detected,
7628	// this field represents the confidence that there is a tower in the
7629	// query
7630	// image. Range [0, 1].
7631	Confidence float64 `json:"confidence,omitempty"`
7632
7633	// Description: Entity textual description, expressed in its `locale`
7634	// language.
7635	Description string `json:"description,omitempty"`
7636
7637	// Locale: The language code for the locale in which the entity
7638	// textual
7639	// `description` is expressed.
7640	Locale string `json:"locale,omitempty"`
7641
7642	// Locations: The location information for the detected entity.
7643	// Multiple
7644	// `LocationInfo` elements can be present because one location
7645	// may
7646	// indicate the location of the scene in the image, and another
7647	// location
7648	// may indicate the location of the place where the image was
7649	// taken.
7650	// Location information is usually present for landmarks.
7651	Locations []*GoogleCloudVisionV1p3beta1LocationInfo `json:"locations,omitempty"`
7652
7653	// Mid: Opaque entity ID. Some IDs may be available in
7654	// [Google Knowledge Graph
7655	// Search
7656	// API](https://developers.google.com/knowledge-graph/).
7657	Mid string `json:"mid,omitempty"`
7658
7659	// Properties: Some entities may have optional user-supplied `Property`
7660	// (name/value)
7661	// fields, such a score or string that qualifies the entity.
7662	Properties []*GoogleCloudVisionV1p3beta1Property `json:"properties,omitempty"`
7663
7664	// Score: Overall score of the result. Range [0, 1].
7665	Score float64 `json:"score,omitempty"`
7666
7667	// Topicality: The relevancy of the ICA (Image Content Annotation) label
7668	// to the
7669	// image. For example, the relevancy of "tower" is likely higher to an
7670	// image
7671	// containing the detected "Eiffel Tower" than to an image containing
7672	// a
7673	// detected distant towering building, even though the confidence
7674	// that
7675	// there is a tower in each image may be the same. Range [0, 1].
7676	Topicality float64 `json:"topicality,omitempty"`
7677
7678	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7679	// unconditionally include in API requests. By default, fields with
7680	// empty values are omitted from API requests. However, any non-pointer,
7681	// non-interface field appearing in ForceSendFields will be sent to the
7682	// server regardless of whether the field is empty or not. This may be
7683	// used to include empty fields in Patch requests.
7684	ForceSendFields []string `json:"-"`
7685
7686	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7687	// in API requests with the JSON null value. By default, fields with
7688	// empty values are omitted from API requests. However, any field with
7689	// an empty value appearing in NullFields will be sent to the server as
7690	// null. It is an error if a field in this list has a non-empty value.
7691	// This may be used to include null fields in Patch requests.
7692	NullFields []string `json:"-"`
7693}
7694
7695func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
7696	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7697	raw := NoMethod(*s)
7698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7699}
7700
7701func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
7702	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7703	var s1 struct {
7704		Confidence gensupport.JSONFloat64 `json:"confidence"`
7705		Score      gensupport.JSONFloat64 `json:"score"`
7706		Topicality gensupport.JSONFloat64 `json:"topicality"`
7707		*NoMethod
7708	}
7709	s1.NoMethod = (*NoMethod)(s)
7710	if err := json.Unmarshal(data, &s1); err != nil {
7711		return err
7712	}
7713	s.Confidence = float64(s1.Confidence)
7714	s.Score = float64(s1.Score)
7715	s.Topicality = float64(s1.Topicality)
7716	return nil
7717}
7718
7719// GoogleCloudVisionV1p3beta1FaceAnnotation: A face annotation object
7720// contains the results of face detection.
7721type GoogleCloudVisionV1p3beta1FaceAnnotation struct {
7722	// AngerLikelihood: Anger likelihood.
7723	//
7724	// Possible values:
7725	//   "UNKNOWN" - Unknown likelihood.
7726	//   "VERY_UNLIKELY" - It is very unlikely.
7727	//   "UNLIKELY" - It is unlikely.
7728	//   "POSSIBLE" - It is possible.
7729	//   "LIKELY" - It is likely.
7730	//   "VERY_LIKELY" - It is very likely.
7731	AngerLikelihood string `json:"angerLikelihood,omitempty"`
7732
7733	// BlurredLikelihood: Blurred likelihood.
7734	//
7735	// Possible values:
7736	//   "UNKNOWN" - Unknown likelihood.
7737	//   "VERY_UNLIKELY" - It is very unlikely.
7738	//   "UNLIKELY" - It is unlikely.
7739	//   "POSSIBLE" - It is possible.
7740	//   "LIKELY" - It is likely.
7741	//   "VERY_LIKELY" - It is very likely.
7742	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
7743
7744	// BoundingPoly: The bounding polygon around the face. The coordinates
7745	// of the bounding box
7746	// are in the original image's scale.
7747	// The bounding box is computed to "frame" the face in accordance with
7748	// human
7749	// expectations. It is based on the landmarker results.
7750	// Note that one or more x and/or y coordinates may not be generated in
7751	// the
7752	// `BoundingPoly` (the polygon will be unbounded) if only a partial
7753	// face
7754	// appears in the image to be annotated.
7755	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7756
7757	// DetectionConfidence: Detection confidence. Range [0, 1].
7758	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
7759
7760	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
7761	// than the
7762	// `boundingPoly`, and encloses only the skin part of the face.
7763	// Typically, it
7764	// is used to eliminate the face from any image analysis that detects
7765	// the
7766	// "amount of skin" visible in an image. It is not based on
7767	// the
7768	// landmarker results, only on the initial face detection, hence
7769	// the <code>fd</code> (face detection) prefix.
7770	FdBoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
7771
7772	// HeadwearLikelihood: Headwear likelihood.
7773	//
7774	// Possible values:
7775	//   "UNKNOWN" - Unknown likelihood.
7776	//   "VERY_UNLIKELY" - It is very unlikely.
7777	//   "UNLIKELY" - It is unlikely.
7778	//   "POSSIBLE" - It is possible.
7779	//   "LIKELY" - It is likely.
7780	//   "VERY_LIKELY" - It is very likely.
7781	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
7782
7783	// JoyLikelihood: Joy likelihood.
7784	//
7785	// Possible values:
7786	//   "UNKNOWN" - Unknown likelihood.
7787	//   "VERY_UNLIKELY" - It is very unlikely.
7788	//   "UNLIKELY" - It is unlikely.
7789	//   "POSSIBLE" - It is possible.
7790	//   "LIKELY" - It is likely.
7791	//   "VERY_LIKELY" - It is very likely.
7792	JoyLikelihood string `json:"joyLikelihood,omitempty"`
7793
7794	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
7795	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
7796
7797	// Landmarks: Detected face landmarks.
7798	Landmarks []*GoogleCloudVisionV1p3beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
7799
7800	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
7801	// that the face is
7802	// pointing relative to the vertical plane perpendicular to the image.
7803	// Range
7804	// [-180,180].
7805	PanAngle float64 `json:"panAngle,omitempty"`
7806
7807	// RollAngle: Roll angle, which indicates the amount of
7808	// clockwise/anti-clockwise rotation
7809	// of the face relative to the image vertical about the axis
7810	// perpendicular to
7811	// the face. Range [-180,180].
7812	RollAngle float64 `json:"rollAngle,omitempty"`
7813
7814	// SorrowLikelihood: Sorrow likelihood.
7815	//
7816	// Possible values:
7817	//   "UNKNOWN" - Unknown likelihood.
7818	//   "VERY_UNLIKELY" - It is very unlikely.
7819	//   "UNLIKELY" - It is unlikely.
7820	//   "POSSIBLE" - It is possible.
7821	//   "LIKELY" - It is likely.
7822	//   "VERY_LIKELY" - It is very likely.
7823	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
7824
7825	// SurpriseLikelihood: Surprise likelihood.
7826	//
7827	// Possible values:
7828	//   "UNKNOWN" - Unknown likelihood.
7829	//   "VERY_UNLIKELY" - It is very unlikely.
7830	//   "UNLIKELY" - It is unlikely.
7831	//   "POSSIBLE" - It is possible.
7832	//   "LIKELY" - It is likely.
7833	//   "VERY_LIKELY" - It is very likely.
7834	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
7835
7836	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
7837	// that the face is
7838	// pointing relative to the image's horizontal plane. Range [-180,180].
7839	TiltAngle float64 `json:"tiltAngle,omitempty"`
7840
7841	// UnderExposedLikelihood: Under-exposed likelihood.
7842	//
7843	// Possible values:
7844	//   "UNKNOWN" - Unknown likelihood.
7845	//   "VERY_UNLIKELY" - It is very unlikely.
7846	//   "UNLIKELY" - It is unlikely.
7847	//   "POSSIBLE" - It is possible.
7848	//   "LIKELY" - It is likely.
7849	//   "VERY_LIKELY" - It is very likely.
7850	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
7851
7852	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
7853	// unconditionally include in API requests. By default, fields with
7854	// empty values are omitted from API requests. However, any non-pointer,
7855	// non-interface field appearing in ForceSendFields will be sent to the
7856	// server regardless of whether the field is empty or not. This may be
7857	// used to include empty fields in Patch requests.
7858	ForceSendFields []string `json:"-"`
7859
7860	// NullFields is a list of field names (e.g. "AngerLikelihood") to
7861	// include in API requests with the JSON null value. By default, fields
7862	// with empty values are omitted from API requests. However, any field
7863	// with an empty value appearing in NullFields will be sent to the
7864	// server as null. It is an error if a field in this list has a
7865	// non-empty value. This may be used to include null fields in Patch
7866	// requests.
7867	NullFields []string `json:"-"`
7868}
7869
7870func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
7871	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7872	raw := NoMethod(*s)
7873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7874}
7875
7876func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
7877	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7878	var s1 struct {
7879		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
7880		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
7881		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
7882		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
7883		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
7884		*NoMethod
7885	}
7886	s1.NoMethod = (*NoMethod)(s)
7887	if err := json.Unmarshal(data, &s1); err != nil {
7888		return err
7889	}
7890	s.DetectionConfidence = float64(s1.DetectionConfidence)
7891	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
7892	s.PanAngle = float64(s1.PanAngle)
7893	s.RollAngle = float64(s1.RollAngle)
7894	s.TiltAngle = float64(s1.TiltAngle)
7895	return nil
7896}
7897
7898// GoogleCloudVisionV1p3beta1FaceAnnotationLandmark: A face-specific
7899// landmark (for example, a face feature).
7900type GoogleCloudVisionV1p3beta1FaceAnnotationLandmark struct {
7901	// Position: Face landmark position.
7902	Position *GoogleCloudVisionV1p3beta1Position `json:"position,omitempty"`
7903
7904	// Type: Face landmark type.
7905	//
7906	// Possible values:
7907	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
7908	// filled.
7909	//   "LEFT_EYE" - Left eye.
7910	//   "RIGHT_EYE" - Right eye.
7911	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
7912	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
7913	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
7914	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
7915	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
7916	//   "NOSE_TIP" - Nose tip.
7917	//   "UPPER_LIP" - Upper lip.
7918	//   "LOWER_LIP" - Lower lip.
7919	//   "MOUTH_LEFT" - Mouth left.
7920	//   "MOUTH_RIGHT" - Mouth right.
7921	//   "MOUTH_CENTER" - Mouth center.
7922	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
7923	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
7924	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
7925	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
7926	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
7927	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
7928	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
7929	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
7930	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
7931	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
7932	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
7933	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
7934	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
7935	//   "LEFT_EAR_TRAGION" - Left ear tragion.
7936	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
7937	//   "LEFT_EYE_PUPIL" - Left eye pupil.
7938	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
7939	//   "FOREHEAD_GLABELLA" - Forehead glabella.
7940	//   "CHIN_GNATHION" - Chin gnathion.
7941	//   "CHIN_LEFT_GONION" - Chin left gonion.
7942	//   "CHIN_RIGHT_GONION" - Chin right gonion.
7943	Type string `json:"type,omitempty"`
7944
7945	// ForceSendFields is a list of field names (e.g. "Position") to
7946	// unconditionally include in API requests. By default, fields with
7947	// empty values are omitted from API requests. However, any non-pointer,
7948	// non-interface field appearing in ForceSendFields will be sent to the
7949	// server regardless of whether the field is empty or not. This may be
7950	// used to include empty fields in Patch requests.
7951	ForceSendFields []string `json:"-"`
7952
7953	// NullFields is a list of field names (e.g. "Position") to include in
7954	// API requests with the JSON null value. By default, fields with empty
7955	// values are omitted from API requests. However, any field with an
7956	// empty value appearing in NullFields will be sent to the server as
7957	// null. It is an error if a field in this list has a non-empty value.
7958	// This may be used to include null fields in Patch requests.
7959	NullFields []string `json:"-"`
7960}
7961
7962func (s *GoogleCloudVisionV1p3beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
7963	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotationLandmark
7964	raw := NoMethod(*s)
7965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7966}
7967
7968// GoogleCloudVisionV1p3beta1GcsDestination: The Google Cloud Storage
7969// location where the output will be written to.
7970type GoogleCloudVisionV1p3beta1GcsDestination struct {
7971	// Uri: Google Cloud Storage URI prefix where the results will be
7972	// stored. Results
7973	// will be in JSON format and preceded by its corresponding input URI
7974	// prefix.
7975	// This field can either represent a gcs file prefix or gcs directory.
7976	// In
7977	// either case, the uri should be unique because in order to get all of
7978	// the
7979	// output files, you will need to do a wildcard gcs search on the uri
7980	// prefix
7981	// you provide.
7982	//
7983	// Examples:
7984	//
7985	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
7986	// files
7987	// will be created in gs://bucket-name/here/ and the names of the
7988	// output files will begin with "filenameprefix".
7989	//
7990	// *    Directory Prefix: gs://bucket-name/some/location/   The output
7991	// files
7992	// will be created in gs://bucket-name/some/location/ and the names of
7993	// the
7994	// output files could be anything because there was no filename
7995	// prefix
7996	// specified.
7997	//
7998	// If multiple outputs, each response is still AnnotateFileResponse,
7999	// each of
8000	// which contains some subset of the full list of
8001	// AnnotateImageResponse.
8002	// Multiple outputs can happen if, for example, the output JSON is too
8003	// large
8004	// and overflows into multiple sharded files.
8005	Uri string `json:"uri,omitempty"`
8006
8007	// ForceSendFields is a list of field names (e.g. "Uri") to
8008	// unconditionally include in API requests. By default, fields with
8009	// empty values are omitted from API requests. However, any non-pointer,
8010	// non-interface field appearing in ForceSendFields will be sent to the
8011	// server regardless of whether the field is empty or not. This may be
8012	// used to include empty fields in Patch requests.
8013	ForceSendFields []string `json:"-"`
8014
8015	// NullFields is a list of field names (e.g. "Uri") to include in API
8016	// requests with the JSON null value. By default, fields with empty
8017	// values are omitted from API requests. However, any field with an
8018	// empty value appearing in NullFields will be sent to the server as
8019	// null. It is an error if a field in this list has a non-empty value.
8020	// This may be used to include null fields in Patch requests.
8021	NullFields []string `json:"-"`
8022}
8023
8024func (s *GoogleCloudVisionV1p3beta1GcsDestination) MarshalJSON() ([]byte, error) {
8025	type NoMethod GoogleCloudVisionV1p3beta1GcsDestination
8026	raw := NoMethod(*s)
8027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8028}
8029
8030// GoogleCloudVisionV1p3beta1GcsSource: The Google Cloud Storage
8031// location where the input will be read from.
8032type GoogleCloudVisionV1p3beta1GcsSource struct {
8033	// Uri: Google Cloud Storage URI for the input file. This must only be
8034	// a
8035	// Google Cloud Storage object. Wildcards are not currently supported.
8036	Uri string `json:"uri,omitempty"`
8037
8038	// ForceSendFields is a list of field names (e.g. "Uri") to
8039	// unconditionally include in API requests. By default, fields with
8040	// empty values are omitted from API requests. However, any non-pointer,
8041	// non-interface field appearing in ForceSendFields will be sent to the
8042	// server regardless of whether the field is empty or not. This may be
8043	// used to include empty fields in Patch requests.
8044	ForceSendFields []string `json:"-"`
8045
8046	// NullFields is a list of field names (e.g. "Uri") to include in API
8047	// requests with the JSON null value. By default, fields with empty
8048	// values are omitted from API requests. However, any field with an
8049	// empty value appearing in NullFields will be sent to the server as
8050	// null. It is an error if a field in this list has a non-empty value.
8051	// This may be used to include null fields in Patch requests.
8052	NullFields []string `json:"-"`
8053}
8054
8055func (s *GoogleCloudVisionV1p3beta1GcsSource) MarshalJSON() ([]byte, error) {
8056	type NoMethod GoogleCloudVisionV1p3beta1GcsSource
8057	raw := NoMethod(*s)
8058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8059}
8060
8061// GoogleCloudVisionV1p3beta1ImageAnnotationContext: If an image was
8062// produced from a file (e.g. a PDF), this message gives
8063// information about the source of that image.
8064type GoogleCloudVisionV1p3beta1ImageAnnotationContext struct {
8065	// PageNumber: If the file was a PDF or TIFF, this field gives the page
8066	// number within
8067	// the file used to produce the image.
8068	PageNumber int64 `json:"pageNumber,omitempty"`
8069
8070	// Uri: The URI of the file used to produce the image.
8071	Uri string `json:"uri,omitempty"`
8072
8073	// ForceSendFields is a list of field names (e.g. "PageNumber") to
8074	// unconditionally include in API requests. By default, fields with
8075	// empty values are omitted from API requests. However, any non-pointer,
8076	// non-interface field appearing in ForceSendFields will be sent to the
8077	// server regardless of whether the field is empty or not. This may be
8078	// used to include empty fields in Patch requests.
8079	ForceSendFields []string `json:"-"`
8080
8081	// NullFields is a list of field names (e.g. "PageNumber") to include in
8082	// API requests with the JSON null value. By default, fields with empty
8083	// values are omitted from API requests. However, any field with an
8084	// empty value appearing in NullFields will be sent to the server as
8085	// null. It is an error if a field in this list has a non-empty value.
8086	// This may be used to include null fields in Patch requests.
8087	NullFields []string `json:"-"`
8088}
8089
8090func (s *GoogleCloudVisionV1p3beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
8091	type NoMethod GoogleCloudVisionV1p3beta1ImageAnnotationContext
8092	raw := NoMethod(*s)
8093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8094}
8095
8096// GoogleCloudVisionV1p3beta1ImageProperties: Stores image properties,
8097// such as dominant colors.
8098type GoogleCloudVisionV1p3beta1ImageProperties struct {
8099	// DominantColors: If present, dominant colors completed successfully.
8100	DominantColors *GoogleCloudVisionV1p3beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
8101
8102	// ForceSendFields is a list of field names (e.g. "DominantColors") to
8103	// unconditionally include in API requests. By default, fields with
8104	// empty values are omitted from API requests. However, any non-pointer,
8105	// non-interface field appearing in ForceSendFields will be sent to the
8106	// server regardless of whether the field is empty or not. This may be
8107	// used to include empty fields in Patch requests.
8108	ForceSendFields []string `json:"-"`
8109
8110	// NullFields is a list of field names (e.g. "DominantColors") to
8111	// include in API requests with the JSON null value. By default, fields
8112	// with empty values are omitted from API requests. However, any field
8113	// with an empty value appearing in NullFields will be sent to the
8114	// server as null. It is an error if a field in this list has a
8115	// non-empty value. This may be used to include null fields in Patch
8116	// requests.
8117	NullFields []string `json:"-"`
8118}
8119
8120func (s *GoogleCloudVisionV1p3beta1ImageProperties) MarshalJSON() ([]byte, error) {
8121	type NoMethod GoogleCloudVisionV1p3beta1ImageProperties
8122	raw := NoMethod(*s)
8123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8124}
8125
8126// GoogleCloudVisionV1p3beta1ImportProductSetsResponse: Response message
8127// for the `ImportProductSets` method.
8128//
8129// This message is returned by
8130// the
8131// google.longrunning.Operations.GetOperation method in the
8132// returned
8133// google.longrunning.Operation.response field.
8134type GoogleCloudVisionV1p3beta1ImportProductSetsResponse struct {
8135	// ReferenceImages: The list of reference_images that are imported
8136	// successfully.
8137	ReferenceImages []*GoogleCloudVisionV1p3beta1ReferenceImage `json:"referenceImages,omitempty"`
8138
8139	// Statuses: The rpc status for each ImportProductSet request, including
8140	// both successes
8141	// and errors.
8142	//
8143	// The number of statuses here matches the number of lines in the csv
8144	// file,
8145	// and statuses[i] stores the success or failure status of processing
8146	// the i-th
8147	// line of the csv, starting from line 0.
8148	Statuses []*Status `json:"statuses,omitempty"`
8149
8150	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
8151	// unconditionally include in API requests. By default, fields with
8152	// empty values are omitted from API requests. However, any non-pointer,
8153	// non-interface field appearing in ForceSendFields will be sent to the
8154	// server regardless of whether the field is empty or not. This may be
8155	// used to include empty fields in Patch requests.
8156	ForceSendFields []string `json:"-"`
8157
8158	// NullFields is a list of field names (e.g. "ReferenceImages") to
8159	// include in API requests with the JSON null value. By default, fields
8160	// with empty values are omitted from API requests. However, any field
8161	// with an empty value appearing in NullFields will be sent to the
8162	// server as null. It is an error if a field in this list has a
8163	// non-empty value. This may be used to include null fields in Patch
8164	// requests.
8165	NullFields []string `json:"-"`
8166}
8167
8168func (s *GoogleCloudVisionV1p3beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
8169	type NoMethod GoogleCloudVisionV1p3beta1ImportProductSetsResponse
8170	raw := NoMethod(*s)
8171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8172}
8173
8174// GoogleCloudVisionV1p3beta1InputConfig: The desired input location and
8175// metadata.
8176type GoogleCloudVisionV1p3beta1InputConfig struct {
8177	// Content: File content, represented as a stream of bytes.
8178	// Note: As with all `bytes` fields, protobuffers use a pure
8179	// binary
8180	// representation, whereas JSON representations use base64.
8181	//
8182	// Currently, this field only works for BatchAnnotateFiles requests. It
8183	// does
8184	// not work for AsyncBatchAnnotateFiles requests.
8185	Content string `json:"content,omitempty"`
8186
8187	// GcsSource: The Google Cloud Storage location to read the input from.
8188	GcsSource *GoogleCloudVisionV1p3beta1GcsSource `json:"gcsSource,omitempty"`
8189
8190	// MimeType: The type of the file. Currently only "application/pdf",
8191	// "image/tiff" and
8192	// "image/gif" are supported. Wildcards are not supported.
8193	MimeType string `json:"mimeType,omitempty"`
8194
8195	// ForceSendFields is a list of field names (e.g. "Content") to
8196	// unconditionally include in API requests. By default, fields with
8197	// empty values are omitted from API requests. However, any non-pointer,
8198	// non-interface field appearing in ForceSendFields will be sent to the
8199	// server regardless of whether the field is empty or not. This may be
8200	// used to include empty fields in Patch requests.
8201	ForceSendFields []string `json:"-"`
8202
8203	// NullFields is a list of field names (e.g. "Content") to include in
8204	// API requests with the JSON null value. By default, fields with empty
8205	// values are omitted from API requests. However, any field with an
8206	// empty value appearing in NullFields will be sent to the server as
8207	// null. It is an error if a field in this list has a non-empty value.
8208	// This may be used to include null fields in Patch requests.
8209	NullFields []string `json:"-"`
8210}
8211
8212func (s *GoogleCloudVisionV1p3beta1InputConfig) MarshalJSON() ([]byte, error) {
8213	type NoMethod GoogleCloudVisionV1p3beta1InputConfig
8214	raw := NoMethod(*s)
8215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8216}
8217
8218// GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation: Set of detected
8219// objects with bounding boxes.
8220type GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation struct {
8221	// BoundingPoly: Image region to which this object belongs. This must be
8222	// populated.
8223	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8224
8225	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8226	// For more
8227	// information,
8228	// see
8229	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8230	LanguageCode string `json:"languageCode,omitempty"`
8231
8232	// Mid: Object ID that should align with EntityAnnotation mid.
8233	Mid string `json:"mid,omitempty"`
8234
8235	// Name: Object name, expressed in its `language_code` language.
8236	Name string `json:"name,omitempty"`
8237
8238	// Score: Score of the result. Range [0, 1].
8239	Score float64 `json:"score,omitempty"`
8240
8241	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8242	// unconditionally include in API requests. By default, fields with
8243	// empty values are omitted from API requests. However, any non-pointer,
8244	// non-interface field appearing in ForceSendFields will be sent to the
8245	// server regardless of whether the field is empty or not. This may be
8246	// used to include empty fields in Patch requests.
8247	ForceSendFields []string `json:"-"`
8248
8249	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8250	// in API requests with the JSON null value. By default, fields with
8251	// empty values are omitted from API requests. However, any field with
8252	// an empty value appearing in NullFields will be sent to the server as
8253	// null. It is an error if a field in this list has a non-empty value.
8254	// This may be used to include null fields in Patch requests.
8255	NullFields []string `json:"-"`
8256}
8257
8258func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
8259	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8260	raw := NoMethod(*s)
8261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8262}
8263
8264func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
8265	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8266	var s1 struct {
8267		Score gensupport.JSONFloat64 `json:"score"`
8268		*NoMethod
8269	}
8270	s1.NoMethod = (*NoMethod)(s)
8271	if err := json.Unmarshal(data, &s1); err != nil {
8272		return err
8273	}
8274	s.Score = float64(s1.Score)
8275	return nil
8276}
8277
8278// GoogleCloudVisionV1p3beta1LocationInfo: Detected entity location
8279// information.
8280type GoogleCloudVisionV1p3beta1LocationInfo struct {
8281	// LatLng: lat/long location coordinates.
8282	LatLng *LatLng `json:"latLng,omitempty"`
8283
8284	// ForceSendFields is a list of field names (e.g. "LatLng") to
8285	// unconditionally include in API requests. By default, fields with
8286	// empty values are omitted from API requests. However, any non-pointer,
8287	// non-interface field appearing in ForceSendFields will be sent to the
8288	// server regardless of whether the field is empty or not. This may be
8289	// used to include empty fields in Patch requests.
8290	ForceSendFields []string `json:"-"`
8291
8292	// NullFields is a list of field names (e.g. "LatLng") to include in API
8293	// requests with the JSON null value. By default, fields with empty
8294	// values are omitted from API requests. However, any field with an
8295	// empty value appearing in NullFields will be sent to the server as
8296	// null. It is an error if a field in this list has a non-empty value.
8297	// This may be used to include null fields in Patch requests.
8298	NullFields []string `json:"-"`
8299}
8300
8301func (s *GoogleCloudVisionV1p3beta1LocationInfo) MarshalJSON() ([]byte, error) {
8302	type NoMethod GoogleCloudVisionV1p3beta1LocationInfo
8303	raw := NoMethod(*s)
8304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8305}
8306
8307// GoogleCloudVisionV1p3beta1NormalizedVertex: A vertex represents a 2D
8308// point in the image.
8309// NOTE: the normalized vertex coordinates are relative to the original
8310// image
8311// and range from 0 to 1.
8312type GoogleCloudVisionV1p3beta1NormalizedVertex struct {
8313	// X: X coordinate.
8314	X float64 `json:"x,omitempty"`
8315
8316	// Y: Y coordinate.
8317	Y float64 `json:"y,omitempty"`
8318
8319	// ForceSendFields is a list of field names (e.g. "X") to
8320	// unconditionally include in API requests. By default, fields with
8321	// empty values are omitted from API requests. However, any non-pointer,
8322	// non-interface field appearing in ForceSendFields will be sent to the
8323	// server regardless of whether the field is empty or not. This may be
8324	// used to include empty fields in Patch requests.
8325	ForceSendFields []string `json:"-"`
8326
8327	// NullFields is a list of field names (e.g. "X") to include in API
8328	// requests with the JSON null value. By default, fields with empty
8329	// values are omitted from API requests. However, any field with an
8330	// empty value appearing in NullFields will be sent to the server as
8331	// null. It is an error if a field in this list has a non-empty value.
8332	// This may be used to include null fields in Patch requests.
8333	NullFields []string `json:"-"`
8334}
8335
8336func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
8337	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8338	raw := NoMethod(*s)
8339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8340}
8341
8342func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
8343	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8344	var s1 struct {
8345		X gensupport.JSONFloat64 `json:"x"`
8346		Y gensupport.JSONFloat64 `json:"y"`
8347		*NoMethod
8348	}
8349	s1.NoMethod = (*NoMethod)(s)
8350	if err := json.Unmarshal(data, &s1); err != nil {
8351		return err
8352	}
8353	s.X = float64(s1.X)
8354	s.Y = float64(s1.Y)
8355	return nil
8356}
8357
8358// GoogleCloudVisionV1p3beta1OperationMetadata: Contains metadata for
8359// the BatchAnnotateImages operation.
8360type GoogleCloudVisionV1p3beta1OperationMetadata struct {
8361	// CreateTime: The time when the batch request was received.
8362	CreateTime string `json:"createTime,omitempty"`
8363
8364	// State: Current state of the batch operation.
8365	//
8366	// Possible values:
8367	//   "STATE_UNSPECIFIED" - Invalid.
8368	//   "CREATED" - Request is received.
8369	//   "RUNNING" - Request is actively being processed.
8370	//   "DONE" - The batch processing is done.
8371	//   "CANCELLED" - The batch processing was cancelled.
8372	State string `json:"state,omitempty"`
8373
8374	// UpdateTime: The time when the operation result was last updated.
8375	UpdateTime string `json:"updateTime,omitempty"`
8376
8377	// ForceSendFields is a list of field names (e.g. "CreateTime") to
8378	// unconditionally include in API requests. By default, fields with
8379	// empty values are omitted from API requests. However, any non-pointer,
8380	// non-interface field appearing in ForceSendFields will be sent to the
8381	// server regardless of whether the field is empty or not. This may be
8382	// used to include empty fields in Patch requests.
8383	ForceSendFields []string `json:"-"`
8384
8385	// NullFields is a list of field names (e.g. "CreateTime") to include in
8386	// API requests with the JSON null value. By default, fields with empty
8387	// values are omitted from API requests. However, any field with an
8388	// empty value appearing in NullFields will be sent to the server as
8389	// null. It is an error if a field in this list has a non-empty value.
8390	// This may be used to include null fields in Patch requests.
8391	NullFields []string `json:"-"`
8392}
8393
8394func (s *GoogleCloudVisionV1p3beta1OperationMetadata) MarshalJSON() ([]byte, error) {
8395	type NoMethod GoogleCloudVisionV1p3beta1OperationMetadata
8396	raw := NoMethod(*s)
8397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8398}
8399
8400// GoogleCloudVisionV1p3beta1OutputConfig: The desired output location
8401// and metadata.
8402type GoogleCloudVisionV1p3beta1OutputConfig struct {
8403	// BatchSize: The max number of response protos to put into each output
8404	// JSON file on
8405	// Google Cloud Storage.
8406	// The valid range is [1, 100]. If not specified, the default value is
8407	// 20.
8408	//
8409	// For example, for one pdf file with 100 pages, 100 response protos
8410	// will
8411	// be generated. If `batch_size` = 20, then 5 json files each
8412	// containing 20 response protos will be written under the
8413	// prefix
8414	// `gcs_destination`.`uri`.
8415	//
8416	// Currently, batch_size only applies to GcsDestination, with potential
8417	// future
8418	// support for other output configurations.
8419	BatchSize int64 `json:"batchSize,omitempty"`
8420
8421	// GcsDestination: The Google Cloud Storage location to write the
8422	// output(s) to.
8423	GcsDestination *GoogleCloudVisionV1p3beta1GcsDestination `json:"gcsDestination,omitempty"`
8424
8425	// ForceSendFields is a list of field names (e.g. "BatchSize") to
8426	// unconditionally include in API requests. By default, fields with
8427	// empty values are omitted from API requests. However, any non-pointer,
8428	// non-interface field appearing in ForceSendFields will be sent to the
8429	// server regardless of whether the field is empty or not. This may be
8430	// used to include empty fields in Patch requests.
8431	ForceSendFields []string `json:"-"`
8432
8433	// NullFields is a list of field names (e.g. "BatchSize") to include in
8434	// API requests with the JSON null value. By default, fields with empty
8435	// values are omitted from API requests. However, any field with an
8436	// empty value appearing in NullFields will be sent to the server as
8437	// null. It is an error if a field in this list has a non-empty value.
8438	// This may be used to include null fields in Patch requests.
8439	NullFields []string `json:"-"`
8440}
8441
8442func (s *GoogleCloudVisionV1p3beta1OutputConfig) MarshalJSON() ([]byte, error) {
8443	type NoMethod GoogleCloudVisionV1p3beta1OutputConfig
8444	raw := NoMethod(*s)
8445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8446}
8447
8448// GoogleCloudVisionV1p3beta1Page: Detected page from OCR.
8449type GoogleCloudVisionV1p3beta1Page struct {
8450	// Blocks: List of blocks of text, images etc on this page.
8451	Blocks []*GoogleCloudVisionV1p3beta1Block `json:"blocks,omitempty"`
8452
8453	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
8454	Confidence float64 `json:"confidence,omitempty"`
8455
8456	// Height: Page height. For PDFs the unit is points. For images
8457	// (including
8458	// TIFFs) the unit is pixels.
8459	Height int64 `json:"height,omitempty"`
8460
8461	// Property: Additional information detected on the page.
8462	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8463
8464	// Width: Page width. For PDFs the unit is points. For images
8465	// (including
8466	// TIFFs) the unit is pixels.
8467	Width int64 `json:"width,omitempty"`
8468
8469	// ForceSendFields is a list of field names (e.g. "Blocks") to
8470	// unconditionally include in API requests. By default, fields with
8471	// empty values are omitted from API requests. However, any non-pointer,
8472	// non-interface field appearing in ForceSendFields will be sent to the
8473	// server regardless of whether the field is empty or not. This may be
8474	// used to include empty fields in Patch requests.
8475	ForceSendFields []string `json:"-"`
8476
8477	// NullFields is a list of field names (e.g. "Blocks") to include in API
8478	// requests with the JSON null value. By default, fields with empty
8479	// values are omitted from API requests. However, any field with an
8480	// empty value appearing in NullFields will be sent to the server as
8481	// null. It is an error if a field in this list has a non-empty value.
8482	// This may be used to include null fields in Patch requests.
8483	NullFields []string `json:"-"`
8484}
8485
8486func (s *GoogleCloudVisionV1p3beta1Page) MarshalJSON() ([]byte, error) {
8487	type NoMethod GoogleCloudVisionV1p3beta1Page
8488	raw := NoMethod(*s)
8489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8490}
8491
8492func (s *GoogleCloudVisionV1p3beta1Page) UnmarshalJSON(data []byte) error {
8493	type NoMethod GoogleCloudVisionV1p3beta1Page
8494	var s1 struct {
8495		Confidence gensupport.JSONFloat64 `json:"confidence"`
8496		*NoMethod
8497	}
8498	s1.NoMethod = (*NoMethod)(s)
8499	if err := json.Unmarshal(data, &s1); err != nil {
8500		return err
8501	}
8502	s.Confidence = float64(s1.Confidence)
8503	return nil
8504}
8505
8506// GoogleCloudVisionV1p3beta1Paragraph: Structural unit of text
8507// representing a number of words in certain order.
8508type GoogleCloudVisionV1p3beta1Paragraph struct {
8509	// BoundingBox: The bounding box for the paragraph.
8510	// The vertices are in the order of top-left, top-right,
8511	// bottom-right,
8512	// bottom-left. When a rotation of the bounding box is detected the
8513	// rotation
8514	// is represented as around the top-left corner as defined when the text
8515	// is
8516	// read in the 'natural' orientation.
8517	// For example:
8518	//   * when the text is horizontal it might look like:
8519	//      0----1
8520	//      |    |
8521	//      3----2
8522	//   * when it's rotated 180 degrees around the top-left corner it
8523	// becomes:
8524	//      2----3
8525	//      |    |
8526	//      1----0
8527	//   and the vertex order will still be (0, 1, 2, 3).
8528	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8529
8530	// Confidence: Confidence of the OCR results for the paragraph. Range
8531	// [0, 1].
8532	Confidence float64 `json:"confidence,omitempty"`
8533
8534	// Property: Additional information detected for the paragraph.
8535	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8536
8537	// Words: List of all words in this paragraph.
8538	Words []*GoogleCloudVisionV1p3beta1Word `json:"words,omitempty"`
8539
8540	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8541	// unconditionally include in API requests. By default, fields with
8542	// empty values are omitted from API requests. However, any non-pointer,
8543	// non-interface field appearing in ForceSendFields will be sent to the
8544	// server regardless of whether the field is empty or not. This may be
8545	// used to include empty fields in Patch requests.
8546	ForceSendFields []string `json:"-"`
8547
8548	// NullFields is a list of field names (e.g. "BoundingBox") to include
8549	// in API requests with the JSON null value. By default, fields with
8550	// empty values are omitted from API requests. However, any field with
8551	// an empty value appearing in NullFields will be sent to the server as
8552	// null. It is an error if a field in this list has a non-empty value.
8553	// This may be used to include null fields in Patch requests.
8554	NullFields []string `json:"-"`
8555}
8556
8557func (s *GoogleCloudVisionV1p3beta1Paragraph) MarshalJSON() ([]byte, error) {
8558	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8559	raw := NoMethod(*s)
8560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8561}
8562
8563func (s *GoogleCloudVisionV1p3beta1Paragraph) UnmarshalJSON(data []byte) error {
8564	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8565	var s1 struct {
8566		Confidence gensupport.JSONFloat64 `json:"confidence"`
8567		*NoMethod
8568	}
8569	s1.NoMethod = (*NoMethod)(s)
8570	if err := json.Unmarshal(data, &s1); err != nil {
8571		return err
8572	}
8573	s.Confidence = float64(s1.Confidence)
8574	return nil
8575}
8576
8577// GoogleCloudVisionV1p3beta1Position: A 3D position in the image, used
8578// primarily for Face detection landmarks.
8579// A valid Position must have both x and y coordinates.
8580// The position coordinates are in the same scale as the original image.
8581type GoogleCloudVisionV1p3beta1Position struct {
8582	// X: X coordinate.
8583	X float64 `json:"x,omitempty"`
8584
8585	// Y: Y coordinate.
8586	Y float64 `json:"y,omitempty"`
8587
8588	// Z: Z coordinate (or depth).
8589	Z float64 `json:"z,omitempty"`
8590
8591	// ForceSendFields is a list of field names (e.g. "X") to
8592	// unconditionally include in API requests. By default, fields with
8593	// empty values are omitted from API requests. However, any non-pointer,
8594	// non-interface field appearing in ForceSendFields will be sent to the
8595	// server regardless of whether the field is empty or not. This may be
8596	// used to include empty fields in Patch requests.
8597	ForceSendFields []string `json:"-"`
8598
8599	// NullFields is a list of field names (e.g. "X") to include in API
8600	// requests with the JSON null value. By default, fields with empty
8601	// values are omitted from API requests. However, any field with an
8602	// empty value appearing in NullFields will be sent to the server as
8603	// null. It is an error if a field in this list has a non-empty value.
8604	// This may be used to include null fields in Patch requests.
8605	NullFields []string `json:"-"`
8606}
8607
8608func (s *GoogleCloudVisionV1p3beta1Position) MarshalJSON() ([]byte, error) {
8609	type NoMethod GoogleCloudVisionV1p3beta1Position
8610	raw := NoMethod(*s)
8611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8612}
8613
8614func (s *GoogleCloudVisionV1p3beta1Position) UnmarshalJSON(data []byte) error {
8615	type NoMethod GoogleCloudVisionV1p3beta1Position
8616	var s1 struct {
8617		X gensupport.JSONFloat64 `json:"x"`
8618		Y gensupport.JSONFloat64 `json:"y"`
8619		Z gensupport.JSONFloat64 `json:"z"`
8620		*NoMethod
8621	}
8622	s1.NoMethod = (*NoMethod)(s)
8623	if err := json.Unmarshal(data, &s1); err != nil {
8624		return err
8625	}
8626	s.X = float64(s1.X)
8627	s.Y = float64(s1.Y)
8628	s.Z = float64(s1.Z)
8629	return nil
8630}
8631
8632// GoogleCloudVisionV1p3beta1Product: A Product contains
8633// ReferenceImages.
8634type GoogleCloudVisionV1p3beta1Product struct {
8635	// Description: User-provided metadata to be stored with this product.
8636	// Must be at most 4096
8637	// characters long.
8638	Description string `json:"description,omitempty"`
8639
8640	// DisplayName: The user-provided name for this Product. Must not be
8641	// empty. Must be at most
8642	// 4096 characters long.
8643	DisplayName string `json:"displayName,omitempty"`
8644
8645	// Name: The resource name of the product.
8646	//
8647	// Format
8648	// is:
8649	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
8650	//
8651	// This field is ignored when creating a product.
8652	Name string `json:"name,omitempty"`
8653
8654	// ProductCategory: Immutable. The category for the product identified
8655	// by the reference image. This should
8656	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
8657	// categories
8658	// "homegoods", "apparel", and "toys" are still supported, but these
8659	// should
8660	// not be used for new products.
8661	ProductCategory string `json:"productCategory,omitempty"`
8662
8663	// ProductLabels: Key-value pairs that can be attached to a product. At
8664	// query time,
8665	// constraints can be specified based on the product_labels.
8666	//
8667	// Note that integer values can be provided as strings, e.g. "1199".
8668	// Only
8669	// strings with integer values can match a range-based restriction which
8670	// is
8671	// to be supported soon.
8672	//
8673	// Multiple values can be assigned to the same key. One product may have
8674	// up to
8675	// 500 product_labels.
8676	//
8677	// Notice that the total number of distinct product_labels over all
8678	// products
8679	// in one ProductSet cannot exceed 1M, otherwise the product search
8680	// pipeline
8681	// will refuse to work for that ProductSet.
8682	ProductLabels []*GoogleCloudVisionV1p3beta1ProductKeyValue `json:"productLabels,omitempty"`
8683
8684	// ForceSendFields is a list of field names (e.g. "Description") to
8685	// unconditionally include in API requests. By default, fields with
8686	// empty values are omitted from API requests. However, any non-pointer,
8687	// non-interface field appearing in ForceSendFields will be sent to the
8688	// server regardless of whether the field is empty or not. This may be
8689	// used to include empty fields in Patch requests.
8690	ForceSendFields []string `json:"-"`
8691
8692	// NullFields is a list of field names (e.g. "Description") to include
8693	// in API requests with the JSON null value. By default, fields with
8694	// empty values are omitted from API requests. However, any field with
8695	// an empty value appearing in NullFields will be sent to the server as
8696	// null. It is an error if a field in this list has a non-empty value.
8697	// This may be used to include null fields in Patch requests.
8698	NullFields []string `json:"-"`
8699}
8700
8701func (s *GoogleCloudVisionV1p3beta1Product) MarshalJSON() ([]byte, error) {
8702	type NoMethod GoogleCloudVisionV1p3beta1Product
8703	raw := NoMethod(*s)
8704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8705}
8706
8707// GoogleCloudVisionV1p3beta1ProductKeyValue: A product label
8708// represented as a key-value pair.
8709type GoogleCloudVisionV1p3beta1ProductKeyValue struct {
8710	// Key: The key of the label attached to the product. Cannot be empty
8711	// and cannot
8712	// exceed 128 bytes.
8713	Key string `json:"key,omitempty"`
8714
8715	// Value: The value of the label attached to the product. Cannot be
8716	// empty and
8717	// cannot exceed 128 bytes.
8718	Value string `json:"value,omitempty"`
8719
8720	// ForceSendFields is a list of field names (e.g. "Key") to
8721	// unconditionally include in API requests. By default, fields with
8722	// empty values are omitted from API requests. However, any non-pointer,
8723	// non-interface field appearing in ForceSendFields will be sent to the
8724	// server regardless of whether the field is empty or not. This may be
8725	// used to include empty fields in Patch requests.
8726	ForceSendFields []string `json:"-"`
8727
8728	// NullFields is a list of field names (e.g. "Key") to include in API
8729	// requests with the JSON null value. By default, fields with empty
8730	// values are omitted from API requests. However, any field with an
8731	// empty value appearing in NullFields will be sent to the server as
8732	// null. It is an error if a field in this list has a non-empty value.
8733	// This may be used to include null fields in Patch requests.
8734	NullFields []string `json:"-"`
8735}
8736
8737func (s *GoogleCloudVisionV1p3beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
8738	type NoMethod GoogleCloudVisionV1p3beta1ProductKeyValue
8739	raw := NoMethod(*s)
8740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8741}
8742
8743// GoogleCloudVisionV1p3beta1ProductSearchResults: Results for a product
8744// search request.
8745type GoogleCloudVisionV1p3beta1ProductSearchResults struct {
8746	// IndexTime: Timestamp of the index which provided these results.
8747	// Products added to the
8748	// product set and products removed from the product set after this time
8749	// are
8750	// not reflected in the current results.
8751	IndexTime string `json:"indexTime,omitempty"`
8752
8753	// ProductGroupedResults: List of results grouped by products detected
8754	// in the query image. Each entry
8755	// corresponds to one bounding polygon in the query image, and contains
8756	// the
8757	// matching products specific to that region. There may be duplicate
8758	// product
8759	// matches in the union of all the per-product results.
8760	ProductGroupedResults []*GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
8761
8762	// Results: List of results, one for each product match.
8763	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8764
8765	// ForceSendFields is a list of field names (e.g. "IndexTime") to
8766	// unconditionally include in API requests. By default, fields with
8767	// empty values are omitted from API requests. However, any non-pointer,
8768	// non-interface field appearing in ForceSendFields will be sent to the
8769	// server regardless of whether the field is empty or not. This may be
8770	// used to include empty fields in Patch requests.
8771	ForceSendFields []string `json:"-"`
8772
8773	// NullFields is a list of field names (e.g. "IndexTime") to include in
8774	// API requests with the JSON null value. By default, fields with empty
8775	// values are omitted from API requests. However, any field with an
8776	// empty value appearing in NullFields will be sent to the server as
8777	// null. It is an error if a field in this list has a non-empty value.
8778	// This may be used to include null fields in Patch requests.
8779	NullFields []string `json:"-"`
8780}
8781
8782func (s *GoogleCloudVisionV1p3beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
8783	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResults
8784	raw := NoMethod(*s)
8785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8786}
8787
8788// GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult:
8789// Information about the products similar to a single product in a
8790// query
8791// image.
8792type GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult struct {
8793	// BoundingPoly: The bounding polygon around the product detected in the
8794	// query image.
8795	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8796
8797	// ObjectAnnotations: List of generic predictions for the object in the
8798	// bounding box.
8799	ObjectAnnotations []*GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
8800
8801	// Results: List of results, one for each product match.
8802	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8803
8804	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8805	// unconditionally include in API requests. By default, fields with
8806	// empty values are omitted from API requests. However, any non-pointer,
8807	// non-interface field appearing in ForceSendFields will be sent to the
8808	// server regardless of whether the field is empty or not. This may be
8809	// used to include empty fields in Patch requests.
8810	ForceSendFields []string `json:"-"`
8811
8812	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8813	// in API requests with the JSON null value. By default, fields with
8814	// empty values are omitted from API requests. However, any field with
8815	// an empty value appearing in NullFields will be sent to the server as
8816	// null. It is an error if a field in this list has a non-empty value.
8817	// This may be used to include null fields in Patch requests.
8818	NullFields []string `json:"-"`
8819}
8820
8821func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
8822	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult
8823	raw := NoMethod(*s)
8824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8825}
8826
8827// GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation:
8828// Prediction for what the object in the bounding box is.
8829type GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation struct {
8830	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8831	// For more
8832	// information,
8833	// see
8834	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8835	LanguageCode string `json:"languageCode,omitempty"`
8836
8837	// Mid: Object ID that should align with EntityAnnotation mid.
8838	Mid string `json:"mid,omitempty"`
8839
8840	// Name: Object name, expressed in its `language_code` language.
8841	Name string `json:"name,omitempty"`
8842
8843	// Score: Score of the result. Range [0, 1].
8844	Score float64 `json:"score,omitempty"`
8845
8846	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
8847	// unconditionally include in API requests. By default, fields with
8848	// empty values are omitted from API requests. However, any non-pointer,
8849	// non-interface field appearing in ForceSendFields will be sent to the
8850	// server regardless of whether the field is empty or not. This may be
8851	// used to include empty fields in Patch requests.
8852	ForceSendFields []string `json:"-"`
8853
8854	// NullFields is a list of field names (e.g. "LanguageCode") to include
8855	// in API requests with the JSON null value. By default, fields with
8856	// empty values are omitted from API requests. However, any field with
8857	// an empty value appearing in NullFields will be sent to the server as
8858	// null. It is an error if a field in this list has a non-empty value.
8859	// This may be used to include null fields in Patch requests.
8860	NullFields []string `json:"-"`
8861}
8862
8863func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
8864	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8865	raw := NoMethod(*s)
8866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8867}
8868
8869func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
8870	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8871	var s1 struct {
8872		Score gensupport.JSONFloat64 `json:"score"`
8873		*NoMethod
8874	}
8875	s1.NoMethod = (*NoMethod)(s)
8876	if err := json.Unmarshal(data, &s1); err != nil {
8877		return err
8878	}
8879	s.Score = float64(s1.Score)
8880	return nil
8881}
8882
8883// GoogleCloudVisionV1p3beta1ProductSearchResultsResult: Information
8884// about a product.
8885type GoogleCloudVisionV1p3beta1ProductSearchResultsResult struct {
8886	// Image: The resource name of the image from the product that is the
8887	// closest match
8888	// to the query.
8889	Image string `json:"image,omitempty"`
8890
8891	// Product: The Product.
8892	Product *GoogleCloudVisionV1p3beta1Product `json:"product,omitempty"`
8893
8894	// Score: A confidence level on the match, ranging from 0 (no
8895	// confidence) to
8896	// 1 (full confidence).
8897	Score float64 `json:"score,omitempty"`
8898
8899	// ForceSendFields is a list of field names (e.g. "Image") to
8900	// unconditionally include in API requests. By default, fields with
8901	// empty values are omitted from API requests. However, any non-pointer,
8902	// non-interface field appearing in ForceSendFields will be sent to the
8903	// server regardless of whether the field is empty or not. This may be
8904	// used to include empty fields in Patch requests.
8905	ForceSendFields []string `json:"-"`
8906
8907	// NullFields is a list of field names (e.g. "Image") to include in API
8908	// requests with the JSON null value. By default, fields with empty
8909	// values are omitted from API requests. However, any field with an
8910	// empty value appearing in NullFields will be sent to the server as
8911	// null. It is an error if a field in this list has a non-empty value.
8912	// This may be used to include null fields in Patch requests.
8913	NullFields []string `json:"-"`
8914}
8915
8916func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
8917	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8918	raw := NoMethod(*s)
8919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8920}
8921
8922func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
8923	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8924	var s1 struct {
8925		Score gensupport.JSONFloat64 `json:"score"`
8926		*NoMethod
8927	}
8928	s1.NoMethod = (*NoMethod)(s)
8929	if err := json.Unmarshal(data, &s1); err != nil {
8930		return err
8931	}
8932	s.Score = float64(s1.Score)
8933	return nil
8934}
8935
8936// GoogleCloudVisionV1p3beta1Property: A `Property` consists of a
8937// user-supplied name/value pair.
8938type GoogleCloudVisionV1p3beta1Property struct {
8939	// Name: Name of the property.
8940	Name string `json:"name,omitempty"`
8941
8942	// Uint64Value: Value of numeric properties.
8943	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
8944
8945	// Value: Value of the property.
8946	Value string `json:"value,omitempty"`
8947
8948	// ForceSendFields is a list of field names (e.g. "Name") to
8949	// unconditionally include in API requests. By default, fields with
8950	// empty values are omitted from API requests. However, any non-pointer,
8951	// non-interface field appearing in ForceSendFields will be sent to the
8952	// server regardless of whether the field is empty or not. This may be
8953	// used to include empty fields in Patch requests.
8954	ForceSendFields []string `json:"-"`
8955
8956	// NullFields is a list of field names (e.g. "Name") to include in API
8957	// requests with the JSON null value. By default, fields with empty
8958	// values are omitted from API requests. However, any field with an
8959	// empty value appearing in NullFields will be sent to the server as
8960	// null. It is an error if a field in this list has a non-empty value.
8961	// This may be used to include null fields in Patch requests.
8962	NullFields []string `json:"-"`
8963}
8964
8965func (s *GoogleCloudVisionV1p3beta1Property) MarshalJSON() ([]byte, error) {
8966	type NoMethod GoogleCloudVisionV1p3beta1Property
8967	raw := NoMethod(*s)
8968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8969}
8970
8971// GoogleCloudVisionV1p3beta1ReferenceImage: A `ReferenceImage`
8972// represents a product image and its associated metadata,
8973// such as bounding boxes.
8974type GoogleCloudVisionV1p3beta1ReferenceImage struct {
8975	// BoundingPolys: Optional. Bounding polygons around the areas of
8976	// interest in the reference image.
8977	// If this field is empty, the system will try to detect regions
8978	// of
8979	// interest. At most 10 bounding polygons will be used.
8980	//
8981	// The provided shape is converted into a non-rotated rectangle.
8982	// Once
8983	// converted, the small edge of the rectangle must be greater than or
8984	// equal
8985	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
8986	// 1:5
8987	// is not).
8988	BoundingPolys []*GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPolys,omitempty"`
8989
8990	// Name: The resource name of the reference image.
8991	//
8992	// Format
8993	// is:
8994	//
8995	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
8996	// ceImages/IMAGE_ID`.
8997	//
8998	// This field is ignored when creating a reference image.
8999	Name string `json:"name,omitempty"`
9000
9001	// Uri: Required. The Google Cloud Storage URI of the reference
9002	// image.
9003	//
9004	// The URI must start with `gs://`.
9005	Uri string `json:"uri,omitempty"`
9006
9007	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
9008	// unconditionally include in API requests. By default, fields with
9009	// empty values are omitted from API requests. However, any non-pointer,
9010	// non-interface field appearing in ForceSendFields will be sent to the
9011	// server regardless of whether the field is empty or not. This may be
9012	// used to include empty fields in Patch requests.
9013	ForceSendFields []string `json:"-"`
9014
9015	// NullFields is a list of field names (e.g. "BoundingPolys") to include
9016	// in API requests with the JSON null value. By default, fields with
9017	// empty values are omitted from API requests. However, any field with
9018	// an empty value appearing in NullFields will be sent to the server as
9019	// null. It is an error if a field in this list has a non-empty value.
9020	// This may be used to include null fields in Patch requests.
9021	NullFields []string `json:"-"`
9022}
9023
9024func (s *GoogleCloudVisionV1p3beta1ReferenceImage) MarshalJSON() ([]byte, error) {
9025	type NoMethod GoogleCloudVisionV1p3beta1ReferenceImage
9026	raw := NoMethod(*s)
9027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9028}
9029
9030// GoogleCloudVisionV1p3beta1SafeSearchAnnotation: Set of features
9031// pertaining to the image, computed by computer vision
9032// methods over safe-search verticals (for example, adult, spoof,
9033// medical,
9034// violence).
9035type GoogleCloudVisionV1p3beta1SafeSearchAnnotation struct {
9036	// Adult: Represents the adult content likelihood for the image. Adult
9037	// content may
9038	// contain elements such as nudity, pornographic images or cartoons,
9039	// or
9040	// sexual activities.
9041	//
9042	// Possible values:
9043	//   "UNKNOWN" - Unknown likelihood.
9044	//   "VERY_UNLIKELY" - It is very unlikely.
9045	//   "UNLIKELY" - It is unlikely.
9046	//   "POSSIBLE" - It is possible.
9047	//   "LIKELY" - It is likely.
9048	//   "VERY_LIKELY" - It is very likely.
9049	Adult string `json:"adult,omitempty"`
9050
9051	// Medical: Likelihood that this is a medical image.
9052	//
9053	// Possible values:
9054	//   "UNKNOWN" - Unknown likelihood.
9055	//   "VERY_UNLIKELY" - It is very unlikely.
9056	//   "UNLIKELY" - It is unlikely.
9057	//   "POSSIBLE" - It is possible.
9058	//   "LIKELY" - It is likely.
9059	//   "VERY_LIKELY" - It is very likely.
9060	Medical string `json:"medical,omitempty"`
9061
9062	// Racy: Likelihood that the request image contains racy content. Racy
9063	// content may
9064	// include (but is not limited to) skimpy or sheer clothing,
9065	// strategically
9066	// covered nudity, lewd or provocative poses, or close-ups of
9067	// sensitive
9068	// body areas.
9069	//
9070	// Possible values:
9071	//   "UNKNOWN" - Unknown likelihood.
9072	//   "VERY_UNLIKELY" - It is very unlikely.
9073	//   "UNLIKELY" - It is unlikely.
9074	//   "POSSIBLE" - It is possible.
9075	//   "LIKELY" - It is likely.
9076	//   "VERY_LIKELY" - It is very likely.
9077	Racy string `json:"racy,omitempty"`
9078
9079	// Spoof: Spoof likelihood. The likelihood that an modification
9080	// was made to the image's canonical version to make it appear
9081	// funny or offensive.
9082	//
9083	// Possible values:
9084	//   "UNKNOWN" - Unknown likelihood.
9085	//   "VERY_UNLIKELY" - It is very unlikely.
9086	//   "UNLIKELY" - It is unlikely.
9087	//   "POSSIBLE" - It is possible.
9088	//   "LIKELY" - It is likely.
9089	//   "VERY_LIKELY" - It is very likely.
9090	Spoof string `json:"spoof,omitempty"`
9091
9092	// Violence: Likelihood that this image contains violent content.
9093	//
9094	// Possible values:
9095	//   "UNKNOWN" - Unknown likelihood.
9096	//   "VERY_UNLIKELY" - It is very unlikely.
9097	//   "UNLIKELY" - It is unlikely.
9098	//   "POSSIBLE" - It is possible.
9099	//   "LIKELY" - It is likely.
9100	//   "VERY_LIKELY" - It is very likely.
9101	Violence string `json:"violence,omitempty"`
9102
9103	// ForceSendFields is a list of field names (e.g. "Adult") to
9104	// unconditionally include in API requests. By default, fields with
9105	// empty values are omitted from API requests. However, any non-pointer,
9106	// non-interface field appearing in ForceSendFields will be sent to the
9107	// server regardless of whether the field is empty or not. This may be
9108	// used to include empty fields in Patch requests.
9109	ForceSendFields []string `json:"-"`
9110
9111	// NullFields is a list of field names (e.g. "Adult") to include in API
9112	// requests with the JSON null value. By default, fields with empty
9113	// values are omitted from API requests. However, any field with an
9114	// empty value appearing in NullFields will be sent to the server as
9115	// null. It is an error if a field in this list has a non-empty value.
9116	// This may be used to include null fields in Patch requests.
9117	NullFields []string `json:"-"`
9118}
9119
9120func (s *GoogleCloudVisionV1p3beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
9121	type NoMethod GoogleCloudVisionV1p3beta1SafeSearchAnnotation
9122	raw := NoMethod(*s)
9123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9124}
9125
9126// GoogleCloudVisionV1p3beta1Symbol: A single symbol representation.
9127type GoogleCloudVisionV1p3beta1Symbol struct {
9128	// BoundingBox: The bounding box for the symbol.
9129	// The vertices are in the order of top-left, top-right,
9130	// bottom-right,
9131	// bottom-left. When a rotation of the bounding box is detected the
9132	// rotation
9133	// is represented as around the top-left corner as defined when the text
9134	// is
9135	// read in the 'natural' orientation.
9136	// For example:
9137	//   * when the text is horizontal it might look like:
9138	//      0----1
9139	//      |    |
9140	//      3----2
9141	//   * when it's rotated 180 degrees around the top-left corner it
9142	// becomes:
9143	//      2----3
9144	//      |    |
9145	//      1----0
9146	//   and the vertex order will still be (0, 1, 2, 3).
9147	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9148
9149	// Confidence: Confidence of the OCR results for the symbol. Range [0,
9150	// 1].
9151	Confidence float64 `json:"confidence,omitempty"`
9152
9153	// Property: Additional information detected for the symbol.
9154	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9155
9156	// Text: The actual UTF-8 representation of the symbol.
9157	Text string `json:"text,omitempty"`
9158
9159	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9160	// unconditionally include in API requests. By default, fields with
9161	// empty values are omitted from API requests. However, any non-pointer,
9162	// non-interface field appearing in ForceSendFields will be sent to the
9163	// server regardless of whether the field is empty or not. This may be
9164	// used to include empty fields in Patch requests.
9165	ForceSendFields []string `json:"-"`
9166
9167	// NullFields is a list of field names (e.g. "BoundingBox") to include
9168	// in API requests with the JSON null value. By default, fields with
9169	// empty values are omitted from API requests. However, any field with
9170	// an empty value appearing in NullFields will be sent to the server as
9171	// null. It is an error if a field in this list has a non-empty value.
9172	// This may be used to include null fields in Patch requests.
9173	NullFields []string `json:"-"`
9174}
9175
9176func (s *GoogleCloudVisionV1p3beta1Symbol) MarshalJSON() ([]byte, error) {
9177	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9178	raw := NoMethod(*s)
9179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9180}
9181
9182func (s *GoogleCloudVisionV1p3beta1Symbol) UnmarshalJSON(data []byte) error {
9183	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9184	var s1 struct {
9185		Confidence gensupport.JSONFloat64 `json:"confidence"`
9186		*NoMethod
9187	}
9188	s1.NoMethod = (*NoMethod)(s)
9189	if err := json.Unmarshal(data, &s1); err != nil {
9190		return err
9191	}
9192	s.Confidence = float64(s1.Confidence)
9193	return nil
9194}
9195
9196// GoogleCloudVisionV1p3beta1TextAnnotation: TextAnnotation contains a
9197// structured representation of OCR extracted text.
9198// The hierarchy of an OCR extracted text structure is like this:
9199//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
9200// Symbol
9201// Each structural component, starting from Page, may further have their
9202// own
9203// properties. Properties describe detected languages, breaks etc..
9204// Please refer
9205// to the TextAnnotation.TextProperty message definition below for
9206// more
9207// detail.
9208type GoogleCloudVisionV1p3beta1TextAnnotation struct {
9209	// Pages: List of pages detected by OCR.
9210	Pages []*GoogleCloudVisionV1p3beta1Page `json:"pages,omitempty"`
9211
9212	// Text: UTF-8 text detected on the pages.
9213	Text string `json:"text,omitempty"`
9214
9215	// ForceSendFields is a list of field names (e.g. "Pages") to
9216	// unconditionally include in API requests. By default, fields with
9217	// empty values are omitted from API requests. However, any non-pointer,
9218	// non-interface field appearing in ForceSendFields will be sent to the
9219	// server regardless of whether the field is empty or not. This may be
9220	// used to include empty fields in Patch requests.
9221	ForceSendFields []string `json:"-"`
9222
9223	// NullFields is a list of field names (e.g. "Pages") to include in API
9224	// requests with the JSON null value. By default, fields with empty
9225	// values are omitted from API requests. However, any field with an
9226	// empty value appearing in NullFields will be sent to the server as
9227	// null. It is an error if a field in this list has a non-empty value.
9228	// This may be used to include null fields in Patch requests.
9229	NullFields []string `json:"-"`
9230}
9231
9232func (s *GoogleCloudVisionV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
9233	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotation
9234	raw := NoMethod(*s)
9235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9236}
9237
9238// GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak: Detected start
9239// or end of a structural component.
9240type GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak struct {
9241	// IsPrefix: True if break prepends the element.
9242	IsPrefix bool `json:"isPrefix,omitempty"`
9243
9244	// Type: Detected break type.
9245	//
9246	// Possible values:
9247	//   "UNKNOWN" - Unknown break label type.
9248	//   "SPACE" - Regular space.
9249	//   "SURE_SPACE" - Sure space (very wide).
9250	//   "EOL_SURE_SPACE" - Line-wrapping break.
9251	//   "HYPHEN" - End-line hyphen that is not present in text; does not
9252	// co-occur with
9253	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
9254	//   "LINE_BREAK" - Line break that ends a paragraph.
9255	Type string `json:"type,omitempty"`
9256
9257	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
9258	// unconditionally include in API requests. By default, fields with
9259	// empty values are omitted from API requests. However, any non-pointer,
9260	// non-interface field appearing in ForceSendFields will be sent to the
9261	// server regardless of whether the field is empty or not. This may be
9262	// used to include empty fields in Patch requests.
9263	ForceSendFields []string `json:"-"`
9264
9265	// NullFields is a list of field names (e.g. "IsPrefix") to include in
9266	// API requests with the JSON null value. By default, fields with empty
9267	// values are omitted from API requests. However, any field with an
9268	// empty value appearing in NullFields will be sent to the server as
9269	// null. It is an error if a field in this list has a non-empty value.
9270	// This may be used to include null fields in Patch requests.
9271	NullFields []string `json:"-"`
9272}
9273
9274func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
9275	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak
9276	raw := NoMethod(*s)
9277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9278}
9279
9280// GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage: Detected
9281// language for a structural component.
9282type GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage struct {
9283	// Confidence: Confidence of detected language. Range [0, 1].
9284	Confidence float64 `json:"confidence,omitempty"`
9285
9286	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
9287	// For more
9288	// information,
9289	// see
9290	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9291	LanguageCode string `json:"languageCode,omitempty"`
9292
9293	// ForceSendFields is a list of field names (e.g. "Confidence") to
9294	// unconditionally include in API requests. By default, fields with
9295	// empty values are omitted from API requests. However, any non-pointer,
9296	// non-interface field appearing in ForceSendFields will be sent to the
9297	// server regardless of whether the field is empty or not. This may be
9298	// used to include empty fields in Patch requests.
9299	ForceSendFields []string `json:"-"`
9300
9301	// NullFields is a list of field names (e.g. "Confidence") to include in
9302	// API requests with the JSON null value. By default, fields with empty
9303	// values are omitted from API requests. However, any field with an
9304	// empty value appearing in NullFields will be sent to the server as
9305	// null. It is an error if a field in this list has a non-empty value.
9306	// This may be used to include null fields in Patch requests.
9307	NullFields []string `json:"-"`
9308}
9309
9310func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
9311	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9312	raw := NoMethod(*s)
9313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9314}
9315
9316func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
9317	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9318	var s1 struct {
9319		Confidence gensupport.JSONFloat64 `json:"confidence"`
9320		*NoMethod
9321	}
9322	s1.NoMethod = (*NoMethod)(s)
9323	if err := json.Unmarshal(data, &s1); err != nil {
9324		return err
9325	}
9326	s.Confidence = float64(s1.Confidence)
9327	return nil
9328}
9329
9330// GoogleCloudVisionV1p3beta1TextAnnotationTextProperty: Additional
9331// information detected on the structural component.
9332type GoogleCloudVisionV1p3beta1TextAnnotationTextProperty struct {
9333	// DetectedBreak: Detected start or end of a text segment.
9334	DetectedBreak *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
9335
9336	// DetectedLanguages: A list of detected languages together with
9337	// confidence.
9338	DetectedLanguages []*GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
9339
9340	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
9341	// unconditionally include in API requests. By default, fields with
9342	// empty values are omitted from API requests. However, any non-pointer,
9343	// non-interface field appearing in ForceSendFields will be sent to the
9344	// server regardless of whether the field is empty or not. This may be
9345	// used to include empty fields in Patch requests.
9346	ForceSendFields []string `json:"-"`
9347
9348	// NullFields is a list of field names (e.g. "DetectedBreak") to include
9349	// in API requests with the JSON null value. By default, fields with
9350	// empty values are omitted from API requests. However, any field with
9351	// an empty value appearing in NullFields will be sent to the server as
9352	// null. It is an error if a field in this list has a non-empty value.
9353	// This may be used to include null fields in Patch requests.
9354	NullFields []string `json:"-"`
9355}
9356
9357func (s *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
9358	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationTextProperty
9359	raw := NoMethod(*s)
9360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9361}
9362
9363// GoogleCloudVisionV1p3beta1Vertex: A vertex represents a 2D point in
9364// the image.
9365// NOTE: the vertex coordinates are in the same scale as the original
9366// image.
9367type GoogleCloudVisionV1p3beta1Vertex struct {
9368	// X: X coordinate.
9369	X int64 `json:"x,omitempty"`
9370
9371	// Y: Y coordinate.
9372	Y int64 `json:"y,omitempty"`
9373
9374	// ForceSendFields is a list of field names (e.g. "X") to
9375	// unconditionally include in API requests. By default, fields with
9376	// empty values are omitted from API requests. However, any non-pointer,
9377	// non-interface field appearing in ForceSendFields will be sent to the
9378	// server regardless of whether the field is empty or not. This may be
9379	// used to include empty fields in Patch requests.
9380	ForceSendFields []string `json:"-"`
9381
9382	// NullFields is a list of field names (e.g. "X") to include in API
9383	// requests with the JSON null value. By default, fields with empty
9384	// values are omitted from API requests. However, any field with an
9385	// empty value appearing in NullFields will be sent to the server as
9386	// null. It is an error if a field in this list has a non-empty value.
9387	// This may be used to include null fields in Patch requests.
9388	NullFields []string `json:"-"`
9389}
9390
9391func (s *GoogleCloudVisionV1p3beta1Vertex) MarshalJSON() ([]byte, error) {
9392	type NoMethod GoogleCloudVisionV1p3beta1Vertex
9393	raw := NoMethod(*s)
9394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9395}
9396
9397// GoogleCloudVisionV1p3beta1WebDetection: Relevant information for the
9398// image from the Internet.
9399type GoogleCloudVisionV1p3beta1WebDetection struct {
9400	// BestGuessLabels: The service's best guess as to the topic of the
9401	// request image.
9402	// Inferred from similar images on the open web.
9403	BestGuessLabels []*GoogleCloudVisionV1p3beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
9404
9405	// FullMatchingImages: Fully matching images from the Internet.
9406	// Can include resized copies of the query image.
9407	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9408
9409	// PagesWithMatchingImages: Web pages containing the matching images
9410	// from the Internet.
9411	PagesWithMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
9412
9413	// PartialMatchingImages: Partial matching images from the
9414	// Internet.
9415	// Those images are similar enough to share some key-point features.
9416	// For
9417	// example an original image will likely have partial matching for its
9418	// crops.
9419	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9420
9421	// VisuallySimilarImages: The visually similar image results.
9422	VisuallySimilarImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
9423
9424	// WebEntities: Deduced entities from similar images on the Internet.
9425	WebEntities []*GoogleCloudVisionV1p3beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
9426
9427	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
9428	// unconditionally include in API requests. By default, fields with
9429	// empty values are omitted from API requests. However, any non-pointer,
9430	// non-interface field appearing in ForceSendFields will be sent to the
9431	// server regardless of whether the field is empty or not. This may be
9432	// used to include empty fields in Patch requests.
9433	ForceSendFields []string `json:"-"`
9434
9435	// NullFields is a list of field names (e.g. "BestGuessLabels") to
9436	// include in API requests with the JSON null value. By default, fields
9437	// with empty values are omitted from API requests. However, any field
9438	// with an empty value appearing in NullFields will be sent to the
9439	// server as null. It is an error if a field in this list has a
9440	// non-empty value. This may be used to include null fields in Patch
9441	// requests.
9442	NullFields []string `json:"-"`
9443}
9444
9445func (s *GoogleCloudVisionV1p3beta1WebDetection) MarshalJSON() ([]byte, error) {
9446	type NoMethod GoogleCloudVisionV1p3beta1WebDetection
9447	raw := NoMethod(*s)
9448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9449}
9450
9451// GoogleCloudVisionV1p3beta1WebDetectionWebEntity: Entity deduced from
9452// similar images on the Internet.
9453type GoogleCloudVisionV1p3beta1WebDetectionWebEntity struct {
9454	// Description: Canonical description of the entity, in English.
9455	Description string `json:"description,omitempty"`
9456
9457	// EntityId: Opaque entity ID.
9458	EntityId string `json:"entityId,omitempty"`
9459
9460	// Score: Overall relevancy score for the entity.
9461	// Not normalized and not comparable across different image queries.
9462	Score float64 `json:"score,omitempty"`
9463
9464	// ForceSendFields is a list of field names (e.g. "Description") to
9465	// unconditionally include in API requests. By default, fields with
9466	// empty values are omitted from API requests. However, any non-pointer,
9467	// non-interface field appearing in ForceSendFields will be sent to the
9468	// server regardless of whether the field is empty or not. This may be
9469	// used to include empty fields in Patch requests.
9470	ForceSendFields []string `json:"-"`
9471
9472	// NullFields is a list of field names (e.g. "Description") to include
9473	// in API requests with the JSON null value. By default, fields with
9474	// empty values are omitted from API requests. However, any field with
9475	// an empty value appearing in NullFields will be sent to the server as
9476	// null. It is an error if a field in this list has a non-empty value.
9477	// This may be used to include null fields in Patch requests.
9478	NullFields []string `json:"-"`
9479}
9480
9481func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
9482	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9483	raw := NoMethod(*s)
9484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9485}
9486
9487func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
9488	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9489	var s1 struct {
9490		Score gensupport.JSONFloat64 `json:"score"`
9491		*NoMethod
9492	}
9493	s1.NoMethod = (*NoMethod)(s)
9494	if err := json.Unmarshal(data, &s1); err != nil {
9495		return err
9496	}
9497	s.Score = float64(s1.Score)
9498	return nil
9499}
9500
9501// GoogleCloudVisionV1p3beta1WebDetectionWebImage: Metadata for online
9502// images.
9503type GoogleCloudVisionV1p3beta1WebDetectionWebImage struct {
9504	// Score: (Deprecated) Overall relevancy score for the image.
9505	Score float64 `json:"score,omitempty"`
9506
9507	// Url: The result image URL.
9508	Url string `json:"url,omitempty"`
9509
9510	// ForceSendFields is a list of field names (e.g. "Score") to
9511	// unconditionally include in API requests. By default, fields with
9512	// empty values are omitted from API requests. However, any non-pointer,
9513	// non-interface field appearing in ForceSendFields will be sent to the
9514	// server regardless of whether the field is empty or not. This may be
9515	// used to include empty fields in Patch requests.
9516	ForceSendFields []string `json:"-"`
9517
9518	// NullFields is a list of field names (e.g. "Score") to include in API
9519	// requests with the JSON null value. By default, fields with empty
9520	// values are omitted from API requests. However, any field with an
9521	// empty value appearing in NullFields will be sent to the server as
9522	// null. It is an error if a field in this list has a non-empty value.
9523	// This may be used to include null fields in Patch requests.
9524	NullFields []string `json:"-"`
9525}
9526
9527func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
9528	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9529	raw := NoMethod(*s)
9530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9531}
9532
9533func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
9534	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9535	var s1 struct {
9536		Score gensupport.JSONFloat64 `json:"score"`
9537		*NoMethod
9538	}
9539	s1.NoMethod = (*NoMethod)(s)
9540	if err := json.Unmarshal(data, &s1); err != nil {
9541		return err
9542	}
9543	s.Score = float64(s1.Score)
9544	return nil
9545}
9546
9547// GoogleCloudVisionV1p3beta1WebDetectionWebLabel: Label to provide
9548// extra metadata for the web detection.
9549type GoogleCloudVisionV1p3beta1WebDetectionWebLabel struct {
9550	// Label: Label for extra metadata.
9551	Label string `json:"label,omitempty"`
9552
9553	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
9554	// or "sr-Latn".
9555	// For more information,
9556	// see
9557	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9558	LanguageCode string `json:"languageCode,omitempty"`
9559
9560	// ForceSendFields is a list of field names (e.g. "Label") to
9561	// unconditionally include in API requests. By default, fields with
9562	// empty values are omitted from API requests. However, any non-pointer,
9563	// non-interface field appearing in ForceSendFields will be sent to the
9564	// server regardless of whether the field is empty or not. This may be
9565	// used to include empty fields in Patch requests.
9566	ForceSendFields []string `json:"-"`
9567
9568	// NullFields is a list of field names (e.g. "Label") to include in API
9569	// requests with the JSON null value. By default, fields with empty
9570	// values are omitted from API requests. However, any field with an
9571	// empty value appearing in NullFields will be sent to the server as
9572	// null. It is an error if a field in this list has a non-empty value.
9573	// This may be used to include null fields in Patch requests.
9574	NullFields []string `json:"-"`
9575}
9576
9577func (s *GoogleCloudVisionV1p3beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
9578	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebLabel
9579	raw := NoMethod(*s)
9580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9581}
9582
9583// GoogleCloudVisionV1p3beta1WebDetectionWebPage: Metadata for web
9584// pages.
9585type GoogleCloudVisionV1p3beta1WebDetectionWebPage struct {
9586	// FullMatchingImages: Fully matching images on the page.
9587	// Can include resized copies of the query image.
9588	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9589
9590	// PageTitle: Title for the web page, may contain HTML markups.
9591	PageTitle string `json:"pageTitle,omitempty"`
9592
9593	// PartialMatchingImages: Partial matching images on the page.
9594	// Those images are similar enough to share some key-point features.
9595	// For
9596	// example an original image will likely have partial matching for
9597	// its
9598	// crops.
9599	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9600
9601	// Score: (Deprecated) Overall relevancy score for the web page.
9602	Score float64 `json:"score,omitempty"`
9603
9604	// Url: The result web page URL.
9605	Url string `json:"url,omitempty"`
9606
9607	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
9608	// to unconditionally include in API requests. By default, fields with
9609	// empty values are omitted from API requests. However, any non-pointer,
9610	// non-interface field appearing in ForceSendFields will be sent to the
9611	// server regardless of whether the field is empty or not. This may be
9612	// used to include empty fields in Patch requests.
9613	ForceSendFields []string `json:"-"`
9614
9615	// NullFields is a list of field names (e.g. "FullMatchingImages") to
9616	// include in API requests with the JSON null value. By default, fields
9617	// with empty values are omitted from API requests. However, any field
9618	// with an empty value appearing in NullFields will be sent to the
9619	// server as null. It is an error if a field in this list has a
9620	// non-empty value. This may be used to include null fields in Patch
9621	// requests.
9622	NullFields []string `json:"-"`
9623}
9624
9625func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
9626	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9627	raw := NoMethod(*s)
9628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9629}
9630
9631func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
9632	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9633	var s1 struct {
9634		Score gensupport.JSONFloat64 `json:"score"`
9635		*NoMethod
9636	}
9637	s1.NoMethod = (*NoMethod)(s)
9638	if err := json.Unmarshal(data, &s1); err != nil {
9639		return err
9640	}
9641	s.Score = float64(s1.Score)
9642	return nil
9643}
9644
9645// GoogleCloudVisionV1p3beta1Word: A word representation.
9646type GoogleCloudVisionV1p3beta1Word struct {
9647	// BoundingBox: The bounding box for the word.
9648	// The vertices are in the order of top-left, top-right,
9649	// bottom-right,
9650	// bottom-left. When a rotation of the bounding box is detected the
9651	// rotation
9652	// is represented as around the top-left corner as defined when the text
9653	// is
9654	// read in the 'natural' orientation.
9655	// For example:
9656	//   * when the text is horizontal it might look like:
9657	//      0----1
9658	//      |    |
9659	//      3----2
9660	//   * when it's rotated 180 degrees around the top-left corner it
9661	// becomes:
9662	//      2----3
9663	//      |    |
9664	//      1----0
9665	//   and the vertex order will still be (0, 1, 2, 3).
9666	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9667
9668	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
9669	Confidence float64 `json:"confidence,omitempty"`
9670
9671	// Property: Additional information detected for the word.
9672	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9673
9674	// Symbols: List of symbols in the word.
9675	// The order of the symbols follows the natural reading order.
9676	Symbols []*GoogleCloudVisionV1p3beta1Symbol `json:"symbols,omitempty"`
9677
9678	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9679	// unconditionally include in API requests. By default, fields with
9680	// empty values are omitted from API requests. However, any non-pointer,
9681	// non-interface field appearing in ForceSendFields will be sent to the
9682	// server regardless of whether the field is empty or not. This may be
9683	// used to include empty fields in Patch requests.
9684	ForceSendFields []string `json:"-"`
9685
9686	// NullFields is a list of field names (e.g. "BoundingBox") to include
9687	// in API requests with the JSON null value. By default, fields with
9688	// empty values are omitted from API requests. However, any field with
9689	// an empty value appearing in NullFields will be sent to the server as
9690	// null. It is an error if a field in this list has a non-empty value.
9691	// This may be used to include null fields in Patch requests.
9692	NullFields []string `json:"-"`
9693}
9694
9695func (s *GoogleCloudVisionV1p3beta1Word) MarshalJSON() ([]byte, error) {
9696	type NoMethod GoogleCloudVisionV1p3beta1Word
9697	raw := NoMethod(*s)
9698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9699}
9700
9701func (s *GoogleCloudVisionV1p3beta1Word) UnmarshalJSON(data []byte) error {
9702	type NoMethod GoogleCloudVisionV1p3beta1Word
9703	var s1 struct {
9704		Confidence gensupport.JSONFloat64 `json:"confidence"`
9705		*NoMethod
9706	}
9707	s1.NoMethod = (*NoMethod)(s)
9708	if err := json.Unmarshal(data, &s1); err != nil {
9709		return err
9710	}
9711	s.Confidence = float64(s1.Confidence)
9712	return nil
9713}
9714
9715// GoogleCloudVisionV1p4beta1AnnotateFileResponse: Response to a single
9716// file annotation request. A file may contain one or more
9717// images, which individually have their own responses.
9718type GoogleCloudVisionV1p4beta1AnnotateFileResponse struct {
9719	// Error: If set, represents the error message for the failed request.
9720	// The
9721	// `responses` field will not be set in this case.
9722	Error *Status `json:"error,omitempty"`
9723
9724	// InputConfig: Information about the file for which this response is
9725	// generated.
9726	InputConfig *GoogleCloudVisionV1p4beta1InputConfig `json:"inputConfig,omitempty"`
9727
9728	// Responses: Individual responses to images found within the file. This
9729	// field will be
9730	// empty if the `error` field is set.
9731	Responses []*GoogleCloudVisionV1p4beta1AnnotateImageResponse `json:"responses,omitempty"`
9732
9733	// TotalPages: This field gives the total number of pages in the file.
9734	TotalPages int64 `json:"totalPages,omitempty"`
9735
9736	// ForceSendFields is a list of field names (e.g. "Error") to
9737	// unconditionally include in API requests. By default, fields with
9738	// empty values are omitted from API requests. However, any non-pointer,
9739	// non-interface field appearing in ForceSendFields will be sent to the
9740	// server regardless of whether the field is empty or not. This may be
9741	// used to include empty fields in Patch requests.
9742	ForceSendFields []string `json:"-"`
9743
9744	// NullFields is a list of field names (e.g. "Error") to include in API
9745	// requests with the JSON null value. By default, fields with empty
9746	// values are omitted from API requests. However, any field with an
9747	// empty value appearing in NullFields will be sent to the server as
9748	// null. It is an error if a field in this list has a non-empty value.
9749	// This may be used to include null fields in Patch requests.
9750	NullFields []string `json:"-"`
9751}
9752
9753func (s *GoogleCloudVisionV1p4beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
9754	type NoMethod GoogleCloudVisionV1p4beta1AnnotateFileResponse
9755	raw := NoMethod(*s)
9756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9757}
9758
9759// GoogleCloudVisionV1p4beta1AnnotateImageResponse: Response to an image
9760// annotation request.
9761type GoogleCloudVisionV1p4beta1AnnotateImageResponse struct {
9762	// Context: If present, contextual information is needed to understand
9763	// where this image
9764	// comes from.
9765	Context *GoogleCloudVisionV1p4beta1ImageAnnotationContext `json:"context,omitempty"`
9766
9767	// CropHintsAnnotation: If present, crop hints have completed
9768	// successfully.
9769	CropHintsAnnotation *GoogleCloudVisionV1p4beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
9770
9771	// Error: If set, represents the error message for the operation.
9772	// Note that filled-in image annotations are guaranteed to be
9773	// correct, even when `error` is set.
9774	Error *Status `json:"error,omitempty"`
9775
9776	// FaceAnnotations: If present, face detection has completed
9777	// successfully.
9778	FaceAnnotations []*GoogleCloudVisionV1p4beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
9779
9780	// FullTextAnnotation: If present, text (OCR) detection or document
9781	// (OCR) text detection has
9782	// completed successfully.
9783	// This annotation provides the structural hierarchy for the OCR
9784	// detected
9785	// text.
9786	FullTextAnnotation *GoogleCloudVisionV1p4beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
9787
9788	// ImagePropertiesAnnotation: If present, image properties were
9789	// extracted successfully.
9790	ImagePropertiesAnnotation *GoogleCloudVisionV1p4beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
9791
9792	// LabelAnnotations: If present, label detection has completed
9793	// successfully.
9794	LabelAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
9795
9796	// LandmarkAnnotations: If present, landmark detection has completed
9797	// successfully.
9798	LandmarkAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
9799
9800	// LocalizedObjectAnnotations: If present, localized object detection
9801	// has completed successfully.
9802	// This will be sorted descending by confidence score.
9803	LocalizedObjectAnnotations []*GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
9804
9805	// LogoAnnotations: If present, logo detection has completed
9806	// successfully.
9807	LogoAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
9808
9809	// ProductSearchResults: If present, product search has completed
9810	// successfully.
9811	ProductSearchResults *GoogleCloudVisionV1p4beta1ProductSearchResults `json:"productSearchResults,omitempty"`
9812
9813	// SafeSearchAnnotation: If present, safe-search annotation has
9814	// completed successfully.
9815	SafeSearchAnnotation *GoogleCloudVisionV1p4beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
9816
9817	// TextAnnotations: If present, text (OCR) detection has completed
9818	// successfully.
9819	TextAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"textAnnotations,omitempty"`
9820
9821	// WebDetection: If present, web detection has completed successfully.
9822	WebDetection *GoogleCloudVisionV1p4beta1WebDetection `json:"webDetection,omitempty"`
9823
9824	// ForceSendFields is a list of field names (e.g. "Context") to
9825	// unconditionally include in API requests. By default, fields with
9826	// empty values are omitted from API requests. However, any non-pointer,
9827	// non-interface field appearing in ForceSendFields will be sent to the
9828	// server regardless of whether the field is empty or not. This may be
9829	// used to include empty fields in Patch requests.
9830	ForceSendFields []string `json:"-"`
9831
9832	// NullFields is a list of field names (e.g. "Context") to include in
9833	// API requests with the JSON null value. By default, fields with empty
9834	// values are omitted from API requests. However, any field with an
9835	// empty value appearing in NullFields will be sent to the server as
9836	// null. It is an error if a field in this list has a non-empty value.
9837	// This may be used to include null fields in Patch requests.
9838	NullFields []string `json:"-"`
9839}
9840
9841func (s *GoogleCloudVisionV1p4beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
9842	type NoMethod GoogleCloudVisionV1p4beta1AnnotateImageResponse
9843	raw := NoMethod(*s)
9844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9845}
9846
9847// GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse: The response for
9848// a single offline file annotation request.
9849type GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse struct {
9850	// OutputConfig: The output location and metadata from
9851	// AsyncAnnotateFileRequest.
9852	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9853
9854	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9855	// unconditionally include in API requests. By default, fields with
9856	// empty values are omitted from API requests. However, any non-pointer,
9857	// non-interface field appearing in ForceSendFields will be sent to the
9858	// server regardless of whether the field is empty or not. This may be
9859	// used to include empty fields in Patch requests.
9860	ForceSendFields []string `json:"-"`
9861
9862	// NullFields is a list of field names (e.g. "OutputConfig") to include
9863	// in API requests with the JSON null value. By default, fields with
9864	// empty values are omitted from API requests. However, any field with
9865	// an empty value appearing in NullFields will be sent to the server as
9866	// null. It is an error if a field in this list has a non-empty value.
9867	// This may be used to include null fields in Patch requests.
9868	NullFields []string `json:"-"`
9869}
9870
9871func (s *GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
9872	type NoMethod GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse
9873	raw := NoMethod(*s)
9874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9875}
9876
9877// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse: Response
9878// to an async batch file annotation request.
9879type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse struct {
9880	// Responses: The list of file annotation responses, one for each
9881	// request in
9882	// AsyncBatchAnnotateFilesRequest.
9883	Responses []*GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
9884
9885	// ForceSendFields is a list of field names (e.g. "Responses") to
9886	// unconditionally include in API requests. By default, fields with
9887	// empty values are omitted from API requests. However, any non-pointer,
9888	// non-interface field appearing in ForceSendFields will be sent to the
9889	// server regardless of whether the field is empty or not. This may be
9890	// used to include empty fields in Patch requests.
9891	ForceSendFields []string `json:"-"`
9892
9893	// NullFields is a list of field names (e.g. "Responses") 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 *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9903	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse
9904	raw := NoMethod(*s)
9905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9906}
9907
9908// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse: Response
9909// to an async batch image annotation request.
9910type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse struct {
9911	// OutputConfig: The output location and metadata from
9912	// AsyncBatchAnnotateImagesRequest.
9913	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9914
9915	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9916	// unconditionally include in API requests. By default, fields with
9917	// empty values are omitted from API requests. However, any non-pointer,
9918	// non-interface field appearing in ForceSendFields will be sent to the
9919	// server regardless of whether the field is empty or not. This may be
9920	// used to include empty fields in Patch requests.
9921	ForceSendFields []string `json:"-"`
9922
9923	// NullFields is a list of field names (e.g. "OutputConfig") to include
9924	// in API requests with the JSON null value. By default, fields with
9925	// empty values are omitted from API requests. However, any field with
9926	// an empty value appearing in NullFields will be sent to the server as
9927	// null. It is an error if a field in this list has a non-empty value.
9928	// This may be used to include null fields in Patch requests.
9929	NullFields []string `json:"-"`
9930}
9931
9932func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
9933	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse
9934	raw := NoMethod(*s)
9935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9936}
9937
9938// GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse: A list of file
9939// annotation responses.
9940type GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse struct {
9941	// Responses: The list of file annotation responses, each response
9942	// corresponding to each
9943	// AnnotateFileRequest in BatchAnnotateFilesRequest.
9944	Responses []*GoogleCloudVisionV1p4beta1AnnotateFileResponse `json:"responses,omitempty"`
9945
9946	// ForceSendFields is a list of field names (e.g. "Responses") to
9947	// unconditionally include in API requests. By default, fields with
9948	// empty values are omitted from API requests. However, any non-pointer,
9949	// non-interface field appearing in ForceSendFields will be sent to the
9950	// server regardless of whether the field is empty or not. This may be
9951	// used to include empty fields in Patch requests.
9952	ForceSendFields []string `json:"-"`
9953
9954	// NullFields is a list of field names (e.g. "Responses") to include in
9955	// API requests with the JSON null value. By default, fields with empty
9956	// values are omitted from API requests. However, any field with an
9957	// empty value appearing in NullFields will be sent to the server as
9958	// null. It is an error if a field in this list has a non-empty value.
9959	// This may be used to include null fields in Patch requests.
9960	NullFields []string `json:"-"`
9961}
9962
9963func (s *GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9964	type NoMethod GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse
9965	raw := NoMethod(*s)
9966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9967}
9968
9969// GoogleCloudVisionV1p4beta1BatchOperationMetadata: Metadata for the
9970// batch operations such as the current state.
9971//
9972// This is included in the `metadata` field of the `Operation` returned
9973// by the
9974// `GetOperation` call of the `google::longrunning::Operations` service.
9975type GoogleCloudVisionV1p4beta1BatchOperationMetadata struct {
9976	// EndTime: The time when the batch request is finished
9977	// and
9978	// google.longrunning.Operation.done is set to true.
9979	EndTime string `json:"endTime,omitempty"`
9980
9981	// State: The current state of the batch operation.
9982	//
9983	// Possible values:
9984	//   "STATE_UNSPECIFIED" - Invalid.
9985	//   "PROCESSING" - Request is actively being processed.
9986	//   "SUCCESSFUL" - The request is done and at least one item has been
9987	// successfully
9988	// processed.
9989	//   "FAILED" - The request is done and no item has been successfully
9990	// processed.
9991	//   "CANCELLED" - The request is done after the
9992	// longrunning.Operations.CancelOperation has
9993	// been called by the user.  Any records that were processed before
9994	// the
9995	// cancel command are output as specified in the request.
9996	State string `json:"state,omitempty"`
9997
9998	// SubmitTime: The time when the batch request was submitted to the
9999	// server.
10000	SubmitTime string `json:"submitTime,omitempty"`
10001
10002	// ForceSendFields is a list of field names (e.g. "EndTime") to
10003	// unconditionally include in API requests. By default, fields with
10004	// empty values are omitted from API requests. However, any non-pointer,
10005	// non-interface field appearing in ForceSendFields will be sent to the
10006	// server regardless of whether the field is empty or not. This may be
10007	// used to include empty fields in Patch requests.
10008	ForceSendFields []string `json:"-"`
10009
10010	// NullFields is a list of field names (e.g. "EndTime") to include in
10011	// API requests with the JSON null value. By default, fields with empty
10012	// values are omitted from API requests. However, any field with an
10013	// empty value appearing in NullFields will be sent to the server as
10014	// null. It is an error if a field in this list has a non-empty value.
10015	// This may be used to include null fields in Patch requests.
10016	NullFields []string `json:"-"`
10017}
10018
10019func (s *GoogleCloudVisionV1p4beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
10020	type NoMethod GoogleCloudVisionV1p4beta1BatchOperationMetadata
10021	raw := NoMethod(*s)
10022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10023}
10024
10025// GoogleCloudVisionV1p4beta1Block: Logical element on the page.
10026type GoogleCloudVisionV1p4beta1Block struct {
10027	// BlockType: Detected block type (text, image etc) for this block.
10028	//
10029	// Possible values:
10030	//   "UNKNOWN" - Unknown block type.
10031	//   "TEXT" - Regular text block.
10032	//   "TABLE" - Table block.
10033	//   "PICTURE" - Image block.
10034	//   "RULER" - Horizontal/vertical line box.
10035	//   "BARCODE" - Barcode block.
10036	BlockType string `json:"blockType,omitempty"`
10037
10038	// BoundingBox: The bounding box for the block.
10039	// The vertices are in the order of top-left, top-right,
10040	// bottom-right,
10041	// bottom-left. When a rotation of the bounding box is detected the
10042	// rotation
10043	// is represented as around the top-left corner as defined when the text
10044	// is
10045	// read in the 'natural' orientation.
10046	// For example:
10047	//
10048	// * when the text is horizontal it might look like:
10049	//
10050	//         0----1
10051	//         |    |
10052	//         3----2
10053	//
10054	// * when it's rotated 180 degrees around the top-left corner it
10055	// becomes:
10056	//
10057	//         2----3
10058	//         |    |
10059	//         1----0
10060	//
10061	//   and the vertex order will still be (0, 1, 2, 3).
10062	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10063
10064	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
10065	Confidence float64 `json:"confidence,omitempty"`
10066
10067	// Paragraphs: List of paragraphs in this block (if this blocks is of
10068	// type text).
10069	Paragraphs []*GoogleCloudVisionV1p4beta1Paragraph `json:"paragraphs,omitempty"`
10070
10071	// Property: Additional information detected for the block.
10072	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10073
10074	// ForceSendFields is a list of field names (e.g. "BlockType") to
10075	// unconditionally include in API requests. By default, fields with
10076	// empty values are omitted from API requests. However, any non-pointer,
10077	// non-interface field appearing in ForceSendFields will be sent to the
10078	// server regardless of whether the field is empty or not. This may be
10079	// used to include empty fields in Patch requests.
10080	ForceSendFields []string `json:"-"`
10081
10082	// NullFields is a list of field names (e.g. "BlockType") to include in
10083	// API requests with the JSON null value. By default, fields with empty
10084	// values are omitted from API requests. However, any field with an
10085	// empty value appearing in NullFields will be sent to the server as
10086	// null. It is an error if a field in this list has a non-empty value.
10087	// This may be used to include null fields in Patch requests.
10088	NullFields []string `json:"-"`
10089}
10090
10091func (s *GoogleCloudVisionV1p4beta1Block) MarshalJSON() ([]byte, error) {
10092	type NoMethod GoogleCloudVisionV1p4beta1Block
10093	raw := NoMethod(*s)
10094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10095}
10096
10097func (s *GoogleCloudVisionV1p4beta1Block) UnmarshalJSON(data []byte) error {
10098	type NoMethod GoogleCloudVisionV1p4beta1Block
10099	var s1 struct {
10100		Confidence gensupport.JSONFloat64 `json:"confidence"`
10101		*NoMethod
10102	}
10103	s1.NoMethod = (*NoMethod)(s)
10104	if err := json.Unmarshal(data, &s1); err != nil {
10105		return err
10106	}
10107	s.Confidence = float64(s1.Confidence)
10108	return nil
10109}
10110
10111// GoogleCloudVisionV1p4beta1BoundingPoly: A bounding polygon for the
10112// detected image annotation.
10113type GoogleCloudVisionV1p4beta1BoundingPoly struct {
10114	// NormalizedVertices: The bounding polygon normalized vertices.
10115	NormalizedVertices []*GoogleCloudVisionV1p4beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
10116
10117	// Vertices: The bounding polygon vertices.
10118	Vertices []*GoogleCloudVisionV1p4beta1Vertex `json:"vertices,omitempty"`
10119
10120	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
10121	// to unconditionally include in API requests. By default, fields with
10122	// empty values are omitted from API requests. However, any non-pointer,
10123	// non-interface field appearing in ForceSendFields will be sent to the
10124	// server regardless of whether the field is empty or not. This may be
10125	// used to include empty fields in Patch requests.
10126	ForceSendFields []string `json:"-"`
10127
10128	// NullFields is a list of field names (e.g. "NormalizedVertices") to
10129	// include in API requests with the JSON null value. By default, fields
10130	// with empty values are omitted from API requests. However, any field
10131	// with an empty value appearing in NullFields will be sent to the
10132	// server as null. It is an error if a field in this list has a
10133	// non-empty value. This may be used to include null fields in Patch
10134	// requests.
10135	NullFields []string `json:"-"`
10136}
10137
10138func (s *GoogleCloudVisionV1p4beta1BoundingPoly) MarshalJSON() ([]byte, error) {
10139	type NoMethod GoogleCloudVisionV1p4beta1BoundingPoly
10140	raw := NoMethod(*s)
10141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10142}
10143
10144// GoogleCloudVisionV1p4beta1Celebrity: A Celebrity is a group of Faces
10145// with an identity.
10146type GoogleCloudVisionV1p4beta1Celebrity struct {
10147	// Description: The Celebrity's description.
10148	Description string `json:"description,omitempty"`
10149
10150	// DisplayName: The Celebrity's display name.
10151	DisplayName string `json:"displayName,omitempty"`
10152
10153	// Name: The resource name of the preloaded Celebrity. Has the
10154	// format
10155	// `builtin/{mid}`.
10156	Name string `json:"name,omitempty"`
10157
10158	// ForceSendFields is a list of field names (e.g. "Description") to
10159	// unconditionally include in API requests. By default, fields with
10160	// empty values are omitted from API requests. However, any non-pointer,
10161	// non-interface field appearing in ForceSendFields will be sent to the
10162	// server regardless of whether the field is empty or not. This may be
10163	// used to include empty fields in Patch requests.
10164	ForceSendFields []string `json:"-"`
10165
10166	// NullFields is a list of field names (e.g. "Description") to include
10167	// in API requests with the JSON null value. By default, fields with
10168	// empty values are omitted from API requests. However, any field with
10169	// an empty value appearing in NullFields will be sent to the server as
10170	// null. It is an error if a field in this list has a non-empty value.
10171	// This may be used to include null fields in Patch requests.
10172	NullFields []string `json:"-"`
10173}
10174
10175func (s *GoogleCloudVisionV1p4beta1Celebrity) MarshalJSON() ([]byte, error) {
10176	type NoMethod GoogleCloudVisionV1p4beta1Celebrity
10177	raw := NoMethod(*s)
10178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10179}
10180
10181// GoogleCloudVisionV1p4beta1ColorInfo: Color information consists of
10182// RGB channels, score, and the fraction of
10183// the image that the color occupies in the image.
10184type GoogleCloudVisionV1p4beta1ColorInfo struct {
10185	// Color: RGB components of the color.
10186	Color *Color `json:"color,omitempty"`
10187
10188	// PixelFraction: The fraction of pixels the color occupies in the
10189	// image.
10190	// Value in range [0, 1].
10191	PixelFraction float64 `json:"pixelFraction,omitempty"`
10192
10193	// Score: Image-specific score for this color. Value in range [0, 1].
10194	Score float64 `json:"score,omitempty"`
10195
10196	// ForceSendFields is a list of field names (e.g. "Color") to
10197	// unconditionally include in API requests. By default, fields with
10198	// empty values are omitted from API requests. However, any non-pointer,
10199	// non-interface field appearing in ForceSendFields will be sent to the
10200	// server regardless of whether the field is empty or not. This may be
10201	// used to include empty fields in Patch requests.
10202	ForceSendFields []string `json:"-"`
10203
10204	// NullFields is a list of field names (e.g. "Color") to include in API
10205	// requests with the JSON null value. By default, fields with empty
10206	// values are omitted from API requests. However, any field with an
10207	// empty value appearing in NullFields will be sent to the server as
10208	// null. It is an error if a field in this list has a non-empty value.
10209	// This may be used to include null fields in Patch requests.
10210	NullFields []string `json:"-"`
10211}
10212
10213func (s *GoogleCloudVisionV1p4beta1ColorInfo) MarshalJSON() ([]byte, error) {
10214	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10215	raw := NoMethod(*s)
10216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10217}
10218
10219func (s *GoogleCloudVisionV1p4beta1ColorInfo) UnmarshalJSON(data []byte) error {
10220	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10221	var s1 struct {
10222		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
10223		Score         gensupport.JSONFloat64 `json:"score"`
10224		*NoMethod
10225	}
10226	s1.NoMethod = (*NoMethod)(s)
10227	if err := json.Unmarshal(data, &s1); err != nil {
10228		return err
10229	}
10230	s.PixelFraction = float64(s1.PixelFraction)
10231	s.Score = float64(s1.Score)
10232	return nil
10233}
10234
10235// GoogleCloudVisionV1p4beta1CropHint: Single crop hint that is used to
10236// generate a new crop when serving an image.
10237type GoogleCloudVisionV1p4beta1CropHint struct {
10238	// BoundingPoly: The bounding polygon for the crop region. The
10239	// coordinates of the bounding
10240	// box are in the original image's scale.
10241	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10242
10243	// Confidence: Confidence of this being a salient region.  Range [0, 1].
10244	Confidence float64 `json:"confidence,omitempty"`
10245
10246	// ImportanceFraction: Fraction of importance of this salient region
10247	// with respect to the original
10248	// image.
10249	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
10250
10251	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10252	// unconditionally include in API requests. By default, fields with
10253	// empty values are omitted from API requests. However, any non-pointer,
10254	// non-interface field appearing in ForceSendFields will be sent to the
10255	// server regardless of whether the field is empty or not. This may be
10256	// used to include empty fields in Patch requests.
10257	ForceSendFields []string `json:"-"`
10258
10259	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10260	// in API requests with the JSON null value. By default, fields with
10261	// empty values are omitted from API requests. However, any field with
10262	// an empty value appearing in NullFields will be sent to the server as
10263	// null. It is an error if a field in this list has a non-empty value.
10264	// This may be used to include null fields in Patch requests.
10265	NullFields []string `json:"-"`
10266}
10267
10268func (s *GoogleCloudVisionV1p4beta1CropHint) MarshalJSON() ([]byte, error) {
10269	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10270	raw := NoMethod(*s)
10271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10272}
10273
10274func (s *GoogleCloudVisionV1p4beta1CropHint) UnmarshalJSON(data []byte) error {
10275	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10276	var s1 struct {
10277		Confidence         gensupport.JSONFloat64 `json:"confidence"`
10278		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
10279		*NoMethod
10280	}
10281	s1.NoMethod = (*NoMethod)(s)
10282	if err := json.Unmarshal(data, &s1); err != nil {
10283		return err
10284	}
10285	s.Confidence = float64(s1.Confidence)
10286	s.ImportanceFraction = float64(s1.ImportanceFraction)
10287	return nil
10288}
10289
10290// GoogleCloudVisionV1p4beta1CropHintsAnnotation: Set of crop hints that
10291// are used to generate new crops when serving images.
10292type GoogleCloudVisionV1p4beta1CropHintsAnnotation struct {
10293	// CropHints: Crop hint results.
10294	CropHints []*GoogleCloudVisionV1p4beta1CropHint `json:"cropHints,omitempty"`
10295
10296	// ForceSendFields is a list of field names (e.g. "CropHints") to
10297	// unconditionally include in API requests. By default, fields with
10298	// empty values are omitted from API requests. However, any non-pointer,
10299	// non-interface field appearing in ForceSendFields will be sent to the
10300	// server regardless of whether the field is empty or not. This may be
10301	// used to include empty fields in Patch requests.
10302	ForceSendFields []string `json:"-"`
10303
10304	// NullFields is a list of field names (e.g. "CropHints") to include in
10305	// API requests with the JSON null value. By default, fields with empty
10306	// values are omitted from API requests. However, any field with an
10307	// empty value appearing in NullFields will be sent to the server as
10308	// null. It is an error if a field in this list has a non-empty value.
10309	// This may be used to include null fields in Patch requests.
10310	NullFields []string `json:"-"`
10311}
10312
10313func (s *GoogleCloudVisionV1p4beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
10314	type NoMethod GoogleCloudVisionV1p4beta1CropHintsAnnotation
10315	raw := NoMethod(*s)
10316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10317}
10318
10319// GoogleCloudVisionV1p4beta1DominantColorsAnnotation: Set of dominant
10320// colors and their corresponding scores.
10321type GoogleCloudVisionV1p4beta1DominantColorsAnnotation struct {
10322	// Colors: RGB color values with their score and pixel fraction.
10323	Colors []*GoogleCloudVisionV1p4beta1ColorInfo `json:"colors,omitempty"`
10324
10325	// ForceSendFields is a list of field names (e.g. "Colors") to
10326	// unconditionally include in API requests. By default, fields with
10327	// empty values are omitted from API requests. However, any non-pointer,
10328	// non-interface field appearing in ForceSendFields will be sent to the
10329	// server regardless of whether the field is empty or not. This may be
10330	// used to include empty fields in Patch requests.
10331	ForceSendFields []string `json:"-"`
10332
10333	// NullFields is a list of field names (e.g. "Colors") to include in API
10334	// requests with the JSON null value. By default, fields with empty
10335	// values are omitted from API requests. However, any field with an
10336	// empty value appearing in NullFields will be sent to the server as
10337	// null. It is an error if a field in this list has a non-empty value.
10338	// This may be used to include null fields in Patch requests.
10339	NullFields []string `json:"-"`
10340}
10341
10342func (s *GoogleCloudVisionV1p4beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
10343	type NoMethod GoogleCloudVisionV1p4beta1DominantColorsAnnotation
10344	raw := NoMethod(*s)
10345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10346}
10347
10348// GoogleCloudVisionV1p4beta1EntityAnnotation: Set of detected entity
10349// features.
10350type GoogleCloudVisionV1p4beta1EntityAnnotation struct {
10351	// BoundingPoly: Image region to which this entity belongs. Not
10352	// produced
10353	// for `LABEL_DETECTION` features.
10354	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10355
10356	// Confidence: **Deprecated. Use `score` instead.**
10357	// The accuracy of the entity detection in an image.
10358	// For example, for an image in which the "Eiffel Tower" entity is
10359	// detected,
10360	// this field represents the confidence that there is a tower in the
10361	// query
10362	// image. Range [0, 1].
10363	Confidence float64 `json:"confidence,omitempty"`
10364
10365	// Description: Entity textual description, expressed in its `locale`
10366	// language.
10367	Description string `json:"description,omitempty"`
10368
10369	// Locale: The language code for the locale in which the entity
10370	// textual
10371	// `description` is expressed.
10372	Locale string `json:"locale,omitempty"`
10373
10374	// Locations: The location information for the detected entity.
10375	// Multiple
10376	// `LocationInfo` elements can be present because one location
10377	// may
10378	// indicate the location of the scene in the image, and another
10379	// location
10380	// may indicate the location of the place where the image was
10381	// taken.
10382	// Location information is usually present for landmarks.
10383	Locations []*GoogleCloudVisionV1p4beta1LocationInfo `json:"locations,omitempty"`
10384
10385	// Mid: Opaque entity ID. Some IDs may be available in
10386	// [Google Knowledge Graph
10387	// Search
10388	// API](https://developers.google.com/knowledge-graph/).
10389	Mid string `json:"mid,omitempty"`
10390
10391	// Properties: Some entities may have optional user-supplied `Property`
10392	// (name/value)
10393	// fields, such a score or string that qualifies the entity.
10394	Properties []*GoogleCloudVisionV1p4beta1Property `json:"properties,omitempty"`
10395
10396	// Score: Overall score of the result. Range [0, 1].
10397	Score float64 `json:"score,omitempty"`
10398
10399	// Topicality: The relevancy of the ICA (Image Content Annotation) label
10400	// to the
10401	// image. For example, the relevancy of "tower" is likely higher to an
10402	// image
10403	// containing the detected "Eiffel Tower" than to an image containing
10404	// a
10405	// detected distant towering building, even though the confidence
10406	// that
10407	// there is a tower in each image may be the same. Range [0, 1].
10408	Topicality float64 `json:"topicality,omitempty"`
10409
10410	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10411	// unconditionally include in API requests. By default, fields with
10412	// empty values are omitted from API requests. However, any non-pointer,
10413	// non-interface field appearing in ForceSendFields will be sent to the
10414	// server regardless of whether the field is empty or not. This may be
10415	// used to include empty fields in Patch requests.
10416	ForceSendFields []string `json:"-"`
10417
10418	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10419	// in API requests with the JSON null value. By default, fields with
10420	// empty values are omitted from API requests. However, any field with
10421	// an empty value appearing in NullFields will be sent to the server as
10422	// null. It is an error if a field in this list has a non-empty value.
10423	// This may be used to include null fields in Patch requests.
10424	NullFields []string `json:"-"`
10425}
10426
10427func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
10428	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10429	raw := NoMethod(*s)
10430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10431}
10432
10433func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
10434	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10435	var s1 struct {
10436		Confidence gensupport.JSONFloat64 `json:"confidence"`
10437		Score      gensupport.JSONFloat64 `json:"score"`
10438		Topicality gensupport.JSONFloat64 `json:"topicality"`
10439		*NoMethod
10440	}
10441	s1.NoMethod = (*NoMethod)(s)
10442	if err := json.Unmarshal(data, &s1); err != nil {
10443		return err
10444	}
10445	s.Confidence = float64(s1.Confidence)
10446	s.Score = float64(s1.Score)
10447	s.Topicality = float64(s1.Topicality)
10448	return nil
10449}
10450
10451// GoogleCloudVisionV1p4beta1FaceAnnotation: A face annotation object
10452// contains the results of face detection.
10453type GoogleCloudVisionV1p4beta1FaceAnnotation struct {
10454	// AngerLikelihood: Anger likelihood.
10455	//
10456	// Possible values:
10457	//   "UNKNOWN" - Unknown likelihood.
10458	//   "VERY_UNLIKELY" - It is very unlikely.
10459	//   "UNLIKELY" - It is unlikely.
10460	//   "POSSIBLE" - It is possible.
10461	//   "LIKELY" - It is likely.
10462	//   "VERY_LIKELY" - It is very likely.
10463	AngerLikelihood string `json:"angerLikelihood,omitempty"`
10464
10465	// BlurredLikelihood: Blurred likelihood.
10466	//
10467	// Possible values:
10468	//   "UNKNOWN" - Unknown likelihood.
10469	//   "VERY_UNLIKELY" - It is very unlikely.
10470	//   "UNLIKELY" - It is unlikely.
10471	//   "POSSIBLE" - It is possible.
10472	//   "LIKELY" - It is likely.
10473	//   "VERY_LIKELY" - It is very likely.
10474	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
10475
10476	// BoundingPoly: The bounding polygon around the face. The coordinates
10477	// of the bounding box
10478	// are in the original image's scale.
10479	// The bounding box is computed to "frame" the face in accordance with
10480	// human
10481	// expectations. It is based on the landmarker results.
10482	// Note that one or more x and/or y coordinates may not be generated in
10483	// the
10484	// `BoundingPoly` (the polygon will be unbounded) if only a partial
10485	// face
10486	// appears in the image to be annotated.
10487	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10488
10489	// DetectionConfidence: Detection confidence. Range [0, 1].
10490	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
10491
10492	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
10493	// than the
10494	// `boundingPoly`, and encloses only the skin part of the face.
10495	// Typically, it
10496	// is used to eliminate the face from any image analysis that detects
10497	// the
10498	// "amount of skin" visible in an image. It is not based on
10499	// the
10500	// landmarker results, only on the initial face detection, hence
10501	// the <code>fd</code> (face detection) prefix.
10502	FdBoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
10503
10504	// HeadwearLikelihood: Headwear likelihood.
10505	//
10506	// Possible values:
10507	//   "UNKNOWN" - Unknown likelihood.
10508	//   "VERY_UNLIKELY" - It is very unlikely.
10509	//   "UNLIKELY" - It is unlikely.
10510	//   "POSSIBLE" - It is possible.
10511	//   "LIKELY" - It is likely.
10512	//   "VERY_LIKELY" - It is very likely.
10513	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
10514
10515	// JoyLikelihood: Joy likelihood.
10516	//
10517	// Possible values:
10518	//   "UNKNOWN" - Unknown likelihood.
10519	//   "VERY_UNLIKELY" - It is very unlikely.
10520	//   "UNLIKELY" - It is unlikely.
10521	//   "POSSIBLE" - It is possible.
10522	//   "LIKELY" - It is likely.
10523	//   "VERY_LIKELY" - It is very likely.
10524	JoyLikelihood string `json:"joyLikelihood,omitempty"`
10525
10526	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
10527	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
10528
10529	// Landmarks: Detected face landmarks.
10530	Landmarks []*GoogleCloudVisionV1p4beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
10531
10532	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
10533	// that the face is
10534	// pointing relative to the vertical plane perpendicular to the image.
10535	// Range
10536	// [-180,180].
10537	PanAngle float64 `json:"panAngle,omitempty"`
10538
10539	// RecognitionResult: Additional recognition information. Only computed
10540	// if
10541	// image_context.face_recognition_params is provided, **and** a match is
10542	// found
10543	// to a Celebrity in the input CelebritySet. This field is
10544	// sorted in order of decreasing confidence values.
10545	RecognitionResult []*GoogleCloudVisionV1p4beta1FaceRecognitionResult `json:"recognitionResult,omitempty"`
10546
10547	// RollAngle: Roll angle, which indicates the amount of
10548	// clockwise/anti-clockwise rotation
10549	// of the face relative to the image vertical about the axis
10550	// perpendicular to
10551	// the face. Range [-180,180].
10552	RollAngle float64 `json:"rollAngle,omitempty"`
10553
10554	// SorrowLikelihood: Sorrow likelihood.
10555	//
10556	// Possible values:
10557	//   "UNKNOWN" - Unknown likelihood.
10558	//   "VERY_UNLIKELY" - It is very unlikely.
10559	//   "UNLIKELY" - It is unlikely.
10560	//   "POSSIBLE" - It is possible.
10561	//   "LIKELY" - It is likely.
10562	//   "VERY_LIKELY" - It is very likely.
10563	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
10564
10565	// SurpriseLikelihood: Surprise likelihood.
10566	//
10567	// Possible values:
10568	//   "UNKNOWN" - Unknown likelihood.
10569	//   "VERY_UNLIKELY" - It is very unlikely.
10570	//   "UNLIKELY" - It is unlikely.
10571	//   "POSSIBLE" - It is possible.
10572	//   "LIKELY" - It is likely.
10573	//   "VERY_LIKELY" - It is very likely.
10574	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
10575
10576	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
10577	// that the face is
10578	// pointing relative to the image's horizontal plane. Range [-180,180].
10579	TiltAngle float64 `json:"tiltAngle,omitempty"`
10580
10581	// UnderExposedLikelihood: Under-exposed likelihood.
10582	//
10583	// Possible values:
10584	//   "UNKNOWN" - Unknown likelihood.
10585	//   "VERY_UNLIKELY" - It is very unlikely.
10586	//   "UNLIKELY" - It is unlikely.
10587	//   "POSSIBLE" - It is possible.
10588	//   "LIKELY" - It is likely.
10589	//   "VERY_LIKELY" - It is very likely.
10590	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
10591
10592	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
10593	// unconditionally include in API requests. By default, fields with
10594	// empty values are omitted from API requests. However, any non-pointer,
10595	// non-interface field appearing in ForceSendFields will be sent to the
10596	// server regardless of whether the field is empty or not. This may be
10597	// used to include empty fields in Patch requests.
10598	ForceSendFields []string `json:"-"`
10599
10600	// NullFields is a list of field names (e.g. "AngerLikelihood") to
10601	// include in API requests with the JSON null value. By default, fields
10602	// with empty values are omitted from API requests. However, any field
10603	// with an empty value appearing in NullFields will be sent to the
10604	// server as null. It is an error if a field in this list has a
10605	// non-empty value. This may be used to include null fields in Patch
10606	// requests.
10607	NullFields []string `json:"-"`
10608}
10609
10610func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
10611	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10612	raw := NoMethod(*s)
10613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10614}
10615
10616func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
10617	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10618	var s1 struct {
10619		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
10620		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
10621		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
10622		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
10623		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
10624		*NoMethod
10625	}
10626	s1.NoMethod = (*NoMethod)(s)
10627	if err := json.Unmarshal(data, &s1); err != nil {
10628		return err
10629	}
10630	s.DetectionConfidence = float64(s1.DetectionConfidence)
10631	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
10632	s.PanAngle = float64(s1.PanAngle)
10633	s.RollAngle = float64(s1.RollAngle)
10634	s.TiltAngle = float64(s1.TiltAngle)
10635	return nil
10636}
10637
10638// GoogleCloudVisionV1p4beta1FaceAnnotationLandmark: A face-specific
10639// landmark (for example, a face feature).
10640type GoogleCloudVisionV1p4beta1FaceAnnotationLandmark struct {
10641	// Position: Face landmark position.
10642	Position *GoogleCloudVisionV1p4beta1Position `json:"position,omitempty"`
10643
10644	// Type: Face landmark type.
10645	//
10646	// Possible values:
10647	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
10648	// filled.
10649	//   "LEFT_EYE" - Left eye.
10650	//   "RIGHT_EYE" - Right eye.
10651	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
10652	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
10653	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
10654	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
10655	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
10656	//   "NOSE_TIP" - Nose tip.
10657	//   "UPPER_LIP" - Upper lip.
10658	//   "LOWER_LIP" - Lower lip.
10659	//   "MOUTH_LEFT" - Mouth left.
10660	//   "MOUTH_RIGHT" - Mouth right.
10661	//   "MOUTH_CENTER" - Mouth center.
10662	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
10663	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
10664	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
10665	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
10666	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
10667	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
10668	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
10669	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
10670	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
10671	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
10672	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
10673	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
10674	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
10675	//   "LEFT_EAR_TRAGION" - Left ear tragion.
10676	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
10677	//   "LEFT_EYE_PUPIL" - Left eye pupil.
10678	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
10679	//   "FOREHEAD_GLABELLA" - Forehead glabella.
10680	//   "CHIN_GNATHION" - Chin gnathion.
10681	//   "CHIN_LEFT_GONION" - Chin left gonion.
10682	//   "CHIN_RIGHT_GONION" - Chin right gonion.
10683	Type string `json:"type,omitempty"`
10684
10685	// ForceSendFields is a list of field names (e.g. "Position") to
10686	// unconditionally include in API requests. By default, fields with
10687	// empty values are omitted from API requests. However, any non-pointer,
10688	// non-interface field appearing in ForceSendFields will be sent to the
10689	// server regardless of whether the field is empty or not. This may be
10690	// used to include empty fields in Patch requests.
10691	ForceSendFields []string `json:"-"`
10692
10693	// NullFields is a list of field names (e.g. "Position") to include in
10694	// API requests with the JSON null value. By default, fields with empty
10695	// values are omitted from API requests. However, any field with an
10696	// empty value appearing in NullFields will be sent to the server as
10697	// null. It is an error if a field in this list has a non-empty value.
10698	// This may be used to include null fields in Patch requests.
10699	NullFields []string `json:"-"`
10700}
10701
10702func (s *GoogleCloudVisionV1p4beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
10703	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotationLandmark
10704	raw := NoMethod(*s)
10705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10706}
10707
10708// GoogleCloudVisionV1p4beta1FaceRecognitionResult: Information about a
10709// face's identity.
10710type GoogleCloudVisionV1p4beta1FaceRecognitionResult struct {
10711	// Celebrity: The Celebrity that this face was matched to.
10712	Celebrity *GoogleCloudVisionV1p4beta1Celebrity `json:"celebrity,omitempty"`
10713
10714	// Confidence: Recognition confidence. Range [0, 1].
10715	Confidence float64 `json:"confidence,omitempty"`
10716
10717	// ForceSendFields is a list of field names (e.g. "Celebrity") to
10718	// unconditionally include in API requests. By default, fields with
10719	// empty values are omitted from API requests. However, any non-pointer,
10720	// non-interface field appearing in ForceSendFields will be sent to the
10721	// server regardless of whether the field is empty or not. This may be
10722	// used to include empty fields in Patch requests.
10723	ForceSendFields []string `json:"-"`
10724
10725	// NullFields is a list of field names (e.g. "Celebrity") to include in
10726	// API requests with the JSON null value. By default, fields with empty
10727	// values are omitted from API requests. However, any field with an
10728	// empty value appearing in NullFields will be sent to the server as
10729	// null. It is an error if a field in this list has a non-empty value.
10730	// This may be used to include null fields in Patch requests.
10731	NullFields []string `json:"-"`
10732}
10733
10734func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) MarshalJSON() ([]byte, error) {
10735	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10736	raw := NoMethod(*s)
10737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10738}
10739
10740func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) UnmarshalJSON(data []byte) error {
10741	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10742	var s1 struct {
10743		Confidence gensupport.JSONFloat64 `json:"confidence"`
10744		*NoMethod
10745	}
10746	s1.NoMethod = (*NoMethod)(s)
10747	if err := json.Unmarshal(data, &s1); err != nil {
10748		return err
10749	}
10750	s.Confidence = float64(s1.Confidence)
10751	return nil
10752}
10753
10754// GoogleCloudVisionV1p4beta1GcsDestination: The Google Cloud Storage
10755// location where the output will be written to.
10756type GoogleCloudVisionV1p4beta1GcsDestination struct {
10757	// Uri: Google Cloud Storage URI prefix where the results will be
10758	// stored. Results
10759	// will be in JSON format and preceded by its corresponding input URI
10760	// prefix.
10761	// This field can either represent a gcs file prefix or gcs directory.
10762	// In
10763	// either case, the uri should be unique because in order to get all of
10764	// the
10765	// output files, you will need to do a wildcard gcs search on the uri
10766	// prefix
10767	// you provide.
10768	//
10769	// Examples:
10770	//
10771	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
10772	// files
10773	// will be created in gs://bucket-name/here/ and the names of the
10774	// output files will begin with "filenameprefix".
10775	//
10776	// *    Directory Prefix: gs://bucket-name/some/location/   The output
10777	// files
10778	// will be created in gs://bucket-name/some/location/ and the names of
10779	// the
10780	// output files could be anything because there was no filename
10781	// prefix
10782	// specified.
10783	//
10784	// If multiple outputs, each response is still AnnotateFileResponse,
10785	// each of
10786	// which contains some subset of the full list of
10787	// AnnotateImageResponse.
10788	// Multiple outputs can happen if, for example, the output JSON is too
10789	// large
10790	// and overflows into multiple sharded files.
10791	Uri string `json:"uri,omitempty"`
10792
10793	// ForceSendFields is a list of field names (e.g. "Uri") to
10794	// unconditionally include in API requests. By default, fields with
10795	// empty values are omitted from API requests. However, any non-pointer,
10796	// non-interface field appearing in ForceSendFields will be sent to the
10797	// server regardless of whether the field is empty or not. This may be
10798	// used to include empty fields in Patch requests.
10799	ForceSendFields []string `json:"-"`
10800
10801	// NullFields is a list of field names (e.g. "Uri") to include in API
10802	// requests with the JSON null value. By default, fields with empty
10803	// values are omitted from API requests. However, any field with an
10804	// empty value appearing in NullFields will be sent to the server as
10805	// null. It is an error if a field in this list has a non-empty value.
10806	// This may be used to include null fields in Patch requests.
10807	NullFields []string `json:"-"`
10808}
10809
10810func (s *GoogleCloudVisionV1p4beta1GcsDestination) MarshalJSON() ([]byte, error) {
10811	type NoMethod GoogleCloudVisionV1p4beta1GcsDestination
10812	raw := NoMethod(*s)
10813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10814}
10815
10816// GoogleCloudVisionV1p4beta1GcsSource: The Google Cloud Storage
10817// location where the input will be read from.
10818type GoogleCloudVisionV1p4beta1GcsSource struct {
10819	// Uri: Google Cloud Storage URI for the input file. This must only be
10820	// a
10821	// Google Cloud Storage object. Wildcards are not currently supported.
10822	Uri string `json:"uri,omitempty"`
10823
10824	// ForceSendFields is a list of field names (e.g. "Uri") to
10825	// unconditionally include in API requests. By default, fields with
10826	// empty values are omitted from API requests. However, any non-pointer,
10827	// non-interface field appearing in ForceSendFields will be sent to the
10828	// server regardless of whether the field is empty or not. This may be
10829	// used to include empty fields in Patch requests.
10830	ForceSendFields []string `json:"-"`
10831
10832	// NullFields is a list of field names (e.g. "Uri") to include in API
10833	// requests with the JSON null value. By default, fields with empty
10834	// values are omitted from API requests. However, any field with an
10835	// empty value appearing in NullFields will be sent to the server as
10836	// null. It is an error if a field in this list has a non-empty value.
10837	// This may be used to include null fields in Patch requests.
10838	NullFields []string `json:"-"`
10839}
10840
10841func (s *GoogleCloudVisionV1p4beta1GcsSource) MarshalJSON() ([]byte, error) {
10842	type NoMethod GoogleCloudVisionV1p4beta1GcsSource
10843	raw := NoMethod(*s)
10844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10845}
10846
10847// GoogleCloudVisionV1p4beta1ImageAnnotationContext: If an image was
10848// produced from a file (e.g. a PDF), this message gives
10849// information about the source of that image.
10850type GoogleCloudVisionV1p4beta1ImageAnnotationContext struct {
10851	// PageNumber: If the file was a PDF or TIFF, this field gives the page
10852	// number within
10853	// the file used to produce the image.
10854	PageNumber int64 `json:"pageNumber,omitempty"`
10855
10856	// Uri: The URI of the file used to produce the image.
10857	Uri string `json:"uri,omitempty"`
10858
10859	// ForceSendFields is a list of field names (e.g. "PageNumber") to
10860	// unconditionally include in API requests. By default, fields with
10861	// empty values are omitted from API requests. However, any non-pointer,
10862	// non-interface field appearing in ForceSendFields will be sent to the
10863	// server regardless of whether the field is empty or not. This may be
10864	// used to include empty fields in Patch requests.
10865	ForceSendFields []string `json:"-"`
10866
10867	// NullFields is a list of field names (e.g. "PageNumber") to include in
10868	// API requests with the JSON null value. By default, fields with empty
10869	// values are omitted from API requests. However, any field with an
10870	// empty value appearing in NullFields will be sent to the server as
10871	// null. It is an error if a field in this list has a non-empty value.
10872	// This may be used to include null fields in Patch requests.
10873	NullFields []string `json:"-"`
10874}
10875
10876func (s *GoogleCloudVisionV1p4beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
10877	type NoMethod GoogleCloudVisionV1p4beta1ImageAnnotationContext
10878	raw := NoMethod(*s)
10879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10880}
10881
10882// GoogleCloudVisionV1p4beta1ImageProperties: Stores image properties,
10883// such as dominant colors.
10884type GoogleCloudVisionV1p4beta1ImageProperties struct {
10885	// DominantColors: If present, dominant colors completed successfully.
10886	DominantColors *GoogleCloudVisionV1p4beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
10887
10888	// ForceSendFields is a list of field names (e.g. "DominantColors") to
10889	// unconditionally include in API requests. By default, fields with
10890	// empty values are omitted from API requests. However, any non-pointer,
10891	// non-interface field appearing in ForceSendFields will be sent to the
10892	// server regardless of whether the field is empty or not. This may be
10893	// used to include empty fields in Patch requests.
10894	ForceSendFields []string `json:"-"`
10895
10896	// NullFields is a list of field names (e.g. "DominantColors") to
10897	// include in API requests with the JSON null value. By default, fields
10898	// with empty values are omitted from API requests. However, any field
10899	// with an empty value appearing in NullFields will be sent to the
10900	// server as null. It is an error if a field in this list has a
10901	// non-empty value. This may be used to include null fields in Patch
10902	// requests.
10903	NullFields []string `json:"-"`
10904}
10905
10906func (s *GoogleCloudVisionV1p4beta1ImageProperties) MarshalJSON() ([]byte, error) {
10907	type NoMethod GoogleCloudVisionV1p4beta1ImageProperties
10908	raw := NoMethod(*s)
10909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10910}
10911
10912// GoogleCloudVisionV1p4beta1ImportProductSetsResponse: Response message
10913// for the `ImportProductSets` method.
10914//
10915// This message is returned by
10916// the
10917// google.longrunning.Operations.GetOperation method in the
10918// returned
10919// google.longrunning.Operation.response field.
10920type GoogleCloudVisionV1p4beta1ImportProductSetsResponse struct {
10921	// ReferenceImages: The list of reference_images that are imported
10922	// successfully.
10923	ReferenceImages []*GoogleCloudVisionV1p4beta1ReferenceImage `json:"referenceImages,omitempty"`
10924
10925	// Statuses: The rpc status for each ImportProductSet request, including
10926	// both successes
10927	// and errors.
10928	//
10929	// The number of statuses here matches the number of lines in the csv
10930	// file,
10931	// and statuses[i] stores the success or failure status of processing
10932	// the i-th
10933	// line of the csv, starting from line 0.
10934	Statuses []*Status `json:"statuses,omitempty"`
10935
10936	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
10937	// unconditionally include in API requests. By default, fields with
10938	// empty values are omitted from API requests. However, any non-pointer,
10939	// non-interface field appearing in ForceSendFields will be sent to the
10940	// server regardless of whether the field is empty or not. This may be
10941	// used to include empty fields in Patch requests.
10942	ForceSendFields []string `json:"-"`
10943
10944	// NullFields is a list of field names (e.g. "ReferenceImages") to
10945	// include in API requests with the JSON null value. By default, fields
10946	// with empty values are omitted from API requests. However, any field
10947	// with an empty value appearing in NullFields will be sent to the
10948	// server as null. It is an error if a field in this list has a
10949	// non-empty value. This may be used to include null fields in Patch
10950	// requests.
10951	NullFields []string `json:"-"`
10952}
10953
10954func (s *GoogleCloudVisionV1p4beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
10955	type NoMethod GoogleCloudVisionV1p4beta1ImportProductSetsResponse
10956	raw := NoMethod(*s)
10957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10958}
10959
10960// GoogleCloudVisionV1p4beta1InputConfig: The desired input location and
10961// metadata.
10962type GoogleCloudVisionV1p4beta1InputConfig struct {
10963	// Content: File content, represented as a stream of bytes.
10964	// Note: As with all `bytes` fields, protobuffers use a pure
10965	// binary
10966	// representation, whereas JSON representations use base64.
10967	//
10968	// Currently, this field only works for BatchAnnotateFiles requests. It
10969	// does
10970	// not work for AsyncBatchAnnotateFiles requests.
10971	Content string `json:"content,omitempty"`
10972
10973	// GcsSource: The Google Cloud Storage location to read the input from.
10974	GcsSource *GoogleCloudVisionV1p4beta1GcsSource `json:"gcsSource,omitempty"`
10975
10976	// MimeType: The type of the file. Currently only "application/pdf",
10977	// "image/tiff" and
10978	// "image/gif" are supported. Wildcards are not supported.
10979	MimeType string `json:"mimeType,omitempty"`
10980
10981	// ForceSendFields is a list of field names (e.g. "Content") to
10982	// unconditionally include in API requests. By default, fields with
10983	// empty values are omitted from API requests. However, any non-pointer,
10984	// non-interface field appearing in ForceSendFields will be sent to the
10985	// server regardless of whether the field is empty or not. This may be
10986	// used to include empty fields in Patch requests.
10987	ForceSendFields []string `json:"-"`
10988
10989	// NullFields is a list of field names (e.g. "Content") to include in
10990	// API requests with the JSON null value. By default, fields with empty
10991	// values are omitted from API requests. However, any field with an
10992	// empty value appearing in NullFields will be sent to the server as
10993	// null. It is an error if a field in this list has a non-empty value.
10994	// This may be used to include null fields in Patch requests.
10995	NullFields []string `json:"-"`
10996}
10997
10998func (s *GoogleCloudVisionV1p4beta1InputConfig) MarshalJSON() ([]byte, error) {
10999	type NoMethod GoogleCloudVisionV1p4beta1InputConfig
11000	raw := NoMethod(*s)
11001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11002}
11003
11004// GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation: Set of detected
11005// objects with bounding boxes.
11006type GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation struct {
11007	// BoundingPoly: Image region to which this object belongs. This must be
11008	// populated.
11009	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
11010
11011	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11012	// For more
11013	// information,
11014	// see
11015	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11016	LanguageCode string `json:"languageCode,omitempty"`
11017
11018	// Mid: Object ID that should align with EntityAnnotation mid.
11019	Mid string `json:"mid,omitempty"`
11020
11021	// Name: Object name, expressed in its `language_code` language.
11022	Name string `json:"name,omitempty"`
11023
11024	// Score: Score of the result. Range [0, 1].
11025	Score float64 `json:"score,omitempty"`
11026
11027	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11028	// unconditionally include in API requests. By default, fields with
11029	// empty values are omitted from API requests. However, any non-pointer,
11030	// non-interface field appearing in ForceSendFields will be sent to the
11031	// server regardless of whether the field is empty or not. This may be
11032	// used to include empty fields in Patch requests.
11033	ForceSendFields []string `json:"-"`
11034
11035	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11036	// in API requests with the JSON null value. By default, fields with
11037	// empty values are omitted from API requests. However, any field with
11038	// an empty value appearing in NullFields will be sent to the server as
11039	// null. It is an error if a field in this list has a non-empty value.
11040	// This may be used to include null fields in Patch requests.
11041	NullFields []string `json:"-"`
11042}
11043
11044func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
11045	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
11046	raw := NoMethod(*s)
11047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11048}
11049
11050func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
11051	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
11052	var s1 struct {
11053		Score gensupport.JSONFloat64 `json:"score"`
11054		*NoMethod
11055	}
11056	s1.NoMethod = (*NoMethod)(s)
11057	if err := json.Unmarshal(data, &s1); err != nil {
11058		return err
11059	}
11060	s.Score = float64(s1.Score)
11061	return nil
11062}
11063
11064// GoogleCloudVisionV1p4beta1LocationInfo: Detected entity location
11065// information.
11066type GoogleCloudVisionV1p4beta1LocationInfo struct {
11067	// LatLng: lat/long location coordinates.
11068	LatLng *LatLng `json:"latLng,omitempty"`
11069
11070	// ForceSendFields is a list of field names (e.g. "LatLng") to
11071	// unconditionally include in API requests. By default, fields with
11072	// empty values are omitted from API requests. However, any non-pointer,
11073	// non-interface field appearing in ForceSendFields will be sent to the
11074	// server regardless of whether the field is empty or not. This may be
11075	// used to include empty fields in Patch requests.
11076	ForceSendFields []string `json:"-"`
11077
11078	// NullFields is a list of field names (e.g. "LatLng") to include in API
11079	// requests with the JSON null value. By default, fields with empty
11080	// values are omitted from API requests. However, any field with an
11081	// empty value appearing in NullFields will be sent to the server as
11082	// null. It is an error if a field in this list has a non-empty value.
11083	// This may be used to include null fields in Patch requests.
11084	NullFields []string `json:"-"`
11085}
11086
11087func (s *GoogleCloudVisionV1p4beta1LocationInfo) MarshalJSON() ([]byte, error) {
11088	type NoMethod GoogleCloudVisionV1p4beta1LocationInfo
11089	raw := NoMethod(*s)
11090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11091}
11092
11093// GoogleCloudVisionV1p4beta1NormalizedVertex: A vertex represents a 2D
11094// point in the image.
11095// NOTE: the normalized vertex coordinates are relative to the original
11096// image
11097// and range from 0 to 1.
11098type GoogleCloudVisionV1p4beta1NormalizedVertex struct {
11099	// X: X coordinate.
11100	X float64 `json:"x,omitempty"`
11101
11102	// Y: Y coordinate.
11103	Y float64 `json:"y,omitempty"`
11104
11105	// ForceSendFields is a list of field names (e.g. "X") to
11106	// unconditionally include in API requests. By default, fields with
11107	// empty values are omitted from API requests. However, any non-pointer,
11108	// non-interface field appearing in ForceSendFields will be sent to the
11109	// server regardless of whether the field is empty or not. This may be
11110	// used to include empty fields in Patch requests.
11111	ForceSendFields []string `json:"-"`
11112
11113	// NullFields is a list of field names (e.g. "X") to include in API
11114	// requests with the JSON null value. By default, fields with empty
11115	// values are omitted from API requests. However, any field with an
11116	// empty value appearing in NullFields will be sent to the server as
11117	// null. It is an error if a field in this list has a non-empty value.
11118	// This may be used to include null fields in Patch requests.
11119	NullFields []string `json:"-"`
11120}
11121
11122func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
11123	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11124	raw := NoMethod(*s)
11125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11126}
11127
11128func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
11129	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11130	var s1 struct {
11131		X gensupport.JSONFloat64 `json:"x"`
11132		Y gensupport.JSONFloat64 `json:"y"`
11133		*NoMethod
11134	}
11135	s1.NoMethod = (*NoMethod)(s)
11136	if err := json.Unmarshal(data, &s1); err != nil {
11137		return err
11138	}
11139	s.X = float64(s1.X)
11140	s.Y = float64(s1.Y)
11141	return nil
11142}
11143
11144// GoogleCloudVisionV1p4beta1OperationMetadata: Contains metadata for
11145// the BatchAnnotateImages operation.
11146type GoogleCloudVisionV1p4beta1OperationMetadata struct {
11147	// CreateTime: The time when the batch request was received.
11148	CreateTime string `json:"createTime,omitempty"`
11149
11150	// State: Current state of the batch operation.
11151	//
11152	// Possible values:
11153	//   "STATE_UNSPECIFIED" - Invalid.
11154	//   "CREATED" - Request is received.
11155	//   "RUNNING" - Request is actively being processed.
11156	//   "DONE" - The batch processing is done.
11157	//   "CANCELLED" - The batch processing was cancelled.
11158	State string `json:"state,omitempty"`
11159
11160	// UpdateTime: The time when the operation result was last updated.
11161	UpdateTime string `json:"updateTime,omitempty"`
11162
11163	// ForceSendFields is a list of field names (e.g. "CreateTime") to
11164	// unconditionally include in API requests. By default, fields with
11165	// empty values are omitted from API requests. However, any non-pointer,
11166	// non-interface field appearing in ForceSendFields will be sent to the
11167	// server regardless of whether the field is empty or not. This may be
11168	// used to include empty fields in Patch requests.
11169	ForceSendFields []string `json:"-"`
11170
11171	// NullFields is a list of field names (e.g. "CreateTime") to include in
11172	// API requests with the JSON null value. By default, fields with empty
11173	// values are omitted from API requests. However, any field with an
11174	// empty value appearing in NullFields will be sent to the server as
11175	// null. It is an error if a field in this list has a non-empty value.
11176	// This may be used to include null fields in Patch requests.
11177	NullFields []string `json:"-"`
11178}
11179
11180func (s *GoogleCloudVisionV1p4beta1OperationMetadata) MarshalJSON() ([]byte, error) {
11181	type NoMethod GoogleCloudVisionV1p4beta1OperationMetadata
11182	raw := NoMethod(*s)
11183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11184}
11185
11186// GoogleCloudVisionV1p4beta1OutputConfig: The desired output location
11187// and metadata.
11188type GoogleCloudVisionV1p4beta1OutputConfig struct {
11189	// BatchSize: The max number of response protos to put into each output
11190	// JSON file on
11191	// Google Cloud Storage.
11192	// The valid range is [1, 100]. If not specified, the default value is
11193	// 20.
11194	//
11195	// For example, for one pdf file with 100 pages, 100 response protos
11196	// will
11197	// be generated. If `batch_size` = 20, then 5 json files each
11198	// containing 20 response protos will be written under the
11199	// prefix
11200	// `gcs_destination`.`uri`.
11201	//
11202	// Currently, batch_size only applies to GcsDestination, with potential
11203	// future
11204	// support for other output configurations.
11205	BatchSize int64 `json:"batchSize,omitempty"`
11206
11207	// GcsDestination: The Google Cloud Storage location to write the
11208	// output(s) to.
11209	GcsDestination *GoogleCloudVisionV1p4beta1GcsDestination `json:"gcsDestination,omitempty"`
11210
11211	// ForceSendFields is a list of field names (e.g. "BatchSize") to
11212	// unconditionally include in API requests. By default, fields with
11213	// empty values are omitted from API requests. However, any non-pointer,
11214	// non-interface field appearing in ForceSendFields will be sent to the
11215	// server regardless of whether the field is empty or not. This may be
11216	// used to include empty fields in Patch requests.
11217	ForceSendFields []string `json:"-"`
11218
11219	// NullFields is a list of field names (e.g. "BatchSize") to include in
11220	// API requests with the JSON null value. By default, fields with empty
11221	// values are omitted from API requests. However, any field with an
11222	// empty value appearing in NullFields will be sent to the server as
11223	// null. It is an error if a field in this list has a non-empty value.
11224	// This may be used to include null fields in Patch requests.
11225	NullFields []string `json:"-"`
11226}
11227
11228func (s *GoogleCloudVisionV1p4beta1OutputConfig) MarshalJSON() ([]byte, error) {
11229	type NoMethod GoogleCloudVisionV1p4beta1OutputConfig
11230	raw := NoMethod(*s)
11231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11232}
11233
11234// GoogleCloudVisionV1p4beta1Page: Detected page from OCR.
11235type GoogleCloudVisionV1p4beta1Page struct {
11236	// Blocks: List of blocks of text, images etc on this page.
11237	Blocks []*GoogleCloudVisionV1p4beta1Block `json:"blocks,omitempty"`
11238
11239	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
11240	Confidence float64 `json:"confidence,omitempty"`
11241
11242	// Height: Page height. For PDFs the unit is points. For images
11243	// (including
11244	// TIFFs) the unit is pixels.
11245	Height int64 `json:"height,omitempty"`
11246
11247	// Property: Additional information detected on the page.
11248	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11249
11250	// Width: Page width. For PDFs the unit is points. For images
11251	// (including
11252	// TIFFs) the unit is pixels.
11253	Width int64 `json:"width,omitempty"`
11254
11255	// ForceSendFields is a list of field names (e.g. "Blocks") to
11256	// unconditionally include in API requests. By default, fields with
11257	// empty values are omitted from API requests. However, any non-pointer,
11258	// non-interface field appearing in ForceSendFields will be sent to the
11259	// server regardless of whether the field is empty or not. This may be
11260	// used to include empty fields in Patch requests.
11261	ForceSendFields []string `json:"-"`
11262
11263	// NullFields is a list of field names (e.g. "Blocks") to include in API
11264	// requests with the JSON null value. By default, fields with empty
11265	// values are omitted from API requests. However, any field with an
11266	// empty value appearing in NullFields will be sent to the server as
11267	// null. It is an error if a field in this list has a non-empty value.
11268	// This may be used to include null fields in Patch requests.
11269	NullFields []string `json:"-"`
11270}
11271
11272func (s *GoogleCloudVisionV1p4beta1Page) MarshalJSON() ([]byte, error) {
11273	type NoMethod GoogleCloudVisionV1p4beta1Page
11274	raw := NoMethod(*s)
11275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11276}
11277
11278func (s *GoogleCloudVisionV1p4beta1Page) UnmarshalJSON(data []byte) error {
11279	type NoMethod GoogleCloudVisionV1p4beta1Page
11280	var s1 struct {
11281		Confidence gensupport.JSONFloat64 `json:"confidence"`
11282		*NoMethod
11283	}
11284	s1.NoMethod = (*NoMethod)(s)
11285	if err := json.Unmarshal(data, &s1); err != nil {
11286		return err
11287	}
11288	s.Confidence = float64(s1.Confidence)
11289	return nil
11290}
11291
11292// GoogleCloudVisionV1p4beta1Paragraph: Structural unit of text
11293// representing a number of words in certain order.
11294type GoogleCloudVisionV1p4beta1Paragraph struct {
11295	// BoundingBox: The bounding box for the paragraph.
11296	// The vertices are in the order of top-left, top-right,
11297	// bottom-right,
11298	// bottom-left. When a rotation of the bounding box is detected the
11299	// rotation
11300	// is represented as around the top-left corner as defined when the text
11301	// is
11302	// read in the 'natural' orientation.
11303	// For example:
11304	//   * when the text is horizontal it might look like:
11305	//      0----1
11306	//      |    |
11307	//      3----2
11308	//   * when it's rotated 180 degrees around the top-left corner it
11309	// becomes:
11310	//      2----3
11311	//      |    |
11312	//      1----0
11313	//   and the vertex order will still be (0, 1, 2, 3).
11314	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11315
11316	// Confidence: Confidence of the OCR results for the paragraph. Range
11317	// [0, 1].
11318	Confidence float64 `json:"confidence,omitempty"`
11319
11320	// Property: Additional information detected for the paragraph.
11321	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11322
11323	// Words: List of all words in this paragraph.
11324	Words []*GoogleCloudVisionV1p4beta1Word `json:"words,omitempty"`
11325
11326	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11327	// unconditionally include in API requests. By default, fields with
11328	// empty values are omitted from API requests. However, any non-pointer,
11329	// non-interface field appearing in ForceSendFields will be sent to the
11330	// server regardless of whether the field is empty or not. This may be
11331	// used to include empty fields in Patch requests.
11332	ForceSendFields []string `json:"-"`
11333
11334	// NullFields is a list of field names (e.g. "BoundingBox") to include
11335	// in API requests with the JSON null value. By default, fields with
11336	// empty values are omitted from API requests. However, any field with
11337	// an empty value appearing in NullFields will be sent to the server as
11338	// null. It is an error if a field in this list has a non-empty value.
11339	// This may be used to include null fields in Patch requests.
11340	NullFields []string `json:"-"`
11341}
11342
11343func (s *GoogleCloudVisionV1p4beta1Paragraph) MarshalJSON() ([]byte, error) {
11344	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11345	raw := NoMethod(*s)
11346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11347}
11348
11349func (s *GoogleCloudVisionV1p4beta1Paragraph) UnmarshalJSON(data []byte) error {
11350	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11351	var s1 struct {
11352		Confidence gensupport.JSONFloat64 `json:"confidence"`
11353		*NoMethod
11354	}
11355	s1.NoMethod = (*NoMethod)(s)
11356	if err := json.Unmarshal(data, &s1); err != nil {
11357		return err
11358	}
11359	s.Confidence = float64(s1.Confidence)
11360	return nil
11361}
11362
11363// GoogleCloudVisionV1p4beta1Position: A 3D position in the image, used
11364// primarily for Face detection landmarks.
11365// A valid Position must have both x and y coordinates.
11366// The position coordinates are in the same scale as the original image.
11367type GoogleCloudVisionV1p4beta1Position struct {
11368	// X: X coordinate.
11369	X float64 `json:"x,omitempty"`
11370
11371	// Y: Y coordinate.
11372	Y float64 `json:"y,omitempty"`
11373
11374	// Z: Z coordinate (or depth).
11375	Z float64 `json:"z,omitempty"`
11376
11377	// ForceSendFields is a list of field names (e.g. "X") to
11378	// unconditionally include in API requests. By default, fields with
11379	// empty values are omitted from API requests. However, any non-pointer,
11380	// non-interface field appearing in ForceSendFields will be sent to the
11381	// server regardless of whether the field is empty or not. This may be
11382	// used to include empty fields in Patch requests.
11383	ForceSendFields []string `json:"-"`
11384
11385	// NullFields is a list of field names (e.g. "X") to include in API
11386	// requests with the JSON null value. By default, fields with empty
11387	// values are omitted from API requests. However, any field with an
11388	// empty value appearing in NullFields will be sent to the server as
11389	// null. It is an error if a field in this list has a non-empty value.
11390	// This may be used to include null fields in Patch requests.
11391	NullFields []string `json:"-"`
11392}
11393
11394func (s *GoogleCloudVisionV1p4beta1Position) MarshalJSON() ([]byte, error) {
11395	type NoMethod GoogleCloudVisionV1p4beta1Position
11396	raw := NoMethod(*s)
11397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11398}
11399
11400func (s *GoogleCloudVisionV1p4beta1Position) UnmarshalJSON(data []byte) error {
11401	type NoMethod GoogleCloudVisionV1p4beta1Position
11402	var s1 struct {
11403		X gensupport.JSONFloat64 `json:"x"`
11404		Y gensupport.JSONFloat64 `json:"y"`
11405		Z gensupport.JSONFloat64 `json:"z"`
11406		*NoMethod
11407	}
11408	s1.NoMethod = (*NoMethod)(s)
11409	if err := json.Unmarshal(data, &s1); err != nil {
11410		return err
11411	}
11412	s.X = float64(s1.X)
11413	s.Y = float64(s1.Y)
11414	s.Z = float64(s1.Z)
11415	return nil
11416}
11417
11418// GoogleCloudVisionV1p4beta1Product: A Product contains
11419// ReferenceImages.
11420type GoogleCloudVisionV1p4beta1Product struct {
11421	// Description: User-provided metadata to be stored with this product.
11422	// Must be at most 4096
11423	// characters long.
11424	Description string `json:"description,omitempty"`
11425
11426	// DisplayName: The user-provided name for this Product. Must not be
11427	// empty. Must be at most
11428	// 4096 characters long.
11429	DisplayName string `json:"displayName,omitempty"`
11430
11431	// Name: The resource name of the product.
11432	//
11433	// Format
11434	// is:
11435	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
11436	//
11437	// This field is ignored when creating a product.
11438	Name string `json:"name,omitempty"`
11439
11440	// ProductCategory: Immutable. The category for the product identified
11441	// by the reference image. This should
11442	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
11443	// categories
11444	// "homegoods", "apparel", and "toys" are still supported, but these
11445	// should
11446	// not be used for new products.
11447	ProductCategory string `json:"productCategory,omitempty"`
11448
11449	// ProductLabels: Key-value pairs that can be attached to a product. At
11450	// query time,
11451	// constraints can be specified based on the product_labels.
11452	//
11453	// Note that integer values can be provided as strings, e.g. "1199".
11454	// Only
11455	// strings with integer values can match a range-based restriction which
11456	// is
11457	// to be supported soon.
11458	//
11459	// Multiple values can be assigned to the same key. One product may have
11460	// up to
11461	// 500 product_labels.
11462	//
11463	// Notice that the total number of distinct product_labels over all
11464	// products
11465	// in one ProductSet cannot exceed 1M, otherwise the product search
11466	// pipeline
11467	// will refuse to work for that ProductSet.
11468	ProductLabels []*GoogleCloudVisionV1p4beta1ProductKeyValue `json:"productLabels,omitempty"`
11469
11470	// ForceSendFields is a list of field names (e.g. "Description") to
11471	// unconditionally include in API requests. By default, fields with
11472	// empty values are omitted from API requests. However, any non-pointer,
11473	// non-interface field appearing in ForceSendFields will be sent to the
11474	// server regardless of whether the field is empty or not. This may be
11475	// used to include empty fields in Patch requests.
11476	ForceSendFields []string `json:"-"`
11477
11478	// NullFields is a list of field names (e.g. "Description") to include
11479	// in API requests with the JSON null value. By default, fields with
11480	// empty values are omitted from API requests. However, any field with
11481	// an empty value appearing in NullFields will be sent to the server as
11482	// null. It is an error if a field in this list has a non-empty value.
11483	// This may be used to include null fields in Patch requests.
11484	NullFields []string `json:"-"`
11485}
11486
11487func (s *GoogleCloudVisionV1p4beta1Product) MarshalJSON() ([]byte, error) {
11488	type NoMethod GoogleCloudVisionV1p4beta1Product
11489	raw := NoMethod(*s)
11490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11491}
11492
11493// GoogleCloudVisionV1p4beta1ProductKeyValue: A product label
11494// represented as a key-value pair.
11495type GoogleCloudVisionV1p4beta1ProductKeyValue struct {
11496	// Key: The key of the label attached to the product. Cannot be empty
11497	// and cannot
11498	// exceed 128 bytes.
11499	Key string `json:"key,omitempty"`
11500
11501	// Value: The value of the label attached to the product. Cannot be
11502	// empty and
11503	// cannot exceed 128 bytes.
11504	Value string `json:"value,omitempty"`
11505
11506	// ForceSendFields is a list of field names (e.g. "Key") to
11507	// unconditionally include in API requests. By default, fields with
11508	// empty values are omitted from API requests. However, any non-pointer,
11509	// non-interface field appearing in ForceSendFields will be sent to the
11510	// server regardless of whether the field is empty or not. This may be
11511	// used to include empty fields in Patch requests.
11512	ForceSendFields []string `json:"-"`
11513
11514	// NullFields is a list of field names (e.g. "Key") to include in API
11515	// requests with the JSON null value. By default, fields with empty
11516	// values are omitted from API requests. However, any field with an
11517	// empty value appearing in NullFields will be sent to the server as
11518	// null. It is an error if a field in this list has a non-empty value.
11519	// This may be used to include null fields in Patch requests.
11520	NullFields []string `json:"-"`
11521}
11522
11523func (s *GoogleCloudVisionV1p4beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
11524	type NoMethod GoogleCloudVisionV1p4beta1ProductKeyValue
11525	raw := NoMethod(*s)
11526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11527}
11528
11529// GoogleCloudVisionV1p4beta1ProductSearchResults: Results for a product
11530// search request.
11531type GoogleCloudVisionV1p4beta1ProductSearchResults struct {
11532	// IndexTime: Timestamp of the index which provided these results.
11533	// Products added to the
11534	// product set and products removed from the product set after this time
11535	// are
11536	// not reflected in the current results.
11537	IndexTime string `json:"indexTime,omitempty"`
11538
11539	// ProductGroupedResults: List of results grouped by products detected
11540	// in the query image. Each entry
11541	// corresponds to one bounding polygon in the query image, and contains
11542	// the
11543	// matching products specific to that region. There may be duplicate
11544	// product
11545	// matches in the union of all the per-product results.
11546	ProductGroupedResults []*GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
11547
11548	// Results: List of results, one for each product match.
11549	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11550
11551	// ForceSendFields is a list of field names (e.g. "IndexTime") to
11552	// unconditionally include in API requests. By default, fields with
11553	// empty values are omitted from API requests. However, any non-pointer,
11554	// non-interface field appearing in ForceSendFields will be sent to the
11555	// server regardless of whether the field is empty or not. This may be
11556	// used to include empty fields in Patch requests.
11557	ForceSendFields []string `json:"-"`
11558
11559	// NullFields is a list of field names (e.g. "IndexTime") to include in
11560	// API requests with the JSON null value. By default, fields with empty
11561	// values are omitted from API requests. However, any field with an
11562	// empty value appearing in NullFields will be sent to the server as
11563	// null. It is an error if a field in this list has a non-empty value.
11564	// This may be used to include null fields in Patch requests.
11565	NullFields []string `json:"-"`
11566}
11567
11568func (s *GoogleCloudVisionV1p4beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
11569	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResults
11570	raw := NoMethod(*s)
11571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11572}
11573
11574// GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult:
11575// Information about the products similar to a single product in a
11576// query
11577// image.
11578type GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult struct {
11579	// BoundingPoly: The bounding polygon around the product detected in the
11580	// query image.
11581	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
11582
11583	// ObjectAnnotations: List of generic predictions for the object in the
11584	// bounding box.
11585	ObjectAnnotations []*GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
11586
11587	// Results: List of results, one for each product match.
11588	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11589
11590	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11591	// unconditionally include in API requests. By default, fields with
11592	// empty values are omitted from API requests. However, any non-pointer,
11593	// non-interface field appearing in ForceSendFields will be sent to the
11594	// server regardless of whether the field is empty or not. This may be
11595	// used to include empty fields in Patch requests.
11596	ForceSendFields []string `json:"-"`
11597
11598	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11599	// in API requests with the JSON null value. By default, fields with
11600	// empty values are omitted from API requests. However, any field with
11601	// an empty value appearing in NullFields will be sent to the server as
11602	// null. It is an error if a field in this list has a non-empty value.
11603	// This may be used to include null fields in Patch requests.
11604	NullFields []string `json:"-"`
11605}
11606
11607func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
11608	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult
11609	raw := NoMethod(*s)
11610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11611}
11612
11613// GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation:
11614// Prediction for what the object in the bounding box is.
11615type GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation struct {
11616	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11617	// For more
11618	// information,
11619	// see
11620	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11621	LanguageCode string `json:"languageCode,omitempty"`
11622
11623	// Mid: Object ID that should align with EntityAnnotation mid.
11624	Mid string `json:"mid,omitempty"`
11625
11626	// Name: Object name, expressed in its `language_code` language.
11627	Name string `json:"name,omitempty"`
11628
11629	// Score: Score of the result. Range [0, 1].
11630	Score float64 `json:"score,omitempty"`
11631
11632	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
11633	// unconditionally include in API requests. By default, fields with
11634	// empty values are omitted from API requests. However, any non-pointer,
11635	// non-interface field appearing in ForceSendFields will be sent to the
11636	// server regardless of whether the field is empty or not. This may be
11637	// used to include empty fields in Patch requests.
11638	ForceSendFields []string `json:"-"`
11639
11640	// NullFields is a list of field names (e.g. "LanguageCode") to include
11641	// in API requests with the JSON null value. By default, fields with
11642	// empty values are omitted from API requests. However, any field with
11643	// an empty value appearing in NullFields will be sent to the server as
11644	// null. It is an error if a field in this list has a non-empty value.
11645	// This may be used to include null fields in Patch requests.
11646	NullFields []string `json:"-"`
11647}
11648
11649func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
11650	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
11651	raw := NoMethod(*s)
11652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11653}
11654
11655func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
11656	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
11657	var s1 struct {
11658		Score gensupport.JSONFloat64 `json:"score"`
11659		*NoMethod
11660	}
11661	s1.NoMethod = (*NoMethod)(s)
11662	if err := json.Unmarshal(data, &s1); err != nil {
11663		return err
11664	}
11665	s.Score = float64(s1.Score)
11666	return nil
11667}
11668
11669// GoogleCloudVisionV1p4beta1ProductSearchResultsResult: Information
11670// about a product.
11671type GoogleCloudVisionV1p4beta1ProductSearchResultsResult struct {
11672	// Image: The resource name of the image from the product that is the
11673	// closest match
11674	// to the query.
11675	Image string `json:"image,omitempty"`
11676
11677	// Product: The Product.
11678	Product *GoogleCloudVisionV1p4beta1Product `json:"product,omitempty"`
11679
11680	// Score: A confidence level on the match, ranging from 0 (no
11681	// confidence) to
11682	// 1 (full confidence).
11683	Score float64 `json:"score,omitempty"`
11684
11685	// ForceSendFields is a list of field names (e.g. "Image") to
11686	// unconditionally include in API requests. By default, fields with
11687	// empty values are omitted from API requests. However, any non-pointer,
11688	// non-interface field appearing in ForceSendFields will be sent to the
11689	// server regardless of whether the field is empty or not. This may be
11690	// used to include empty fields in Patch requests.
11691	ForceSendFields []string `json:"-"`
11692
11693	// NullFields is a list of field names (e.g. "Image") to include in API
11694	// requests with the JSON null value. By default, fields with empty
11695	// values are omitted from API requests. However, any field with an
11696	// empty value appearing in NullFields will be sent to the server as
11697	// null. It is an error if a field in this list has a non-empty value.
11698	// This may be used to include null fields in Patch requests.
11699	NullFields []string `json:"-"`
11700}
11701
11702func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
11703	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11704	raw := NoMethod(*s)
11705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11706}
11707
11708func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
11709	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11710	var s1 struct {
11711		Score gensupport.JSONFloat64 `json:"score"`
11712		*NoMethod
11713	}
11714	s1.NoMethod = (*NoMethod)(s)
11715	if err := json.Unmarshal(data, &s1); err != nil {
11716		return err
11717	}
11718	s.Score = float64(s1.Score)
11719	return nil
11720}
11721
11722// GoogleCloudVisionV1p4beta1Property: A `Property` consists of a
11723// user-supplied name/value pair.
11724type GoogleCloudVisionV1p4beta1Property struct {
11725	// Name: Name of the property.
11726	Name string `json:"name,omitempty"`
11727
11728	// Uint64Value: Value of numeric properties.
11729	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
11730
11731	// Value: Value of the property.
11732	Value string `json:"value,omitempty"`
11733
11734	// ForceSendFields is a list of field names (e.g. "Name") to
11735	// unconditionally include in API requests. By default, fields with
11736	// empty values are omitted from API requests. However, any non-pointer,
11737	// non-interface field appearing in ForceSendFields will be sent to the
11738	// server regardless of whether the field is empty or not. This may be
11739	// used to include empty fields in Patch requests.
11740	ForceSendFields []string `json:"-"`
11741
11742	// NullFields is a list of field names (e.g. "Name") to include in API
11743	// requests with the JSON null value. By default, fields with empty
11744	// values are omitted from API requests. However, any field with an
11745	// empty value appearing in NullFields will be sent to the server as
11746	// null. It is an error if a field in this list has a non-empty value.
11747	// This may be used to include null fields in Patch requests.
11748	NullFields []string `json:"-"`
11749}
11750
11751func (s *GoogleCloudVisionV1p4beta1Property) MarshalJSON() ([]byte, error) {
11752	type NoMethod GoogleCloudVisionV1p4beta1Property
11753	raw := NoMethod(*s)
11754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11755}
11756
11757// GoogleCloudVisionV1p4beta1ReferenceImage: A `ReferenceImage`
11758// represents a product image and its associated metadata,
11759// such as bounding boxes.
11760type GoogleCloudVisionV1p4beta1ReferenceImage struct {
11761	// BoundingPolys: Optional. Bounding polygons around the areas of
11762	// interest in the reference image.
11763	// If this field is empty, the system will try to detect regions
11764	// of
11765	// interest. At most 10 bounding polygons will be used.
11766	//
11767	// The provided shape is converted into a non-rotated rectangle.
11768	// Once
11769	// converted, the small edge of the rectangle must be greater than or
11770	// equal
11771	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
11772	// 1:5
11773	// is not).
11774	BoundingPolys []*GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPolys,omitempty"`
11775
11776	// Name: The resource name of the reference image.
11777	//
11778	// Format
11779	// is:
11780	//
11781	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
11782	// ceImages/IMAGE_ID`.
11783	//
11784	// This field is ignored when creating a reference image.
11785	Name string `json:"name,omitempty"`
11786
11787	// Uri: Required. The Google Cloud Storage URI of the reference
11788	// image.
11789	//
11790	// The URI must start with `gs://`.
11791	Uri string `json:"uri,omitempty"`
11792
11793	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
11794	// unconditionally include in API requests. By default, fields with
11795	// empty values are omitted from API requests. However, any non-pointer,
11796	// non-interface field appearing in ForceSendFields will be sent to the
11797	// server regardless of whether the field is empty or not. This may be
11798	// used to include empty fields in Patch requests.
11799	ForceSendFields []string `json:"-"`
11800
11801	// NullFields is a list of field names (e.g. "BoundingPolys") to include
11802	// in API requests with the JSON null value. By default, fields with
11803	// empty values are omitted from API requests. However, any field with
11804	// an empty value appearing in NullFields will be sent to the server as
11805	// null. It is an error if a field in this list has a non-empty value.
11806	// This may be used to include null fields in Patch requests.
11807	NullFields []string `json:"-"`
11808}
11809
11810func (s *GoogleCloudVisionV1p4beta1ReferenceImage) MarshalJSON() ([]byte, error) {
11811	type NoMethod GoogleCloudVisionV1p4beta1ReferenceImage
11812	raw := NoMethod(*s)
11813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11814}
11815
11816// GoogleCloudVisionV1p4beta1SafeSearchAnnotation: Set of features
11817// pertaining to the image, computed by computer vision
11818// methods over safe-search verticals (for example, adult, spoof,
11819// medical,
11820// violence).
11821type GoogleCloudVisionV1p4beta1SafeSearchAnnotation struct {
11822	// Adult: Represents the adult content likelihood for the image. Adult
11823	// content may
11824	// contain elements such as nudity, pornographic images or cartoons,
11825	// or
11826	// sexual activities.
11827	//
11828	// Possible values:
11829	//   "UNKNOWN" - Unknown likelihood.
11830	//   "VERY_UNLIKELY" - It is very unlikely.
11831	//   "UNLIKELY" - It is unlikely.
11832	//   "POSSIBLE" - It is possible.
11833	//   "LIKELY" - It is likely.
11834	//   "VERY_LIKELY" - It is very likely.
11835	Adult string `json:"adult,omitempty"`
11836
11837	// Medical: Likelihood that this is a medical image.
11838	//
11839	// Possible values:
11840	//   "UNKNOWN" - Unknown likelihood.
11841	//   "VERY_UNLIKELY" - It is very unlikely.
11842	//   "UNLIKELY" - It is unlikely.
11843	//   "POSSIBLE" - It is possible.
11844	//   "LIKELY" - It is likely.
11845	//   "VERY_LIKELY" - It is very likely.
11846	Medical string `json:"medical,omitempty"`
11847
11848	// Racy: Likelihood that the request image contains racy content. Racy
11849	// content may
11850	// include (but is not limited to) skimpy or sheer clothing,
11851	// strategically
11852	// covered nudity, lewd or provocative poses, or close-ups of
11853	// sensitive
11854	// body areas.
11855	//
11856	// Possible values:
11857	//   "UNKNOWN" - Unknown likelihood.
11858	//   "VERY_UNLIKELY" - It is very unlikely.
11859	//   "UNLIKELY" - It is unlikely.
11860	//   "POSSIBLE" - It is possible.
11861	//   "LIKELY" - It is likely.
11862	//   "VERY_LIKELY" - It is very likely.
11863	Racy string `json:"racy,omitempty"`
11864
11865	// Spoof: Spoof likelihood. The likelihood that an modification
11866	// was made to the image's canonical version to make it appear
11867	// funny or offensive.
11868	//
11869	// Possible values:
11870	//   "UNKNOWN" - Unknown likelihood.
11871	//   "VERY_UNLIKELY" - It is very unlikely.
11872	//   "UNLIKELY" - It is unlikely.
11873	//   "POSSIBLE" - It is possible.
11874	//   "LIKELY" - It is likely.
11875	//   "VERY_LIKELY" - It is very likely.
11876	Spoof string `json:"spoof,omitempty"`
11877
11878	// Violence: Likelihood that this image contains violent content.
11879	//
11880	// Possible values:
11881	//   "UNKNOWN" - Unknown likelihood.
11882	//   "VERY_UNLIKELY" - It is very unlikely.
11883	//   "UNLIKELY" - It is unlikely.
11884	//   "POSSIBLE" - It is possible.
11885	//   "LIKELY" - It is likely.
11886	//   "VERY_LIKELY" - It is very likely.
11887	Violence string `json:"violence,omitempty"`
11888
11889	// ForceSendFields is a list of field names (e.g. "Adult") to
11890	// unconditionally include in API requests. By default, fields with
11891	// empty values are omitted from API requests. However, any non-pointer,
11892	// non-interface field appearing in ForceSendFields will be sent to the
11893	// server regardless of whether the field is empty or not. This may be
11894	// used to include empty fields in Patch requests.
11895	ForceSendFields []string `json:"-"`
11896
11897	// NullFields is a list of field names (e.g. "Adult") to include in API
11898	// requests with the JSON null value. By default, fields with empty
11899	// values are omitted from API requests. However, any field with an
11900	// empty value appearing in NullFields will be sent to the server as
11901	// null. It is an error if a field in this list has a non-empty value.
11902	// This may be used to include null fields in Patch requests.
11903	NullFields []string `json:"-"`
11904}
11905
11906func (s *GoogleCloudVisionV1p4beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
11907	type NoMethod GoogleCloudVisionV1p4beta1SafeSearchAnnotation
11908	raw := NoMethod(*s)
11909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11910}
11911
11912// GoogleCloudVisionV1p4beta1Symbol: A single symbol representation.
11913type GoogleCloudVisionV1p4beta1Symbol struct {
11914	// BoundingBox: The bounding box for the symbol.
11915	// The vertices are in the order of top-left, top-right,
11916	// bottom-right,
11917	// bottom-left. When a rotation of the bounding box is detected the
11918	// rotation
11919	// is represented as around the top-left corner as defined when the text
11920	// is
11921	// read in the 'natural' orientation.
11922	// For example:
11923	//   * when the text is horizontal it might look like:
11924	//      0----1
11925	//      |    |
11926	//      3----2
11927	//   * when it's rotated 180 degrees around the top-left corner it
11928	// becomes:
11929	//      2----3
11930	//      |    |
11931	//      1----0
11932	//   and the vertex order will still be (0, 1, 2, 3).
11933	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11934
11935	// Confidence: Confidence of the OCR results for the symbol. Range [0,
11936	// 1].
11937	Confidence float64 `json:"confidence,omitempty"`
11938
11939	// Property: Additional information detected for the symbol.
11940	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11941
11942	// Text: The actual UTF-8 representation of the symbol.
11943	Text string `json:"text,omitempty"`
11944
11945	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11946	// unconditionally include in API requests. By default, fields with
11947	// empty values are omitted from API requests. However, any non-pointer,
11948	// non-interface field appearing in ForceSendFields will be sent to the
11949	// server regardless of whether the field is empty or not. This may be
11950	// used to include empty fields in Patch requests.
11951	ForceSendFields []string `json:"-"`
11952
11953	// NullFields is a list of field names (e.g. "BoundingBox") to include
11954	// in API requests with the JSON null value. By default, fields with
11955	// empty values are omitted from API requests. However, any field with
11956	// an empty value appearing in NullFields will be sent to the server as
11957	// null. It is an error if a field in this list has a non-empty value.
11958	// This may be used to include null fields in Patch requests.
11959	NullFields []string `json:"-"`
11960}
11961
11962func (s *GoogleCloudVisionV1p4beta1Symbol) MarshalJSON() ([]byte, error) {
11963	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11964	raw := NoMethod(*s)
11965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11966}
11967
11968func (s *GoogleCloudVisionV1p4beta1Symbol) UnmarshalJSON(data []byte) error {
11969	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11970	var s1 struct {
11971		Confidence gensupport.JSONFloat64 `json:"confidence"`
11972		*NoMethod
11973	}
11974	s1.NoMethod = (*NoMethod)(s)
11975	if err := json.Unmarshal(data, &s1); err != nil {
11976		return err
11977	}
11978	s.Confidence = float64(s1.Confidence)
11979	return nil
11980}
11981
11982// GoogleCloudVisionV1p4beta1TextAnnotation: TextAnnotation contains a
11983// structured representation of OCR extracted text.
11984// The hierarchy of an OCR extracted text structure is like this:
11985//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
11986// Symbol
11987// Each structural component, starting from Page, may further have their
11988// own
11989// properties. Properties describe detected languages, breaks etc..
11990// Please refer
11991// to the TextAnnotation.TextProperty message definition below for
11992// more
11993// detail.
11994type GoogleCloudVisionV1p4beta1TextAnnotation struct {
11995	// Pages: List of pages detected by OCR.
11996	Pages []*GoogleCloudVisionV1p4beta1Page `json:"pages,omitempty"`
11997
11998	// Text: UTF-8 text detected on the pages.
11999	Text string `json:"text,omitempty"`
12000
12001	// ForceSendFields is a list of field names (e.g. "Pages") to
12002	// unconditionally include in API requests. By default, fields with
12003	// empty values are omitted from API requests. However, any non-pointer,
12004	// non-interface field appearing in ForceSendFields will be sent to the
12005	// server regardless of whether the field is empty or not. This may be
12006	// used to include empty fields in Patch requests.
12007	ForceSendFields []string `json:"-"`
12008
12009	// NullFields is a list of field names (e.g. "Pages") to include in API
12010	// requests with the JSON null value. By default, fields with empty
12011	// values are omitted from API requests. However, any field with an
12012	// empty value appearing in NullFields will be sent to the server as
12013	// null. It is an error if a field in this list has a non-empty value.
12014	// This may be used to include null fields in Patch requests.
12015	NullFields []string `json:"-"`
12016}
12017
12018func (s *GoogleCloudVisionV1p4beta1TextAnnotation) MarshalJSON() ([]byte, error) {
12019	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotation
12020	raw := NoMethod(*s)
12021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12022}
12023
12024// GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak: Detected start
12025// or end of a structural component.
12026type GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak struct {
12027	// IsPrefix: True if break prepends the element.
12028	IsPrefix bool `json:"isPrefix,omitempty"`
12029
12030	// Type: Detected break type.
12031	//
12032	// Possible values:
12033	//   "UNKNOWN" - Unknown break label type.
12034	//   "SPACE" - Regular space.
12035	//   "SURE_SPACE" - Sure space (very wide).
12036	//   "EOL_SURE_SPACE" - Line-wrapping break.
12037	//   "HYPHEN" - End-line hyphen that is not present in text; does not
12038	// co-occur with
12039	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
12040	//   "LINE_BREAK" - Line break that ends a paragraph.
12041	Type string `json:"type,omitempty"`
12042
12043	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
12044	// unconditionally include in API requests. By default, fields with
12045	// empty values are omitted from API requests. However, any non-pointer,
12046	// non-interface field appearing in ForceSendFields will be sent to the
12047	// server regardless of whether the field is empty or not. This may be
12048	// used to include empty fields in Patch requests.
12049	ForceSendFields []string `json:"-"`
12050
12051	// NullFields is a list of field names (e.g. "IsPrefix") to include in
12052	// API requests with the JSON null value. By default, fields with empty
12053	// values are omitted from API requests. However, any field with an
12054	// empty value appearing in NullFields will be sent to the server as
12055	// null. It is an error if a field in this list has a non-empty value.
12056	// This may be used to include null fields in Patch requests.
12057	NullFields []string `json:"-"`
12058}
12059
12060func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
12061	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak
12062	raw := NoMethod(*s)
12063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12064}
12065
12066// GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage: Detected
12067// language for a structural component.
12068type GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage struct {
12069	// Confidence: Confidence of detected language. Range [0, 1].
12070	Confidence float64 `json:"confidence,omitempty"`
12071
12072	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12073	// For more
12074	// information,
12075	// see
12076	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12077	LanguageCode string `json:"languageCode,omitempty"`
12078
12079	// ForceSendFields is a list of field names (e.g. "Confidence") to
12080	// unconditionally include in API requests. By default, fields with
12081	// empty values are omitted from API requests. However, any non-pointer,
12082	// non-interface field appearing in ForceSendFields will be sent to the
12083	// server regardless of whether the field is empty or not. This may be
12084	// used to include empty fields in Patch requests.
12085	ForceSendFields []string `json:"-"`
12086
12087	// NullFields is a list of field names (e.g. "Confidence") to include in
12088	// API requests with the JSON null value. By default, fields with empty
12089	// values are omitted from API requests. However, any field with an
12090	// empty value appearing in NullFields will be sent to the server as
12091	// null. It is an error if a field in this list has a non-empty value.
12092	// This may be used to include null fields in Patch requests.
12093	NullFields []string `json:"-"`
12094}
12095
12096func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
12097	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12098	raw := NoMethod(*s)
12099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12100}
12101
12102func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
12103	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12104	var s1 struct {
12105		Confidence gensupport.JSONFloat64 `json:"confidence"`
12106		*NoMethod
12107	}
12108	s1.NoMethod = (*NoMethod)(s)
12109	if err := json.Unmarshal(data, &s1); err != nil {
12110		return err
12111	}
12112	s.Confidence = float64(s1.Confidence)
12113	return nil
12114}
12115
12116// GoogleCloudVisionV1p4beta1TextAnnotationTextProperty: Additional
12117// information detected on the structural component.
12118type GoogleCloudVisionV1p4beta1TextAnnotationTextProperty struct {
12119	// DetectedBreak: Detected start or end of a text segment.
12120	DetectedBreak *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
12121
12122	// DetectedLanguages: A list of detected languages together with
12123	// confidence.
12124	DetectedLanguages []*GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
12125
12126	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
12127	// unconditionally include in API requests. By default, fields with
12128	// empty values are omitted from API requests. However, any non-pointer,
12129	// non-interface field appearing in ForceSendFields will be sent to the
12130	// server regardless of whether the field is empty or not. This may be
12131	// used to include empty fields in Patch requests.
12132	ForceSendFields []string `json:"-"`
12133
12134	// NullFields is a list of field names (e.g. "DetectedBreak") to include
12135	// in API requests with the JSON null value. By default, fields with
12136	// empty values are omitted from API requests. However, any field with
12137	// an empty value appearing in NullFields will be sent to the server as
12138	// null. It is an error if a field in this list has a non-empty value.
12139	// This may be used to include null fields in Patch requests.
12140	NullFields []string `json:"-"`
12141}
12142
12143func (s *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
12144	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationTextProperty
12145	raw := NoMethod(*s)
12146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12147}
12148
12149// GoogleCloudVisionV1p4beta1Vertex: A vertex represents a 2D point in
12150// the image.
12151// NOTE: the vertex coordinates are in the same scale as the original
12152// image.
12153type GoogleCloudVisionV1p4beta1Vertex struct {
12154	// X: X coordinate.
12155	X int64 `json:"x,omitempty"`
12156
12157	// Y: Y coordinate.
12158	Y int64 `json:"y,omitempty"`
12159
12160	// ForceSendFields is a list of field names (e.g. "X") to
12161	// unconditionally include in API requests. By default, fields with
12162	// empty values are omitted from API requests. However, any non-pointer,
12163	// non-interface field appearing in ForceSendFields will be sent to the
12164	// server regardless of whether the field is empty or not. This may be
12165	// used to include empty fields in Patch requests.
12166	ForceSendFields []string `json:"-"`
12167
12168	// NullFields is a list of field names (e.g. "X") to include in API
12169	// requests with the JSON null value. By default, fields with empty
12170	// values are omitted from API requests. However, any field with an
12171	// empty value appearing in NullFields will be sent to the server as
12172	// null. It is an error if a field in this list has a non-empty value.
12173	// This may be used to include null fields in Patch requests.
12174	NullFields []string `json:"-"`
12175}
12176
12177func (s *GoogleCloudVisionV1p4beta1Vertex) MarshalJSON() ([]byte, error) {
12178	type NoMethod GoogleCloudVisionV1p4beta1Vertex
12179	raw := NoMethod(*s)
12180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12181}
12182
12183// GoogleCloudVisionV1p4beta1WebDetection: Relevant information for the
12184// image from the Internet.
12185type GoogleCloudVisionV1p4beta1WebDetection struct {
12186	// BestGuessLabels: The service's best guess as to the topic of the
12187	// request image.
12188	// Inferred from similar images on the open web.
12189	BestGuessLabels []*GoogleCloudVisionV1p4beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
12190
12191	// FullMatchingImages: Fully matching images from the Internet.
12192	// Can include resized copies of the query image.
12193	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12194
12195	// PagesWithMatchingImages: Web pages containing the matching images
12196	// from the Internet.
12197	PagesWithMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
12198
12199	// PartialMatchingImages: Partial matching images from the
12200	// Internet.
12201	// Those images are similar enough to share some key-point features.
12202	// For
12203	// example an original image will likely have partial matching for its
12204	// crops.
12205	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12206
12207	// VisuallySimilarImages: The visually similar image results.
12208	VisuallySimilarImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
12209
12210	// WebEntities: Deduced entities from similar images on the Internet.
12211	WebEntities []*GoogleCloudVisionV1p4beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
12212
12213	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
12214	// unconditionally include in API requests. By default, fields with
12215	// empty values are omitted from API requests. However, any non-pointer,
12216	// non-interface field appearing in ForceSendFields will be sent to the
12217	// server regardless of whether the field is empty or not. This may be
12218	// used to include empty fields in Patch requests.
12219	ForceSendFields []string `json:"-"`
12220
12221	// NullFields is a list of field names (e.g. "BestGuessLabels") to
12222	// include in API requests with the JSON null value. By default, fields
12223	// with empty values are omitted from API requests. However, any field
12224	// with an empty value appearing in NullFields will be sent to the
12225	// server as null. It is an error if a field in this list has a
12226	// non-empty value. This may be used to include null fields in Patch
12227	// requests.
12228	NullFields []string `json:"-"`
12229}
12230
12231func (s *GoogleCloudVisionV1p4beta1WebDetection) MarshalJSON() ([]byte, error) {
12232	type NoMethod GoogleCloudVisionV1p4beta1WebDetection
12233	raw := NoMethod(*s)
12234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12235}
12236
12237// GoogleCloudVisionV1p4beta1WebDetectionWebEntity: Entity deduced from
12238// similar images on the Internet.
12239type GoogleCloudVisionV1p4beta1WebDetectionWebEntity struct {
12240	// Description: Canonical description of the entity, in English.
12241	Description string `json:"description,omitempty"`
12242
12243	// EntityId: Opaque entity ID.
12244	EntityId string `json:"entityId,omitempty"`
12245
12246	// Score: Overall relevancy score for the entity.
12247	// Not normalized and not comparable across different image queries.
12248	Score float64 `json:"score,omitempty"`
12249
12250	// ForceSendFields is a list of field names (e.g. "Description") to
12251	// unconditionally include in API requests. By default, fields with
12252	// empty values are omitted from API requests. However, any non-pointer,
12253	// non-interface field appearing in ForceSendFields will be sent to the
12254	// server regardless of whether the field is empty or not. This may be
12255	// used to include empty fields in Patch requests.
12256	ForceSendFields []string `json:"-"`
12257
12258	// NullFields is a list of field names (e.g. "Description") to include
12259	// in API requests with the JSON null value. By default, fields with
12260	// empty values are omitted from API requests. However, any field with
12261	// an empty value appearing in NullFields will be sent to the server as
12262	// null. It is an error if a field in this list has a non-empty value.
12263	// This may be used to include null fields in Patch requests.
12264	NullFields []string `json:"-"`
12265}
12266
12267func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
12268	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12269	raw := NoMethod(*s)
12270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12271}
12272
12273func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
12274	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12275	var s1 struct {
12276		Score gensupport.JSONFloat64 `json:"score"`
12277		*NoMethod
12278	}
12279	s1.NoMethod = (*NoMethod)(s)
12280	if err := json.Unmarshal(data, &s1); err != nil {
12281		return err
12282	}
12283	s.Score = float64(s1.Score)
12284	return nil
12285}
12286
12287// GoogleCloudVisionV1p4beta1WebDetectionWebImage: Metadata for online
12288// images.
12289type GoogleCloudVisionV1p4beta1WebDetectionWebImage struct {
12290	// Score: (Deprecated) Overall relevancy score for the image.
12291	Score float64 `json:"score,omitempty"`
12292
12293	// Url: The result image URL.
12294	Url string `json:"url,omitempty"`
12295
12296	// ForceSendFields is a list of field names (e.g. "Score") to
12297	// unconditionally include in API requests. By default, fields with
12298	// empty values are omitted from API requests. However, any non-pointer,
12299	// non-interface field appearing in ForceSendFields will be sent to the
12300	// server regardless of whether the field is empty or not. This may be
12301	// used to include empty fields in Patch requests.
12302	ForceSendFields []string `json:"-"`
12303
12304	// NullFields is a list of field names (e.g. "Score") to include in API
12305	// requests with the JSON null value. By default, fields with empty
12306	// values are omitted from API requests. However, any field with an
12307	// empty value appearing in NullFields will be sent to the server as
12308	// null. It is an error if a field in this list has a non-empty value.
12309	// This may be used to include null fields in Patch requests.
12310	NullFields []string `json:"-"`
12311}
12312
12313func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
12314	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12315	raw := NoMethod(*s)
12316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12317}
12318
12319func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
12320	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12321	var s1 struct {
12322		Score gensupport.JSONFloat64 `json:"score"`
12323		*NoMethod
12324	}
12325	s1.NoMethod = (*NoMethod)(s)
12326	if err := json.Unmarshal(data, &s1); err != nil {
12327		return err
12328	}
12329	s.Score = float64(s1.Score)
12330	return nil
12331}
12332
12333// GoogleCloudVisionV1p4beta1WebDetectionWebLabel: Label to provide
12334// extra metadata for the web detection.
12335type GoogleCloudVisionV1p4beta1WebDetectionWebLabel struct {
12336	// Label: Label for extra metadata.
12337	Label string `json:"label,omitempty"`
12338
12339	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
12340	// or "sr-Latn".
12341	// For more information,
12342	// see
12343	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12344	LanguageCode string `json:"languageCode,omitempty"`
12345
12346	// ForceSendFields is a list of field names (e.g. "Label") to
12347	// unconditionally include in API requests. By default, fields with
12348	// empty values are omitted from API requests. However, any non-pointer,
12349	// non-interface field appearing in ForceSendFields will be sent to the
12350	// server regardless of whether the field is empty or not. This may be
12351	// used to include empty fields in Patch requests.
12352	ForceSendFields []string `json:"-"`
12353
12354	// NullFields is a list of field names (e.g. "Label") to include in API
12355	// requests with the JSON null value. By default, fields with empty
12356	// values are omitted from API requests. However, any field with an
12357	// empty value appearing in NullFields will be sent to the server as
12358	// null. It is an error if a field in this list has a non-empty value.
12359	// This may be used to include null fields in Patch requests.
12360	NullFields []string `json:"-"`
12361}
12362
12363func (s *GoogleCloudVisionV1p4beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
12364	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebLabel
12365	raw := NoMethod(*s)
12366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12367}
12368
12369// GoogleCloudVisionV1p4beta1WebDetectionWebPage: Metadata for web
12370// pages.
12371type GoogleCloudVisionV1p4beta1WebDetectionWebPage struct {
12372	// FullMatchingImages: Fully matching images on the page.
12373	// Can include resized copies of the query image.
12374	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12375
12376	// PageTitle: Title for the web page, may contain HTML markups.
12377	PageTitle string `json:"pageTitle,omitempty"`
12378
12379	// PartialMatchingImages: Partial matching images on the page.
12380	// Those images are similar enough to share some key-point features.
12381	// For
12382	// example an original image will likely have partial matching for
12383	// its
12384	// crops.
12385	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12386
12387	// Score: (Deprecated) Overall relevancy score for the web page.
12388	Score float64 `json:"score,omitempty"`
12389
12390	// Url: The result web page URL.
12391	Url string `json:"url,omitempty"`
12392
12393	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
12394	// to unconditionally include in API requests. By default, fields with
12395	// empty values are omitted from API requests. However, any non-pointer,
12396	// non-interface field appearing in ForceSendFields will be sent to the
12397	// server regardless of whether the field is empty or not. This may be
12398	// used to include empty fields in Patch requests.
12399	ForceSendFields []string `json:"-"`
12400
12401	// NullFields is a list of field names (e.g. "FullMatchingImages") to
12402	// include in API requests with the JSON null value. By default, fields
12403	// with empty values are omitted from API requests. However, any field
12404	// with an empty value appearing in NullFields will be sent to the
12405	// server as null. It is an error if a field in this list has a
12406	// non-empty value. This may be used to include null fields in Patch
12407	// requests.
12408	NullFields []string `json:"-"`
12409}
12410
12411func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
12412	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12413	raw := NoMethod(*s)
12414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12415}
12416
12417func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
12418	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12419	var s1 struct {
12420		Score gensupport.JSONFloat64 `json:"score"`
12421		*NoMethod
12422	}
12423	s1.NoMethod = (*NoMethod)(s)
12424	if err := json.Unmarshal(data, &s1); err != nil {
12425		return err
12426	}
12427	s.Score = float64(s1.Score)
12428	return nil
12429}
12430
12431// GoogleCloudVisionV1p4beta1Word: A word representation.
12432type GoogleCloudVisionV1p4beta1Word struct {
12433	// BoundingBox: The bounding box for the word.
12434	// The vertices are in the order of top-left, top-right,
12435	// bottom-right,
12436	// bottom-left. When a rotation of the bounding box is detected the
12437	// rotation
12438	// is represented as around the top-left corner as defined when the text
12439	// is
12440	// read in the 'natural' orientation.
12441	// For example:
12442	//   * when the text is horizontal it might look like:
12443	//      0----1
12444	//      |    |
12445	//      3----2
12446	//   * when it's rotated 180 degrees around the top-left corner it
12447	// becomes:
12448	//      2----3
12449	//      |    |
12450	//      1----0
12451	//   and the vertex order will still be (0, 1, 2, 3).
12452	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
12453
12454	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
12455	Confidence float64 `json:"confidence,omitempty"`
12456
12457	// Property: Additional information detected for the word.
12458	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
12459
12460	// Symbols: List of symbols in the word.
12461	// The order of the symbols follows the natural reading order.
12462	Symbols []*GoogleCloudVisionV1p4beta1Symbol `json:"symbols,omitempty"`
12463
12464	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12465	// unconditionally include in API requests. By default, fields with
12466	// empty values are omitted from API requests. However, any non-pointer,
12467	// non-interface field appearing in ForceSendFields will be sent to the
12468	// server regardless of whether the field is empty or not. This may be
12469	// used to include empty fields in Patch requests.
12470	ForceSendFields []string `json:"-"`
12471
12472	// NullFields is a list of field names (e.g. "BoundingBox") to include
12473	// in API requests with the JSON null value. By default, fields with
12474	// empty values are omitted from API requests. However, any field with
12475	// an empty value appearing in NullFields will be sent to the server as
12476	// null. It is an error if a field in this list has a non-empty value.
12477	// This may be used to include null fields in Patch requests.
12478	NullFields []string `json:"-"`
12479}
12480
12481func (s *GoogleCloudVisionV1p4beta1Word) MarshalJSON() ([]byte, error) {
12482	type NoMethod GoogleCloudVisionV1p4beta1Word
12483	raw := NoMethod(*s)
12484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12485}
12486
12487func (s *GoogleCloudVisionV1p4beta1Word) UnmarshalJSON(data []byte) error {
12488	type NoMethod GoogleCloudVisionV1p4beta1Word
12489	var s1 struct {
12490		Confidence gensupport.JSONFloat64 `json:"confidence"`
12491		*NoMethod
12492	}
12493	s1.NoMethod = (*NoMethod)(s)
12494	if err := json.Unmarshal(data, &s1); err != nil {
12495		return err
12496	}
12497	s.Confidence = float64(s1.Confidence)
12498	return nil
12499}
12500
12501// GroupedResult: Information about the products similar to a single
12502// product in a query
12503// image.
12504type GroupedResult struct {
12505	// BoundingPoly: The bounding polygon around the product detected in the
12506	// query image.
12507	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
12508
12509	// ObjectAnnotations: List of generic predictions for the object in the
12510	// bounding box.
12511	ObjectAnnotations []*ObjectAnnotation `json:"objectAnnotations,omitempty"`
12512
12513	// Results: List of results, one for each product match.
12514	Results []*Result `json:"results,omitempty"`
12515
12516	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12517	// unconditionally include in API requests. By default, fields with
12518	// empty values are omitted from API requests. However, any non-pointer,
12519	// non-interface field appearing in ForceSendFields will be sent to the
12520	// server regardless of whether the field is empty or not. This may be
12521	// used to include empty fields in Patch requests.
12522	ForceSendFields []string `json:"-"`
12523
12524	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12525	// in API requests with the JSON null value. By default, fields with
12526	// empty values are omitted from API requests. However, any field with
12527	// an empty value appearing in NullFields will be sent to the server as
12528	// null. It is an error if a field in this list has a non-empty value.
12529	// This may be used to include null fields in Patch requests.
12530	NullFields []string `json:"-"`
12531}
12532
12533func (s *GroupedResult) MarshalJSON() ([]byte, error) {
12534	type NoMethod GroupedResult
12535	raw := NoMethod(*s)
12536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12537}
12538
12539// Image: Client image to perform Google Cloud Vision API tasks over.
12540type Image struct {
12541	// Content: Image content, represented as a stream of bytes.
12542	// Note: As with all `bytes` fields, protobuffers use a pure
12543	// binary
12544	// representation, whereas JSON representations use base64.
12545	Content string `json:"content,omitempty"`
12546
12547	// Source: Google Cloud Storage image location, or publicly-accessible
12548	// image
12549	// URL. If both `content` and `source` are provided for an image,
12550	// `content`
12551	// takes precedence and is used to perform the image annotation request.
12552	Source *ImageSource `json:"source,omitempty"`
12553
12554	// ForceSendFields is a list of field names (e.g. "Content") to
12555	// unconditionally include in API requests. By default, fields with
12556	// empty values are omitted from API requests. However, any non-pointer,
12557	// non-interface field appearing in ForceSendFields will be sent to the
12558	// server regardless of whether the field is empty or not. This may be
12559	// used to include empty fields in Patch requests.
12560	ForceSendFields []string `json:"-"`
12561
12562	// NullFields is a list of field names (e.g. "Content") to include in
12563	// API requests with the JSON null value. By default, fields with empty
12564	// values are omitted from API requests. However, any field with an
12565	// empty value appearing in NullFields will be sent to the server as
12566	// null. It is an error if a field in this list has a non-empty value.
12567	// This may be used to include null fields in Patch requests.
12568	NullFields []string `json:"-"`
12569}
12570
12571func (s *Image) MarshalJSON() ([]byte, error) {
12572	type NoMethod Image
12573	raw := NoMethod(*s)
12574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12575}
12576
12577// ImageAnnotationContext: If an image was produced from a file (e.g. a
12578// PDF), this message gives
12579// information about the source of that image.
12580type ImageAnnotationContext struct {
12581	// PageNumber: If the file was a PDF or TIFF, this field gives the page
12582	// number within
12583	// the file used to produce the image.
12584	PageNumber int64 `json:"pageNumber,omitempty"`
12585
12586	// Uri: The URI of the file used to produce the image.
12587	Uri string `json:"uri,omitempty"`
12588
12589	// ForceSendFields is a list of field names (e.g. "PageNumber") to
12590	// unconditionally include in API requests. By default, fields with
12591	// empty values are omitted from API requests. However, any non-pointer,
12592	// non-interface field appearing in ForceSendFields will be sent to the
12593	// server regardless of whether the field is empty or not. This may be
12594	// used to include empty fields in Patch requests.
12595	ForceSendFields []string `json:"-"`
12596
12597	// NullFields is a list of field names (e.g. "PageNumber") to include in
12598	// API requests with the JSON null value. By default, fields with empty
12599	// values are omitted from API requests. However, any field with an
12600	// empty value appearing in NullFields will be sent to the server as
12601	// null. It is an error if a field in this list has a non-empty value.
12602	// This may be used to include null fields in Patch requests.
12603	NullFields []string `json:"-"`
12604}
12605
12606func (s *ImageAnnotationContext) MarshalJSON() ([]byte, error) {
12607	type NoMethod ImageAnnotationContext
12608	raw := NoMethod(*s)
12609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12610}
12611
12612// ImageContext: Image context and/or feature-specific parameters.
12613type ImageContext struct {
12614	// CropHintsParams: Parameters for crop hints annotation request.
12615	CropHintsParams *CropHintsParams `json:"cropHintsParams,omitempty"`
12616
12617	// LanguageHints: List of languages to use for TEXT_DETECTION. In most
12618	// cases, an empty value
12619	// yields the best results since it enables automatic language
12620	// detection. For
12621	// languages based on the Latin alphabet, setting `language_hints` is
12622	// not
12623	// needed. In rare cases, when the language of the text in the image is
12624	// known,
12625	// setting a hint will help get better results (although it will be
12626	// a
12627	// significant hindrance if the hint is wrong). Text detection returns
12628	// an
12629	// error if one or more of the specified languages is not one of
12630	// the
12631	// [supported
12632	// languages](https://cloud.google.com/vision/docs/languages).
12633	LanguageHints []string `json:"languageHints,omitempty"`
12634
12635	// LatLongRect: Not used.
12636	LatLongRect *LatLongRect `json:"latLongRect,omitempty"`
12637
12638	// ProductSearchParams: Parameters for product search.
12639	ProductSearchParams *ProductSearchParams `json:"productSearchParams,omitempty"`
12640
12641	// WebDetectionParams: Parameters for web detection.
12642	WebDetectionParams *WebDetectionParams `json:"webDetectionParams,omitempty"`
12643
12644	// ForceSendFields is a list of field names (e.g. "CropHintsParams") to
12645	// unconditionally include in API requests. By default, fields with
12646	// empty values are omitted from API requests. However, any non-pointer,
12647	// non-interface field appearing in ForceSendFields will be sent to the
12648	// server regardless of whether the field is empty or not. This may be
12649	// used to include empty fields in Patch requests.
12650	ForceSendFields []string `json:"-"`
12651
12652	// NullFields is a list of field names (e.g. "CropHintsParams") to
12653	// include in API requests with the JSON null value. By default, fields
12654	// with empty values are omitted from API requests. However, any field
12655	// with an empty value appearing in NullFields will be sent to the
12656	// server as null. It is an error if a field in this list has a
12657	// non-empty value. This may be used to include null fields in Patch
12658	// requests.
12659	NullFields []string `json:"-"`
12660}
12661
12662func (s *ImageContext) MarshalJSON() ([]byte, error) {
12663	type NoMethod ImageContext
12664	raw := NoMethod(*s)
12665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12666}
12667
12668// ImageProperties: Stores image properties, such as dominant colors.
12669type ImageProperties struct {
12670	// DominantColors: If present, dominant colors completed successfully.
12671	DominantColors *DominantColorsAnnotation `json:"dominantColors,omitempty"`
12672
12673	// ForceSendFields is a list of field names (e.g. "DominantColors") to
12674	// unconditionally include in API requests. By default, fields with
12675	// empty values are omitted from API requests. However, any non-pointer,
12676	// non-interface field appearing in ForceSendFields will be sent to the
12677	// server regardless of whether the field is empty or not. This may be
12678	// used to include empty fields in Patch requests.
12679	ForceSendFields []string `json:"-"`
12680
12681	// NullFields is a list of field names (e.g. "DominantColors") to
12682	// include in API requests with the JSON null value. By default, fields
12683	// with empty values are omitted from API requests. However, any field
12684	// with an empty value appearing in NullFields will be sent to the
12685	// server as null. It is an error if a field in this list has a
12686	// non-empty value. This may be used to include null fields in Patch
12687	// requests.
12688	NullFields []string `json:"-"`
12689}
12690
12691func (s *ImageProperties) MarshalJSON() ([]byte, error) {
12692	type NoMethod ImageProperties
12693	raw := NoMethod(*s)
12694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12695}
12696
12697// ImageSource: External image source (Google Cloud Storage or web URL
12698// image location).
12699type ImageSource struct {
12700	// GcsImageUri: **Use `image_uri` instead.**
12701	//
12702	// The Google Cloud Storage  URI of the
12703	// form
12704	// `gs://bucket_name/object_name`. Object versioning is not supported.
12705	// See
12706	// [Google Cloud Storage
12707	// Request
12708	// URIs](https://cloud.google.com/storage/docs/reference-uris) for more
12709	// info.
12710	GcsImageUri string `json:"gcsImageUri,omitempty"`
12711
12712	// ImageUri: The URI of the source image. Can be either:
12713	//
12714	// 1. A Google Cloud Storage URI of the form
12715	//    `gs://bucket_name/object_name`. Object versioning is not
12716	// supported. See
12717	//    [Google Cloud Storage Request
12718	//    URIs](https://cloud.google.com/storage/docs/reference-uris) for
12719	// more
12720	//    info.
12721	//
12722	// 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images
12723	// from
12724	//    HTTP/HTTPS URLs, Google cannot guarantee that the request will be
12725	//    completed. Your request may fail if the specified host denies the
12726	//    request (e.g. due to request throttling or DOS prevention), or if
12727	// Google
12728	//    throttles requests to the site for abuse prevention. You should
12729	// not
12730	//    depend on externally-hosted images for production
12731	// applications.
12732	//
12733	// When both `gcs_image_uri` and `image_uri` are specified, `image_uri`
12734	// takes
12735	// precedence.
12736	ImageUri string `json:"imageUri,omitempty"`
12737
12738	// ForceSendFields is a list of field names (e.g. "GcsImageUri") to
12739	// unconditionally include in API requests. By default, fields with
12740	// empty values are omitted from API requests. However, any non-pointer,
12741	// non-interface field appearing in ForceSendFields will be sent to the
12742	// server regardless of whether the field is empty or not. This may be
12743	// used to include empty fields in Patch requests.
12744	ForceSendFields []string `json:"-"`
12745
12746	// NullFields is a list of field names (e.g. "GcsImageUri") to include
12747	// in API requests with the JSON null value. By default, fields with
12748	// empty values are omitted from API requests. However, any field with
12749	// an empty value appearing in NullFields will be sent to the server as
12750	// null. It is an error if a field in this list has a non-empty value.
12751	// This may be used to include null fields in Patch requests.
12752	NullFields []string `json:"-"`
12753}
12754
12755func (s *ImageSource) MarshalJSON() ([]byte, error) {
12756	type NoMethod ImageSource
12757	raw := NoMethod(*s)
12758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12759}
12760
12761// ImportProductSetsGcsSource: The Google Cloud Storage location for a
12762// csv file which preserves a list of
12763// ImportProductSetRequests in each line.
12764type ImportProductSetsGcsSource struct {
12765	// CsvFileUri: The Google Cloud Storage URI of the input csv file.
12766	//
12767	// The URI must start with `gs://`.
12768	//
12769	// The format of the input csv file should be one image per line.
12770	// In each line, there are 8 columns.
12771	//
12772	// 1.  image-uri
12773	// 2.  image-id
12774	// 3.  product-set-id
12775	// 4.  product-id
12776	// 5.  product-category
12777	// 6.  product-display-name
12778	// 7.  labels
12779	// 8.  bounding-poly
12780	//
12781	// The `image-uri`, `product-set-id`, `product-id`, and
12782	// `product-category`
12783	// columns are required. All other columns are optional.
12784	//
12785	// If the `ProductSet` or `Product` specified by the `product-set-id`
12786	// and
12787	// `product-id` values does not exist, then the system will create a
12788	// new
12789	// `ProductSet` or `Product` for the image. In this case,
12790	// the
12791	// `product-display-name` column refers to
12792	// display_name, the
12793	// `product-category` column refers to
12794	// product_category, and the
12795	// `labels` column refers to product_labels.
12796	//
12797	// The `image-id` column is optional but must be unique if provided. If
12798	// it is
12799	// empty, the system will automatically assign a unique id to the
12800	// image.
12801	//
12802	// The `product-display-name` column is optional. If it is empty, the
12803	// system
12804	// sets the display_name field for the product to a
12805	// space (" "). You can update the `display_name` later by using the
12806	// API.
12807	//
12808	// If a `Product` with the specified `product-id` already exists, then
12809	// the
12810	// system ignores the `product-display-name`, `product-category`, and
12811	// `labels`
12812	// columns.
12813	//
12814	// The `labels` column (optional) is a line containing a list
12815	// of
12816	// comma-separated key-value pairs, in the following format:
12817	//
12818	//     "key_1=value_1,key_2=value_2,...,key_n=value_n"
12819	//
12820	// The `bounding-poly` column (optional) identifies one region
12821	// of
12822	// interest from the image in the same manner as `CreateReferenceImage`.
12823	// If
12824	// you do not specify the `bounding-poly` column, then the system will
12825	// try to
12826	// detect regions of interest automatically.
12827	//
12828	// At most one `bounding-poly` column is allowed per line. If the
12829	// image
12830	// contains multiple regions of interest, add a line to the CSV file
12831	// that
12832	// includes the same product information, and the `bounding-poly` values
12833	// for
12834	// each region of interest.
12835	//
12836	// The `bounding-poly` column must contain an even number of
12837	// comma-separated
12838	// numbers, in the format "p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y".
12839	// Use
12840	// non-negative integers for absolute bounding polygons, and float
12841	// values
12842	// in [0, 1] for normalized bounding polygons.
12843	//
12844	// The system will resize the image if the image resolution is too
12845	// large to process (larger than 20MP).
12846	CsvFileUri string `json:"csvFileUri,omitempty"`
12847
12848	// ForceSendFields is a list of field names (e.g. "CsvFileUri") to
12849	// unconditionally include in API requests. By default, fields with
12850	// empty values are omitted from API requests. However, any non-pointer,
12851	// non-interface field appearing in ForceSendFields will be sent to the
12852	// server regardless of whether the field is empty or not. This may be
12853	// used to include empty fields in Patch requests.
12854	ForceSendFields []string `json:"-"`
12855
12856	// NullFields is a list of field names (e.g. "CsvFileUri") to include in
12857	// API requests with the JSON null value. By default, fields with empty
12858	// values are omitted from API requests. However, any field with an
12859	// empty value appearing in NullFields will be sent to the server as
12860	// null. It is an error if a field in this list has a non-empty value.
12861	// This may be used to include null fields in Patch requests.
12862	NullFields []string `json:"-"`
12863}
12864
12865func (s *ImportProductSetsGcsSource) MarshalJSON() ([]byte, error) {
12866	type NoMethod ImportProductSetsGcsSource
12867	raw := NoMethod(*s)
12868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12869}
12870
12871// ImportProductSetsInputConfig: The input content for the
12872// `ImportProductSets` method.
12873type ImportProductSetsInputConfig struct {
12874	// GcsSource: The Google Cloud Storage location for a csv file which
12875	// preserves a list
12876	// of ImportProductSetRequests in each line.
12877	GcsSource *ImportProductSetsGcsSource `json:"gcsSource,omitempty"`
12878
12879	// ForceSendFields is a list of field names (e.g. "GcsSource") to
12880	// unconditionally include in API requests. By default, fields with
12881	// empty values are omitted from API requests. However, any non-pointer,
12882	// non-interface field appearing in ForceSendFields will be sent to the
12883	// server regardless of whether the field is empty or not. This may be
12884	// used to include empty fields in Patch requests.
12885	ForceSendFields []string `json:"-"`
12886
12887	// NullFields is a list of field names (e.g. "GcsSource") to include in
12888	// API requests with the JSON null value. By default, fields with empty
12889	// values are omitted from API requests. However, any field with an
12890	// empty value appearing in NullFields will be sent to the server as
12891	// null. It is an error if a field in this list has a non-empty value.
12892	// This may be used to include null fields in Patch requests.
12893	NullFields []string `json:"-"`
12894}
12895
12896func (s *ImportProductSetsInputConfig) MarshalJSON() ([]byte, error) {
12897	type NoMethod ImportProductSetsInputConfig
12898	raw := NoMethod(*s)
12899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12900}
12901
12902// ImportProductSetsRequest: Request message for the `ImportProductSets`
12903// method.
12904type ImportProductSetsRequest struct {
12905	// InputConfig: Required. The input content for the list of requests.
12906	InputConfig *ImportProductSetsInputConfig `json:"inputConfig,omitempty"`
12907
12908	// ForceSendFields is a list of field names (e.g. "InputConfig") to
12909	// unconditionally include in API requests. By default, fields with
12910	// empty values are omitted from API requests. However, any non-pointer,
12911	// non-interface field appearing in ForceSendFields will be sent to the
12912	// server regardless of whether the field is empty or not. This may be
12913	// used to include empty fields in Patch requests.
12914	ForceSendFields []string `json:"-"`
12915
12916	// NullFields is a list of field names (e.g. "InputConfig") to include
12917	// in API requests with the JSON null value. By default, fields with
12918	// empty values are omitted from API requests. However, any field with
12919	// an empty value appearing in NullFields will be sent to the server as
12920	// null. It is an error if a field in this list has a non-empty value.
12921	// This may be used to include null fields in Patch requests.
12922	NullFields []string `json:"-"`
12923}
12924
12925func (s *ImportProductSetsRequest) MarshalJSON() ([]byte, error) {
12926	type NoMethod ImportProductSetsRequest
12927	raw := NoMethod(*s)
12928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12929}
12930
12931// ImportProductSetsResponse: Response message for the
12932// `ImportProductSets` method.
12933//
12934// This message is returned by
12935// the
12936// google.longrunning.Operations.GetOperation method in the
12937// returned
12938// google.longrunning.Operation.response field.
12939type ImportProductSetsResponse struct {
12940	// ReferenceImages: The list of reference_images that are imported
12941	// successfully.
12942	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
12943
12944	// Statuses: The rpc status for each ImportProductSet request, including
12945	// both successes
12946	// and errors.
12947	//
12948	// The number of statuses here matches the number of lines in the csv
12949	// file,
12950	// and statuses[i] stores the success or failure status of processing
12951	// the i-th
12952	// line of the csv, starting from line 0.
12953	Statuses []*Status `json:"statuses,omitempty"`
12954
12955	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
12956	// unconditionally include in API requests. By default, fields with
12957	// empty values are omitted from API requests. However, any non-pointer,
12958	// non-interface field appearing in ForceSendFields will be sent to the
12959	// server regardless of whether the field is empty or not. This may be
12960	// used to include empty fields in Patch requests.
12961	ForceSendFields []string `json:"-"`
12962
12963	// NullFields is a list of field names (e.g. "ReferenceImages") to
12964	// include in API requests with the JSON null value. By default, fields
12965	// with empty values are omitted from API requests. However, any field
12966	// with an empty value appearing in NullFields will be sent to the
12967	// server as null. It is an error if a field in this list has a
12968	// non-empty value. This may be used to include null fields in Patch
12969	// requests.
12970	NullFields []string `json:"-"`
12971}
12972
12973func (s *ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
12974	type NoMethod ImportProductSetsResponse
12975	raw := NoMethod(*s)
12976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12977}
12978
12979// InputConfig: The desired input location and metadata.
12980type InputConfig struct {
12981	// Content: File content, represented as a stream of bytes.
12982	// Note: As with all `bytes` fields, protobuffers use a pure
12983	// binary
12984	// representation, whereas JSON representations use base64.
12985	//
12986	// Currently, this field only works for BatchAnnotateFiles requests. It
12987	// does
12988	// not work for AsyncBatchAnnotateFiles requests.
12989	Content string `json:"content,omitempty"`
12990
12991	// GcsSource: The Google Cloud Storage location to read the input from.
12992	GcsSource *GcsSource `json:"gcsSource,omitempty"`
12993
12994	// MimeType: The type of the file. Currently only "application/pdf",
12995	// "image/tiff" and
12996	// "image/gif" are supported. Wildcards are not supported.
12997	MimeType string `json:"mimeType,omitempty"`
12998
12999	// ForceSendFields is a list of field names (e.g. "Content") to
13000	// unconditionally include in API requests. By default, fields with
13001	// empty values are omitted from API requests. However, any non-pointer,
13002	// non-interface field appearing in ForceSendFields will be sent to the
13003	// server regardless of whether the field is empty or not. This may be
13004	// used to include empty fields in Patch requests.
13005	ForceSendFields []string `json:"-"`
13006
13007	// NullFields is a list of field names (e.g. "Content") to include in
13008	// API requests with the JSON null value. By default, fields with empty
13009	// values are omitted from API requests. However, any field with an
13010	// empty value appearing in NullFields will be sent to the server as
13011	// null. It is an error if a field in this list has a non-empty value.
13012	// This may be used to include null fields in Patch requests.
13013	NullFields []string `json:"-"`
13014}
13015
13016func (s *InputConfig) MarshalJSON() ([]byte, error) {
13017	type NoMethod InputConfig
13018	raw := NoMethod(*s)
13019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13020}
13021
13022// KeyValue: A product label represented as a key-value pair.
13023type KeyValue struct {
13024	// Key: The key of the label attached to the product. Cannot be empty
13025	// and cannot
13026	// exceed 128 bytes.
13027	Key string `json:"key,omitempty"`
13028
13029	// Value: The value of the label attached to the product. Cannot be
13030	// empty and
13031	// cannot exceed 128 bytes.
13032	Value string `json:"value,omitempty"`
13033
13034	// ForceSendFields is a list of field names (e.g. "Key") to
13035	// unconditionally include in API requests. By default, fields with
13036	// empty values are omitted from API requests. However, any non-pointer,
13037	// non-interface field appearing in ForceSendFields will be sent to the
13038	// server regardless of whether the field is empty or not. This may be
13039	// used to include empty fields in Patch requests.
13040	ForceSendFields []string `json:"-"`
13041
13042	// NullFields is a list of field names (e.g. "Key") to include in API
13043	// requests with the JSON null value. By default, fields with empty
13044	// values are omitted from API requests. However, any field with an
13045	// empty value appearing in NullFields will be sent to the server as
13046	// null. It is an error if a field in this list has a non-empty value.
13047	// This may be used to include null fields in Patch requests.
13048	NullFields []string `json:"-"`
13049}
13050
13051func (s *KeyValue) MarshalJSON() ([]byte, error) {
13052	type NoMethod KeyValue
13053	raw := NoMethod(*s)
13054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13055}
13056
13057// Landmark: A face-specific landmark (for example, a face feature).
13058type Landmark struct {
13059	// Position: Face landmark position.
13060	Position *Position `json:"position,omitempty"`
13061
13062	// Type: Face landmark type.
13063	//
13064	// Possible values:
13065	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
13066	// filled.
13067	//   "LEFT_EYE" - Left eye.
13068	//   "RIGHT_EYE" - Right eye.
13069	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
13070	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
13071	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
13072	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
13073	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
13074	//   "NOSE_TIP" - Nose tip.
13075	//   "UPPER_LIP" - Upper lip.
13076	//   "LOWER_LIP" - Lower lip.
13077	//   "MOUTH_LEFT" - Mouth left.
13078	//   "MOUTH_RIGHT" - Mouth right.
13079	//   "MOUTH_CENTER" - Mouth center.
13080	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
13081	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
13082	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
13083	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
13084	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
13085	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
13086	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
13087	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
13088	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
13089	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
13090	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
13091	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
13092	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
13093	//   "LEFT_EAR_TRAGION" - Left ear tragion.
13094	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
13095	//   "LEFT_EYE_PUPIL" - Left eye pupil.
13096	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
13097	//   "FOREHEAD_GLABELLA" - Forehead glabella.
13098	//   "CHIN_GNATHION" - Chin gnathion.
13099	//   "CHIN_LEFT_GONION" - Chin left gonion.
13100	//   "CHIN_RIGHT_GONION" - Chin right gonion.
13101	Type string `json:"type,omitempty"`
13102
13103	// ForceSendFields is a list of field names (e.g. "Position") to
13104	// unconditionally include in API requests. By default, fields with
13105	// empty values are omitted from API requests. However, any non-pointer,
13106	// non-interface field appearing in ForceSendFields will be sent to the
13107	// server regardless of whether the field is empty or not. This may be
13108	// used to include empty fields in Patch requests.
13109	ForceSendFields []string `json:"-"`
13110
13111	// NullFields is a list of field names (e.g. "Position") to include in
13112	// API requests with the JSON null value. By default, fields with empty
13113	// values are omitted from API requests. However, any field with an
13114	// empty value appearing in NullFields will be sent to the server as
13115	// null. It is an error if a field in this list has a non-empty value.
13116	// This may be used to include null fields in Patch requests.
13117	NullFields []string `json:"-"`
13118}
13119
13120func (s *Landmark) MarshalJSON() ([]byte, error) {
13121	type NoMethod Landmark
13122	raw := NoMethod(*s)
13123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13124}
13125
13126// LatLng: An object representing a latitude/longitude pair. This is
13127// expressed as a pair
13128// of doubles representing degrees latitude and degrees longitude.
13129// Unless
13130// specified otherwise, this must conform to the
13131// <a
13132// href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
13133// st
13134// andard</a>. Values must be within normalized ranges.
13135type LatLng struct {
13136	// Latitude: The latitude in degrees. It must be in the range [-90.0,
13137	// +90.0].
13138	Latitude float64 `json:"latitude,omitempty"`
13139
13140	// Longitude: The longitude in degrees. It must be in the range [-180.0,
13141	// +180.0].
13142	Longitude float64 `json:"longitude,omitempty"`
13143
13144	// ForceSendFields is a list of field names (e.g. "Latitude") to
13145	// unconditionally include in API requests. By default, fields with
13146	// empty values are omitted from API requests. However, any non-pointer,
13147	// non-interface field appearing in ForceSendFields will be sent to the
13148	// server regardless of whether the field is empty or not. This may be
13149	// used to include empty fields in Patch requests.
13150	ForceSendFields []string `json:"-"`
13151
13152	// NullFields is a list of field names (e.g. "Latitude") to include in
13153	// API requests with the JSON null value. By default, fields with empty
13154	// values are omitted from API requests. However, any field with an
13155	// empty value appearing in NullFields will be sent to the server as
13156	// null. It is an error if a field in this list has a non-empty value.
13157	// This may be used to include null fields in Patch requests.
13158	NullFields []string `json:"-"`
13159}
13160
13161func (s *LatLng) MarshalJSON() ([]byte, error) {
13162	type NoMethod LatLng
13163	raw := NoMethod(*s)
13164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13165}
13166
13167func (s *LatLng) UnmarshalJSON(data []byte) error {
13168	type NoMethod LatLng
13169	var s1 struct {
13170		Latitude  gensupport.JSONFloat64 `json:"latitude"`
13171		Longitude gensupport.JSONFloat64 `json:"longitude"`
13172		*NoMethod
13173	}
13174	s1.NoMethod = (*NoMethod)(s)
13175	if err := json.Unmarshal(data, &s1); err != nil {
13176		return err
13177	}
13178	s.Latitude = float64(s1.Latitude)
13179	s.Longitude = float64(s1.Longitude)
13180	return nil
13181}
13182
13183// LatLongRect: Rectangle determined by min and max `LatLng` pairs.
13184type LatLongRect struct {
13185	// MaxLatLng: Max lat/long pair.
13186	MaxLatLng *LatLng `json:"maxLatLng,omitempty"`
13187
13188	// MinLatLng: Min lat/long pair.
13189	MinLatLng *LatLng `json:"minLatLng,omitempty"`
13190
13191	// ForceSendFields is a list of field names (e.g. "MaxLatLng") to
13192	// unconditionally include in API requests. By default, fields with
13193	// empty values are omitted from API requests. However, any non-pointer,
13194	// non-interface field appearing in ForceSendFields will be sent to the
13195	// server regardless of whether the field is empty or not. This may be
13196	// used to include empty fields in Patch requests.
13197	ForceSendFields []string `json:"-"`
13198
13199	// NullFields is a list of field names (e.g. "MaxLatLng") to include in
13200	// API requests with the JSON null value. By default, fields with empty
13201	// values are omitted from API requests. However, any field with an
13202	// empty value appearing in NullFields will be sent to the server as
13203	// null. It is an error if a field in this list has a non-empty value.
13204	// This may be used to include null fields in Patch requests.
13205	NullFields []string `json:"-"`
13206}
13207
13208func (s *LatLongRect) MarshalJSON() ([]byte, error) {
13209	type NoMethod LatLongRect
13210	raw := NoMethod(*s)
13211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13212}
13213
13214// ListOperationsResponse: The response message for
13215// Operations.ListOperations.
13216type ListOperationsResponse struct {
13217	// NextPageToken: The standard List next-page token.
13218	NextPageToken string `json:"nextPageToken,omitempty"`
13219
13220	// Operations: A list of operations that matches the specified filter in
13221	// the request.
13222	Operations []*Operation `json:"operations,omitempty"`
13223
13224	// ServerResponse contains the HTTP response code and headers from the
13225	// server.
13226	googleapi.ServerResponse `json:"-"`
13227
13228	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13229	// unconditionally include in API requests. By default, fields with
13230	// empty values are omitted from API requests. However, any non-pointer,
13231	// non-interface field appearing in ForceSendFields will be sent to the
13232	// server regardless of whether the field is empty or not. This may be
13233	// used to include empty fields in Patch requests.
13234	ForceSendFields []string `json:"-"`
13235
13236	// NullFields is a list of field names (e.g. "NextPageToken") to include
13237	// in API requests with the JSON null value. By default, fields with
13238	// empty values are omitted from API requests. However, any field with
13239	// an empty value appearing in NullFields will be sent to the server as
13240	// null. It is an error if a field in this list has a non-empty value.
13241	// This may be used to include null fields in Patch requests.
13242	NullFields []string `json:"-"`
13243}
13244
13245func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
13246	type NoMethod ListOperationsResponse
13247	raw := NoMethod(*s)
13248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13249}
13250
13251// ListProductSetsResponse: Response message for the `ListProductSets`
13252// method.
13253type ListProductSetsResponse struct {
13254	// NextPageToken: Token to retrieve the next page of results, or empty
13255	// if there are no more
13256	// results in the list.
13257	NextPageToken string `json:"nextPageToken,omitempty"`
13258
13259	// ProductSets: List of ProductSets.
13260	ProductSets []*ProductSet `json:"productSets,omitempty"`
13261
13262	// ServerResponse contains the HTTP response code and headers from the
13263	// server.
13264	googleapi.ServerResponse `json:"-"`
13265
13266	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13267	// unconditionally include in API requests. By default, fields with
13268	// empty values are omitted from API requests. However, any non-pointer,
13269	// non-interface field appearing in ForceSendFields will be sent to the
13270	// server regardless of whether the field is empty or not. This may be
13271	// used to include empty fields in Patch requests.
13272	ForceSendFields []string `json:"-"`
13273
13274	// NullFields is a list of field names (e.g. "NextPageToken") to include
13275	// in API requests with the JSON null value. By default, fields with
13276	// empty values are omitted from API requests. However, any field with
13277	// an empty value appearing in NullFields will be sent to the server as
13278	// null. It is an error if a field in this list has a non-empty value.
13279	// This may be used to include null fields in Patch requests.
13280	NullFields []string `json:"-"`
13281}
13282
13283func (s *ListProductSetsResponse) MarshalJSON() ([]byte, error) {
13284	type NoMethod ListProductSetsResponse
13285	raw := NoMethod(*s)
13286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13287}
13288
13289// ListProductsInProductSetResponse: Response message for the
13290// `ListProductsInProductSet` method.
13291type ListProductsInProductSetResponse struct {
13292	// NextPageToken: Token to retrieve the next page of results, or empty
13293	// if there are no more
13294	// results in the list.
13295	NextPageToken string `json:"nextPageToken,omitempty"`
13296
13297	// Products: The list of Products.
13298	Products []*Product `json:"products,omitempty"`
13299
13300	// ServerResponse contains the HTTP response code and headers from the
13301	// server.
13302	googleapi.ServerResponse `json:"-"`
13303
13304	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13305	// unconditionally include in API requests. By default, fields with
13306	// empty values are omitted from API requests. However, any non-pointer,
13307	// non-interface field appearing in ForceSendFields will be sent to the
13308	// server regardless of whether the field is empty or not. This may be
13309	// used to include empty fields in Patch requests.
13310	ForceSendFields []string `json:"-"`
13311
13312	// NullFields is a list of field names (e.g. "NextPageToken") to include
13313	// in API requests with the JSON null value. By default, fields with
13314	// empty values are omitted from API requests. However, any field with
13315	// an empty value appearing in NullFields will be sent to the server as
13316	// null. It is an error if a field in this list has a non-empty value.
13317	// This may be used to include null fields in Patch requests.
13318	NullFields []string `json:"-"`
13319}
13320
13321func (s *ListProductsInProductSetResponse) MarshalJSON() ([]byte, error) {
13322	type NoMethod ListProductsInProductSetResponse
13323	raw := NoMethod(*s)
13324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13325}
13326
13327// ListProductsResponse: Response message for the `ListProducts` method.
13328type ListProductsResponse struct {
13329	// NextPageToken: Token to retrieve the next page of results, or empty
13330	// if there are no more
13331	// results in the list.
13332	NextPageToken string `json:"nextPageToken,omitempty"`
13333
13334	// Products: List of products.
13335	Products []*Product `json:"products,omitempty"`
13336
13337	// ServerResponse contains the HTTP response code and headers from the
13338	// server.
13339	googleapi.ServerResponse `json:"-"`
13340
13341	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13342	// unconditionally include in API requests. By default, fields with
13343	// empty values are omitted from API requests. However, any non-pointer,
13344	// non-interface field appearing in ForceSendFields will be sent to the
13345	// server regardless of whether the field is empty or not. This may be
13346	// used to include empty fields in Patch requests.
13347	ForceSendFields []string `json:"-"`
13348
13349	// NullFields is a list of field names (e.g. "NextPageToken") to include
13350	// in API requests with the JSON null value. By default, fields with
13351	// empty values are omitted from API requests. However, any field with
13352	// an empty value appearing in NullFields will be sent to the server as
13353	// null. It is an error if a field in this list has a non-empty value.
13354	// This may be used to include null fields in Patch requests.
13355	NullFields []string `json:"-"`
13356}
13357
13358func (s *ListProductsResponse) MarshalJSON() ([]byte, error) {
13359	type NoMethod ListProductsResponse
13360	raw := NoMethod(*s)
13361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13362}
13363
13364// ListReferenceImagesResponse: Response message for the
13365// `ListReferenceImages` method.
13366type ListReferenceImagesResponse struct {
13367	// NextPageToken: The next_page_token returned from a previous List
13368	// request, if any.
13369	NextPageToken string `json:"nextPageToken,omitempty"`
13370
13371	// PageSize: The maximum number of items to return. Default 10, maximum
13372	// 100.
13373	PageSize int64 `json:"pageSize,omitempty"`
13374
13375	// ReferenceImages: The list of reference images.
13376	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
13377
13378	// ServerResponse contains the HTTP response code and headers from the
13379	// server.
13380	googleapi.ServerResponse `json:"-"`
13381
13382	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13383	// unconditionally include in API requests. By default, fields with
13384	// empty values are omitted from API requests. However, any non-pointer,
13385	// non-interface field appearing in ForceSendFields will be sent to the
13386	// server regardless of whether the field is empty or not. This may be
13387	// used to include empty fields in Patch requests.
13388	ForceSendFields []string `json:"-"`
13389
13390	// NullFields is a list of field names (e.g. "NextPageToken") to include
13391	// in API requests with the JSON null value. By default, fields with
13392	// empty values are omitted from API requests. However, any field with
13393	// an empty value appearing in NullFields will be sent to the server as
13394	// null. It is an error if a field in this list has a non-empty value.
13395	// This may be used to include null fields in Patch requests.
13396	NullFields []string `json:"-"`
13397}
13398
13399func (s *ListReferenceImagesResponse) MarshalJSON() ([]byte, error) {
13400	type NoMethod ListReferenceImagesResponse
13401	raw := NoMethod(*s)
13402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13403}
13404
13405// LocalizedObjectAnnotation: Set of detected objects with bounding
13406// boxes.
13407type LocalizedObjectAnnotation struct {
13408	// BoundingPoly: Image region to which this object belongs. This must be
13409	// populated.
13410	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
13411
13412	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
13413	// For more
13414	// information,
13415	// see
13416	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13417	LanguageCode string `json:"languageCode,omitempty"`
13418
13419	// Mid: Object ID that should align with EntityAnnotation mid.
13420	Mid string `json:"mid,omitempty"`
13421
13422	// Name: Object name, expressed in its `language_code` language.
13423	Name string `json:"name,omitempty"`
13424
13425	// Score: Score of the result. Range [0, 1].
13426	Score float64 `json:"score,omitempty"`
13427
13428	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
13429	// unconditionally include in API requests. By default, fields with
13430	// empty values are omitted from API requests. However, any non-pointer,
13431	// non-interface field appearing in ForceSendFields will be sent to the
13432	// server regardless of whether the field is empty or not. This may be
13433	// used to include empty fields in Patch requests.
13434	ForceSendFields []string `json:"-"`
13435
13436	// NullFields is a list of field names (e.g. "BoundingPoly") to include
13437	// in API requests with the JSON null value. By default, fields with
13438	// empty values are omitted from API requests. However, any field with
13439	// an empty value appearing in NullFields will be sent to the server as
13440	// null. It is an error if a field in this list has a non-empty value.
13441	// This may be used to include null fields in Patch requests.
13442	NullFields []string `json:"-"`
13443}
13444
13445func (s *LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
13446	type NoMethod LocalizedObjectAnnotation
13447	raw := NoMethod(*s)
13448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13449}
13450
13451func (s *LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
13452	type NoMethod LocalizedObjectAnnotation
13453	var s1 struct {
13454		Score gensupport.JSONFloat64 `json:"score"`
13455		*NoMethod
13456	}
13457	s1.NoMethod = (*NoMethod)(s)
13458	if err := json.Unmarshal(data, &s1); err != nil {
13459		return err
13460	}
13461	s.Score = float64(s1.Score)
13462	return nil
13463}
13464
13465// LocationInfo: Detected entity location information.
13466type LocationInfo struct {
13467	// LatLng: lat/long location coordinates.
13468	LatLng *LatLng `json:"latLng,omitempty"`
13469
13470	// ForceSendFields is a list of field names (e.g. "LatLng") to
13471	// unconditionally include in API requests. By default, fields with
13472	// empty values are omitted from API requests. However, any non-pointer,
13473	// non-interface field appearing in ForceSendFields will be sent to the
13474	// server regardless of whether the field is empty or not. This may be
13475	// used to include empty fields in Patch requests.
13476	ForceSendFields []string `json:"-"`
13477
13478	// NullFields is a list of field names (e.g. "LatLng") to include in API
13479	// requests with the JSON null value. By default, fields with empty
13480	// values are omitted from API requests. However, any field with an
13481	// empty value appearing in NullFields will be sent to the server as
13482	// null. It is an error if a field in this list has a non-empty value.
13483	// This may be used to include null fields in Patch requests.
13484	NullFields []string `json:"-"`
13485}
13486
13487func (s *LocationInfo) MarshalJSON() ([]byte, error) {
13488	type NoMethod LocationInfo
13489	raw := NoMethod(*s)
13490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13491}
13492
13493// NormalizedVertex: A vertex represents a 2D point in the image.
13494// NOTE: the normalized vertex coordinates are relative to the original
13495// image
13496// and range from 0 to 1.
13497type NormalizedVertex struct {
13498	// X: X coordinate.
13499	X float64 `json:"x,omitempty"`
13500
13501	// Y: Y coordinate.
13502	Y float64 `json:"y,omitempty"`
13503
13504	// ForceSendFields is a list of field names (e.g. "X") to
13505	// unconditionally include in API requests. By default, fields with
13506	// empty values are omitted from API requests. However, any non-pointer,
13507	// non-interface field appearing in ForceSendFields will be sent to the
13508	// server regardless of whether the field is empty or not. This may be
13509	// used to include empty fields in Patch requests.
13510	ForceSendFields []string `json:"-"`
13511
13512	// NullFields is a list of field names (e.g. "X") to include in API
13513	// requests with the JSON null value. By default, fields with empty
13514	// values are omitted from API requests. However, any field with an
13515	// empty value appearing in NullFields will be sent to the server as
13516	// null. It is an error if a field in this list has a non-empty value.
13517	// This may be used to include null fields in Patch requests.
13518	NullFields []string `json:"-"`
13519}
13520
13521func (s *NormalizedVertex) MarshalJSON() ([]byte, error) {
13522	type NoMethod NormalizedVertex
13523	raw := NoMethod(*s)
13524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13525}
13526
13527func (s *NormalizedVertex) UnmarshalJSON(data []byte) error {
13528	type NoMethod NormalizedVertex
13529	var s1 struct {
13530		X gensupport.JSONFloat64 `json:"x"`
13531		Y gensupport.JSONFloat64 `json:"y"`
13532		*NoMethod
13533	}
13534	s1.NoMethod = (*NoMethod)(s)
13535	if err := json.Unmarshal(data, &s1); err != nil {
13536		return err
13537	}
13538	s.X = float64(s1.X)
13539	s.Y = float64(s1.Y)
13540	return nil
13541}
13542
13543// ObjectAnnotation: Prediction for what the object in the bounding box
13544// is.
13545type ObjectAnnotation struct {
13546	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
13547	// For more
13548	// information,
13549	// see
13550	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13551	LanguageCode string `json:"languageCode,omitempty"`
13552
13553	// Mid: Object ID that should align with EntityAnnotation mid.
13554	Mid string `json:"mid,omitempty"`
13555
13556	// Name: Object name, expressed in its `language_code` language.
13557	Name string `json:"name,omitempty"`
13558
13559	// Score: Score of the result. Range [0, 1].
13560	Score float64 `json:"score,omitempty"`
13561
13562	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
13563	// unconditionally include in API requests. By default, fields with
13564	// empty values are omitted from API requests. However, any non-pointer,
13565	// non-interface field appearing in ForceSendFields will be sent to the
13566	// server regardless of whether the field is empty or not. This may be
13567	// used to include empty fields in Patch requests.
13568	ForceSendFields []string `json:"-"`
13569
13570	// NullFields is a list of field names (e.g. "LanguageCode") to include
13571	// in API requests with the JSON null value. By default, fields with
13572	// empty values are omitted from API requests. However, any field with
13573	// an empty value appearing in NullFields will be sent to the server as
13574	// null. It is an error if a field in this list has a non-empty value.
13575	// This may be used to include null fields in Patch requests.
13576	NullFields []string `json:"-"`
13577}
13578
13579func (s *ObjectAnnotation) MarshalJSON() ([]byte, error) {
13580	type NoMethod ObjectAnnotation
13581	raw := NoMethod(*s)
13582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13583}
13584
13585func (s *ObjectAnnotation) UnmarshalJSON(data []byte) error {
13586	type NoMethod ObjectAnnotation
13587	var s1 struct {
13588		Score gensupport.JSONFloat64 `json:"score"`
13589		*NoMethod
13590	}
13591	s1.NoMethod = (*NoMethod)(s)
13592	if err := json.Unmarshal(data, &s1); err != nil {
13593		return err
13594	}
13595	s.Score = float64(s1.Score)
13596	return nil
13597}
13598
13599// Operation: This resource represents a long-running operation that is
13600// the result of a
13601// network API call.
13602type Operation struct {
13603	// Done: If the value is `false`, it means the operation is still in
13604	// progress.
13605	// If `true`, the operation is completed, and either `error` or
13606	// `response` is
13607	// available.
13608	Done bool `json:"done,omitempty"`
13609
13610	// Error: The error result of the operation in case of failure or
13611	// cancellation.
13612	Error *Status `json:"error,omitempty"`
13613
13614	// Metadata: Service-specific metadata associated with the operation.
13615	// It typically
13616	// contains progress information and common metadata such as create
13617	// time.
13618	// Some services might not provide such metadata.  Any method that
13619	// returns a
13620	// long-running operation should document the metadata type, if any.
13621	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
13622
13623	// Name: The server-assigned name, which is only unique within the same
13624	// service that
13625	// originally returns it. If you use the default HTTP mapping,
13626	// the
13627	// `name` should be a resource name ending with
13628	// `operations/{unique_id}`.
13629	Name string `json:"name,omitempty"`
13630
13631	// Response: The normal response of the operation in case of success.
13632	// If the original
13633	// method returns no data on success, such as `Delete`, the response
13634	// is
13635	// `google.protobuf.Empty`.  If the original method is
13636	// standard
13637	// `Get`/`Create`/`Update`, the response should be the resource.  For
13638	// other
13639	// methods, the response should have the type `XxxResponse`, where
13640	// `Xxx`
13641	// is the original method name.  For example, if the original method
13642	// name
13643	// is `TakeSnapshot()`, the inferred response type
13644	// is
13645	// `TakeSnapshotResponse`.
13646	Response googleapi.RawMessage `json:"response,omitempty"`
13647
13648	// ServerResponse contains the HTTP response code and headers from the
13649	// server.
13650	googleapi.ServerResponse `json:"-"`
13651
13652	// ForceSendFields is a list of field names (e.g. "Done") to
13653	// unconditionally include in API requests. By default, fields with
13654	// empty values are omitted from API requests. However, any non-pointer,
13655	// non-interface field appearing in ForceSendFields will be sent to the
13656	// server regardless of whether the field is empty or not. This may be
13657	// used to include empty fields in Patch requests.
13658	ForceSendFields []string `json:"-"`
13659
13660	// NullFields is a list of field names (e.g. "Done") to include in API
13661	// requests with the JSON null value. By default, fields with empty
13662	// values are omitted from API requests. However, any field with an
13663	// empty value appearing in NullFields will be sent to the server as
13664	// null. It is an error if a field in this list has a non-empty value.
13665	// This may be used to include null fields in Patch requests.
13666	NullFields []string `json:"-"`
13667}
13668
13669func (s *Operation) MarshalJSON() ([]byte, error) {
13670	type NoMethod Operation
13671	raw := NoMethod(*s)
13672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13673}
13674
13675// OperationMetadata: Contains metadata for the BatchAnnotateImages
13676// operation.
13677type OperationMetadata struct {
13678	// CreateTime: The time when the batch request was received.
13679	CreateTime string `json:"createTime,omitempty"`
13680
13681	// State: Current state of the batch operation.
13682	//
13683	// Possible values:
13684	//   "STATE_UNSPECIFIED" - Invalid.
13685	//   "CREATED" - Request is received.
13686	//   "RUNNING" - Request is actively being processed.
13687	//   "DONE" - The batch processing is done.
13688	//   "CANCELLED" - The batch processing was cancelled.
13689	State string `json:"state,omitempty"`
13690
13691	// UpdateTime: The time when the operation result was last updated.
13692	UpdateTime string `json:"updateTime,omitempty"`
13693
13694	// ForceSendFields is a list of field names (e.g. "CreateTime") to
13695	// unconditionally include in API requests. By default, fields with
13696	// empty values are omitted from API requests. However, any non-pointer,
13697	// non-interface field appearing in ForceSendFields will be sent to the
13698	// server regardless of whether the field is empty or not. This may be
13699	// used to include empty fields in Patch requests.
13700	ForceSendFields []string `json:"-"`
13701
13702	// NullFields is a list of field names (e.g. "CreateTime") to include in
13703	// API requests with the JSON null value. By default, fields with empty
13704	// values are omitted from API requests. However, any field with an
13705	// empty value appearing in NullFields will be sent to the server as
13706	// null. It is an error if a field in this list has a non-empty value.
13707	// This may be used to include null fields in Patch requests.
13708	NullFields []string `json:"-"`
13709}
13710
13711func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
13712	type NoMethod OperationMetadata
13713	raw := NoMethod(*s)
13714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13715}
13716
13717// OutputConfig: The desired output location and metadata.
13718type OutputConfig struct {
13719	// BatchSize: The max number of response protos to put into each output
13720	// JSON file on
13721	// Google Cloud Storage.
13722	// The valid range is [1, 100]. If not specified, the default value is
13723	// 20.
13724	//
13725	// For example, for one pdf file with 100 pages, 100 response protos
13726	// will
13727	// be generated. If `batch_size` = 20, then 5 json files each
13728	// containing 20 response protos will be written under the
13729	// prefix
13730	// `gcs_destination`.`uri`.
13731	//
13732	// Currently, batch_size only applies to GcsDestination, with potential
13733	// future
13734	// support for other output configurations.
13735	BatchSize int64 `json:"batchSize,omitempty"`
13736
13737	// GcsDestination: The Google Cloud Storage location to write the
13738	// output(s) to.
13739	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
13740
13741	// ForceSendFields is a list of field names (e.g. "BatchSize") to
13742	// unconditionally include in API requests. By default, fields with
13743	// empty values are omitted from API requests. However, any non-pointer,
13744	// non-interface field appearing in ForceSendFields will be sent to the
13745	// server regardless of whether the field is empty or not. This may be
13746	// used to include empty fields in Patch requests.
13747	ForceSendFields []string `json:"-"`
13748
13749	// NullFields is a list of field names (e.g. "BatchSize") to include in
13750	// API requests with the JSON null value. By default, fields with empty
13751	// values are omitted from API requests. However, any field with an
13752	// empty value appearing in NullFields will be sent to the server as
13753	// null. It is an error if a field in this list has a non-empty value.
13754	// This may be used to include null fields in Patch requests.
13755	NullFields []string `json:"-"`
13756}
13757
13758func (s *OutputConfig) MarshalJSON() ([]byte, error) {
13759	type NoMethod OutputConfig
13760	raw := NoMethod(*s)
13761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13762}
13763
13764// Page: Detected page from OCR.
13765type Page struct {
13766	// Blocks: List of blocks of text, images etc on this page.
13767	Blocks []*Block `json:"blocks,omitempty"`
13768
13769	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
13770	Confidence float64 `json:"confidence,omitempty"`
13771
13772	// Height: Page height. For PDFs the unit is points. For images
13773	// (including
13774	// TIFFs) the unit is pixels.
13775	Height int64 `json:"height,omitempty"`
13776
13777	// Property: Additional information detected on the page.
13778	Property *TextProperty `json:"property,omitempty"`
13779
13780	// Width: Page width. For PDFs the unit is points. For images
13781	// (including
13782	// TIFFs) the unit is pixels.
13783	Width int64 `json:"width,omitempty"`
13784
13785	// ForceSendFields is a list of field names (e.g. "Blocks") to
13786	// unconditionally include in API requests. By default, fields with
13787	// empty values are omitted from API requests. However, any non-pointer,
13788	// non-interface field appearing in ForceSendFields will be sent to the
13789	// server regardless of whether the field is empty or not. This may be
13790	// used to include empty fields in Patch requests.
13791	ForceSendFields []string `json:"-"`
13792
13793	// NullFields is a list of field names (e.g. "Blocks") to include in API
13794	// requests with the JSON null value. By default, fields with empty
13795	// values are omitted from API requests. However, any field with an
13796	// empty value appearing in NullFields will be sent to the server as
13797	// null. It is an error if a field in this list has a non-empty value.
13798	// This may be used to include null fields in Patch requests.
13799	NullFields []string `json:"-"`
13800}
13801
13802func (s *Page) MarshalJSON() ([]byte, error) {
13803	type NoMethod Page
13804	raw := NoMethod(*s)
13805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13806}
13807
13808func (s *Page) UnmarshalJSON(data []byte) error {
13809	type NoMethod Page
13810	var s1 struct {
13811		Confidence gensupport.JSONFloat64 `json:"confidence"`
13812		*NoMethod
13813	}
13814	s1.NoMethod = (*NoMethod)(s)
13815	if err := json.Unmarshal(data, &s1); err != nil {
13816		return err
13817	}
13818	s.Confidence = float64(s1.Confidence)
13819	return nil
13820}
13821
13822// Paragraph: Structural unit of text representing a number of words in
13823// certain order.
13824type Paragraph struct {
13825	// BoundingBox: The bounding box for the paragraph.
13826	// The vertices are in the order of top-left, top-right,
13827	// bottom-right,
13828	// bottom-left. When a rotation of the bounding box is detected the
13829	// rotation
13830	// is represented as around the top-left corner as defined when the text
13831	// is
13832	// read in the 'natural' orientation.
13833	// For example:
13834	//   * when the text is horizontal it might look like:
13835	//      0----1
13836	//      |    |
13837	//      3----2
13838	//   * when it's rotated 180 degrees around the top-left corner it
13839	// becomes:
13840	//      2----3
13841	//      |    |
13842	//      1----0
13843	//   and the vertex order will still be (0, 1, 2, 3).
13844	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
13845
13846	// Confidence: Confidence of the OCR results for the paragraph. Range
13847	// [0, 1].
13848	Confidence float64 `json:"confidence,omitempty"`
13849
13850	// Property: Additional information detected for the paragraph.
13851	Property *TextProperty `json:"property,omitempty"`
13852
13853	// Words: List of all words in this paragraph.
13854	Words []*Word `json:"words,omitempty"`
13855
13856	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
13857	// unconditionally include in API requests. By default, fields with
13858	// empty values are omitted from API requests. However, any non-pointer,
13859	// non-interface field appearing in ForceSendFields will be sent to the
13860	// server regardless of whether the field is empty or not. This may be
13861	// used to include empty fields in Patch requests.
13862	ForceSendFields []string `json:"-"`
13863
13864	// NullFields is a list of field names (e.g. "BoundingBox") to include
13865	// in API requests with the JSON null value. By default, fields with
13866	// empty values are omitted from API requests. However, any field with
13867	// an empty value appearing in NullFields will be sent to the server as
13868	// null. It is an error if a field in this list has a non-empty value.
13869	// This may be used to include null fields in Patch requests.
13870	NullFields []string `json:"-"`
13871}
13872
13873func (s *Paragraph) MarshalJSON() ([]byte, error) {
13874	type NoMethod Paragraph
13875	raw := NoMethod(*s)
13876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13877}
13878
13879func (s *Paragraph) UnmarshalJSON(data []byte) error {
13880	type NoMethod Paragraph
13881	var s1 struct {
13882		Confidence gensupport.JSONFloat64 `json:"confidence"`
13883		*NoMethod
13884	}
13885	s1.NoMethod = (*NoMethod)(s)
13886	if err := json.Unmarshal(data, &s1); err != nil {
13887		return err
13888	}
13889	s.Confidence = float64(s1.Confidence)
13890	return nil
13891}
13892
13893// Position: A 3D position in the image, used primarily for Face
13894// detection landmarks.
13895// A valid Position must have both x and y coordinates.
13896// The position coordinates are in the same scale as the original image.
13897type Position struct {
13898	// X: X coordinate.
13899	X float64 `json:"x,omitempty"`
13900
13901	// Y: Y coordinate.
13902	Y float64 `json:"y,omitempty"`
13903
13904	// Z: Z coordinate (or depth).
13905	Z float64 `json:"z,omitempty"`
13906
13907	// ForceSendFields is a list of field names (e.g. "X") to
13908	// unconditionally include in API requests. By default, fields with
13909	// empty values are omitted from API requests. However, any non-pointer,
13910	// non-interface field appearing in ForceSendFields will be sent to the
13911	// server regardless of whether the field is empty or not. This may be
13912	// used to include empty fields in Patch requests.
13913	ForceSendFields []string `json:"-"`
13914
13915	// NullFields is a list of field names (e.g. "X") to include in API
13916	// requests with the JSON null value. By default, fields with empty
13917	// values are omitted from API requests. However, any field with an
13918	// empty value appearing in NullFields will be sent to the server as
13919	// null. It is an error if a field in this list has a non-empty value.
13920	// This may be used to include null fields in Patch requests.
13921	NullFields []string `json:"-"`
13922}
13923
13924func (s *Position) MarshalJSON() ([]byte, error) {
13925	type NoMethod Position
13926	raw := NoMethod(*s)
13927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13928}
13929
13930func (s *Position) UnmarshalJSON(data []byte) error {
13931	type NoMethod Position
13932	var s1 struct {
13933		X gensupport.JSONFloat64 `json:"x"`
13934		Y gensupport.JSONFloat64 `json:"y"`
13935		Z gensupport.JSONFloat64 `json:"z"`
13936		*NoMethod
13937	}
13938	s1.NoMethod = (*NoMethod)(s)
13939	if err := json.Unmarshal(data, &s1); err != nil {
13940		return err
13941	}
13942	s.X = float64(s1.X)
13943	s.Y = float64(s1.Y)
13944	s.Z = float64(s1.Z)
13945	return nil
13946}
13947
13948// Product: A Product contains ReferenceImages.
13949type Product struct {
13950	// Description: User-provided metadata to be stored with this product.
13951	// Must be at most 4096
13952	// characters long.
13953	Description string `json:"description,omitempty"`
13954
13955	// DisplayName: The user-provided name for this Product. Must not be
13956	// empty. Must be at most
13957	// 4096 characters long.
13958	DisplayName string `json:"displayName,omitempty"`
13959
13960	// Name: The resource name of the product.
13961	//
13962	// Format
13963	// is:
13964	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
13965	//
13966	// This field is ignored when creating a product.
13967	Name string `json:"name,omitempty"`
13968
13969	// ProductCategory: Immutable. The category for the product identified
13970	// by the reference image. This should
13971	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
13972	// categories
13973	// "homegoods", "apparel", and "toys" are still supported, but these
13974	// should
13975	// not be used for new products.
13976	ProductCategory string `json:"productCategory,omitempty"`
13977
13978	// ProductLabels: Key-value pairs that can be attached to a product. At
13979	// query time,
13980	// constraints can be specified based on the product_labels.
13981	//
13982	// Note that integer values can be provided as strings, e.g. "1199".
13983	// Only
13984	// strings with integer values can match a range-based restriction which
13985	// is
13986	// to be supported soon.
13987	//
13988	// Multiple values can be assigned to the same key. One product may have
13989	// up to
13990	// 500 product_labels.
13991	//
13992	// Notice that the total number of distinct product_labels over all
13993	// products
13994	// in one ProductSet cannot exceed 1M, otherwise the product search
13995	// pipeline
13996	// will refuse to work for that ProductSet.
13997	ProductLabels []*KeyValue `json:"productLabels,omitempty"`
13998
13999	// ServerResponse contains the HTTP response code and headers from the
14000	// server.
14001	googleapi.ServerResponse `json:"-"`
14002
14003	// ForceSendFields is a list of field names (e.g. "Description") to
14004	// unconditionally include in API requests. By default, fields with
14005	// empty values are omitted from API requests. However, any non-pointer,
14006	// non-interface field appearing in ForceSendFields will be sent to the
14007	// server regardless of whether the field is empty or not. This may be
14008	// used to include empty fields in Patch requests.
14009	ForceSendFields []string `json:"-"`
14010
14011	// NullFields is a list of field names (e.g. "Description") to include
14012	// in API requests with the JSON null value. By default, fields with
14013	// empty values are omitted from API requests. However, any field with
14014	// an empty value appearing in NullFields will be sent to the server as
14015	// null. It is an error if a field in this list has a non-empty value.
14016	// This may be used to include null fields in Patch requests.
14017	NullFields []string `json:"-"`
14018}
14019
14020func (s *Product) MarshalJSON() ([]byte, error) {
14021	type NoMethod Product
14022	raw := NoMethod(*s)
14023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14024}
14025
14026// ProductSearchParams: Parameters for a product search request.
14027type ProductSearchParams struct {
14028	// BoundingPoly: The bounding polygon around the area of interest in the
14029	// image.
14030	// If it is not specified, system discretion will be applied.
14031	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
14032
14033	// Filter: The filtering expression. This can be used to restrict search
14034	// results based
14035	// on Product labels. We currently support an AND of OR of
14036	// key-value
14037	// expressions, where each expression within an OR must have the same
14038	// key. An
14039	// '=' should be used to connect the key and value.
14040	//
14041	// For example, "(color = red OR color = blue) AND brand = Google"
14042	// is
14043	// acceptable, but "(color = red OR brand = Google)" is not
14044	// acceptable.
14045	// "color: red" is not acceptable because it uses a ':' instead of an
14046	// '='.
14047	Filter string `json:"filter,omitempty"`
14048
14049	// ProductCategories: The list of product categories to search in.
14050	// Currently, we only consider
14051	// the first category, and either "homegoods-v2", "apparel-v2",
14052	// "toys-v2",
14053	// "packagedgoods-v1", or "general-v1" should be specified. The
14054	// legacy
14055	// categories "homegoods", "apparel", and "toys" are still supported but
14056	// will
14057	// be deprecated. For new products, please use "homegoods-v2",
14058	// "apparel-v2",
14059	// or "toys-v2" for better product search accuracy. It is recommended
14060	// to
14061	// migrate existing products to these categories as well.
14062	ProductCategories []string `json:"productCategories,omitempty"`
14063
14064	// ProductSet: The resource name of a ProductSet to be searched for
14065	// similar images.
14066	//
14067	// Format
14068	// is:
14069	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
14070	ProductSet string `json:"productSet,omitempty"`
14071
14072	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
14073	// unconditionally include in API requests. By default, fields with
14074	// empty values are omitted from API requests. However, any non-pointer,
14075	// non-interface field appearing in ForceSendFields will be sent to the
14076	// server regardless of whether the field is empty or not. This may be
14077	// used to include empty fields in Patch requests.
14078	ForceSendFields []string `json:"-"`
14079
14080	// NullFields is a list of field names (e.g. "BoundingPoly") to include
14081	// in API requests with the JSON null value. By default, fields with
14082	// empty values are omitted from API requests. However, any field with
14083	// an empty value appearing in NullFields will be sent to the server as
14084	// null. It is an error if a field in this list has a non-empty value.
14085	// This may be used to include null fields in Patch requests.
14086	NullFields []string `json:"-"`
14087}
14088
14089func (s *ProductSearchParams) MarshalJSON() ([]byte, error) {
14090	type NoMethod ProductSearchParams
14091	raw := NoMethod(*s)
14092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14093}
14094
14095// ProductSearchResults: Results for a product search request.
14096type ProductSearchResults struct {
14097	// IndexTime: Timestamp of the index which provided these results.
14098	// Products added to the
14099	// product set and products removed from the product set after this time
14100	// are
14101	// not reflected in the current results.
14102	IndexTime string `json:"indexTime,omitempty"`
14103
14104	// ProductGroupedResults: List of results grouped by products detected
14105	// in the query image. Each entry
14106	// corresponds to one bounding polygon in the query image, and contains
14107	// the
14108	// matching products specific to that region. There may be duplicate
14109	// product
14110	// matches in the union of all the per-product results.
14111	ProductGroupedResults []*GroupedResult `json:"productGroupedResults,omitempty"`
14112
14113	// Results: List of results, one for each product match.
14114	Results []*Result `json:"results,omitempty"`
14115
14116	// ForceSendFields is a list of field names (e.g. "IndexTime") to
14117	// unconditionally include in API requests. By default, fields with
14118	// empty values are omitted from API requests. However, any non-pointer,
14119	// non-interface field appearing in ForceSendFields will be sent to the
14120	// server regardless of whether the field is empty or not. This may be
14121	// used to include empty fields in Patch requests.
14122	ForceSendFields []string `json:"-"`
14123
14124	// NullFields is a list of field names (e.g. "IndexTime") to include in
14125	// API requests with the JSON null value. By default, fields with empty
14126	// values are omitted from API requests. However, any field with an
14127	// empty value appearing in NullFields will be sent to the server as
14128	// null. It is an error if a field in this list has a non-empty value.
14129	// This may be used to include null fields in Patch requests.
14130	NullFields []string `json:"-"`
14131}
14132
14133func (s *ProductSearchResults) MarshalJSON() ([]byte, error) {
14134	type NoMethod ProductSearchResults
14135	raw := NoMethod(*s)
14136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14137}
14138
14139// ProductSet: A ProductSet contains Products. A ProductSet can contain
14140// a maximum of 1
14141// million reference images. If the limit is exceeded, periodic indexing
14142// will
14143// fail.
14144type ProductSet struct {
14145	// DisplayName: The user-provided name for this ProductSet. Must not be
14146	// empty. Must be at
14147	// most 4096 characters long.
14148	DisplayName string `json:"displayName,omitempty"`
14149
14150	// IndexError: Output only. If there was an error with indexing the
14151	// product set, the field
14152	// is populated.
14153	//
14154	// This field is ignored when creating a ProductSet.
14155	IndexError *Status `json:"indexError,omitempty"`
14156
14157	// IndexTime: Output only. The time at which this ProductSet was last
14158	// indexed. Query
14159	// results will reflect all updates before this time. If this ProductSet
14160	// has
14161	// never been indexed, this timestamp is the default
14162	// value
14163	// "1970-01-01T00:00:00Z".
14164	//
14165	// This field is ignored when creating a ProductSet.
14166	IndexTime string `json:"indexTime,omitempty"`
14167
14168	// Name: The resource name of the ProductSet.
14169	//
14170	// Format
14171	// is:
14172	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
14173	//
14174	//
14175	// This field is ignored when creating a ProductSet.
14176	Name string `json:"name,omitempty"`
14177
14178	// ServerResponse contains the HTTP response code and headers from the
14179	// server.
14180	googleapi.ServerResponse `json:"-"`
14181
14182	// ForceSendFields is a list of field names (e.g. "DisplayName") to
14183	// unconditionally include in API requests. By default, fields with
14184	// empty values are omitted from API requests. However, any non-pointer,
14185	// non-interface field appearing in ForceSendFields will be sent to the
14186	// server regardless of whether the field is empty or not. This may be
14187	// used to include empty fields in Patch requests.
14188	ForceSendFields []string `json:"-"`
14189
14190	// NullFields is a list of field names (e.g. "DisplayName") to include
14191	// in API requests with the JSON null value. By default, fields with
14192	// empty values are omitted from API requests. However, any field with
14193	// an empty value appearing in NullFields will be sent to the server as
14194	// null. It is an error if a field in this list has a non-empty value.
14195	// This may be used to include null fields in Patch requests.
14196	NullFields []string `json:"-"`
14197}
14198
14199func (s *ProductSet) MarshalJSON() ([]byte, error) {
14200	type NoMethod ProductSet
14201	raw := NoMethod(*s)
14202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14203}
14204
14205// ProductSetPurgeConfig: Config to control which ProductSet contains
14206// the Products to be deleted.
14207type ProductSetPurgeConfig struct {
14208	// ProductSetId: The ProductSet that contains the Products to delete. If
14209	// a Product is a
14210	// member of product_set_id in addition to other ProductSets, the
14211	// Product will
14212	// still be deleted.
14213	ProductSetId string `json:"productSetId,omitempty"`
14214
14215	// ForceSendFields is a list of field names (e.g. "ProductSetId") to
14216	// unconditionally include in API requests. By default, fields with
14217	// empty values are omitted from API requests. However, any non-pointer,
14218	// non-interface field appearing in ForceSendFields will be sent to the
14219	// server regardless of whether the field is empty or not. This may be
14220	// used to include empty fields in Patch requests.
14221	ForceSendFields []string `json:"-"`
14222
14223	// NullFields is a list of field names (e.g. "ProductSetId") to include
14224	// in API requests with the JSON null value. By default, fields with
14225	// empty values are omitted from API requests. However, any field with
14226	// an empty value appearing in NullFields will be sent to the server as
14227	// null. It is an error if a field in this list has a non-empty value.
14228	// This may be used to include null fields in Patch requests.
14229	NullFields []string `json:"-"`
14230}
14231
14232func (s *ProductSetPurgeConfig) MarshalJSON() ([]byte, error) {
14233	type NoMethod ProductSetPurgeConfig
14234	raw := NoMethod(*s)
14235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14236}
14237
14238// Property: A `Property` consists of a user-supplied name/value pair.
14239type Property struct {
14240	// Name: Name of the property.
14241	Name string `json:"name,omitempty"`
14242
14243	// Uint64Value: Value of numeric properties.
14244	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
14245
14246	// Value: Value of the property.
14247	Value string `json:"value,omitempty"`
14248
14249	// ForceSendFields is a list of field names (e.g. "Name") to
14250	// unconditionally include in API requests. By default, fields with
14251	// empty values are omitted from API requests. However, any non-pointer,
14252	// non-interface field appearing in ForceSendFields will be sent to the
14253	// server regardless of whether the field is empty or not. This may be
14254	// used to include empty fields in Patch requests.
14255	ForceSendFields []string `json:"-"`
14256
14257	// NullFields is a list of field names (e.g. "Name") to include in API
14258	// requests with the JSON null value. By default, fields with empty
14259	// values are omitted from API requests. However, any field with an
14260	// empty value appearing in NullFields will be sent to the server as
14261	// null. It is an error if a field in this list has a non-empty value.
14262	// This may be used to include null fields in Patch requests.
14263	NullFields []string `json:"-"`
14264}
14265
14266func (s *Property) MarshalJSON() ([]byte, error) {
14267	type NoMethod Property
14268	raw := NoMethod(*s)
14269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14270}
14271
14272// PurgeProductsRequest: Request message for the `PurgeProducts` method.
14273type PurgeProductsRequest struct {
14274	// DeleteOrphanProducts: If delete_orphan_products is true, all Products
14275	// that are not in any
14276	// ProductSet will be deleted.
14277	DeleteOrphanProducts bool `json:"deleteOrphanProducts,omitempty"`
14278
14279	// Force: The default value is false. Override this value to true to
14280	// actually perform
14281	// the purge.
14282	Force bool `json:"force,omitempty"`
14283
14284	// ProductSetPurgeConfig: Specify which ProductSet contains the Products
14285	// to be deleted.
14286	ProductSetPurgeConfig *ProductSetPurgeConfig `json:"productSetPurgeConfig,omitempty"`
14287
14288	// ForceSendFields is a list of field names (e.g.
14289	// "DeleteOrphanProducts") to unconditionally include in API requests.
14290	// By default, fields with empty values are omitted from API requests.
14291	// However, any non-pointer, non-interface field appearing in
14292	// ForceSendFields will be sent to the server regardless of whether the
14293	// field is empty or not. This may be used to include empty fields in
14294	// Patch requests.
14295	ForceSendFields []string `json:"-"`
14296
14297	// NullFields is a list of field names (e.g. "DeleteOrphanProducts") to
14298	// include in API requests with the JSON null value. By default, fields
14299	// with empty values are omitted from API requests. However, any field
14300	// with an empty value appearing in NullFields will be sent to the
14301	// server as null. It is an error if a field in this list has a
14302	// non-empty value. This may be used to include null fields in Patch
14303	// requests.
14304	NullFields []string `json:"-"`
14305}
14306
14307func (s *PurgeProductsRequest) MarshalJSON() ([]byte, error) {
14308	type NoMethod PurgeProductsRequest
14309	raw := NoMethod(*s)
14310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14311}
14312
14313// ReferenceImage: A `ReferenceImage` represents a product image and its
14314// associated metadata,
14315// such as bounding boxes.
14316type ReferenceImage struct {
14317	// BoundingPolys: Optional. Bounding polygons around the areas of
14318	// interest in the reference image.
14319	// If this field is empty, the system will try to detect regions
14320	// of
14321	// interest. At most 10 bounding polygons will be used.
14322	//
14323	// The provided shape is converted into a non-rotated rectangle.
14324	// Once
14325	// converted, the small edge of the rectangle must be greater than or
14326	// equal
14327	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
14328	// 1:5
14329	// is not).
14330	BoundingPolys []*BoundingPoly `json:"boundingPolys,omitempty"`
14331
14332	// Name: The resource name of the reference image.
14333	//
14334	// Format
14335	// is:
14336	//
14337	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
14338	// ceImages/IMAGE_ID`.
14339	//
14340	// This field is ignored when creating a reference image.
14341	Name string `json:"name,omitempty"`
14342
14343	// Uri: Required. The Google Cloud Storage URI of the reference
14344	// image.
14345	//
14346	// The URI must start with `gs://`.
14347	Uri string `json:"uri,omitempty"`
14348
14349	// ServerResponse contains the HTTP response code and headers from the
14350	// server.
14351	googleapi.ServerResponse `json:"-"`
14352
14353	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
14354	// unconditionally include in API requests. By default, fields with
14355	// empty values are omitted from API requests. However, any non-pointer,
14356	// non-interface field appearing in ForceSendFields will be sent to the
14357	// server regardless of whether the field is empty or not. This may be
14358	// used to include empty fields in Patch requests.
14359	ForceSendFields []string `json:"-"`
14360
14361	// NullFields is a list of field names (e.g. "BoundingPolys") to include
14362	// in API requests with the JSON null value. By default, fields with
14363	// empty values are omitted from API requests. However, any field with
14364	// an empty value appearing in NullFields will be sent to the server as
14365	// null. It is an error if a field in this list has a non-empty value.
14366	// This may be used to include null fields in Patch requests.
14367	NullFields []string `json:"-"`
14368}
14369
14370func (s *ReferenceImage) MarshalJSON() ([]byte, error) {
14371	type NoMethod ReferenceImage
14372	raw := NoMethod(*s)
14373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14374}
14375
14376// RemoveProductFromProductSetRequest: Request message for the
14377// `RemoveProductFromProductSet` method.
14378type RemoveProductFromProductSetRequest struct {
14379	// Product: Required. The resource name for the Product to be removed
14380	// from this ProductSet.
14381	//
14382	// Format is:
14383	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
14384	Product string `json:"product,omitempty"`
14385
14386	// ForceSendFields is a list of field names (e.g. "Product") to
14387	// unconditionally include in API requests. By default, fields with
14388	// empty values are omitted from API requests. However, any non-pointer,
14389	// non-interface field appearing in ForceSendFields will be sent to the
14390	// server regardless of whether the field is empty or not. This may be
14391	// used to include empty fields in Patch requests.
14392	ForceSendFields []string `json:"-"`
14393
14394	// NullFields is a list of field names (e.g. "Product") to include in
14395	// API requests with the JSON null value. By default, fields with empty
14396	// values are omitted from API requests. However, any field with an
14397	// empty value appearing in NullFields will be sent to the server as
14398	// null. It is an error if a field in this list has a non-empty value.
14399	// This may be used to include null fields in Patch requests.
14400	NullFields []string `json:"-"`
14401}
14402
14403func (s *RemoveProductFromProductSetRequest) MarshalJSON() ([]byte, error) {
14404	type NoMethod RemoveProductFromProductSetRequest
14405	raw := NoMethod(*s)
14406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14407}
14408
14409// Result: Information about a product.
14410type Result struct {
14411	// Image: The resource name of the image from the product that is the
14412	// closest match
14413	// to the query.
14414	Image string `json:"image,omitempty"`
14415
14416	// Product: The Product.
14417	Product *Product `json:"product,omitempty"`
14418
14419	// Score: A confidence level on the match, ranging from 0 (no
14420	// confidence) to
14421	// 1 (full confidence).
14422	Score float64 `json:"score,omitempty"`
14423
14424	// ForceSendFields is a list of field names (e.g. "Image") to
14425	// unconditionally include in API requests. By default, fields with
14426	// empty values are omitted from API requests. However, any non-pointer,
14427	// non-interface field appearing in ForceSendFields will be sent to the
14428	// server regardless of whether the field is empty or not. This may be
14429	// used to include empty fields in Patch requests.
14430	ForceSendFields []string `json:"-"`
14431
14432	// NullFields is a list of field names (e.g. "Image") to include in API
14433	// requests with the JSON null value. By default, fields with empty
14434	// values are omitted from API requests. However, any field with an
14435	// empty value appearing in NullFields will be sent to the server as
14436	// null. It is an error if a field in this list has a non-empty value.
14437	// This may be used to include null fields in Patch requests.
14438	NullFields []string `json:"-"`
14439}
14440
14441func (s *Result) MarshalJSON() ([]byte, error) {
14442	type NoMethod Result
14443	raw := NoMethod(*s)
14444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14445}
14446
14447func (s *Result) UnmarshalJSON(data []byte) error {
14448	type NoMethod Result
14449	var s1 struct {
14450		Score gensupport.JSONFloat64 `json:"score"`
14451		*NoMethod
14452	}
14453	s1.NoMethod = (*NoMethod)(s)
14454	if err := json.Unmarshal(data, &s1); err != nil {
14455		return err
14456	}
14457	s.Score = float64(s1.Score)
14458	return nil
14459}
14460
14461// SafeSearchAnnotation: Set of features pertaining to the image,
14462// computed by computer vision
14463// methods over safe-search verticals (for example, adult, spoof,
14464// medical,
14465// violence).
14466type SafeSearchAnnotation struct {
14467	// Adult: Represents the adult content likelihood for the image. Adult
14468	// content may
14469	// contain elements such as nudity, pornographic images or cartoons,
14470	// or
14471	// sexual activities.
14472	//
14473	// Possible values:
14474	//   "UNKNOWN" - Unknown likelihood.
14475	//   "VERY_UNLIKELY" - It is very unlikely.
14476	//   "UNLIKELY" - It is unlikely.
14477	//   "POSSIBLE" - It is possible.
14478	//   "LIKELY" - It is likely.
14479	//   "VERY_LIKELY" - It is very likely.
14480	Adult string `json:"adult,omitempty"`
14481
14482	// Medical: Likelihood that this is a medical image.
14483	//
14484	// Possible values:
14485	//   "UNKNOWN" - Unknown likelihood.
14486	//   "VERY_UNLIKELY" - It is very unlikely.
14487	//   "UNLIKELY" - It is unlikely.
14488	//   "POSSIBLE" - It is possible.
14489	//   "LIKELY" - It is likely.
14490	//   "VERY_LIKELY" - It is very likely.
14491	Medical string `json:"medical,omitempty"`
14492
14493	// Racy: Likelihood that the request image contains racy content. Racy
14494	// content may
14495	// include (but is not limited to) skimpy or sheer clothing,
14496	// strategically
14497	// covered nudity, lewd or provocative poses, or close-ups of
14498	// sensitive
14499	// body areas.
14500	//
14501	// Possible values:
14502	//   "UNKNOWN" - Unknown likelihood.
14503	//   "VERY_UNLIKELY" - It is very unlikely.
14504	//   "UNLIKELY" - It is unlikely.
14505	//   "POSSIBLE" - It is possible.
14506	//   "LIKELY" - It is likely.
14507	//   "VERY_LIKELY" - It is very likely.
14508	Racy string `json:"racy,omitempty"`
14509
14510	// Spoof: Spoof likelihood. The likelihood that an modification
14511	// was made to the image's canonical version to make it appear
14512	// funny or offensive.
14513	//
14514	// Possible values:
14515	//   "UNKNOWN" - Unknown likelihood.
14516	//   "VERY_UNLIKELY" - It is very unlikely.
14517	//   "UNLIKELY" - It is unlikely.
14518	//   "POSSIBLE" - It is possible.
14519	//   "LIKELY" - It is likely.
14520	//   "VERY_LIKELY" - It is very likely.
14521	Spoof string `json:"spoof,omitempty"`
14522
14523	// Violence: Likelihood that this image contains violent content.
14524	//
14525	// Possible values:
14526	//   "UNKNOWN" - Unknown likelihood.
14527	//   "VERY_UNLIKELY" - It is very unlikely.
14528	//   "UNLIKELY" - It is unlikely.
14529	//   "POSSIBLE" - It is possible.
14530	//   "LIKELY" - It is likely.
14531	//   "VERY_LIKELY" - It is very likely.
14532	Violence string `json:"violence,omitempty"`
14533
14534	// ForceSendFields is a list of field names (e.g. "Adult") to
14535	// unconditionally include in API requests. By default, fields with
14536	// empty values are omitted from API requests. However, any non-pointer,
14537	// non-interface field appearing in ForceSendFields will be sent to the
14538	// server regardless of whether the field is empty or not. This may be
14539	// used to include empty fields in Patch requests.
14540	ForceSendFields []string `json:"-"`
14541
14542	// NullFields is a list of field names (e.g. "Adult") to include in API
14543	// requests with the JSON null value. By default, fields with empty
14544	// values are omitted from API requests. However, any field with an
14545	// empty value appearing in NullFields will be sent to the server as
14546	// null. It is an error if a field in this list has a non-empty value.
14547	// This may be used to include null fields in Patch requests.
14548	NullFields []string `json:"-"`
14549}
14550
14551func (s *SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
14552	type NoMethod SafeSearchAnnotation
14553	raw := NoMethod(*s)
14554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14555}
14556
14557// Status: The `Status` type defines a logical error model that is
14558// suitable for
14559// different programming environments, including REST APIs and RPC APIs.
14560// It is
14561// used by [gRPC](https://github.com/grpc). Each `Status` message
14562// contains
14563// three pieces of data: error code, error message, and error
14564// details.
14565//
14566// You can find out more about this error model and how to work with it
14567// in the
14568// [API Design Guide](https://cloud.google.com/apis/design/errors).
14569type Status struct {
14570	// Code: The status code, which should be an enum value of
14571	// google.rpc.Code.
14572	Code int64 `json:"code,omitempty"`
14573
14574	// Details: A list of messages that carry the error details.  There is a
14575	// common set of
14576	// message types for APIs to use.
14577	Details []googleapi.RawMessage `json:"details,omitempty"`
14578
14579	// Message: A developer-facing error message, which should be in
14580	// English. Any
14581	// user-facing error message should be localized and sent in
14582	// the
14583	// google.rpc.Status.details field, or localized by the client.
14584	Message string `json:"message,omitempty"`
14585
14586	// ForceSendFields is a list of field names (e.g. "Code") to
14587	// unconditionally include in API requests. By default, fields with
14588	// empty values are omitted from API requests. However, any non-pointer,
14589	// non-interface field appearing in ForceSendFields will be sent to the
14590	// server regardless of whether the field is empty or not. This may be
14591	// used to include empty fields in Patch requests.
14592	ForceSendFields []string `json:"-"`
14593
14594	// NullFields is a list of field names (e.g. "Code") to include in API
14595	// requests with the JSON null value. By default, fields with empty
14596	// values are omitted from API requests. However, any field with an
14597	// empty value appearing in NullFields will be sent to the server as
14598	// null. It is an error if a field in this list has a non-empty value.
14599	// This may be used to include null fields in Patch requests.
14600	NullFields []string `json:"-"`
14601}
14602
14603func (s *Status) MarshalJSON() ([]byte, error) {
14604	type NoMethod Status
14605	raw := NoMethod(*s)
14606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14607}
14608
14609// Symbol: A single symbol representation.
14610type Symbol struct {
14611	// BoundingBox: The bounding box for the symbol.
14612	// The vertices are in the order of top-left, top-right,
14613	// bottom-right,
14614	// bottom-left. When a rotation of the bounding box is detected the
14615	// rotation
14616	// is represented as around the top-left corner as defined when the text
14617	// is
14618	// read in the 'natural' orientation.
14619	// For example:
14620	//   * when the text is horizontal it might look like:
14621	//      0----1
14622	//      |    |
14623	//      3----2
14624	//   * when it's rotated 180 degrees around the top-left corner it
14625	// becomes:
14626	//      2----3
14627	//      |    |
14628	//      1----0
14629	//   and the vertex order will still be (0, 1, 2, 3).
14630	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
14631
14632	// Confidence: Confidence of the OCR results for the symbol. Range [0,
14633	// 1].
14634	Confidence float64 `json:"confidence,omitempty"`
14635
14636	// Property: Additional information detected for the symbol.
14637	Property *TextProperty `json:"property,omitempty"`
14638
14639	// Text: The actual UTF-8 representation of the symbol.
14640	Text string `json:"text,omitempty"`
14641
14642	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
14643	// unconditionally include in API requests. By default, fields with
14644	// empty values are omitted from API requests. However, any non-pointer,
14645	// non-interface field appearing in ForceSendFields will be sent to the
14646	// server regardless of whether the field is empty or not. This may be
14647	// used to include empty fields in Patch requests.
14648	ForceSendFields []string `json:"-"`
14649
14650	// NullFields is a list of field names (e.g. "BoundingBox") to include
14651	// in API requests with the JSON null value. By default, fields with
14652	// empty values are omitted from API requests. However, any field with
14653	// an empty value appearing in NullFields will be sent to the server as
14654	// null. It is an error if a field in this list has a non-empty value.
14655	// This may be used to include null fields in Patch requests.
14656	NullFields []string `json:"-"`
14657}
14658
14659func (s *Symbol) MarshalJSON() ([]byte, error) {
14660	type NoMethod Symbol
14661	raw := NoMethod(*s)
14662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14663}
14664
14665func (s *Symbol) UnmarshalJSON(data []byte) error {
14666	type NoMethod Symbol
14667	var s1 struct {
14668		Confidence gensupport.JSONFloat64 `json:"confidence"`
14669		*NoMethod
14670	}
14671	s1.NoMethod = (*NoMethod)(s)
14672	if err := json.Unmarshal(data, &s1); err != nil {
14673		return err
14674	}
14675	s.Confidence = float64(s1.Confidence)
14676	return nil
14677}
14678
14679// TextAnnotation: TextAnnotation contains a structured representation
14680// of OCR extracted text.
14681// The hierarchy of an OCR extracted text structure is like this:
14682//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
14683// Symbol
14684// Each structural component, starting from Page, may further have their
14685// own
14686// properties. Properties describe detected languages, breaks etc..
14687// Please refer
14688// to the TextAnnotation.TextProperty message definition below for
14689// more
14690// detail.
14691type TextAnnotation struct {
14692	// Pages: List of pages detected by OCR.
14693	Pages []*Page `json:"pages,omitempty"`
14694
14695	// Text: UTF-8 text detected on the pages.
14696	Text string `json:"text,omitempty"`
14697
14698	// ForceSendFields is a list of field names (e.g. "Pages") to
14699	// unconditionally include in API requests. By default, fields with
14700	// empty values are omitted from API requests. However, any non-pointer,
14701	// non-interface field appearing in ForceSendFields will be sent to the
14702	// server regardless of whether the field is empty or not. This may be
14703	// used to include empty fields in Patch requests.
14704	ForceSendFields []string `json:"-"`
14705
14706	// NullFields is a list of field names (e.g. "Pages") to include in API
14707	// requests with the JSON null value. By default, fields with empty
14708	// values are omitted from API requests. However, any field with an
14709	// empty value appearing in NullFields will be sent to the server as
14710	// null. It is an error if a field in this list has a non-empty value.
14711	// This may be used to include null fields in Patch requests.
14712	NullFields []string `json:"-"`
14713}
14714
14715func (s *TextAnnotation) MarshalJSON() ([]byte, error) {
14716	type NoMethod TextAnnotation
14717	raw := NoMethod(*s)
14718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14719}
14720
14721// TextProperty: Additional information detected on the structural
14722// component.
14723type TextProperty struct {
14724	// DetectedBreak: Detected start or end of a text segment.
14725	DetectedBreak *DetectedBreak `json:"detectedBreak,omitempty"`
14726
14727	// DetectedLanguages: A list of detected languages together with
14728	// confidence.
14729	DetectedLanguages []*DetectedLanguage `json:"detectedLanguages,omitempty"`
14730
14731	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
14732	// unconditionally include in API requests. By default, fields with
14733	// empty values are omitted from API requests. However, any non-pointer,
14734	// non-interface field appearing in ForceSendFields will be sent to the
14735	// server regardless of whether the field is empty or not. This may be
14736	// used to include empty fields in Patch requests.
14737	ForceSendFields []string `json:"-"`
14738
14739	// NullFields is a list of field names (e.g. "DetectedBreak") to include
14740	// in API requests with the JSON null value. By default, fields with
14741	// empty values are omitted from API requests. However, any field with
14742	// an empty value appearing in NullFields will be sent to the server as
14743	// null. It is an error if a field in this list has a non-empty value.
14744	// This may be used to include null fields in Patch requests.
14745	NullFields []string `json:"-"`
14746}
14747
14748func (s *TextProperty) MarshalJSON() ([]byte, error) {
14749	type NoMethod TextProperty
14750	raw := NoMethod(*s)
14751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14752}
14753
14754// Vertex: A vertex represents a 2D point in the image.
14755// NOTE: the vertex coordinates are in the same scale as the original
14756// image.
14757type Vertex struct {
14758	// X: X coordinate.
14759	X int64 `json:"x,omitempty"`
14760
14761	// Y: Y coordinate.
14762	Y int64 `json:"y,omitempty"`
14763
14764	// ForceSendFields is a list of field names (e.g. "X") to
14765	// unconditionally include in API requests. By default, fields with
14766	// empty values are omitted from API requests. However, any non-pointer,
14767	// non-interface field appearing in ForceSendFields will be sent to the
14768	// server regardless of whether the field is empty or not. This may be
14769	// used to include empty fields in Patch requests.
14770	ForceSendFields []string `json:"-"`
14771
14772	// NullFields is a list of field names (e.g. "X") to include in API
14773	// requests with the JSON null value. By default, fields with empty
14774	// values are omitted from API requests. However, any field with an
14775	// empty value appearing in NullFields will be sent to the server as
14776	// null. It is an error if a field in this list has a non-empty value.
14777	// This may be used to include null fields in Patch requests.
14778	NullFields []string `json:"-"`
14779}
14780
14781func (s *Vertex) MarshalJSON() ([]byte, error) {
14782	type NoMethod Vertex
14783	raw := NoMethod(*s)
14784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14785}
14786
14787// WebDetection: Relevant information for the image from the Internet.
14788type WebDetection struct {
14789	// BestGuessLabels: The service's best guess as to the topic of the
14790	// request image.
14791	// Inferred from similar images on the open web.
14792	BestGuessLabels []*WebLabel `json:"bestGuessLabels,omitempty"`
14793
14794	// FullMatchingImages: Fully matching images from the Internet.
14795	// Can include resized copies of the query image.
14796	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
14797
14798	// PagesWithMatchingImages: Web pages containing the matching images
14799	// from the Internet.
14800	PagesWithMatchingImages []*WebPage `json:"pagesWithMatchingImages,omitempty"`
14801
14802	// PartialMatchingImages: Partial matching images from the
14803	// Internet.
14804	// Those images are similar enough to share some key-point features.
14805	// For
14806	// example an original image will likely have partial matching for its
14807	// crops.
14808	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
14809
14810	// VisuallySimilarImages: The visually similar image results.
14811	VisuallySimilarImages []*WebImage `json:"visuallySimilarImages,omitempty"`
14812
14813	// WebEntities: Deduced entities from similar images on the Internet.
14814	WebEntities []*WebEntity `json:"webEntities,omitempty"`
14815
14816	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
14817	// unconditionally include in API requests. By default, fields with
14818	// empty values are omitted from API requests. However, any non-pointer,
14819	// non-interface field appearing in ForceSendFields will be sent to the
14820	// server regardless of whether the field is empty or not. This may be
14821	// used to include empty fields in Patch requests.
14822	ForceSendFields []string `json:"-"`
14823
14824	// NullFields is a list of field names (e.g. "BestGuessLabels") to
14825	// include in API requests with the JSON null value. By default, fields
14826	// with empty values are omitted from API requests. However, any field
14827	// with an empty value appearing in NullFields will be sent to the
14828	// server as null. It is an error if a field in this list has a
14829	// non-empty value. This may be used to include null fields in Patch
14830	// requests.
14831	NullFields []string `json:"-"`
14832}
14833
14834func (s *WebDetection) MarshalJSON() ([]byte, error) {
14835	type NoMethod WebDetection
14836	raw := NoMethod(*s)
14837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14838}
14839
14840// WebDetectionParams: Parameters for web detection request.
14841type WebDetectionParams struct {
14842	// IncludeGeoResults: Whether to include results derived from the geo
14843	// information in the image.
14844	IncludeGeoResults bool `json:"includeGeoResults,omitempty"`
14845
14846	// ForceSendFields is a list of field names (e.g. "IncludeGeoResults")
14847	// to unconditionally include in API requests. By default, fields with
14848	// empty values are omitted from API requests. However, any non-pointer,
14849	// non-interface field appearing in ForceSendFields will be sent to the
14850	// server regardless of whether the field is empty or not. This may be
14851	// used to include empty fields in Patch requests.
14852	ForceSendFields []string `json:"-"`
14853
14854	// NullFields is a list of field names (e.g. "IncludeGeoResults") to
14855	// include in API requests with the JSON null value. By default, fields
14856	// with empty values are omitted from API requests. However, any field
14857	// with an empty value appearing in NullFields will be sent to the
14858	// server as null. It is an error if a field in this list has a
14859	// non-empty value. This may be used to include null fields in Patch
14860	// requests.
14861	NullFields []string `json:"-"`
14862}
14863
14864func (s *WebDetectionParams) MarshalJSON() ([]byte, error) {
14865	type NoMethod WebDetectionParams
14866	raw := NoMethod(*s)
14867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14868}
14869
14870// WebEntity: Entity deduced from similar images on the Internet.
14871type WebEntity struct {
14872	// Description: Canonical description of the entity, in English.
14873	Description string `json:"description,omitempty"`
14874
14875	// EntityId: Opaque entity ID.
14876	EntityId string `json:"entityId,omitempty"`
14877
14878	// Score: Overall relevancy score for the entity.
14879	// Not normalized and not comparable across different image queries.
14880	Score float64 `json:"score,omitempty"`
14881
14882	// ForceSendFields is a list of field names (e.g. "Description") to
14883	// unconditionally include in API requests. By default, fields with
14884	// empty values are omitted from API requests. However, any non-pointer,
14885	// non-interface field appearing in ForceSendFields will be sent to the
14886	// server regardless of whether the field is empty or not. This may be
14887	// used to include empty fields in Patch requests.
14888	ForceSendFields []string `json:"-"`
14889
14890	// NullFields is a list of field names (e.g. "Description") to include
14891	// in API requests with the JSON null value. By default, fields with
14892	// empty values are omitted from API requests. However, any field with
14893	// an empty value appearing in NullFields will be sent to the server as
14894	// null. It is an error if a field in this list has a non-empty value.
14895	// This may be used to include null fields in Patch requests.
14896	NullFields []string `json:"-"`
14897}
14898
14899func (s *WebEntity) MarshalJSON() ([]byte, error) {
14900	type NoMethod WebEntity
14901	raw := NoMethod(*s)
14902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14903}
14904
14905func (s *WebEntity) UnmarshalJSON(data []byte) error {
14906	type NoMethod WebEntity
14907	var s1 struct {
14908		Score gensupport.JSONFloat64 `json:"score"`
14909		*NoMethod
14910	}
14911	s1.NoMethod = (*NoMethod)(s)
14912	if err := json.Unmarshal(data, &s1); err != nil {
14913		return err
14914	}
14915	s.Score = float64(s1.Score)
14916	return nil
14917}
14918
14919// WebImage: Metadata for online images.
14920type WebImage struct {
14921	// Score: (Deprecated) Overall relevancy score for the image.
14922	Score float64 `json:"score,omitempty"`
14923
14924	// Url: The result image URL.
14925	Url string `json:"url,omitempty"`
14926
14927	// ForceSendFields is a list of field names (e.g. "Score") to
14928	// unconditionally include in API requests. By default, fields with
14929	// empty values are omitted from API requests. However, any non-pointer,
14930	// non-interface field appearing in ForceSendFields will be sent to the
14931	// server regardless of whether the field is empty or not. This may be
14932	// used to include empty fields in Patch requests.
14933	ForceSendFields []string `json:"-"`
14934
14935	// NullFields is a list of field names (e.g. "Score") to include in API
14936	// requests with the JSON null value. By default, fields with empty
14937	// values are omitted from API requests. However, any field with an
14938	// empty value appearing in NullFields will be sent to the server as
14939	// null. It is an error if a field in this list has a non-empty value.
14940	// This may be used to include null fields in Patch requests.
14941	NullFields []string `json:"-"`
14942}
14943
14944func (s *WebImage) MarshalJSON() ([]byte, error) {
14945	type NoMethod WebImage
14946	raw := NoMethod(*s)
14947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14948}
14949
14950func (s *WebImage) UnmarshalJSON(data []byte) error {
14951	type NoMethod WebImage
14952	var s1 struct {
14953		Score gensupport.JSONFloat64 `json:"score"`
14954		*NoMethod
14955	}
14956	s1.NoMethod = (*NoMethod)(s)
14957	if err := json.Unmarshal(data, &s1); err != nil {
14958		return err
14959	}
14960	s.Score = float64(s1.Score)
14961	return nil
14962}
14963
14964// WebLabel: Label to provide extra metadata for the web detection.
14965type WebLabel struct {
14966	// Label: Label for extra metadata.
14967	Label string `json:"label,omitempty"`
14968
14969	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
14970	// or "sr-Latn".
14971	// For more information,
14972	// see
14973	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
14974	LanguageCode string `json:"languageCode,omitempty"`
14975
14976	// ForceSendFields is a list of field names (e.g. "Label") to
14977	// unconditionally include in API requests. By default, fields with
14978	// empty values are omitted from API requests. However, any non-pointer,
14979	// non-interface field appearing in ForceSendFields will be sent to the
14980	// server regardless of whether the field is empty or not. This may be
14981	// used to include empty fields in Patch requests.
14982	ForceSendFields []string `json:"-"`
14983
14984	// NullFields is a list of field names (e.g. "Label") to include in API
14985	// requests with the JSON null value. By default, fields with empty
14986	// values are omitted from API requests. However, any field with an
14987	// empty value appearing in NullFields will be sent to the server as
14988	// null. It is an error if a field in this list has a non-empty value.
14989	// This may be used to include null fields in Patch requests.
14990	NullFields []string `json:"-"`
14991}
14992
14993func (s *WebLabel) MarshalJSON() ([]byte, error) {
14994	type NoMethod WebLabel
14995	raw := NoMethod(*s)
14996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14997}
14998
14999// WebPage: Metadata for web pages.
15000type WebPage struct {
15001	// FullMatchingImages: Fully matching images on the page.
15002	// Can include resized copies of the query image.
15003	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
15004
15005	// PageTitle: Title for the web page, may contain HTML markups.
15006	PageTitle string `json:"pageTitle,omitempty"`
15007
15008	// PartialMatchingImages: Partial matching images on the page.
15009	// Those images are similar enough to share some key-point features.
15010	// For
15011	// example an original image will likely have partial matching for
15012	// its
15013	// crops.
15014	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
15015
15016	// Score: (Deprecated) Overall relevancy score for the web page.
15017	Score float64 `json:"score,omitempty"`
15018
15019	// Url: The result web page URL.
15020	Url string `json:"url,omitempty"`
15021
15022	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
15023	// to unconditionally include in API requests. By default, fields with
15024	// empty values are omitted from API requests. However, any non-pointer,
15025	// non-interface field appearing in ForceSendFields will be sent to the
15026	// server regardless of whether the field is empty or not. This may be
15027	// used to include empty fields in Patch requests.
15028	ForceSendFields []string `json:"-"`
15029
15030	// NullFields is a list of field names (e.g. "FullMatchingImages") to
15031	// include in API requests with the JSON null value. By default, fields
15032	// with empty values are omitted from API requests. However, any field
15033	// with an empty value appearing in NullFields will be sent to the
15034	// server as null. It is an error if a field in this list has a
15035	// non-empty value. This may be used to include null fields in Patch
15036	// requests.
15037	NullFields []string `json:"-"`
15038}
15039
15040func (s *WebPage) MarshalJSON() ([]byte, error) {
15041	type NoMethod WebPage
15042	raw := NoMethod(*s)
15043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15044}
15045
15046func (s *WebPage) UnmarshalJSON(data []byte) error {
15047	type NoMethod WebPage
15048	var s1 struct {
15049		Score gensupport.JSONFloat64 `json:"score"`
15050		*NoMethod
15051	}
15052	s1.NoMethod = (*NoMethod)(s)
15053	if err := json.Unmarshal(data, &s1); err != nil {
15054		return err
15055	}
15056	s.Score = float64(s1.Score)
15057	return nil
15058}
15059
15060// Word: A word representation.
15061type Word struct {
15062	// BoundingBox: The bounding box for the word.
15063	// The vertices are in the order of top-left, top-right,
15064	// bottom-right,
15065	// bottom-left. When a rotation of the bounding box is detected the
15066	// rotation
15067	// is represented as around the top-left corner as defined when the text
15068	// is
15069	// read in the 'natural' orientation.
15070	// For example:
15071	//   * when the text is horizontal it might look like:
15072	//      0----1
15073	//      |    |
15074	//      3----2
15075	//   * when it's rotated 180 degrees around the top-left corner it
15076	// becomes:
15077	//      2----3
15078	//      |    |
15079	//      1----0
15080	//   and the vertex order will still be (0, 1, 2, 3).
15081	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
15082
15083	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
15084	Confidence float64 `json:"confidence,omitempty"`
15085
15086	// Property: Additional information detected for the word.
15087	Property *TextProperty `json:"property,omitempty"`
15088
15089	// Symbols: List of symbols in the word.
15090	// The order of the symbols follows the natural reading order.
15091	Symbols []*Symbol `json:"symbols,omitempty"`
15092
15093	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
15094	// unconditionally include in API requests. By default, fields with
15095	// empty values are omitted from API requests. However, any non-pointer,
15096	// non-interface field appearing in ForceSendFields will be sent to the
15097	// server regardless of whether the field is empty or not. This may be
15098	// used to include empty fields in Patch requests.
15099	ForceSendFields []string `json:"-"`
15100
15101	// NullFields is a list of field names (e.g. "BoundingBox") to include
15102	// in API requests with the JSON null value. By default, fields with
15103	// empty values are omitted from API requests. However, any field with
15104	// an empty value appearing in NullFields will be sent to the server as
15105	// null. It is an error if a field in this list has a non-empty value.
15106	// This may be used to include null fields in Patch requests.
15107	NullFields []string `json:"-"`
15108}
15109
15110func (s *Word) MarshalJSON() ([]byte, error) {
15111	type NoMethod Word
15112	raw := NoMethod(*s)
15113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15114}
15115
15116func (s *Word) UnmarshalJSON(data []byte) error {
15117	type NoMethod Word
15118	var s1 struct {
15119		Confidence gensupport.JSONFloat64 `json:"confidence"`
15120		*NoMethod
15121	}
15122	s1.NoMethod = (*NoMethod)(s)
15123	if err := json.Unmarshal(data, &s1); err != nil {
15124		return err
15125	}
15126	s.Confidence = float64(s1.Confidence)
15127	return nil
15128}
15129
15130// method id "vision.files.annotate":
15131
15132type FilesAnnotateCall struct {
15133	s                         *Service
15134	batchannotatefilesrequest *BatchAnnotateFilesRequest
15135	urlParams_                gensupport.URLParams
15136	ctx_                      context.Context
15137	header_                   http.Header
15138}
15139
15140// Annotate: Service that performs image detection and annotation for a
15141// batch of files.
15142// Now only "application/pdf", "image/tiff" and "image/gif" are
15143// supported.
15144//
15145// This service will extract at most 5 (customers can specify which 5
15146// in
15147// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
15148// each
15149// file provided and perform detection and annotation for each
15150// image
15151// extracted.
15152func (r *FilesService) Annotate(batchannotatefilesrequest *BatchAnnotateFilesRequest) *FilesAnnotateCall {
15153	c := &FilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15154	c.batchannotatefilesrequest = batchannotatefilesrequest
15155	return c
15156}
15157
15158// Fields allows partial responses to be retrieved. See
15159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15160// for more information.
15161func (c *FilesAnnotateCall) Fields(s ...googleapi.Field) *FilesAnnotateCall {
15162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15163	return c
15164}
15165
15166// Context sets the context to be used in this call's Do method. Any
15167// pending HTTP request will be aborted if the provided context is
15168// canceled.
15169func (c *FilesAnnotateCall) Context(ctx context.Context) *FilesAnnotateCall {
15170	c.ctx_ = ctx
15171	return c
15172}
15173
15174// Header returns an http.Header that can be modified by the caller to
15175// add HTTP headers to the request.
15176func (c *FilesAnnotateCall) Header() http.Header {
15177	if c.header_ == nil {
15178		c.header_ = make(http.Header)
15179	}
15180	return c.header_
15181}
15182
15183func (c *FilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15184	reqHeaders := make(http.Header)
15185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15186	for k, v := range c.header_ {
15187		reqHeaders[k] = v
15188	}
15189	reqHeaders.Set("User-Agent", c.s.userAgent())
15190	var body io.Reader = nil
15191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
15192	if err != nil {
15193		return nil, err
15194	}
15195	reqHeaders.Set("Content-Type", "application/json")
15196	c.urlParams_.Set("alt", alt)
15197	c.urlParams_.Set("prettyPrint", "false")
15198	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:annotate")
15199	urls += "?" + c.urlParams_.Encode()
15200	req, err := http.NewRequest("POST", urls, body)
15201	if err != nil {
15202		return nil, err
15203	}
15204	req.Header = reqHeaders
15205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15206}
15207
15208// Do executes the "vision.files.annotate" call.
15209// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
15210// Any non-2xx status code is an error. Response headers are in either
15211// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
15212// was returned at all) in error.(*googleapi.Error).Header. Use
15213// googleapi.IsNotModified to check whether the returned error was
15214// because http.StatusNotModified was returned.
15215func (c *FilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
15216	gensupport.SetOptions(c.urlParams_, opts...)
15217	res, err := c.doRequest("json")
15218	if res != nil && res.StatusCode == http.StatusNotModified {
15219		if res.Body != nil {
15220			res.Body.Close()
15221		}
15222		return nil, &googleapi.Error{
15223			Code:   res.StatusCode,
15224			Header: res.Header,
15225		}
15226	}
15227	if err != nil {
15228		return nil, err
15229	}
15230	defer googleapi.CloseBody(res)
15231	if err := googleapi.CheckResponse(res); err != nil {
15232		return nil, err
15233	}
15234	ret := &BatchAnnotateFilesResponse{
15235		ServerResponse: googleapi.ServerResponse{
15236			Header:         res.Header,
15237			HTTPStatusCode: res.StatusCode,
15238		},
15239	}
15240	target := &ret
15241	if err := gensupport.DecodeResponse(target, res); err != nil {
15242		return nil, err
15243	}
15244	return ret, nil
15245	// {
15246	//   "description": "Service that performs image detection and annotation for a batch of files.\nNow only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported.\n\nThis service will extract at most 5 (customers can specify which 5 in\nAnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each\nfile provided and perform detection and annotation for each image\nextracted.",
15247	//   "flatPath": "v1/files:annotate",
15248	//   "httpMethod": "POST",
15249	//   "id": "vision.files.annotate",
15250	//   "parameterOrder": [],
15251	//   "parameters": {},
15252	//   "path": "v1/files:annotate",
15253	//   "request": {
15254	//     "$ref": "BatchAnnotateFilesRequest"
15255	//   },
15256	//   "response": {
15257	//     "$ref": "BatchAnnotateFilesResponse"
15258	//   },
15259	//   "scopes": [
15260	//     "https://www.googleapis.com/auth/cloud-platform",
15261	//     "https://www.googleapis.com/auth/cloud-vision"
15262	//   ]
15263	// }
15264
15265}
15266
15267// method id "vision.files.asyncBatchAnnotate":
15268
15269type FilesAsyncBatchAnnotateCall struct {
15270	s                              *Service
15271	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
15272	urlParams_                     gensupport.URLParams
15273	ctx_                           context.Context
15274	header_                        http.Header
15275}
15276
15277// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15278// for a list of generic
15279// files, such as PDF files, which may contain multiple pages and
15280// multiple
15281// images per page. Progress and results can be retrieved through
15282// the
15283// `google.longrunning.Operations` interface.
15284// `Operation.metadata` contains `OperationMetadata`
15285// (metadata).
15286// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
15287// (results).
15288func (r *FilesService) AsyncBatchAnnotate(asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *FilesAsyncBatchAnnotateCall {
15289	c := &FilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15290	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
15291	return c
15292}
15293
15294// Fields allows partial responses to be retrieved. See
15295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15296// for more information.
15297func (c *FilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *FilesAsyncBatchAnnotateCall {
15298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15299	return c
15300}
15301
15302// Context sets the context to be used in this call's Do method. Any
15303// pending HTTP request will be aborted if the provided context is
15304// canceled.
15305func (c *FilesAsyncBatchAnnotateCall) Context(ctx context.Context) *FilesAsyncBatchAnnotateCall {
15306	c.ctx_ = ctx
15307	return c
15308}
15309
15310// Header returns an http.Header that can be modified by the caller to
15311// add HTTP headers to the request.
15312func (c *FilesAsyncBatchAnnotateCall) Header() http.Header {
15313	if c.header_ == nil {
15314		c.header_ = make(http.Header)
15315	}
15316	return c.header_
15317}
15318
15319func (c *FilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15320	reqHeaders := make(http.Header)
15321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15322	for k, v := range c.header_ {
15323		reqHeaders[k] = v
15324	}
15325	reqHeaders.Set("User-Agent", c.s.userAgent())
15326	var body io.Reader = nil
15327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
15328	if err != nil {
15329		return nil, err
15330	}
15331	reqHeaders.Set("Content-Type", "application/json")
15332	c.urlParams_.Set("alt", alt)
15333	c.urlParams_.Set("prettyPrint", "false")
15334	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:asyncBatchAnnotate")
15335	urls += "?" + c.urlParams_.Encode()
15336	req, err := http.NewRequest("POST", urls, body)
15337	if err != nil {
15338		return nil, err
15339	}
15340	req.Header = reqHeaders
15341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15342}
15343
15344// Do executes the "vision.files.asyncBatchAnnotate" call.
15345// Exactly one of *Operation or error will be non-nil. Any non-2xx
15346// status code is an error. Response headers are in either
15347// *Operation.ServerResponse.Header or (if a response was returned at
15348// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15349// to check whether the returned error was because
15350// http.StatusNotModified was returned.
15351func (c *FilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15352	gensupport.SetOptions(c.urlParams_, opts...)
15353	res, err := c.doRequest("json")
15354	if res != nil && res.StatusCode == http.StatusNotModified {
15355		if res.Body != nil {
15356			res.Body.Close()
15357		}
15358		return nil, &googleapi.Error{
15359			Code:   res.StatusCode,
15360			Header: res.Header,
15361		}
15362	}
15363	if err != nil {
15364		return nil, err
15365	}
15366	defer googleapi.CloseBody(res)
15367	if err := googleapi.CheckResponse(res); err != nil {
15368		return nil, err
15369	}
15370	ret := &Operation{
15371		ServerResponse: googleapi.ServerResponse{
15372			Header:         res.Header,
15373			HTTPStatusCode: res.StatusCode,
15374		},
15375	}
15376	target := &ret
15377	if err := gensupport.DecodeResponse(target, res); err != nil {
15378		return nil, err
15379	}
15380	return ret, nil
15381	// {
15382	//   "description": "Run asynchronous image detection and annotation for a list of generic\nfiles, such as PDF files, which may contain multiple pages and multiple\nimages per page. Progress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
15383	//   "flatPath": "v1/files:asyncBatchAnnotate",
15384	//   "httpMethod": "POST",
15385	//   "id": "vision.files.asyncBatchAnnotate",
15386	//   "parameterOrder": [],
15387	//   "parameters": {},
15388	//   "path": "v1/files:asyncBatchAnnotate",
15389	//   "request": {
15390	//     "$ref": "AsyncBatchAnnotateFilesRequest"
15391	//   },
15392	//   "response": {
15393	//     "$ref": "Operation"
15394	//   },
15395	//   "scopes": [
15396	//     "https://www.googleapis.com/auth/cloud-platform",
15397	//     "https://www.googleapis.com/auth/cloud-vision"
15398	//   ]
15399	// }
15400
15401}
15402
15403// method id "vision.images.annotate":
15404
15405type ImagesAnnotateCall struct {
15406	s                          *Service
15407	batchannotateimagesrequest *BatchAnnotateImagesRequest
15408	urlParams_                 gensupport.URLParams
15409	ctx_                       context.Context
15410	header_                    http.Header
15411}
15412
15413// Annotate: Run image detection and annotation for a batch of images.
15414func (r *ImagesService) Annotate(batchannotateimagesrequest *BatchAnnotateImagesRequest) *ImagesAnnotateCall {
15415	c := &ImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15416	c.batchannotateimagesrequest = batchannotateimagesrequest
15417	return c
15418}
15419
15420// Fields allows partial responses to be retrieved. See
15421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15422// for more information.
15423func (c *ImagesAnnotateCall) Fields(s ...googleapi.Field) *ImagesAnnotateCall {
15424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15425	return c
15426}
15427
15428// Context sets the context to be used in this call's Do method. Any
15429// pending HTTP request will be aborted if the provided context is
15430// canceled.
15431func (c *ImagesAnnotateCall) Context(ctx context.Context) *ImagesAnnotateCall {
15432	c.ctx_ = ctx
15433	return c
15434}
15435
15436// Header returns an http.Header that can be modified by the caller to
15437// add HTTP headers to the request.
15438func (c *ImagesAnnotateCall) Header() http.Header {
15439	if c.header_ == nil {
15440		c.header_ = make(http.Header)
15441	}
15442	return c.header_
15443}
15444
15445func (c *ImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15446	reqHeaders := make(http.Header)
15447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15448	for k, v := range c.header_ {
15449		reqHeaders[k] = v
15450	}
15451	reqHeaders.Set("User-Agent", c.s.userAgent())
15452	var body io.Reader = nil
15453	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
15454	if err != nil {
15455		return nil, err
15456	}
15457	reqHeaders.Set("Content-Type", "application/json")
15458	c.urlParams_.Set("alt", alt)
15459	c.urlParams_.Set("prettyPrint", "false")
15460	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:annotate")
15461	urls += "?" + c.urlParams_.Encode()
15462	req, err := http.NewRequest("POST", urls, body)
15463	if err != nil {
15464		return nil, err
15465	}
15466	req.Header = reqHeaders
15467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15468}
15469
15470// Do executes the "vision.images.annotate" call.
15471// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
15472// Any non-2xx status code is an error. Response headers are in either
15473// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
15474// was returned at all) in error.(*googleapi.Error).Header. Use
15475// googleapi.IsNotModified to check whether the returned error was
15476// because http.StatusNotModified was returned.
15477func (c *ImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
15478	gensupport.SetOptions(c.urlParams_, opts...)
15479	res, err := c.doRequest("json")
15480	if res != nil && res.StatusCode == http.StatusNotModified {
15481		if res.Body != nil {
15482			res.Body.Close()
15483		}
15484		return nil, &googleapi.Error{
15485			Code:   res.StatusCode,
15486			Header: res.Header,
15487		}
15488	}
15489	if err != nil {
15490		return nil, err
15491	}
15492	defer googleapi.CloseBody(res)
15493	if err := googleapi.CheckResponse(res); err != nil {
15494		return nil, err
15495	}
15496	ret := &BatchAnnotateImagesResponse{
15497		ServerResponse: googleapi.ServerResponse{
15498			Header:         res.Header,
15499			HTTPStatusCode: res.StatusCode,
15500		},
15501	}
15502	target := &ret
15503	if err := gensupport.DecodeResponse(target, res); err != nil {
15504		return nil, err
15505	}
15506	return ret, nil
15507	// {
15508	//   "description": "Run image detection and annotation for a batch of images.",
15509	//   "flatPath": "v1/images:annotate",
15510	//   "httpMethod": "POST",
15511	//   "id": "vision.images.annotate",
15512	//   "parameterOrder": [],
15513	//   "parameters": {},
15514	//   "path": "v1/images:annotate",
15515	//   "request": {
15516	//     "$ref": "BatchAnnotateImagesRequest"
15517	//   },
15518	//   "response": {
15519	//     "$ref": "BatchAnnotateImagesResponse"
15520	//   },
15521	//   "scopes": [
15522	//     "https://www.googleapis.com/auth/cloud-platform",
15523	//     "https://www.googleapis.com/auth/cloud-vision"
15524	//   ]
15525	// }
15526
15527}
15528
15529// method id "vision.images.asyncBatchAnnotate":
15530
15531type ImagesAsyncBatchAnnotateCall struct {
15532	s                               *Service
15533	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
15534	urlParams_                      gensupport.URLParams
15535	ctx_                            context.Context
15536	header_                         http.Header
15537}
15538
15539// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15540// for a list of images.
15541//
15542// Progress and results can be retrieved through
15543// the
15544// `google.longrunning.Operations` interface.
15545// `Operation.metadata` contains `OperationMetadata`
15546// (metadata).
15547// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
15548// (results).
15549//
15550// This service will write image annotation outputs to json files in
15551// customer
15552// GCS bucket, each json file containing BatchAnnotateImagesResponse
15553// proto.
15554func (r *ImagesService) AsyncBatchAnnotate(asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ImagesAsyncBatchAnnotateCall {
15555	c := &ImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15556	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
15557	return c
15558}
15559
15560// Fields allows partial responses to be retrieved. See
15561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15562// for more information.
15563func (c *ImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ImagesAsyncBatchAnnotateCall {
15564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15565	return c
15566}
15567
15568// Context sets the context to be used in this call's Do method. Any
15569// pending HTTP request will be aborted if the provided context is
15570// canceled.
15571func (c *ImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ImagesAsyncBatchAnnotateCall {
15572	c.ctx_ = ctx
15573	return c
15574}
15575
15576// Header returns an http.Header that can be modified by the caller to
15577// add HTTP headers to the request.
15578func (c *ImagesAsyncBatchAnnotateCall) Header() http.Header {
15579	if c.header_ == nil {
15580		c.header_ = make(http.Header)
15581	}
15582	return c.header_
15583}
15584
15585func (c *ImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15586	reqHeaders := make(http.Header)
15587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15588	for k, v := range c.header_ {
15589		reqHeaders[k] = v
15590	}
15591	reqHeaders.Set("User-Agent", c.s.userAgent())
15592	var body io.Reader = nil
15593	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
15594	if err != nil {
15595		return nil, err
15596	}
15597	reqHeaders.Set("Content-Type", "application/json")
15598	c.urlParams_.Set("alt", alt)
15599	c.urlParams_.Set("prettyPrint", "false")
15600	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:asyncBatchAnnotate")
15601	urls += "?" + c.urlParams_.Encode()
15602	req, err := http.NewRequest("POST", urls, body)
15603	if err != nil {
15604		return nil, err
15605	}
15606	req.Header = reqHeaders
15607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15608}
15609
15610// Do executes the "vision.images.asyncBatchAnnotate" call.
15611// Exactly one of *Operation or error will be non-nil. Any non-2xx
15612// status code is an error. Response headers are in either
15613// *Operation.ServerResponse.Header or (if a response was returned at
15614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15615// to check whether the returned error was because
15616// http.StatusNotModified was returned.
15617func (c *ImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15618	gensupport.SetOptions(c.urlParams_, opts...)
15619	res, err := c.doRequest("json")
15620	if res != nil && res.StatusCode == http.StatusNotModified {
15621		if res.Body != nil {
15622			res.Body.Close()
15623		}
15624		return nil, &googleapi.Error{
15625			Code:   res.StatusCode,
15626			Header: res.Header,
15627		}
15628	}
15629	if err != nil {
15630		return nil, err
15631	}
15632	defer googleapi.CloseBody(res)
15633	if err := googleapi.CheckResponse(res); err != nil {
15634		return nil, err
15635	}
15636	ret := &Operation{
15637		ServerResponse: googleapi.ServerResponse{
15638			Header:         res.Header,
15639			HTTPStatusCode: res.StatusCode,
15640		},
15641	}
15642	target := &ret
15643	if err := gensupport.DecodeResponse(target, res); err != nil {
15644		return nil, err
15645	}
15646	return ret, nil
15647	// {
15648	//   "description": "Run asynchronous image detection and annotation for a list of images.\n\nProgress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results).\n\nThis service will write image annotation outputs to json files in customer\nGCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
15649	//   "flatPath": "v1/images:asyncBatchAnnotate",
15650	//   "httpMethod": "POST",
15651	//   "id": "vision.images.asyncBatchAnnotate",
15652	//   "parameterOrder": [],
15653	//   "parameters": {},
15654	//   "path": "v1/images:asyncBatchAnnotate",
15655	//   "request": {
15656	//     "$ref": "AsyncBatchAnnotateImagesRequest"
15657	//   },
15658	//   "response": {
15659	//     "$ref": "Operation"
15660	//   },
15661	//   "scopes": [
15662	//     "https://www.googleapis.com/auth/cloud-platform",
15663	//     "https://www.googleapis.com/auth/cloud-vision"
15664	//   ]
15665	// }
15666
15667}
15668
15669// method id "vision.locations.operations.get":
15670
15671type LocationsOperationsGetCall struct {
15672	s            *Service
15673	name         string
15674	urlParams_   gensupport.URLParams
15675	ifNoneMatch_ string
15676	ctx_         context.Context
15677	header_      http.Header
15678}
15679
15680// Get: Gets the latest state of a long-running operation.  Clients can
15681// use this
15682// method to poll the operation result at intervals as recommended by
15683// the API
15684// service.
15685func (r *LocationsOperationsService) Get(name string) *LocationsOperationsGetCall {
15686	c := &LocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15687	c.name = name
15688	return c
15689}
15690
15691// Fields allows partial responses to be retrieved. See
15692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15693// for more information.
15694func (c *LocationsOperationsGetCall) Fields(s ...googleapi.Field) *LocationsOperationsGetCall {
15695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15696	return c
15697}
15698
15699// IfNoneMatch sets the optional parameter which makes the operation
15700// fail if the object's ETag matches the given value. This is useful for
15701// getting updates only after the object has changed since the last
15702// request. Use googleapi.IsNotModified to check whether the response
15703// error from Do is the result of In-None-Match.
15704func (c *LocationsOperationsGetCall) IfNoneMatch(entityTag string) *LocationsOperationsGetCall {
15705	c.ifNoneMatch_ = entityTag
15706	return c
15707}
15708
15709// Context sets the context to be used in this call's Do method. Any
15710// pending HTTP request will be aborted if the provided context is
15711// canceled.
15712func (c *LocationsOperationsGetCall) Context(ctx context.Context) *LocationsOperationsGetCall {
15713	c.ctx_ = ctx
15714	return c
15715}
15716
15717// Header returns an http.Header that can be modified by the caller to
15718// add HTTP headers to the request.
15719func (c *LocationsOperationsGetCall) Header() http.Header {
15720	if c.header_ == nil {
15721		c.header_ = make(http.Header)
15722	}
15723	return c.header_
15724}
15725
15726func (c *LocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
15727	reqHeaders := make(http.Header)
15728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15729	for k, v := range c.header_ {
15730		reqHeaders[k] = v
15731	}
15732	reqHeaders.Set("User-Agent", c.s.userAgent())
15733	if c.ifNoneMatch_ != "" {
15734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15735	}
15736	var body io.Reader = nil
15737	c.urlParams_.Set("alt", alt)
15738	c.urlParams_.Set("prettyPrint", "false")
15739	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
15740	urls += "?" + c.urlParams_.Encode()
15741	req, err := http.NewRequest("GET", urls, body)
15742	if err != nil {
15743		return nil, err
15744	}
15745	req.Header = reqHeaders
15746	googleapi.Expand(req.URL, map[string]string{
15747		"name": c.name,
15748	})
15749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15750}
15751
15752// Do executes the "vision.locations.operations.get" call.
15753// Exactly one of *Operation or error will be non-nil. Any non-2xx
15754// status code is an error. Response headers are in either
15755// *Operation.ServerResponse.Header or (if a response was returned at
15756// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15757// to check whether the returned error was because
15758// http.StatusNotModified was returned.
15759func (c *LocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15760	gensupport.SetOptions(c.urlParams_, opts...)
15761	res, err := c.doRequest("json")
15762	if res != nil && res.StatusCode == http.StatusNotModified {
15763		if res.Body != nil {
15764			res.Body.Close()
15765		}
15766		return nil, &googleapi.Error{
15767			Code:   res.StatusCode,
15768			Header: res.Header,
15769		}
15770	}
15771	if err != nil {
15772		return nil, err
15773	}
15774	defer googleapi.CloseBody(res)
15775	if err := googleapi.CheckResponse(res); err != nil {
15776		return nil, err
15777	}
15778	ret := &Operation{
15779		ServerResponse: googleapi.ServerResponse{
15780			Header:         res.Header,
15781			HTTPStatusCode: res.StatusCode,
15782		},
15783	}
15784	target := &ret
15785	if err := gensupport.DecodeResponse(target, res); err != nil {
15786		return nil, err
15787	}
15788	return ret, nil
15789	// {
15790	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
15791	//   "flatPath": "v1/locations/{locationsId}/operations/{operationsId}",
15792	//   "httpMethod": "GET",
15793	//   "id": "vision.locations.operations.get",
15794	//   "parameterOrder": [
15795	//     "name"
15796	//   ],
15797	//   "parameters": {
15798	//     "name": {
15799	//       "description": "The name of the operation resource.",
15800	//       "location": "path",
15801	//       "pattern": "^locations/[^/]+/operations/[^/]+$",
15802	//       "required": true,
15803	//       "type": "string"
15804	//     }
15805	//   },
15806	//   "path": "v1/{+name}",
15807	//   "response": {
15808	//     "$ref": "Operation"
15809	//   },
15810	//   "scopes": [
15811	//     "https://www.googleapis.com/auth/cloud-platform",
15812	//     "https://www.googleapis.com/auth/cloud-vision"
15813	//   ]
15814	// }
15815
15816}
15817
15818// method id "vision.operations.cancel":
15819
15820type OperationsCancelCall struct {
15821	s                      *Service
15822	name                   string
15823	canceloperationrequest *CancelOperationRequest
15824	urlParams_             gensupport.URLParams
15825	ctx_                   context.Context
15826	header_                http.Header
15827}
15828
15829// Cancel: Starts asynchronous cancellation on a long-running operation.
15830//  The server
15831// makes a best effort to cancel the operation, but success is
15832// not
15833// guaranteed.  If the server doesn't support this method, it
15834// returns
15835// `google.rpc.Code.UNIMPLEMENTED`.  Clients can
15836// use
15837// Operations.GetOperation or
15838// other methods to check whether the cancellation succeeded or whether
15839// the
15840// operation completed despite cancellation. On successful
15841// cancellation,
15842// the operation is not deleted; instead, it becomes an operation
15843// with
15844// an Operation.error value with a google.rpc.Status.code of
15845// 1,
15846// corresponding to `Code.CANCELLED`.
15847func (r *OperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *OperationsCancelCall {
15848	c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15849	c.name = name
15850	c.canceloperationrequest = canceloperationrequest
15851	return c
15852}
15853
15854// Fields allows partial responses to be retrieved. See
15855// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15856// for more information.
15857func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall {
15858	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15859	return c
15860}
15861
15862// Context sets the context to be used in this call's Do method. Any
15863// pending HTTP request will be aborted if the provided context is
15864// canceled.
15865func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall {
15866	c.ctx_ = ctx
15867	return c
15868}
15869
15870// Header returns an http.Header that can be modified by the caller to
15871// add HTTP headers to the request.
15872func (c *OperationsCancelCall) Header() http.Header {
15873	if c.header_ == nil {
15874		c.header_ = make(http.Header)
15875	}
15876	return c.header_
15877}
15878
15879func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) {
15880	reqHeaders := make(http.Header)
15881	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
15882	for k, v := range c.header_ {
15883		reqHeaders[k] = v
15884	}
15885	reqHeaders.Set("User-Agent", c.s.userAgent())
15886	var body io.Reader = nil
15887	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
15888	if err != nil {
15889		return nil, err
15890	}
15891	reqHeaders.Set("Content-Type", "application/json")
15892	c.urlParams_.Set("alt", alt)
15893	c.urlParams_.Set("prettyPrint", "false")
15894	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
15895	urls += "?" + c.urlParams_.Encode()
15896	req, err := http.NewRequest("POST", urls, body)
15897	if err != nil {
15898		return nil, err
15899	}
15900	req.Header = reqHeaders
15901	googleapi.Expand(req.URL, map[string]string{
15902		"name": c.name,
15903	})
15904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15905}
15906
15907// Do executes the "vision.operations.cancel" call.
15908// Exactly one of *Empty or error will be non-nil. Any non-2xx status
15909// code is an error. Response headers are in either
15910// *Empty.ServerResponse.Header or (if a response was returned at all)
15911// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
15912// check whether the returned error was because http.StatusNotModified
15913// was returned.
15914func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
15915	gensupport.SetOptions(c.urlParams_, opts...)
15916	res, err := c.doRequest("json")
15917	if res != nil && res.StatusCode == http.StatusNotModified {
15918		if res.Body != nil {
15919			res.Body.Close()
15920		}
15921		return nil, &googleapi.Error{
15922			Code:   res.StatusCode,
15923			Header: res.Header,
15924		}
15925	}
15926	if err != nil {
15927		return nil, err
15928	}
15929	defer googleapi.CloseBody(res)
15930	if err := googleapi.CheckResponse(res); err != nil {
15931		return nil, err
15932	}
15933	ret := &Empty{
15934		ServerResponse: googleapi.ServerResponse{
15935			Header:         res.Header,
15936			HTTPStatusCode: res.StatusCode,
15937		},
15938	}
15939	target := &ret
15940	if err := gensupport.DecodeResponse(target, res); err != nil {
15941		return nil, err
15942	}
15943	return ret, nil
15944	// {
15945	//   "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
15946	//   "flatPath": "v1/operations/{operationsId}:cancel",
15947	//   "httpMethod": "POST",
15948	//   "id": "vision.operations.cancel",
15949	//   "parameterOrder": [
15950	//     "name"
15951	//   ],
15952	//   "parameters": {
15953	//     "name": {
15954	//       "description": "The name of the operation resource to be cancelled.",
15955	//       "location": "path",
15956	//       "pattern": "^operations/.*$",
15957	//       "required": true,
15958	//       "type": "string"
15959	//     }
15960	//   },
15961	//   "path": "v1/{+name}:cancel",
15962	//   "request": {
15963	//     "$ref": "CancelOperationRequest"
15964	//   },
15965	//   "response": {
15966	//     "$ref": "Empty"
15967	//   },
15968	//   "scopes": [
15969	//     "https://www.googleapis.com/auth/cloud-platform",
15970	//     "https://www.googleapis.com/auth/cloud-vision"
15971	//   ]
15972	// }
15973
15974}
15975
15976// method id "vision.operations.delete":
15977
15978type OperationsDeleteCall struct {
15979	s          *Service
15980	name       string
15981	urlParams_ gensupport.URLParams
15982	ctx_       context.Context
15983	header_    http.Header
15984}
15985
15986// Delete: Deletes a long-running operation. This method indicates that
15987// the client is
15988// no longer interested in the operation result. It does not cancel
15989// the
15990// operation. If the server doesn't support this method, it
15991// returns
15992// `google.rpc.Code.UNIMPLEMENTED`.
15993func (r *OperationsService) Delete(name string) *OperationsDeleteCall {
15994	c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15995	c.name = name
15996	return c
15997}
15998
15999// Fields allows partial responses to be retrieved. See
16000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16001// for more information.
16002func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall {
16003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16004	return c
16005}
16006
16007// Context sets the context to be used in this call's Do method. Any
16008// pending HTTP request will be aborted if the provided context is
16009// canceled.
16010func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall {
16011	c.ctx_ = ctx
16012	return c
16013}
16014
16015// Header returns an http.Header that can be modified by the caller to
16016// add HTTP headers to the request.
16017func (c *OperationsDeleteCall) Header() http.Header {
16018	if c.header_ == nil {
16019		c.header_ = make(http.Header)
16020	}
16021	return c.header_
16022}
16023
16024func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
16025	reqHeaders := make(http.Header)
16026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16027	for k, v := range c.header_ {
16028		reqHeaders[k] = v
16029	}
16030	reqHeaders.Set("User-Agent", c.s.userAgent())
16031	var body io.Reader = nil
16032	c.urlParams_.Set("alt", alt)
16033	c.urlParams_.Set("prettyPrint", "false")
16034	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16035	urls += "?" + c.urlParams_.Encode()
16036	req, err := http.NewRequest("DELETE", urls, body)
16037	if err != nil {
16038		return nil, err
16039	}
16040	req.Header = reqHeaders
16041	googleapi.Expand(req.URL, map[string]string{
16042		"name": c.name,
16043	})
16044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16045}
16046
16047// Do executes the "vision.operations.delete" call.
16048// Exactly one of *Empty or error will be non-nil. Any non-2xx status
16049// code is an error. Response headers are in either
16050// *Empty.ServerResponse.Header or (if a response was returned at all)
16051// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
16052// check whether the returned error was because http.StatusNotModified
16053// was returned.
16054func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
16055	gensupport.SetOptions(c.urlParams_, opts...)
16056	res, err := c.doRequest("json")
16057	if res != nil && res.StatusCode == http.StatusNotModified {
16058		if res.Body != nil {
16059			res.Body.Close()
16060		}
16061		return nil, &googleapi.Error{
16062			Code:   res.StatusCode,
16063			Header: res.Header,
16064		}
16065	}
16066	if err != nil {
16067		return nil, err
16068	}
16069	defer googleapi.CloseBody(res)
16070	if err := googleapi.CheckResponse(res); err != nil {
16071		return nil, err
16072	}
16073	ret := &Empty{
16074		ServerResponse: googleapi.ServerResponse{
16075			Header:         res.Header,
16076			HTTPStatusCode: res.StatusCode,
16077		},
16078	}
16079	target := &ret
16080	if err := gensupport.DecodeResponse(target, res); err != nil {
16081		return nil, err
16082	}
16083	return ret, nil
16084	// {
16085	//   "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
16086	//   "flatPath": "v1/operations/{operationsId}",
16087	//   "httpMethod": "DELETE",
16088	//   "id": "vision.operations.delete",
16089	//   "parameterOrder": [
16090	//     "name"
16091	//   ],
16092	//   "parameters": {
16093	//     "name": {
16094	//       "description": "The name of the operation resource to be deleted.",
16095	//       "location": "path",
16096	//       "pattern": "^operations/.*$",
16097	//       "required": true,
16098	//       "type": "string"
16099	//     }
16100	//   },
16101	//   "path": "v1/{+name}",
16102	//   "response": {
16103	//     "$ref": "Empty"
16104	//   },
16105	//   "scopes": [
16106	//     "https://www.googleapis.com/auth/cloud-platform",
16107	//     "https://www.googleapis.com/auth/cloud-vision"
16108	//   ]
16109	// }
16110
16111}
16112
16113// method id "vision.operations.get":
16114
16115type OperationsGetCall struct {
16116	s            *Service
16117	name         string
16118	urlParams_   gensupport.URLParams
16119	ifNoneMatch_ string
16120	ctx_         context.Context
16121	header_      http.Header
16122}
16123
16124// Get: Gets the latest state of a long-running operation.  Clients can
16125// use this
16126// method to poll the operation result at intervals as recommended by
16127// the API
16128// service.
16129func (r *OperationsService) Get(name string) *OperationsGetCall {
16130	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16131	c.name = name
16132	return c
16133}
16134
16135// Fields allows partial responses to be retrieved. See
16136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16137// for more information.
16138func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
16139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16140	return c
16141}
16142
16143// IfNoneMatch sets the optional parameter which makes the operation
16144// fail if the object's ETag matches the given value. This is useful for
16145// getting updates only after the object has changed since the last
16146// request. Use googleapi.IsNotModified to check whether the response
16147// error from Do is the result of In-None-Match.
16148func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
16149	c.ifNoneMatch_ = entityTag
16150	return c
16151}
16152
16153// Context sets the context to be used in this call's Do method. Any
16154// pending HTTP request will be aborted if the provided context is
16155// canceled.
16156func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
16157	c.ctx_ = ctx
16158	return c
16159}
16160
16161// Header returns an http.Header that can be modified by the caller to
16162// add HTTP headers to the request.
16163func (c *OperationsGetCall) Header() http.Header {
16164	if c.header_ == nil {
16165		c.header_ = make(http.Header)
16166	}
16167	return c.header_
16168}
16169
16170func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
16171	reqHeaders := make(http.Header)
16172	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16173	for k, v := range c.header_ {
16174		reqHeaders[k] = v
16175	}
16176	reqHeaders.Set("User-Agent", c.s.userAgent())
16177	if c.ifNoneMatch_ != "" {
16178		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16179	}
16180	var body io.Reader = nil
16181	c.urlParams_.Set("alt", alt)
16182	c.urlParams_.Set("prettyPrint", "false")
16183	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16184	urls += "?" + c.urlParams_.Encode()
16185	req, err := http.NewRequest("GET", urls, body)
16186	if err != nil {
16187		return nil, err
16188	}
16189	req.Header = reqHeaders
16190	googleapi.Expand(req.URL, map[string]string{
16191		"name": c.name,
16192	})
16193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16194}
16195
16196// Do executes the "vision.operations.get" call.
16197// Exactly one of *Operation or error will be non-nil. Any non-2xx
16198// status code is an error. Response headers are in either
16199// *Operation.ServerResponse.Header or (if a response was returned at
16200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16201// to check whether the returned error was because
16202// http.StatusNotModified was returned.
16203func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16204	gensupport.SetOptions(c.urlParams_, opts...)
16205	res, err := c.doRequest("json")
16206	if res != nil && res.StatusCode == http.StatusNotModified {
16207		if res.Body != nil {
16208			res.Body.Close()
16209		}
16210		return nil, &googleapi.Error{
16211			Code:   res.StatusCode,
16212			Header: res.Header,
16213		}
16214	}
16215	if err != nil {
16216		return nil, err
16217	}
16218	defer googleapi.CloseBody(res)
16219	if err := googleapi.CheckResponse(res); err != nil {
16220		return nil, err
16221	}
16222	ret := &Operation{
16223		ServerResponse: googleapi.ServerResponse{
16224			Header:         res.Header,
16225			HTTPStatusCode: res.StatusCode,
16226		},
16227	}
16228	target := &ret
16229	if err := gensupport.DecodeResponse(target, res); err != nil {
16230		return nil, err
16231	}
16232	return ret, nil
16233	// {
16234	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
16235	//   "flatPath": "v1/operations/{operationsId}",
16236	//   "httpMethod": "GET",
16237	//   "id": "vision.operations.get",
16238	//   "parameterOrder": [
16239	//     "name"
16240	//   ],
16241	//   "parameters": {
16242	//     "name": {
16243	//       "description": "The name of the operation resource.",
16244	//       "location": "path",
16245	//       "pattern": "^operations/[^/]+$",
16246	//       "required": true,
16247	//       "type": "string"
16248	//     }
16249	//   },
16250	//   "path": "v1/{+name}",
16251	//   "response": {
16252	//     "$ref": "Operation"
16253	//   },
16254	//   "scopes": [
16255	//     "https://www.googleapis.com/auth/cloud-platform",
16256	//     "https://www.googleapis.com/auth/cloud-vision"
16257	//   ]
16258	// }
16259
16260}
16261
16262// method id "vision.operations.list":
16263
16264type OperationsListCall struct {
16265	s            *Service
16266	name         string
16267	urlParams_   gensupport.URLParams
16268	ifNoneMatch_ string
16269	ctx_         context.Context
16270	header_      http.Header
16271}
16272
16273// List: Lists operations that match the specified filter in the
16274// request. If the
16275// server doesn't support this method, it returns
16276// `UNIMPLEMENTED`.
16277//
16278// NOTE: the `name` binding allows API services to override the
16279// binding
16280// to use different resource name schemes, such as `users/*/operations`.
16281// To
16282// override the binding, API services can add a binding such
16283// as
16284// "/v1/{name=users/*}/operations" to their service configuration.
16285// For backwards compatibility, the default name includes the
16286// operations
16287// collection id, however overriding users must ensure the name
16288// binding
16289// is the parent resource, without the operations collection id.
16290func (r *OperationsService) List(name string) *OperationsListCall {
16291	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16292	c.name = name
16293	return c
16294}
16295
16296// Filter sets the optional parameter "filter": The standard list
16297// filter.
16298func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
16299	c.urlParams_.Set("filter", filter)
16300	return c
16301}
16302
16303// PageSize sets the optional parameter "pageSize": The standard list
16304// page size.
16305func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall {
16306	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
16307	return c
16308}
16309
16310// PageToken sets the optional parameter "pageToken": The standard list
16311// page token.
16312func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
16313	c.urlParams_.Set("pageToken", pageToken)
16314	return c
16315}
16316
16317// Fields allows partial responses to be retrieved. See
16318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16319// for more information.
16320func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
16321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16322	return c
16323}
16324
16325// IfNoneMatch sets the optional parameter which makes the operation
16326// fail if the object's ETag matches the given value. This is useful for
16327// getting updates only after the object has changed since the last
16328// request. Use googleapi.IsNotModified to check whether the response
16329// error from Do is the result of In-None-Match.
16330func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
16331	c.ifNoneMatch_ = entityTag
16332	return c
16333}
16334
16335// Context sets the context to be used in this call's Do method. Any
16336// pending HTTP request will be aborted if the provided context is
16337// canceled.
16338func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
16339	c.ctx_ = ctx
16340	return c
16341}
16342
16343// Header returns an http.Header that can be modified by the caller to
16344// add HTTP headers to the request.
16345func (c *OperationsListCall) Header() http.Header {
16346	if c.header_ == nil {
16347		c.header_ = make(http.Header)
16348	}
16349	return c.header_
16350}
16351
16352func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
16353	reqHeaders := make(http.Header)
16354	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16355	for k, v := range c.header_ {
16356		reqHeaders[k] = v
16357	}
16358	reqHeaders.Set("User-Agent", c.s.userAgent())
16359	if c.ifNoneMatch_ != "" {
16360		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16361	}
16362	var body io.Reader = nil
16363	c.urlParams_.Set("alt", alt)
16364	c.urlParams_.Set("prettyPrint", "false")
16365	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16366	urls += "?" + c.urlParams_.Encode()
16367	req, err := http.NewRequest("GET", urls, body)
16368	if err != nil {
16369		return nil, err
16370	}
16371	req.Header = reqHeaders
16372	googleapi.Expand(req.URL, map[string]string{
16373		"name": c.name,
16374	})
16375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16376}
16377
16378// Do executes the "vision.operations.list" call.
16379// Exactly one of *ListOperationsResponse or error will be non-nil. Any
16380// non-2xx status code is an error. Response headers are in either
16381// *ListOperationsResponse.ServerResponse.Header or (if a response was
16382// returned at all) in error.(*googleapi.Error).Header. Use
16383// googleapi.IsNotModified to check whether the returned error was
16384// because http.StatusNotModified was returned.
16385func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
16386	gensupport.SetOptions(c.urlParams_, opts...)
16387	res, err := c.doRequest("json")
16388	if res != nil && res.StatusCode == http.StatusNotModified {
16389		if res.Body != nil {
16390			res.Body.Close()
16391		}
16392		return nil, &googleapi.Error{
16393			Code:   res.StatusCode,
16394			Header: res.Header,
16395		}
16396	}
16397	if err != nil {
16398		return nil, err
16399	}
16400	defer googleapi.CloseBody(res)
16401	if err := googleapi.CheckResponse(res); err != nil {
16402		return nil, err
16403	}
16404	ret := &ListOperationsResponse{
16405		ServerResponse: googleapi.ServerResponse{
16406			Header:         res.Header,
16407			HTTPStatusCode: res.StatusCode,
16408		},
16409	}
16410	target := &ret
16411	if err := gensupport.DecodeResponse(target, res); err != nil {
16412		return nil, err
16413	}
16414	return ret, nil
16415	// {
16416	//   "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
16417	//   "flatPath": "v1/operations",
16418	//   "httpMethod": "GET",
16419	//   "id": "vision.operations.list",
16420	//   "parameterOrder": [
16421	//     "name"
16422	//   ],
16423	//   "parameters": {
16424	//     "filter": {
16425	//       "description": "The standard list filter.",
16426	//       "location": "query",
16427	//       "type": "string"
16428	//     },
16429	//     "name": {
16430	//       "description": "The name of the operation's parent resource.",
16431	//       "location": "path",
16432	//       "pattern": "^operations$",
16433	//       "required": true,
16434	//       "type": "string"
16435	//     },
16436	//     "pageSize": {
16437	//       "description": "The standard list page size.",
16438	//       "format": "int32",
16439	//       "location": "query",
16440	//       "type": "integer"
16441	//     },
16442	//     "pageToken": {
16443	//       "description": "The standard list page token.",
16444	//       "location": "query",
16445	//       "type": "string"
16446	//     }
16447	//   },
16448	//   "path": "v1/{+name}",
16449	//   "response": {
16450	//     "$ref": "ListOperationsResponse"
16451	//   },
16452	//   "scopes": [
16453	//     "https://www.googleapis.com/auth/cloud-platform",
16454	//     "https://www.googleapis.com/auth/cloud-vision"
16455	//   ]
16456	// }
16457
16458}
16459
16460// Pages invokes f for each page of results.
16461// A non-nil error returned from f will halt the iteration.
16462// The provided context supersedes any context provided to the Context method.
16463func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
16464	c.ctx_ = ctx
16465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
16466	for {
16467		x, err := c.Do()
16468		if err != nil {
16469			return err
16470		}
16471		if err := f(x); err != nil {
16472			return err
16473		}
16474		if x.NextPageToken == "" {
16475			return nil
16476		}
16477		c.PageToken(x.NextPageToken)
16478	}
16479}
16480
16481// method id "vision.projects.files.annotate":
16482
16483type ProjectsFilesAnnotateCall struct {
16484	s                         *Service
16485	parent                    string
16486	batchannotatefilesrequest *BatchAnnotateFilesRequest
16487	urlParams_                gensupport.URLParams
16488	ctx_                      context.Context
16489	header_                   http.Header
16490}
16491
16492// Annotate: Service that performs image detection and annotation for a
16493// batch of files.
16494// Now only "application/pdf", "image/tiff" and "image/gif" are
16495// supported.
16496//
16497// This service will extract at most 5 (customers can specify which 5
16498// in
16499// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
16500// each
16501// file provided and perform detection and annotation for each
16502// image
16503// extracted.
16504func (r *ProjectsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsFilesAnnotateCall {
16505	c := &ProjectsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16506	c.parent = parent
16507	c.batchannotatefilesrequest = batchannotatefilesrequest
16508	return c
16509}
16510
16511// Fields allows partial responses to be retrieved. See
16512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16513// for more information.
16514func (c *ProjectsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAnnotateCall {
16515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16516	return c
16517}
16518
16519// Context sets the context to be used in this call's Do method. Any
16520// pending HTTP request will be aborted if the provided context is
16521// canceled.
16522func (c *ProjectsFilesAnnotateCall) Context(ctx context.Context) *ProjectsFilesAnnotateCall {
16523	c.ctx_ = ctx
16524	return c
16525}
16526
16527// Header returns an http.Header that can be modified by the caller to
16528// add HTTP headers to the request.
16529func (c *ProjectsFilesAnnotateCall) Header() http.Header {
16530	if c.header_ == nil {
16531		c.header_ = make(http.Header)
16532	}
16533	return c.header_
16534}
16535
16536func (c *ProjectsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
16537	reqHeaders := make(http.Header)
16538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16539	for k, v := range c.header_ {
16540		reqHeaders[k] = v
16541	}
16542	reqHeaders.Set("User-Agent", c.s.userAgent())
16543	var body io.Reader = nil
16544	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
16545	if err != nil {
16546		return nil, err
16547	}
16548	reqHeaders.Set("Content-Type", "application/json")
16549	c.urlParams_.Set("alt", alt)
16550	c.urlParams_.Set("prettyPrint", "false")
16551	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
16552	urls += "?" + c.urlParams_.Encode()
16553	req, err := http.NewRequest("POST", urls, body)
16554	if err != nil {
16555		return nil, err
16556	}
16557	req.Header = reqHeaders
16558	googleapi.Expand(req.URL, map[string]string{
16559		"parent": c.parent,
16560	})
16561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16562}
16563
16564// Do executes the "vision.projects.files.annotate" call.
16565// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
16566// Any non-2xx status code is an error. Response headers are in either
16567// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
16568// was returned at all) in error.(*googleapi.Error).Header. Use
16569// googleapi.IsNotModified to check whether the returned error was
16570// because http.StatusNotModified was returned.
16571func (c *ProjectsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
16572	gensupport.SetOptions(c.urlParams_, opts...)
16573	res, err := c.doRequest("json")
16574	if res != nil && res.StatusCode == http.StatusNotModified {
16575		if res.Body != nil {
16576			res.Body.Close()
16577		}
16578		return nil, &googleapi.Error{
16579			Code:   res.StatusCode,
16580			Header: res.Header,
16581		}
16582	}
16583	if err != nil {
16584		return nil, err
16585	}
16586	defer googleapi.CloseBody(res)
16587	if err := googleapi.CheckResponse(res); err != nil {
16588		return nil, err
16589	}
16590	ret := &BatchAnnotateFilesResponse{
16591		ServerResponse: googleapi.ServerResponse{
16592			Header:         res.Header,
16593			HTTPStatusCode: res.StatusCode,
16594		},
16595	}
16596	target := &ret
16597	if err := gensupport.DecodeResponse(target, res); err != nil {
16598		return nil, err
16599	}
16600	return ret, nil
16601	// {
16602	//   "description": "Service that performs image detection and annotation for a batch of files.\nNow only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported.\n\nThis service will extract at most 5 (customers can specify which 5 in\nAnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each\nfile provided and perform detection and annotation for each image\nextracted.",
16603	//   "flatPath": "v1/projects/{projectsId}/files:annotate",
16604	//   "httpMethod": "POST",
16605	//   "id": "vision.projects.files.annotate",
16606	//   "parameterOrder": [
16607	//     "parent"
16608	//   ],
16609	//   "parameters": {
16610	//     "parent": {
16611	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
16612	//       "location": "path",
16613	//       "pattern": "^projects/[^/]+$",
16614	//       "required": true,
16615	//       "type": "string"
16616	//     }
16617	//   },
16618	//   "path": "v1/{+parent}/files:annotate",
16619	//   "request": {
16620	//     "$ref": "BatchAnnotateFilesRequest"
16621	//   },
16622	//   "response": {
16623	//     "$ref": "BatchAnnotateFilesResponse"
16624	//   },
16625	//   "scopes": [
16626	//     "https://www.googleapis.com/auth/cloud-platform",
16627	//     "https://www.googleapis.com/auth/cloud-vision"
16628	//   ]
16629	// }
16630
16631}
16632
16633// method id "vision.projects.files.asyncBatchAnnotate":
16634
16635type ProjectsFilesAsyncBatchAnnotateCall struct {
16636	s                              *Service
16637	parent                         string
16638	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
16639	urlParams_                     gensupport.URLParams
16640	ctx_                           context.Context
16641	header_                        http.Header
16642}
16643
16644// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16645// for a list of generic
16646// files, such as PDF files, which may contain multiple pages and
16647// multiple
16648// images per page. Progress and results can be retrieved through
16649// the
16650// `google.longrunning.Operations` interface.
16651// `Operation.metadata` contains `OperationMetadata`
16652// (metadata).
16653// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
16654// (results).
16655func (r *ProjectsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsFilesAsyncBatchAnnotateCall {
16656	c := &ProjectsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16657	c.parent = parent
16658	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
16659	return c
16660}
16661
16662// Fields allows partial responses to be retrieved. See
16663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16664// for more information.
16665func (c *ProjectsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAsyncBatchAnnotateCall {
16666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16667	return c
16668}
16669
16670// Context sets the context to be used in this call's Do method. Any
16671// pending HTTP request will be aborted if the provided context is
16672// canceled.
16673func (c *ProjectsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsFilesAsyncBatchAnnotateCall {
16674	c.ctx_ = ctx
16675	return c
16676}
16677
16678// Header returns an http.Header that can be modified by the caller to
16679// add HTTP headers to the request.
16680func (c *ProjectsFilesAsyncBatchAnnotateCall) Header() http.Header {
16681	if c.header_ == nil {
16682		c.header_ = make(http.Header)
16683	}
16684	return c.header_
16685}
16686
16687func (c *ProjectsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16688	reqHeaders := make(http.Header)
16689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16690	for k, v := range c.header_ {
16691		reqHeaders[k] = v
16692	}
16693	reqHeaders.Set("User-Agent", c.s.userAgent())
16694	var body io.Reader = nil
16695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
16696	if err != nil {
16697		return nil, err
16698	}
16699	reqHeaders.Set("Content-Type", "application/json")
16700	c.urlParams_.Set("alt", alt)
16701	c.urlParams_.Set("prettyPrint", "false")
16702	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
16703	urls += "?" + c.urlParams_.Encode()
16704	req, err := http.NewRequest("POST", urls, body)
16705	if err != nil {
16706		return nil, err
16707	}
16708	req.Header = reqHeaders
16709	googleapi.Expand(req.URL, map[string]string{
16710		"parent": c.parent,
16711	})
16712	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16713}
16714
16715// Do executes the "vision.projects.files.asyncBatchAnnotate" call.
16716// Exactly one of *Operation or error will be non-nil. Any non-2xx
16717// status code is an error. Response headers are in either
16718// *Operation.ServerResponse.Header or (if a response was returned at
16719// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16720// to check whether the returned error was because
16721// http.StatusNotModified was returned.
16722func (c *ProjectsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16723	gensupport.SetOptions(c.urlParams_, opts...)
16724	res, err := c.doRequest("json")
16725	if res != nil && res.StatusCode == http.StatusNotModified {
16726		if res.Body != nil {
16727			res.Body.Close()
16728		}
16729		return nil, &googleapi.Error{
16730			Code:   res.StatusCode,
16731			Header: res.Header,
16732		}
16733	}
16734	if err != nil {
16735		return nil, err
16736	}
16737	defer googleapi.CloseBody(res)
16738	if err := googleapi.CheckResponse(res); err != nil {
16739		return nil, err
16740	}
16741	ret := &Operation{
16742		ServerResponse: googleapi.ServerResponse{
16743			Header:         res.Header,
16744			HTTPStatusCode: res.StatusCode,
16745		},
16746	}
16747	target := &ret
16748	if err := gensupport.DecodeResponse(target, res); err != nil {
16749		return nil, err
16750	}
16751	return ret, nil
16752	// {
16753	//   "description": "Run asynchronous image detection and annotation for a list of generic\nfiles, such as PDF files, which may contain multiple pages and multiple\nimages per page. Progress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
16754	//   "flatPath": "v1/projects/{projectsId}/files:asyncBatchAnnotate",
16755	//   "httpMethod": "POST",
16756	//   "id": "vision.projects.files.asyncBatchAnnotate",
16757	//   "parameterOrder": [
16758	//     "parent"
16759	//   ],
16760	//   "parameters": {
16761	//     "parent": {
16762	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
16763	//       "location": "path",
16764	//       "pattern": "^projects/[^/]+$",
16765	//       "required": true,
16766	//       "type": "string"
16767	//     }
16768	//   },
16769	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
16770	//   "request": {
16771	//     "$ref": "AsyncBatchAnnotateFilesRequest"
16772	//   },
16773	//   "response": {
16774	//     "$ref": "Operation"
16775	//   },
16776	//   "scopes": [
16777	//     "https://www.googleapis.com/auth/cloud-platform",
16778	//     "https://www.googleapis.com/auth/cloud-vision"
16779	//   ]
16780	// }
16781
16782}
16783
16784// method id "vision.projects.images.annotate":
16785
16786type ProjectsImagesAnnotateCall struct {
16787	s                          *Service
16788	parent                     string
16789	batchannotateimagesrequest *BatchAnnotateImagesRequest
16790	urlParams_                 gensupport.URLParams
16791	ctx_                       context.Context
16792	header_                    http.Header
16793}
16794
16795// Annotate: Run image detection and annotation for a batch of images.
16796func (r *ProjectsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsImagesAnnotateCall {
16797	c := &ProjectsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16798	c.parent = parent
16799	c.batchannotateimagesrequest = batchannotateimagesrequest
16800	return c
16801}
16802
16803// Fields allows partial responses to be retrieved. See
16804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16805// for more information.
16806func (c *ProjectsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAnnotateCall {
16807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16808	return c
16809}
16810
16811// Context sets the context to be used in this call's Do method. Any
16812// pending HTTP request will be aborted if the provided context is
16813// canceled.
16814func (c *ProjectsImagesAnnotateCall) Context(ctx context.Context) *ProjectsImagesAnnotateCall {
16815	c.ctx_ = ctx
16816	return c
16817}
16818
16819// Header returns an http.Header that can be modified by the caller to
16820// add HTTP headers to the request.
16821func (c *ProjectsImagesAnnotateCall) Header() http.Header {
16822	if c.header_ == nil {
16823		c.header_ = make(http.Header)
16824	}
16825	return c.header_
16826}
16827
16828func (c *ProjectsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
16829	reqHeaders := make(http.Header)
16830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16831	for k, v := range c.header_ {
16832		reqHeaders[k] = v
16833	}
16834	reqHeaders.Set("User-Agent", c.s.userAgent())
16835	var body io.Reader = nil
16836	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
16837	if err != nil {
16838		return nil, err
16839	}
16840	reqHeaders.Set("Content-Type", "application/json")
16841	c.urlParams_.Set("alt", alt)
16842	c.urlParams_.Set("prettyPrint", "false")
16843	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
16844	urls += "?" + c.urlParams_.Encode()
16845	req, err := http.NewRequest("POST", urls, body)
16846	if err != nil {
16847		return nil, err
16848	}
16849	req.Header = reqHeaders
16850	googleapi.Expand(req.URL, map[string]string{
16851		"parent": c.parent,
16852	})
16853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16854}
16855
16856// Do executes the "vision.projects.images.annotate" call.
16857// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
16858// Any non-2xx status code is an error. Response headers are in either
16859// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
16860// was returned at all) in error.(*googleapi.Error).Header. Use
16861// googleapi.IsNotModified to check whether the returned error was
16862// because http.StatusNotModified was returned.
16863func (c *ProjectsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
16864	gensupport.SetOptions(c.urlParams_, opts...)
16865	res, err := c.doRequest("json")
16866	if res != nil && res.StatusCode == http.StatusNotModified {
16867		if res.Body != nil {
16868			res.Body.Close()
16869		}
16870		return nil, &googleapi.Error{
16871			Code:   res.StatusCode,
16872			Header: res.Header,
16873		}
16874	}
16875	if err != nil {
16876		return nil, err
16877	}
16878	defer googleapi.CloseBody(res)
16879	if err := googleapi.CheckResponse(res); err != nil {
16880		return nil, err
16881	}
16882	ret := &BatchAnnotateImagesResponse{
16883		ServerResponse: googleapi.ServerResponse{
16884			Header:         res.Header,
16885			HTTPStatusCode: res.StatusCode,
16886		},
16887	}
16888	target := &ret
16889	if err := gensupport.DecodeResponse(target, res); err != nil {
16890		return nil, err
16891	}
16892	return ret, nil
16893	// {
16894	//   "description": "Run image detection and annotation for a batch of images.",
16895	//   "flatPath": "v1/projects/{projectsId}/images:annotate",
16896	//   "httpMethod": "POST",
16897	//   "id": "vision.projects.images.annotate",
16898	//   "parameterOrder": [
16899	//     "parent"
16900	//   ],
16901	//   "parameters": {
16902	//     "parent": {
16903	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
16904	//       "location": "path",
16905	//       "pattern": "^projects/[^/]+$",
16906	//       "required": true,
16907	//       "type": "string"
16908	//     }
16909	//   },
16910	//   "path": "v1/{+parent}/images:annotate",
16911	//   "request": {
16912	//     "$ref": "BatchAnnotateImagesRequest"
16913	//   },
16914	//   "response": {
16915	//     "$ref": "BatchAnnotateImagesResponse"
16916	//   },
16917	//   "scopes": [
16918	//     "https://www.googleapis.com/auth/cloud-platform",
16919	//     "https://www.googleapis.com/auth/cloud-vision"
16920	//   ]
16921	// }
16922
16923}
16924
16925// method id "vision.projects.images.asyncBatchAnnotate":
16926
16927type ProjectsImagesAsyncBatchAnnotateCall struct {
16928	s                               *Service
16929	parent                          string
16930	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
16931	urlParams_                      gensupport.URLParams
16932	ctx_                            context.Context
16933	header_                         http.Header
16934}
16935
16936// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16937// for a list of images.
16938//
16939// Progress and results can be retrieved through
16940// the
16941// `google.longrunning.Operations` interface.
16942// `Operation.metadata` contains `OperationMetadata`
16943// (metadata).
16944// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
16945// (results).
16946//
16947// This service will write image annotation outputs to json files in
16948// customer
16949// GCS bucket, each json file containing BatchAnnotateImagesResponse
16950// proto.
16951func (r *ProjectsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsImagesAsyncBatchAnnotateCall {
16952	c := &ProjectsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16953	c.parent = parent
16954	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
16955	return c
16956}
16957
16958// Fields allows partial responses to be retrieved. See
16959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16960// for more information.
16961func (c *ProjectsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAsyncBatchAnnotateCall {
16962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16963	return c
16964}
16965
16966// Context sets the context to be used in this call's Do method. Any
16967// pending HTTP request will be aborted if the provided context is
16968// canceled.
16969func (c *ProjectsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsImagesAsyncBatchAnnotateCall {
16970	c.ctx_ = ctx
16971	return c
16972}
16973
16974// Header returns an http.Header that can be modified by the caller to
16975// add HTTP headers to the request.
16976func (c *ProjectsImagesAsyncBatchAnnotateCall) Header() http.Header {
16977	if c.header_ == nil {
16978		c.header_ = make(http.Header)
16979	}
16980	return c.header_
16981}
16982
16983func (c *ProjectsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16984	reqHeaders := make(http.Header)
16985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
16986	for k, v := range c.header_ {
16987		reqHeaders[k] = v
16988	}
16989	reqHeaders.Set("User-Agent", c.s.userAgent())
16990	var body io.Reader = nil
16991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
16992	if err != nil {
16993		return nil, err
16994	}
16995	reqHeaders.Set("Content-Type", "application/json")
16996	c.urlParams_.Set("alt", alt)
16997	c.urlParams_.Set("prettyPrint", "false")
16998	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
16999	urls += "?" + c.urlParams_.Encode()
17000	req, err := http.NewRequest("POST", urls, body)
17001	if err != nil {
17002		return nil, err
17003	}
17004	req.Header = reqHeaders
17005	googleapi.Expand(req.URL, map[string]string{
17006		"parent": c.parent,
17007	})
17008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17009}
17010
17011// Do executes the "vision.projects.images.asyncBatchAnnotate" call.
17012// Exactly one of *Operation or error will be non-nil. Any non-2xx
17013// status code is an error. Response headers are in either
17014// *Operation.ServerResponse.Header or (if a response was returned at
17015// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17016// to check whether the returned error was because
17017// http.StatusNotModified was returned.
17018func (c *ProjectsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17019	gensupport.SetOptions(c.urlParams_, opts...)
17020	res, err := c.doRequest("json")
17021	if res != nil && res.StatusCode == http.StatusNotModified {
17022		if res.Body != nil {
17023			res.Body.Close()
17024		}
17025		return nil, &googleapi.Error{
17026			Code:   res.StatusCode,
17027			Header: res.Header,
17028		}
17029	}
17030	if err != nil {
17031		return nil, err
17032	}
17033	defer googleapi.CloseBody(res)
17034	if err := googleapi.CheckResponse(res); err != nil {
17035		return nil, err
17036	}
17037	ret := &Operation{
17038		ServerResponse: googleapi.ServerResponse{
17039			Header:         res.Header,
17040			HTTPStatusCode: res.StatusCode,
17041		},
17042	}
17043	target := &ret
17044	if err := gensupport.DecodeResponse(target, res); err != nil {
17045		return nil, err
17046	}
17047	return ret, nil
17048	// {
17049	//   "description": "Run asynchronous image detection and annotation for a list of images.\n\nProgress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results).\n\nThis service will write image annotation outputs to json files in customer\nGCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
17050	//   "flatPath": "v1/projects/{projectsId}/images:asyncBatchAnnotate",
17051	//   "httpMethod": "POST",
17052	//   "id": "vision.projects.images.asyncBatchAnnotate",
17053	//   "parameterOrder": [
17054	//     "parent"
17055	//   ],
17056	//   "parameters": {
17057	//     "parent": {
17058	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
17059	//       "location": "path",
17060	//       "pattern": "^projects/[^/]+$",
17061	//       "required": true,
17062	//       "type": "string"
17063	//     }
17064	//   },
17065	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
17066	//   "request": {
17067	//     "$ref": "AsyncBatchAnnotateImagesRequest"
17068	//   },
17069	//   "response": {
17070	//     "$ref": "Operation"
17071	//   },
17072	//   "scopes": [
17073	//     "https://www.googleapis.com/auth/cloud-platform",
17074	//     "https://www.googleapis.com/auth/cloud-vision"
17075	//   ]
17076	// }
17077
17078}
17079
17080// method id "vision.projects.locations.files.annotate":
17081
17082type ProjectsLocationsFilesAnnotateCall struct {
17083	s                         *Service
17084	parent                    string
17085	batchannotatefilesrequest *BatchAnnotateFilesRequest
17086	urlParams_                gensupport.URLParams
17087	ctx_                      context.Context
17088	header_                   http.Header
17089}
17090
17091// Annotate: Service that performs image detection and annotation for a
17092// batch of files.
17093// Now only "application/pdf", "image/tiff" and "image/gif" are
17094// supported.
17095//
17096// This service will extract at most 5 (customers can specify which 5
17097// in
17098// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
17099// each
17100// file provided and perform detection and annotation for each
17101// image
17102// extracted.
17103func (r *ProjectsLocationsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsLocationsFilesAnnotateCall {
17104	c := &ProjectsLocationsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17105	c.parent = parent
17106	c.batchannotatefilesrequest = batchannotatefilesrequest
17107	return c
17108}
17109
17110// Fields allows partial responses to be retrieved. See
17111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17112// for more information.
17113func (c *ProjectsLocationsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAnnotateCall {
17114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17115	return c
17116}
17117
17118// Context sets the context to be used in this call's Do method. Any
17119// pending HTTP request will be aborted if the provided context is
17120// canceled.
17121func (c *ProjectsLocationsFilesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAnnotateCall {
17122	c.ctx_ = ctx
17123	return c
17124}
17125
17126// Header returns an http.Header that can be modified by the caller to
17127// add HTTP headers to the request.
17128func (c *ProjectsLocationsFilesAnnotateCall) Header() http.Header {
17129	if c.header_ == nil {
17130		c.header_ = make(http.Header)
17131	}
17132	return c.header_
17133}
17134
17135func (c *ProjectsLocationsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17136	reqHeaders := make(http.Header)
17137	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17138	for k, v := range c.header_ {
17139		reqHeaders[k] = v
17140	}
17141	reqHeaders.Set("User-Agent", c.s.userAgent())
17142	var body io.Reader = nil
17143	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
17144	if err != nil {
17145		return nil, err
17146	}
17147	reqHeaders.Set("Content-Type", "application/json")
17148	c.urlParams_.Set("alt", alt)
17149	c.urlParams_.Set("prettyPrint", "false")
17150	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
17151	urls += "?" + c.urlParams_.Encode()
17152	req, err := http.NewRequest("POST", urls, body)
17153	if err != nil {
17154		return nil, err
17155	}
17156	req.Header = reqHeaders
17157	googleapi.Expand(req.URL, map[string]string{
17158		"parent": c.parent,
17159	})
17160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17161}
17162
17163// Do executes the "vision.projects.locations.files.annotate" call.
17164// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
17165// Any non-2xx status code is an error. Response headers are in either
17166// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
17167// was returned at all) in error.(*googleapi.Error).Header. Use
17168// googleapi.IsNotModified to check whether the returned error was
17169// because http.StatusNotModified was returned.
17170func (c *ProjectsLocationsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
17171	gensupport.SetOptions(c.urlParams_, opts...)
17172	res, err := c.doRequest("json")
17173	if res != nil && res.StatusCode == http.StatusNotModified {
17174		if res.Body != nil {
17175			res.Body.Close()
17176		}
17177		return nil, &googleapi.Error{
17178			Code:   res.StatusCode,
17179			Header: res.Header,
17180		}
17181	}
17182	if err != nil {
17183		return nil, err
17184	}
17185	defer googleapi.CloseBody(res)
17186	if err := googleapi.CheckResponse(res); err != nil {
17187		return nil, err
17188	}
17189	ret := &BatchAnnotateFilesResponse{
17190		ServerResponse: googleapi.ServerResponse{
17191			Header:         res.Header,
17192			HTTPStatusCode: res.StatusCode,
17193		},
17194	}
17195	target := &ret
17196	if err := gensupport.DecodeResponse(target, res); err != nil {
17197		return nil, err
17198	}
17199	return ret, nil
17200	// {
17201	//   "description": "Service that performs image detection and annotation for a batch of files.\nNow only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported.\n\nThis service will extract at most 5 (customers can specify which 5 in\nAnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each\nfile provided and perform detection and annotation for each image\nextracted.",
17202	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:annotate",
17203	//   "httpMethod": "POST",
17204	//   "id": "vision.projects.locations.files.annotate",
17205	//   "parameterOrder": [
17206	//     "parent"
17207	//   ],
17208	//   "parameters": {
17209	//     "parent": {
17210	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
17211	//       "location": "path",
17212	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17213	//       "required": true,
17214	//       "type": "string"
17215	//     }
17216	//   },
17217	//   "path": "v1/{+parent}/files:annotate",
17218	//   "request": {
17219	//     "$ref": "BatchAnnotateFilesRequest"
17220	//   },
17221	//   "response": {
17222	//     "$ref": "BatchAnnotateFilesResponse"
17223	//   },
17224	//   "scopes": [
17225	//     "https://www.googleapis.com/auth/cloud-platform",
17226	//     "https://www.googleapis.com/auth/cloud-vision"
17227	//   ]
17228	// }
17229
17230}
17231
17232// method id "vision.projects.locations.files.asyncBatchAnnotate":
17233
17234type ProjectsLocationsFilesAsyncBatchAnnotateCall struct {
17235	s                              *Service
17236	parent                         string
17237	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
17238	urlParams_                     gensupport.URLParams
17239	ctx_                           context.Context
17240	header_                        http.Header
17241}
17242
17243// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17244// for a list of generic
17245// files, such as PDF files, which may contain multiple pages and
17246// multiple
17247// images per page. Progress and results can be retrieved through
17248// the
17249// `google.longrunning.Operations` interface.
17250// `Operation.metadata` contains `OperationMetadata`
17251// (metadata).
17252// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
17253// (results).
17254func (r *ProjectsLocationsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17255	c := &ProjectsLocationsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17256	c.parent = parent
17257	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
17258	return c
17259}
17260
17261// Fields allows partial responses to be retrieved. See
17262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17263// for more information.
17264func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17266	return c
17267}
17268
17269// Context sets the context to be used in this call's Do method. Any
17270// pending HTTP request will be aborted if the provided context is
17271// canceled.
17272func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17273	c.ctx_ = ctx
17274	return c
17275}
17276
17277// Header returns an http.Header that can be modified by the caller to
17278// add HTTP headers to the request.
17279func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Header() http.Header {
17280	if c.header_ == nil {
17281		c.header_ = make(http.Header)
17282	}
17283	return c.header_
17284}
17285
17286func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17287	reqHeaders := make(http.Header)
17288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17289	for k, v := range c.header_ {
17290		reqHeaders[k] = v
17291	}
17292	reqHeaders.Set("User-Agent", c.s.userAgent())
17293	var body io.Reader = nil
17294	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
17295	if err != nil {
17296		return nil, err
17297	}
17298	reqHeaders.Set("Content-Type", "application/json")
17299	c.urlParams_.Set("alt", alt)
17300	c.urlParams_.Set("prettyPrint", "false")
17301	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
17302	urls += "?" + c.urlParams_.Encode()
17303	req, err := http.NewRequest("POST", urls, body)
17304	if err != nil {
17305		return nil, err
17306	}
17307	req.Header = reqHeaders
17308	googleapi.Expand(req.URL, map[string]string{
17309		"parent": c.parent,
17310	})
17311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17312}
17313
17314// Do executes the "vision.projects.locations.files.asyncBatchAnnotate" call.
17315// Exactly one of *Operation or error will be non-nil. Any non-2xx
17316// status code is an error. Response headers are in either
17317// *Operation.ServerResponse.Header or (if a response was returned at
17318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17319// to check whether the returned error was because
17320// http.StatusNotModified was returned.
17321func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17322	gensupport.SetOptions(c.urlParams_, opts...)
17323	res, err := c.doRequest("json")
17324	if res != nil && res.StatusCode == http.StatusNotModified {
17325		if res.Body != nil {
17326			res.Body.Close()
17327		}
17328		return nil, &googleapi.Error{
17329			Code:   res.StatusCode,
17330			Header: res.Header,
17331		}
17332	}
17333	if err != nil {
17334		return nil, err
17335	}
17336	defer googleapi.CloseBody(res)
17337	if err := googleapi.CheckResponse(res); err != nil {
17338		return nil, err
17339	}
17340	ret := &Operation{
17341		ServerResponse: googleapi.ServerResponse{
17342			Header:         res.Header,
17343			HTTPStatusCode: res.StatusCode,
17344		},
17345	}
17346	target := &ret
17347	if err := gensupport.DecodeResponse(target, res); err != nil {
17348		return nil, err
17349	}
17350	return ret, nil
17351	// {
17352	//   "description": "Run asynchronous image detection and annotation for a list of generic\nfiles, such as PDF files, which may contain multiple pages and multiple\nimages per page. Progress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).",
17353	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:asyncBatchAnnotate",
17354	//   "httpMethod": "POST",
17355	//   "id": "vision.projects.locations.files.asyncBatchAnnotate",
17356	//   "parameterOrder": [
17357	//     "parent"
17358	//   ],
17359	//   "parameters": {
17360	//     "parent": {
17361	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
17362	//       "location": "path",
17363	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17364	//       "required": true,
17365	//       "type": "string"
17366	//     }
17367	//   },
17368	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
17369	//   "request": {
17370	//     "$ref": "AsyncBatchAnnotateFilesRequest"
17371	//   },
17372	//   "response": {
17373	//     "$ref": "Operation"
17374	//   },
17375	//   "scopes": [
17376	//     "https://www.googleapis.com/auth/cloud-platform",
17377	//     "https://www.googleapis.com/auth/cloud-vision"
17378	//   ]
17379	// }
17380
17381}
17382
17383// method id "vision.projects.locations.images.annotate":
17384
17385type ProjectsLocationsImagesAnnotateCall struct {
17386	s                          *Service
17387	parent                     string
17388	batchannotateimagesrequest *BatchAnnotateImagesRequest
17389	urlParams_                 gensupport.URLParams
17390	ctx_                       context.Context
17391	header_                    http.Header
17392}
17393
17394// Annotate: Run image detection and annotation for a batch of images.
17395func (r *ProjectsLocationsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsLocationsImagesAnnotateCall {
17396	c := &ProjectsLocationsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17397	c.parent = parent
17398	c.batchannotateimagesrequest = batchannotateimagesrequest
17399	return c
17400}
17401
17402// Fields allows partial responses to be retrieved. See
17403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17404// for more information.
17405func (c *ProjectsLocationsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAnnotateCall {
17406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17407	return c
17408}
17409
17410// Context sets the context to be used in this call's Do method. Any
17411// pending HTTP request will be aborted if the provided context is
17412// canceled.
17413func (c *ProjectsLocationsImagesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAnnotateCall {
17414	c.ctx_ = ctx
17415	return c
17416}
17417
17418// Header returns an http.Header that can be modified by the caller to
17419// add HTTP headers to the request.
17420func (c *ProjectsLocationsImagesAnnotateCall) Header() http.Header {
17421	if c.header_ == nil {
17422		c.header_ = make(http.Header)
17423	}
17424	return c.header_
17425}
17426
17427func (c *ProjectsLocationsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17428	reqHeaders := make(http.Header)
17429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17430	for k, v := range c.header_ {
17431		reqHeaders[k] = v
17432	}
17433	reqHeaders.Set("User-Agent", c.s.userAgent())
17434	var body io.Reader = nil
17435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
17436	if err != nil {
17437		return nil, err
17438	}
17439	reqHeaders.Set("Content-Type", "application/json")
17440	c.urlParams_.Set("alt", alt)
17441	c.urlParams_.Set("prettyPrint", "false")
17442	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
17443	urls += "?" + c.urlParams_.Encode()
17444	req, err := http.NewRequest("POST", urls, body)
17445	if err != nil {
17446		return nil, err
17447	}
17448	req.Header = reqHeaders
17449	googleapi.Expand(req.URL, map[string]string{
17450		"parent": c.parent,
17451	})
17452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17453}
17454
17455// Do executes the "vision.projects.locations.images.annotate" call.
17456// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
17457// Any non-2xx status code is an error. Response headers are in either
17458// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
17459// was returned at all) in error.(*googleapi.Error).Header. Use
17460// googleapi.IsNotModified to check whether the returned error was
17461// because http.StatusNotModified was returned.
17462func (c *ProjectsLocationsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
17463	gensupport.SetOptions(c.urlParams_, opts...)
17464	res, err := c.doRequest("json")
17465	if res != nil && res.StatusCode == http.StatusNotModified {
17466		if res.Body != nil {
17467			res.Body.Close()
17468		}
17469		return nil, &googleapi.Error{
17470			Code:   res.StatusCode,
17471			Header: res.Header,
17472		}
17473	}
17474	if err != nil {
17475		return nil, err
17476	}
17477	defer googleapi.CloseBody(res)
17478	if err := googleapi.CheckResponse(res); err != nil {
17479		return nil, err
17480	}
17481	ret := &BatchAnnotateImagesResponse{
17482		ServerResponse: googleapi.ServerResponse{
17483			Header:         res.Header,
17484			HTTPStatusCode: res.StatusCode,
17485		},
17486	}
17487	target := &ret
17488	if err := gensupport.DecodeResponse(target, res); err != nil {
17489		return nil, err
17490	}
17491	return ret, nil
17492	// {
17493	//   "description": "Run image detection and annotation for a batch of images.",
17494	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:annotate",
17495	//   "httpMethod": "POST",
17496	//   "id": "vision.projects.locations.images.annotate",
17497	//   "parameterOrder": [
17498	//     "parent"
17499	//   ],
17500	//   "parameters": {
17501	//     "parent": {
17502	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
17503	//       "location": "path",
17504	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17505	//       "required": true,
17506	//       "type": "string"
17507	//     }
17508	//   },
17509	//   "path": "v1/{+parent}/images:annotate",
17510	//   "request": {
17511	//     "$ref": "BatchAnnotateImagesRequest"
17512	//   },
17513	//   "response": {
17514	//     "$ref": "BatchAnnotateImagesResponse"
17515	//   },
17516	//   "scopes": [
17517	//     "https://www.googleapis.com/auth/cloud-platform",
17518	//     "https://www.googleapis.com/auth/cloud-vision"
17519	//   ]
17520	// }
17521
17522}
17523
17524// method id "vision.projects.locations.images.asyncBatchAnnotate":
17525
17526type ProjectsLocationsImagesAsyncBatchAnnotateCall struct {
17527	s                               *Service
17528	parent                          string
17529	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
17530	urlParams_                      gensupport.URLParams
17531	ctx_                            context.Context
17532	header_                         http.Header
17533}
17534
17535// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17536// for a list of images.
17537//
17538// Progress and results can be retrieved through
17539// the
17540// `google.longrunning.Operations` interface.
17541// `Operation.metadata` contains `OperationMetadata`
17542// (metadata).
17543// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
17544// (results).
17545//
17546// This service will write image annotation outputs to json files in
17547// customer
17548// GCS bucket, each json file containing BatchAnnotateImagesResponse
17549// proto.
17550func (r *ProjectsLocationsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17551	c := &ProjectsLocationsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17552	c.parent = parent
17553	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
17554	return c
17555}
17556
17557// Fields allows partial responses to be retrieved. See
17558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17559// for more information.
17560func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17562	return c
17563}
17564
17565// Context sets the context to be used in this call's Do method. Any
17566// pending HTTP request will be aborted if the provided context is
17567// canceled.
17568func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17569	c.ctx_ = ctx
17570	return c
17571}
17572
17573// Header returns an http.Header that can be modified by the caller to
17574// add HTTP headers to the request.
17575func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Header() http.Header {
17576	if c.header_ == nil {
17577		c.header_ = make(http.Header)
17578	}
17579	return c.header_
17580}
17581
17582func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17583	reqHeaders := make(http.Header)
17584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17585	for k, v := range c.header_ {
17586		reqHeaders[k] = v
17587	}
17588	reqHeaders.Set("User-Agent", c.s.userAgent())
17589	var body io.Reader = nil
17590	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
17591	if err != nil {
17592		return nil, err
17593	}
17594	reqHeaders.Set("Content-Type", "application/json")
17595	c.urlParams_.Set("alt", alt)
17596	c.urlParams_.Set("prettyPrint", "false")
17597	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
17598	urls += "?" + c.urlParams_.Encode()
17599	req, err := http.NewRequest("POST", urls, body)
17600	if err != nil {
17601		return nil, err
17602	}
17603	req.Header = reqHeaders
17604	googleapi.Expand(req.URL, map[string]string{
17605		"parent": c.parent,
17606	})
17607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17608}
17609
17610// Do executes the "vision.projects.locations.images.asyncBatchAnnotate" call.
17611// Exactly one of *Operation or error will be non-nil. Any non-2xx
17612// status code is an error. Response headers are in either
17613// *Operation.ServerResponse.Header or (if a response was returned at
17614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17615// to check whether the returned error was because
17616// http.StatusNotModified was returned.
17617func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17618	gensupport.SetOptions(c.urlParams_, opts...)
17619	res, err := c.doRequest("json")
17620	if res != nil && res.StatusCode == http.StatusNotModified {
17621		if res.Body != nil {
17622			res.Body.Close()
17623		}
17624		return nil, &googleapi.Error{
17625			Code:   res.StatusCode,
17626			Header: res.Header,
17627		}
17628	}
17629	if err != nil {
17630		return nil, err
17631	}
17632	defer googleapi.CloseBody(res)
17633	if err := googleapi.CheckResponse(res); err != nil {
17634		return nil, err
17635	}
17636	ret := &Operation{
17637		ServerResponse: googleapi.ServerResponse{
17638			Header:         res.Header,
17639			HTTPStatusCode: res.StatusCode,
17640		},
17641	}
17642	target := &ret
17643	if err := gensupport.DecodeResponse(target, res); err != nil {
17644		return nil, err
17645	}
17646	return ret, nil
17647	// {
17648	//   "description": "Run asynchronous image detection and annotation for a list of images.\n\nProgress and results can be retrieved through the\n`google.longrunning.Operations` interface.\n`Operation.metadata` contains `OperationMetadata` (metadata).\n`Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results).\n\nThis service will write image annotation outputs to json files in customer\nGCS bucket, each json file containing BatchAnnotateImagesResponse proto.",
17649	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:asyncBatchAnnotate",
17650	//   "httpMethod": "POST",
17651	//   "id": "vision.projects.locations.images.asyncBatchAnnotate",
17652	//   "parameterOrder": [
17653	//     "parent"
17654	//   ],
17655	//   "parameters": {
17656	//     "parent": {
17657	//       "description": "Optional. Target project and location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nIf no parent is specified, a region will be chosen automatically.\n\nSupported location-ids:\n    `us`: USA country only,\n    `asia`: East asia areas, like Japan, Taiwan,\n    `eu`: The European Union.\n\nExample: `projects/project-A/locations/eu`.",
17658	//       "location": "path",
17659	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17660	//       "required": true,
17661	//       "type": "string"
17662	//     }
17663	//   },
17664	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
17665	//   "request": {
17666	//     "$ref": "AsyncBatchAnnotateImagesRequest"
17667	//   },
17668	//   "response": {
17669	//     "$ref": "Operation"
17670	//   },
17671	//   "scopes": [
17672	//     "https://www.googleapis.com/auth/cloud-platform",
17673	//     "https://www.googleapis.com/auth/cloud-vision"
17674	//   ]
17675	// }
17676
17677}
17678
17679// method id "vision.projects.locations.operations.get":
17680
17681type ProjectsLocationsOperationsGetCall struct {
17682	s            *Service
17683	name         string
17684	urlParams_   gensupport.URLParams
17685	ifNoneMatch_ string
17686	ctx_         context.Context
17687	header_      http.Header
17688}
17689
17690// Get: Gets the latest state of a long-running operation.  Clients can
17691// use this
17692// method to poll the operation result at intervals as recommended by
17693// the API
17694// service.
17695func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
17696	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17697	c.name = name
17698	return c
17699}
17700
17701// Fields allows partial responses to be retrieved. See
17702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17703// for more information.
17704func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
17705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17706	return c
17707}
17708
17709// IfNoneMatch sets the optional parameter which makes the operation
17710// fail if the object's ETag matches the given value. This is useful for
17711// getting updates only after the object has changed since the last
17712// request. Use googleapi.IsNotModified to check whether the response
17713// error from Do is the result of In-None-Match.
17714func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
17715	c.ifNoneMatch_ = entityTag
17716	return c
17717}
17718
17719// Context sets the context to be used in this call's Do method. Any
17720// pending HTTP request will be aborted if the provided context is
17721// canceled.
17722func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
17723	c.ctx_ = ctx
17724	return c
17725}
17726
17727// Header returns an http.Header that can be modified by the caller to
17728// add HTTP headers to the request.
17729func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
17730	if c.header_ == nil {
17731		c.header_ = make(http.Header)
17732	}
17733	return c.header_
17734}
17735
17736func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
17737	reqHeaders := make(http.Header)
17738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17739	for k, v := range c.header_ {
17740		reqHeaders[k] = v
17741	}
17742	reqHeaders.Set("User-Agent", c.s.userAgent())
17743	if c.ifNoneMatch_ != "" {
17744		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17745	}
17746	var body io.Reader = nil
17747	c.urlParams_.Set("alt", alt)
17748	c.urlParams_.Set("prettyPrint", "false")
17749	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
17750	urls += "?" + c.urlParams_.Encode()
17751	req, err := http.NewRequest("GET", urls, body)
17752	if err != nil {
17753		return nil, err
17754	}
17755	req.Header = reqHeaders
17756	googleapi.Expand(req.URL, map[string]string{
17757		"name": c.name,
17758	})
17759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17760}
17761
17762// Do executes the "vision.projects.locations.operations.get" call.
17763// Exactly one of *Operation or error will be non-nil. Any non-2xx
17764// status code is an error. Response headers are in either
17765// *Operation.ServerResponse.Header or (if a response was returned at
17766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17767// to check whether the returned error was because
17768// http.StatusNotModified was returned.
17769func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17770	gensupport.SetOptions(c.urlParams_, opts...)
17771	res, err := c.doRequest("json")
17772	if res != nil && res.StatusCode == http.StatusNotModified {
17773		if res.Body != nil {
17774			res.Body.Close()
17775		}
17776		return nil, &googleapi.Error{
17777			Code:   res.StatusCode,
17778			Header: res.Header,
17779		}
17780	}
17781	if err != nil {
17782		return nil, err
17783	}
17784	defer googleapi.CloseBody(res)
17785	if err := googleapi.CheckResponse(res); err != nil {
17786		return nil, err
17787	}
17788	ret := &Operation{
17789		ServerResponse: googleapi.ServerResponse{
17790			Header:         res.Header,
17791			HTTPStatusCode: res.StatusCode,
17792		},
17793	}
17794	target := &ret
17795	if err := gensupport.DecodeResponse(target, res); err != nil {
17796		return nil, err
17797	}
17798	return ret, nil
17799	// {
17800	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
17801	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
17802	//   "httpMethod": "GET",
17803	//   "id": "vision.projects.locations.operations.get",
17804	//   "parameterOrder": [
17805	//     "name"
17806	//   ],
17807	//   "parameters": {
17808	//     "name": {
17809	//       "description": "The name of the operation resource.",
17810	//       "location": "path",
17811	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
17812	//       "required": true,
17813	//       "type": "string"
17814	//     }
17815	//   },
17816	//   "path": "v1/{+name}",
17817	//   "response": {
17818	//     "$ref": "Operation"
17819	//   },
17820	//   "scopes": [
17821	//     "https://www.googleapis.com/auth/cloud-platform",
17822	//     "https://www.googleapis.com/auth/cloud-vision"
17823	//   ]
17824	// }
17825
17826}
17827
17828// method id "vision.projects.locations.productSets.addProduct":
17829
17830type ProjectsLocationsProductSetsAddProductCall struct {
17831	s                             *Service
17832	name                          string
17833	addproducttoproductsetrequest *AddProductToProductSetRequest
17834	urlParams_                    gensupport.URLParams
17835	ctx_                          context.Context
17836	header_                       http.Header
17837}
17838
17839// AddProduct: Adds a Product to the specified ProductSet. If the
17840// Product is already
17841// present, no change is made.
17842//
17843// One Product can be added to at most 100 ProductSets.
17844//
17845// Possible errors:
17846//
17847// * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
17848func (r *ProjectsLocationsProductSetsService) AddProduct(name string, addproducttoproductsetrequest *AddProductToProductSetRequest) *ProjectsLocationsProductSetsAddProductCall {
17849	c := &ProjectsLocationsProductSetsAddProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17850	c.name = name
17851	c.addproducttoproductsetrequest = addproducttoproductsetrequest
17852	return c
17853}
17854
17855// Fields allows partial responses to be retrieved. See
17856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17857// for more information.
17858func (c *ProjectsLocationsProductSetsAddProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsAddProductCall {
17859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17860	return c
17861}
17862
17863// Context sets the context to be used in this call's Do method. Any
17864// pending HTTP request will be aborted if the provided context is
17865// canceled.
17866func (c *ProjectsLocationsProductSetsAddProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsAddProductCall {
17867	c.ctx_ = ctx
17868	return c
17869}
17870
17871// Header returns an http.Header that can be modified by the caller to
17872// add HTTP headers to the request.
17873func (c *ProjectsLocationsProductSetsAddProductCall) Header() http.Header {
17874	if c.header_ == nil {
17875		c.header_ = make(http.Header)
17876	}
17877	return c.header_
17878}
17879
17880func (c *ProjectsLocationsProductSetsAddProductCall) doRequest(alt string) (*http.Response, error) {
17881	reqHeaders := make(http.Header)
17882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
17883	for k, v := range c.header_ {
17884		reqHeaders[k] = v
17885	}
17886	reqHeaders.Set("User-Agent", c.s.userAgent())
17887	var body io.Reader = nil
17888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addproducttoproductsetrequest)
17889	if err != nil {
17890		return nil, err
17891	}
17892	reqHeaders.Set("Content-Type", "application/json")
17893	c.urlParams_.Set("alt", alt)
17894	c.urlParams_.Set("prettyPrint", "false")
17895	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:addProduct")
17896	urls += "?" + c.urlParams_.Encode()
17897	req, err := http.NewRequest("POST", urls, body)
17898	if err != nil {
17899		return nil, err
17900	}
17901	req.Header = reqHeaders
17902	googleapi.Expand(req.URL, map[string]string{
17903		"name": c.name,
17904	})
17905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17906}
17907
17908// Do executes the "vision.projects.locations.productSets.addProduct" call.
17909// Exactly one of *Empty or error will be non-nil. Any non-2xx status
17910// code is an error. Response headers are in either
17911// *Empty.ServerResponse.Header or (if a response was returned at all)
17912// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17913// check whether the returned error was because http.StatusNotModified
17914// was returned.
17915func (c *ProjectsLocationsProductSetsAddProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
17916	gensupport.SetOptions(c.urlParams_, opts...)
17917	res, err := c.doRequest("json")
17918	if res != nil && res.StatusCode == http.StatusNotModified {
17919		if res.Body != nil {
17920			res.Body.Close()
17921		}
17922		return nil, &googleapi.Error{
17923			Code:   res.StatusCode,
17924			Header: res.Header,
17925		}
17926	}
17927	if err != nil {
17928		return nil, err
17929	}
17930	defer googleapi.CloseBody(res)
17931	if err := googleapi.CheckResponse(res); err != nil {
17932		return nil, err
17933	}
17934	ret := &Empty{
17935		ServerResponse: googleapi.ServerResponse{
17936			Header:         res.Header,
17937			HTTPStatusCode: res.StatusCode,
17938		},
17939	}
17940	target := &ret
17941	if err := gensupport.DecodeResponse(target, res); err != nil {
17942		return nil, err
17943	}
17944	return ret, nil
17945	// {
17946	//   "description": "Adds a Product to the specified ProductSet. If the Product is already\npresent, no change is made.\n\nOne Product can be added to at most 100 ProductSets.\n\nPossible errors:\n\n* Returns NOT_FOUND if the Product or the ProductSet doesn't exist.",
17947	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:addProduct",
17948	//   "httpMethod": "POST",
17949	//   "id": "vision.projects.locations.productSets.addProduct",
17950	//   "parameterOrder": [
17951	//     "name"
17952	//   ],
17953	//   "parameters": {
17954	//     "name": {
17955	//       "description": "Required. The resource name for the ProductSet to modify.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
17956	//       "location": "path",
17957	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17958	//       "required": true,
17959	//       "type": "string"
17960	//     }
17961	//   },
17962	//   "path": "v1/{+name}:addProduct",
17963	//   "request": {
17964	//     "$ref": "AddProductToProductSetRequest"
17965	//   },
17966	//   "response": {
17967	//     "$ref": "Empty"
17968	//   },
17969	//   "scopes": [
17970	//     "https://www.googleapis.com/auth/cloud-platform",
17971	//     "https://www.googleapis.com/auth/cloud-vision"
17972	//   ]
17973	// }
17974
17975}
17976
17977// method id "vision.projects.locations.productSets.create":
17978
17979type ProjectsLocationsProductSetsCreateCall struct {
17980	s          *Service
17981	parent     string
17982	productset *ProductSet
17983	urlParams_ gensupport.URLParams
17984	ctx_       context.Context
17985	header_    http.Header
17986}
17987
17988// Create: Creates and returns a new ProductSet resource.
17989//
17990// Possible errors:
17991//
17992// * Returns INVALID_ARGUMENT if display_name is missing, or is longer
17993// than
17994//   4096 characters.
17995func (r *ProjectsLocationsProductSetsService) Create(parent string, productset *ProductSet) *ProjectsLocationsProductSetsCreateCall {
17996	c := &ProjectsLocationsProductSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17997	c.parent = parent
17998	c.productset = productset
17999	return c
18000}
18001
18002// ProductSetId sets the optional parameter "productSetId": A
18003// user-supplied resource id for this ProductSet. If set, the server
18004// will
18005// attempt to use this value as the resource id. If it is already in
18006// use, an
18007// error is returned with code ALREADY_EXISTS. Must be at most 128
18008// characters
18009// long. It cannot contain the character `/`.
18010func (c *ProjectsLocationsProductSetsCreateCall) ProductSetId(productSetId string) *ProjectsLocationsProductSetsCreateCall {
18011	c.urlParams_.Set("productSetId", productSetId)
18012	return c
18013}
18014
18015// Fields allows partial responses to be retrieved. See
18016// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18017// for more information.
18018func (c *ProjectsLocationsProductSetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsCreateCall {
18019	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18020	return c
18021}
18022
18023// Context sets the context to be used in this call's Do method. Any
18024// pending HTTP request will be aborted if the provided context is
18025// canceled.
18026func (c *ProjectsLocationsProductSetsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductSetsCreateCall {
18027	c.ctx_ = ctx
18028	return c
18029}
18030
18031// Header returns an http.Header that can be modified by the caller to
18032// add HTTP headers to the request.
18033func (c *ProjectsLocationsProductSetsCreateCall) Header() http.Header {
18034	if c.header_ == nil {
18035		c.header_ = make(http.Header)
18036	}
18037	return c.header_
18038}
18039
18040func (c *ProjectsLocationsProductSetsCreateCall) doRequest(alt string) (*http.Response, error) {
18041	reqHeaders := make(http.Header)
18042	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18043	for k, v := range c.header_ {
18044		reqHeaders[k] = v
18045	}
18046	reqHeaders.Set("User-Agent", c.s.userAgent())
18047	var body io.Reader = nil
18048	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
18049	if err != nil {
18050		return nil, err
18051	}
18052	reqHeaders.Set("Content-Type", "application/json")
18053	c.urlParams_.Set("alt", alt)
18054	c.urlParams_.Set("prettyPrint", "false")
18055	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
18056	urls += "?" + c.urlParams_.Encode()
18057	req, err := http.NewRequest("POST", urls, body)
18058	if err != nil {
18059		return nil, err
18060	}
18061	req.Header = reqHeaders
18062	googleapi.Expand(req.URL, map[string]string{
18063		"parent": c.parent,
18064	})
18065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18066}
18067
18068// Do executes the "vision.projects.locations.productSets.create" call.
18069// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18070// status code is an error. Response headers are in either
18071// *ProductSet.ServerResponse.Header or (if a response was returned at
18072// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18073// to check whether the returned error was because
18074// http.StatusNotModified was returned.
18075func (c *ProjectsLocationsProductSetsCreateCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18076	gensupport.SetOptions(c.urlParams_, opts...)
18077	res, err := c.doRequest("json")
18078	if res != nil && res.StatusCode == http.StatusNotModified {
18079		if res.Body != nil {
18080			res.Body.Close()
18081		}
18082		return nil, &googleapi.Error{
18083			Code:   res.StatusCode,
18084			Header: res.Header,
18085		}
18086	}
18087	if err != nil {
18088		return nil, err
18089	}
18090	defer googleapi.CloseBody(res)
18091	if err := googleapi.CheckResponse(res); err != nil {
18092		return nil, err
18093	}
18094	ret := &ProductSet{
18095		ServerResponse: googleapi.ServerResponse{
18096			Header:         res.Header,
18097			HTTPStatusCode: res.StatusCode,
18098		},
18099	}
18100	target := &ret
18101	if err := gensupport.DecodeResponse(target, res); err != nil {
18102		return nil, err
18103	}
18104	return ret, nil
18105	// {
18106	//   "description": "Creates and returns a new ProductSet resource.\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if display_name is missing, or is longer than\n  4096 characters.",
18107	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
18108	//   "httpMethod": "POST",
18109	//   "id": "vision.projects.locations.productSets.create",
18110	//   "parameterOrder": [
18111	//     "parent"
18112	//   ],
18113	//   "parameters": {
18114	//     "parent": {
18115	//       "description": "Required. The project in which the ProductSet should be created.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18116	//       "location": "path",
18117	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18118	//       "required": true,
18119	//       "type": "string"
18120	//     },
18121	//     "productSetId": {
18122	//       "description": "A user-supplied resource id for this ProductSet. If set, the server will\nattempt to use this value as the resource id. If it is already in use, an\nerror is returned with code ALREADY_EXISTS. Must be at most 128 characters\nlong. It cannot contain the character `/`.",
18123	//       "location": "query",
18124	//       "type": "string"
18125	//     }
18126	//   },
18127	//   "path": "v1/{+parent}/productSets",
18128	//   "request": {
18129	//     "$ref": "ProductSet"
18130	//   },
18131	//   "response": {
18132	//     "$ref": "ProductSet"
18133	//   },
18134	//   "scopes": [
18135	//     "https://www.googleapis.com/auth/cloud-platform",
18136	//     "https://www.googleapis.com/auth/cloud-vision"
18137	//   ]
18138	// }
18139
18140}
18141
18142// method id "vision.projects.locations.productSets.delete":
18143
18144type ProjectsLocationsProductSetsDeleteCall struct {
18145	s          *Service
18146	name       string
18147	urlParams_ gensupport.URLParams
18148	ctx_       context.Context
18149	header_    http.Header
18150}
18151
18152// Delete: Permanently deletes a ProductSet. Products and
18153// ReferenceImages in the
18154// ProductSet are not deleted.
18155//
18156// The actual image files are not deleted from Google Cloud Storage.
18157func (r *ProjectsLocationsProductSetsService) Delete(name string) *ProjectsLocationsProductSetsDeleteCall {
18158	c := &ProjectsLocationsProductSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18159	c.name = name
18160	return c
18161}
18162
18163// Fields allows partial responses to be retrieved. See
18164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18165// for more information.
18166func (c *ProjectsLocationsProductSetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsDeleteCall {
18167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18168	return c
18169}
18170
18171// Context sets the context to be used in this call's Do method. Any
18172// pending HTTP request will be aborted if the provided context is
18173// canceled.
18174func (c *ProjectsLocationsProductSetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductSetsDeleteCall {
18175	c.ctx_ = ctx
18176	return c
18177}
18178
18179// Header returns an http.Header that can be modified by the caller to
18180// add HTTP headers to the request.
18181func (c *ProjectsLocationsProductSetsDeleteCall) Header() http.Header {
18182	if c.header_ == nil {
18183		c.header_ = make(http.Header)
18184	}
18185	return c.header_
18186}
18187
18188func (c *ProjectsLocationsProductSetsDeleteCall) doRequest(alt string) (*http.Response, error) {
18189	reqHeaders := make(http.Header)
18190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18191	for k, v := range c.header_ {
18192		reqHeaders[k] = v
18193	}
18194	reqHeaders.Set("User-Agent", c.s.userAgent())
18195	var body io.Reader = nil
18196	c.urlParams_.Set("alt", alt)
18197	c.urlParams_.Set("prettyPrint", "false")
18198	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18199	urls += "?" + c.urlParams_.Encode()
18200	req, err := http.NewRequest("DELETE", urls, body)
18201	if err != nil {
18202		return nil, err
18203	}
18204	req.Header = reqHeaders
18205	googleapi.Expand(req.URL, map[string]string{
18206		"name": c.name,
18207	})
18208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18209}
18210
18211// Do executes the "vision.projects.locations.productSets.delete" call.
18212// Exactly one of *Empty or error will be non-nil. Any non-2xx status
18213// code is an error. Response headers are in either
18214// *Empty.ServerResponse.Header or (if a response was returned at all)
18215// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18216// check whether the returned error was because http.StatusNotModified
18217// was returned.
18218func (c *ProjectsLocationsProductSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
18219	gensupport.SetOptions(c.urlParams_, opts...)
18220	res, err := c.doRequest("json")
18221	if res != nil && res.StatusCode == http.StatusNotModified {
18222		if res.Body != nil {
18223			res.Body.Close()
18224		}
18225		return nil, &googleapi.Error{
18226			Code:   res.StatusCode,
18227			Header: res.Header,
18228		}
18229	}
18230	if err != nil {
18231		return nil, err
18232	}
18233	defer googleapi.CloseBody(res)
18234	if err := googleapi.CheckResponse(res); err != nil {
18235		return nil, err
18236	}
18237	ret := &Empty{
18238		ServerResponse: googleapi.ServerResponse{
18239			Header:         res.Header,
18240			HTTPStatusCode: res.StatusCode,
18241		},
18242	}
18243	target := &ret
18244	if err := gensupport.DecodeResponse(target, res); err != nil {
18245		return nil, err
18246	}
18247	return ret, nil
18248	// {
18249	//   "description": "Permanently deletes a ProductSet. Products and ReferenceImages in the\nProductSet are not deleted.\n\nThe actual image files are not deleted from Google Cloud Storage.",
18250	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18251	//   "httpMethod": "DELETE",
18252	//   "id": "vision.projects.locations.productSets.delete",
18253	//   "parameterOrder": [
18254	//     "name"
18255	//   ],
18256	//   "parameters": {
18257	//     "name": {
18258	//       "description": "Required. Resource name of the ProductSet to delete.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
18259	//       "location": "path",
18260	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18261	//       "required": true,
18262	//       "type": "string"
18263	//     }
18264	//   },
18265	//   "path": "v1/{+name}",
18266	//   "response": {
18267	//     "$ref": "Empty"
18268	//   },
18269	//   "scopes": [
18270	//     "https://www.googleapis.com/auth/cloud-platform",
18271	//     "https://www.googleapis.com/auth/cloud-vision"
18272	//   ]
18273	// }
18274
18275}
18276
18277// method id "vision.projects.locations.productSets.get":
18278
18279type ProjectsLocationsProductSetsGetCall struct {
18280	s            *Service
18281	name         string
18282	urlParams_   gensupport.URLParams
18283	ifNoneMatch_ string
18284	ctx_         context.Context
18285	header_      http.Header
18286}
18287
18288// Get: Gets information associated with a ProductSet.
18289//
18290// Possible errors:
18291//
18292// * Returns NOT_FOUND if the ProductSet does not exist.
18293func (r *ProjectsLocationsProductSetsService) Get(name string) *ProjectsLocationsProductSetsGetCall {
18294	c := &ProjectsLocationsProductSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18295	c.name = name
18296	return c
18297}
18298
18299// Fields allows partial responses to be retrieved. See
18300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18301// for more information.
18302func (c *ProjectsLocationsProductSetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsGetCall {
18303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18304	return c
18305}
18306
18307// IfNoneMatch sets the optional parameter which makes the operation
18308// fail if the object's ETag matches the given value. This is useful for
18309// getting updates only after the object has changed since the last
18310// request. Use googleapi.IsNotModified to check whether the response
18311// error from Do is the result of In-None-Match.
18312func (c *ProjectsLocationsProductSetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsGetCall {
18313	c.ifNoneMatch_ = entityTag
18314	return c
18315}
18316
18317// Context sets the context to be used in this call's Do method. Any
18318// pending HTTP request will be aborted if the provided context is
18319// canceled.
18320func (c *ProjectsLocationsProductSetsGetCall) Context(ctx context.Context) *ProjectsLocationsProductSetsGetCall {
18321	c.ctx_ = ctx
18322	return c
18323}
18324
18325// Header returns an http.Header that can be modified by the caller to
18326// add HTTP headers to the request.
18327func (c *ProjectsLocationsProductSetsGetCall) Header() http.Header {
18328	if c.header_ == nil {
18329		c.header_ = make(http.Header)
18330	}
18331	return c.header_
18332}
18333
18334func (c *ProjectsLocationsProductSetsGetCall) doRequest(alt string) (*http.Response, error) {
18335	reqHeaders := make(http.Header)
18336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18337	for k, v := range c.header_ {
18338		reqHeaders[k] = v
18339	}
18340	reqHeaders.Set("User-Agent", c.s.userAgent())
18341	if c.ifNoneMatch_ != "" {
18342		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18343	}
18344	var body io.Reader = nil
18345	c.urlParams_.Set("alt", alt)
18346	c.urlParams_.Set("prettyPrint", "false")
18347	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18348	urls += "?" + c.urlParams_.Encode()
18349	req, err := http.NewRequest("GET", urls, body)
18350	if err != nil {
18351		return nil, err
18352	}
18353	req.Header = reqHeaders
18354	googleapi.Expand(req.URL, map[string]string{
18355		"name": c.name,
18356	})
18357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18358}
18359
18360// Do executes the "vision.projects.locations.productSets.get" call.
18361// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18362// status code is an error. Response headers are in either
18363// *ProductSet.ServerResponse.Header or (if a response was returned at
18364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18365// to check whether the returned error was because
18366// http.StatusNotModified was returned.
18367func (c *ProjectsLocationsProductSetsGetCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18368	gensupport.SetOptions(c.urlParams_, opts...)
18369	res, err := c.doRequest("json")
18370	if res != nil && res.StatusCode == http.StatusNotModified {
18371		if res.Body != nil {
18372			res.Body.Close()
18373		}
18374		return nil, &googleapi.Error{
18375			Code:   res.StatusCode,
18376			Header: res.Header,
18377		}
18378	}
18379	if err != nil {
18380		return nil, err
18381	}
18382	defer googleapi.CloseBody(res)
18383	if err := googleapi.CheckResponse(res); err != nil {
18384		return nil, err
18385	}
18386	ret := &ProductSet{
18387		ServerResponse: googleapi.ServerResponse{
18388			Header:         res.Header,
18389			HTTPStatusCode: res.StatusCode,
18390		},
18391	}
18392	target := &ret
18393	if err := gensupport.DecodeResponse(target, res); err != nil {
18394		return nil, err
18395	}
18396	return ret, nil
18397	// {
18398	//   "description": "Gets information associated with a ProductSet.\n\nPossible errors:\n\n* Returns NOT_FOUND if the ProductSet does not exist.",
18399	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18400	//   "httpMethod": "GET",
18401	//   "id": "vision.projects.locations.productSets.get",
18402	//   "parameterOrder": [
18403	//     "name"
18404	//   ],
18405	//   "parameters": {
18406	//     "name": {
18407	//       "description": "Required. Resource name of the ProductSet to get.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
18408	//       "location": "path",
18409	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18410	//       "required": true,
18411	//       "type": "string"
18412	//     }
18413	//   },
18414	//   "path": "v1/{+name}",
18415	//   "response": {
18416	//     "$ref": "ProductSet"
18417	//   },
18418	//   "scopes": [
18419	//     "https://www.googleapis.com/auth/cloud-platform",
18420	//     "https://www.googleapis.com/auth/cloud-vision"
18421	//   ]
18422	// }
18423
18424}
18425
18426// method id "vision.projects.locations.productSets.import":
18427
18428type ProjectsLocationsProductSetsImportCall struct {
18429	s                        *Service
18430	parent                   string
18431	importproductsetsrequest *ImportProductSetsRequest
18432	urlParams_               gensupport.URLParams
18433	ctx_                     context.Context
18434	header_                  http.Header
18435}
18436
18437// Import: Asynchronous API that imports a list of reference images to
18438// specified
18439// product sets based on a list of image information.
18440//
18441// The google.longrunning.Operation API can be used to keep track of
18442// the
18443// progress and results of the request.
18444// `Operation.metadata` contains `BatchOperationMetadata`.
18445// (progress)
18446// `Operation.response` contains `ImportProductSetsResponse`.
18447// (results)
18448//
18449// The input source of this method is a csv file on Google Cloud
18450// Storage.
18451// For the format of the csv file please
18452// see
18453// ImportProductSetsGcsSource.csv_file_uri.
18454func (r *ProjectsLocationsProductSetsService) Import(parent string, importproductsetsrequest *ImportProductSetsRequest) *ProjectsLocationsProductSetsImportCall {
18455	c := &ProjectsLocationsProductSetsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18456	c.parent = parent
18457	c.importproductsetsrequest = importproductsetsrequest
18458	return c
18459}
18460
18461// Fields allows partial responses to be retrieved. See
18462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18463// for more information.
18464func (c *ProjectsLocationsProductSetsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsImportCall {
18465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18466	return c
18467}
18468
18469// Context sets the context to be used in this call's Do method. Any
18470// pending HTTP request will be aborted if the provided context is
18471// canceled.
18472func (c *ProjectsLocationsProductSetsImportCall) Context(ctx context.Context) *ProjectsLocationsProductSetsImportCall {
18473	c.ctx_ = ctx
18474	return c
18475}
18476
18477// Header returns an http.Header that can be modified by the caller to
18478// add HTTP headers to the request.
18479func (c *ProjectsLocationsProductSetsImportCall) Header() http.Header {
18480	if c.header_ == nil {
18481		c.header_ = make(http.Header)
18482	}
18483	return c.header_
18484}
18485
18486func (c *ProjectsLocationsProductSetsImportCall) doRequest(alt string) (*http.Response, error) {
18487	reqHeaders := make(http.Header)
18488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18489	for k, v := range c.header_ {
18490		reqHeaders[k] = v
18491	}
18492	reqHeaders.Set("User-Agent", c.s.userAgent())
18493	var body io.Reader = nil
18494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.importproductsetsrequest)
18495	if err != nil {
18496		return nil, err
18497	}
18498	reqHeaders.Set("Content-Type", "application/json")
18499	c.urlParams_.Set("alt", alt)
18500	c.urlParams_.Set("prettyPrint", "false")
18501	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets:import")
18502	urls += "?" + c.urlParams_.Encode()
18503	req, err := http.NewRequest("POST", urls, body)
18504	if err != nil {
18505		return nil, err
18506	}
18507	req.Header = reqHeaders
18508	googleapi.Expand(req.URL, map[string]string{
18509		"parent": c.parent,
18510	})
18511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18512}
18513
18514// Do executes the "vision.projects.locations.productSets.import" call.
18515// Exactly one of *Operation or error will be non-nil. Any non-2xx
18516// status code is an error. Response headers are in either
18517// *Operation.ServerResponse.Header or (if a response was returned at
18518// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18519// to check whether the returned error was because
18520// http.StatusNotModified was returned.
18521func (c *ProjectsLocationsProductSetsImportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
18522	gensupport.SetOptions(c.urlParams_, opts...)
18523	res, err := c.doRequest("json")
18524	if res != nil && res.StatusCode == http.StatusNotModified {
18525		if res.Body != nil {
18526			res.Body.Close()
18527		}
18528		return nil, &googleapi.Error{
18529			Code:   res.StatusCode,
18530			Header: res.Header,
18531		}
18532	}
18533	if err != nil {
18534		return nil, err
18535	}
18536	defer googleapi.CloseBody(res)
18537	if err := googleapi.CheckResponse(res); err != nil {
18538		return nil, err
18539	}
18540	ret := &Operation{
18541		ServerResponse: googleapi.ServerResponse{
18542			Header:         res.Header,
18543			HTTPStatusCode: res.StatusCode,
18544		},
18545	}
18546	target := &ret
18547	if err := gensupport.DecodeResponse(target, res); err != nil {
18548		return nil, err
18549	}
18550	return ret, nil
18551	// {
18552	//   "description": "Asynchronous API that imports a list of reference images to specified\nproduct sets based on a list of image information.\n\nThe google.longrunning.Operation API can be used to keep track of the\nprogress and results of the request.\n`Operation.metadata` contains `BatchOperationMetadata`. (progress)\n`Operation.response` contains `ImportProductSetsResponse`. (results)\n\nThe input source of this method is a csv file on Google Cloud Storage.\nFor the format of the csv file please see\nImportProductSetsGcsSource.csv_file_uri.",
18553	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets:import",
18554	//   "httpMethod": "POST",
18555	//   "id": "vision.projects.locations.productSets.import",
18556	//   "parameterOrder": [
18557	//     "parent"
18558	//   ],
18559	//   "parameters": {
18560	//     "parent": {
18561	//       "description": "Required. The project in which the ProductSets should be imported.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18562	//       "location": "path",
18563	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18564	//       "required": true,
18565	//       "type": "string"
18566	//     }
18567	//   },
18568	//   "path": "v1/{+parent}/productSets:import",
18569	//   "request": {
18570	//     "$ref": "ImportProductSetsRequest"
18571	//   },
18572	//   "response": {
18573	//     "$ref": "Operation"
18574	//   },
18575	//   "scopes": [
18576	//     "https://www.googleapis.com/auth/cloud-platform",
18577	//     "https://www.googleapis.com/auth/cloud-vision"
18578	//   ]
18579	// }
18580
18581}
18582
18583// method id "vision.projects.locations.productSets.list":
18584
18585type ProjectsLocationsProductSetsListCall struct {
18586	s            *Service
18587	parent       string
18588	urlParams_   gensupport.URLParams
18589	ifNoneMatch_ string
18590	ctx_         context.Context
18591	header_      http.Header
18592}
18593
18594// List: Lists ProductSets in an unspecified order.
18595//
18596// Possible errors:
18597//
18598// * Returns INVALID_ARGUMENT if page_size is greater than 100, or less
18599//   than 1.
18600func (r *ProjectsLocationsProductSetsService) List(parent string) *ProjectsLocationsProductSetsListCall {
18601	c := &ProjectsLocationsProductSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18602	c.parent = parent
18603	return c
18604}
18605
18606// PageSize sets the optional parameter "pageSize": The maximum number
18607// of items to return. Default 10, maximum 100.
18608func (c *ProjectsLocationsProductSetsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsListCall {
18609	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
18610	return c
18611}
18612
18613// PageToken sets the optional parameter "pageToken": The
18614// next_page_token returned from a previous List request, if any.
18615func (c *ProjectsLocationsProductSetsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsListCall {
18616	c.urlParams_.Set("pageToken", pageToken)
18617	return c
18618}
18619
18620// Fields allows partial responses to be retrieved. See
18621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18622// for more information.
18623func (c *ProjectsLocationsProductSetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsListCall {
18624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18625	return c
18626}
18627
18628// IfNoneMatch sets the optional parameter which makes the operation
18629// fail if the object's ETag matches the given value. This is useful for
18630// getting updates only after the object has changed since the last
18631// request. Use googleapi.IsNotModified to check whether the response
18632// error from Do is the result of In-None-Match.
18633func (c *ProjectsLocationsProductSetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsListCall {
18634	c.ifNoneMatch_ = entityTag
18635	return c
18636}
18637
18638// Context sets the context to be used in this call's Do method. Any
18639// pending HTTP request will be aborted if the provided context is
18640// canceled.
18641func (c *ProjectsLocationsProductSetsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsListCall {
18642	c.ctx_ = ctx
18643	return c
18644}
18645
18646// Header returns an http.Header that can be modified by the caller to
18647// add HTTP headers to the request.
18648func (c *ProjectsLocationsProductSetsListCall) Header() http.Header {
18649	if c.header_ == nil {
18650		c.header_ = make(http.Header)
18651	}
18652	return c.header_
18653}
18654
18655func (c *ProjectsLocationsProductSetsListCall) doRequest(alt string) (*http.Response, error) {
18656	reqHeaders := make(http.Header)
18657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18658	for k, v := range c.header_ {
18659		reqHeaders[k] = v
18660	}
18661	reqHeaders.Set("User-Agent", c.s.userAgent())
18662	if c.ifNoneMatch_ != "" {
18663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18664	}
18665	var body io.Reader = nil
18666	c.urlParams_.Set("alt", alt)
18667	c.urlParams_.Set("prettyPrint", "false")
18668	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
18669	urls += "?" + c.urlParams_.Encode()
18670	req, err := http.NewRequest("GET", urls, body)
18671	if err != nil {
18672		return nil, err
18673	}
18674	req.Header = reqHeaders
18675	googleapi.Expand(req.URL, map[string]string{
18676		"parent": c.parent,
18677	})
18678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18679}
18680
18681// Do executes the "vision.projects.locations.productSets.list" call.
18682// Exactly one of *ListProductSetsResponse or error will be non-nil. Any
18683// non-2xx status code is an error. Response headers are in either
18684// *ListProductSetsResponse.ServerResponse.Header or (if a response was
18685// returned at all) in error.(*googleapi.Error).Header. Use
18686// googleapi.IsNotModified to check whether the returned error was
18687// because http.StatusNotModified was returned.
18688func (c *ProjectsLocationsProductSetsListCall) Do(opts ...googleapi.CallOption) (*ListProductSetsResponse, error) {
18689	gensupport.SetOptions(c.urlParams_, opts...)
18690	res, err := c.doRequest("json")
18691	if res != nil && res.StatusCode == http.StatusNotModified {
18692		if res.Body != nil {
18693			res.Body.Close()
18694		}
18695		return nil, &googleapi.Error{
18696			Code:   res.StatusCode,
18697			Header: res.Header,
18698		}
18699	}
18700	if err != nil {
18701		return nil, err
18702	}
18703	defer googleapi.CloseBody(res)
18704	if err := googleapi.CheckResponse(res); err != nil {
18705		return nil, err
18706	}
18707	ret := &ListProductSetsResponse{
18708		ServerResponse: googleapi.ServerResponse{
18709			Header:         res.Header,
18710			HTTPStatusCode: res.StatusCode,
18711		},
18712	}
18713	target := &ret
18714	if err := gensupport.DecodeResponse(target, res); err != nil {
18715		return nil, err
18716	}
18717	return ret, nil
18718	// {
18719	//   "description": "Lists ProductSets in an unspecified order.\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if page_size is greater than 100, or less\n  than 1.",
18720	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
18721	//   "httpMethod": "GET",
18722	//   "id": "vision.projects.locations.productSets.list",
18723	//   "parameterOrder": [
18724	//     "parent"
18725	//   ],
18726	//   "parameters": {
18727	//     "pageSize": {
18728	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
18729	//       "format": "int32",
18730	//       "location": "query",
18731	//       "type": "integer"
18732	//     },
18733	//     "pageToken": {
18734	//       "description": "The next_page_token returned from a previous List request, if any.",
18735	//       "location": "query",
18736	//       "type": "string"
18737	//     },
18738	//     "parent": {
18739	//       "description": "Required. The project from which ProductSets should be listed.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18740	//       "location": "path",
18741	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18742	//       "required": true,
18743	//       "type": "string"
18744	//     }
18745	//   },
18746	//   "path": "v1/{+parent}/productSets",
18747	//   "response": {
18748	//     "$ref": "ListProductSetsResponse"
18749	//   },
18750	//   "scopes": [
18751	//     "https://www.googleapis.com/auth/cloud-platform",
18752	//     "https://www.googleapis.com/auth/cloud-vision"
18753	//   ]
18754	// }
18755
18756}
18757
18758// Pages invokes f for each page of results.
18759// A non-nil error returned from f will halt the iteration.
18760// The provided context supersedes any context provided to the Context method.
18761func (c *ProjectsLocationsProductSetsListCall) Pages(ctx context.Context, f func(*ListProductSetsResponse) error) error {
18762	c.ctx_ = ctx
18763	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18764	for {
18765		x, err := c.Do()
18766		if err != nil {
18767			return err
18768		}
18769		if err := f(x); err != nil {
18770			return err
18771		}
18772		if x.NextPageToken == "" {
18773			return nil
18774		}
18775		c.PageToken(x.NextPageToken)
18776	}
18777}
18778
18779// method id "vision.projects.locations.productSets.patch":
18780
18781type ProjectsLocationsProductSetsPatchCall struct {
18782	s          *Service
18783	name       string
18784	productset *ProductSet
18785	urlParams_ gensupport.URLParams
18786	ctx_       context.Context
18787	header_    http.Header
18788}
18789
18790// Patch: Makes changes to a ProductSet resource.
18791// Only display_name can be updated currently.
18792//
18793// Possible errors:
18794//
18795// * Returns NOT_FOUND if the ProductSet does not exist.
18796// * Returns INVALID_ARGUMENT if display_name is present in update_mask
18797// but
18798//   missing from the request or longer than 4096 characters.
18799func (r *ProjectsLocationsProductSetsService) Patch(name string, productset *ProductSet) *ProjectsLocationsProductSetsPatchCall {
18800	c := &ProjectsLocationsProductSetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18801	c.name = name
18802	c.productset = productset
18803	return c
18804}
18805
18806// UpdateMask sets the optional parameter "updateMask": The FieldMask
18807// that specifies which fields to
18808// update.
18809// If update_mask isn't specified, all mutable fields are to be
18810// updated.
18811// Valid mask path is `display_name`.
18812func (c *ProjectsLocationsProductSetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductSetsPatchCall {
18813	c.urlParams_.Set("updateMask", updateMask)
18814	return c
18815}
18816
18817// Fields allows partial responses to be retrieved. See
18818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18819// for more information.
18820func (c *ProjectsLocationsProductSetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsPatchCall {
18821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18822	return c
18823}
18824
18825// Context sets the context to be used in this call's Do method. Any
18826// pending HTTP request will be aborted if the provided context is
18827// canceled.
18828func (c *ProjectsLocationsProductSetsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductSetsPatchCall {
18829	c.ctx_ = ctx
18830	return c
18831}
18832
18833// Header returns an http.Header that can be modified by the caller to
18834// add HTTP headers to the request.
18835func (c *ProjectsLocationsProductSetsPatchCall) Header() http.Header {
18836	if c.header_ == nil {
18837		c.header_ = make(http.Header)
18838	}
18839	return c.header_
18840}
18841
18842func (c *ProjectsLocationsProductSetsPatchCall) doRequest(alt string) (*http.Response, error) {
18843	reqHeaders := make(http.Header)
18844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18845	for k, v := range c.header_ {
18846		reqHeaders[k] = v
18847	}
18848	reqHeaders.Set("User-Agent", c.s.userAgent())
18849	var body io.Reader = nil
18850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
18851	if err != nil {
18852		return nil, err
18853	}
18854	reqHeaders.Set("Content-Type", "application/json")
18855	c.urlParams_.Set("alt", alt)
18856	c.urlParams_.Set("prettyPrint", "false")
18857	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18858	urls += "?" + c.urlParams_.Encode()
18859	req, err := http.NewRequest("PATCH", urls, body)
18860	if err != nil {
18861		return nil, err
18862	}
18863	req.Header = reqHeaders
18864	googleapi.Expand(req.URL, map[string]string{
18865		"name": c.name,
18866	})
18867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18868}
18869
18870// Do executes the "vision.projects.locations.productSets.patch" call.
18871// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18872// status code is an error. Response headers are in either
18873// *ProductSet.ServerResponse.Header or (if a response was returned at
18874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18875// to check whether the returned error was because
18876// http.StatusNotModified was returned.
18877func (c *ProjectsLocationsProductSetsPatchCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18878	gensupport.SetOptions(c.urlParams_, opts...)
18879	res, err := c.doRequest("json")
18880	if res != nil && res.StatusCode == http.StatusNotModified {
18881		if res.Body != nil {
18882			res.Body.Close()
18883		}
18884		return nil, &googleapi.Error{
18885			Code:   res.StatusCode,
18886			Header: res.Header,
18887		}
18888	}
18889	if err != nil {
18890		return nil, err
18891	}
18892	defer googleapi.CloseBody(res)
18893	if err := googleapi.CheckResponse(res); err != nil {
18894		return nil, err
18895	}
18896	ret := &ProductSet{
18897		ServerResponse: googleapi.ServerResponse{
18898			Header:         res.Header,
18899			HTTPStatusCode: res.StatusCode,
18900		},
18901	}
18902	target := &ret
18903	if err := gensupport.DecodeResponse(target, res); err != nil {
18904		return nil, err
18905	}
18906	return ret, nil
18907	// {
18908	//   "description": "Makes changes to a ProductSet resource.\nOnly display_name can be updated currently.\n\nPossible errors:\n\n* Returns NOT_FOUND if the ProductSet does not exist.\n* Returns INVALID_ARGUMENT if display_name is present in update_mask but\n  missing from the request or longer than 4096 characters.",
18909	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18910	//   "httpMethod": "PATCH",
18911	//   "id": "vision.projects.locations.productSets.patch",
18912	//   "parameterOrder": [
18913	//     "name"
18914	//   ],
18915	//   "parameters": {
18916	//     "name": {
18917	//       "description": "The resource name of the ProductSet.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.\n\nThis field is ignored when creating a ProductSet.",
18918	//       "location": "path",
18919	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18920	//       "required": true,
18921	//       "type": "string"
18922	//     },
18923	//     "updateMask": {
18924	//       "description": "The FieldMask that specifies which fields to\nupdate.\nIf update_mask isn't specified, all mutable fields are to be updated.\nValid mask path is `display_name`.",
18925	//       "format": "google-fieldmask",
18926	//       "location": "query",
18927	//       "type": "string"
18928	//     }
18929	//   },
18930	//   "path": "v1/{+name}",
18931	//   "request": {
18932	//     "$ref": "ProductSet"
18933	//   },
18934	//   "response": {
18935	//     "$ref": "ProductSet"
18936	//   },
18937	//   "scopes": [
18938	//     "https://www.googleapis.com/auth/cloud-platform",
18939	//     "https://www.googleapis.com/auth/cloud-vision"
18940	//   ]
18941	// }
18942
18943}
18944
18945// method id "vision.projects.locations.productSets.removeProduct":
18946
18947type ProjectsLocationsProductSetsRemoveProductCall struct {
18948	s                                  *Service
18949	name                               string
18950	removeproductfromproductsetrequest *RemoveProductFromProductSetRequest
18951	urlParams_                         gensupport.URLParams
18952	ctx_                               context.Context
18953	header_                            http.Header
18954}
18955
18956// RemoveProduct: Removes a Product from the specified ProductSet.
18957func (r *ProjectsLocationsProductSetsService) RemoveProduct(name string, removeproductfromproductsetrequest *RemoveProductFromProductSetRequest) *ProjectsLocationsProductSetsRemoveProductCall {
18958	c := &ProjectsLocationsProductSetsRemoveProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18959	c.name = name
18960	c.removeproductfromproductsetrequest = removeproductfromproductsetrequest
18961	return c
18962}
18963
18964// Fields allows partial responses to be retrieved. See
18965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18966// for more information.
18967func (c *ProjectsLocationsProductSetsRemoveProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsRemoveProductCall {
18968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18969	return c
18970}
18971
18972// Context sets the context to be used in this call's Do method. Any
18973// pending HTTP request will be aborted if the provided context is
18974// canceled.
18975func (c *ProjectsLocationsProductSetsRemoveProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsRemoveProductCall {
18976	c.ctx_ = ctx
18977	return c
18978}
18979
18980// Header returns an http.Header that can be modified by the caller to
18981// add HTTP headers to the request.
18982func (c *ProjectsLocationsProductSetsRemoveProductCall) Header() http.Header {
18983	if c.header_ == nil {
18984		c.header_ = make(http.Header)
18985	}
18986	return c.header_
18987}
18988
18989func (c *ProjectsLocationsProductSetsRemoveProductCall) doRequest(alt string) (*http.Response, error) {
18990	reqHeaders := make(http.Header)
18991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
18992	for k, v := range c.header_ {
18993		reqHeaders[k] = v
18994	}
18995	reqHeaders.Set("User-Agent", c.s.userAgent())
18996	var body io.Reader = nil
18997	body, err := googleapi.WithoutDataWrapper.JSONReader(c.removeproductfromproductsetrequest)
18998	if err != nil {
18999		return nil, err
19000	}
19001	reqHeaders.Set("Content-Type", "application/json")
19002	c.urlParams_.Set("alt", alt)
19003	c.urlParams_.Set("prettyPrint", "false")
19004	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:removeProduct")
19005	urls += "?" + c.urlParams_.Encode()
19006	req, err := http.NewRequest("POST", urls, body)
19007	if err != nil {
19008		return nil, err
19009	}
19010	req.Header = reqHeaders
19011	googleapi.Expand(req.URL, map[string]string{
19012		"name": c.name,
19013	})
19014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19015}
19016
19017// Do executes the "vision.projects.locations.productSets.removeProduct" call.
19018// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19019// code is an error. Response headers are in either
19020// *Empty.ServerResponse.Header or (if a response was returned at all)
19021// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19022// check whether the returned error was because http.StatusNotModified
19023// was returned.
19024func (c *ProjectsLocationsProductSetsRemoveProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19025	gensupport.SetOptions(c.urlParams_, opts...)
19026	res, err := c.doRequest("json")
19027	if res != nil && res.StatusCode == http.StatusNotModified {
19028		if res.Body != nil {
19029			res.Body.Close()
19030		}
19031		return nil, &googleapi.Error{
19032			Code:   res.StatusCode,
19033			Header: res.Header,
19034		}
19035	}
19036	if err != nil {
19037		return nil, err
19038	}
19039	defer googleapi.CloseBody(res)
19040	if err := googleapi.CheckResponse(res); err != nil {
19041		return nil, err
19042	}
19043	ret := &Empty{
19044		ServerResponse: googleapi.ServerResponse{
19045			Header:         res.Header,
19046			HTTPStatusCode: res.StatusCode,
19047		},
19048	}
19049	target := &ret
19050	if err := gensupport.DecodeResponse(target, res); err != nil {
19051		return nil, err
19052	}
19053	return ret, nil
19054	// {
19055	//   "description": "Removes a Product from the specified ProductSet.",
19056	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:removeProduct",
19057	//   "httpMethod": "POST",
19058	//   "id": "vision.projects.locations.productSets.removeProduct",
19059	//   "parameterOrder": [
19060	//     "name"
19061	//   ],
19062	//   "parameters": {
19063	//     "name": {
19064	//       "description": "Required. The resource name for the ProductSet to modify.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
19065	//       "location": "path",
19066	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
19067	//       "required": true,
19068	//       "type": "string"
19069	//     }
19070	//   },
19071	//   "path": "v1/{+name}:removeProduct",
19072	//   "request": {
19073	//     "$ref": "RemoveProductFromProductSetRequest"
19074	//   },
19075	//   "response": {
19076	//     "$ref": "Empty"
19077	//   },
19078	//   "scopes": [
19079	//     "https://www.googleapis.com/auth/cloud-platform",
19080	//     "https://www.googleapis.com/auth/cloud-vision"
19081	//   ]
19082	// }
19083
19084}
19085
19086// method id "vision.projects.locations.productSets.products.list":
19087
19088type ProjectsLocationsProductSetsProductsListCall struct {
19089	s            *Service
19090	name         string
19091	urlParams_   gensupport.URLParams
19092	ifNoneMatch_ string
19093	ctx_         context.Context
19094	header_      http.Header
19095}
19096
19097// List: Lists the Products in a ProductSet, in an unspecified order. If
19098// the
19099// ProductSet does not exist, the products field of the response will
19100// be
19101// empty.
19102//
19103// Possible errors:
19104//
19105// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less
19106// than 1.
19107func (r *ProjectsLocationsProductSetsProductsService) List(name string) *ProjectsLocationsProductSetsProductsListCall {
19108	c := &ProjectsLocationsProductSetsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19109	c.name = name
19110	return c
19111}
19112
19113// PageSize sets the optional parameter "pageSize": The maximum number
19114// of items to return. Default 10, maximum 100.
19115func (c *ProjectsLocationsProductSetsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsProductsListCall {
19116	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19117	return c
19118}
19119
19120// PageToken sets the optional parameter "pageToken": The
19121// next_page_token returned from a previous List request, if any.
19122func (c *ProjectsLocationsProductSetsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsProductsListCall {
19123	c.urlParams_.Set("pageToken", pageToken)
19124	return c
19125}
19126
19127// Fields allows partial responses to be retrieved. See
19128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19129// for more information.
19130func (c *ProjectsLocationsProductSetsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsProductsListCall {
19131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19132	return c
19133}
19134
19135// IfNoneMatch sets the optional parameter which makes the operation
19136// fail if the object's ETag matches the given value. This is useful for
19137// getting updates only after the object has changed since the last
19138// request. Use googleapi.IsNotModified to check whether the response
19139// error from Do is the result of In-None-Match.
19140func (c *ProjectsLocationsProductSetsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsProductsListCall {
19141	c.ifNoneMatch_ = entityTag
19142	return c
19143}
19144
19145// Context sets the context to be used in this call's Do method. Any
19146// pending HTTP request will be aborted if the provided context is
19147// canceled.
19148func (c *ProjectsLocationsProductSetsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsProductsListCall {
19149	c.ctx_ = ctx
19150	return c
19151}
19152
19153// Header returns an http.Header that can be modified by the caller to
19154// add HTTP headers to the request.
19155func (c *ProjectsLocationsProductSetsProductsListCall) Header() http.Header {
19156	if c.header_ == nil {
19157		c.header_ = make(http.Header)
19158	}
19159	return c.header_
19160}
19161
19162func (c *ProjectsLocationsProductSetsProductsListCall) doRequest(alt string) (*http.Response, error) {
19163	reqHeaders := make(http.Header)
19164	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
19165	for k, v := range c.header_ {
19166		reqHeaders[k] = v
19167	}
19168	reqHeaders.Set("User-Agent", c.s.userAgent())
19169	if c.ifNoneMatch_ != "" {
19170		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19171	}
19172	var body io.Reader = nil
19173	c.urlParams_.Set("alt", alt)
19174	c.urlParams_.Set("prettyPrint", "false")
19175	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/products")
19176	urls += "?" + c.urlParams_.Encode()
19177	req, err := http.NewRequest("GET", urls, body)
19178	if err != nil {
19179		return nil, err
19180	}
19181	req.Header = reqHeaders
19182	googleapi.Expand(req.URL, map[string]string{
19183		"name": c.name,
19184	})
19185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19186}
19187
19188// Do executes the "vision.projects.locations.productSets.products.list" call.
19189// Exactly one of *ListProductsInProductSetResponse or error will be
19190// non-nil. Any non-2xx status code is an error. Response headers are in
19191// either *ListProductsInProductSetResponse.ServerResponse.Header or (if
19192// a response was returned at all) in error.(*googleapi.Error).Header.
19193// Use googleapi.IsNotModified to check whether the returned error was
19194// because http.StatusNotModified was returned.
19195func (c *ProjectsLocationsProductSetsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsInProductSetResponse, error) {
19196	gensupport.SetOptions(c.urlParams_, opts...)
19197	res, err := c.doRequest("json")
19198	if res != nil && res.StatusCode == http.StatusNotModified {
19199		if res.Body != nil {
19200			res.Body.Close()
19201		}
19202		return nil, &googleapi.Error{
19203			Code:   res.StatusCode,
19204			Header: res.Header,
19205		}
19206	}
19207	if err != nil {
19208		return nil, err
19209	}
19210	defer googleapi.CloseBody(res)
19211	if err := googleapi.CheckResponse(res); err != nil {
19212		return nil, err
19213	}
19214	ret := &ListProductsInProductSetResponse{
19215		ServerResponse: googleapi.ServerResponse{
19216			Header:         res.Header,
19217			HTTPStatusCode: res.StatusCode,
19218		},
19219	}
19220	target := &ret
19221	if err := gensupport.DecodeResponse(target, res); err != nil {
19222		return nil, err
19223	}
19224	return ret, nil
19225	// {
19226	//   "description": "Lists the Products in a ProductSet, in an unspecified order. If the\nProductSet does not exist, the products field of the response will be\nempty.\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.",
19227	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}/products",
19228	//   "httpMethod": "GET",
19229	//   "id": "vision.projects.locations.productSets.products.list",
19230	//   "parameterOrder": [
19231	//     "name"
19232	//   ],
19233	//   "parameters": {
19234	//     "name": {
19235	//       "description": "Required. The ProductSet resource for which to retrieve Products.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
19236	//       "location": "path",
19237	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
19238	//       "required": true,
19239	//       "type": "string"
19240	//     },
19241	//     "pageSize": {
19242	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
19243	//       "format": "int32",
19244	//       "location": "query",
19245	//       "type": "integer"
19246	//     },
19247	//     "pageToken": {
19248	//       "description": "The next_page_token returned from a previous List request, if any.",
19249	//       "location": "query",
19250	//       "type": "string"
19251	//     }
19252	//   },
19253	//   "path": "v1/{+name}/products",
19254	//   "response": {
19255	//     "$ref": "ListProductsInProductSetResponse"
19256	//   },
19257	//   "scopes": [
19258	//     "https://www.googleapis.com/auth/cloud-platform",
19259	//     "https://www.googleapis.com/auth/cloud-vision"
19260	//   ]
19261	// }
19262
19263}
19264
19265// Pages invokes f for each page of results.
19266// A non-nil error returned from f will halt the iteration.
19267// The provided context supersedes any context provided to the Context method.
19268func (c *ProjectsLocationsProductSetsProductsListCall) Pages(ctx context.Context, f func(*ListProductsInProductSetResponse) error) error {
19269	c.ctx_ = ctx
19270	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19271	for {
19272		x, err := c.Do()
19273		if err != nil {
19274			return err
19275		}
19276		if err := f(x); err != nil {
19277			return err
19278		}
19279		if x.NextPageToken == "" {
19280			return nil
19281		}
19282		c.PageToken(x.NextPageToken)
19283	}
19284}
19285
19286// method id "vision.projects.locations.products.create":
19287
19288type ProjectsLocationsProductsCreateCall struct {
19289	s          *Service
19290	parent     string
19291	product    *Product
19292	urlParams_ gensupport.URLParams
19293	ctx_       context.Context
19294	header_    http.Header
19295}
19296
19297// Create: Creates and returns a new product resource.
19298//
19299// Possible errors:
19300//
19301// * Returns INVALID_ARGUMENT if display_name is missing or longer than
19302// 4096
19303//   characters.
19304// * Returns INVALID_ARGUMENT if description is longer than 4096
19305// characters.
19306// * Returns INVALID_ARGUMENT if product_category is missing or invalid.
19307func (r *ProjectsLocationsProductsService) Create(parent string, product *Product) *ProjectsLocationsProductsCreateCall {
19308	c := &ProjectsLocationsProductsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19309	c.parent = parent
19310	c.product = product
19311	return c
19312}
19313
19314// ProductId sets the optional parameter "productId": A user-supplied
19315// resource id for this Product. If set, the server will
19316// attempt to use this value as the resource id. If it is already in
19317// use, an
19318// error is returned with code ALREADY_EXISTS. Must be at most 128
19319// characters
19320// long. It cannot contain the character `/`.
19321func (c *ProjectsLocationsProductsCreateCall) ProductId(productId string) *ProjectsLocationsProductsCreateCall {
19322	c.urlParams_.Set("productId", productId)
19323	return c
19324}
19325
19326// Fields allows partial responses to be retrieved. See
19327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19328// for more information.
19329func (c *ProjectsLocationsProductsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsCreateCall {
19330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19331	return c
19332}
19333
19334// Context sets the context to be used in this call's Do method. Any
19335// pending HTTP request will be aborted if the provided context is
19336// canceled.
19337func (c *ProjectsLocationsProductsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsCreateCall {
19338	c.ctx_ = ctx
19339	return c
19340}
19341
19342// Header returns an http.Header that can be modified by the caller to
19343// add HTTP headers to the request.
19344func (c *ProjectsLocationsProductsCreateCall) Header() http.Header {
19345	if c.header_ == nil {
19346		c.header_ = make(http.Header)
19347	}
19348	return c.header_
19349}
19350
19351func (c *ProjectsLocationsProductsCreateCall) doRequest(alt string) (*http.Response, error) {
19352	reqHeaders := make(http.Header)
19353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
19354	for k, v := range c.header_ {
19355		reqHeaders[k] = v
19356	}
19357	reqHeaders.Set("User-Agent", c.s.userAgent())
19358	var body io.Reader = nil
19359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
19360	if err != nil {
19361		return nil, err
19362	}
19363	reqHeaders.Set("Content-Type", "application/json")
19364	c.urlParams_.Set("alt", alt)
19365	c.urlParams_.Set("prettyPrint", "false")
19366	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
19367	urls += "?" + c.urlParams_.Encode()
19368	req, err := http.NewRequest("POST", urls, body)
19369	if err != nil {
19370		return nil, err
19371	}
19372	req.Header = reqHeaders
19373	googleapi.Expand(req.URL, map[string]string{
19374		"parent": c.parent,
19375	})
19376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19377}
19378
19379// Do executes the "vision.projects.locations.products.create" call.
19380// Exactly one of *Product or error will be non-nil. Any non-2xx status
19381// code is an error. Response headers are in either
19382// *Product.ServerResponse.Header or (if a response was returned at all)
19383// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19384// check whether the returned error was because http.StatusNotModified
19385// was returned.
19386func (c *ProjectsLocationsProductsCreateCall) Do(opts ...googleapi.CallOption) (*Product, error) {
19387	gensupport.SetOptions(c.urlParams_, opts...)
19388	res, err := c.doRequest("json")
19389	if res != nil && res.StatusCode == http.StatusNotModified {
19390		if res.Body != nil {
19391			res.Body.Close()
19392		}
19393		return nil, &googleapi.Error{
19394			Code:   res.StatusCode,
19395			Header: res.Header,
19396		}
19397	}
19398	if err != nil {
19399		return nil, err
19400	}
19401	defer googleapi.CloseBody(res)
19402	if err := googleapi.CheckResponse(res); err != nil {
19403		return nil, err
19404	}
19405	ret := &Product{
19406		ServerResponse: googleapi.ServerResponse{
19407			Header:         res.Header,
19408			HTTPStatusCode: res.StatusCode,
19409		},
19410	}
19411	target := &ret
19412	if err := gensupport.DecodeResponse(target, res); err != nil {
19413		return nil, err
19414	}
19415	return ret, nil
19416	// {
19417	//   "description": "Creates and returns a new product resource.\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if display_name is missing or longer than 4096\n  characters.\n* Returns INVALID_ARGUMENT if description is longer than 4096 characters.\n* Returns INVALID_ARGUMENT if product_category is missing or invalid.",
19418	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
19419	//   "httpMethod": "POST",
19420	//   "id": "vision.projects.locations.products.create",
19421	//   "parameterOrder": [
19422	//     "parent"
19423	//   ],
19424	//   "parameters": {
19425	//     "parent": {
19426	//       "description": "Required. The project in which the Product should be created.\n\nFormat is\n`projects/PROJECT_ID/locations/LOC_ID`.",
19427	//       "location": "path",
19428	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
19429	//       "required": true,
19430	//       "type": "string"
19431	//     },
19432	//     "productId": {
19433	//       "description": "A user-supplied resource id for this Product. If set, the server will\nattempt to use this value as the resource id. If it is already in use, an\nerror is returned with code ALREADY_EXISTS. Must be at most 128 characters\nlong. It cannot contain the character `/`.",
19434	//       "location": "query",
19435	//       "type": "string"
19436	//     }
19437	//   },
19438	//   "path": "v1/{+parent}/products",
19439	//   "request": {
19440	//     "$ref": "Product"
19441	//   },
19442	//   "response": {
19443	//     "$ref": "Product"
19444	//   },
19445	//   "scopes": [
19446	//     "https://www.googleapis.com/auth/cloud-platform",
19447	//     "https://www.googleapis.com/auth/cloud-vision"
19448	//   ]
19449	// }
19450
19451}
19452
19453// method id "vision.projects.locations.products.delete":
19454
19455type ProjectsLocationsProductsDeleteCall struct {
19456	s          *Service
19457	name       string
19458	urlParams_ gensupport.URLParams
19459	ctx_       context.Context
19460	header_    http.Header
19461}
19462
19463// Delete: Permanently deletes a product and its reference
19464// images.
19465//
19466// Metadata of the product and all its images will be deleted right
19467// away, but
19468// search queries against ProductSets containing the product may still
19469// work
19470// until all related caches are refreshed.
19471func (r *ProjectsLocationsProductsService) Delete(name string) *ProjectsLocationsProductsDeleteCall {
19472	c := &ProjectsLocationsProductsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19473	c.name = name
19474	return c
19475}
19476
19477// Fields allows partial responses to be retrieved. See
19478// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19479// for more information.
19480func (c *ProjectsLocationsProductsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsDeleteCall {
19481	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19482	return c
19483}
19484
19485// Context sets the context to be used in this call's Do method. Any
19486// pending HTTP request will be aborted if the provided context is
19487// canceled.
19488func (c *ProjectsLocationsProductsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsDeleteCall {
19489	c.ctx_ = ctx
19490	return c
19491}
19492
19493// Header returns an http.Header that can be modified by the caller to
19494// add HTTP headers to the request.
19495func (c *ProjectsLocationsProductsDeleteCall) Header() http.Header {
19496	if c.header_ == nil {
19497		c.header_ = make(http.Header)
19498	}
19499	return c.header_
19500}
19501
19502func (c *ProjectsLocationsProductsDeleteCall) doRequest(alt string) (*http.Response, error) {
19503	reqHeaders := make(http.Header)
19504	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
19505	for k, v := range c.header_ {
19506		reqHeaders[k] = v
19507	}
19508	reqHeaders.Set("User-Agent", c.s.userAgent())
19509	var body io.Reader = nil
19510	c.urlParams_.Set("alt", alt)
19511	c.urlParams_.Set("prettyPrint", "false")
19512	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19513	urls += "?" + c.urlParams_.Encode()
19514	req, err := http.NewRequest("DELETE", urls, body)
19515	if err != nil {
19516		return nil, err
19517	}
19518	req.Header = reqHeaders
19519	googleapi.Expand(req.URL, map[string]string{
19520		"name": c.name,
19521	})
19522	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19523}
19524
19525// Do executes the "vision.projects.locations.products.delete" call.
19526// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19527// code is an error. Response headers are in either
19528// *Empty.ServerResponse.Header or (if a response was returned at all)
19529// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19530// check whether the returned error was because http.StatusNotModified
19531// was returned.
19532func (c *ProjectsLocationsProductsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19533	gensupport.SetOptions(c.urlParams_, opts...)
19534	res, err := c.doRequest("json")
19535	if res != nil && res.StatusCode == http.StatusNotModified {
19536		if res.Body != nil {
19537			res.Body.Close()
19538		}
19539		return nil, &googleapi.Error{
19540			Code:   res.StatusCode,
19541			Header: res.Header,
19542		}
19543	}
19544	if err != nil {
19545		return nil, err
19546	}
19547	defer googleapi.CloseBody(res)
19548	if err := googleapi.CheckResponse(res); err != nil {
19549		return nil, err
19550	}
19551	ret := &Empty{
19552		ServerResponse: googleapi.ServerResponse{
19553			Header:         res.Header,
19554			HTTPStatusCode: res.StatusCode,
19555		},
19556	}
19557	target := &ret
19558	if err := gensupport.DecodeResponse(target, res); err != nil {
19559		return nil, err
19560	}
19561	return ret, nil
19562	// {
19563	//   "description": "Permanently deletes a product and its reference images.\n\nMetadata of the product and all its images will be deleted right away, but\nsearch queries against ProductSets containing the product may still work\nuntil all related caches are refreshed.",
19564	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
19565	//   "httpMethod": "DELETE",
19566	//   "id": "vision.projects.locations.products.delete",
19567	//   "parameterOrder": [
19568	//     "name"
19569	//   ],
19570	//   "parameters": {
19571	//     "name": {
19572	//       "description": "Required. Resource name of product to delete.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
19573	//       "location": "path",
19574	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19575	//       "required": true,
19576	//       "type": "string"
19577	//     }
19578	//   },
19579	//   "path": "v1/{+name}",
19580	//   "response": {
19581	//     "$ref": "Empty"
19582	//   },
19583	//   "scopes": [
19584	//     "https://www.googleapis.com/auth/cloud-platform",
19585	//     "https://www.googleapis.com/auth/cloud-vision"
19586	//   ]
19587	// }
19588
19589}
19590
19591// method id "vision.projects.locations.products.get":
19592
19593type ProjectsLocationsProductsGetCall struct {
19594	s            *Service
19595	name         string
19596	urlParams_   gensupport.URLParams
19597	ifNoneMatch_ string
19598	ctx_         context.Context
19599	header_      http.Header
19600}
19601
19602// Get: Gets information associated with a Product.
19603//
19604// Possible errors:
19605//
19606// * Returns NOT_FOUND if the Product does not exist.
19607func (r *ProjectsLocationsProductsService) Get(name string) *ProjectsLocationsProductsGetCall {
19608	c := &ProjectsLocationsProductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19609	c.name = name
19610	return c
19611}
19612
19613// Fields allows partial responses to be retrieved. See
19614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19615// for more information.
19616func (c *ProjectsLocationsProductsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsGetCall {
19617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19618	return c
19619}
19620
19621// IfNoneMatch sets the optional parameter which makes the operation
19622// fail if the object's ETag matches the given value. This is useful for
19623// getting updates only after the object has changed since the last
19624// request. Use googleapi.IsNotModified to check whether the response
19625// error from Do is the result of In-None-Match.
19626func (c *ProjectsLocationsProductsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsGetCall {
19627	c.ifNoneMatch_ = entityTag
19628	return c
19629}
19630
19631// Context sets the context to be used in this call's Do method. Any
19632// pending HTTP request will be aborted if the provided context is
19633// canceled.
19634func (c *ProjectsLocationsProductsGetCall) Context(ctx context.Context) *ProjectsLocationsProductsGetCall {
19635	c.ctx_ = ctx
19636	return c
19637}
19638
19639// Header returns an http.Header that can be modified by the caller to
19640// add HTTP headers to the request.
19641func (c *ProjectsLocationsProductsGetCall) Header() http.Header {
19642	if c.header_ == nil {
19643		c.header_ = make(http.Header)
19644	}
19645	return c.header_
19646}
19647
19648func (c *ProjectsLocationsProductsGetCall) doRequest(alt string) (*http.Response, error) {
19649	reqHeaders := make(http.Header)
19650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
19651	for k, v := range c.header_ {
19652		reqHeaders[k] = v
19653	}
19654	reqHeaders.Set("User-Agent", c.s.userAgent())
19655	if c.ifNoneMatch_ != "" {
19656		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19657	}
19658	var body io.Reader = nil
19659	c.urlParams_.Set("alt", alt)
19660	c.urlParams_.Set("prettyPrint", "false")
19661	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19662	urls += "?" + c.urlParams_.Encode()
19663	req, err := http.NewRequest("GET", urls, body)
19664	if err != nil {
19665		return nil, err
19666	}
19667	req.Header = reqHeaders
19668	googleapi.Expand(req.URL, map[string]string{
19669		"name": c.name,
19670	})
19671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19672}
19673
19674// Do executes the "vision.projects.locations.products.get" call.
19675// Exactly one of *Product or error will be non-nil. Any non-2xx status
19676// code is an error. Response headers are in either
19677// *Product.ServerResponse.Header or (if a response was returned at all)
19678// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19679// check whether the returned error was because http.StatusNotModified
19680// was returned.
19681func (c *ProjectsLocationsProductsGetCall) Do(opts ...googleapi.CallOption) (*Product, error) {
19682	gensupport.SetOptions(c.urlParams_, opts...)
19683	res, err := c.doRequest("json")
19684	if res != nil && res.StatusCode == http.StatusNotModified {
19685		if res.Body != nil {
19686			res.Body.Close()
19687		}
19688		return nil, &googleapi.Error{
19689			Code:   res.StatusCode,
19690			Header: res.Header,
19691		}
19692	}
19693	if err != nil {
19694		return nil, err
19695	}
19696	defer googleapi.CloseBody(res)
19697	if err := googleapi.CheckResponse(res); err != nil {
19698		return nil, err
19699	}
19700	ret := &Product{
19701		ServerResponse: googleapi.ServerResponse{
19702			Header:         res.Header,
19703			HTTPStatusCode: res.StatusCode,
19704		},
19705	}
19706	target := &ret
19707	if err := gensupport.DecodeResponse(target, res); err != nil {
19708		return nil, err
19709	}
19710	return ret, nil
19711	// {
19712	//   "description": "Gets information associated with a Product.\n\nPossible errors:\n\n* Returns NOT_FOUND if the Product does not exist.",
19713	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
19714	//   "httpMethod": "GET",
19715	//   "id": "vision.projects.locations.products.get",
19716	//   "parameterOrder": [
19717	//     "name"
19718	//   ],
19719	//   "parameters": {
19720	//     "name": {
19721	//       "description": "Required. Resource name of the Product to get.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
19722	//       "location": "path",
19723	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19724	//       "required": true,
19725	//       "type": "string"
19726	//     }
19727	//   },
19728	//   "path": "v1/{+name}",
19729	//   "response": {
19730	//     "$ref": "Product"
19731	//   },
19732	//   "scopes": [
19733	//     "https://www.googleapis.com/auth/cloud-platform",
19734	//     "https://www.googleapis.com/auth/cloud-vision"
19735	//   ]
19736	// }
19737
19738}
19739
19740// method id "vision.projects.locations.products.list":
19741
19742type ProjectsLocationsProductsListCall struct {
19743	s            *Service
19744	parent       string
19745	urlParams_   gensupport.URLParams
19746	ifNoneMatch_ string
19747	ctx_         context.Context
19748	header_      http.Header
19749}
19750
19751// List: Lists products in an unspecified order.
19752//
19753// Possible errors:
19754//
19755// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less
19756// than 1.
19757func (r *ProjectsLocationsProductsService) List(parent string) *ProjectsLocationsProductsListCall {
19758	c := &ProjectsLocationsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19759	c.parent = parent
19760	return c
19761}
19762
19763// PageSize sets the optional parameter "pageSize": The maximum number
19764// of items to return. Default 10, maximum 100.
19765func (c *ProjectsLocationsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductsListCall {
19766	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19767	return c
19768}
19769
19770// PageToken sets the optional parameter "pageToken": The
19771// next_page_token returned from a previous List request, if any.
19772func (c *ProjectsLocationsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductsListCall {
19773	c.urlParams_.Set("pageToken", pageToken)
19774	return c
19775}
19776
19777// Fields allows partial responses to be retrieved. See
19778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19779// for more information.
19780func (c *ProjectsLocationsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsListCall {
19781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19782	return c
19783}
19784
19785// IfNoneMatch sets the optional parameter which makes the operation
19786// fail if the object's ETag matches the given value. This is useful for
19787// getting updates only after the object has changed since the last
19788// request. Use googleapi.IsNotModified to check whether the response
19789// error from Do is the result of In-None-Match.
19790func (c *ProjectsLocationsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsListCall {
19791	c.ifNoneMatch_ = entityTag
19792	return c
19793}
19794
19795// Context sets the context to be used in this call's Do method. Any
19796// pending HTTP request will be aborted if the provided context is
19797// canceled.
19798func (c *ProjectsLocationsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductsListCall {
19799	c.ctx_ = ctx
19800	return c
19801}
19802
19803// Header returns an http.Header that can be modified by the caller to
19804// add HTTP headers to the request.
19805func (c *ProjectsLocationsProductsListCall) Header() http.Header {
19806	if c.header_ == nil {
19807		c.header_ = make(http.Header)
19808	}
19809	return c.header_
19810}
19811
19812func (c *ProjectsLocationsProductsListCall) doRequest(alt string) (*http.Response, error) {
19813	reqHeaders := make(http.Header)
19814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
19815	for k, v := range c.header_ {
19816		reqHeaders[k] = v
19817	}
19818	reqHeaders.Set("User-Agent", c.s.userAgent())
19819	if c.ifNoneMatch_ != "" {
19820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19821	}
19822	var body io.Reader = nil
19823	c.urlParams_.Set("alt", alt)
19824	c.urlParams_.Set("prettyPrint", "false")
19825	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
19826	urls += "?" + c.urlParams_.Encode()
19827	req, err := http.NewRequest("GET", urls, body)
19828	if err != nil {
19829		return nil, err
19830	}
19831	req.Header = reqHeaders
19832	googleapi.Expand(req.URL, map[string]string{
19833		"parent": c.parent,
19834	})
19835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19836}
19837
19838// Do executes the "vision.projects.locations.products.list" call.
19839// Exactly one of *ListProductsResponse or error will be non-nil. Any
19840// non-2xx status code is an error. Response headers are in either
19841// *ListProductsResponse.ServerResponse.Header or (if a response was
19842// returned at all) in error.(*googleapi.Error).Header. Use
19843// googleapi.IsNotModified to check whether the returned error was
19844// because http.StatusNotModified was returned.
19845func (c *ProjectsLocationsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsResponse, error) {
19846	gensupport.SetOptions(c.urlParams_, opts...)
19847	res, err := c.doRequest("json")
19848	if res != nil && res.StatusCode == http.StatusNotModified {
19849		if res.Body != nil {
19850			res.Body.Close()
19851		}
19852		return nil, &googleapi.Error{
19853			Code:   res.StatusCode,
19854			Header: res.Header,
19855		}
19856	}
19857	if err != nil {
19858		return nil, err
19859	}
19860	defer googleapi.CloseBody(res)
19861	if err := googleapi.CheckResponse(res); err != nil {
19862		return nil, err
19863	}
19864	ret := &ListProductsResponse{
19865		ServerResponse: googleapi.ServerResponse{
19866			Header:         res.Header,
19867			HTTPStatusCode: res.StatusCode,
19868		},
19869	}
19870	target := &ret
19871	if err := gensupport.DecodeResponse(target, res); err != nil {
19872		return nil, err
19873	}
19874	return ret, nil
19875	// {
19876	//   "description": "Lists products in an unspecified order.\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.",
19877	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
19878	//   "httpMethod": "GET",
19879	//   "id": "vision.projects.locations.products.list",
19880	//   "parameterOrder": [
19881	//     "parent"
19882	//   ],
19883	//   "parameters": {
19884	//     "pageSize": {
19885	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
19886	//       "format": "int32",
19887	//       "location": "query",
19888	//       "type": "integer"
19889	//     },
19890	//     "pageToken": {
19891	//       "description": "The next_page_token returned from a previous List request, if any.",
19892	//       "location": "query",
19893	//       "type": "string"
19894	//     },
19895	//     "parent": {
19896	//       "description": "Required. The project OR ProductSet from which Products should be listed.\n\nFormat:\n`projects/PROJECT_ID/locations/LOC_ID`",
19897	//       "location": "path",
19898	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
19899	//       "required": true,
19900	//       "type": "string"
19901	//     }
19902	//   },
19903	//   "path": "v1/{+parent}/products",
19904	//   "response": {
19905	//     "$ref": "ListProductsResponse"
19906	//   },
19907	//   "scopes": [
19908	//     "https://www.googleapis.com/auth/cloud-platform",
19909	//     "https://www.googleapis.com/auth/cloud-vision"
19910	//   ]
19911	// }
19912
19913}
19914
19915// Pages invokes f for each page of results.
19916// A non-nil error returned from f will halt the iteration.
19917// The provided context supersedes any context provided to the Context method.
19918func (c *ProjectsLocationsProductsListCall) Pages(ctx context.Context, f func(*ListProductsResponse) error) error {
19919	c.ctx_ = ctx
19920	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19921	for {
19922		x, err := c.Do()
19923		if err != nil {
19924			return err
19925		}
19926		if err := f(x); err != nil {
19927			return err
19928		}
19929		if x.NextPageToken == "" {
19930			return nil
19931		}
19932		c.PageToken(x.NextPageToken)
19933	}
19934}
19935
19936// method id "vision.projects.locations.products.patch":
19937
19938type ProjectsLocationsProductsPatchCall struct {
19939	s          *Service
19940	name       string
19941	product    *Product
19942	urlParams_ gensupport.URLParams
19943	ctx_       context.Context
19944	header_    http.Header
19945}
19946
19947// Patch: Makes changes to a Product resource.
19948// Only the `display_name`, `description`, and `labels` fields can be
19949// updated
19950// right now.
19951//
19952// If labels are updated, the change will not be reflected in queries
19953// until
19954// the next index time.
19955//
19956// Possible errors:
19957//
19958// * Returns NOT_FOUND if the Product does not exist.
19959// * Returns INVALID_ARGUMENT if display_name is present in update_mask
19960// but is
19961//   missing from the request or longer than 4096 characters.
19962// * Returns INVALID_ARGUMENT if description is present in update_mask
19963// but is
19964//   longer than 4096 characters.
19965// * Returns INVALID_ARGUMENT if product_category is present in
19966// update_mask.
19967func (r *ProjectsLocationsProductsService) Patch(name string, product *Product) *ProjectsLocationsProductsPatchCall {
19968	c := &ProjectsLocationsProductsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19969	c.name = name
19970	c.product = product
19971	return c
19972}
19973
19974// UpdateMask sets the optional parameter "updateMask": The FieldMask
19975// that specifies which fields
19976// to update.
19977// If update_mask isn't specified, all mutable fields are to be
19978// updated.
19979// Valid mask paths include `product_labels`, `display_name`,
19980// and
19981// `description`.
19982func (c *ProjectsLocationsProductsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductsPatchCall {
19983	c.urlParams_.Set("updateMask", updateMask)
19984	return c
19985}
19986
19987// Fields allows partial responses to be retrieved. See
19988// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19989// for more information.
19990func (c *ProjectsLocationsProductsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPatchCall {
19991	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19992	return c
19993}
19994
19995// Context sets the context to be used in this call's Do method. Any
19996// pending HTTP request will be aborted if the provided context is
19997// canceled.
19998func (c *ProjectsLocationsProductsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductsPatchCall {
19999	c.ctx_ = ctx
20000	return c
20001}
20002
20003// Header returns an http.Header that can be modified by the caller to
20004// add HTTP headers to the request.
20005func (c *ProjectsLocationsProductsPatchCall) Header() http.Header {
20006	if c.header_ == nil {
20007		c.header_ = make(http.Header)
20008	}
20009	return c.header_
20010}
20011
20012func (c *ProjectsLocationsProductsPatchCall) doRequest(alt string) (*http.Response, error) {
20013	reqHeaders := make(http.Header)
20014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20015	for k, v := range c.header_ {
20016		reqHeaders[k] = v
20017	}
20018	reqHeaders.Set("User-Agent", c.s.userAgent())
20019	var body io.Reader = nil
20020	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
20021	if err != nil {
20022		return nil, err
20023	}
20024	reqHeaders.Set("Content-Type", "application/json")
20025	c.urlParams_.Set("alt", alt)
20026	c.urlParams_.Set("prettyPrint", "false")
20027	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20028	urls += "?" + c.urlParams_.Encode()
20029	req, err := http.NewRequest("PATCH", urls, body)
20030	if err != nil {
20031		return nil, err
20032	}
20033	req.Header = reqHeaders
20034	googleapi.Expand(req.URL, map[string]string{
20035		"name": c.name,
20036	})
20037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20038}
20039
20040// Do executes the "vision.projects.locations.products.patch" call.
20041// Exactly one of *Product or error will be non-nil. Any non-2xx status
20042// code is an error. Response headers are in either
20043// *Product.ServerResponse.Header or (if a response was returned at all)
20044// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
20045// check whether the returned error was because http.StatusNotModified
20046// was returned.
20047func (c *ProjectsLocationsProductsPatchCall) Do(opts ...googleapi.CallOption) (*Product, error) {
20048	gensupport.SetOptions(c.urlParams_, opts...)
20049	res, err := c.doRequest("json")
20050	if res != nil && res.StatusCode == http.StatusNotModified {
20051		if res.Body != nil {
20052			res.Body.Close()
20053		}
20054		return nil, &googleapi.Error{
20055			Code:   res.StatusCode,
20056			Header: res.Header,
20057		}
20058	}
20059	if err != nil {
20060		return nil, err
20061	}
20062	defer googleapi.CloseBody(res)
20063	if err := googleapi.CheckResponse(res); err != nil {
20064		return nil, err
20065	}
20066	ret := &Product{
20067		ServerResponse: googleapi.ServerResponse{
20068			Header:         res.Header,
20069			HTTPStatusCode: res.StatusCode,
20070		},
20071	}
20072	target := &ret
20073	if err := gensupport.DecodeResponse(target, res); err != nil {
20074		return nil, err
20075	}
20076	return ret, nil
20077	// {
20078	//   "description": "Makes changes to a Product resource.\nOnly the `display_name`, `description`, and `labels` fields can be updated\nright now.\n\nIf labels are updated, the change will not be reflected in queries until\nthe next index time.\n\nPossible errors:\n\n* Returns NOT_FOUND if the Product does not exist.\n* Returns INVALID_ARGUMENT if display_name is present in update_mask but is\n  missing from the request or longer than 4096 characters.\n* Returns INVALID_ARGUMENT if description is present in update_mask but is\n  longer than 4096 characters.\n* Returns INVALID_ARGUMENT if product_category is present in update_mask.",
20079	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
20080	//   "httpMethod": "PATCH",
20081	//   "id": "vision.projects.locations.products.patch",
20082	//   "parameterOrder": [
20083	//     "name"
20084	//   ],
20085	//   "parameters": {
20086	//     "name": {
20087	//       "description": "The resource name of the product.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.\n\nThis field is ignored when creating a product.",
20088	//       "location": "path",
20089	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20090	//       "required": true,
20091	//       "type": "string"
20092	//     },
20093	//     "updateMask": {
20094	//       "description": "The FieldMask that specifies which fields\nto update.\nIf update_mask isn't specified, all mutable fields are to be updated.\nValid mask paths include `product_labels`, `display_name`, and\n`description`.",
20095	//       "format": "google-fieldmask",
20096	//       "location": "query",
20097	//       "type": "string"
20098	//     }
20099	//   },
20100	//   "path": "v1/{+name}",
20101	//   "request": {
20102	//     "$ref": "Product"
20103	//   },
20104	//   "response": {
20105	//     "$ref": "Product"
20106	//   },
20107	//   "scopes": [
20108	//     "https://www.googleapis.com/auth/cloud-platform",
20109	//     "https://www.googleapis.com/auth/cloud-vision"
20110	//   ]
20111	// }
20112
20113}
20114
20115// method id "vision.projects.locations.products.purge":
20116
20117type ProjectsLocationsProductsPurgeCall struct {
20118	s                    *Service
20119	parent               string
20120	purgeproductsrequest *PurgeProductsRequest
20121	urlParams_           gensupport.URLParams
20122	ctx_                 context.Context
20123	header_              http.Header
20124}
20125
20126// Purge: Asynchronous API to delete all Products in a ProductSet or all
20127// Products
20128// that are in no ProductSet.
20129//
20130// If a Product is a member of the specified ProductSet in addition to
20131// other
20132// ProductSets, the Product will still be deleted.
20133//
20134// It is recommended to not delete the specified ProductSet until after
20135// this
20136// operation has completed. It is also recommended to not add any of
20137// the
20138// Products involved in the batch delete to a new ProductSet while
20139// this
20140// operation is running because those Products may still end up
20141// deleted.
20142//
20143// It's not possible to undo the PurgeProducts operation. Therefore, it
20144// is
20145// recommended to keep the csv files used in ImportProductSets (if that
20146// was
20147// how you originally built the Product Set) before starting
20148// PurgeProducts, in
20149// case you need to re-import the data after deletion.
20150//
20151// If the plan is to purge all of the Products from a ProductSet and
20152// then
20153// re-use the empty ProductSet to re-import new Products into the
20154// empty
20155// ProductSet, you must wait until the PurgeProducts operation has
20156// finished
20157// for that ProductSet.
20158//
20159// The google.longrunning.Operation API can be used to keep track of
20160// the
20161// progress and results of the request.
20162// `Operation.metadata` contains `BatchOperationMetadata`. (progress)
20163func (r *ProjectsLocationsProductsService) Purge(parent string, purgeproductsrequest *PurgeProductsRequest) *ProjectsLocationsProductsPurgeCall {
20164	c := &ProjectsLocationsProductsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20165	c.parent = parent
20166	c.purgeproductsrequest = purgeproductsrequest
20167	return c
20168}
20169
20170// Fields allows partial responses to be retrieved. See
20171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20172// for more information.
20173func (c *ProjectsLocationsProductsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPurgeCall {
20174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20175	return c
20176}
20177
20178// Context sets the context to be used in this call's Do method. Any
20179// pending HTTP request will be aborted if the provided context is
20180// canceled.
20181func (c *ProjectsLocationsProductsPurgeCall) Context(ctx context.Context) *ProjectsLocationsProductsPurgeCall {
20182	c.ctx_ = ctx
20183	return c
20184}
20185
20186// Header returns an http.Header that can be modified by the caller to
20187// add HTTP headers to the request.
20188func (c *ProjectsLocationsProductsPurgeCall) Header() http.Header {
20189	if c.header_ == nil {
20190		c.header_ = make(http.Header)
20191	}
20192	return c.header_
20193}
20194
20195func (c *ProjectsLocationsProductsPurgeCall) doRequest(alt string) (*http.Response, error) {
20196	reqHeaders := make(http.Header)
20197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20198	for k, v := range c.header_ {
20199		reqHeaders[k] = v
20200	}
20201	reqHeaders.Set("User-Agent", c.s.userAgent())
20202	var body io.Reader = nil
20203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.purgeproductsrequest)
20204	if err != nil {
20205		return nil, err
20206	}
20207	reqHeaders.Set("Content-Type", "application/json")
20208	c.urlParams_.Set("alt", alt)
20209	c.urlParams_.Set("prettyPrint", "false")
20210	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products:purge")
20211	urls += "?" + c.urlParams_.Encode()
20212	req, err := http.NewRequest("POST", urls, body)
20213	if err != nil {
20214		return nil, err
20215	}
20216	req.Header = reqHeaders
20217	googleapi.Expand(req.URL, map[string]string{
20218		"parent": c.parent,
20219	})
20220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20221}
20222
20223// Do executes the "vision.projects.locations.products.purge" call.
20224// Exactly one of *Operation or error will be non-nil. Any non-2xx
20225// status code is an error. Response headers are in either
20226// *Operation.ServerResponse.Header or (if a response was returned at
20227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
20228// to check whether the returned error was because
20229// http.StatusNotModified was returned.
20230func (c *ProjectsLocationsProductsPurgeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
20231	gensupport.SetOptions(c.urlParams_, opts...)
20232	res, err := c.doRequest("json")
20233	if res != nil && res.StatusCode == http.StatusNotModified {
20234		if res.Body != nil {
20235			res.Body.Close()
20236		}
20237		return nil, &googleapi.Error{
20238			Code:   res.StatusCode,
20239			Header: res.Header,
20240		}
20241	}
20242	if err != nil {
20243		return nil, err
20244	}
20245	defer googleapi.CloseBody(res)
20246	if err := googleapi.CheckResponse(res); err != nil {
20247		return nil, err
20248	}
20249	ret := &Operation{
20250		ServerResponse: googleapi.ServerResponse{
20251			Header:         res.Header,
20252			HTTPStatusCode: res.StatusCode,
20253		},
20254	}
20255	target := &ret
20256	if err := gensupport.DecodeResponse(target, res); err != nil {
20257		return nil, err
20258	}
20259	return ret, nil
20260	// {
20261	//   "description": "Asynchronous API to delete all Products in a ProductSet or all Products\nthat are in no ProductSet.\n\nIf a Product is a member of the specified ProductSet in addition to other\nProductSets, the Product will still be deleted.\n\nIt is recommended to not delete the specified ProductSet until after this\noperation has completed. It is also recommended to not add any of the\nProducts involved in the batch delete to a new ProductSet while this\noperation is running because those Products may still end up deleted.\n\nIt's not possible to undo the PurgeProducts operation. Therefore, it is\nrecommended to keep the csv files used in ImportProductSets (if that was\nhow you originally built the Product Set) before starting PurgeProducts, in\ncase you need to re-import the data after deletion.\n\nIf the plan is to purge all of the Products from a ProductSet and then\nre-use the empty ProductSet to re-import new Products into the empty\nProductSet, you must wait until the PurgeProducts operation has finished\nfor that ProductSet.\n\nThe google.longrunning.Operation API can be used to keep track of the\nprogress and results of the request.\n`Operation.metadata` contains `BatchOperationMetadata`. (progress)",
20262	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products:purge",
20263	//   "httpMethod": "POST",
20264	//   "id": "vision.projects.locations.products.purge",
20265	//   "parameterOrder": [
20266	//     "parent"
20267	//   ],
20268	//   "parameters": {
20269	//     "parent": {
20270	//       "description": "Required. The project and location in which the Products should be deleted.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
20271	//       "location": "path",
20272	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
20273	//       "required": true,
20274	//       "type": "string"
20275	//     }
20276	//   },
20277	//   "path": "v1/{+parent}/products:purge",
20278	//   "request": {
20279	//     "$ref": "PurgeProductsRequest"
20280	//   },
20281	//   "response": {
20282	//     "$ref": "Operation"
20283	//   },
20284	//   "scopes": [
20285	//     "https://www.googleapis.com/auth/cloud-platform",
20286	//     "https://www.googleapis.com/auth/cloud-vision"
20287	//   ]
20288	// }
20289
20290}
20291
20292// method id "vision.projects.locations.products.referenceImages.create":
20293
20294type ProjectsLocationsProductsReferenceImagesCreateCall struct {
20295	s              *Service
20296	parent         string
20297	referenceimage *ReferenceImage
20298	urlParams_     gensupport.URLParams
20299	ctx_           context.Context
20300	header_        http.Header
20301}
20302
20303// Create: Creates and returns a new ReferenceImage resource.
20304//
20305// The `bounding_poly` field is optional. If `bounding_poly` is not
20306// specified,
20307// the system will try to detect regions of interest in the image that
20308// are
20309// compatible with the product_category on the parent product. If it
20310// is
20311// specified, detection is ALWAYS skipped. The system converts polygons
20312// into
20313// non-rotated rectangles.
20314//
20315// Note that the pipeline will resize the image if the image resolution
20316// is too
20317// large to process (above 50MP).
20318//
20319// Possible errors:
20320//
20321// * Returns INVALID_ARGUMENT if the image_uri is missing or longer than
20322// 4096
20323//   characters.
20324// * Returns INVALID_ARGUMENT if the product does not exist.
20325// * Returns INVALID_ARGUMENT if bounding_poly is not provided, and
20326// nothing
20327//   compatible with the parent product's product_category is
20328// detected.
20329// * Returns INVALID_ARGUMENT if bounding_poly contains more than 10
20330// polygons.
20331func (r *ProjectsLocationsProductsReferenceImagesService) Create(parent string, referenceimage *ReferenceImage) *ProjectsLocationsProductsReferenceImagesCreateCall {
20332	c := &ProjectsLocationsProductsReferenceImagesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20333	c.parent = parent
20334	c.referenceimage = referenceimage
20335	return c
20336}
20337
20338// ReferenceImageId sets the optional parameter "referenceImageId": A
20339// user-supplied resource id for the ReferenceImage to be added. If
20340// set,
20341// the server will attempt to use this value as the resource id. If it
20342// is
20343// already in use, an error is returned with code ALREADY_EXISTS. Must
20344// be at
20345// most 128 characters long. It cannot contain the character `/`.
20346func (c *ProjectsLocationsProductsReferenceImagesCreateCall) ReferenceImageId(referenceImageId string) *ProjectsLocationsProductsReferenceImagesCreateCall {
20347	c.urlParams_.Set("referenceImageId", referenceImageId)
20348	return c
20349}
20350
20351// Fields allows partial responses to be retrieved. See
20352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20353// for more information.
20354func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesCreateCall {
20355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20356	return c
20357}
20358
20359// Context sets the context to be used in this call's Do method. Any
20360// pending HTTP request will be aborted if the provided context is
20361// canceled.
20362func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesCreateCall {
20363	c.ctx_ = ctx
20364	return c
20365}
20366
20367// Header returns an http.Header that can be modified by the caller to
20368// add HTTP headers to the request.
20369func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Header() http.Header {
20370	if c.header_ == nil {
20371		c.header_ = make(http.Header)
20372	}
20373	return c.header_
20374}
20375
20376func (c *ProjectsLocationsProductsReferenceImagesCreateCall) doRequest(alt string) (*http.Response, error) {
20377	reqHeaders := make(http.Header)
20378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20379	for k, v := range c.header_ {
20380		reqHeaders[k] = v
20381	}
20382	reqHeaders.Set("User-Agent", c.s.userAgent())
20383	var body io.Reader = nil
20384	body, err := googleapi.WithoutDataWrapper.JSONReader(c.referenceimage)
20385	if err != nil {
20386		return nil, err
20387	}
20388	reqHeaders.Set("Content-Type", "application/json")
20389	c.urlParams_.Set("alt", alt)
20390	c.urlParams_.Set("prettyPrint", "false")
20391	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
20392	urls += "?" + c.urlParams_.Encode()
20393	req, err := http.NewRequest("POST", urls, body)
20394	if err != nil {
20395		return nil, err
20396	}
20397	req.Header = reqHeaders
20398	googleapi.Expand(req.URL, map[string]string{
20399		"parent": c.parent,
20400	})
20401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20402}
20403
20404// Do executes the "vision.projects.locations.products.referenceImages.create" call.
20405// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
20406// status code is an error. Response headers are in either
20407// *ReferenceImage.ServerResponse.Header or (if a response was returned
20408// at all) in error.(*googleapi.Error).Header. Use
20409// googleapi.IsNotModified to check whether the returned error was
20410// because http.StatusNotModified was returned.
20411func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
20412	gensupport.SetOptions(c.urlParams_, opts...)
20413	res, err := c.doRequest("json")
20414	if res != nil && res.StatusCode == http.StatusNotModified {
20415		if res.Body != nil {
20416			res.Body.Close()
20417		}
20418		return nil, &googleapi.Error{
20419			Code:   res.StatusCode,
20420			Header: res.Header,
20421		}
20422	}
20423	if err != nil {
20424		return nil, err
20425	}
20426	defer googleapi.CloseBody(res)
20427	if err := googleapi.CheckResponse(res); err != nil {
20428		return nil, err
20429	}
20430	ret := &ReferenceImage{
20431		ServerResponse: googleapi.ServerResponse{
20432			Header:         res.Header,
20433			HTTPStatusCode: res.StatusCode,
20434		},
20435	}
20436	target := &ret
20437	if err := gensupport.DecodeResponse(target, res); err != nil {
20438		return nil, err
20439	}
20440	return ret, nil
20441	// {
20442	//   "description": "Creates and returns a new ReferenceImage resource.\n\nThe `bounding_poly` field is optional. If `bounding_poly` is not specified,\nthe system will try to detect regions of interest in the image that are\ncompatible with the product_category on the parent product. If it is\nspecified, detection is ALWAYS skipped. The system converts polygons into\nnon-rotated rectangles.\n\nNote that the pipeline will resize the image if the image resolution is too\nlarge to process (above 50MP).\n\nPossible errors:\n\n* Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096\n  characters.\n* Returns INVALID_ARGUMENT if the product does not exist.\n* Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing\n  compatible with the parent product's product_category is detected.\n* Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.",
20443	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
20444	//   "httpMethod": "POST",
20445	//   "id": "vision.projects.locations.products.referenceImages.create",
20446	//   "parameterOrder": [
20447	//     "parent"
20448	//   ],
20449	//   "parameters": {
20450	//     "parent": {
20451	//       "description": "Required. Resource name of the product in which to create the reference image.\n\nFormat is\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.",
20452	//       "location": "path",
20453	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20454	//       "required": true,
20455	//       "type": "string"
20456	//     },
20457	//     "referenceImageId": {
20458	//       "description": "A user-supplied resource id for the ReferenceImage to be added. If set,\nthe server will attempt to use this value as the resource id. If it is\nalready in use, an error is returned with code ALREADY_EXISTS. Must be at\nmost 128 characters long. It cannot contain the character `/`.",
20459	//       "location": "query",
20460	//       "type": "string"
20461	//     }
20462	//   },
20463	//   "path": "v1/{+parent}/referenceImages",
20464	//   "request": {
20465	//     "$ref": "ReferenceImage"
20466	//   },
20467	//   "response": {
20468	//     "$ref": "ReferenceImage"
20469	//   },
20470	//   "scopes": [
20471	//     "https://www.googleapis.com/auth/cloud-platform",
20472	//     "https://www.googleapis.com/auth/cloud-vision"
20473	//   ]
20474	// }
20475
20476}
20477
20478// method id "vision.projects.locations.products.referenceImages.delete":
20479
20480type ProjectsLocationsProductsReferenceImagesDeleteCall struct {
20481	s          *Service
20482	name       string
20483	urlParams_ gensupport.URLParams
20484	ctx_       context.Context
20485	header_    http.Header
20486}
20487
20488// Delete: Permanently deletes a reference image.
20489//
20490// The image metadata will be deleted right away, but search
20491// queries
20492// against ProductSets containing the image may still work until all
20493// related
20494// caches are refreshed.
20495//
20496// The actual image files are not deleted from Google Cloud Storage.
20497func (r *ProjectsLocationsProductsReferenceImagesService) Delete(name string) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20498	c := &ProjectsLocationsProductsReferenceImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20499	c.name = name
20500	return c
20501}
20502
20503// Fields allows partial responses to be retrieved. See
20504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20505// for more information.
20506func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20508	return c
20509}
20510
20511// Context sets the context to be used in this call's Do method. Any
20512// pending HTTP request will be aborted if the provided context is
20513// canceled.
20514func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20515	c.ctx_ = ctx
20516	return c
20517}
20518
20519// Header returns an http.Header that can be modified by the caller to
20520// add HTTP headers to the request.
20521func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Header() http.Header {
20522	if c.header_ == nil {
20523		c.header_ = make(http.Header)
20524	}
20525	return c.header_
20526}
20527
20528func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
20529	reqHeaders := make(http.Header)
20530	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20531	for k, v := range c.header_ {
20532		reqHeaders[k] = v
20533	}
20534	reqHeaders.Set("User-Agent", c.s.userAgent())
20535	var body io.Reader = nil
20536	c.urlParams_.Set("alt", alt)
20537	c.urlParams_.Set("prettyPrint", "false")
20538	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20539	urls += "?" + c.urlParams_.Encode()
20540	req, err := http.NewRequest("DELETE", urls, body)
20541	if err != nil {
20542		return nil, err
20543	}
20544	req.Header = reqHeaders
20545	googleapi.Expand(req.URL, map[string]string{
20546		"name": c.name,
20547	})
20548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20549}
20550
20551// Do executes the "vision.projects.locations.products.referenceImages.delete" call.
20552// Exactly one of *Empty or error will be non-nil. Any non-2xx status
20553// code is an error. Response headers are in either
20554// *Empty.ServerResponse.Header or (if a response was returned at all)
20555// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
20556// check whether the returned error was because http.StatusNotModified
20557// was returned.
20558func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
20559	gensupport.SetOptions(c.urlParams_, opts...)
20560	res, err := c.doRequest("json")
20561	if res != nil && res.StatusCode == http.StatusNotModified {
20562		if res.Body != nil {
20563			res.Body.Close()
20564		}
20565		return nil, &googleapi.Error{
20566			Code:   res.StatusCode,
20567			Header: res.Header,
20568		}
20569	}
20570	if err != nil {
20571		return nil, err
20572	}
20573	defer googleapi.CloseBody(res)
20574	if err := googleapi.CheckResponse(res); err != nil {
20575		return nil, err
20576	}
20577	ret := &Empty{
20578		ServerResponse: googleapi.ServerResponse{
20579			Header:         res.Header,
20580			HTTPStatusCode: res.StatusCode,
20581		},
20582	}
20583	target := &ret
20584	if err := gensupport.DecodeResponse(target, res); err != nil {
20585		return nil, err
20586	}
20587	return ret, nil
20588	// {
20589	//   "description": "Permanently deletes a reference image.\n\nThe image metadata will be deleted right away, but search queries\nagainst ProductSets containing the image may still work until all related\ncaches are refreshed.\n\nThe actual image files are not deleted from Google Cloud Storage.",
20590	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
20591	//   "httpMethod": "DELETE",
20592	//   "id": "vision.projects.locations.products.referenceImages.delete",
20593	//   "parameterOrder": [
20594	//     "name"
20595	//   ],
20596	//   "parameters": {
20597	//     "name": {
20598	//       "description": "Required. The resource name of the reference image to delete.\n\nFormat is:\n\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`",
20599	//       "location": "path",
20600	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
20601	//       "required": true,
20602	//       "type": "string"
20603	//     }
20604	//   },
20605	//   "path": "v1/{+name}",
20606	//   "response": {
20607	//     "$ref": "Empty"
20608	//   },
20609	//   "scopes": [
20610	//     "https://www.googleapis.com/auth/cloud-platform",
20611	//     "https://www.googleapis.com/auth/cloud-vision"
20612	//   ]
20613	// }
20614
20615}
20616
20617// method id "vision.projects.locations.products.referenceImages.get":
20618
20619type ProjectsLocationsProductsReferenceImagesGetCall struct {
20620	s            *Service
20621	name         string
20622	urlParams_   gensupport.URLParams
20623	ifNoneMatch_ string
20624	ctx_         context.Context
20625	header_      http.Header
20626}
20627
20628// Get: Gets information associated with a ReferenceImage.
20629//
20630// Possible errors:
20631//
20632// * Returns NOT_FOUND if the specified image does not exist.
20633func (r *ProjectsLocationsProductsReferenceImagesService) Get(name string) *ProjectsLocationsProductsReferenceImagesGetCall {
20634	c := &ProjectsLocationsProductsReferenceImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20635	c.name = name
20636	return c
20637}
20638
20639// Fields allows partial responses to be retrieved. See
20640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20641// for more information.
20642func (c *ProjectsLocationsProductsReferenceImagesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesGetCall {
20643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20644	return c
20645}
20646
20647// IfNoneMatch sets the optional parameter which makes the operation
20648// fail if the object's ETag matches the given value. This is useful for
20649// getting updates only after the object has changed since the last
20650// request. Use googleapi.IsNotModified to check whether the response
20651// error from Do is the result of In-None-Match.
20652func (c *ProjectsLocationsProductsReferenceImagesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesGetCall {
20653	c.ifNoneMatch_ = entityTag
20654	return c
20655}
20656
20657// Context sets the context to be used in this call's Do method. Any
20658// pending HTTP request will be aborted if the provided context is
20659// canceled.
20660func (c *ProjectsLocationsProductsReferenceImagesGetCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesGetCall {
20661	c.ctx_ = ctx
20662	return c
20663}
20664
20665// Header returns an http.Header that can be modified by the caller to
20666// add HTTP headers to the request.
20667func (c *ProjectsLocationsProductsReferenceImagesGetCall) Header() http.Header {
20668	if c.header_ == nil {
20669		c.header_ = make(http.Header)
20670	}
20671	return c.header_
20672}
20673
20674func (c *ProjectsLocationsProductsReferenceImagesGetCall) doRequest(alt string) (*http.Response, error) {
20675	reqHeaders := make(http.Header)
20676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20677	for k, v := range c.header_ {
20678		reqHeaders[k] = v
20679	}
20680	reqHeaders.Set("User-Agent", c.s.userAgent())
20681	if c.ifNoneMatch_ != "" {
20682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20683	}
20684	var body io.Reader = nil
20685	c.urlParams_.Set("alt", alt)
20686	c.urlParams_.Set("prettyPrint", "false")
20687	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20688	urls += "?" + c.urlParams_.Encode()
20689	req, err := http.NewRequest("GET", urls, body)
20690	if err != nil {
20691		return nil, err
20692	}
20693	req.Header = reqHeaders
20694	googleapi.Expand(req.URL, map[string]string{
20695		"name": c.name,
20696	})
20697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20698}
20699
20700// Do executes the "vision.projects.locations.products.referenceImages.get" call.
20701// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
20702// status code is an error. Response headers are in either
20703// *ReferenceImage.ServerResponse.Header or (if a response was returned
20704// at all) in error.(*googleapi.Error).Header. Use
20705// googleapi.IsNotModified to check whether the returned error was
20706// because http.StatusNotModified was returned.
20707func (c *ProjectsLocationsProductsReferenceImagesGetCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
20708	gensupport.SetOptions(c.urlParams_, opts...)
20709	res, err := c.doRequest("json")
20710	if res != nil && res.StatusCode == http.StatusNotModified {
20711		if res.Body != nil {
20712			res.Body.Close()
20713		}
20714		return nil, &googleapi.Error{
20715			Code:   res.StatusCode,
20716			Header: res.Header,
20717		}
20718	}
20719	if err != nil {
20720		return nil, err
20721	}
20722	defer googleapi.CloseBody(res)
20723	if err := googleapi.CheckResponse(res); err != nil {
20724		return nil, err
20725	}
20726	ret := &ReferenceImage{
20727		ServerResponse: googleapi.ServerResponse{
20728			Header:         res.Header,
20729			HTTPStatusCode: res.StatusCode,
20730		},
20731	}
20732	target := &ret
20733	if err := gensupport.DecodeResponse(target, res); err != nil {
20734		return nil, err
20735	}
20736	return ret, nil
20737	// {
20738	//   "description": "Gets information associated with a ReferenceImage.\n\nPossible errors:\n\n* Returns NOT_FOUND if the specified image does not exist.",
20739	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
20740	//   "httpMethod": "GET",
20741	//   "id": "vision.projects.locations.products.referenceImages.get",
20742	//   "parameterOrder": [
20743	//     "name"
20744	//   ],
20745	//   "parameters": {
20746	//     "name": {
20747	//       "description": "Required. The resource name of the ReferenceImage to get.\n\nFormat is:\n\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`.",
20748	//       "location": "path",
20749	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
20750	//       "required": true,
20751	//       "type": "string"
20752	//     }
20753	//   },
20754	//   "path": "v1/{+name}",
20755	//   "response": {
20756	//     "$ref": "ReferenceImage"
20757	//   },
20758	//   "scopes": [
20759	//     "https://www.googleapis.com/auth/cloud-platform",
20760	//     "https://www.googleapis.com/auth/cloud-vision"
20761	//   ]
20762	// }
20763
20764}
20765
20766// method id "vision.projects.locations.products.referenceImages.list":
20767
20768type ProjectsLocationsProductsReferenceImagesListCall struct {
20769	s            *Service
20770	parent       string
20771	urlParams_   gensupport.URLParams
20772	ifNoneMatch_ string
20773	ctx_         context.Context
20774	header_      http.Header
20775}
20776
20777// List: Lists reference images.
20778//
20779// Possible errors:
20780//
20781// * Returns NOT_FOUND if the parent product does not exist.
20782// * Returns INVALID_ARGUMENT if the page_size is greater than 100, or
20783// less
20784//   than 1.
20785func (r *ProjectsLocationsProductsReferenceImagesService) List(parent string) *ProjectsLocationsProductsReferenceImagesListCall {
20786	c := &ProjectsLocationsProductsReferenceImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20787	c.parent = parent
20788	return c
20789}
20790
20791// PageSize sets the optional parameter "pageSize": The maximum number
20792// of items to return. Default 10, maximum 100.
20793func (c *ProjectsLocationsProductsReferenceImagesListCall) PageSize(pageSize int64) *ProjectsLocationsProductsReferenceImagesListCall {
20794	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20795	return c
20796}
20797
20798// PageToken sets the optional parameter "pageToken": A token
20799// identifying a page of results to be returned. This is the value
20800// of `nextPageToken` returned in a previous reference image list
20801// request.
20802//
20803// Defaults to the first page if not specified.
20804func (c *ProjectsLocationsProductsReferenceImagesListCall) PageToken(pageToken string) *ProjectsLocationsProductsReferenceImagesListCall {
20805	c.urlParams_.Set("pageToken", pageToken)
20806	return c
20807}
20808
20809// Fields allows partial responses to be retrieved. See
20810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20811// for more information.
20812func (c *ProjectsLocationsProductsReferenceImagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesListCall {
20813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20814	return c
20815}
20816
20817// IfNoneMatch sets the optional parameter which makes the operation
20818// fail if the object's ETag matches the given value. This is useful for
20819// getting updates only after the object has changed since the last
20820// request. Use googleapi.IsNotModified to check whether the response
20821// error from Do is the result of In-None-Match.
20822func (c *ProjectsLocationsProductsReferenceImagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesListCall {
20823	c.ifNoneMatch_ = entityTag
20824	return c
20825}
20826
20827// Context sets the context to be used in this call's Do method. Any
20828// pending HTTP request will be aborted if the provided context is
20829// canceled.
20830func (c *ProjectsLocationsProductsReferenceImagesListCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesListCall {
20831	c.ctx_ = ctx
20832	return c
20833}
20834
20835// Header returns an http.Header that can be modified by the caller to
20836// add HTTP headers to the request.
20837func (c *ProjectsLocationsProductsReferenceImagesListCall) Header() http.Header {
20838	if c.header_ == nil {
20839		c.header_ = make(http.Header)
20840	}
20841	return c.header_
20842}
20843
20844func (c *ProjectsLocationsProductsReferenceImagesListCall) doRequest(alt string) (*http.Response, error) {
20845	reqHeaders := make(http.Header)
20846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
20847	for k, v := range c.header_ {
20848		reqHeaders[k] = v
20849	}
20850	reqHeaders.Set("User-Agent", c.s.userAgent())
20851	if c.ifNoneMatch_ != "" {
20852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20853	}
20854	var body io.Reader = nil
20855	c.urlParams_.Set("alt", alt)
20856	c.urlParams_.Set("prettyPrint", "false")
20857	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
20858	urls += "?" + c.urlParams_.Encode()
20859	req, err := http.NewRequest("GET", urls, body)
20860	if err != nil {
20861		return nil, err
20862	}
20863	req.Header = reqHeaders
20864	googleapi.Expand(req.URL, map[string]string{
20865		"parent": c.parent,
20866	})
20867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20868}
20869
20870// Do executes the "vision.projects.locations.products.referenceImages.list" call.
20871// Exactly one of *ListReferenceImagesResponse or error will be non-nil.
20872// Any non-2xx status code is an error. Response headers are in either
20873// *ListReferenceImagesResponse.ServerResponse.Header or (if a response
20874// was returned at all) in error.(*googleapi.Error).Header. Use
20875// googleapi.IsNotModified to check whether the returned error was
20876// because http.StatusNotModified was returned.
20877func (c *ProjectsLocationsProductsReferenceImagesListCall) Do(opts ...googleapi.CallOption) (*ListReferenceImagesResponse, error) {
20878	gensupport.SetOptions(c.urlParams_, opts...)
20879	res, err := c.doRequest("json")
20880	if res != nil && res.StatusCode == http.StatusNotModified {
20881		if res.Body != nil {
20882			res.Body.Close()
20883		}
20884		return nil, &googleapi.Error{
20885			Code:   res.StatusCode,
20886			Header: res.Header,
20887		}
20888	}
20889	if err != nil {
20890		return nil, err
20891	}
20892	defer googleapi.CloseBody(res)
20893	if err := googleapi.CheckResponse(res); err != nil {
20894		return nil, err
20895	}
20896	ret := &ListReferenceImagesResponse{
20897		ServerResponse: googleapi.ServerResponse{
20898			Header:         res.Header,
20899			HTTPStatusCode: res.StatusCode,
20900		},
20901	}
20902	target := &ret
20903	if err := gensupport.DecodeResponse(target, res); err != nil {
20904		return nil, err
20905	}
20906	return ret, nil
20907	// {
20908	//   "description": "Lists reference images.\n\nPossible errors:\n\n* Returns NOT_FOUND if the parent product does not exist.\n* Returns INVALID_ARGUMENT if the page_size is greater than 100, or less\n  than 1.",
20909	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
20910	//   "httpMethod": "GET",
20911	//   "id": "vision.projects.locations.products.referenceImages.list",
20912	//   "parameterOrder": [
20913	//     "parent"
20914	//   ],
20915	//   "parameters": {
20916	//     "pageSize": {
20917	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
20918	//       "format": "int32",
20919	//       "location": "query",
20920	//       "type": "integer"
20921	//     },
20922	//     "pageToken": {
20923	//       "description": "A token identifying a page of results to be returned. This is the value\nof `nextPageToken` returned in a previous reference image list request.\n\nDefaults to the first page if not specified.",
20924	//       "location": "query",
20925	//       "type": "string"
20926	//     },
20927	//     "parent": {
20928	//       "description": "Required. Resource name of the product containing the reference images.\n\nFormat is\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.",
20929	//       "location": "path",
20930	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20931	//       "required": true,
20932	//       "type": "string"
20933	//     }
20934	//   },
20935	//   "path": "v1/{+parent}/referenceImages",
20936	//   "response": {
20937	//     "$ref": "ListReferenceImagesResponse"
20938	//   },
20939	//   "scopes": [
20940	//     "https://www.googleapis.com/auth/cloud-platform",
20941	//     "https://www.googleapis.com/auth/cloud-vision"
20942	//   ]
20943	// }
20944
20945}
20946
20947// Pages invokes f for each page of results.
20948// A non-nil error returned from f will halt the iteration.
20949// The provided context supersedes any context provided to the Context method.
20950func (c *ProjectsLocationsProductsReferenceImagesListCall) Pages(ctx context.Context, f func(*ListReferenceImagesResponse) error) error {
20951	c.ctx_ = ctx
20952	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
20953	for {
20954		x, err := c.Do()
20955		if err != nil {
20956			return err
20957		}
20958		if err := f(x); err != nil {
20959			return err
20960		}
20961		if x.NextPageToken == "" {
20962			return nil
20963		}
20964		c.PageToken(x.NextPageToken)
20965	}
20966}
20967
20968// method id "vision.projects.operations.get":
20969
20970type ProjectsOperationsGetCall struct {
20971	s            *Service
20972	name         string
20973	urlParams_   gensupport.URLParams
20974	ifNoneMatch_ string
20975	ctx_         context.Context
20976	header_      http.Header
20977}
20978
20979// Get: Gets the latest state of a long-running operation.  Clients can
20980// use this
20981// method to poll the operation result at intervals as recommended by
20982// the API
20983// service.
20984func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
20985	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20986	c.name = name
20987	return c
20988}
20989
20990// Fields allows partial responses to be retrieved. See
20991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20992// for more information.
20993func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
20994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20995	return c
20996}
20997
20998// IfNoneMatch sets the optional parameter which makes the operation
20999// fail if the object's ETag matches the given value. This is useful for
21000// getting updates only after the object has changed since the last
21001// request. Use googleapi.IsNotModified to check whether the response
21002// error from Do is the result of In-None-Match.
21003func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
21004	c.ifNoneMatch_ = entityTag
21005	return c
21006}
21007
21008// Context sets the context to be used in this call's Do method. Any
21009// pending HTTP request will be aborted if the provided context is
21010// canceled.
21011func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
21012	c.ctx_ = ctx
21013	return c
21014}
21015
21016// Header returns an http.Header that can be modified by the caller to
21017// add HTTP headers to the request.
21018func (c *ProjectsOperationsGetCall) Header() http.Header {
21019	if c.header_ == nil {
21020		c.header_ = make(http.Header)
21021	}
21022	return c.header_
21023}
21024
21025func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
21026	reqHeaders := make(http.Header)
21027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
21028	for k, v := range c.header_ {
21029		reqHeaders[k] = v
21030	}
21031	reqHeaders.Set("User-Agent", c.s.userAgent())
21032	if c.ifNoneMatch_ != "" {
21033		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21034	}
21035	var body io.Reader = nil
21036	c.urlParams_.Set("alt", alt)
21037	c.urlParams_.Set("prettyPrint", "false")
21038	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
21039	urls += "?" + c.urlParams_.Encode()
21040	req, err := http.NewRequest("GET", urls, body)
21041	if err != nil {
21042		return nil, err
21043	}
21044	req.Header = reqHeaders
21045	googleapi.Expand(req.URL, map[string]string{
21046		"name": c.name,
21047	})
21048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21049}
21050
21051// Do executes the "vision.projects.operations.get" call.
21052// Exactly one of *Operation or error will be non-nil. Any non-2xx
21053// status code is an error. Response headers are in either
21054// *Operation.ServerResponse.Header or (if a response was returned at
21055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
21056// to check whether the returned error was because
21057// http.StatusNotModified was returned.
21058func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
21059	gensupport.SetOptions(c.urlParams_, opts...)
21060	res, err := c.doRequest("json")
21061	if res != nil && res.StatusCode == http.StatusNotModified {
21062		if res.Body != nil {
21063			res.Body.Close()
21064		}
21065		return nil, &googleapi.Error{
21066			Code:   res.StatusCode,
21067			Header: res.Header,
21068		}
21069	}
21070	if err != nil {
21071		return nil, err
21072	}
21073	defer googleapi.CloseBody(res)
21074	if err := googleapi.CheckResponse(res); err != nil {
21075		return nil, err
21076	}
21077	ret := &Operation{
21078		ServerResponse: googleapi.ServerResponse{
21079			Header:         res.Header,
21080			HTTPStatusCode: res.StatusCode,
21081		},
21082	}
21083	target := &ret
21084	if err := gensupport.DecodeResponse(target, res); err != nil {
21085		return nil, err
21086	}
21087	return ret, nil
21088	// {
21089	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
21090	//   "flatPath": "v1/projects/{projectsId}/operations/{operationsId}",
21091	//   "httpMethod": "GET",
21092	//   "id": "vision.projects.operations.get",
21093	//   "parameterOrder": [
21094	//     "name"
21095	//   ],
21096	//   "parameters": {
21097	//     "name": {
21098	//       "description": "The name of the operation resource.",
21099	//       "location": "path",
21100	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
21101	//       "required": true,
21102	//       "type": "string"
21103	//     }
21104	//   },
21105	//   "path": "v1/{+name}",
21106	//   "response": {
21107	//     "$ref": "Operation"
21108	//   },
21109	//   "scopes": [
21110	//     "https://www.googleapis.com/auth/cloud-platform",
21111	//     "https://www.googleapis.com/auth/cloud-vision"
21112	//   ]
21113	// }
21114
21115}
21116