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/"
84
85// OAuth2 scopes used by this API.
86const (
87	// View and manage your data across Google Cloud Platform services
88	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
89
90	// Apply machine learning models to understand and label images
91	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
92)
93
94// NewService creates a new Service.
95func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
96	scopesOption := option.WithScopes(
97		"https://www.googleapis.com/auth/cloud-platform",
98		"https://www.googleapis.com/auth/cloud-vision",
99	)
100	// NOTE: prepend, so we don't override user-specified scopes.
101	opts = append([]option.ClientOption{scopesOption}, opts...)
102	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
103	client, endpoint, err := htransport.NewClient(ctx, opts...)
104	if err != nil {
105		return nil, err
106	}
107	s, err := New(client)
108	if err != nil {
109		return nil, err
110	}
111	if endpoint != "" {
112		s.BasePath = endpoint
113	}
114	return s, nil
115}
116
117// New creates a new Service. It uses the provided http.Client for requests.
118//
119// Deprecated: please use NewService instead.
120// To provide a custom HTTP client, use option.WithHTTPClient.
121// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
122func New(client *http.Client) (*Service, error) {
123	if client == nil {
124		return nil, errors.New("client is nil")
125	}
126	s := &Service{client: client, BasePath: basePath}
127	s.Files = NewFilesService(s)
128	s.Images = NewImagesService(s)
129	s.Locations = NewLocationsService(s)
130	s.Operations = NewOperationsService(s)
131	s.Projects = NewProjectsService(s)
132	return s, nil
133}
134
135type Service struct {
136	client    *http.Client
137	BasePath  string // API endpoint base URL
138	UserAgent string // optional additional User-Agent fragment
139
140	Files *FilesService
141
142	Images *ImagesService
143
144	Locations *LocationsService
145
146	Operations *OperationsService
147
148	Projects *ProjectsService
149}
150
151func (s *Service) userAgent() string {
152	if s.UserAgent == "" {
153		return googleapi.UserAgent
154	}
155	return googleapi.UserAgent + " " + s.UserAgent
156}
157
158func NewFilesService(s *Service) *FilesService {
159	rs := &FilesService{s: s}
160	return rs
161}
162
163type FilesService struct {
164	s *Service
165}
166
167func NewImagesService(s *Service) *ImagesService {
168	rs := &ImagesService{s: s}
169	return rs
170}
171
172type ImagesService struct {
173	s *Service
174}
175
176func NewLocationsService(s *Service) *LocationsService {
177	rs := &LocationsService{s: s}
178	rs.Operations = NewLocationsOperationsService(s)
179	return rs
180}
181
182type LocationsService struct {
183	s *Service
184
185	Operations *LocationsOperationsService
186}
187
188func NewLocationsOperationsService(s *Service) *LocationsOperationsService {
189	rs := &LocationsOperationsService{s: s}
190	return rs
191}
192
193type LocationsOperationsService struct {
194	s *Service
195}
196
197func NewOperationsService(s *Service) *OperationsService {
198	rs := &OperationsService{s: s}
199	return rs
200}
201
202type OperationsService struct {
203	s *Service
204}
205
206func NewProjectsService(s *Service) *ProjectsService {
207	rs := &ProjectsService{s: s}
208	rs.Files = NewProjectsFilesService(s)
209	rs.Images = NewProjectsImagesService(s)
210	rs.Locations = NewProjectsLocationsService(s)
211	rs.Operations = NewProjectsOperationsService(s)
212	return rs
213}
214
215type ProjectsService struct {
216	s *Service
217
218	Files *ProjectsFilesService
219
220	Images *ProjectsImagesService
221
222	Locations *ProjectsLocationsService
223
224	Operations *ProjectsOperationsService
225}
226
227func NewProjectsFilesService(s *Service) *ProjectsFilesService {
228	rs := &ProjectsFilesService{s: s}
229	return rs
230}
231
232type ProjectsFilesService struct {
233	s *Service
234}
235
236func NewProjectsImagesService(s *Service) *ProjectsImagesService {
237	rs := &ProjectsImagesService{s: s}
238	return rs
239}
240
241type ProjectsImagesService struct {
242	s *Service
243}
244
245func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
246	rs := &ProjectsLocationsService{s: s}
247	rs.Files = NewProjectsLocationsFilesService(s)
248	rs.Images = NewProjectsLocationsImagesService(s)
249	rs.Operations = NewProjectsLocationsOperationsService(s)
250	rs.ProductSets = NewProjectsLocationsProductSetsService(s)
251	rs.Products = NewProjectsLocationsProductsService(s)
252	return rs
253}
254
255type ProjectsLocationsService struct {
256	s *Service
257
258	Files *ProjectsLocationsFilesService
259
260	Images *ProjectsLocationsImagesService
261
262	Operations *ProjectsLocationsOperationsService
263
264	ProductSets *ProjectsLocationsProductSetsService
265
266	Products *ProjectsLocationsProductsService
267}
268
269func NewProjectsLocationsFilesService(s *Service) *ProjectsLocationsFilesService {
270	rs := &ProjectsLocationsFilesService{s: s}
271	return rs
272}
273
274type ProjectsLocationsFilesService struct {
275	s *Service
276}
277
278func NewProjectsLocationsImagesService(s *Service) *ProjectsLocationsImagesService {
279	rs := &ProjectsLocationsImagesService{s: s}
280	return rs
281}
282
283type ProjectsLocationsImagesService struct {
284	s *Service
285}
286
287func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
288	rs := &ProjectsLocationsOperationsService{s: s}
289	return rs
290}
291
292type ProjectsLocationsOperationsService struct {
293	s *Service
294}
295
296func NewProjectsLocationsProductSetsService(s *Service) *ProjectsLocationsProductSetsService {
297	rs := &ProjectsLocationsProductSetsService{s: s}
298	rs.Products = NewProjectsLocationsProductSetsProductsService(s)
299	return rs
300}
301
302type ProjectsLocationsProductSetsService struct {
303	s *Service
304
305	Products *ProjectsLocationsProductSetsProductsService
306}
307
308func NewProjectsLocationsProductSetsProductsService(s *Service) *ProjectsLocationsProductSetsProductsService {
309	rs := &ProjectsLocationsProductSetsProductsService{s: s}
310	return rs
311}
312
313type ProjectsLocationsProductSetsProductsService struct {
314	s *Service
315}
316
317func NewProjectsLocationsProductsService(s *Service) *ProjectsLocationsProductsService {
318	rs := &ProjectsLocationsProductsService{s: s}
319	rs.ReferenceImages = NewProjectsLocationsProductsReferenceImagesService(s)
320	return rs
321}
322
323type ProjectsLocationsProductsService struct {
324	s *Service
325
326	ReferenceImages *ProjectsLocationsProductsReferenceImagesService
327}
328
329func NewProjectsLocationsProductsReferenceImagesService(s *Service) *ProjectsLocationsProductsReferenceImagesService {
330	rs := &ProjectsLocationsProductsReferenceImagesService{s: s}
331	return rs
332}
333
334type ProjectsLocationsProductsReferenceImagesService struct {
335	s *Service
336}
337
338func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
339	rs := &ProjectsOperationsService{s: s}
340	return rs
341}
342
343type ProjectsOperationsService struct {
344	s *Service
345}
346
347// AddProductToProductSetRequest: Request message for the
348// `AddProductToProductSet` method.
349type AddProductToProductSetRequest struct {
350	// Product: Required. The resource name for the Product to be added to
351	// this ProductSet.
352	//
353	// Format is:
354	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
355	Product string `json:"product,omitempty"`
356
357	// ForceSendFields is a list of field names (e.g. "Product") to
358	// unconditionally include in API requests. By default, fields with
359	// empty values are omitted from API requests. However, any non-pointer,
360	// non-interface field appearing in ForceSendFields will be sent to the
361	// server regardless of whether the field is empty or not. This may be
362	// used to include empty fields in Patch requests.
363	ForceSendFields []string `json:"-"`
364
365	// NullFields is a list of field names (e.g. "Product") to include in
366	// API requests with the JSON null value. By default, fields with empty
367	// values are omitted from API requests. However, any field with an
368	// empty value appearing in NullFields will be sent to the server as
369	// null. It is an error if a field in this list has a non-empty value.
370	// This may be used to include null fields in Patch requests.
371	NullFields []string `json:"-"`
372}
373
374func (s *AddProductToProductSetRequest) MarshalJSON() ([]byte, error) {
375	type NoMethod AddProductToProductSetRequest
376	raw := NoMethod(*s)
377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
378}
379
380// AnnotateFileRequest: A request to annotate one single file, e.g. a
381// PDF, TIFF or GIF file.
382type AnnotateFileRequest struct {
383	// Features: Required. Requested features.
384	Features []*Feature `json:"features,omitempty"`
385
386	// ImageContext: Additional context that may accompany the image(s) in
387	// the file.
388	ImageContext *ImageContext `json:"imageContext,omitempty"`
389
390	// InputConfig: Required. Information about the input file.
391	InputConfig *InputConfig `json:"inputConfig,omitempty"`
392
393	// Pages: Pages of the file to perform image annotation.
394	//
395	// Pages starts from 1, we assume the first page of the file is page
396	// 1.
397	// At most 5 pages are supported per request. Pages can be
398	// negative.
399	//
400	// Page 1 means the first page.
401	// Page 2 means the second page.
402	// Page -1 means the last page.
403	// Page -2 means the second to the last page.
404	//
405	// If the file is GIF instead of PDF or TIFF, page refers to GIF
406	// frames.
407	//
408	// If this field is empty, by default the service performs image
409	// annotation
410	// for the first 5 pages of the file.
411	Pages []int64 `json:"pages,omitempty"`
412
413	// ForceSendFields is a list of field names (e.g. "Features") to
414	// unconditionally include in API requests. By default, fields with
415	// empty values are omitted from API requests. However, any non-pointer,
416	// non-interface field appearing in ForceSendFields will be sent to the
417	// server regardless of whether the field is empty or not. This may be
418	// used to include empty fields in Patch requests.
419	ForceSendFields []string `json:"-"`
420
421	// NullFields is a list of field names (e.g. "Features") to include in
422	// API requests with the JSON null value. By default, fields with empty
423	// values are omitted from API requests. However, any field with an
424	// empty value appearing in NullFields will be sent to the server as
425	// null. It is an error if a field in this list has a non-empty value.
426	// This may be used to include null fields in Patch requests.
427	NullFields []string `json:"-"`
428}
429
430func (s *AnnotateFileRequest) MarshalJSON() ([]byte, error) {
431	type NoMethod AnnotateFileRequest
432	raw := NoMethod(*s)
433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
434}
435
436// AnnotateFileResponse: Response to a single file annotation request. A
437// file may contain one or more
438// images, which individually have their own responses.
439type AnnotateFileResponse struct {
440	// Error: If set, represents the error message for the failed request.
441	// The
442	// `responses` field will not be set in this case.
443	Error *Status `json:"error,omitempty"`
444
445	// InputConfig: Information about the file for which this response is
446	// generated.
447	InputConfig *InputConfig `json:"inputConfig,omitempty"`
448
449	// Responses: Individual responses to images found within the file. This
450	// field will be
451	// empty if the `error` field is set.
452	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
453
454	// TotalPages: This field gives the total number of pages in the file.
455	TotalPages int64 `json:"totalPages,omitempty"`
456
457	// ForceSendFields is a list of field names (e.g. "Error") to
458	// unconditionally include in API requests. By default, fields with
459	// empty values are omitted from API requests. However, any non-pointer,
460	// non-interface field appearing in ForceSendFields will be sent to the
461	// server regardless of whether the field is empty or not. This may be
462	// used to include empty fields in Patch requests.
463	ForceSendFields []string `json:"-"`
464
465	// NullFields is a list of field names (e.g. "Error") to include in API
466	// requests with the JSON null value. By default, fields with empty
467	// values are omitted from API requests. However, any field with an
468	// empty value appearing in NullFields will be sent to the server as
469	// null. It is an error if a field in this list has a non-empty value.
470	// This may be used to include null fields in Patch requests.
471	NullFields []string `json:"-"`
472}
473
474func (s *AnnotateFileResponse) MarshalJSON() ([]byte, error) {
475	type NoMethod AnnotateFileResponse
476	raw := NoMethod(*s)
477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
478}
479
480// AnnotateImageRequest: Request for performing Google Cloud Vision API
481// tasks over a user-provided
482// image, with user-requested features, and with context information.
483type AnnotateImageRequest struct {
484	// Features: Requested features.
485	Features []*Feature `json:"features,omitempty"`
486
487	// Image: The image to be processed.
488	Image *Image `json:"image,omitempty"`
489
490	// ImageContext: Additional context that may accompany the image.
491	ImageContext *ImageContext `json:"imageContext,omitempty"`
492
493	// ForceSendFields is a list of field names (e.g. "Features") to
494	// unconditionally include in API requests. By default, fields with
495	// empty values are omitted from API requests. However, any non-pointer,
496	// non-interface field appearing in ForceSendFields will be sent to the
497	// server regardless of whether the field is empty or not. This may be
498	// used to include empty fields in Patch requests.
499	ForceSendFields []string `json:"-"`
500
501	// NullFields is a list of field names (e.g. "Features") to include in
502	// API requests with the JSON null value. By default, fields with empty
503	// values are omitted from API requests. However, any field with an
504	// empty value appearing in NullFields will be sent to the server as
505	// null. It is an error if a field in this list has a non-empty value.
506	// This may be used to include null fields in Patch requests.
507	NullFields []string `json:"-"`
508}
509
510func (s *AnnotateImageRequest) MarshalJSON() ([]byte, error) {
511	type NoMethod AnnotateImageRequest
512	raw := NoMethod(*s)
513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
514}
515
516// AnnotateImageResponse: Response to an image annotation request.
517type AnnotateImageResponse struct {
518	// Context: If present, contextual information is needed to understand
519	// where this image
520	// comes from.
521	Context *ImageAnnotationContext `json:"context,omitempty"`
522
523	// CropHintsAnnotation: If present, crop hints have completed
524	// successfully.
525	CropHintsAnnotation *CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
526
527	// Error: If set, represents the error message for the operation.
528	// Note that filled-in image annotations are guaranteed to be
529	// correct, even when `error` is set.
530	Error *Status `json:"error,omitempty"`
531
532	// FaceAnnotations: If present, face detection has completed
533	// successfully.
534	FaceAnnotations []*FaceAnnotation `json:"faceAnnotations,omitempty"`
535
536	// FullTextAnnotation: If present, text (OCR) detection or document
537	// (OCR) text detection has
538	// completed successfully.
539	// This annotation provides the structural hierarchy for the OCR
540	// detected
541	// text.
542	FullTextAnnotation *TextAnnotation `json:"fullTextAnnotation,omitempty"`
543
544	// ImagePropertiesAnnotation: If present, image properties were
545	// extracted successfully.
546	ImagePropertiesAnnotation *ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
547
548	// LabelAnnotations: If present, label detection has completed
549	// successfully.
550	LabelAnnotations []*EntityAnnotation `json:"labelAnnotations,omitempty"`
551
552	// LandmarkAnnotations: If present, landmark detection has completed
553	// successfully.
554	LandmarkAnnotations []*EntityAnnotation `json:"landmarkAnnotations,omitempty"`
555
556	// LocalizedObjectAnnotations: If present, localized object detection
557	// has completed successfully.
558	// This will be sorted descending by confidence score.
559	LocalizedObjectAnnotations []*LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
560
561	// LogoAnnotations: If present, logo detection has completed
562	// successfully.
563	LogoAnnotations []*EntityAnnotation `json:"logoAnnotations,omitempty"`
564
565	// ProductSearchResults: If present, product search has completed
566	// successfully.
567	ProductSearchResults *ProductSearchResults `json:"productSearchResults,omitempty"`
568
569	// SafeSearchAnnotation: If present, safe-search annotation has
570	// completed successfully.
571	SafeSearchAnnotation *SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
572
573	// TextAnnotations: If present, text (OCR) detection has completed
574	// successfully.
575	TextAnnotations []*EntityAnnotation `json:"textAnnotations,omitempty"`
576
577	// WebDetection: If present, web detection has completed successfully.
578	WebDetection *WebDetection `json:"webDetection,omitempty"`
579
580	// ForceSendFields is a list of field names (e.g. "Context") to
581	// unconditionally include in API requests. By default, fields with
582	// empty values are omitted from API requests. However, any non-pointer,
583	// non-interface field appearing in ForceSendFields will be sent to the
584	// server regardless of whether the field is empty or not. This may be
585	// used to include empty fields in Patch requests.
586	ForceSendFields []string `json:"-"`
587
588	// NullFields is a list of field names (e.g. "Context") to include in
589	// API requests with the JSON null value. By default, fields with empty
590	// values are omitted from API requests. However, any field with an
591	// empty value appearing in NullFields will be sent to the server as
592	// null. It is an error if a field in this list has a non-empty value.
593	// This may be used to include null fields in Patch requests.
594	NullFields []string `json:"-"`
595}
596
597func (s *AnnotateImageResponse) MarshalJSON() ([]byte, error) {
598	type NoMethod AnnotateImageResponse
599	raw := NoMethod(*s)
600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
601}
602
603// AsyncAnnotateFileRequest: An offline file annotation request.
604type AsyncAnnotateFileRequest struct {
605	// Features: Required. Requested features.
606	Features []*Feature `json:"features,omitempty"`
607
608	// ImageContext: Additional context that may accompany the image(s) in
609	// the file.
610	ImageContext *ImageContext `json:"imageContext,omitempty"`
611
612	// InputConfig: Required. Information about the input file.
613	InputConfig *InputConfig `json:"inputConfig,omitempty"`
614
615	// OutputConfig: Required. The desired output location and metadata
616	// (e.g. format).
617	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
618
619	// ForceSendFields is a list of field names (e.g. "Features") to
620	// unconditionally include in API requests. By default, fields with
621	// empty values are omitted from API requests. However, any non-pointer,
622	// non-interface field appearing in ForceSendFields will be sent to the
623	// server regardless of whether the field is empty or not. This may be
624	// used to include empty fields in Patch requests.
625	ForceSendFields []string `json:"-"`
626
627	// NullFields is a list of field names (e.g. "Features") to include in
628	// API requests with the JSON null value. By default, fields with empty
629	// values are omitted from API requests. However, any field with an
630	// empty value appearing in NullFields will be sent to the server as
631	// null. It is an error if a field in this list has a non-empty value.
632	// This may be used to include null fields in Patch requests.
633	NullFields []string `json:"-"`
634}
635
636func (s *AsyncAnnotateFileRequest) MarshalJSON() ([]byte, error) {
637	type NoMethod AsyncAnnotateFileRequest
638	raw := NoMethod(*s)
639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
640}
641
642// AsyncAnnotateFileResponse: The response for a single offline file
643// annotation request.
644type AsyncAnnotateFileResponse struct {
645	// OutputConfig: The output location and metadata from
646	// AsyncAnnotateFileRequest.
647	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
648
649	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
650	// unconditionally include in API requests. By default, fields with
651	// empty values are omitted from API requests. However, any non-pointer,
652	// non-interface field appearing in ForceSendFields will be sent to the
653	// server regardless of whether the field is empty or not. This may be
654	// used to include empty fields in Patch requests.
655	ForceSendFields []string `json:"-"`
656
657	// NullFields is a list of field names (e.g. "OutputConfig") to include
658	// in API requests with the JSON null value. By default, fields with
659	// empty values are omitted from API requests. However, any field with
660	// an empty value appearing in NullFields will be sent to the server as
661	// null. It is an error if a field in this list has a non-empty value.
662	// This may be used to include null fields in Patch requests.
663	NullFields []string `json:"-"`
664}
665
666func (s *AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
667	type NoMethod AsyncAnnotateFileResponse
668	raw := NoMethod(*s)
669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
670}
671
672// AsyncBatchAnnotateFilesRequest: Multiple async file annotation
673// requests are batched into a single service
674// call.
675type AsyncBatchAnnotateFilesRequest struct {
676	// Parent: Optional. Target project and location to make a
677	// call.
678	//
679	// Format: `projects/{project-id}/locations/{location-id}`.
680	//
681	// If no parent is specified, a region will be chosen
682	// automatically.
683	//
684	// Supported location-ids:
685	//     `us`: USA country only,
686	//     `asia`: East asia areas, like Japan, Taiwan,
687	//     `eu`: The European Union.
688	//
689	// Example: `projects/project-A/locations/eu`.
690	Parent string `json:"parent,omitempty"`
691
692	// Requests: Required. Individual async file annotation requests for
693	// this batch.
694	Requests []*AsyncAnnotateFileRequest `json:"requests,omitempty"`
695
696	// ForceSendFields is a list of field names (e.g. "Parent") to
697	// unconditionally include in API requests. By default, fields with
698	// empty values are omitted from API requests. However, any non-pointer,
699	// non-interface field appearing in ForceSendFields will be sent to the
700	// server regardless of whether the field is empty or not. This may be
701	// used to include empty fields in Patch requests.
702	ForceSendFields []string `json:"-"`
703
704	// NullFields is a list of field names (e.g. "Parent") to include in API
705	// requests with the JSON null value. By default, fields with empty
706	// values are omitted from API requests. However, any field with an
707	// empty value appearing in NullFields will be sent to the server as
708	// null. It is an error if a field in this list has a non-empty value.
709	// This may be used to include null fields in Patch requests.
710	NullFields []string `json:"-"`
711}
712
713func (s *AsyncBatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
714	type NoMethod AsyncBatchAnnotateFilesRequest
715	raw := NoMethod(*s)
716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
717}
718
719// AsyncBatchAnnotateFilesResponse: Response to an async batch file
720// annotation request.
721type AsyncBatchAnnotateFilesResponse struct {
722	// Responses: The list of file annotation responses, one for each
723	// request in
724	// AsyncBatchAnnotateFilesRequest.
725	Responses []*AsyncAnnotateFileResponse `json:"responses,omitempty"`
726
727	// ForceSendFields is a list of field names (e.g. "Responses") to
728	// unconditionally include in API requests. By default, fields with
729	// empty values are omitted from API requests. However, any non-pointer,
730	// non-interface field appearing in ForceSendFields will be sent to the
731	// server regardless of whether the field is empty or not. This may be
732	// used to include empty fields in Patch requests.
733	ForceSendFields []string `json:"-"`
734
735	// NullFields is a list of field names (e.g. "Responses") to include in
736	// API requests with the JSON null value. By default, fields with empty
737	// values are omitted from API requests. However, any field with an
738	// empty value appearing in NullFields will be sent to the server as
739	// null. It is an error if a field in this list has a non-empty value.
740	// This may be used to include null fields in Patch requests.
741	NullFields []string `json:"-"`
742}
743
744func (s *AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
745	type NoMethod AsyncBatchAnnotateFilesResponse
746	raw := NoMethod(*s)
747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
748}
749
750// AsyncBatchAnnotateImagesRequest: Request for async image annotation
751// for a list of images.
752type AsyncBatchAnnotateImagesRequest struct {
753	// OutputConfig: Required. The desired output location and metadata
754	// (e.g. format).
755	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
756
757	// Parent: Optional. Target project and location to make a
758	// call.
759	//
760	// Format: `projects/{project-id}/locations/{location-id}`.
761	//
762	// If no parent is specified, a region will be chosen
763	// automatically.
764	//
765	// Supported location-ids:
766	//     `us`: USA country only,
767	//     `asia`: East asia areas, like Japan, Taiwan,
768	//     `eu`: The European Union.
769	//
770	// Example: `projects/project-A/locations/eu`.
771	Parent string `json:"parent,omitempty"`
772
773	// Requests: Required. Individual image annotation requests for this
774	// batch.
775	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
776
777	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
778	// unconditionally include in API requests. By default, fields with
779	// empty values are omitted from API requests. However, any non-pointer,
780	// non-interface field appearing in ForceSendFields will be sent to the
781	// server regardless of whether the field is empty or not. This may be
782	// used to include empty fields in Patch requests.
783	ForceSendFields []string `json:"-"`
784
785	// NullFields is a list of field names (e.g. "OutputConfig") to include
786	// in API requests with the JSON null value. By default, fields with
787	// empty values are omitted from API requests. However, any field with
788	// an empty value appearing in NullFields will be sent to the server as
789	// null. It is an error if a field in this list has a non-empty value.
790	// This may be used to include null fields in Patch requests.
791	NullFields []string `json:"-"`
792}
793
794func (s *AsyncBatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
795	type NoMethod AsyncBatchAnnotateImagesRequest
796	raw := NoMethod(*s)
797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
798}
799
800// AsyncBatchAnnotateImagesResponse: Response to an async batch image
801// annotation request.
802type AsyncBatchAnnotateImagesResponse struct {
803	// OutputConfig: The output location and metadata from
804	// AsyncBatchAnnotateImagesRequest.
805	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
806
807	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
808	// unconditionally include in API requests. By default, fields with
809	// empty values are omitted from API requests. However, any non-pointer,
810	// non-interface field appearing in ForceSendFields will be sent to the
811	// server regardless of whether the field is empty or not. This may be
812	// used to include empty fields in Patch requests.
813	ForceSendFields []string `json:"-"`
814
815	// NullFields is a list of field names (e.g. "OutputConfig") to include
816	// in API requests with the JSON null value. By default, fields with
817	// empty values are omitted from API requests. However, any field with
818	// an empty value appearing in NullFields will be sent to the server as
819	// null. It is an error if a field in this list has a non-empty value.
820	// This may be used to include null fields in Patch requests.
821	NullFields []string `json:"-"`
822}
823
824func (s *AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
825	type NoMethod AsyncBatchAnnotateImagesResponse
826	raw := NoMethod(*s)
827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
828}
829
830// BatchAnnotateFilesRequest: A list of requests to annotate files using
831// the BatchAnnotateFiles API.
832type BatchAnnotateFilesRequest struct {
833	// Parent: Optional. Target project and location to make a
834	// call.
835	//
836	// Format: `projects/{project-id}/locations/{location-id}`.
837	//
838	// If no parent is specified, a region will be chosen
839	// automatically.
840	//
841	// Supported location-ids:
842	//     `us`: USA country only,
843	//     `asia`: East asia areas, like Japan, Taiwan,
844	//     `eu`: The European Union.
845	//
846	// Example: `projects/project-A/locations/eu`.
847	Parent string `json:"parent,omitempty"`
848
849	// Requests: Required. The list of file annotation requests. Right now
850	// we support only one
851	// AnnotateFileRequest in BatchAnnotateFilesRequest.
852	Requests []*AnnotateFileRequest `json:"requests,omitempty"`
853
854	// ForceSendFields is a list of field names (e.g. "Parent") to
855	// unconditionally include in API requests. By default, fields with
856	// empty values are omitted from API requests. However, any non-pointer,
857	// non-interface field appearing in ForceSendFields will be sent to the
858	// server regardless of whether the field is empty or not. This may be
859	// used to include empty fields in Patch requests.
860	ForceSendFields []string `json:"-"`
861
862	// NullFields is a list of field names (e.g. "Parent") to include in API
863	// requests with the JSON null value. By default, fields with empty
864	// values are omitted from API requests. However, any field with an
865	// empty value appearing in NullFields will be sent to the server as
866	// null. It is an error if a field in this list has a non-empty value.
867	// This may be used to include null fields in Patch requests.
868	NullFields []string `json:"-"`
869}
870
871func (s *BatchAnnotateFilesRequest) MarshalJSON() ([]byte, error) {
872	type NoMethod BatchAnnotateFilesRequest
873	raw := NoMethod(*s)
874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
875}
876
877// BatchAnnotateFilesResponse: A list of file annotation responses.
878type BatchAnnotateFilesResponse struct {
879	// Responses: The list of file annotation responses, each response
880	// corresponding to each
881	// AnnotateFileRequest in BatchAnnotateFilesRequest.
882	Responses []*AnnotateFileResponse `json:"responses,omitempty"`
883
884	// ServerResponse contains the HTTP response code and headers from the
885	// server.
886	googleapi.ServerResponse `json:"-"`
887
888	// ForceSendFields is a list of field names (e.g. "Responses") to
889	// unconditionally include in API requests. By default, fields with
890	// empty values are omitted from API requests. However, any non-pointer,
891	// non-interface field appearing in ForceSendFields will be sent to the
892	// server regardless of whether the field is empty or not. This may be
893	// used to include empty fields in Patch requests.
894	ForceSendFields []string `json:"-"`
895
896	// NullFields is a list of field names (e.g. "Responses") to include in
897	// API requests with the JSON null value. By default, fields with empty
898	// values are omitted from API requests. However, any field with an
899	// empty value appearing in NullFields will be sent to the server as
900	// null. It is an error if a field in this list has a non-empty value.
901	// This may be used to include null fields in Patch requests.
902	NullFields []string `json:"-"`
903}
904
905func (s *BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
906	type NoMethod BatchAnnotateFilesResponse
907	raw := NoMethod(*s)
908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
909}
910
911// BatchAnnotateImagesRequest: Multiple image annotation requests are
912// batched into a single service call.
913type BatchAnnotateImagesRequest struct {
914	// Parent: Optional. Target project and location to make a
915	// call.
916	//
917	// Format: `projects/{project-id}/locations/{location-id}`.
918	//
919	// If no parent is specified, a region will be chosen
920	// automatically.
921	//
922	// Supported location-ids:
923	//     `us`: USA country only,
924	//     `asia`: East asia areas, like Japan, Taiwan,
925	//     `eu`: The European Union.
926	//
927	// Example: `projects/project-A/locations/eu`.
928	Parent string `json:"parent,omitempty"`
929
930	// Requests: Required. Individual image annotation requests for this
931	// batch.
932	Requests []*AnnotateImageRequest `json:"requests,omitempty"`
933
934	// ForceSendFields is a list of field names (e.g. "Parent") to
935	// unconditionally include in API requests. By default, fields with
936	// empty values are omitted from API requests. However, any non-pointer,
937	// non-interface field appearing in ForceSendFields will be sent to the
938	// server regardless of whether the field is empty or not. This may be
939	// used to include empty fields in Patch requests.
940	ForceSendFields []string `json:"-"`
941
942	// NullFields is a list of field names (e.g. "Parent") to include in API
943	// requests with the JSON null value. By default, fields with empty
944	// values are omitted from API requests. However, any field with an
945	// empty value appearing in NullFields will be sent to the server as
946	// null. It is an error if a field in this list has a non-empty value.
947	// This may be used to include null fields in Patch requests.
948	NullFields []string `json:"-"`
949}
950
951func (s *BatchAnnotateImagesRequest) MarshalJSON() ([]byte, error) {
952	type NoMethod BatchAnnotateImagesRequest
953	raw := NoMethod(*s)
954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
955}
956
957// BatchAnnotateImagesResponse: Response to a batch image annotation
958// request.
959type BatchAnnotateImagesResponse struct {
960	// Responses: Individual responses to image annotation requests within
961	// the batch.
962	Responses []*AnnotateImageResponse `json:"responses,omitempty"`
963
964	// ServerResponse contains the HTTP response code and headers from the
965	// server.
966	googleapi.ServerResponse `json:"-"`
967
968	// ForceSendFields is a list of field names (e.g. "Responses") to
969	// unconditionally include in API requests. By default, fields with
970	// empty values are omitted from API requests. However, any non-pointer,
971	// non-interface field appearing in ForceSendFields will be sent to the
972	// server regardless of whether the field is empty or not. This may be
973	// used to include empty fields in Patch requests.
974	ForceSendFields []string `json:"-"`
975
976	// NullFields is a list of field names (e.g. "Responses") to include in
977	// API requests with the JSON null value. By default, fields with empty
978	// values are omitted from API requests. However, any field with an
979	// empty value appearing in NullFields will be sent to the server as
980	// null. It is an error if a field in this list has a non-empty value.
981	// This may be used to include null fields in Patch requests.
982	NullFields []string `json:"-"`
983}
984
985func (s *BatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
986	type NoMethod BatchAnnotateImagesResponse
987	raw := NoMethod(*s)
988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
989}
990
991// BatchOperationMetadata: Metadata for the batch operations such as the
992// current state.
993//
994// This is included in the `metadata` field of the `Operation` returned
995// by the
996// `GetOperation` call of the `google::longrunning::Operations` service.
997type BatchOperationMetadata struct {
998	// EndTime: The time when the batch request is finished
999	// and
1000	// google.longrunning.Operation.done is set to true.
1001	EndTime string `json:"endTime,omitempty"`
1002
1003	// State: The current state of the batch operation.
1004	//
1005	// Possible values:
1006	//   "STATE_UNSPECIFIED" - Invalid.
1007	//   "PROCESSING" - Request is actively being processed.
1008	//   "SUCCESSFUL" - The request is done and at least one item has been
1009	// successfully
1010	// processed.
1011	//   "FAILED" - The request is done and no item has been successfully
1012	// processed.
1013	//   "CANCELLED" - The request is done after the
1014	// longrunning.Operations.CancelOperation has
1015	// been called by the user.  Any records that were processed before
1016	// the
1017	// cancel command are output as specified in the request.
1018	State string `json:"state,omitempty"`
1019
1020	// SubmitTime: The time when the batch request was submitted to the
1021	// server.
1022	SubmitTime string `json:"submitTime,omitempty"`
1023
1024	// ForceSendFields is a list of field names (e.g. "EndTime") to
1025	// unconditionally include in API requests. By default, fields with
1026	// empty values are omitted from API requests. However, any non-pointer,
1027	// non-interface field appearing in ForceSendFields will be sent to the
1028	// server regardless of whether the field is empty or not. This may be
1029	// used to include empty fields in Patch requests.
1030	ForceSendFields []string `json:"-"`
1031
1032	// NullFields is a list of field names (e.g. "EndTime") to include in
1033	// API requests with the JSON null value. By default, fields with empty
1034	// values are omitted from API requests. However, any field with an
1035	// empty value appearing in NullFields will be sent to the server as
1036	// null. It is an error if a field in this list has a non-empty value.
1037	// This may be used to include null fields in Patch requests.
1038	NullFields []string `json:"-"`
1039}
1040
1041func (s *BatchOperationMetadata) MarshalJSON() ([]byte, error) {
1042	type NoMethod BatchOperationMetadata
1043	raw := NoMethod(*s)
1044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1045}
1046
1047// Block: Logical element on the page.
1048type Block struct {
1049	// BlockType: Detected block type (text, image etc) for this block.
1050	//
1051	// Possible values:
1052	//   "UNKNOWN" - Unknown block type.
1053	//   "TEXT" - Regular text block.
1054	//   "TABLE" - Table block.
1055	//   "PICTURE" - Image block.
1056	//   "RULER" - Horizontal/vertical line box.
1057	//   "BARCODE" - Barcode block.
1058	BlockType string `json:"blockType,omitempty"`
1059
1060	// BoundingBox: The bounding box for the block.
1061	// The vertices are in the order of top-left, top-right,
1062	// bottom-right,
1063	// bottom-left. When a rotation of the bounding box is detected the
1064	// rotation
1065	// is represented as around the top-left corner as defined when the text
1066	// is
1067	// read in the 'natural' orientation.
1068	// For example:
1069	//
1070	// * when the text is horizontal it might look like:
1071	//
1072	//         0----1
1073	//         |    |
1074	//         3----2
1075	//
1076	// * when it's rotated 180 degrees around the top-left corner it
1077	// becomes:
1078	//
1079	//         2----3
1080	//         |    |
1081	//         1----0
1082	//
1083	//   and the vertex order will still be (0, 1, 2, 3).
1084	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
1085
1086	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
1087	Confidence float64 `json:"confidence,omitempty"`
1088
1089	// Paragraphs: List of paragraphs in this block (if this blocks is of
1090	// type text).
1091	Paragraphs []*Paragraph `json:"paragraphs,omitempty"`
1092
1093	// Property: Additional information detected for the block.
1094	Property *TextProperty `json:"property,omitempty"`
1095
1096	// ForceSendFields is a list of field names (e.g. "BlockType") to
1097	// unconditionally include in API requests. By default, fields with
1098	// empty values are omitted from API requests. However, any non-pointer,
1099	// non-interface field appearing in ForceSendFields will be sent to the
1100	// server regardless of whether the field is empty or not. This may be
1101	// used to include empty fields in Patch requests.
1102	ForceSendFields []string `json:"-"`
1103
1104	// NullFields is a list of field names (e.g. "BlockType") to include in
1105	// API requests with the JSON null value. By default, fields with empty
1106	// values are omitted from API requests. However, any field with an
1107	// empty value appearing in NullFields will be sent to the server as
1108	// null. It is an error if a field in this list has a non-empty value.
1109	// This may be used to include null fields in Patch requests.
1110	NullFields []string `json:"-"`
1111}
1112
1113func (s *Block) MarshalJSON() ([]byte, error) {
1114	type NoMethod Block
1115	raw := NoMethod(*s)
1116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1117}
1118
1119func (s *Block) UnmarshalJSON(data []byte) error {
1120	type NoMethod Block
1121	var s1 struct {
1122		Confidence gensupport.JSONFloat64 `json:"confidence"`
1123		*NoMethod
1124	}
1125	s1.NoMethod = (*NoMethod)(s)
1126	if err := json.Unmarshal(data, &s1); err != nil {
1127		return err
1128	}
1129	s.Confidence = float64(s1.Confidence)
1130	return nil
1131}
1132
1133// BoundingPoly: A bounding polygon for the detected image annotation.
1134type BoundingPoly struct {
1135	// NormalizedVertices: The bounding polygon normalized vertices.
1136	NormalizedVertices []*NormalizedVertex `json:"normalizedVertices,omitempty"`
1137
1138	// Vertices: The bounding polygon vertices.
1139	Vertices []*Vertex `json:"vertices,omitempty"`
1140
1141	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
1142	// to unconditionally include in API requests. By default, fields with
1143	// empty values are omitted from API requests. However, any non-pointer,
1144	// non-interface field appearing in ForceSendFields will be sent to the
1145	// server regardless of whether the field is empty or not. This may be
1146	// used to include empty fields in Patch requests.
1147	ForceSendFields []string `json:"-"`
1148
1149	// NullFields is a list of field names (e.g. "NormalizedVertices") to
1150	// include in API requests with the JSON null value. By default, fields
1151	// with empty values are omitted from API requests. However, any field
1152	// with an empty value appearing in NullFields will be sent to the
1153	// server as null. It is an error if a field in this list has a
1154	// non-empty value. This may be used to include null fields in Patch
1155	// requests.
1156	NullFields []string `json:"-"`
1157}
1158
1159func (s *BoundingPoly) MarshalJSON() ([]byte, error) {
1160	type NoMethod BoundingPoly
1161	raw := NoMethod(*s)
1162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1163}
1164
1165// CancelOperationRequest: The request message for
1166// Operations.CancelOperation.
1167type CancelOperationRequest struct {
1168}
1169
1170// Color: Represents a color in the RGBA color space. This
1171// representation is designed
1172// for simplicity of conversion to/from color representations in
1173// various
1174// languages over compactness; for example, the fields of this
1175// representation
1176// can be trivially provided to the constructor of "java.awt.Color" in
1177// Java; it
1178// can also be trivially provided to UIColor's
1179// "+colorWithRed:green:blue:alpha"
1180// method in iOS; and, with just a little work, it can be easily
1181// formatted into
1182// a CSS "rgba()" string in JavaScript, as well.
1183//
1184// Note: this proto does not carry information about the absolute color
1185// space
1186// that should be used to interpret the RGB value (e.g. sRGB, Adobe
1187// RGB,
1188// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
1189// sRGB color
1190// space.
1191//
1192// Example (Java):
1193//
1194//      import com.google.type.Color;
1195//
1196//      // ...
1197//      public static java.awt.Color fromProto(Color protocolor) {
1198//        float alpha = protocolor.hasAlpha()
1199//            ? protocolor.getAlpha().getValue()
1200//            : 1.0;
1201//
1202//        return new java.awt.Color(
1203//            protocolor.getRed(),
1204//            protocolor.getGreen(),
1205//            protocolor.getBlue(),
1206//            alpha);
1207//      }
1208//
1209//      public static Color toProto(java.awt.Color color) {
1210//        float red = (float) color.getRed();
1211//        float green = (float) color.getGreen();
1212//        float blue = (float) color.getBlue();
1213//        float denominator = 255.0;
1214//        Color.Builder resultBuilder =
1215//            Color
1216//                .newBuilder()
1217//                .setRed(red / denominator)
1218//                .setGreen(green / denominator)
1219//                .setBlue(blue / denominator);
1220//        int alpha = color.getAlpha();
1221//        if (alpha != 255) {
1222//          result.setAlpha(
1223//              FloatValue
1224//                  .newBuilder()
1225//                  .setValue(((float) alpha) / denominator)
1226//                  .build());
1227//        }
1228//        return resultBuilder.build();
1229//      }
1230//      // ...
1231//
1232// Example (iOS / Obj-C):
1233//
1234//      // ...
1235//      static UIColor* fromProto(Color* protocolor) {
1236//         float red = [protocolor red];
1237//         float green = [protocolor green];
1238//         float blue = [protocolor blue];
1239//         FloatValue* alpha_wrapper = [protocolor alpha];
1240//         float alpha = 1.0;
1241//         if (alpha_wrapper != nil) {
1242//           alpha = [alpha_wrapper value];
1243//         }
1244//         return [UIColor colorWithRed:red green:green blue:blue
1245// alpha:alpha];
1246//      }
1247//
1248//      static Color* toProto(UIColor* color) {
1249//          CGFloat red, green, blue, alpha;
1250//          if (![color getRed:&red green:&green blue:&blue
1251// alpha:&alpha]) {
1252//            return nil;
1253//          }
1254//          Color* result = [[Color alloc] init];
1255//          [result setRed:red];
1256//          [result setGreen:green];
1257//          [result setBlue:blue];
1258//          if (alpha <= 0.9999) {
1259//            [result setAlpha:floatWrapperWithValue(alpha)];
1260//          }
1261//          [result autorelease];
1262//          return result;
1263//     }
1264//     // ...
1265//
1266//  Example (JavaScript):
1267//
1268//     // ...
1269//
1270//     var protoToCssColor = function(rgb_color) {
1271//        var redFrac = rgb_color.red || 0.0;
1272//        var greenFrac = rgb_color.green || 0.0;
1273//        var blueFrac = rgb_color.blue || 0.0;
1274//        var red = Math.floor(redFrac * 255);
1275//        var green = Math.floor(greenFrac * 255);
1276//        var blue = Math.floor(blueFrac * 255);
1277//
1278//        if (!('alpha' in rgb_color)) {
1279//           return rgbToCssColor_(red, green, blue);
1280//        }
1281//
1282//        var alphaFrac = rgb_color.alpha.value || 0.0;
1283//        var rgbParams = [red, green, blue].join(',');
1284//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1285//     };
1286//
1287//     var rgbToCssColor_ = function(red, green, blue) {
1288//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1289//       var hexString = rgbNumber.toString(16);
1290//       var missingZeros = 6 - hexString.length;
1291//       var resultBuilder = ['#'];
1292//       for (var i = 0; i < missingZeros; i++) {
1293//          resultBuilder.push('0');
1294//       }
1295//       resultBuilder.push(hexString);
1296//       return resultBuilder.join('');
1297//     };
1298//
1299//     // ...
1300type Color struct {
1301	// Alpha: The fraction of this color that should be applied to the
1302	// pixel. That is,
1303	// the final pixel color is defined by the equation:
1304	//
1305	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
1306	// color)
1307	//
1308	// This means that a value of 1.0 corresponds to a solid color,
1309	// whereas
1310	// a value of 0.0 corresponds to a completely transparent color.
1311	// This
1312	// uses a wrapper message rather than a simple float scalar so that it
1313	// is
1314	// possible to distinguish between a default value and the value being
1315	// unset.
1316	// If omitted, this color object is to be rendered as a solid color
1317	// (as if the alpha value had been explicitly given with a value of
1318	// 1.0).
1319	Alpha float64 `json:"alpha,omitempty"`
1320
1321	// Blue: The amount of blue in the color as a value in the interval [0,
1322	// 1].
1323	Blue float64 `json:"blue,omitempty"`
1324
1325	// Green: The amount of green in the color as a value in the interval
1326	// [0, 1].
1327	Green float64 `json:"green,omitempty"`
1328
1329	// Red: The amount of red in the color as a value in the interval [0,
1330	// 1].
1331	Red float64 `json:"red,omitempty"`
1332
1333	// ForceSendFields is a list of field names (e.g. "Alpha") to
1334	// unconditionally include in API requests. By default, fields with
1335	// empty values are omitted from API requests. However, any non-pointer,
1336	// non-interface field appearing in ForceSendFields will be sent to the
1337	// server regardless of whether the field is empty or not. This may be
1338	// used to include empty fields in Patch requests.
1339	ForceSendFields []string `json:"-"`
1340
1341	// NullFields is a list of field names (e.g. "Alpha") to include in API
1342	// requests with the JSON null value. By default, fields with empty
1343	// values are omitted from API requests. However, any field with an
1344	// empty value appearing in NullFields will be sent to the server as
1345	// null. It is an error if a field in this list has a non-empty value.
1346	// This may be used to include null fields in Patch requests.
1347	NullFields []string `json:"-"`
1348}
1349
1350func (s *Color) MarshalJSON() ([]byte, error) {
1351	type NoMethod Color
1352	raw := NoMethod(*s)
1353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1354}
1355
1356func (s *Color) UnmarshalJSON(data []byte) error {
1357	type NoMethod Color
1358	var s1 struct {
1359		Alpha gensupport.JSONFloat64 `json:"alpha"`
1360		Blue  gensupport.JSONFloat64 `json:"blue"`
1361		Green gensupport.JSONFloat64 `json:"green"`
1362		Red   gensupport.JSONFloat64 `json:"red"`
1363		*NoMethod
1364	}
1365	s1.NoMethod = (*NoMethod)(s)
1366	if err := json.Unmarshal(data, &s1); err != nil {
1367		return err
1368	}
1369	s.Alpha = float64(s1.Alpha)
1370	s.Blue = float64(s1.Blue)
1371	s.Green = float64(s1.Green)
1372	s.Red = float64(s1.Red)
1373	return nil
1374}
1375
1376// ColorInfo: Color information consists of RGB channels, score, and the
1377// fraction of
1378// the image that the color occupies in the image.
1379type ColorInfo struct {
1380	// Color: RGB components of the color.
1381	Color *Color `json:"color,omitempty"`
1382
1383	// PixelFraction: The fraction of pixels the color occupies in the
1384	// image.
1385	// Value in range [0, 1].
1386	PixelFraction float64 `json:"pixelFraction,omitempty"`
1387
1388	// Score: Image-specific score for this color. Value in range [0, 1].
1389	Score float64 `json:"score,omitempty"`
1390
1391	// ForceSendFields is a list of field names (e.g. "Color") to
1392	// unconditionally include in API requests. By default, fields with
1393	// empty values are omitted from API requests. However, any non-pointer,
1394	// non-interface field appearing in ForceSendFields will be sent to the
1395	// server regardless of whether the field is empty or not. This may be
1396	// used to include empty fields in Patch requests.
1397	ForceSendFields []string `json:"-"`
1398
1399	// NullFields is a list of field names (e.g. "Color") to include in API
1400	// requests with the JSON null value. By default, fields with empty
1401	// values are omitted from API requests. However, any field with an
1402	// empty value appearing in NullFields will be sent to the server as
1403	// null. It is an error if a field in this list has a non-empty value.
1404	// This may be used to include null fields in Patch requests.
1405	NullFields []string `json:"-"`
1406}
1407
1408func (s *ColorInfo) MarshalJSON() ([]byte, error) {
1409	type NoMethod ColorInfo
1410	raw := NoMethod(*s)
1411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1412}
1413
1414func (s *ColorInfo) UnmarshalJSON(data []byte) error {
1415	type NoMethod ColorInfo
1416	var s1 struct {
1417		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
1418		Score         gensupport.JSONFloat64 `json:"score"`
1419		*NoMethod
1420	}
1421	s1.NoMethod = (*NoMethod)(s)
1422	if err := json.Unmarshal(data, &s1); err != nil {
1423		return err
1424	}
1425	s.PixelFraction = float64(s1.PixelFraction)
1426	s.Score = float64(s1.Score)
1427	return nil
1428}
1429
1430// CropHint: Single crop hint that is used to generate a new crop when
1431// serving an image.
1432type CropHint struct {
1433	// BoundingPoly: The bounding polygon for the crop region. The
1434	// coordinates of the bounding
1435	// box are in the original image's scale.
1436	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1437
1438	// Confidence: Confidence of this being a salient region.  Range [0, 1].
1439	Confidence float64 `json:"confidence,omitempty"`
1440
1441	// ImportanceFraction: Fraction of importance of this salient region
1442	// with respect to the original
1443	// image.
1444	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
1445
1446	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1447	// unconditionally include in API requests. By default, fields with
1448	// empty values are omitted from API requests. However, any non-pointer,
1449	// non-interface field appearing in ForceSendFields will be sent to the
1450	// server regardless of whether the field is empty or not. This may be
1451	// used to include empty fields in Patch requests.
1452	ForceSendFields []string `json:"-"`
1453
1454	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1455	// in API requests with the JSON null value. By default, fields with
1456	// empty values are omitted from API requests. However, any field with
1457	// an empty value appearing in NullFields will be sent to the server as
1458	// null. It is an error if a field in this list has a non-empty value.
1459	// This may be used to include null fields in Patch requests.
1460	NullFields []string `json:"-"`
1461}
1462
1463func (s *CropHint) MarshalJSON() ([]byte, error) {
1464	type NoMethod CropHint
1465	raw := NoMethod(*s)
1466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1467}
1468
1469func (s *CropHint) UnmarshalJSON(data []byte) error {
1470	type NoMethod CropHint
1471	var s1 struct {
1472		Confidence         gensupport.JSONFloat64 `json:"confidence"`
1473		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
1474		*NoMethod
1475	}
1476	s1.NoMethod = (*NoMethod)(s)
1477	if err := json.Unmarshal(data, &s1); err != nil {
1478		return err
1479	}
1480	s.Confidence = float64(s1.Confidence)
1481	s.ImportanceFraction = float64(s1.ImportanceFraction)
1482	return nil
1483}
1484
1485// CropHintsAnnotation: Set of crop hints that are used to generate new
1486// crops when serving images.
1487type CropHintsAnnotation struct {
1488	// CropHints: Crop hint results.
1489	CropHints []*CropHint `json:"cropHints,omitempty"`
1490
1491	// ForceSendFields is a list of field names (e.g. "CropHints") to
1492	// unconditionally include in API requests. By default, fields with
1493	// empty values are omitted from API requests. However, any non-pointer,
1494	// non-interface field appearing in ForceSendFields will be sent to the
1495	// server regardless of whether the field is empty or not. This may be
1496	// used to include empty fields in Patch requests.
1497	ForceSendFields []string `json:"-"`
1498
1499	// NullFields is a list of field names (e.g. "CropHints") to include in
1500	// API requests with the JSON null value. By default, fields with empty
1501	// values are omitted from API requests. However, any field with an
1502	// empty value appearing in NullFields will be sent to the server as
1503	// null. It is an error if a field in this list has a non-empty value.
1504	// This may be used to include null fields in Patch requests.
1505	NullFields []string `json:"-"`
1506}
1507
1508func (s *CropHintsAnnotation) MarshalJSON() ([]byte, error) {
1509	type NoMethod CropHintsAnnotation
1510	raw := NoMethod(*s)
1511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1512}
1513
1514// CropHintsParams: Parameters for crop hints annotation request.
1515type CropHintsParams struct {
1516	// AspectRatios: Aspect ratios in floats, representing the ratio of the
1517	// width to the height
1518	// of the image. For example, if the desired aspect ratio is 4/3,
1519	// the
1520	// corresponding float value should be 1.33333.  If not specified,
1521	// the
1522	// best possible crop is returned. The number of provided aspect ratios
1523	// is
1524	// limited to a maximum of 16; any aspect ratios provided after the 16th
1525	// are
1526	// ignored.
1527	AspectRatios []float64 `json:"aspectRatios,omitempty"`
1528
1529	// ForceSendFields is a list of field names (e.g. "AspectRatios") to
1530	// unconditionally include in API requests. By default, fields with
1531	// empty values are omitted from API requests. However, any non-pointer,
1532	// non-interface field appearing in ForceSendFields will be sent to the
1533	// server regardless of whether the field is empty or not. This may be
1534	// used to include empty fields in Patch requests.
1535	ForceSendFields []string `json:"-"`
1536
1537	// NullFields is a list of field names (e.g. "AspectRatios") to include
1538	// in API requests with the JSON null value. By default, fields with
1539	// empty values are omitted from API requests. However, any field with
1540	// an empty value appearing in NullFields will be sent to the server as
1541	// null. It is an error if a field in this list has a non-empty value.
1542	// This may be used to include null fields in Patch requests.
1543	NullFields []string `json:"-"`
1544}
1545
1546func (s *CropHintsParams) MarshalJSON() ([]byte, error) {
1547	type NoMethod CropHintsParams
1548	raw := NoMethod(*s)
1549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1550}
1551
1552// DetectedBreak: Detected start or end of a structural component.
1553type DetectedBreak struct {
1554	// IsPrefix: True if break prepends the element.
1555	IsPrefix bool `json:"isPrefix,omitempty"`
1556
1557	// Type: Detected break type.
1558	//
1559	// Possible values:
1560	//   "UNKNOWN" - Unknown break label type.
1561	//   "SPACE" - Regular space.
1562	//   "SURE_SPACE" - Sure space (very wide).
1563	//   "EOL_SURE_SPACE" - Line-wrapping break.
1564	//   "HYPHEN" - End-line hyphen that is not present in text; does not
1565	// co-occur with
1566	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
1567	//   "LINE_BREAK" - Line break that ends a paragraph.
1568	Type string `json:"type,omitempty"`
1569
1570	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
1571	// unconditionally include in API requests. By default, fields with
1572	// empty values are omitted from API requests. However, any non-pointer,
1573	// non-interface field appearing in ForceSendFields will be sent to the
1574	// server regardless of whether the field is empty or not. This may be
1575	// used to include empty fields in Patch requests.
1576	ForceSendFields []string `json:"-"`
1577
1578	// NullFields is a list of field names (e.g. "IsPrefix") to include in
1579	// API requests with the JSON null value. By default, fields with empty
1580	// values are omitted from API requests. However, any field with an
1581	// empty value appearing in NullFields will be sent to the server as
1582	// null. It is an error if a field in this list has a non-empty value.
1583	// This may be used to include null fields in Patch requests.
1584	NullFields []string `json:"-"`
1585}
1586
1587func (s *DetectedBreak) MarshalJSON() ([]byte, error) {
1588	type NoMethod DetectedBreak
1589	raw := NoMethod(*s)
1590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1591}
1592
1593// DetectedLanguage: Detected language for a structural component.
1594type DetectedLanguage struct {
1595	// Confidence: Confidence of detected language. Range [0, 1].
1596	Confidence float64 `json:"confidence,omitempty"`
1597
1598	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
1599	// For more
1600	// information,
1601	// see
1602	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
1603	LanguageCode string `json:"languageCode,omitempty"`
1604
1605	// ForceSendFields is a list of field names (e.g. "Confidence") to
1606	// unconditionally include in API requests. By default, fields with
1607	// empty values are omitted from API requests. However, any non-pointer,
1608	// non-interface field appearing in ForceSendFields will be sent to the
1609	// server regardless of whether the field is empty or not. This may be
1610	// used to include empty fields in Patch requests.
1611	ForceSendFields []string `json:"-"`
1612
1613	// NullFields is a list of field names (e.g. "Confidence") to include in
1614	// API requests with the JSON null value. By default, fields with empty
1615	// values are omitted from API requests. However, any field with an
1616	// empty value appearing in NullFields will be sent to the server as
1617	// null. It is an error if a field in this list has a non-empty value.
1618	// This may be used to include null fields in Patch requests.
1619	NullFields []string `json:"-"`
1620}
1621
1622func (s *DetectedLanguage) MarshalJSON() ([]byte, error) {
1623	type NoMethod DetectedLanguage
1624	raw := NoMethod(*s)
1625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1626}
1627
1628func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
1629	type NoMethod DetectedLanguage
1630	var s1 struct {
1631		Confidence gensupport.JSONFloat64 `json:"confidence"`
1632		*NoMethod
1633	}
1634	s1.NoMethod = (*NoMethod)(s)
1635	if err := json.Unmarshal(data, &s1); err != nil {
1636		return err
1637	}
1638	s.Confidence = float64(s1.Confidence)
1639	return nil
1640}
1641
1642// DominantColorsAnnotation: Set of dominant colors and their
1643// corresponding scores.
1644type DominantColorsAnnotation struct {
1645	// Colors: RGB color values with their score and pixel fraction.
1646	Colors []*ColorInfo `json:"colors,omitempty"`
1647
1648	// ForceSendFields is a list of field names (e.g. "Colors") to
1649	// unconditionally include in API requests. By default, fields with
1650	// empty values are omitted from API requests. However, any non-pointer,
1651	// non-interface field appearing in ForceSendFields will be sent to the
1652	// server regardless of whether the field is empty or not. This may be
1653	// used to include empty fields in Patch requests.
1654	ForceSendFields []string `json:"-"`
1655
1656	// NullFields is a list of field names (e.g. "Colors") to include in API
1657	// requests with the JSON null value. By default, fields with empty
1658	// values are omitted from API requests. However, any field with an
1659	// empty value appearing in NullFields will be sent to the server as
1660	// null. It is an error if a field in this list has a non-empty value.
1661	// This may be used to include null fields in Patch requests.
1662	NullFields []string `json:"-"`
1663}
1664
1665func (s *DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
1666	type NoMethod DominantColorsAnnotation
1667	raw := NoMethod(*s)
1668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1669}
1670
1671// Empty: A generic empty message that you can re-use to avoid defining
1672// duplicated
1673// empty messages in your APIs. A typical example is to use it as the
1674// request
1675// or the response type of an API method. For instance:
1676//
1677//     service Foo {
1678//       rpc Bar(google.protobuf.Empty) returns
1679// (google.protobuf.Empty);
1680//     }
1681//
1682// The JSON representation for `Empty` is empty JSON object `{}`.
1683type Empty struct {
1684	// ServerResponse contains the HTTP response code and headers from the
1685	// server.
1686	googleapi.ServerResponse `json:"-"`
1687}
1688
1689// EntityAnnotation: Set of detected entity features.
1690type EntityAnnotation struct {
1691	// BoundingPoly: Image region to which this entity belongs. Not
1692	// produced
1693	// for `LABEL_DETECTION` features.
1694	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1695
1696	// Confidence: **Deprecated. Use `score` instead.**
1697	// The accuracy of the entity detection in an image.
1698	// For example, for an image in which the "Eiffel Tower" entity is
1699	// detected,
1700	// this field represents the confidence that there is a tower in the
1701	// query
1702	// image. Range [0, 1].
1703	Confidence float64 `json:"confidence,omitempty"`
1704
1705	// Description: Entity textual description, expressed in its `locale`
1706	// language.
1707	Description string `json:"description,omitempty"`
1708
1709	// Locale: The language code for the locale in which the entity
1710	// textual
1711	// `description` is expressed.
1712	Locale string `json:"locale,omitempty"`
1713
1714	// Locations: The location information for the detected entity.
1715	// Multiple
1716	// `LocationInfo` elements can be present because one location
1717	// may
1718	// indicate the location of the scene in the image, and another
1719	// location
1720	// may indicate the location of the place where the image was
1721	// taken.
1722	// Location information is usually present for landmarks.
1723	Locations []*LocationInfo `json:"locations,omitempty"`
1724
1725	// Mid: Opaque entity ID. Some IDs may be available in
1726	// [Google Knowledge Graph
1727	// Search
1728	// API](https://developers.google.com/knowledge-graph/).
1729	Mid string `json:"mid,omitempty"`
1730
1731	// Properties: Some entities may have optional user-supplied `Property`
1732	// (name/value)
1733	// fields, such a score or string that qualifies the entity.
1734	Properties []*Property `json:"properties,omitempty"`
1735
1736	// Score: Overall score of the result. Range [0, 1].
1737	Score float64 `json:"score,omitempty"`
1738
1739	// Topicality: The relevancy of the ICA (Image Content Annotation) label
1740	// to the
1741	// image. For example, the relevancy of "tower" is likely higher to an
1742	// image
1743	// containing the detected "Eiffel Tower" than to an image containing
1744	// a
1745	// detected distant towering building, even though the confidence
1746	// that
1747	// there is a tower in each image may be the same. Range [0, 1].
1748	Topicality float64 `json:"topicality,omitempty"`
1749
1750	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
1751	// unconditionally include in API requests. By default, fields with
1752	// empty values are omitted from API requests. However, any non-pointer,
1753	// non-interface field appearing in ForceSendFields will be sent to the
1754	// server regardless of whether the field is empty or not. This may be
1755	// used to include empty fields in Patch requests.
1756	ForceSendFields []string `json:"-"`
1757
1758	// NullFields is a list of field names (e.g. "BoundingPoly") to include
1759	// in API requests with the JSON null value. By default, fields with
1760	// empty values are omitted from API requests. However, any field with
1761	// an empty value appearing in NullFields will be sent to the server as
1762	// null. It is an error if a field in this list has a non-empty value.
1763	// This may be used to include null fields in Patch requests.
1764	NullFields []string `json:"-"`
1765}
1766
1767func (s *EntityAnnotation) MarshalJSON() ([]byte, error) {
1768	type NoMethod EntityAnnotation
1769	raw := NoMethod(*s)
1770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1771}
1772
1773func (s *EntityAnnotation) UnmarshalJSON(data []byte) error {
1774	type NoMethod EntityAnnotation
1775	var s1 struct {
1776		Confidence gensupport.JSONFloat64 `json:"confidence"`
1777		Score      gensupport.JSONFloat64 `json:"score"`
1778		Topicality gensupport.JSONFloat64 `json:"topicality"`
1779		*NoMethod
1780	}
1781	s1.NoMethod = (*NoMethod)(s)
1782	if err := json.Unmarshal(data, &s1); err != nil {
1783		return err
1784	}
1785	s.Confidence = float64(s1.Confidence)
1786	s.Score = float64(s1.Score)
1787	s.Topicality = float64(s1.Topicality)
1788	return nil
1789}
1790
1791// FaceAnnotation: A face annotation object contains the results of face
1792// detection.
1793type FaceAnnotation struct {
1794	// AngerLikelihood: Anger likelihood.
1795	//
1796	// Possible values:
1797	//   "UNKNOWN" - Unknown likelihood.
1798	//   "VERY_UNLIKELY" - It is very unlikely.
1799	//   "UNLIKELY" - It is unlikely.
1800	//   "POSSIBLE" - It is possible.
1801	//   "LIKELY" - It is likely.
1802	//   "VERY_LIKELY" - It is very likely.
1803	AngerLikelihood string `json:"angerLikelihood,omitempty"`
1804
1805	// BlurredLikelihood: Blurred likelihood.
1806	//
1807	// Possible values:
1808	//   "UNKNOWN" - Unknown likelihood.
1809	//   "VERY_UNLIKELY" - It is very unlikely.
1810	//   "UNLIKELY" - It is unlikely.
1811	//   "POSSIBLE" - It is possible.
1812	//   "LIKELY" - It is likely.
1813	//   "VERY_LIKELY" - It is very likely.
1814	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
1815
1816	// BoundingPoly: The bounding polygon around the face. The coordinates
1817	// of the bounding box
1818	// are in the original image's scale.
1819	// The bounding box is computed to "frame" the face in accordance with
1820	// human
1821	// expectations. It is based on the landmarker results.
1822	// Note that one or more x and/or y coordinates may not be generated in
1823	// the
1824	// `BoundingPoly` (the polygon will be unbounded) if only a partial
1825	// face
1826	// appears in the image to be annotated.
1827	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
1828
1829	// DetectionConfidence: Detection confidence. Range [0, 1].
1830	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
1831
1832	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
1833	// than the
1834	// `boundingPoly`, and encloses only the skin part of the face.
1835	// Typically, it
1836	// is used to eliminate the face from any image analysis that detects
1837	// the
1838	// "amount of skin" visible in an image. It is not based on
1839	// the
1840	// landmarker results, only on the initial face detection, hence
1841	// the <code>fd</code> (face detection) prefix.
1842	FdBoundingPoly *BoundingPoly `json:"fdBoundingPoly,omitempty"`
1843
1844	// HeadwearLikelihood: Headwear likelihood.
1845	//
1846	// Possible values:
1847	//   "UNKNOWN" - Unknown likelihood.
1848	//   "VERY_UNLIKELY" - It is very unlikely.
1849	//   "UNLIKELY" - It is unlikely.
1850	//   "POSSIBLE" - It is possible.
1851	//   "LIKELY" - It is likely.
1852	//   "VERY_LIKELY" - It is very likely.
1853	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
1854
1855	// JoyLikelihood: Joy likelihood.
1856	//
1857	// Possible values:
1858	//   "UNKNOWN" - Unknown likelihood.
1859	//   "VERY_UNLIKELY" - It is very unlikely.
1860	//   "UNLIKELY" - It is unlikely.
1861	//   "POSSIBLE" - It is possible.
1862	//   "LIKELY" - It is likely.
1863	//   "VERY_LIKELY" - It is very likely.
1864	JoyLikelihood string `json:"joyLikelihood,omitempty"`
1865
1866	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
1867	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
1868
1869	// Landmarks: Detected face landmarks.
1870	Landmarks []*Landmark `json:"landmarks,omitempty"`
1871
1872	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
1873	// that the face is
1874	// pointing relative to the vertical plane perpendicular to the image.
1875	// Range
1876	// [-180,180].
1877	PanAngle float64 `json:"panAngle,omitempty"`
1878
1879	// RollAngle: Roll angle, which indicates the amount of
1880	// clockwise/anti-clockwise rotation
1881	// of the face relative to the image vertical about the axis
1882	// perpendicular to
1883	// the face. Range [-180,180].
1884	RollAngle float64 `json:"rollAngle,omitempty"`
1885
1886	// SorrowLikelihood: Sorrow likelihood.
1887	//
1888	// Possible values:
1889	//   "UNKNOWN" - Unknown likelihood.
1890	//   "VERY_UNLIKELY" - It is very unlikely.
1891	//   "UNLIKELY" - It is unlikely.
1892	//   "POSSIBLE" - It is possible.
1893	//   "LIKELY" - It is likely.
1894	//   "VERY_LIKELY" - It is very likely.
1895	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
1896
1897	// SurpriseLikelihood: Surprise likelihood.
1898	//
1899	// Possible values:
1900	//   "UNKNOWN" - Unknown likelihood.
1901	//   "VERY_UNLIKELY" - It is very unlikely.
1902	//   "UNLIKELY" - It is unlikely.
1903	//   "POSSIBLE" - It is possible.
1904	//   "LIKELY" - It is likely.
1905	//   "VERY_LIKELY" - It is very likely.
1906	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
1907
1908	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
1909	// that the face is
1910	// pointing relative to the image's horizontal plane. Range [-180,180].
1911	TiltAngle float64 `json:"tiltAngle,omitempty"`
1912
1913	// UnderExposedLikelihood: Under-exposed likelihood.
1914	//
1915	// Possible values:
1916	//   "UNKNOWN" - Unknown likelihood.
1917	//   "VERY_UNLIKELY" - It is very unlikely.
1918	//   "UNLIKELY" - It is unlikely.
1919	//   "POSSIBLE" - It is possible.
1920	//   "LIKELY" - It is likely.
1921	//   "VERY_LIKELY" - It is very likely.
1922	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
1923
1924	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
1925	// unconditionally include in API requests. By default, fields with
1926	// empty values are omitted from API requests. However, any non-pointer,
1927	// non-interface field appearing in ForceSendFields will be sent to the
1928	// server regardless of whether the field is empty or not. This may be
1929	// used to include empty fields in Patch requests.
1930	ForceSendFields []string `json:"-"`
1931
1932	// NullFields is a list of field names (e.g. "AngerLikelihood") to
1933	// include in API requests with the JSON null value. By default, fields
1934	// with empty values are omitted from API requests. However, any field
1935	// with an empty value appearing in NullFields will be sent to the
1936	// server as null. It is an error if a field in this list has a
1937	// non-empty value. This may be used to include null fields in Patch
1938	// requests.
1939	NullFields []string `json:"-"`
1940}
1941
1942func (s *FaceAnnotation) MarshalJSON() ([]byte, error) {
1943	type NoMethod FaceAnnotation
1944	raw := NoMethod(*s)
1945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1946}
1947
1948func (s *FaceAnnotation) UnmarshalJSON(data []byte) error {
1949	type NoMethod FaceAnnotation
1950	var s1 struct {
1951		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
1952		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
1953		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
1954		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
1955		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
1956		*NoMethod
1957	}
1958	s1.NoMethod = (*NoMethod)(s)
1959	if err := json.Unmarshal(data, &s1); err != nil {
1960		return err
1961	}
1962	s.DetectionConfidence = float64(s1.DetectionConfidence)
1963	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
1964	s.PanAngle = float64(s1.PanAngle)
1965	s.RollAngle = float64(s1.RollAngle)
1966	s.TiltAngle = float64(s1.TiltAngle)
1967	return nil
1968}
1969
1970// Feature: The type of Google Cloud Vision API detection to perform,
1971// and the maximum
1972// number of results to return for that type. Multiple `Feature` objects
1973// can
1974// be specified in the `features` list.
1975type Feature struct {
1976	// MaxResults: Maximum number of results of this type. Does not apply
1977	// to
1978	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
1979	MaxResults int64 `json:"maxResults,omitempty"`
1980
1981	// Model: Model to use for the feature.
1982	// Supported values: "builtin/stable" (the default if unset)
1983	// and
1984	// "builtin/latest".
1985	Model string `json:"model,omitempty"`
1986
1987	// Type: The feature type.
1988	//
1989	// Possible values:
1990	//   "TYPE_UNSPECIFIED" - Unspecified feature type.
1991	//   "FACE_DETECTION" - Run face detection.
1992	//   "LANDMARK_DETECTION" - Run landmark detection.
1993	//   "LOGO_DETECTION" - Run logo detection.
1994	//   "LABEL_DETECTION" - Run label detection.
1995	//   "TEXT_DETECTION" - Run text detection / optical character
1996	// recognition (OCR). Text detection
1997	// is optimized for areas of text within a larger image; if the image
1998	// is
1999	// a document, use `DOCUMENT_TEXT_DETECTION` instead.
2000	//   "DOCUMENT_TEXT_DETECTION" - Run dense text document OCR. Takes
2001	// precedence when both
2002	// `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present.
2003	//   "SAFE_SEARCH_DETECTION" - Run Safe Search to detect potentially
2004	// unsafe
2005	// or undesirable content.
2006	//   "IMAGE_PROPERTIES" - Compute a set of image properties, such as
2007	// the
2008	// image's dominant colors.
2009	//   "CROP_HINTS" - Run crop hints.
2010	//   "WEB_DETECTION" - Run web detection.
2011	//   "PRODUCT_SEARCH" - Run Product Search.
2012	//   "OBJECT_LOCALIZATION" - Run localizer for object detection.
2013	Type string `json:"type,omitempty"`
2014
2015	// ForceSendFields is a list of field names (e.g. "MaxResults") to
2016	// unconditionally include in API requests. By default, fields with
2017	// empty values are omitted from API requests. However, any non-pointer,
2018	// non-interface field appearing in ForceSendFields will be sent to the
2019	// server regardless of whether the field is empty or not. This may be
2020	// used to include empty fields in Patch requests.
2021	ForceSendFields []string `json:"-"`
2022
2023	// NullFields is a list of field names (e.g. "MaxResults") to include in
2024	// API requests with the JSON null value. By default, fields with empty
2025	// values are omitted from API requests. However, any field with an
2026	// empty value appearing in NullFields will be sent to the server as
2027	// null. It is an error if a field in this list has a non-empty value.
2028	// This may be used to include null fields in Patch requests.
2029	NullFields []string `json:"-"`
2030}
2031
2032func (s *Feature) MarshalJSON() ([]byte, error) {
2033	type NoMethod Feature
2034	raw := NoMethod(*s)
2035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2036}
2037
2038// GcsDestination: The Google Cloud Storage location where the output
2039// will be written to.
2040type GcsDestination struct {
2041	// Uri: Google Cloud Storage URI prefix where the results will be
2042	// stored. Results
2043	// will be in JSON format and preceded by its corresponding input URI
2044	// prefix.
2045	// This field can either represent a gcs file prefix or gcs directory.
2046	// In
2047	// either case, the uri should be unique because in order to get all of
2048	// the
2049	// output files, you will need to do a wildcard gcs search on the uri
2050	// prefix
2051	// you provide.
2052	//
2053	// Examples:
2054	//
2055	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
2056	// files
2057	// will be created in gs://bucket-name/here/ and the names of the
2058	// output files will begin with "filenameprefix".
2059	//
2060	// *    Directory Prefix: gs://bucket-name/some/location/   The output
2061	// files
2062	// will be created in gs://bucket-name/some/location/ and the names of
2063	// the
2064	// output files could be anything because there was no filename
2065	// prefix
2066	// specified.
2067	//
2068	// If multiple outputs, each response is still AnnotateFileResponse,
2069	// each of
2070	// which contains some subset of the full list of
2071	// AnnotateImageResponse.
2072	// Multiple outputs can happen if, for example, the output JSON is too
2073	// large
2074	// and overflows into multiple sharded files.
2075	Uri string `json:"uri,omitempty"`
2076
2077	// ForceSendFields is a list of field names (e.g. "Uri") to
2078	// unconditionally include in API requests. By default, fields with
2079	// empty values are omitted from API requests. However, any non-pointer,
2080	// non-interface field appearing in ForceSendFields will be sent to the
2081	// server regardless of whether the field is empty or not. This may be
2082	// used to include empty fields in Patch requests.
2083	ForceSendFields []string `json:"-"`
2084
2085	// NullFields is a list of field names (e.g. "Uri") to include in API
2086	// requests with the JSON null value. By default, fields with empty
2087	// values are omitted from API requests. However, any field with an
2088	// empty value appearing in NullFields will be sent to the server as
2089	// null. It is an error if a field in this list has a non-empty value.
2090	// This may be used to include null fields in Patch requests.
2091	NullFields []string `json:"-"`
2092}
2093
2094func (s *GcsDestination) MarshalJSON() ([]byte, error) {
2095	type NoMethod GcsDestination
2096	raw := NoMethod(*s)
2097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2098}
2099
2100// GcsSource: The Google Cloud Storage location where the input will be
2101// read from.
2102type GcsSource struct {
2103	// Uri: Google Cloud Storage URI for the input file. This must only be
2104	// a
2105	// Google Cloud Storage object. Wildcards are not currently supported.
2106	Uri string `json:"uri,omitempty"`
2107
2108	// ForceSendFields is a list of field names (e.g. "Uri") to
2109	// unconditionally include in API requests. By default, fields with
2110	// empty values are omitted from API requests. However, any non-pointer,
2111	// non-interface field appearing in ForceSendFields will be sent to the
2112	// server regardless of whether the field is empty or not. This may be
2113	// used to include empty fields in Patch requests.
2114	ForceSendFields []string `json:"-"`
2115
2116	// NullFields is a list of field names (e.g. "Uri") to include in API
2117	// requests with the JSON null value. By default, fields with empty
2118	// values are omitted from API requests. However, any field with an
2119	// empty value appearing in NullFields will be sent to the server as
2120	// null. It is an error if a field in this list has a non-empty value.
2121	// This may be used to include null fields in Patch requests.
2122	NullFields []string `json:"-"`
2123}
2124
2125func (s *GcsSource) MarshalJSON() ([]byte, error) {
2126	type NoMethod GcsSource
2127	raw := NoMethod(*s)
2128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2129}
2130
2131// GoogleCloudVisionV1p1beta1AnnotateFileResponse: Response to a single
2132// file annotation request. A file may contain one or more
2133// images, which individually have their own responses.
2134type GoogleCloudVisionV1p1beta1AnnotateFileResponse struct {
2135	// Error: If set, represents the error message for the failed request.
2136	// The
2137	// `responses` field will not be set in this case.
2138	Error *Status `json:"error,omitempty"`
2139
2140	// InputConfig: Information about the file for which this response is
2141	// generated.
2142	InputConfig *GoogleCloudVisionV1p1beta1InputConfig `json:"inputConfig,omitempty"`
2143
2144	// Responses: Individual responses to images found within the file. This
2145	// field will be
2146	// empty if the `error` field is set.
2147	Responses []*GoogleCloudVisionV1p1beta1AnnotateImageResponse `json:"responses,omitempty"`
2148
2149	// TotalPages: This field gives the total number of pages in the file.
2150	TotalPages int64 `json:"totalPages,omitempty"`
2151
2152	// ForceSendFields is a list of field names (e.g. "Error") to
2153	// unconditionally include in API requests. By default, fields with
2154	// empty values are omitted from API requests. However, any non-pointer,
2155	// non-interface field appearing in ForceSendFields will be sent to the
2156	// server regardless of whether the field is empty or not. This may be
2157	// used to include empty fields in Patch requests.
2158	ForceSendFields []string `json:"-"`
2159
2160	// NullFields is a list of field names (e.g. "Error") to include in API
2161	// requests with the JSON null value. By default, fields with empty
2162	// values are omitted from API requests. However, any field with an
2163	// empty value appearing in NullFields will be sent to the server as
2164	// null. It is an error if a field in this list has a non-empty value.
2165	// This may be used to include null fields in Patch requests.
2166	NullFields []string `json:"-"`
2167}
2168
2169func (s *GoogleCloudVisionV1p1beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
2170	type NoMethod GoogleCloudVisionV1p1beta1AnnotateFileResponse
2171	raw := NoMethod(*s)
2172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2173}
2174
2175// GoogleCloudVisionV1p1beta1AnnotateImageResponse: Response to an image
2176// annotation request.
2177type GoogleCloudVisionV1p1beta1AnnotateImageResponse struct {
2178	// Context: If present, contextual information is needed to understand
2179	// where this image
2180	// comes from.
2181	Context *GoogleCloudVisionV1p1beta1ImageAnnotationContext `json:"context,omitempty"`
2182
2183	// CropHintsAnnotation: If present, crop hints have completed
2184	// successfully.
2185	CropHintsAnnotation *GoogleCloudVisionV1p1beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
2186
2187	// Error: If set, represents the error message for the operation.
2188	// Note that filled-in image annotations are guaranteed to be
2189	// correct, even when `error` is set.
2190	Error *Status `json:"error,omitempty"`
2191
2192	// FaceAnnotations: If present, face detection has completed
2193	// successfully.
2194	FaceAnnotations []*GoogleCloudVisionV1p1beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
2195
2196	// FullTextAnnotation: If present, text (OCR) detection or document
2197	// (OCR) text detection has
2198	// completed successfully.
2199	// This annotation provides the structural hierarchy for the OCR
2200	// detected
2201	// text.
2202	FullTextAnnotation *GoogleCloudVisionV1p1beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
2203
2204	// ImagePropertiesAnnotation: If present, image properties were
2205	// extracted successfully.
2206	ImagePropertiesAnnotation *GoogleCloudVisionV1p1beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
2207
2208	// LabelAnnotations: If present, label detection has completed
2209	// successfully.
2210	LabelAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
2211
2212	// LandmarkAnnotations: If present, landmark detection has completed
2213	// successfully.
2214	LandmarkAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
2215
2216	// LocalizedObjectAnnotations: If present, localized object detection
2217	// has completed successfully.
2218	// This will be sorted descending by confidence score.
2219	LocalizedObjectAnnotations []*GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
2220
2221	// LogoAnnotations: If present, logo detection has completed
2222	// successfully.
2223	LogoAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
2224
2225	// ProductSearchResults: If present, product search has completed
2226	// successfully.
2227	ProductSearchResults *GoogleCloudVisionV1p1beta1ProductSearchResults `json:"productSearchResults,omitempty"`
2228
2229	// SafeSearchAnnotation: If present, safe-search annotation has
2230	// completed successfully.
2231	SafeSearchAnnotation *GoogleCloudVisionV1p1beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
2232
2233	// TextAnnotations: If present, text (OCR) detection has completed
2234	// successfully.
2235	TextAnnotations []*GoogleCloudVisionV1p1beta1EntityAnnotation `json:"textAnnotations,omitempty"`
2236
2237	// WebDetection: If present, web detection has completed successfully.
2238	WebDetection *GoogleCloudVisionV1p1beta1WebDetection `json:"webDetection,omitempty"`
2239
2240	// ForceSendFields is a list of field names (e.g. "Context") to
2241	// unconditionally include in API requests. By default, fields with
2242	// empty values are omitted from API requests. However, any non-pointer,
2243	// non-interface field appearing in ForceSendFields will be sent to the
2244	// server regardless of whether the field is empty or not. This may be
2245	// used to include empty fields in Patch requests.
2246	ForceSendFields []string `json:"-"`
2247
2248	// NullFields is a list of field names (e.g. "Context") to include in
2249	// API requests with the JSON null value. By default, fields with empty
2250	// values are omitted from API requests. However, any field with an
2251	// empty value appearing in NullFields will be sent to the server as
2252	// null. It is an error if a field in this list has a non-empty value.
2253	// This may be used to include null fields in Patch requests.
2254	NullFields []string `json:"-"`
2255}
2256
2257func (s *GoogleCloudVisionV1p1beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
2258	type NoMethod GoogleCloudVisionV1p1beta1AnnotateImageResponse
2259	raw := NoMethod(*s)
2260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2261}
2262
2263// GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse: The response for
2264// a single offline file annotation request.
2265type GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse struct {
2266	// OutputConfig: The output location and metadata from
2267	// AsyncAnnotateFileRequest.
2268	OutputConfig *GoogleCloudVisionV1p1beta1OutputConfig `json:"outputConfig,omitempty"`
2269
2270	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
2271	// unconditionally include in API requests. By default, fields with
2272	// empty values are omitted from API requests. However, any non-pointer,
2273	// non-interface field appearing in ForceSendFields will be sent to the
2274	// server regardless of whether the field is empty or not. This may be
2275	// used to include empty fields in Patch requests.
2276	ForceSendFields []string `json:"-"`
2277
2278	// NullFields is a list of field names (e.g. "OutputConfig") to include
2279	// in API requests with the JSON null value. By default, fields with
2280	// empty values are omitted from API requests. However, any field with
2281	// an empty value appearing in NullFields will be sent to the server as
2282	// null. It is an error if a field in this list has a non-empty value.
2283	// This may be used to include null fields in Patch requests.
2284	NullFields []string `json:"-"`
2285}
2286
2287func (s *GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
2288	type NoMethod GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse
2289	raw := NoMethod(*s)
2290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2291}
2292
2293// GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse: Response
2294// to an async batch file annotation request.
2295type GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse struct {
2296	// Responses: The list of file annotation responses, one for each
2297	// request in
2298	// AsyncBatchAnnotateFilesRequest.
2299	Responses []*GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
2300
2301	// ForceSendFields is a list of field names (e.g. "Responses") to
2302	// unconditionally include in API requests. By default, fields with
2303	// empty values are omitted from API requests. However, any non-pointer,
2304	// non-interface field appearing in ForceSendFields will be sent to the
2305	// server regardless of whether the field is empty or not. This may be
2306	// used to include empty fields in Patch requests.
2307	ForceSendFields []string `json:"-"`
2308
2309	// NullFields is a list of field names (e.g. "Responses") to include in
2310	// API requests with the JSON null value. By default, fields with empty
2311	// values are omitted from API requests. However, any field with an
2312	// empty value appearing in NullFields will be sent to the server as
2313	// null. It is an error if a field in this list has a non-empty value.
2314	// This may be used to include null fields in Patch requests.
2315	NullFields []string `json:"-"`
2316}
2317
2318func (s *GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
2319	type NoMethod GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse
2320	raw := NoMethod(*s)
2321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2322}
2323
2324// GoogleCloudVisionV1p1beta1Block: Logical element on the page.
2325type GoogleCloudVisionV1p1beta1Block struct {
2326	// BlockType: Detected block type (text, image etc) for this block.
2327	//
2328	// Possible values:
2329	//   "UNKNOWN" - Unknown block type.
2330	//   "TEXT" - Regular text block.
2331	//   "TABLE" - Table block.
2332	//   "PICTURE" - Image block.
2333	//   "RULER" - Horizontal/vertical line box.
2334	//   "BARCODE" - Barcode block.
2335	BlockType string `json:"blockType,omitempty"`
2336
2337	// BoundingBox: The bounding box for the block.
2338	// The vertices are in the order of top-left, top-right,
2339	// bottom-right,
2340	// bottom-left. When a rotation of the bounding box is detected the
2341	// rotation
2342	// is represented as around the top-left corner as defined when the text
2343	// is
2344	// read in the 'natural' orientation.
2345	// For example:
2346	//
2347	// * when the text is horizontal it might look like:
2348	//
2349	//         0----1
2350	//         |    |
2351	//         3----2
2352	//
2353	// * when it's rotated 180 degrees around the top-left corner it
2354	// becomes:
2355	//
2356	//         2----3
2357	//         |    |
2358	//         1----0
2359	//
2360	//   and the vertex order will still be (0, 1, 2, 3).
2361	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
2362
2363	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
2364	Confidence float64 `json:"confidence,omitempty"`
2365
2366	// Paragraphs: List of paragraphs in this block (if this blocks is of
2367	// type text).
2368	Paragraphs []*GoogleCloudVisionV1p1beta1Paragraph `json:"paragraphs,omitempty"`
2369
2370	// Property: Additional information detected for the block.
2371	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
2372
2373	// ForceSendFields is a list of field names (e.g. "BlockType") to
2374	// unconditionally include in API requests. By default, fields with
2375	// empty values are omitted from API requests. However, any non-pointer,
2376	// non-interface field appearing in ForceSendFields will be sent to the
2377	// server regardless of whether the field is empty or not. This may be
2378	// used to include empty fields in Patch requests.
2379	ForceSendFields []string `json:"-"`
2380
2381	// NullFields is a list of field names (e.g. "BlockType") to include in
2382	// API requests with the JSON null value. By default, fields with empty
2383	// values are omitted from API requests. However, any field with an
2384	// empty value appearing in NullFields will be sent to the server as
2385	// null. It is an error if a field in this list has a non-empty value.
2386	// This may be used to include null fields in Patch requests.
2387	NullFields []string `json:"-"`
2388}
2389
2390func (s *GoogleCloudVisionV1p1beta1Block) MarshalJSON() ([]byte, error) {
2391	type NoMethod GoogleCloudVisionV1p1beta1Block
2392	raw := NoMethod(*s)
2393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2394}
2395
2396func (s *GoogleCloudVisionV1p1beta1Block) UnmarshalJSON(data []byte) error {
2397	type NoMethod GoogleCloudVisionV1p1beta1Block
2398	var s1 struct {
2399		Confidence gensupport.JSONFloat64 `json:"confidence"`
2400		*NoMethod
2401	}
2402	s1.NoMethod = (*NoMethod)(s)
2403	if err := json.Unmarshal(data, &s1); err != nil {
2404		return err
2405	}
2406	s.Confidence = float64(s1.Confidence)
2407	return nil
2408}
2409
2410// GoogleCloudVisionV1p1beta1BoundingPoly: A bounding polygon for the
2411// detected image annotation.
2412type GoogleCloudVisionV1p1beta1BoundingPoly struct {
2413	// NormalizedVertices: The bounding polygon normalized vertices.
2414	NormalizedVertices []*GoogleCloudVisionV1p1beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
2415
2416	// Vertices: The bounding polygon vertices.
2417	Vertices []*GoogleCloudVisionV1p1beta1Vertex `json:"vertices,omitempty"`
2418
2419	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
2420	// to unconditionally include in API requests. By default, fields with
2421	// empty values are omitted from API requests. However, any non-pointer,
2422	// non-interface field appearing in ForceSendFields will be sent to the
2423	// server regardless of whether the field is empty or not. This may be
2424	// used to include empty fields in Patch requests.
2425	ForceSendFields []string `json:"-"`
2426
2427	// NullFields is a list of field names (e.g. "NormalizedVertices") to
2428	// include in API requests with the JSON null value. By default, fields
2429	// with empty values are omitted from API requests. However, any field
2430	// with an empty value appearing in NullFields will be sent to the
2431	// server as null. It is an error if a field in this list has a
2432	// non-empty value. This may be used to include null fields in Patch
2433	// requests.
2434	NullFields []string `json:"-"`
2435}
2436
2437func (s *GoogleCloudVisionV1p1beta1BoundingPoly) MarshalJSON() ([]byte, error) {
2438	type NoMethod GoogleCloudVisionV1p1beta1BoundingPoly
2439	raw := NoMethod(*s)
2440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2441}
2442
2443// GoogleCloudVisionV1p1beta1ColorInfo: Color information consists of
2444// RGB channels, score, and the fraction of
2445// the image that the color occupies in the image.
2446type GoogleCloudVisionV1p1beta1ColorInfo struct {
2447	// Color: RGB components of the color.
2448	Color *Color `json:"color,omitempty"`
2449
2450	// PixelFraction: The fraction of pixels the color occupies in the
2451	// image.
2452	// Value in range [0, 1].
2453	PixelFraction float64 `json:"pixelFraction,omitempty"`
2454
2455	// Score: Image-specific score for this color. Value in range [0, 1].
2456	Score float64 `json:"score,omitempty"`
2457
2458	// ForceSendFields is a list of field names (e.g. "Color") to
2459	// unconditionally include in API requests. By default, fields with
2460	// empty values are omitted from API requests. However, any non-pointer,
2461	// non-interface field appearing in ForceSendFields will be sent to the
2462	// server regardless of whether the field is empty or not. This may be
2463	// used to include empty fields in Patch requests.
2464	ForceSendFields []string `json:"-"`
2465
2466	// NullFields is a list of field names (e.g. "Color") to include in API
2467	// requests with the JSON null value. By default, fields with empty
2468	// values are omitted from API requests. However, any field with an
2469	// empty value appearing in NullFields will be sent to the server as
2470	// null. It is an error if a field in this list has a non-empty value.
2471	// This may be used to include null fields in Patch requests.
2472	NullFields []string `json:"-"`
2473}
2474
2475func (s *GoogleCloudVisionV1p1beta1ColorInfo) MarshalJSON() ([]byte, error) {
2476	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2477	raw := NoMethod(*s)
2478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2479}
2480
2481func (s *GoogleCloudVisionV1p1beta1ColorInfo) UnmarshalJSON(data []byte) error {
2482	type NoMethod GoogleCloudVisionV1p1beta1ColorInfo
2483	var s1 struct {
2484		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
2485		Score         gensupport.JSONFloat64 `json:"score"`
2486		*NoMethod
2487	}
2488	s1.NoMethod = (*NoMethod)(s)
2489	if err := json.Unmarshal(data, &s1); err != nil {
2490		return err
2491	}
2492	s.PixelFraction = float64(s1.PixelFraction)
2493	s.Score = float64(s1.Score)
2494	return nil
2495}
2496
2497// GoogleCloudVisionV1p1beta1CropHint: Single crop hint that is used to
2498// generate a new crop when serving an image.
2499type GoogleCloudVisionV1p1beta1CropHint struct {
2500	// BoundingPoly: The bounding polygon for the crop region. The
2501	// coordinates of the bounding
2502	// box are in the original image's scale.
2503	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2504
2505	// Confidence: Confidence of this being a salient region.  Range [0, 1].
2506	Confidence float64 `json:"confidence,omitempty"`
2507
2508	// ImportanceFraction: Fraction of importance of this salient region
2509	// with respect to the original
2510	// image.
2511	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
2512
2513	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2514	// unconditionally include in API requests. By default, fields with
2515	// empty values are omitted from API requests. However, any non-pointer,
2516	// non-interface field appearing in ForceSendFields will be sent to the
2517	// server regardless of whether the field is empty or not. This may be
2518	// used to include empty fields in Patch requests.
2519	ForceSendFields []string `json:"-"`
2520
2521	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2522	// in API requests with the JSON null value. By default, fields with
2523	// empty values are omitted from API requests. However, any field with
2524	// an empty value appearing in NullFields will be sent to the server as
2525	// null. It is an error if a field in this list has a non-empty value.
2526	// This may be used to include null fields in Patch requests.
2527	NullFields []string `json:"-"`
2528}
2529
2530func (s *GoogleCloudVisionV1p1beta1CropHint) MarshalJSON() ([]byte, error) {
2531	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2532	raw := NoMethod(*s)
2533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2534}
2535
2536func (s *GoogleCloudVisionV1p1beta1CropHint) UnmarshalJSON(data []byte) error {
2537	type NoMethod GoogleCloudVisionV1p1beta1CropHint
2538	var s1 struct {
2539		Confidence         gensupport.JSONFloat64 `json:"confidence"`
2540		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
2541		*NoMethod
2542	}
2543	s1.NoMethod = (*NoMethod)(s)
2544	if err := json.Unmarshal(data, &s1); err != nil {
2545		return err
2546	}
2547	s.Confidence = float64(s1.Confidence)
2548	s.ImportanceFraction = float64(s1.ImportanceFraction)
2549	return nil
2550}
2551
2552// GoogleCloudVisionV1p1beta1CropHintsAnnotation: Set of crop hints that
2553// are used to generate new crops when serving images.
2554type GoogleCloudVisionV1p1beta1CropHintsAnnotation struct {
2555	// CropHints: Crop hint results.
2556	CropHints []*GoogleCloudVisionV1p1beta1CropHint `json:"cropHints,omitempty"`
2557
2558	// ForceSendFields is a list of field names (e.g. "CropHints") to
2559	// unconditionally include in API requests. By default, fields with
2560	// empty values are omitted from API requests. However, any non-pointer,
2561	// non-interface field appearing in ForceSendFields will be sent to the
2562	// server regardless of whether the field is empty or not. This may be
2563	// used to include empty fields in Patch requests.
2564	ForceSendFields []string `json:"-"`
2565
2566	// NullFields is a list of field names (e.g. "CropHints") to include in
2567	// API requests with the JSON null value. By default, fields with empty
2568	// values are omitted from API requests. However, any field with an
2569	// empty value appearing in NullFields will be sent to the server as
2570	// null. It is an error if a field in this list has a non-empty value.
2571	// This may be used to include null fields in Patch requests.
2572	NullFields []string `json:"-"`
2573}
2574
2575func (s *GoogleCloudVisionV1p1beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
2576	type NoMethod GoogleCloudVisionV1p1beta1CropHintsAnnotation
2577	raw := NoMethod(*s)
2578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2579}
2580
2581// GoogleCloudVisionV1p1beta1DominantColorsAnnotation: Set of dominant
2582// colors and their corresponding scores.
2583type GoogleCloudVisionV1p1beta1DominantColorsAnnotation struct {
2584	// Colors: RGB color values with their score and pixel fraction.
2585	Colors []*GoogleCloudVisionV1p1beta1ColorInfo `json:"colors,omitempty"`
2586
2587	// ForceSendFields is a list of field names (e.g. "Colors") to
2588	// unconditionally include in API requests. By default, fields with
2589	// empty values are omitted from API requests. However, any non-pointer,
2590	// non-interface field appearing in ForceSendFields will be sent to the
2591	// server regardless of whether the field is empty or not. This may be
2592	// used to include empty fields in Patch requests.
2593	ForceSendFields []string `json:"-"`
2594
2595	// NullFields is a list of field names (e.g. "Colors") to include in API
2596	// requests with the JSON null value. By default, fields with empty
2597	// values are omitted from API requests. However, any field with an
2598	// empty value appearing in NullFields will be sent to the server as
2599	// null. It is an error if a field in this list has a non-empty value.
2600	// This may be used to include null fields in Patch requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *GoogleCloudVisionV1p1beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
2605	type NoMethod GoogleCloudVisionV1p1beta1DominantColorsAnnotation
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610// GoogleCloudVisionV1p1beta1EntityAnnotation: Set of detected entity
2611// features.
2612type GoogleCloudVisionV1p1beta1EntityAnnotation struct {
2613	// BoundingPoly: Image region to which this entity belongs. Not
2614	// produced
2615	// for `LABEL_DETECTION` features.
2616	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2617
2618	// Confidence: **Deprecated. Use `score` instead.**
2619	// The accuracy of the entity detection in an image.
2620	// For example, for an image in which the "Eiffel Tower" entity is
2621	// detected,
2622	// this field represents the confidence that there is a tower in the
2623	// query
2624	// image. Range [0, 1].
2625	Confidence float64 `json:"confidence,omitempty"`
2626
2627	// Description: Entity textual description, expressed in its `locale`
2628	// language.
2629	Description string `json:"description,omitempty"`
2630
2631	// Locale: The language code for the locale in which the entity
2632	// textual
2633	// `description` is expressed.
2634	Locale string `json:"locale,omitempty"`
2635
2636	// Locations: The location information for the detected entity.
2637	// Multiple
2638	// `LocationInfo` elements can be present because one location
2639	// may
2640	// indicate the location of the scene in the image, and another
2641	// location
2642	// may indicate the location of the place where the image was
2643	// taken.
2644	// Location information is usually present for landmarks.
2645	Locations []*GoogleCloudVisionV1p1beta1LocationInfo `json:"locations,omitempty"`
2646
2647	// Mid: Opaque entity ID. Some IDs may be available in
2648	// [Google Knowledge Graph
2649	// Search
2650	// API](https://developers.google.com/knowledge-graph/).
2651	Mid string `json:"mid,omitempty"`
2652
2653	// Properties: Some entities may have optional user-supplied `Property`
2654	// (name/value)
2655	// fields, such a score or string that qualifies the entity.
2656	Properties []*GoogleCloudVisionV1p1beta1Property `json:"properties,omitempty"`
2657
2658	// Score: Overall score of the result. Range [0, 1].
2659	Score float64 `json:"score,omitempty"`
2660
2661	// Topicality: The relevancy of the ICA (Image Content Annotation) label
2662	// to the
2663	// image. For example, the relevancy of "tower" is likely higher to an
2664	// image
2665	// containing the detected "Eiffel Tower" than to an image containing
2666	// a
2667	// detected distant towering building, even though the confidence
2668	// that
2669	// there is a tower in each image may be the same. Range [0, 1].
2670	Topicality float64 `json:"topicality,omitempty"`
2671
2672	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
2673	// unconditionally include in API requests. By default, fields with
2674	// empty values are omitted from API requests. However, any non-pointer,
2675	// non-interface field appearing in ForceSendFields will be sent to the
2676	// server regardless of whether the field is empty or not. This may be
2677	// used to include empty fields in Patch requests.
2678	ForceSendFields []string `json:"-"`
2679
2680	// NullFields is a list of field names (e.g. "BoundingPoly") to include
2681	// in API requests with the JSON null value. By default, fields with
2682	// empty values are omitted from API requests. However, any field with
2683	// an empty value appearing in NullFields will be sent to the server as
2684	// null. It is an error if a field in this list has a non-empty value.
2685	// This may be used to include null fields in Patch requests.
2686	NullFields []string `json:"-"`
2687}
2688
2689func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
2690	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2691	raw := NoMethod(*s)
2692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2693}
2694
2695func (s *GoogleCloudVisionV1p1beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
2696	type NoMethod GoogleCloudVisionV1p1beta1EntityAnnotation
2697	var s1 struct {
2698		Confidence gensupport.JSONFloat64 `json:"confidence"`
2699		Score      gensupport.JSONFloat64 `json:"score"`
2700		Topicality gensupport.JSONFloat64 `json:"topicality"`
2701		*NoMethod
2702	}
2703	s1.NoMethod = (*NoMethod)(s)
2704	if err := json.Unmarshal(data, &s1); err != nil {
2705		return err
2706	}
2707	s.Confidence = float64(s1.Confidence)
2708	s.Score = float64(s1.Score)
2709	s.Topicality = float64(s1.Topicality)
2710	return nil
2711}
2712
2713// GoogleCloudVisionV1p1beta1FaceAnnotation: A face annotation object
2714// contains the results of face detection.
2715type GoogleCloudVisionV1p1beta1FaceAnnotation struct {
2716	// AngerLikelihood: Anger likelihood.
2717	//
2718	// Possible values:
2719	//   "UNKNOWN" - Unknown likelihood.
2720	//   "VERY_UNLIKELY" - It is very unlikely.
2721	//   "UNLIKELY" - It is unlikely.
2722	//   "POSSIBLE" - It is possible.
2723	//   "LIKELY" - It is likely.
2724	//   "VERY_LIKELY" - It is very likely.
2725	AngerLikelihood string `json:"angerLikelihood,omitempty"`
2726
2727	// BlurredLikelihood: Blurred likelihood.
2728	//
2729	// Possible values:
2730	//   "UNKNOWN" - Unknown likelihood.
2731	//   "VERY_UNLIKELY" - It is very unlikely.
2732	//   "UNLIKELY" - It is unlikely.
2733	//   "POSSIBLE" - It is possible.
2734	//   "LIKELY" - It is likely.
2735	//   "VERY_LIKELY" - It is very likely.
2736	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
2737
2738	// BoundingPoly: The bounding polygon around the face. The coordinates
2739	// of the bounding box
2740	// are in the original image's scale.
2741	// The bounding box is computed to "frame" the face in accordance with
2742	// human
2743	// expectations. It is based on the landmarker results.
2744	// Note that one or more x and/or y coordinates may not be generated in
2745	// the
2746	// `BoundingPoly` (the polygon will be unbounded) if only a partial
2747	// face
2748	// appears in the image to be annotated.
2749	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
2750
2751	// DetectionConfidence: Detection confidence. Range [0, 1].
2752	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
2753
2754	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
2755	// than the
2756	// `boundingPoly`, and encloses only the skin part of the face.
2757	// Typically, it
2758	// is used to eliminate the face from any image analysis that detects
2759	// the
2760	// "amount of skin" visible in an image. It is not based on
2761	// the
2762	// landmarker results, only on the initial face detection, hence
2763	// the <code>fd</code> (face detection) prefix.
2764	FdBoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
2765
2766	// HeadwearLikelihood: Headwear likelihood.
2767	//
2768	// Possible values:
2769	//   "UNKNOWN" - Unknown likelihood.
2770	//   "VERY_UNLIKELY" - It is very unlikely.
2771	//   "UNLIKELY" - It is unlikely.
2772	//   "POSSIBLE" - It is possible.
2773	//   "LIKELY" - It is likely.
2774	//   "VERY_LIKELY" - It is very likely.
2775	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
2776
2777	// JoyLikelihood: Joy likelihood.
2778	//
2779	// Possible values:
2780	//   "UNKNOWN" - Unknown likelihood.
2781	//   "VERY_UNLIKELY" - It is very unlikely.
2782	//   "UNLIKELY" - It is unlikely.
2783	//   "POSSIBLE" - It is possible.
2784	//   "LIKELY" - It is likely.
2785	//   "VERY_LIKELY" - It is very likely.
2786	JoyLikelihood string `json:"joyLikelihood,omitempty"`
2787
2788	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
2789	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
2790
2791	// Landmarks: Detected face landmarks.
2792	Landmarks []*GoogleCloudVisionV1p1beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
2793
2794	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
2795	// that the face is
2796	// pointing relative to the vertical plane perpendicular to the image.
2797	// Range
2798	// [-180,180].
2799	PanAngle float64 `json:"panAngle,omitempty"`
2800
2801	// RollAngle: Roll angle, which indicates the amount of
2802	// clockwise/anti-clockwise rotation
2803	// of the face relative to the image vertical about the axis
2804	// perpendicular to
2805	// the face. Range [-180,180].
2806	RollAngle float64 `json:"rollAngle,omitempty"`
2807
2808	// SorrowLikelihood: Sorrow likelihood.
2809	//
2810	// Possible values:
2811	//   "UNKNOWN" - Unknown likelihood.
2812	//   "VERY_UNLIKELY" - It is very unlikely.
2813	//   "UNLIKELY" - It is unlikely.
2814	//   "POSSIBLE" - It is possible.
2815	//   "LIKELY" - It is likely.
2816	//   "VERY_LIKELY" - It is very likely.
2817	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
2818
2819	// SurpriseLikelihood: Surprise likelihood.
2820	//
2821	// Possible values:
2822	//   "UNKNOWN" - Unknown likelihood.
2823	//   "VERY_UNLIKELY" - It is very unlikely.
2824	//   "UNLIKELY" - It is unlikely.
2825	//   "POSSIBLE" - It is possible.
2826	//   "LIKELY" - It is likely.
2827	//   "VERY_LIKELY" - It is very likely.
2828	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
2829
2830	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
2831	// that the face is
2832	// pointing relative to the image's horizontal plane. Range [-180,180].
2833	TiltAngle float64 `json:"tiltAngle,omitempty"`
2834
2835	// UnderExposedLikelihood: Under-exposed likelihood.
2836	//
2837	// Possible values:
2838	//   "UNKNOWN" - Unknown likelihood.
2839	//   "VERY_UNLIKELY" - It is very unlikely.
2840	//   "UNLIKELY" - It is unlikely.
2841	//   "POSSIBLE" - It is possible.
2842	//   "LIKELY" - It is likely.
2843	//   "VERY_LIKELY" - It is very likely.
2844	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
2845
2846	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
2847	// unconditionally include in API requests. By default, fields with
2848	// empty values are omitted from API requests. However, any non-pointer,
2849	// non-interface field appearing in ForceSendFields will be sent to the
2850	// server regardless of whether the field is empty or not. This may be
2851	// used to include empty fields in Patch requests.
2852	ForceSendFields []string `json:"-"`
2853
2854	// NullFields is a list of field names (e.g. "AngerLikelihood") to
2855	// include in API requests with the JSON null value. By default, fields
2856	// with empty values are omitted from API requests. However, any field
2857	// with an empty value appearing in NullFields will be sent to the
2858	// server as null. It is an error if a field in this list has a
2859	// non-empty value. This may be used to include null fields in Patch
2860	// requests.
2861	NullFields []string `json:"-"`
2862}
2863
2864func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
2865	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2866	raw := NoMethod(*s)
2867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2868}
2869
2870func (s *GoogleCloudVisionV1p1beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
2871	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotation
2872	var s1 struct {
2873		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
2874		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
2875		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
2876		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
2877		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
2878		*NoMethod
2879	}
2880	s1.NoMethod = (*NoMethod)(s)
2881	if err := json.Unmarshal(data, &s1); err != nil {
2882		return err
2883	}
2884	s.DetectionConfidence = float64(s1.DetectionConfidence)
2885	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
2886	s.PanAngle = float64(s1.PanAngle)
2887	s.RollAngle = float64(s1.RollAngle)
2888	s.TiltAngle = float64(s1.TiltAngle)
2889	return nil
2890}
2891
2892// GoogleCloudVisionV1p1beta1FaceAnnotationLandmark: A face-specific
2893// landmark (for example, a face feature).
2894type GoogleCloudVisionV1p1beta1FaceAnnotationLandmark struct {
2895	// Position: Face landmark position.
2896	Position *GoogleCloudVisionV1p1beta1Position `json:"position,omitempty"`
2897
2898	// Type: Face landmark type.
2899	//
2900	// Possible values:
2901	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
2902	// filled.
2903	//   "LEFT_EYE" - Left eye.
2904	//   "RIGHT_EYE" - Right eye.
2905	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
2906	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
2907	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
2908	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
2909	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
2910	//   "NOSE_TIP" - Nose tip.
2911	//   "UPPER_LIP" - Upper lip.
2912	//   "LOWER_LIP" - Lower lip.
2913	//   "MOUTH_LEFT" - Mouth left.
2914	//   "MOUTH_RIGHT" - Mouth right.
2915	//   "MOUTH_CENTER" - Mouth center.
2916	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
2917	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
2918	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
2919	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
2920	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
2921	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
2922	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
2923	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
2924	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
2925	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
2926	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
2927	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
2928	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
2929	//   "LEFT_EAR_TRAGION" - Left ear tragion.
2930	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
2931	//   "LEFT_EYE_PUPIL" - Left eye pupil.
2932	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
2933	//   "FOREHEAD_GLABELLA" - Forehead glabella.
2934	//   "CHIN_GNATHION" - Chin gnathion.
2935	//   "CHIN_LEFT_GONION" - Chin left gonion.
2936	//   "CHIN_RIGHT_GONION" - Chin right gonion.
2937	Type string `json:"type,omitempty"`
2938
2939	// ForceSendFields is a list of field names (e.g. "Position") to
2940	// unconditionally include in API requests. By default, fields with
2941	// empty values are omitted from API requests. However, any non-pointer,
2942	// non-interface field appearing in ForceSendFields will be sent to the
2943	// server regardless of whether the field is empty or not. This may be
2944	// used to include empty fields in Patch requests.
2945	ForceSendFields []string `json:"-"`
2946
2947	// NullFields is a list of field names (e.g. "Position") to include in
2948	// API requests with the JSON null value. By default, fields with empty
2949	// values are omitted from API requests. However, any field with an
2950	// empty value appearing in NullFields will be sent to the server as
2951	// null. It is an error if a field in this list has a non-empty value.
2952	// This may be used to include null fields in Patch requests.
2953	NullFields []string `json:"-"`
2954}
2955
2956func (s *GoogleCloudVisionV1p1beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
2957	type NoMethod GoogleCloudVisionV1p1beta1FaceAnnotationLandmark
2958	raw := NoMethod(*s)
2959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2960}
2961
2962// GoogleCloudVisionV1p1beta1GcsDestination: The Google Cloud Storage
2963// location where the output will be written to.
2964type GoogleCloudVisionV1p1beta1GcsDestination struct {
2965	// Uri: Google Cloud Storage URI prefix where the results will be
2966	// stored. Results
2967	// will be in JSON format and preceded by its corresponding input URI
2968	// prefix.
2969	// This field can either represent a gcs file prefix or gcs directory.
2970	// In
2971	// either case, the uri should be unique because in order to get all of
2972	// the
2973	// output files, you will need to do a wildcard gcs search on the uri
2974	// prefix
2975	// you provide.
2976	//
2977	// Examples:
2978	//
2979	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
2980	// files
2981	// will be created in gs://bucket-name/here/ and the names of the
2982	// output files will begin with "filenameprefix".
2983	//
2984	// *    Directory Prefix: gs://bucket-name/some/location/   The output
2985	// files
2986	// will be created in gs://bucket-name/some/location/ and the names of
2987	// the
2988	// output files could be anything because there was no filename
2989	// prefix
2990	// specified.
2991	//
2992	// If multiple outputs, each response is still AnnotateFileResponse,
2993	// each of
2994	// which contains some subset of the full list of
2995	// AnnotateImageResponse.
2996	// Multiple outputs can happen if, for example, the output JSON is too
2997	// large
2998	// and overflows into multiple sharded files.
2999	Uri string `json:"uri,omitempty"`
3000
3001	// ForceSendFields is a list of field names (e.g. "Uri") to
3002	// unconditionally include in API requests. By default, fields with
3003	// empty values are omitted from API requests. However, any non-pointer,
3004	// non-interface field appearing in ForceSendFields will be sent to the
3005	// server regardless of whether the field is empty or not. This may be
3006	// used to include empty fields in Patch requests.
3007	ForceSendFields []string `json:"-"`
3008
3009	// NullFields is a list of field names (e.g. "Uri") to include in API
3010	// requests with the JSON null value. By default, fields with empty
3011	// values are omitted from API requests. However, any field with an
3012	// empty value appearing in NullFields will be sent to the server as
3013	// null. It is an error if a field in this list has a non-empty value.
3014	// This may be used to include null fields in Patch requests.
3015	NullFields []string `json:"-"`
3016}
3017
3018func (s *GoogleCloudVisionV1p1beta1GcsDestination) MarshalJSON() ([]byte, error) {
3019	type NoMethod GoogleCloudVisionV1p1beta1GcsDestination
3020	raw := NoMethod(*s)
3021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3022}
3023
3024// GoogleCloudVisionV1p1beta1GcsSource: The Google Cloud Storage
3025// location where the input will be read from.
3026type GoogleCloudVisionV1p1beta1GcsSource struct {
3027	// Uri: Google Cloud Storage URI for the input file. This must only be
3028	// a
3029	// Google Cloud Storage object. Wildcards are not currently supported.
3030	Uri string `json:"uri,omitempty"`
3031
3032	// ForceSendFields is a list of field names (e.g. "Uri") to
3033	// unconditionally include in API requests. By default, fields with
3034	// empty values are omitted from API requests. However, any non-pointer,
3035	// non-interface field appearing in ForceSendFields will be sent to the
3036	// server regardless of whether the field is empty or not. This may be
3037	// used to include empty fields in Patch requests.
3038	ForceSendFields []string `json:"-"`
3039
3040	// NullFields is a list of field names (e.g. "Uri") to include in API
3041	// requests with the JSON null value. By default, fields with empty
3042	// values are omitted from API requests. However, any field with an
3043	// empty value appearing in NullFields will be sent to the server as
3044	// null. It is an error if a field in this list has a non-empty value.
3045	// This may be used to include null fields in Patch requests.
3046	NullFields []string `json:"-"`
3047}
3048
3049func (s *GoogleCloudVisionV1p1beta1GcsSource) MarshalJSON() ([]byte, error) {
3050	type NoMethod GoogleCloudVisionV1p1beta1GcsSource
3051	raw := NoMethod(*s)
3052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3053}
3054
3055// GoogleCloudVisionV1p1beta1ImageAnnotationContext: If an image was
3056// produced from a file (e.g. a PDF), this message gives
3057// information about the source of that image.
3058type GoogleCloudVisionV1p1beta1ImageAnnotationContext struct {
3059	// PageNumber: If the file was a PDF or TIFF, this field gives the page
3060	// number within
3061	// the file used to produce the image.
3062	PageNumber int64 `json:"pageNumber,omitempty"`
3063
3064	// Uri: The URI of the file used to produce the image.
3065	Uri string `json:"uri,omitempty"`
3066
3067	// ForceSendFields is a list of field names (e.g. "PageNumber") to
3068	// unconditionally include in API requests. By default, fields with
3069	// empty values are omitted from API requests. However, any non-pointer,
3070	// non-interface field appearing in ForceSendFields will be sent to the
3071	// server regardless of whether the field is empty or not. This may be
3072	// used to include empty fields in Patch requests.
3073	ForceSendFields []string `json:"-"`
3074
3075	// NullFields is a list of field names (e.g. "PageNumber") to include in
3076	// API requests with the JSON null value. By default, fields with empty
3077	// values are omitted from API requests. However, any field with an
3078	// empty value appearing in NullFields will be sent to the server as
3079	// null. It is an error if a field in this list has a non-empty value.
3080	// This may be used to include null fields in Patch requests.
3081	NullFields []string `json:"-"`
3082}
3083
3084func (s *GoogleCloudVisionV1p1beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
3085	type NoMethod GoogleCloudVisionV1p1beta1ImageAnnotationContext
3086	raw := NoMethod(*s)
3087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3088}
3089
3090// GoogleCloudVisionV1p1beta1ImageProperties: Stores image properties,
3091// such as dominant colors.
3092type GoogleCloudVisionV1p1beta1ImageProperties struct {
3093	// DominantColors: If present, dominant colors completed successfully.
3094	DominantColors *GoogleCloudVisionV1p1beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
3095
3096	// ForceSendFields is a list of field names (e.g. "DominantColors") to
3097	// unconditionally include in API requests. By default, fields with
3098	// empty values are omitted from API requests. However, any non-pointer,
3099	// non-interface field appearing in ForceSendFields will be sent to the
3100	// server regardless of whether the field is empty or not. This may be
3101	// used to include empty fields in Patch requests.
3102	ForceSendFields []string `json:"-"`
3103
3104	// NullFields is a list of field names (e.g. "DominantColors") to
3105	// include in API requests with the JSON null value. By default, fields
3106	// with empty values are omitted from API requests. However, any field
3107	// with an empty value appearing in NullFields will be sent to the
3108	// server as null. It is an error if a field in this list has a
3109	// non-empty value. This may be used to include null fields in Patch
3110	// requests.
3111	NullFields []string `json:"-"`
3112}
3113
3114func (s *GoogleCloudVisionV1p1beta1ImageProperties) MarshalJSON() ([]byte, error) {
3115	type NoMethod GoogleCloudVisionV1p1beta1ImageProperties
3116	raw := NoMethod(*s)
3117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3118}
3119
3120// GoogleCloudVisionV1p1beta1InputConfig: The desired input location and
3121// metadata.
3122type GoogleCloudVisionV1p1beta1InputConfig struct {
3123	// Content: File content, represented as a stream of bytes.
3124	// Note: As with all `bytes` fields, protobuffers use a pure
3125	// binary
3126	// representation, whereas JSON representations use base64.
3127	//
3128	// Currently, this field only works for BatchAnnotateFiles requests. It
3129	// does
3130	// not work for AsyncBatchAnnotateFiles requests.
3131	Content string `json:"content,omitempty"`
3132
3133	// GcsSource: The Google Cloud Storage location to read the input from.
3134	GcsSource *GoogleCloudVisionV1p1beta1GcsSource `json:"gcsSource,omitempty"`
3135
3136	// MimeType: The type of the file. Currently only "application/pdf",
3137	// "image/tiff" and
3138	// "image/gif" are supported. Wildcards are not supported.
3139	MimeType string `json:"mimeType,omitempty"`
3140
3141	// ForceSendFields is a list of field names (e.g. "Content") to
3142	// unconditionally include in API requests. By default, fields with
3143	// empty values are omitted from API requests. However, any non-pointer,
3144	// non-interface field appearing in ForceSendFields will be sent to the
3145	// server regardless of whether the field is empty or not. This may be
3146	// used to include empty fields in Patch requests.
3147	ForceSendFields []string `json:"-"`
3148
3149	// NullFields is a list of field names (e.g. "Content") to include in
3150	// API requests with the JSON null value. By default, fields with empty
3151	// values are omitted from API requests. However, any field with an
3152	// empty value appearing in NullFields will be sent to the server as
3153	// null. It is an error if a field in this list has a non-empty value.
3154	// This may be used to include null fields in Patch requests.
3155	NullFields []string `json:"-"`
3156}
3157
3158func (s *GoogleCloudVisionV1p1beta1InputConfig) MarshalJSON() ([]byte, error) {
3159	type NoMethod GoogleCloudVisionV1p1beta1InputConfig
3160	raw := NoMethod(*s)
3161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3162}
3163
3164// GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation: Set of detected
3165// objects with bounding boxes.
3166type GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation struct {
3167	// BoundingPoly: Image region to which this object belongs. This must be
3168	// populated.
3169	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3170
3171	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3172	// For more
3173	// information,
3174	// see
3175	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3176	LanguageCode string `json:"languageCode,omitempty"`
3177
3178	// Mid: Object ID that should align with EntityAnnotation mid.
3179	Mid string `json:"mid,omitempty"`
3180
3181	// Name: Object name, expressed in its `language_code` language.
3182	Name string `json:"name,omitempty"`
3183
3184	// Score: Score of the result. Range [0, 1].
3185	Score float64 `json:"score,omitempty"`
3186
3187	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3188	// unconditionally include in API requests. By default, fields with
3189	// empty values are omitted from API requests. However, any non-pointer,
3190	// non-interface field appearing in ForceSendFields will be sent to the
3191	// server regardless of whether the field is empty or not. This may be
3192	// used to include empty fields in Patch requests.
3193	ForceSendFields []string `json:"-"`
3194
3195	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3196	// in API requests with the JSON null value. By default, fields with
3197	// empty values are omitted from API requests. However, any field with
3198	// an empty value appearing in NullFields will be sent to the server as
3199	// null. It is an error if a field in this list has a non-empty value.
3200	// This may be used to include null fields in Patch requests.
3201	NullFields []string `json:"-"`
3202}
3203
3204func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
3205	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
3206	raw := NoMethod(*s)
3207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3208}
3209
3210func (s *GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
3211	type NoMethod GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation
3212	var s1 struct {
3213		Score gensupport.JSONFloat64 `json:"score"`
3214		*NoMethod
3215	}
3216	s1.NoMethod = (*NoMethod)(s)
3217	if err := json.Unmarshal(data, &s1); err != nil {
3218		return err
3219	}
3220	s.Score = float64(s1.Score)
3221	return nil
3222}
3223
3224// GoogleCloudVisionV1p1beta1LocationInfo: Detected entity location
3225// information.
3226type GoogleCloudVisionV1p1beta1LocationInfo struct {
3227	// LatLng: lat/long location coordinates.
3228	LatLng *LatLng `json:"latLng,omitempty"`
3229
3230	// ForceSendFields is a list of field names (e.g. "LatLng") to
3231	// unconditionally include in API requests. By default, fields with
3232	// empty values are omitted from API requests. However, any non-pointer,
3233	// non-interface field appearing in ForceSendFields will be sent to the
3234	// server regardless of whether the field is empty or not. This may be
3235	// used to include empty fields in Patch requests.
3236	ForceSendFields []string `json:"-"`
3237
3238	// NullFields is a list of field names (e.g. "LatLng") to include in API
3239	// requests with the JSON null value. By default, fields with empty
3240	// values are omitted from API requests. However, any field with an
3241	// empty value appearing in NullFields will be sent to the server as
3242	// null. It is an error if a field in this list has a non-empty value.
3243	// This may be used to include null fields in Patch requests.
3244	NullFields []string `json:"-"`
3245}
3246
3247func (s *GoogleCloudVisionV1p1beta1LocationInfo) MarshalJSON() ([]byte, error) {
3248	type NoMethod GoogleCloudVisionV1p1beta1LocationInfo
3249	raw := NoMethod(*s)
3250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3251}
3252
3253// GoogleCloudVisionV1p1beta1NormalizedVertex: A vertex represents a 2D
3254// point in the image.
3255// NOTE: the normalized vertex coordinates are relative to the original
3256// image
3257// and range from 0 to 1.
3258type GoogleCloudVisionV1p1beta1NormalizedVertex struct {
3259	// X: X coordinate.
3260	X float64 `json:"x,omitempty"`
3261
3262	// Y: Y coordinate.
3263	Y float64 `json:"y,omitempty"`
3264
3265	// ForceSendFields is a list of field names (e.g. "X") to
3266	// unconditionally include in API requests. By default, fields with
3267	// empty values are omitted from API requests. However, any non-pointer,
3268	// non-interface field appearing in ForceSendFields will be sent to the
3269	// server regardless of whether the field is empty or not. This may be
3270	// used to include empty fields in Patch requests.
3271	ForceSendFields []string `json:"-"`
3272
3273	// NullFields is a list of field names (e.g. "X") to include in API
3274	// requests with the JSON null value. By default, fields with empty
3275	// values are omitted from API requests. However, any field with an
3276	// empty value appearing in NullFields will be sent to the server as
3277	// null. It is an error if a field in this list has a non-empty value.
3278	// This may be used to include null fields in Patch requests.
3279	NullFields []string `json:"-"`
3280}
3281
3282func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
3283	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
3284	raw := NoMethod(*s)
3285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3286}
3287
3288func (s *GoogleCloudVisionV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
3289	type NoMethod GoogleCloudVisionV1p1beta1NormalizedVertex
3290	var s1 struct {
3291		X gensupport.JSONFloat64 `json:"x"`
3292		Y gensupport.JSONFloat64 `json:"y"`
3293		*NoMethod
3294	}
3295	s1.NoMethod = (*NoMethod)(s)
3296	if err := json.Unmarshal(data, &s1); err != nil {
3297		return err
3298	}
3299	s.X = float64(s1.X)
3300	s.Y = float64(s1.Y)
3301	return nil
3302}
3303
3304// GoogleCloudVisionV1p1beta1OperationMetadata: Contains metadata for
3305// the BatchAnnotateImages operation.
3306type GoogleCloudVisionV1p1beta1OperationMetadata struct {
3307	// CreateTime: The time when the batch request was received.
3308	CreateTime string `json:"createTime,omitempty"`
3309
3310	// State: Current state of the batch operation.
3311	//
3312	// Possible values:
3313	//   "STATE_UNSPECIFIED" - Invalid.
3314	//   "CREATED" - Request is received.
3315	//   "RUNNING" - Request is actively being processed.
3316	//   "DONE" - The batch processing is done.
3317	//   "CANCELLED" - The batch processing was cancelled.
3318	State string `json:"state,omitempty"`
3319
3320	// UpdateTime: The time when the operation result was last updated.
3321	UpdateTime string `json:"updateTime,omitempty"`
3322
3323	// ForceSendFields is a list of field names (e.g. "CreateTime") to
3324	// unconditionally include in API requests. By default, fields with
3325	// empty values are omitted from API requests. However, any non-pointer,
3326	// non-interface field appearing in ForceSendFields will be sent to the
3327	// server regardless of whether the field is empty or not. This may be
3328	// used to include empty fields in Patch requests.
3329	ForceSendFields []string `json:"-"`
3330
3331	// NullFields is a list of field names (e.g. "CreateTime") to include in
3332	// API requests with the JSON null value. By default, fields with empty
3333	// values are omitted from API requests. However, any field with an
3334	// empty value appearing in NullFields will be sent to the server as
3335	// null. It is an error if a field in this list has a non-empty value.
3336	// This may be used to include null fields in Patch requests.
3337	NullFields []string `json:"-"`
3338}
3339
3340func (s *GoogleCloudVisionV1p1beta1OperationMetadata) MarshalJSON() ([]byte, error) {
3341	type NoMethod GoogleCloudVisionV1p1beta1OperationMetadata
3342	raw := NoMethod(*s)
3343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3344}
3345
3346// GoogleCloudVisionV1p1beta1OutputConfig: The desired output location
3347// and metadata.
3348type GoogleCloudVisionV1p1beta1OutputConfig struct {
3349	// BatchSize: The max number of response protos to put into each output
3350	// JSON file on
3351	// Google Cloud Storage.
3352	// The valid range is [1, 100]. If not specified, the default value is
3353	// 20.
3354	//
3355	// For example, for one pdf file with 100 pages, 100 response protos
3356	// will
3357	// be generated. If `batch_size` = 20, then 5 json files each
3358	// containing 20 response protos will be written under the
3359	// prefix
3360	// `gcs_destination`.`uri`.
3361	//
3362	// Currently, batch_size only applies to GcsDestination, with potential
3363	// future
3364	// support for other output configurations.
3365	BatchSize int64 `json:"batchSize,omitempty"`
3366
3367	// GcsDestination: The Google Cloud Storage location to write the
3368	// output(s) to.
3369	GcsDestination *GoogleCloudVisionV1p1beta1GcsDestination `json:"gcsDestination,omitempty"`
3370
3371	// ForceSendFields is a list of field names (e.g. "BatchSize") to
3372	// unconditionally include in API requests. By default, fields with
3373	// empty values are omitted from API requests. However, any non-pointer,
3374	// non-interface field appearing in ForceSendFields will be sent to the
3375	// server regardless of whether the field is empty or not. This may be
3376	// used to include empty fields in Patch requests.
3377	ForceSendFields []string `json:"-"`
3378
3379	// NullFields is a list of field names (e.g. "BatchSize") to include in
3380	// API requests with the JSON null value. By default, fields with empty
3381	// values are omitted from API requests. However, any field with an
3382	// empty value appearing in NullFields will be sent to the server as
3383	// null. It is an error if a field in this list has a non-empty value.
3384	// This may be used to include null fields in Patch requests.
3385	NullFields []string `json:"-"`
3386}
3387
3388func (s *GoogleCloudVisionV1p1beta1OutputConfig) MarshalJSON() ([]byte, error) {
3389	type NoMethod GoogleCloudVisionV1p1beta1OutputConfig
3390	raw := NoMethod(*s)
3391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3392}
3393
3394// GoogleCloudVisionV1p1beta1Page: Detected page from OCR.
3395type GoogleCloudVisionV1p1beta1Page struct {
3396	// Blocks: List of blocks of text, images etc on this page.
3397	Blocks []*GoogleCloudVisionV1p1beta1Block `json:"blocks,omitempty"`
3398
3399	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
3400	Confidence float64 `json:"confidence,omitempty"`
3401
3402	// Height: Page height. For PDFs the unit is points. For images
3403	// (including
3404	// TIFFs) the unit is pixels.
3405	Height int64 `json:"height,omitempty"`
3406
3407	// Property: Additional information detected on the page.
3408	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3409
3410	// Width: Page width. For PDFs the unit is points. For images
3411	// (including
3412	// TIFFs) the unit is pixels.
3413	Width int64 `json:"width,omitempty"`
3414
3415	// ForceSendFields is a list of field names (e.g. "Blocks") to
3416	// unconditionally include in API requests. By default, fields with
3417	// empty values are omitted from API requests. However, any non-pointer,
3418	// non-interface field appearing in ForceSendFields will be sent to the
3419	// server regardless of whether the field is empty or not. This may be
3420	// used to include empty fields in Patch requests.
3421	ForceSendFields []string `json:"-"`
3422
3423	// NullFields is a list of field names (e.g. "Blocks") to include in API
3424	// requests with the JSON null value. By default, fields with empty
3425	// values are omitted from API requests. However, any field with an
3426	// empty value appearing in NullFields will be sent to the server as
3427	// null. It is an error if a field in this list has a non-empty value.
3428	// This may be used to include null fields in Patch requests.
3429	NullFields []string `json:"-"`
3430}
3431
3432func (s *GoogleCloudVisionV1p1beta1Page) MarshalJSON() ([]byte, error) {
3433	type NoMethod GoogleCloudVisionV1p1beta1Page
3434	raw := NoMethod(*s)
3435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3436}
3437
3438func (s *GoogleCloudVisionV1p1beta1Page) UnmarshalJSON(data []byte) error {
3439	type NoMethod GoogleCloudVisionV1p1beta1Page
3440	var s1 struct {
3441		Confidence gensupport.JSONFloat64 `json:"confidence"`
3442		*NoMethod
3443	}
3444	s1.NoMethod = (*NoMethod)(s)
3445	if err := json.Unmarshal(data, &s1); err != nil {
3446		return err
3447	}
3448	s.Confidence = float64(s1.Confidence)
3449	return nil
3450}
3451
3452// GoogleCloudVisionV1p1beta1Paragraph: Structural unit of text
3453// representing a number of words in certain order.
3454type GoogleCloudVisionV1p1beta1Paragraph struct {
3455	// BoundingBox: The bounding box for the paragraph.
3456	// The vertices are in the order of top-left, top-right,
3457	// bottom-right,
3458	// bottom-left. When a rotation of the bounding box is detected the
3459	// rotation
3460	// is represented as around the top-left corner as defined when the text
3461	// is
3462	// read in the 'natural' orientation.
3463	// For example:
3464	//   * when the text is horizontal it might look like:
3465	//      0----1
3466	//      |    |
3467	//      3----2
3468	//   * when it's rotated 180 degrees around the top-left corner it
3469	// becomes:
3470	//      2----3
3471	//      |    |
3472	//      1----0
3473	//   and the vertex order will still be (0, 1, 2, 3).
3474	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
3475
3476	// Confidence: Confidence of the OCR results for the paragraph. Range
3477	// [0, 1].
3478	Confidence float64 `json:"confidence,omitempty"`
3479
3480	// Property: Additional information detected for the paragraph.
3481	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
3482
3483	// Words: List of all words in this paragraph.
3484	Words []*GoogleCloudVisionV1p1beta1Word `json:"words,omitempty"`
3485
3486	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
3487	// unconditionally include in API requests. By default, fields with
3488	// empty values are omitted from API requests. However, any non-pointer,
3489	// non-interface field appearing in ForceSendFields will be sent to the
3490	// server regardless of whether the field is empty or not. This may be
3491	// used to include empty fields in Patch requests.
3492	ForceSendFields []string `json:"-"`
3493
3494	// NullFields is a list of field names (e.g. "BoundingBox") to include
3495	// in API requests with the JSON null value. By default, fields with
3496	// empty values are omitted from API requests. However, any field with
3497	// an empty value appearing in NullFields will be sent to the server as
3498	// null. It is an error if a field in this list has a non-empty value.
3499	// This may be used to include null fields in Patch requests.
3500	NullFields []string `json:"-"`
3501}
3502
3503func (s *GoogleCloudVisionV1p1beta1Paragraph) MarshalJSON() ([]byte, error) {
3504	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3505	raw := NoMethod(*s)
3506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3507}
3508
3509func (s *GoogleCloudVisionV1p1beta1Paragraph) UnmarshalJSON(data []byte) error {
3510	type NoMethod GoogleCloudVisionV1p1beta1Paragraph
3511	var s1 struct {
3512		Confidence gensupport.JSONFloat64 `json:"confidence"`
3513		*NoMethod
3514	}
3515	s1.NoMethod = (*NoMethod)(s)
3516	if err := json.Unmarshal(data, &s1); err != nil {
3517		return err
3518	}
3519	s.Confidence = float64(s1.Confidence)
3520	return nil
3521}
3522
3523// GoogleCloudVisionV1p1beta1Position: A 3D position in the image, used
3524// primarily for Face detection landmarks.
3525// A valid Position must have both x and y coordinates.
3526// The position coordinates are in the same scale as the original image.
3527type GoogleCloudVisionV1p1beta1Position struct {
3528	// X: X coordinate.
3529	X float64 `json:"x,omitempty"`
3530
3531	// Y: Y coordinate.
3532	Y float64 `json:"y,omitempty"`
3533
3534	// Z: Z coordinate (or depth).
3535	Z float64 `json:"z,omitempty"`
3536
3537	// ForceSendFields is a list of field names (e.g. "X") to
3538	// unconditionally include in API requests. By default, fields with
3539	// empty values are omitted from API requests. However, any non-pointer,
3540	// non-interface field appearing in ForceSendFields will be sent to the
3541	// server regardless of whether the field is empty or not. This may be
3542	// used to include empty fields in Patch requests.
3543	ForceSendFields []string `json:"-"`
3544
3545	// NullFields is a list of field names (e.g. "X") to include in API
3546	// requests with the JSON null value. By default, fields with empty
3547	// values are omitted from API requests. However, any field with an
3548	// empty value appearing in NullFields will be sent to the server as
3549	// null. It is an error if a field in this list has a non-empty value.
3550	// This may be used to include null fields in Patch requests.
3551	NullFields []string `json:"-"`
3552}
3553
3554func (s *GoogleCloudVisionV1p1beta1Position) MarshalJSON() ([]byte, error) {
3555	type NoMethod GoogleCloudVisionV1p1beta1Position
3556	raw := NoMethod(*s)
3557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3558}
3559
3560func (s *GoogleCloudVisionV1p1beta1Position) UnmarshalJSON(data []byte) error {
3561	type NoMethod GoogleCloudVisionV1p1beta1Position
3562	var s1 struct {
3563		X gensupport.JSONFloat64 `json:"x"`
3564		Y gensupport.JSONFloat64 `json:"y"`
3565		Z gensupport.JSONFloat64 `json:"z"`
3566		*NoMethod
3567	}
3568	s1.NoMethod = (*NoMethod)(s)
3569	if err := json.Unmarshal(data, &s1); err != nil {
3570		return err
3571	}
3572	s.X = float64(s1.X)
3573	s.Y = float64(s1.Y)
3574	s.Z = float64(s1.Z)
3575	return nil
3576}
3577
3578// GoogleCloudVisionV1p1beta1Product: A Product contains
3579// ReferenceImages.
3580type GoogleCloudVisionV1p1beta1Product struct {
3581	// Description: User-provided metadata to be stored with this product.
3582	// Must be at most 4096
3583	// characters long.
3584	Description string `json:"description,omitempty"`
3585
3586	// DisplayName: The user-provided name for this Product. Must not be
3587	// empty. Must be at most
3588	// 4096 characters long.
3589	DisplayName string `json:"displayName,omitempty"`
3590
3591	// Name: The resource name of the product.
3592	//
3593	// Format
3594	// is:
3595	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
3596	//
3597	// This field is ignored when creating a product.
3598	Name string `json:"name,omitempty"`
3599
3600	// ProductCategory: Immutable. The category for the product identified
3601	// by the reference image. This should
3602	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
3603	// categories
3604	// "homegoods", "apparel", and "toys" are still supported, but these
3605	// should
3606	// not be used for new products.
3607	ProductCategory string `json:"productCategory,omitempty"`
3608
3609	// ProductLabels: Key-value pairs that can be attached to a product. At
3610	// query time,
3611	// constraints can be specified based on the product_labels.
3612	//
3613	// Note that integer values can be provided as strings, e.g. "1199".
3614	// Only
3615	// strings with integer values can match a range-based restriction which
3616	// is
3617	// to be supported soon.
3618	//
3619	// Multiple values can be assigned to the same key. One product may have
3620	// up to
3621	// 500 product_labels.
3622	//
3623	// Notice that the total number of distinct product_labels over all
3624	// products
3625	// in one ProductSet cannot exceed 1M, otherwise the product search
3626	// pipeline
3627	// will refuse to work for that ProductSet.
3628	ProductLabels []*GoogleCloudVisionV1p1beta1ProductKeyValue `json:"productLabels,omitempty"`
3629
3630	// ForceSendFields is a list of field names (e.g. "Description") to
3631	// unconditionally include in API requests. By default, fields with
3632	// empty values are omitted from API requests. However, any non-pointer,
3633	// non-interface field appearing in ForceSendFields will be sent to the
3634	// server regardless of whether the field is empty or not. This may be
3635	// used to include empty fields in Patch requests.
3636	ForceSendFields []string `json:"-"`
3637
3638	// NullFields is a list of field names (e.g. "Description") to include
3639	// in API requests with the JSON null value. By default, fields with
3640	// empty values are omitted from API requests. However, any field with
3641	// an empty value appearing in NullFields will be sent to the server as
3642	// null. It is an error if a field in this list has a non-empty value.
3643	// This may be used to include null fields in Patch requests.
3644	NullFields []string `json:"-"`
3645}
3646
3647func (s *GoogleCloudVisionV1p1beta1Product) MarshalJSON() ([]byte, error) {
3648	type NoMethod GoogleCloudVisionV1p1beta1Product
3649	raw := NoMethod(*s)
3650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3651}
3652
3653// GoogleCloudVisionV1p1beta1ProductKeyValue: A product label
3654// represented as a key-value pair.
3655type GoogleCloudVisionV1p1beta1ProductKeyValue struct {
3656	// Key: The key of the label attached to the product. Cannot be empty
3657	// and cannot
3658	// exceed 128 bytes.
3659	Key string `json:"key,omitempty"`
3660
3661	// Value: The value of the label attached to the product. Cannot be
3662	// empty and
3663	// cannot exceed 128 bytes.
3664	Value string `json:"value,omitempty"`
3665
3666	// ForceSendFields is a list of field names (e.g. "Key") to
3667	// unconditionally include in API requests. By default, fields with
3668	// empty values are omitted from API requests. However, any non-pointer,
3669	// non-interface field appearing in ForceSendFields will be sent to the
3670	// server regardless of whether the field is empty or not. This may be
3671	// used to include empty fields in Patch requests.
3672	ForceSendFields []string `json:"-"`
3673
3674	// NullFields is a list of field names (e.g. "Key") to include in API
3675	// requests with the JSON null value. By default, fields with empty
3676	// values are omitted from API requests. However, any field with an
3677	// empty value appearing in NullFields will be sent to the server as
3678	// null. It is an error if a field in this list has a non-empty value.
3679	// This may be used to include null fields in Patch requests.
3680	NullFields []string `json:"-"`
3681}
3682
3683func (s *GoogleCloudVisionV1p1beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
3684	type NoMethod GoogleCloudVisionV1p1beta1ProductKeyValue
3685	raw := NoMethod(*s)
3686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3687}
3688
3689// GoogleCloudVisionV1p1beta1ProductSearchResults: Results for a product
3690// search request.
3691type GoogleCloudVisionV1p1beta1ProductSearchResults struct {
3692	// IndexTime: Timestamp of the index which provided these results.
3693	// Products added to the
3694	// product set and products removed from the product set after this time
3695	// are
3696	// not reflected in the current results.
3697	IndexTime string `json:"indexTime,omitempty"`
3698
3699	// ProductGroupedResults: List of results grouped by products detected
3700	// in the query image. Each entry
3701	// corresponds to one bounding polygon in the query image, and contains
3702	// the
3703	// matching products specific to that region. There may be duplicate
3704	// product
3705	// matches in the union of all the per-product results.
3706	ProductGroupedResults []*GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
3707
3708	// Results: List of results, one for each product match.
3709	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3710
3711	// ForceSendFields is a list of field names (e.g. "IndexTime") to
3712	// unconditionally include in API requests. By default, fields with
3713	// empty values are omitted from API requests. However, any non-pointer,
3714	// non-interface field appearing in ForceSendFields will be sent to the
3715	// server regardless of whether the field is empty or not. This may be
3716	// used to include empty fields in Patch requests.
3717	ForceSendFields []string `json:"-"`
3718
3719	// NullFields is a list of field names (e.g. "IndexTime") to include in
3720	// API requests with the JSON null value. By default, fields with empty
3721	// values are omitted from API requests. However, any field with an
3722	// empty value appearing in NullFields will be sent to the server as
3723	// null. It is an error if a field in this list has a non-empty value.
3724	// This may be used to include null fields in Patch requests.
3725	NullFields []string `json:"-"`
3726}
3727
3728func (s *GoogleCloudVisionV1p1beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
3729	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResults
3730	raw := NoMethod(*s)
3731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3732}
3733
3734// GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult:
3735// Information about the products similar to a single product in a
3736// query
3737// image.
3738type GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult struct {
3739	// BoundingPoly: The bounding polygon around the product detected in the
3740	// query image.
3741	BoundingPoly *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingPoly,omitempty"`
3742
3743	// ObjectAnnotations: List of generic predictions for the object in the
3744	// bounding box.
3745	ObjectAnnotations []*GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
3746
3747	// Results: List of results, one for each product match.
3748	Results []*GoogleCloudVisionV1p1beta1ProductSearchResultsResult `json:"results,omitempty"`
3749
3750	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
3751	// unconditionally include in API requests. By default, fields with
3752	// empty values are omitted from API requests. However, any non-pointer,
3753	// non-interface field appearing in ForceSendFields will be sent to the
3754	// server regardless of whether the field is empty or not. This may be
3755	// used to include empty fields in Patch requests.
3756	ForceSendFields []string `json:"-"`
3757
3758	// NullFields is a list of field names (e.g. "BoundingPoly") to include
3759	// in API requests with the JSON null value. By default, fields with
3760	// empty values are omitted from API requests. However, any field with
3761	// an empty value appearing in NullFields will be sent to the server as
3762	// null. It is an error if a field in this list has a non-empty value.
3763	// This may be used to include null fields in Patch requests.
3764	NullFields []string `json:"-"`
3765}
3766
3767func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
3768	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult
3769	raw := NoMethod(*s)
3770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3771}
3772
3773// GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation:
3774// Prediction for what the object in the bounding box is.
3775type GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation struct {
3776	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
3777	// For more
3778	// information,
3779	// see
3780	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
3781	LanguageCode string `json:"languageCode,omitempty"`
3782
3783	// Mid: Object ID that should align with EntityAnnotation mid.
3784	Mid string `json:"mid,omitempty"`
3785
3786	// Name: Object name, expressed in its `language_code` language.
3787	Name string `json:"name,omitempty"`
3788
3789	// Score: Score of the result. Range [0, 1].
3790	Score float64 `json:"score,omitempty"`
3791
3792	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
3793	// unconditionally include in API requests. By default, fields with
3794	// empty values are omitted from API requests. However, any non-pointer,
3795	// non-interface field appearing in ForceSendFields will be sent to the
3796	// server regardless of whether the field is empty or not. This may be
3797	// used to include empty fields in Patch requests.
3798	ForceSendFields []string `json:"-"`
3799
3800	// NullFields is a list of field names (e.g. "LanguageCode") to include
3801	// in API requests with the JSON null value. By default, fields with
3802	// empty values are omitted from API requests. However, any field with
3803	// an empty value appearing in NullFields will be sent to the server as
3804	// null. It is an error if a field in this list has a non-empty value.
3805	// This may be used to include null fields in Patch requests.
3806	NullFields []string `json:"-"`
3807}
3808
3809func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
3810	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3811	raw := NoMethod(*s)
3812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3813}
3814
3815func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
3816	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation
3817	var s1 struct {
3818		Score gensupport.JSONFloat64 `json:"score"`
3819		*NoMethod
3820	}
3821	s1.NoMethod = (*NoMethod)(s)
3822	if err := json.Unmarshal(data, &s1); err != nil {
3823		return err
3824	}
3825	s.Score = float64(s1.Score)
3826	return nil
3827}
3828
3829// GoogleCloudVisionV1p1beta1ProductSearchResultsResult: Information
3830// about a product.
3831type GoogleCloudVisionV1p1beta1ProductSearchResultsResult struct {
3832	// Image: The resource name of the image from the product that is the
3833	// closest match
3834	// to the query.
3835	Image string `json:"image,omitempty"`
3836
3837	// Product: The Product.
3838	Product *GoogleCloudVisionV1p1beta1Product `json:"product,omitempty"`
3839
3840	// Score: A confidence level on the match, ranging from 0 (no
3841	// confidence) to
3842	// 1 (full confidence).
3843	Score float64 `json:"score,omitempty"`
3844
3845	// ForceSendFields is a list of field names (e.g. "Image") to
3846	// unconditionally include in API requests. By default, fields with
3847	// empty values are omitted from API requests. However, any non-pointer,
3848	// non-interface field appearing in ForceSendFields will be sent to the
3849	// server regardless of whether the field is empty or not. This may be
3850	// used to include empty fields in Patch requests.
3851	ForceSendFields []string `json:"-"`
3852
3853	// NullFields is a list of field names (e.g. "Image") to include in API
3854	// requests with the JSON null value. By default, fields with empty
3855	// values are omitted from API requests. However, any field with an
3856	// empty value appearing in NullFields will be sent to the server as
3857	// null. It is an error if a field in this list has a non-empty value.
3858	// This may be used to include null fields in Patch requests.
3859	NullFields []string `json:"-"`
3860}
3861
3862func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
3863	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3864	raw := NoMethod(*s)
3865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3866}
3867
3868func (s *GoogleCloudVisionV1p1beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
3869	type NoMethod GoogleCloudVisionV1p1beta1ProductSearchResultsResult
3870	var s1 struct {
3871		Score gensupport.JSONFloat64 `json:"score"`
3872		*NoMethod
3873	}
3874	s1.NoMethod = (*NoMethod)(s)
3875	if err := json.Unmarshal(data, &s1); err != nil {
3876		return err
3877	}
3878	s.Score = float64(s1.Score)
3879	return nil
3880}
3881
3882// GoogleCloudVisionV1p1beta1Property: A `Property` consists of a
3883// user-supplied name/value pair.
3884type GoogleCloudVisionV1p1beta1Property struct {
3885	// Name: Name of the property.
3886	Name string `json:"name,omitempty"`
3887
3888	// Uint64Value: Value of numeric properties.
3889	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
3890
3891	// Value: Value of the property.
3892	Value string `json:"value,omitempty"`
3893
3894	// ForceSendFields is a list of field names (e.g. "Name") to
3895	// unconditionally include in API requests. By default, fields with
3896	// empty values are omitted from API requests. However, any non-pointer,
3897	// non-interface field appearing in ForceSendFields will be sent to the
3898	// server regardless of whether the field is empty or not. This may be
3899	// used to include empty fields in Patch requests.
3900	ForceSendFields []string `json:"-"`
3901
3902	// NullFields is a list of field names (e.g. "Name") to include in API
3903	// requests with the JSON null value. By default, fields with empty
3904	// values are omitted from API requests. However, any field with an
3905	// empty value appearing in NullFields will be sent to the server as
3906	// null. It is an error if a field in this list has a non-empty value.
3907	// This may be used to include null fields in Patch requests.
3908	NullFields []string `json:"-"`
3909}
3910
3911func (s *GoogleCloudVisionV1p1beta1Property) MarshalJSON() ([]byte, error) {
3912	type NoMethod GoogleCloudVisionV1p1beta1Property
3913	raw := NoMethod(*s)
3914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3915}
3916
3917// GoogleCloudVisionV1p1beta1SafeSearchAnnotation: Set of features
3918// pertaining to the image, computed by computer vision
3919// methods over safe-search verticals (for example, adult, spoof,
3920// medical,
3921// violence).
3922type GoogleCloudVisionV1p1beta1SafeSearchAnnotation struct {
3923	// Adult: Represents the adult content likelihood for the image. Adult
3924	// content may
3925	// contain elements such as nudity, pornographic images or cartoons,
3926	// or
3927	// sexual activities.
3928	//
3929	// Possible values:
3930	//   "UNKNOWN" - Unknown likelihood.
3931	//   "VERY_UNLIKELY" - It is very unlikely.
3932	//   "UNLIKELY" - It is unlikely.
3933	//   "POSSIBLE" - It is possible.
3934	//   "LIKELY" - It is likely.
3935	//   "VERY_LIKELY" - It is very likely.
3936	Adult string `json:"adult,omitempty"`
3937
3938	// Medical: Likelihood that this is a medical image.
3939	//
3940	// Possible values:
3941	//   "UNKNOWN" - Unknown likelihood.
3942	//   "VERY_UNLIKELY" - It is very unlikely.
3943	//   "UNLIKELY" - It is unlikely.
3944	//   "POSSIBLE" - It is possible.
3945	//   "LIKELY" - It is likely.
3946	//   "VERY_LIKELY" - It is very likely.
3947	Medical string `json:"medical,omitempty"`
3948
3949	// Racy: Likelihood that the request image contains racy content. Racy
3950	// content may
3951	// include (but is not limited to) skimpy or sheer clothing,
3952	// strategically
3953	// covered nudity, lewd or provocative poses, or close-ups of
3954	// sensitive
3955	// body areas.
3956	//
3957	// Possible values:
3958	//   "UNKNOWN" - Unknown likelihood.
3959	//   "VERY_UNLIKELY" - It is very unlikely.
3960	//   "UNLIKELY" - It is unlikely.
3961	//   "POSSIBLE" - It is possible.
3962	//   "LIKELY" - It is likely.
3963	//   "VERY_LIKELY" - It is very likely.
3964	Racy string `json:"racy,omitempty"`
3965
3966	// Spoof: Spoof likelihood. The likelihood that an modification
3967	// was made to the image's canonical version to make it appear
3968	// funny or offensive.
3969	//
3970	// Possible values:
3971	//   "UNKNOWN" - Unknown likelihood.
3972	//   "VERY_UNLIKELY" - It is very unlikely.
3973	//   "UNLIKELY" - It is unlikely.
3974	//   "POSSIBLE" - It is possible.
3975	//   "LIKELY" - It is likely.
3976	//   "VERY_LIKELY" - It is very likely.
3977	Spoof string `json:"spoof,omitempty"`
3978
3979	// Violence: Likelihood that this image contains violent content.
3980	//
3981	// Possible values:
3982	//   "UNKNOWN" - Unknown likelihood.
3983	//   "VERY_UNLIKELY" - It is very unlikely.
3984	//   "UNLIKELY" - It is unlikely.
3985	//   "POSSIBLE" - It is possible.
3986	//   "LIKELY" - It is likely.
3987	//   "VERY_LIKELY" - It is very likely.
3988	Violence string `json:"violence,omitempty"`
3989
3990	// ForceSendFields is a list of field names (e.g. "Adult") to
3991	// unconditionally include in API requests. By default, fields with
3992	// empty values are omitted from API requests. However, any non-pointer,
3993	// non-interface field appearing in ForceSendFields will be sent to the
3994	// server regardless of whether the field is empty or not. This may be
3995	// used to include empty fields in Patch requests.
3996	ForceSendFields []string `json:"-"`
3997
3998	// NullFields is a list of field names (e.g. "Adult") to include in API
3999	// requests with the JSON null value. By default, fields with empty
4000	// values are omitted from API requests. However, any field with an
4001	// empty value appearing in NullFields will be sent to the server as
4002	// null. It is an error if a field in this list has a non-empty value.
4003	// This may be used to include null fields in Patch requests.
4004	NullFields []string `json:"-"`
4005}
4006
4007func (s *GoogleCloudVisionV1p1beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
4008	type NoMethod GoogleCloudVisionV1p1beta1SafeSearchAnnotation
4009	raw := NoMethod(*s)
4010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4011}
4012
4013// GoogleCloudVisionV1p1beta1Symbol: A single symbol representation.
4014type GoogleCloudVisionV1p1beta1Symbol struct {
4015	// BoundingBox: The bounding box for the symbol.
4016	// The vertices are in the order of top-left, top-right,
4017	// bottom-right,
4018	// bottom-left. When a rotation of the bounding box is detected the
4019	// rotation
4020	// is represented as around the top-left corner as defined when the text
4021	// is
4022	// read in the 'natural' orientation.
4023	// For example:
4024	//   * when the text is horizontal it might look like:
4025	//      0----1
4026	//      |    |
4027	//      3----2
4028	//   * when it's rotated 180 degrees around the top-left corner it
4029	// becomes:
4030	//      2----3
4031	//      |    |
4032	//      1----0
4033	//   and the vertex order will still be (0, 1, 2, 3).
4034	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
4035
4036	// Confidence: Confidence of the OCR results for the symbol. Range [0,
4037	// 1].
4038	Confidence float64 `json:"confidence,omitempty"`
4039
4040	// Property: Additional information detected for the symbol.
4041	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
4042
4043	// Text: The actual UTF-8 representation of the symbol.
4044	Text string `json:"text,omitempty"`
4045
4046	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
4047	// unconditionally include in API requests. By default, fields with
4048	// empty values are omitted from API requests. However, any non-pointer,
4049	// non-interface field appearing in ForceSendFields will be sent to the
4050	// server regardless of whether the field is empty or not. This may be
4051	// used to include empty fields in Patch requests.
4052	ForceSendFields []string `json:"-"`
4053
4054	// NullFields is a list of field names (e.g. "BoundingBox") to include
4055	// in API requests with the JSON null value. By default, fields with
4056	// empty values are omitted from API requests. However, any field with
4057	// an empty value appearing in NullFields will be sent to the server as
4058	// null. It is an error if a field in this list has a non-empty value.
4059	// This may be used to include null fields in Patch requests.
4060	NullFields []string `json:"-"`
4061}
4062
4063func (s *GoogleCloudVisionV1p1beta1Symbol) MarshalJSON() ([]byte, error) {
4064	type NoMethod GoogleCloudVisionV1p1beta1Symbol
4065	raw := NoMethod(*s)
4066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4067}
4068
4069func (s *GoogleCloudVisionV1p1beta1Symbol) UnmarshalJSON(data []byte) error {
4070	type NoMethod GoogleCloudVisionV1p1beta1Symbol
4071	var s1 struct {
4072		Confidence gensupport.JSONFloat64 `json:"confidence"`
4073		*NoMethod
4074	}
4075	s1.NoMethod = (*NoMethod)(s)
4076	if err := json.Unmarshal(data, &s1); err != nil {
4077		return err
4078	}
4079	s.Confidence = float64(s1.Confidence)
4080	return nil
4081}
4082
4083// GoogleCloudVisionV1p1beta1TextAnnotation: TextAnnotation contains a
4084// structured representation of OCR extracted text.
4085// The hierarchy of an OCR extracted text structure is like this:
4086//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
4087// Symbol
4088// Each structural component, starting from Page, may further have their
4089// own
4090// properties. Properties describe detected languages, breaks etc..
4091// Please refer
4092// to the TextAnnotation.TextProperty message definition below for
4093// more
4094// detail.
4095type GoogleCloudVisionV1p1beta1TextAnnotation struct {
4096	// Pages: List of pages detected by OCR.
4097	Pages []*GoogleCloudVisionV1p1beta1Page `json:"pages,omitempty"`
4098
4099	// Text: UTF-8 text detected on the pages.
4100	Text string `json:"text,omitempty"`
4101
4102	// ForceSendFields is a list of field names (e.g. "Pages") to
4103	// unconditionally include in API requests. By default, fields with
4104	// empty values are omitted from API requests. However, any non-pointer,
4105	// non-interface field appearing in ForceSendFields will be sent to the
4106	// server regardless of whether the field is empty or not. This may be
4107	// used to include empty fields in Patch requests.
4108	ForceSendFields []string `json:"-"`
4109
4110	// NullFields is a list of field names (e.g. "Pages") to include in API
4111	// requests with the JSON null value. By default, fields with empty
4112	// values are omitted from API requests. However, any field with an
4113	// empty value appearing in NullFields will be sent to the server as
4114	// null. It is an error if a field in this list has a non-empty value.
4115	// This may be used to include null fields in Patch requests.
4116	NullFields []string `json:"-"`
4117}
4118
4119func (s *GoogleCloudVisionV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
4120	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotation
4121	raw := NoMethod(*s)
4122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4123}
4124
4125// GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak: Detected start
4126// or end of a structural component.
4127type GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak struct {
4128	// IsPrefix: True if break prepends the element.
4129	IsPrefix bool `json:"isPrefix,omitempty"`
4130
4131	// Type: Detected break type.
4132	//
4133	// Possible values:
4134	//   "UNKNOWN" - Unknown break label type.
4135	//   "SPACE" - Regular space.
4136	//   "SURE_SPACE" - Sure space (very wide).
4137	//   "EOL_SURE_SPACE" - Line-wrapping break.
4138	//   "HYPHEN" - End-line hyphen that is not present in text; does not
4139	// co-occur with
4140	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
4141	//   "LINE_BREAK" - Line break that ends a paragraph.
4142	Type string `json:"type,omitempty"`
4143
4144	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
4145	// unconditionally include in API requests. By default, fields with
4146	// empty values are omitted from API requests. However, any non-pointer,
4147	// non-interface field appearing in ForceSendFields will be sent to the
4148	// server regardless of whether the field is empty or not. This may be
4149	// used to include empty fields in Patch requests.
4150	ForceSendFields []string `json:"-"`
4151
4152	// NullFields is a list of field names (e.g. "IsPrefix") to include in
4153	// API requests with the JSON null value. By default, fields with empty
4154	// values are omitted from API requests. However, any field with an
4155	// empty value appearing in NullFields will be sent to the server as
4156	// null. It is an error if a field in this list has a non-empty value.
4157	// This may be used to include null fields in Patch requests.
4158	NullFields []string `json:"-"`
4159}
4160
4161func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
4162	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak
4163	raw := NoMethod(*s)
4164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4165}
4166
4167// GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage: Detected
4168// language for a structural component.
4169type GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage struct {
4170	// Confidence: Confidence of detected language. Range [0, 1].
4171	Confidence float64 `json:"confidence,omitempty"`
4172
4173	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
4174	// For more
4175	// information,
4176	// see
4177	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
4178	LanguageCode string `json:"languageCode,omitempty"`
4179
4180	// ForceSendFields is a list of field names (e.g. "Confidence") to
4181	// unconditionally include in API requests. By default, fields with
4182	// empty values are omitted from API requests. However, any non-pointer,
4183	// non-interface field appearing in ForceSendFields will be sent to the
4184	// server regardless of whether the field is empty or not. This may be
4185	// used to include empty fields in Patch requests.
4186	ForceSendFields []string `json:"-"`
4187
4188	// NullFields is a list of field names (e.g. "Confidence") to include in
4189	// API requests with the JSON null value. By default, fields with empty
4190	// values are omitted from API requests. However, any field with an
4191	// empty value appearing in NullFields will be sent to the server as
4192	// null. It is an error if a field in this list has a non-empty value.
4193	// This may be used to include null fields in Patch requests.
4194	NullFields []string `json:"-"`
4195}
4196
4197func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
4198	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
4199	raw := NoMethod(*s)
4200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4201}
4202
4203func (s *GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
4204	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage
4205	var s1 struct {
4206		Confidence gensupport.JSONFloat64 `json:"confidence"`
4207		*NoMethod
4208	}
4209	s1.NoMethod = (*NoMethod)(s)
4210	if err := json.Unmarshal(data, &s1); err != nil {
4211		return err
4212	}
4213	s.Confidence = float64(s1.Confidence)
4214	return nil
4215}
4216
4217// GoogleCloudVisionV1p1beta1TextAnnotationTextProperty: Additional
4218// information detected on the structural component.
4219type GoogleCloudVisionV1p1beta1TextAnnotationTextProperty struct {
4220	// DetectedBreak: Detected start or end of a text segment.
4221	DetectedBreak *GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
4222
4223	// DetectedLanguages: A list of detected languages together with
4224	// confidence.
4225	DetectedLanguages []*GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
4226
4227	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
4228	// unconditionally include in API requests. By default, fields with
4229	// empty values are omitted from API requests. However, any non-pointer,
4230	// non-interface field appearing in ForceSendFields will be sent to the
4231	// server regardless of whether the field is empty or not. This may be
4232	// used to include empty fields in Patch requests.
4233	ForceSendFields []string `json:"-"`
4234
4235	// NullFields is a list of field names (e.g. "DetectedBreak") to include
4236	// in API requests with the JSON null value. By default, fields with
4237	// empty values are omitted from API requests. However, any field with
4238	// an empty value appearing in NullFields will be sent to the server as
4239	// null. It is an error if a field in this list has a non-empty value.
4240	// This may be used to include null fields in Patch requests.
4241	NullFields []string `json:"-"`
4242}
4243
4244func (s *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
4245	type NoMethod GoogleCloudVisionV1p1beta1TextAnnotationTextProperty
4246	raw := NoMethod(*s)
4247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4248}
4249
4250// GoogleCloudVisionV1p1beta1Vertex: A vertex represents a 2D point in
4251// the image.
4252// NOTE: the vertex coordinates are in the same scale as the original
4253// image.
4254type GoogleCloudVisionV1p1beta1Vertex struct {
4255	// X: X coordinate.
4256	X int64 `json:"x,omitempty"`
4257
4258	// Y: Y coordinate.
4259	Y int64 `json:"y,omitempty"`
4260
4261	// ForceSendFields is a list of field names (e.g. "X") to
4262	// unconditionally include in API requests. By default, fields with
4263	// empty values are omitted from API requests. However, any non-pointer,
4264	// non-interface field appearing in ForceSendFields will be sent to the
4265	// server regardless of whether the field is empty or not. This may be
4266	// used to include empty fields in Patch requests.
4267	ForceSendFields []string `json:"-"`
4268
4269	// NullFields is a list of field names (e.g. "X") to include in API
4270	// requests with the JSON null value. By default, fields with empty
4271	// values are omitted from API requests. However, any field with an
4272	// empty value appearing in NullFields will be sent to the server as
4273	// null. It is an error if a field in this list has a non-empty value.
4274	// This may be used to include null fields in Patch requests.
4275	NullFields []string `json:"-"`
4276}
4277
4278func (s *GoogleCloudVisionV1p1beta1Vertex) MarshalJSON() ([]byte, error) {
4279	type NoMethod GoogleCloudVisionV1p1beta1Vertex
4280	raw := NoMethod(*s)
4281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4282}
4283
4284// GoogleCloudVisionV1p1beta1WebDetection: Relevant information for the
4285// image from the Internet.
4286type GoogleCloudVisionV1p1beta1WebDetection struct {
4287	// BestGuessLabels: The service's best guess as to the topic of the
4288	// request image.
4289	// Inferred from similar images on the open web.
4290	BestGuessLabels []*GoogleCloudVisionV1p1beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
4291
4292	// FullMatchingImages: Fully matching images from the Internet.
4293	// Can include resized copies of the query image.
4294	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
4295
4296	// PagesWithMatchingImages: Web pages containing the matching images
4297	// from the Internet.
4298	PagesWithMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
4299
4300	// PartialMatchingImages: Partial matching images from the
4301	// Internet.
4302	// Those images are similar enough to share some key-point features.
4303	// For
4304	// example an original image will likely have partial matching for its
4305	// crops.
4306	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
4307
4308	// VisuallySimilarImages: The visually similar image results.
4309	VisuallySimilarImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
4310
4311	// WebEntities: Deduced entities from similar images on the Internet.
4312	WebEntities []*GoogleCloudVisionV1p1beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
4313
4314	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
4315	// unconditionally include in API requests. By default, fields with
4316	// empty values are omitted from API requests. However, any non-pointer,
4317	// non-interface field appearing in ForceSendFields will be sent to the
4318	// server regardless of whether the field is empty or not. This may be
4319	// used to include empty fields in Patch requests.
4320	ForceSendFields []string `json:"-"`
4321
4322	// NullFields is a list of field names (e.g. "BestGuessLabels") to
4323	// include in API requests with the JSON null value. By default, fields
4324	// with empty values are omitted from API requests. However, any field
4325	// with an empty value appearing in NullFields will be sent to the
4326	// server as null. It is an error if a field in this list has a
4327	// non-empty value. This may be used to include null fields in Patch
4328	// requests.
4329	NullFields []string `json:"-"`
4330}
4331
4332func (s *GoogleCloudVisionV1p1beta1WebDetection) MarshalJSON() ([]byte, error) {
4333	type NoMethod GoogleCloudVisionV1p1beta1WebDetection
4334	raw := NoMethod(*s)
4335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4336}
4337
4338// GoogleCloudVisionV1p1beta1WebDetectionWebEntity: Entity deduced from
4339// similar images on the Internet.
4340type GoogleCloudVisionV1p1beta1WebDetectionWebEntity struct {
4341	// Description: Canonical description of the entity, in English.
4342	Description string `json:"description,omitempty"`
4343
4344	// EntityId: Opaque entity ID.
4345	EntityId string `json:"entityId,omitempty"`
4346
4347	// Score: Overall relevancy score for the entity.
4348	// Not normalized and not comparable across different image queries.
4349	Score float64 `json:"score,omitempty"`
4350
4351	// ForceSendFields is a list of field names (e.g. "Description") to
4352	// unconditionally include in API requests. By default, fields with
4353	// empty values are omitted from API requests. However, any non-pointer,
4354	// non-interface field appearing in ForceSendFields will be sent to the
4355	// server regardless of whether the field is empty or not. This may be
4356	// used to include empty fields in Patch requests.
4357	ForceSendFields []string `json:"-"`
4358
4359	// NullFields is a list of field names (e.g. "Description") to include
4360	// in API requests with the JSON null value. By default, fields with
4361	// empty values are omitted from API requests. However, any field with
4362	// an empty value appearing in NullFields will be sent to the server as
4363	// null. It is an error if a field in this list has a non-empty value.
4364	// This may be used to include null fields in Patch requests.
4365	NullFields []string `json:"-"`
4366}
4367
4368func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
4369	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
4370	raw := NoMethod(*s)
4371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4372}
4373
4374func (s *GoogleCloudVisionV1p1beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
4375	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebEntity
4376	var s1 struct {
4377		Score gensupport.JSONFloat64 `json:"score"`
4378		*NoMethod
4379	}
4380	s1.NoMethod = (*NoMethod)(s)
4381	if err := json.Unmarshal(data, &s1); err != nil {
4382		return err
4383	}
4384	s.Score = float64(s1.Score)
4385	return nil
4386}
4387
4388// GoogleCloudVisionV1p1beta1WebDetectionWebImage: Metadata for online
4389// images.
4390type GoogleCloudVisionV1p1beta1WebDetectionWebImage struct {
4391	// Score: (Deprecated) Overall relevancy score for the image.
4392	Score float64 `json:"score,omitempty"`
4393
4394	// Url: The result image URL.
4395	Url string `json:"url,omitempty"`
4396
4397	// ForceSendFields is a list of field names (e.g. "Score") to
4398	// unconditionally include in API requests. By default, fields with
4399	// empty values are omitted from API requests. However, any non-pointer,
4400	// non-interface field appearing in ForceSendFields will be sent to the
4401	// server regardless of whether the field is empty or not. This may be
4402	// used to include empty fields in Patch requests.
4403	ForceSendFields []string `json:"-"`
4404
4405	// NullFields is a list of field names (e.g. "Score") to include in API
4406	// requests with the JSON null value. By default, fields with empty
4407	// values are omitted from API requests. However, any field with an
4408	// empty value appearing in NullFields will be sent to the server as
4409	// null. It is an error if a field in this list has a non-empty value.
4410	// This may be used to include null fields in Patch requests.
4411	NullFields []string `json:"-"`
4412}
4413
4414func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
4415	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4416	raw := NoMethod(*s)
4417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4418}
4419
4420func (s *GoogleCloudVisionV1p1beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
4421	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebImage
4422	var s1 struct {
4423		Score gensupport.JSONFloat64 `json:"score"`
4424		*NoMethod
4425	}
4426	s1.NoMethod = (*NoMethod)(s)
4427	if err := json.Unmarshal(data, &s1); err != nil {
4428		return err
4429	}
4430	s.Score = float64(s1.Score)
4431	return nil
4432}
4433
4434// GoogleCloudVisionV1p1beta1WebDetectionWebLabel: Label to provide
4435// extra metadata for the web detection.
4436type GoogleCloudVisionV1p1beta1WebDetectionWebLabel struct {
4437	// Label: Label for extra metadata.
4438	Label string `json:"label,omitempty"`
4439
4440	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
4441	// or "sr-Latn".
4442	// For more information,
4443	// see
4444	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
4445	LanguageCode string `json:"languageCode,omitempty"`
4446
4447	// ForceSendFields is a list of field names (e.g. "Label") to
4448	// unconditionally include in API requests. By default, fields with
4449	// empty values are omitted from API requests. However, any non-pointer,
4450	// non-interface field appearing in ForceSendFields will be sent to the
4451	// server regardless of whether the field is empty or not. This may be
4452	// used to include empty fields in Patch requests.
4453	ForceSendFields []string `json:"-"`
4454
4455	// NullFields is a list of field names (e.g. "Label") to include in API
4456	// requests with the JSON null value. By default, fields with empty
4457	// values are omitted from API requests. However, any field with an
4458	// empty value appearing in NullFields will be sent to the server as
4459	// null. It is an error if a field in this list has a non-empty value.
4460	// This may be used to include null fields in Patch requests.
4461	NullFields []string `json:"-"`
4462}
4463
4464func (s *GoogleCloudVisionV1p1beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
4465	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebLabel
4466	raw := NoMethod(*s)
4467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4468}
4469
4470// GoogleCloudVisionV1p1beta1WebDetectionWebPage: Metadata for web
4471// pages.
4472type GoogleCloudVisionV1p1beta1WebDetectionWebPage struct {
4473	// FullMatchingImages: Fully matching images on the page.
4474	// Can include resized copies of the query image.
4475	FullMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
4476
4477	// PageTitle: Title for the web page, may contain HTML markups.
4478	PageTitle string `json:"pageTitle,omitempty"`
4479
4480	// PartialMatchingImages: Partial matching images on the page.
4481	// Those images are similar enough to share some key-point features.
4482	// For
4483	// example an original image will likely have partial matching for
4484	// its
4485	// crops.
4486	PartialMatchingImages []*GoogleCloudVisionV1p1beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
4487
4488	// Score: (Deprecated) Overall relevancy score for the web page.
4489	Score float64 `json:"score,omitempty"`
4490
4491	// Url: The result web page URL.
4492	Url string `json:"url,omitempty"`
4493
4494	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
4495	// to unconditionally include in API requests. By default, fields with
4496	// empty values are omitted from API requests. However, any non-pointer,
4497	// non-interface field appearing in ForceSendFields will be sent to the
4498	// server regardless of whether the field is empty or not. This may be
4499	// used to include empty fields in Patch requests.
4500	ForceSendFields []string `json:"-"`
4501
4502	// NullFields is a list of field names (e.g. "FullMatchingImages") to
4503	// include in API requests with the JSON null value. By default, fields
4504	// with empty values are omitted from API requests. However, any field
4505	// with an empty value appearing in NullFields will be sent to the
4506	// server as null. It is an error if a field in this list has a
4507	// non-empty value. This may be used to include null fields in Patch
4508	// requests.
4509	NullFields []string `json:"-"`
4510}
4511
4512func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
4513	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4514	raw := NoMethod(*s)
4515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4516}
4517
4518func (s *GoogleCloudVisionV1p1beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
4519	type NoMethod GoogleCloudVisionV1p1beta1WebDetectionWebPage
4520	var s1 struct {
4521		Score gensupport.JSONFloat64 `json:"score"`
4522		*NoMethod
4523	}
4524	s1.NoMethod = (*NoMethod)(s)
4525	if err := json.Unmarshal(data, &s1); err != nil {
4526		return err
4527	}
4528	s.Score = float64(s1.Score)
4529	return nil
4530}
4531
4532// GoogleCloudVisionV1p1beta1Word: A word representation.
4533type GoogleCloudVisionV1p1beta1Word struct {
4534	// BoundingBox: The bounding box for the word.
4535	// The vertices are in the order of top-left, top-right,
4536	// bottom-right,
4537	// bottom-left. When a rotation of the bounding box is detected the
4538	// rotation
4539	// is represented as around the top-left corner as defined when the text
4540	// is
4541	// read in the 'natural' orientation.
4542	// For example:
4543	//   * when the text is horizontal it might look like:
4544	//      0----1
4545	//      |    |
4546	//      3----2
4547	//   * when it's rotated 180 degrees around the top-left corner it
4548	// becomes:
4549	//      2----3
4550	//      |    |
4551	//      1----0
4552	//   and the vertex order will still be (0, 1, 2, 3).
4553	BoundingBox *GoogleCloudVisionV1p1beta1BoundingPoly `json:"boundingBox,omitempty"`
4554
4555	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
4556	Confidence float64 `json:"confidence,omitempty"`
4557
4558	// Property: Additional information detected for the word.
4559	Property *GoogleCloudVisionV1p1beta1TextAnnotationTextProperty `json:"property,omitempty"`
4560
4561	// Symbols: List of symbols in the word.
4562	// The order of the symbols follows the natural reading order.
4563	Symbols []*GoogleCloudVisionV1p1beta1Symbol `json:"symbols,omitempty"`
4564
4565	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
4566	// unconditionally include in API requests. By default, fields with
4567	// empty values are omitted from API requests. However, any non-pointer,
4568	// non-interface field appearing in ForceSendFields will be sent to the
4569	// server regardless of whether the field is empty or not. This may be
4570	// used to include empty fields in Patch requests.
4571	ForceSendFields []string `json:"-"`
4572
4573	// NullFields is a list of field names (e.g. "BoundingBox") to include
4574	// in API requests with the JSON null value. By default, fields with
4575	// empty values are omitted from API requests. However, any field with
4576	// an empty value appearing in NullFields will be sent to the server as
4577	// null. It is an error if a field in this list has a non-empty value.
4578	// This may be used to include null fields in Patch requests.
4579	NullFields []string `json:"-"`
4580}
4581
4582func (s *GoogleCloudVisionV1p1beta1Word) MarshalJSON() ([]byte, error) {
4583	type NoMethod GoogleCloudVisionV1p1beta1Word
4584	raw := NoMethod(*s)
4585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4586}
4587
4588func (s *GoogleCloudVisionV1p1beta1Word) UnmarshalJSON(data []byte) error {
4589	type NoMethod GoogleCloudVisionV1p1beta1Word
4590	var s1 struct {
4591		Confidence gensupport.JSONFloat64 `json:"confidence"`
4592		*NoMethod
4593	}
4594	s1.NoMethod = (*NoMethod)(s)
4595	if err := json.Unmarshal(data, &s1); err != nil {
4596		return err
4597	}
4598	s.Confidence = float64(s1.Confidence)
4599	return nil
4600}
4601
4602// GoogleCloudVisionV1p2beta1AnnotateFileResponse: Response to a single
4603// file annotation request. A file may contain one or more
4604// images, which individually have their own responses.
4605type GoogleCloudVisionV1p2beta1AnnotateFileResponse struct {
4606	// Error: If set, represents the error message for the failed request.
4607	// The
4608	// `responses` field will not be set in this case.
4609	Error *Status `json:"error,omitempty"`
4610
4611	// InputConfig: Information about the file for which this response is
4612	// generated.
4613	InputConfig *GoogleCloudVisionV1p2beta1InputConfig `json:"inputConfig,omitempty"`
4614
4615	// Responses: Individual responses to images found within the file. This
4616	// field will be
4617	// empty if the `error` field is set.
4618	Responses []*GoogleCloudVisionV1p2beta1AnnotateImageResponse `json:"responses,omitempty"`
4619
4620	// TotalPages: This field gives the total number of pages in the file.
4621	TotalPages int64 `json:"totalPages,omitempty"`
4622
4623	// ForceSendFields is a list of field names (e.g. "Error") to
4624	// unconditionally include in API requests. By default, fields with
4625	// empty values are omitted from API requests. However, any non-pointer,
4626	// non-interface field appearing in ForceSendFields will be sent to the
4627	// server regardless of whether the field is empty or not. This may be
4628	// used to include empty fields in Patch requests.
4629	ForceSendFields []string `json:"-"`
4630
4631	// NullFields is a list of field names (e.g. "Error") to include in API
4632	// requests with the JSON null value. By default, fields with empty
4633	// values are omitted from API requests. However, any field with an
4634	// empty value appearing in NullFields will be sent to the server as
4635	// null. It is an error if a field in this list has a non-empty value.
4636	// This may be used to include null fields in Patch requests.
4637	NullFields []string `json:"-"`
4638}
4639
4640func (s *GoogleCloudVisionV1p2beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
4641	type NoMethod GoogleCloudVisionV1p2beta1AnnotateFileResponse
4642	raw := NoMethod(*s)
4643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4644}
4645
4646// GoogleCloudVisionV1p2beta1AnnotateImageResponse: Response to an image
4647// annotation request.
4648type GoogleCloudVisionV1p2beta1AnnotateImageResponse struct {
4649	// Context: If present, contextual information is needed to understand
4650	// where this image
4651	// comes from.
4652	Context *GoogleCloudVisionV1p2beta1ImageAnnotationContext `json:"context,omitempty"`
4653
4654	// CropHintsAnnotation: If present, crop hints have completed
4655	// successfully.
4656	CropHintsAnnotation *GoogleCloudVisionV1p2beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
4657
4658	// Error: If set, represents the error message for the operation.
4659	// Note that filled-in image annotations are guaranteed to be
4660	// correct, even when `error` is set.
4661	Error *Status `json:"error,omitempty"`
4662
4663	// FaceAnnotations: If present, face detection has completed
4664	// successfully.
4665	FaceAnnotations []*GoogleCloudVisionV1p2beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
4666
4667	// FullTextAnnotation: If present, text (OCR) detection or document
4668	// (OCR) text detection has
4669	// completed successfully.
4670	// This annotation provides the structural hierarchy for the OCR
4671	// detected
4672	// text.
4673	FullTextAnnotation *GoogleCloudVisionV1p2beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
4674
4675	// ImagePropertiesAnnotation: If present, image properties were
4676	// extracted successfully.
4677	ImagePropertiesAnnotation *GoogleCloudVisionV1p2beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
4678
4679	// LabelAnnotations: If present, label detection has completed
4680	// successfully.
4681	LabelAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
4682
4683	// LandmarkAnnotations: If present, landmark detection has completed
4684	// successfully.
4685	LandmarkAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
4686
4687	// LocalizedObjectAnnotations: If present, localized object detection
4688	// has completed successfully.
4689	// This will be sorted descending by confidence score.
4690	LocalizedObjectAnnotations []*GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
4691
4692	// LogoAnnotations: If present, logo detection has completed
4693	// successfully.
4694	LogoAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
4695
4696	// ProductSearchResults: If present, product search has completed
4697	// successfully.
4698	ProductSearchResults *GoogleCloudVisionV1p2beta1ProductSearchResults `json:"productSearchResults,omitempty"`
4699
4700	// SafeSearchAnnotation: If present, safe-search annotation has
4701	// completed successfully.
4702	SafeSearchAnnotation *GoogleCloudVisionV1p2beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
4703
4704	// TextAnnotations: If present, text (OCR) detection has completed
4705	// successfully.
4706	TextAnnotations []*GoogleCloudVisionV1p2beta1EntityAnnotation `json:"textAnnotations,omitempty"`
4707
4708	// WebDetection: If present, web detection has completed successfully.
4709	WebDetection *GoogleCloudVisionV1p2beta1WebDetection `json:"webDetection,omitempty"`
4710
4711	// ForceSendFields is a list of field names (e.g. "Context") to
4712	// unconditionally include in API requests. By default, fields with
4713	// empty values are omitted from API requests. However, any non-pointer,
4714	// non-interface field appearing in ForceSendFields will be sent to the
4715	// server regardless of whether the field is empty or not. This may be
4716	// used to include empty fields in Patch requests.
4717	ForceSendFields []string `json:"-"`
4718
4719	// NullFields is a list of field names (e.g. "Context") to include in
4720	// API requests with the JSON null value. By default, fields with empty
4721	// values are omitted from API requests. However, any field with an
4722	// empty value appearing in NullFields will be sent to the server as
4723	// null. It is an error if a field in this list has a non-empty value.
4724	// This may be used to include null fields in Patch requests.
4725	NullFields []string `json:"-"`
4726}
4727
4728func (s *GoogleCloudVisionV1p2beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
4729	type NoMethod GoogleCloudVisionV1p2beta1AnnotateImageResponse
4730	raw := NoMethod(*s)
4731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4732}
4733
4734// GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse: The response for
4735// a single offline file annotation request.
4736type GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse struct {
4737	// OutputConfig: The output location and metadata from
4738	// AsyncAnnotateFileRequest.
4739	OutputConfig *GoogleCloudVisionV1p2beta1OutputConfig `json:"outputConfig,omitempty"`
4740
4741	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
4742	// unconditionally include in API requests. By default, fields with
4743	// empty values are omitted from API requests. However, any non-pointer,
4744	// non-interface field appearing in ForceSendFields will be sent to the
4745	// server regardless of whether the field is empty or not. This may be
4746	// used to include empty fields in Patch requests.
4747	ForceSendFields []string `json:"-"`
4748
4749	// NullFields is a list of field names (e.g. "OutputConfig") to include
4750	// in API requests with the JSON null value. By default, fields with
4751	// empty values are omitted from API requests. However, any field with
4752	// an empty value appearing in NullFields will be sent to the server as
4753	// null. It is an error if a field in this list has a non-empty value.
4754	// This may be used to include null fields in Patch requests.
4755	NullFields []string `json:"-"`
4756}
4757
4758func (s *GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
4759	type NoMethod GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse
4760	raw := NoMethod(*s)
4761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4762}
4763
4764// GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse: Response
4765// to an async batch file annotation request.
4766type GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse struct {
4767	// Responses: The list of file annotation responses, one for each
4768	// request in
4769	// AsyncBatchAnnotateFilesRequest.
4770	Responses []*GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
4771
4772	// ForceSendFields is a list of field names (e.g. "Responses") to
4773	// unconditionally include in API requests. By default, fields with
4774	// empty values are omitted from API requests. However, any non-pointer,
4775	// non-interface field appearing in ForceSendFields will be sent to the
4776	// server regardless of whether the field is empty or not. This may be
4777	// used to include empty fields in Patch requests.
4778	ForceSendFields []string `json:"-"`
4779
4780	// NullFields is a list of field names (e.g. "Responses") to include in
4781	// API requests with the JSON null value. By default, fields with empty
4782	// values are omitted from API requests. However, any field with an
4783	// empty value appearing in NullFields will be sent to the server as
4784	// null. It is an error if a field in this list has a non-empty value.
4785	// This may be used to include null fields in Patch requests.
4786	NullFields []string `json:"-"`
4787}
4788
4789func (s *GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
4790	type NoMethod GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse
4791	raw := NoMethod(*s)
4792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4793}
4794
4795// GoogleCloudVisionV1p2beta1Block: Logical element on the page.
4796type GoogleCloudVisionV1p2beta1Block struct {
4797	// BlockType: Detected block type (text, image etc) for this block.
4798	//
4799	// Possible values:
4800	//   "UNKNOWN" - Unknown block type.
4801	//   "TEXT" - Regular text block.
4802	//   "TABLE" - Table block.
4803	//   "PICTURE" - Image block.
4804	//   "RULER" - Horizontal/vertical line box.
4805	//   "BARCODE" - Barcode block.
4806	BlockType string `json:"blockType,omitempty"`
4807
4808	// BoundingBox: The bounding box for the block.
4809	// The vertices are in the order of top-left, top-right,
4810	// bottom-right,
4811	// bottom-left. When a rotation of the bounding box is detected the
4812	// rotation
4813	// is represented as around the top-left corner as defined when the text
4814	// is
4815	// read in the 'natural' orientation.
4816	// For example:
4817	//
4818	// * when the text is horizontal it might look like:
4819	//
4820	//         0----1
4821	//         |    |
4822	//         3----2
4823	//
4824	// * when it's rotated 180 degrees around the top-left corner it
4825	// becomes:
4826	//
4827	//         2----3
4828	//         |    |
4829	//         1----0
4830	//
4831	//   and the vertex order will still be (0, 1, 2, 3).
4832	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
4833
4834	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
4835	Confidence float64 `json:"confidence,omitempty"`
4836
4837	// Paragraphs: List of paragraphs in this block (if this blocks is of
4838	// type text).
4839	Paragraphs []*GoogleCloudVisionV1p2beta1Paragraph `json:"paragraphs,omitempty"`
4840
4841	// Property: Additional information detected for the block.
4842	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
4843
4844	// ForceSendFields is a list of field names (e.g. "BlockType") to
4845	// unconditionally include in API requests. By default, fields with
4846	// empty values are omitted from API requests. However, any non-pointer,
4847	// non-interface field appearing in ForceSendFields will be sent to the
4848	// server regardless of whether the field is empty or not. This may be
4849	// used to include empty fields in Patch requests.
4850	ForceSendFields []string `json:"-"`
4851
4852	// NullFields is a list of field names (e.g. "BlockType") to include in
4853	// API requests with the JSON null value. By default, fields with empty
4854	// values are omitted from API requests. However, any field with an
4855	// empty value appearing in NullFields will be sent to the server as
4856	// null. It is an error if a field in this list has a non-empty value.
4857	// This may be used to include null fields in Patch requests.
4858	NullFields []string `json:"-"`
4859}
4860
4861func (s *GoogleCloudVisionV1p2beta1Block) MarshalJSON() ([]byte, error) {
4862	type NoMethod GoogleCloudVisionV1p2beta1Block
4863	raw := NoMethod(*s)
4864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4865}
4866
4867func (s *GoogleCloudVisionV1p2beta1Block) UnmarshalJSON(data []byte) error {
4868	type NoMethod GoogleCloudVisionV1p2beta1Block
4869	var s1 struct {
4870		Confidence gensupport.JSONFloat64 `json:"confidence"`
4871		*NoMethod
4872	}
4873	s1.NoMethod = (*NoMethod)(s)
4874	if err := json.Unmarshal(data, &s1); err != nil {
4875		return err
4876	}
4877	s.Confidence = float64(s1.Confidence)
4878	return nil
4879}
4880
4881// GoogleCloudVisionV1p2beta1BoundingPoly: A bounding polygon for the
4882// detected image annotation.
4883type GoogleCloudVisionV1p2beta1BoundingPoly struct {
4884	// NormalizedVertices: The bounding polygon normalized vertices.
4885	NormalizedVertices []*GoogleCloudVisionV1p2beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
4886
4887	// Vertices: The bounding polygon vertices.
4888	Vertices []*GoogleCloudVisionV1p2beta1Vertex `json:"vertices,omitempty"`
4889
4890	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
4891	// to unconditionally include in API requests. By default, fields with
4892	// empty values are omitted from API requests. However, any non-pointer,
4893	// non-interface field appearing in ForceSendFields will be sent to the
4894	// server regardless of whether the field is empty or not. This may be
4895	// used to include empty fields in Patch requests.
4896	ForceSendFields []string `json:"-"`
4897
4898	// NullFields is a list of field names (e.g. "NormalizedVertices") to
4899	// include in API requests with the JSON null value. By default, fields
4900	// with empty values are omitted from API requests. However, any field
4901	// with an empty value appearing in NullFields will be sent to the
4902	// server as null. It is an error if a field in this list has a
4903	// non-empty value. This may be used to include null fields in Patch
4904	// requests.
4905	NullFields []string `json:"-"`
4906}
4907
4908func (s *GoogleCloudVisionV1p2beta1BoundingPoly) MarshalJSON() ([]byte, error) {
4909	type NoMethod GoogleCloudVisionV1p2beta1BoundingPoly
4910	raw := NoMethod(*s)
4911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4912}
4913
4914// GoogleCloudVisionV1p2beta1ColorInfo: Color information consists of
4915// RGB channels, score, and the fraction of
4916// the image that the color occupies in the image.
4917type GoogleCloudVisionV1p2beta1ColorInfo struct {
4918	// Color: RGB components of the color.
4919	Color *Color `json:"color,omitempty"`
4920
4921	// PixelFraction: The fraction of pixels the color occupies in the
4922	// image.
4923	// Value in range [0, 1].
4924	PixelFraction float64 `json:"pixelFraction,omitempty"`
4925
4926	// Score: Image-specific score for this color. Value in range [0, 1].
4927	Score float64 `json:"score,omitempty"`
4928
4929	// ForceSendFields is a list of field names (e.g. "Color") to
4930	// unconditionally include in API requests. By default, fields with
4931	// empty values are omitted from API requests. However, any non-pointer,
4932	// non-interface field appearing in ForceSendFields will be sent to the
4933	// server regardless of whether the field is empty or not. This may be
4934	// used to include empty fields in Patch requests.
4935	ForceSendFields []string `json:"-"`
4936
4937	// NullFields is a list of field names (e.g. "Color") to include in API
4938	// requests with the JSON null value. By default, fields with empty
4939	// values are omitted from API requests. However, any field with an
4940	// empty value appearing in NullFields will be sent to the server as
4941	// null. It is an error if a field in this list has a non-empty value.
4942	// This may be used to include null fields in Patch requests.
4943	NullFields []string `json:"-"`
4944}
4945
4946func (s *GoogleCloudVisionV1p2beta1ColorInfo) MarshalJSON() ([]byte, error) {
4947	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4948	raw := NoMethod(*s)
4949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4950}
4951
4952func (s *GoogleCloudVisionV1p2beta1ColorInfo) UnmarshalJSON(data []byte) error {
4953	type NoMethod GoogleCloudVisionV1p2beta1ColorInfo
4954	var s1 struct {
4955		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
4956		Score         gensupport.JSONFloat64 `json:"score"`
4957		*NoMethod
4958	}
4959	s1.NoMethod = (*NoMethod)(s)
4960	if err := json.Unmarshal(data, &s1); err != nil {
4961		return err
4962	}
4963	s.PixelFraction = float64(s1.PixelFraction)
4964	s.Score = float64(s1.Score)
4965	return nil
4966}
4967
4968// GoogleCloudVisionV1p2beta1CropHint: Single crop hint that is used to
4969// generate a new crop when serving an image.
4970type GoogleCloudVisionV1p2beta1CropHint struct {
4971	// BoundingPoly: The bounding polygon for the crop region. The
4972	// coordinates of the bounding
4973	// box are in the original image's scale.
4974	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
4975
4976	// Confidence: Confidence of this being a salient region.  Range [0, 1].
4977	Confidence float64 `json:"confidence,omitempty"`
4978
4979	// ImportanceFraction: Fraction of importance of this salient region
4980	// with respect to the original
4981	// image.
4982	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
4983
4984	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
4985	// unconditionally include in API requests. By default, fields with
4986	// empty values are omitted from API requests. However, any non-pointer,
4987	// non-interface field appearing in ForceSendFields will be sent to the
4988	// server regardless of whether the field is empty or not. This may be
4989	// used to include empty fields in Patch requests.
4990	ForceSendFields []string `json:"-"`
4991
4992	// NullFields is a list of field names (e.g. "BoundingPoly") to include
4993	// in API requests with the JSON null value. By default, fields with
4994	// empty values are omitted from API requests. However, any field with
4995	// an empty value appearing in NullFields will be sent to the server as
4996	// null. It is an error if a field in this list has a non-empty value.
4997	// This may be used to include null fields in Patch requests.
4998	NullFields []string `json:"-"`
4999}
5000
5001func (s *GoogleCloudVisionV1p2beta1CropHint) MarshalJSON() ([]byte, error) {
5002	type NoMethod GoogleCloudVisionV1p2beta1CropHint
5003	raw := NoMethod(*s)
5004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5005}
5006
5007func (s *GoogleCloudVisionV1p2beta1CropHint) UnmarshalJSON(data []byte) error {
5008	type NoMethod GoogleCloudVisionV1p2beta1CropHint
5009	var s1 struct {
5010		Confidence         gensupport.JSONFloat64 `json:"confidence"`
5011		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
5012		*NoMethod
5013	}
5014	s1.NoMethod = (*NoMethod)(s)
5015	if err := json.Unmarshal(data, &s1); err != nil {
5016		return err
5017	}
5018	s.Confidence = float64(s1.Confidence)
5019	s.ImportanceFraction = float64(s1.ImportanceFraction)
5020	return nil
5021}
5022
5023// GoogleCloudVisionV1p2beta1CropHintsAnnotation: Set of crop hints that
5024// are used to generate new crops when serving images.
5025type GoogleCloudVisionV1p2beta1CropHintsAnnotation struct {
5026	// CropHints: Crop hint results.
5027	CropHints []*GoogleCloudVisionV1p2beta1CropHint `json:"cropHints,omitempty"`
5028
5029	// ForceSendFields is a list of field names (e.g. "CropHints") to
5030	// unconditionally include in API requests. By default, fields with
5031	// empty values are omitted from API requests. However, any non-pointer,
5032	// non-interface field appearing in ForceSendFields will be sent to the
5033	// server regardless of whether the field is empty or not. This may be
5034	// used to include empty fields in Patch requests.
5035	ForceSendFields []string `json:"-"`
5036
5037	// NullFields is a list of field names (e.g. "CropHints") to include in
5038	// API requests with the JSON null value. By default, fields with empty
5039	// values are omitted from API requests. However, any field with an
5040	// empty value appearing in NullFields will be sent to the server as
5041	// null. It is an error if a field in this list has a non-empty value.
5042	// This may be used to include null fields in Patch requests.
5043	NullFields []string `json:"-"`
5044}
5045
5046func (s *GoogleCloudVisionV1p2beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
5047	type NoMethod GoogleCloudVisionV1p2beta1CropHintsAnnotation
5048	raw := NoMethod(*s)
5049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5050}
5051
5052// GoogleCloudVisionV1p2beta1DominantColorsAnnotation: Set of dominant
5053// colors and their corresponding scores.
5054type GoogleCloudVisionV1p2beta1DominantColorsAnnotation struct {
5055	// Colors: RGB color values with their score and pixel fraction.
5056	Colors []*GoogleCloudVisionV1p2beta1ColorInfo `json:"colors,omitempty"`
5057
5058	// ForceSendFields is a list of field names (e.g. "Colors") to
5059	// unconditionally include in API requests. By default, fields with
5060	// empty values are omitted from API requests. However, any non-pointer,
5061	// non-interface field appearing in ForceSendFields will be sent to the
5062	// server regardless of whether the field is empty or not. This may be
5063	// used to include empty fields in Patch requests.
5064	ForceSendFields []string `json:"-"`
5065
5066	// NullFields is a list of field names (e.g. "Colors") to include in API
5067	// requests with the JSON null value. By default, fields with empty
5068	// values are omitted from API requests. However, any field with an
5069	// empty value appearing in NullFields will be sent to the server as
5070	// null. It is an error if a field in this list has a non-empty value.
5071	// This may be used to include null fields in Patch requests.
5072	NullFields []string `json:"-"`
5073}
5074
5075func (s *GoogleCloudVisionV1p2beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
5076	type NoMethod GoogleCloudVisionV1p2beta1DominantColorsAnnotation
5077	raw := NoMethod(*s)
5078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5079}
5080
5081// GoogleCloudVisionV1p2beta1EntityAnnotation: Set of detected entity
5082// features.
5083type GoogleCloudVisionV1p2beta1EntityAnnotation struct {
5084	// BoundingPoly: Image region to which this entity belongs. Not
5085	// produced
5086	// for `LABEL_DETECTION` features.
5087	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5088
5089	// Confidence: **Deprecated. Use `score` instead.**
5090	// The accuracy of the entity detection in an image.
5091	// For example, for an image in which the "Eiffel Tower" entity is
5092	// detected,
5093	// this field represents the confidence that there is a tower in the
5094	// query
5095	// image. Range [0, 1].
5096	Confidence float64 `json:"confidence,omitempty"`
5097
5098	// Description: Entity textual description, expressed in its `locale`
5099	// language.
5100	Description string `json:"description,omitempty"`
5101
5102	// Locale: The language code for the locale in which the entity
5103	// textual
5104	// `description` is expressed.
5105	Locale string `json:"locale,omitempty"`
5106
5107	// Locations: The location information for the detected entity.
5108	// Multiple
5109	// `LocationInfo` elements can be present because one location
5110	// may
5111	// indicate the location of the scene in the image, and another
5112	// location
5113	// may indicate the location of the place where the image was
5114	// taken.
5115	// Location information is usually present for landmarks.
5116	Locations []*GoogleCloudVisionV1p2beta1LocationInfo `json:"locations,omitempty"`
5117
5118	// Mid: Opaque entity ID. Some IDs may be available in
5119	// [Google Knowledge Graph
5120	// Search
5121	// API](https://developers.google.com/knowledge-graph/).
5122	Mid string `json:"mid,omitempty"`
5123
5124	// Properties: Some entities may have optional user-supplied `Property`
5125	// (name/value)
5126	// fields, such a score or string that qualifies the entity.
5127	Properties []*GoogleCloudVisionV1p2beta1Property `json:"properties,omitempty"`
5128
5129	// Score: Overall score of the result. Range [0, 1].
5130	Score float64 `json:"score,omitempty"`
5131
5132	// Topicality: The relevancy of the ICA (Image Content Annotation) label
5133	// to the
5134	// image. For example, the relevancy of "tower" is likely higher to an
5135	// image
5136	// containing the detected "Eiffel Tower" than to an image containing
5137	// a
5138	// detected distant towering building, even though the confidence
5139	// that
5140	// there is a tower in each image may be the same. Range [0, 1].
5141	Topicality float64 `json:"topicality,omitempty"`
5142
5143	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5144	// unconditionally include in API requests. By default, fields with
5145	// empty values are omitted from API requests. However, any non-pointer,
5146	// non-interface field appearing in ForceSendFields will be sent to the
5147	// server regardless of whether the field is empty or not. This may be
5148	// used to include empty fields in Patch requests.
5149	ForceSendFields []string `json:"-"`
5150
5151	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5152	// in API requests with the JSON null value. By default, fields with
5153	// empty values are omitted from API requests. However, any field with
5154	// an empty value appearing in NullFields will be sent to the server as
5155	// null. It is an error if a field in this list has a non-empty value.
5156	// This may be used to include null fields in Patch requests.
5157	NullFields []string `json:"-"`
5158}
5159
5160func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
5161	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
5162	raw := NoMethod(*s)
5163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5164}
5165
5166func (s *GoogleCloudVisionV1p2beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
5167	type NoMethod GoogleCloudVisionV1p2beta1EntityAnnotation
5168	var s1 struct {
5169		Confidence gensupport.JSONFloat64 `json:"confidence"`
5170		Score      gensupport.JSONFloat64 `json:"score"`
5171		Topicality gensupport.JSONFloat64 `json:"topicality"`
5172		*NoMethod
5173	}
5174	s1.NoMethod = (*NoMethod)(s)
5175	if err := json.Unmarshal(data, &s1); err != nil {
5176		return err
5177	}
5178	s.Confidence = float64(s1.Confidence)
5179	s.Score = float64(s1.Score)
5180	s.Topicality = float64(s1.Topicality)
5181	return nil
5182}
5183
5184// GoogleCloudVisionV1p2beta1FaceAnnotation: A face annotation object
5185// contains the results of face detection.
5186type GoogleCloudVisionV1p2beta1FaceAnnotation struct {
5187	// AngerLikelihood: Anger likelihood.
5188	//
5189	// Possible values:
5190	//   "UNKNOWN" - Unknown likelihood.
5191	//   "VERY_UNLIKELY" - It is very unlikely.
5192	//   "UNLIKELY" - It is unlikely.
5193	//   "POSSIBLE" - It is possible.
5194	//   "LIKELY" - It is likely.
5195	//   "VERY_LIKELY" - It is very likely.
5196	AngerLikelihood string `json:"angerLikelihood,omitempty"`
5197
5198	// BlurredLikelihood: Blurred likelihood.
5199	//
5200	// Possible values:
5201	//   "UNKNOWN" - Unknown likelihood.
5202	//   "VERY_UNLIKELY" - It is very unlikely.
5203	//   "UNLIKELY" - It is unlikely.
5204	//   "POSSIBLE" - It is possible.
5205	//   "LIKELY" - It is likely.
5206	//   "VERY_LIKELY" - It is very likely.
5207	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
5208
5209	// BoundingPoly: The bounding polygon around the face. The coordinates
5210	// of the bounding box
5211	// are in the original image's scale.
5212	// The bounding box is computed to "frame" the face in accordance with
5213	// human
5214	// expectations. It is based on the landmarker results.
5215	// Note that one or more x and/or y coordinates may not be generated in
5216	// the
5217	// `BoundingPoly` (the polygon will be unbounded) if only a partial
5218	// face
5219	// appears in the image to be annotated.
5220	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5221
5222	// DetectionConfidence: Detection confidence. Range [0, 1].
5223	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
5224
5225	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
5226	// than the
5227	// `boundingPoly`, and encloses only the skin part of the face.
5228	// Typically, it
5229	// is used to eliminate the face from any image analysis that detects
5230	// the
5231	// "amount of skin" visible in an image. It is not based on
5232	// the
5233	// landmarker results, only on the initial face detection, hence
5234	// the <code>fd</code> (face detection) prefix.
5235	FdBoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
5236
5237	// HeadwearLikelihood: Headwear likelihood.
5238	//
5239	// Possible values:
5240	//   "UNKNOWN" - Unknown likelihood.
5241	//   "VERY_UNLIKELY" - It is very unlikely.
5242	//   "UNLIKELY" - It is unlikely.
5243	//   "POSSIBLE" - It is possible.
5244	//   "LIKELY" - It is likely.
5245	//   "VERY_LIKELY" - It is very likely.
5246	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
5247
5248	// JoyLikelihood: Joy likelihood.
5249	//
5250	// Possible values:
5251	//   "UNKNOWN" - Unknown likelihood.
5252	//   "VERY_UNLIKELY" - It is very unlikely.
5253	//   "UNLIKELY" - It is unlikely.
5254	//   "POSSIBLE" - It is possible.
5255	//   "LIKELY" - It is likely.
5256	//   "VERY_LIKELY" - It is very likely.
5257	JoyLikelihood string `json:"joyLikelihood,omitempty"`
5258
5259	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
5260	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
5261
5262	// Landmarks: Detected face landmarks.
5263	Landmarks []*GoogleCloudVisionV1p2beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
5264
5265	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
5266	// that the face is
5267	// pointing relative to the vertical plane perpendicular to the image.
5268	// Range
5269	// [-180,180].
5270	PanAngle float64 `json:"panAngle,omitempty"`
5271
5272	// RollAngle: Roll angle, which indicates the amount of
5273	// clockwise/anti-clockwise rotation
5274	// of the face relative to the image vertical about the axis
5275	// perpendicular to
5276	// the face. Range [-180,180].
5277	RollAngle float64 `json:"rollAngle,omitempty"`
5278
5279	// SorrowLikelihood: Sorrow likelihood.
5280	//
5281	// Possible values:
5282	//   "UNKNOWN" - Unknown likelihood.
5283	//   "VERY_UNLIKELY" - It is very unlikely.
5284	//   "UNLIKELY" - It is unlikely.
5285	//   "POSSIBLE" - It is possible.
5286	//   "LIKELY" - It is likely.
5287	//   "VERY_LIKELY" - It is very likely.
5288	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
5289
5290	// SurpriseLikelihood: Surprise likelihood.
5291	//
5292	// Possible values:
5293	//   "UNKNOWN" - Unknown likelihood.
5294	//   "VERY_UNLIKELY" - It is very unlikely.
5295	//   "UNLIKELY" - It is unlikely.
5296	//   "POSSIBLE" - It is possible.
5297	//   "LIKELY" - It is likely.
5298	//   "VERY_LIKELY" - It is very likely.
5299	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
5300
5301	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
5302	// that the face is
5303	// pointing relative to the image's horizontal plane. Range [-180,180].
5304	TiltAngle float64 `json:"tiltAngle,omitempty"`
5305
5306	// UnderExposedLikelihood: Under-exposed likelihood.
5307	//
5308	// Possible values:
5309	//   "UNKNOWN" - Unknown likelihood.
5310	//   "VERY_UNLIKELY" - It is very unlikely.
5311	//   "UNLIKELY" - It is unlikely.
5312	//   "POSSIBLE" - It is possible.
5313	//   "LIKELY" - It is likely.
5314	//   "VERY_LIKELY" - It is very likely.
5315	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
5316
5317	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
5318	// unconditionally include in API requests. By default, fields with
5319	// empty values are omitted from API requests. However, any non-pointer,
5320	// non-interface field appearing in ForceSendFields will be sent to the
5321	// server regardless of whether the field is empty or not. This may be
5322	// used to include empty fields in Patch requests.
5323	ForceSendFields []string `json:"-"`
5324
5325	// NullFields is a list of field names (e.g. "AngerLikelihood") to
5326	// include in API requests with the JSON null value. By default, fields
5327	// with empty values are omitted from API requests. However, any field
5328	// with an empty value appearing in NullFields will be sent to the
5329	// server as null. It is an error if a field in this list has a
5330	// non-empty value. This may be used to include null fields in Patch
5331	// requests.
5332	NullFields []string `json:"-"`
5333}
5334
5335func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
5336	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5337	raw := NoMethod(*s)
5338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5339}
5340
5341func (s *GoogleCloudVisionV1p2beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
5342	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotation
5343	var s1 struct {
5344		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
5345		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
5346		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
5347		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
5348		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
5349		*NoMethod
5350	}
5351	s1.NoMethod = (*NoMethod)(s)
5352	if err := json.Unmarshal(data, &s1); err != nil {
5353		return err
5354	}
5355	s.DetectionConfidence = float64(s1.DetectionConfidence)
5356	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
5357	s.PanAngle = float64(s1.PanAngle)
5358	s.RollAngle = float64(s1.RollAngle)
5359	s.TiltAngle = float64(s1.TiltAngle)
5360	return nil
5361}
5362
5363// GoogleCloudVisionV1p2beta1FaceAnnotationLandmark: A face-specific
5364// landmark (for example, a face feature).
5365type GoogleCloudVisionV1p2beta1FaceAnnotationLandmark struct {
5366	// Position: Face landmark position.
5367	Position *GoogleCloudVisionV1p2beta1Position `json:"position,omitempty"`
5368
5369	// Type: Face landmark type.
5370	//
5371	// Possible values:
5372	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
5373	// filled.
5374	//   "LEFT_EYE" - Left eye.
5375	//   "RIGHT_EYE" - Right eye.
5376	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
5377	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
5378	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
5379	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
5380	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
5381	//   "NOSE_TIP" - Nose tip.
5382	//   "UPPER_LIP" - Upper lip.
5383	//   "LOWER_LIP" - Lower lip.
5384	//   "MOUTH_LEFT" - Mouth left.
5385	//   "MOUTH_RIGHT" - Mouth right.
5386	//   "MOUTH_CENTER" - Mouth center.
5387	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
5388	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
5389	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
5390	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
5391	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
5392	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
5393	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
5394	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
5395	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
5396	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
5397	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
5398	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
5399	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
5400	//   "LEFT_EAR_TRAGION" - Left ear tragion.
5401	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
5402	//   "LEFT_EYE_PUPIL" - Left eye pupil.
5403	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
5404	//   "FOREHEAD_GLABELLA" - Forehead glabella.
5405	//   "CHIN_GNATHION" - Chin gnathion.
5406	//   "CHIN_LEFT_GONION" - Chin left gonion.
5407	//   "CHIN_RIGHT_GONION" - Chin right gonion.
5408	Type string `json:"type,omitempty"`
5409
5410	// ForceSendFields is a list of field names (e.g. "Position") to
5411	// unconditionally include in API requests. By default, fields with
5412	// empty values are omitted from API requests. However, any non-pointer,
5413	// non-interface field appearing in ForceSendFields will be sent to the
5414	// server regardless of whether the field is empty or not. This may be
5415	// used to include empty fields in Patch requests.
5416	ForceSendFields []string `json:"-"`
5417
5418	// NullFields is a list of field names (e.g. "Position") to include in
5419	// API requests with the JSON null value. By default, fields with empty
5420	// values are omitted from API requests. However, any field with an
5421	// empty value appearing in NullFields will be sent to the server as
5422	// null. It is an error if a field in this list has a non-empty value.
5423	// This may be used to include null fields in Patch requests.
5424	NullFields []string `json:"-"`
5425}
5426
5427func (s *GoogleCloudVisionV1p2beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
5428	type NoMethod GoogleCloudVisionV1p2beta1FaceAnnotationLandmark
5429	raw := NoMethod(*s)
5430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5431}
5432
5433// GoogleCloudVisionV1p2beta1GcsDestination: The Google Cloud Storage
5434// location where the output will be written to.
5435type GoogleCloudVisionV1p2beta1GcsDestination struct {
5436	// Uri: Google Cloud Storage URI prefix where the results will be
5437	// stored. Results
5438	// will be in JSON format and preceded by its corresponding input URI
5439	// prefix.
5440	// This field can either represent a gcs file prefix or gcs directory.
5441	// In
5442	// either case, the uri should be unique because in order to get all of
5443	// the
5444	// output files, you will need to do a wildcard gcs search on the uri
5445	// prefix
5446	// you provide.
5447	//
5448	// Examples:
5449	//
5450	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
5451	// files
5452	// will be created in gs://bucket-name/here/ and the names of the
5453	// output files will begin with "filenameprefix".
5454	//
5455	// *    Directory Prefix: gs://bucket-name/some/location/   The output
5456	// files
5457	// will be created in gs://bucket-name/some/location/ and the names of
5458	// the
5459	// output files could be anything because there was no filename
5460	// prefix
5461	// specified.
5462	//
5463	// If multiple outputs, each response is still AnnotateFileResponse,
5464	// each of
5465	// which contains some subset of the full list of
5466	// AnnotateImageResponse.
5467	// Multiple outputs can happen if, for example, the output JSON is too
5468	// large
5469	// and overflows into multiple sharded files.
5470	Uri string `json:"uri,omitempty"`
5471
5472	// ForceSendFields is a list of field names (e.g. "Uri") to
5473	// unconditionally include in API requests. By default, fields with
5474	// empty values are omitted from API requests. However, any non-pointer,
5475	// non-interface field appearing in ForceSendFields will be sent to the
5476	// server regardless of whether the field is empty or not. This may be
5477	// used to include empty fields in Patch requests.
5478	ForceSendFields []string `json:"-"`
5479
5480	// NullFields is a list of field names (e.g. "Uri") to include in API
5481	// requests with the JSON null value. By default, fields with empty
5482	// values are omitted from API requests. However, any field with an
5483	// empty value appearing in NullFields will be sent to the server as
5484	// null. It is an error if a field in this list has a non-empty value.
5485	// This may be used to include null fields in Patch requests.
5486	NullFields []string `json:"-"`
5487}
5488
5489func (s *GoogleCloudVisionV1p2beta1GcsDestination) MarshalJSON() ([]byte, error) {
5490	type NoMethod GoogleCloudVisionV1p2beta1GcsDestination
5491	raw := NoMethod(*s)
5492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5493}
5494
5495// GoogleCloudVisionV1p2beta1GcsSource: The Google Cloud Storage
5496// location where the input will be read from.
5497type GoogleCloudVisionV1p2beta1GcsSource struct {
5498	// Uri: Google Cloud Storage URI for the input file. This must only be
5499	// a
5500	// Google Cloud Storage object. Wildcards are not currently supported.
5501	Uri string `json:"uri,omitempty"`
5502
5503	// ForceSendFields is a list of field names (e.g. "Uri") to
5504	// unconditionally include in API requests. By default, fields with
5505	// empty values are omitted from API requests. However, any non-pointer,
5506	// non-interface field appearing in ForceSendFields will be sent to the
5507	// server regardless of whether the field is empty or not. This may be
5508	// used to include empty fields in Patch requests.
5509	ForceSendFields []string `json:"-"`
5510
5511	// NullFields is a list of field names (e.g. "Uri") to include in API
5512	// requests with the JSON null value. By default, fields with empty
5513	// values are omitted from API requests. However, any field with an
5514	// empty value appearing in NullFields will be sent to the server as
5515	// null. It is an error if a field in this list has a non-empty value.
5516	// This may be used to include null fields in Patch requests.
5517	NullFields []string `json:"-"`
5518}
5519
5520func (s *GoogleCloudVisionV1p2beta1GcsSource) MarshalJSON() ([]byte, error) {
5521	type NoMethod GoogleCloudVisionV1p2beta1GcsSource
5522	raw := NoMethod(*s)
5523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5524}
5525
5526// GoogleCloudVisionV1p2beta1ImageAnnotationContext: If an image was
5527// produced from a file (e.g. a PDF), this message gives
5528// information about the source of that image.
5529type GoogleCloudVisionV1p2beta1ImageAnnotationContext struct {
5530	// PageNumber: If the file was a PDF or TIFF, this field gives the page
5531	// number within
5532	// the file used to produce the image.
5533	PageNumber int64 `json:"pageNumber,omitempty"`
5534
5535	// Uri: The URI of the file used to produce the image.
5536	Uri string `json:"uri,omitempty"`
5537
5538	// ForceSendFields is a list of field names (e.g. "PageNumber") to
5539	// unconditionally include in API requests. By default, fields with
5540	// empty values are omitted from API requests. However, any non-pointer,
5541	// non-interface field appearing in ForceSendFields will be sent to the
5542	// server regardless of whether the field is empty or not. This may be
5543	// used to include empty fields in Patch requests.
5544	ForceSendFields []string `json:"-"`
5545
5546	// NullFields is a list of field names (e.g. "PageNumber") to include in
5547	// API requests with the JSON null value. By default, fields with empty
5548	// values are omitted from API requests. However, any field with an
5549	// empty value appearing in NullFields will be sent to the server as
5550	// null. It is an error if a field in this list has a non-empty value.
5551	// This may be used to include null fields in Patch requests.
5552	NullFields []string `json:"-"`
5553}
5554
5555func (s *GoogleCloudVisionV1p2beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
5556	type NoMethod GoogleCloudVisionV1p2beta1ImageAnnotationContext
5557	raw := NoMethod(*s)
5558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5559}
5560
5561// GoogleCloudVisionV1p2beta1ImageProperties: Stores image properties,
5562// such as dominant colors.
5563type GoogleCloudVisionV1p2beta1ImageProperties struct {
5564	// DominantColors: If present, dominant colors completed successfully.
5565	DominantColors *GoogleCloudVisionV1p2beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
5566
5567	// ForceSendFields is a list of field names (e.g. "DominantColors") to
5568	// unconditionally include in API requests. By default, fields with
5569	// empty values are omitted from API requests. However, any non-pointer,
5570	// non-interface field appearing in ForceSendFields will be sent to the
5571	// server regardless of whether the field is empty or not. This may be
5572	// used to include empty fields in Patch requests.
5573	ForceSendFields []string `json:"-"`
5574
5575	// NullFields is a list of field names (e.g. "DominantColors") to
5576	// include in API requests with the JSON null value. By default, fields
5577	// with empty values are omitted from API requests. However, any field
5578	// with an empty value appearing in NullFields will be sent to the
5579	// server as null. It is an error if a field in this list has a
5580	// non-empty value. This may be used to include null fields in Patch
5581	// requests.
5582	NullFields []string `json:"-"`
5583}
5584
5585func (s *GoogleCloudVisionV1p2beta1ImageProperties) MarshalJSON() ([]byte, error) {
5586	type NoMethod GoogleCloudVisionV1p2beta1ImageProperties
5587	raw := NoMethod(*s)
5588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5589}
5590
5591// GoogleCloudVisionV1p2beta1InputConfig: The desired input location and
5592// metadata.
5593type GoogleCloudVisionV1p2beta1InputConfig struct {
5594	// Content: File content, represented as a stream of bytes.
5595	// Note: As with all `bytes` fields, protobuffers use a pure
5596	// binary
5597	// representation, whereas JSON representations use base64.
5598	//
5599	// Currently, this field only works for BatchAnnotateFiles requests. It
5600	// does
5601	// not work for AsyncBatchAnnotateFiles requests.
5602	Content string `json:"content,omitempty"`
5603
5604	// GcsSource: The Google Cloud Storage location to read the input from.
5605	GcsSource *GoogleCloudVisionV1p2beta1GcsSource `json:"gcsSource,omitempty"`
5606
5607	// MimeType: The type of the file. Currently only "application/pdf",
5608	// "image/tiff" and
5609	// "image/gif" are supported. Wildcards are not supported.
5610	MimeType string `json:"mimeType,omitempty"`
5611
5612	// ForceSendFields is a list of field names (e.g. "Content") to
5613	// unconditionally include in API requests. By default, fields with
5614	// empty values are omitted from API requests. However, any non-pointer,
5615	// non-interface field appearing in ForceSendFields will be sent to the
5616	// server regardless of whether the field is empty or not. This may be
5617	// used to include empty fields in Patch requests.
5618	ForceSendFields []string `json:"-"`
5619
5620	// NullFields is a list of field names (e.g. "Content") to include in
5621	// API requests with the JSON null value. By default, fields with empty
5622	// values are omitted from API requests. However, any field with an
5623	// empty value appearing in NullFields will be sent to the server as
5624	// null. It is an error if a field in this list has a non-empty value.
5625	// This may be used to include null fields in Patch requests.
5626	NullFields []string `json:"-"`
5627}
5628
5629func (s *GoogleCloudVisionV1p2beta1InputConfig) MarshalJSON() ([]byte, error) {
5630	type NoMethod GoogleCloudVisionV1p2beta1InputConfig
5631	raw := NoMethod(*s)
5632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5633}
5634
5635// GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation: Set of detected
5636// objects with bounding boxes.
5637type GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation struct {
5638	// BoundingPoly: Image region to which this object belongs. This must be
5639	// populated.
5640	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
5641
5642	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
5643	// For more
5644	// information,
5645	// see
5646	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
5647	LanguageCode string `json:"languageCode,omitempty"`
5648
5649	// Mid: Object ID that should align with EntityAnnotation mid.
5650	Mid string `json:"mid,omitempty"`
5651
5652	// Name: Object name, expressed in its `language_code` language.
5653	Name string `json:"name,omitempty"`
5654
5655	// Score: Score of the result. Range [0, 1].
5656	Score float64 `json:"score,omitempty"`
5657
5658	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
5659	// unconditionally include in API requests. By default, fields with
5660	// empty values are omitted from API requests. However, any non-pointer,
5661	// non-interface field appearing in ForceSendFields will be sent to the
5662	// server regardless of whether the field is empty or not. This may be
5663	// used to include empty fields in Patch requests.
5664	ForceSendFields []string `json:"-"`
5665
5666	// NullFields is a list of field names (e.g. "BoundingPoly") to include
5667	// in API requests with the JSON null value. By default, fields with
5668	// empty values are omitted from API requests. However, any field with
5669	// an empty value appearing in NullFields will be sent to the server as
5670	// null. It is an error if a field in this list has a non-empty value.
5671	// This may be used to include null fields in Patch requests.
5672	NullFields []string `json:"-"`
5673}
5674
5675func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
5676	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5677	raw := NoMethod(*s)
5678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5679}
5680
5681func (s *GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
5682	type NoMethod GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation
5683	var s1 struct {
5684		Score gensupport.JSONFloat64 `json:"score"`
5685		*NoMethod
5686	}
5687	s1.NoMethod = (*NoMethod)(s)
5688	if err := json.Unmarshal(data, &s1); err != nil {
5689		return err
5690	}
5691	s.Score = float64(s1.Score)
5692	return nil
5693}
5694
5695// GoogleCloudVisionV1p2beta1LocationInfo: Detected entity location
5696// information.
5697type GoogleCloudVisionV1p2beta1LocationInfo struct {
5698	// LatLng: lat/long location coordinates.
5699	LatLng *LatLng `json:"latLng,omitempty"`
5700
5701	// ForceSendFields is a list of field names (e.g. "LatLng") to
5702	// unconditionally include in API requests. By default, fields with
5703	// empty values are omitted from API requests. However, any non-pointer,
5704	// non-interface field appearing in ForceSendFields will be sent to the
5705	// server regardless of whether the field is empty or not. This may be
5706	// used to include empty fields in Patch requests.
5707	ForceSendFields []string `json:"-"`
5708
5709	// NullFields is a list of field names (e.g. "LatLng") to include in API
5710	// requests with the JSON null value. By default, fields with empty
5711	// values are omitted from API requests. However, any field with an
5712	// empty value appearing in NullFields will be sent to the server as
5713	// null. It is an error if a field in this list has a non-empty value.
5714	// This may be used to include null fields in Patch requests.
5715	NullFields []string `json:"-"`
5716}
5717
5718func (s *GoogleCloudVisionV1p2beta1LocationInfo) MarshalJSON() ([]byte, error) {
5719	type NoMethod GoogleCloudVisionV1p2beta1LocationInfo
5720	raw := NoMethod(*s)
5721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5722}
5723
5724// GoogleCloudVisionV1p2beta1NormalizedVertex: A vertex represents a 2D
5725// point in the image.
5726// NOTE: the normalized vertex coordinates are relative to the original
5727// image
5728// and range from 0 to 1.
5729type GoogleCloudVisionV1p2beta1NormalizedVertex struct {
5730	// X: X coordinate.
5731	X float64 `json:"x,omitempty"`
5732
5733	// Y: Y coordinate.
5734	Y float64 `json:"y,omitempty"`
5735
5736	// ForceSendFields is a list of field names (e.g. "X") to
5737	// unconditionally include in API requests. By default, fields with
5738	// empty values are omitted from API requests. However, any non-pointer,
5739	// non-interface field appearing in ForceSendFields will be sent to the
5740	// server regardless of whether the field is empty or not. This may be
5741	// used to include empty fields in Patch requests.
5742	ForceSendFields []string `json:"-"`
5743
5744	// NullFields is a list of field names (e.g. "X") to include in API
5745	// requests with the JSON null value. By default, fields with empty
5746	// values are omitted from API requests. However, any field with an
5747	// empty value appearing in NullFields will be sent to the server as
5748	// null. It is an error if a field in this list has a non-empty value.
5749	// This may be used to include null fields in Patch requests.
5750	NullFields []string `json:"-"`
5751}
5752
5753func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
5754	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5755	raw := NoMethod(*s)
5756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5757}
5758
5759func (s *GoogleCloudVisionV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
5760	type NoMethod GoogleCloudVisionV1p2beta1NormalizedVertex
5761	var s1 struct {
5762		X gensupport.JSONFloat64 `json:"x"`
5763		Y gensupport.JSONFloat64 `json:"y"`
5764		*NoMethod
5765	}
5766	s1.NoMethod = (*NoMethod)(s)
5767	if err := json.Unmarshal(data, &s1); err != nil {
5768		return err
5769	}
5770	s.X = float64(s1.X)
5771	s.Y = float64(s1.Y)
5772	return nil
5773}
5774
5775// GoogleCloudVisionV1p2beta1OperationMetadata: Contains metadata for
5776// the BatchAnnotateImages operation.
5777type GoogleCloudVisionV1p2beta1OperationMetadata struct {
5778	// CreateTime: The time when the batch request was received.
5779	CreateTime string `json:"createTime,omitempty"`
5780
5781	// State: Current state of the batch operation.
5782	//
5783	// Possible values:
5784	//   "STATE_UNSPECIFIED" - Invalid.
5785	//   "CREATED" - Request is received.
5786	//   "RUNNING" - Request is actively being processed.
5787	//   "DONE" - The batch processing is done.
5788	//   "CANCELLED" - The batch processing was cancelled.
5789	State string `json:"state,omitempty"`
5790
5791	// UpdateTime: The time when the operation result was last updated.
5792	UpdateTime string `json:"updateTime,omitempty"`
5793
5794	// ForceSendFields is a list of field names (e.g. "CreateTime") to
5795	// unconditionally include in API requests. By default, fields with
5796	// empty values are omitted from API requests. However, any non-pointer,
5797	// non-interface field appearing in ForceSendFields will be sent to the
5798	// server regardless of whether the field is empty or not. This may be
5799	// used to include empty fields in Patch requests.
5800	ForceSendFields []string `json:"-"`
5801
5802	// NullFields is a list of field names (e.g. "CreateTime") to include in
5803	// API requests with the JSON null value. By default, fields with empty
5804	// values are omitted from API requests. However, any field with an
5805	// empty value appearing in NullFields will be sent to the server as
5806	// null. It is an error if a field in this list has a non-empty value.
5807	// This may be used to include null fields in Patch requests.
5808	NullFields []string `json:"-"`
5809}
5810
5811func (s *GoogleCloudVisionV1p2beta1OperationMetadata) MarshalJSON() ([]byte, error) {
5812	type NoMethod GoogleCloudVisionV1p2beta1OperationMetadata
5813	raw := NoMethod(*s)
5814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5815}
5816
5817// GoogleCloudVisionV1p2beta1OutputConfig: The desired output location
5818// and metadata.
5819type GoogleCloudVisionV1p2beta1OutputConfig struct {
5820	// BatchSize: The max number of response protos to put into each output
5821	// JSON file on
5822	// Google Cloud Storage.
5823	// The valid range is [1, 100]. If not specified, the default value is
5824	// 20.
5825	//
5826	// For example, for one pdf file with 100 pages, 100 response protos
5827	// will
5828	// be generated. If `batch_size` = 20, then 5 json files each
5829	// containing 20 response protos will be written under the
5830	// prefix
5831	// `gcs_destination`.`uri`.
5832	//
5833	// Currently, batch_size only applies to GcsDestination, with potential
5834	// future
5835	// support for other output configurations.
5836	BatchSize int64 `json:"batchSize,omitempty"`
5837
5838	// GcsDestination: The Google Cloud Storage location to write the
5839	// output(s) to.
5840	GcsDestination *GoogleCloudVisionV1p2beta1GcsDestination `json:"gcsDestination,omitempty"`
5841
5842	// ForceSendFields is a list of field names (e.g. "BatchSize") to
5843	// unconditionally include in API requests. By default, fields with
5844	// empty values are omitted from API requests. However, any non-pointer,
5845	// non-interface field appearing in ForceSendFields will be sent to the
5846	// server regardless of whether the field is empty or not. This may be
5847	// used to include empty fields in Patch requests.
5848	ForceSendFields []string `json:"-"`
5849
5850	// NullFields is a list of field names (e.g. "BatchSize") to include in
5851	// API requests with the JSON null value. By default, fields with empty
5852	// values are omitted from API requests. However, any field with an
5853	// empty value appearing in NullFields will be sent to the server as
5854	// null. It is an error if a field in this list has a non-empty value.
5855	// This may be used to include null fields in Patch requests.
5856	NullFields []string `json:"-"`
5857}
5858
5859func (s *GoogleCloudVisionV1p2beta1OutputConfig) MarshalJSON() ([]byte, error) {
5860	type NoMethod GoogleCloudVisionV1p2beta1OutputConfig
5861	raw := NoMethod(*s)
5862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5863}
5864
5865// GoogleCloudVisionV1p2beta1Page: Detected page from OCR.
5866type GoogleCloudVisionV1p2beta1Page struct {
5867	// Blocks: List of blocks of text, images etc on this page.
5868	Blocks []*GoogleCloudVisionV1p2beta1Block `json:"blocks,omitempty"`
5869
5870	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
5871	Confidence float64 `json:"confidence,omitempty"`
5872
5873	// Height: Page height. For PDFs the unit is points. For images
5874	// (including
5875	// TIFFs) the unit is pixels.
5876	Height int64 `json:"height,omitempty"`
5877
5878	// Property: Additional information detected on the page.
5879	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5880
5881	// Width: Page width. For PDFs the unit is points. For images
5882	// (including
5883	// TIFFs) the unit is pixels.
5884	Width int64 `json:"width,omitempty"`
5885
5886	// ForceSendFields is a list of field names (e.g. "Blocks") to
5887	// unconditionally include in API requests. By default, fields with
5888	// empty values are omitted from API requests. However, any non-pointer,
5889	// non-interface field appearing in ForceSendFields will be sent to the
5890	// server regardless of whether the field is empty or not. This may be
5891	// used to include empty fields in Patch requests.
5892	ForceSendFields []string `json:"-"`
5893
5894	// NullFields is a list of field names (e.g. "Blocks") to include in API
5895	// requests with the JSON null value. By default, fields with empty
5896	// values are omitted from API requests. However, any field with an
5897	// empty value appearing in NullFields will be sent to the server as
5898	// null. It is an error if a field in this list has a non-empty value.
5899	// This may be used to include null fields in Patch requests.
5900	NullFields []string `json:"-"`
5901}
5902
5903func (s *GoogleCloudVisionV1p2beta1Page) MarshalJSON() ([]byte, error) {
5904	type NoMethod GoogleCloudVisionV1p2beta1Page
5905	raw := NoMethod(*s)
5906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5907}
5908
5909func (s *GoogleCloudVisionV1p2beta1Page) UnmarshalJSON(data []byte) error {
5910	type NoMethod GoogleCloudVisionV1p2beta1Page
5911	var s1 struct {
5912		Confidence gensupport.JSONFloat64 `json:"confidence"`
5913		*NoMethod
5914	}
5915	s1.NoMethod = (*NoMethod)(s)
5916	if err := json.Unmarshal(data, &s1); err != nil {
5917		return err
5918	}
5919	s.Confidence = float64(s1.Confidence)
5920	return nil
5921}
5922
5923// GoogleCloudVisionV1p2beta1Paragraph: Structural unit of text
5924// representing a number of words in certain order.
5925type GoogleCloudVisionV1p2beta1Paragraph struct {
5926	// BoundingBox: The bounding box for the paragraph.
5927	// The vertices are in the order of top-left, top-right,
5928	// bottom-right,
5929	// bottom-left. When a rotation of the bounding box is detected the
5930	// rotation
5931	// is represented as around the top-left corner as defined when the text
5932	// is
5933	// read in the 'natural' orientation.
5934	// For example:
5935	//   * when the text is horizontal it might look like:
5936	//      0----1
5937	//      |    |
5938	//      3----2
5939	//   * when it's rotated 180 degrees around the top-left corner it
5940	// becomes:
5941	//      2----3
5942	//      |    |
5943	//      1----0
5944	//   and the vertex order will still be (0, 1, 2, 3).
5945	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
5946
5947	// Confidence: Confidence of the OCR results for the paragraph. Range
5948	// [0, 1].
5949	Confidence float64 `json:"confidence,omitempty"`
5950
5951	// Property: Additional information detected for the paragraph.
5952	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
5953
5954	// Words: List of all words in this paragraph.
5955	Words []*GoogleCloudVisionV1p2beta1Word `json:"words,omitempty"`
5956
5957	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
5958	// unconditionally include in API requests. By default, fields with
5959	// empty values are omitted from API requests. However, any non-pointer,
5960	// non-interface field appearing in ForceSendFields will be sent to the
5961	// server regardless of whether the field is empty or not. This may be
5962	// used to include empty fields in Patch requests.
5963	ForceSendFields []string `json:"-"`
5964
5965	// NullFields is a list of field names (e.g. "BoundingBox") to include
5966	// in API requests with the JSON null value. By default, fields with
5967	// empty values are omitted from API requests. However, any field with
5968	// an empty value appearing in NullFields will be sent to the server as
5969	// null. It is an error if a field in this list has a non-empty value.
5970	// This may be used to include null fields in Patch requests.
5971	NullFields []string `json:"-"`
5972}
5973
5974func (s *GoogleCloudVisionV1p2beta1Paragraph) MarshalJSON() ([]byte, error) {
5975	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5976	raw := NoMethod(*s)
5977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5978}
5979
5980func (s *GoogleCloudVisionV1p2beta1Paragraph) UnmarshalJSON(data []byte) error {
5981	type NoMethod GoogleCloudVisionV1p2beta1Paragraph
5982	var s1 struct {
5983		Confidence gensupport.JSONFloat64 `json:"confidence"`
5984		*NoMethod
5985	}
5986	s1.NoMethod = (*NoMethod)(s)
5987	if err := json.Unmarshal(data, &s1); err != nil {
5988		return err
5989	}
5990	s.Confidence = float64(s1.Confidence)
5991	return nil
5992}
5993
5994// GoogleCloudVisionV1p2beta1Position: A 3D position in the image, used
5995// primarily for Face detection landmarks.
5996// A valid Position must have both x and y coordinates.
5997// The position coordinates are in the same scale as the original image.
5998type GoogleCloudVisionV1p2beta1Position struct {
5999	// X: X coordinate.
6000	X float64 `json:"x,omitempty"`
6001
6002	// Y: Y coordinate.
6003	Y float64 `json:"y,omitempty"`
6004
6005	// Z: Z coordinate (or depth).
6006	Z float64 `json:"z,omitempty"`
6007
6008	// ForceSendFields is a list of field names (e.g. "X") to
6009	// unconditionally include in API requests. By default, fields with
6010	// empty values are omitted from API requests. However, any non-pointer,
6011	// non-interface field appearing in ForceSendFields will be sent to the
6012	// server regardless of whether the field is empty or not. This may be
6013	// used to include empty fields in Patch requests.
6014	ForceSendFields []string `json:"-"`
6015
6016	// NullFields is a list of field names (e.g. "X") to include in API
6017	// requests with the JSON null value. By default, fields with empty
6018	// values are omitted from API requests. However, any field with an
6019	// empty value appearing in NullFields will be sent to the server as
6020	// null. It is an error if a field in this list has a non-empty value.
6021	// This may be used to include null fields in Patch requests.
6022	NullFields []string `json:"-"`
6023}
6024
6025func (s *GoogleCloudVisionV1p2beta1Position) MarshalJSON() ([]byte, error) {
6026	type NoMethod GoogleCloudVisionV1p2beta1Position
6027	raw := NoMethod(*s)
6028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6029}
6030
6031func (s *GoogleCloudVisionV1p2beta1Position) UnmarshalJSON(data []byte) error {
6032	type NoMethod GoogleCloudVisionV1p2beta1Position
6033	var s1 struct {
6034		X gensupport.JSONFloat64 `json:"x"`
6035		Y gensupport.JSONFloat64 `json:"y"`
6036		Z gensupport.JSONFloat64 `json:"z"`
6037		*NoMethod
6038	}
6039	s1.NoMethod = (*NoMethod)(s)
6040	if err := json.Unmarshal(data, &s1); err != nil {
6041		return err
6042	}
6043	s.X = float64(s1.X)
6044	s.Y = float64(s1.Y)
6045	s.Z = float64(s1.Z)
6046	return nil
6047}
6048
6049// GoogleCloudVisionV1p2beta1Product: A Product contains
6050// ReferenceImages.
6051type GoogleCloudVisionV1p2beta1Product struct {
6052	// Description: User-provided metadata to be stored with this product.
6053	// Must be at most 4096
6054	// characters long.
6055	Description string `json:"description,omitempty"`
6056
6057	// DisplayName: The user-provided name for this Product. Must not be
6058	// empty. Must be at most
6059	// 4096 characters long.
6060	DisplayName string `json:"displayName,omitempty"`
6061
6062	// Name: The resource name of the product.
6063	//
6064	// Format
6065	// is:
6066	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
6067	//
6068	// This field is ignored when creating a product.
6069	Name string `json:"name,omitempty"`
6070
6071	// ProductCategory: Immutable. The category for the product identified
6072	// by the reference image. This should
6073	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
6074	// categories
6075	// "homegoods", "apparel", and "toys" are still supported, but these
6076	// should
6077	// not be used for new products.
6078	ProductCategory string `json:"productCategory,omitempty"`
6079
6080	// ProductLabels: Key-value pairs that can be attached to a product. At
6081	// query time,
6082	// constraints can be specified based on the product_labels.
6083	//
6084	// Note that integer values can be provided as strings, e.g. "1199".
6085	// Only
6086	// strings with integer values can match a range-based restriction which
6087	// is
6088	// to be supported soon.
6089	//
6090	// Multiple values can be assigned to the same key. One product may have
6091	// up to
6092	// 500 product_labels.
6093	//
6094	// Notice that the total number of distinct product_labels over all
6095	// products
6096	// in one ProductSet cannot exceed 1M, otherwise the product search
6097	// pipeline
6098	// will refuse to work for that ProductSet.
6099	ProductLabels []*GoogleCloudVisionV1p2beta1ProductKeyValue `json:"productLabels,omitempty"`
6100
6101	// ForceSendFields is a list of field names (e.g. "Description") to
6102	// unconditionally include in API requests. By default, fields with
6103	// empty values are omitted from API requests. However, any non-pointer,
6104	// non-interface field appearing in ForceSendFields will be sent to the
6105	// server regardless of whether the field is empty or not. This may be
6106	// used to include empty fields in Patch requests.
6107	ForceSendFields []string `json:"-"`
6108
6109	// NullFields is a list of field names (e.g. "Description") to include
6110	// in API requests with the JSON null value. By default, fields with
6111	// empty values are omitted from API requests. However, any field with
6112	// an empty value appearing in NullFields will be sent to the server as
6113	// null. It is an error if a field in this list has a non-empty value.
6114	// This may be used to include null fields in Patch requests.
6115	NullFields []string `json:"-"`
6116}
6117
6118func (s *GoogleCloudVisionV1p2beta1Product) MarshalJSON() ([]byte, error) {
6119	type NoMethod GoogleCloudVisionV1p2beta1Product
6120	raw := NoMethod(*s)
6121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6122}
6123
6124// GoogleCloudVisionV1p2beta1ProductKeyValue: A product label
6125// represented as a key-value pair.
6126type GoogleCloudVisionV1p2beta1ProductKeyValue struct {
6127	// Key: The key of the label attached to the product. Cannot be empty
6128	// and cannot
6129	// exceed 128 bytes.
6130	Key string `json:"key,omitempty"`
6131
6132	// Value: The value of the label attached to the product. Cannot be
6133	// empty and
6134	// cannot exceed 128 bytes.
6135	Value string `json:"value,omitempty"`
6136
6137	// ForceSendFields is a list of field names (e.g. "Key") to
6138	// unconditionally include in API requests. By default, fields with
6139	// empty values are omitted from API requests. However, any non-pointer,
6140	// non-interface field appearing in ForceSendFields will be sent to the
6141	// server regardless of whether the field is empty or not. This may be
6142	// used to include empty fields in Patch requests.
6143	ForceSendFields []string `json:"-"`
6144
6145	// NullFields is a list of field names (e.g. "Key") to include in API
6146	// requests with the JSON null value. By default, fields with empty
6147	// values are omitted from API requests. However, any field with an
6148	// empty value appearing in NullFields will be sent to the server as
6149	// null. It is an error if a field in this list has a non-empty value.
6150	// This may be used to include null fields in Patch requests.
6151	NullFields []string `json:"-"`
6152}
6153
6154func (s *GoogleCloudVisionV1p2beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
6155	type NoMethod GoogleCloudVisionV1p2beta1ProductKeyValue
6156	raw := NoMethod(*s)
6157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6158}
6159
6160// GoogleCloudVisionV1p2beta1ProductSearchResults: Results for a product
6161// search request.
6162type GoogleCloudVisionV1p2beta1ProductSearchResults struct {
6163	// IndexTime: Timestamp of the index which provided these results.
6164	// Products added to the
6165	// product set and products removed from the product set after this time
6166	// are
6167	// not reflected in the current results.
6168	IndexTime string `json:"indexTime,omitempty"`
6169
6170	// ProductGroupedResults: List of results grouped by products detected
6171	// in the query image. Each entry
6172	// corresponds to one bounding polygon in the query image, and contains
6173	// the
6174	// matching products specific to that region. There may be duplicate
6175	// product
6176	// matches in the union of all the per-product results.
6177	ProductGroupedResults []*GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
6178
6179	// Results: List of results, one for each product match.
6180	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6181
6182	// ForceSendFields is a list of field names (e.g. "IndexTime") to
6183	// unconditionally include in API requests. By default, fields with
6184	// empty values are omitted from API requests. However, any non-pointer,
6185	// non-interface field appearing in ForceSendFields will be sent to the
6186	// server regardless of whether the field is empty or not. This may be
6187	// used to include empty fields in Patch requests.
6188	ForceSendFields []string `json:"-"`
6189
6190	// NullFields is a list of field names (e.g. "IndexTime") to include in
6191	// API requests with the JSON null value. By default, fields with empty
6192	// values are omitted from API requests. However, any field with an
6193	// empty value appearing in NullFields will be sent to the server as
6194	// null. It is an error if a field in this list has a non-empty value.
6195	// This may be used to include null fields in Patch requests.
6196	NullFields []string `json:"-"`
6197}
6198
6199func (s *GoogleCloudVisionV1p2beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
6200	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResults
6201	raw := NoMethod(*s)
6202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6203}
6204
6205// GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult:
6206// Information about the products similar to a single product in a
6207// query
6208// image.
6209type GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult struct {
6210	// BoundingPoly: The bounding polygon around the product detected in the
6211	// query image.
6212	BoundingPoly *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingPoly,omitempty"`
6213
6214	// ObjectAnnotations: List of generic predictions for the object in the
6215	// bounding box.
6216	ObjectAnnotations []*GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
6217
6218	// Results: List of results, one for each product match.
6219	Results []*GoogleCloudVisionV1p2beta1ProductSearchResultsResult `json:"results,omitempty"`
6220
6221	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
6222	// unconditionally include in API requests. By default, fields with
6223	// empty values are omitted from API requests. However, any non-pointer,
6224	// non-interface field appearing in ForceSendFields will be sent to the
6225	// server regardless of whether the field is empty or not. This may be
6226	// used to include empty fields in Patch requests.
6227	ForceSendFields []string `json:"-"`
6228
6229	// NullFields is a list of field names (e.g. "BoundingPoly") to include
6230	// in API requests with the JSON null value. By default, fields with
6231	// empty values are omitted from API requests. However, any field with
6232	// an empty value appearing in NullFields will be sent to the server as
6233	// null. It is an error if a field in this list has a non-empty value.
6234	// This may be used to include null fields in Patch requests.
6235	NullFields []string `json:"-"`
6236}
6237
6238func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
6239	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult
6240	raw := NoMethod(*s)
6241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6242}
6243
6244// GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation:
6245// Prediction for what the object in the bounding box is.
6246type GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation struct {
6247	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6248	// For more
6249	// information,
6250	// see
6251	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6252	LanguageCode string `json:"languageCode,omitempty"`
6253
6254	// Mid: Object ID that should align with EntityAnnotation mid.
6255	Mid string `json:"mid,omitempty"`
6256
6257	// Name: Object name, expressed in its `language_code` language.
6258	Name string `json:"name,omitempty"`
6259
6260	// Score: Score of the result. Range [0, 1].
6261	Score float64 `json:"score,omitempty"`
6262
6263	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
6264	// unconditionally include in API requests. By default, fields with
6265	// empty values are omitted from API requests. However, any non-pointer,
6266	// non-interface field appearing in ForceSendFields will be sent to the
6267	// server regardless of whether the field is empty or not. This may be
6268	// used to include empty fields in Patch requests.
6269	ForceSendFields []string `json:"-"`
6270
6271	// NullFields is a list of field names (e.g. "LanguageCode") to include
6272	// in API requests with the JSON null value. By default, fields with
6273	// empty values are omitted from API requests. However, any field with
6274	// an empty value appearing in NullFields will be sent to the server as
6275	// null. It is an error if a field in this list has a non-empty value.
6276	// This may be used to include null fields in Patch requests.
6277	NullFields []string `json:"-"`
6278}
6279
6280func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
6281	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
6282	raw := NoMethod(*s)
6283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6284}
6285
6286func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
6287	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation
6288	var s1 struct {
6289		Score gensupport.JSONFloat64 `json:"score"`
6290		*NoMethod
6291	}
6292	s1.NoMethod = (*NoMethod)(s)
6293	if err := json.Unmarshal(data, &s1); err != nil {
6294		return err
6295	}
6296	s.Score = float64(s1.Score)
6297	return nil
6298}
6299
6300// GoogleCloudVisionV1p2beta1ProductSearchResultsResult: Information
6301// about a product.
6302type GoogleCloudVisionV1p2beta1ProductSearchResultsResult struct {
6303	// Image: The resource name of the image from the product that is the
6304	// closest match
6305	// to the query.
6306	Image string `json:"image,omitempty"`
6307
6308	// Product: The Product.
6309	Product *GoogleCloudVisionV1p2beta1Product `json:"product,omitempty"`
6310
6311	// Score: A confidence level on the match, ranging from 0 (no
6312	// confidence) to
6313	// 1 (full confidence).
6314	Score float64 `json:"score,omitempty"`
6315
6316	// ForceSendFields is a list of field names (e.g. "Image") to
6317	// unconditionally include in API requests. By default, fields with
6318	// empty values are omitted from API requests. However, any non-pointer,
6319	// non-interface field appearing in ForceSendFields will be sent to the
6320	// server regardless of whether the field is empty or not. This may be
6321	// used to include empty fields in Patch requests.
6322	ForceSendFields []string `json:"-"`
6323
6324	// NullFields is a list of field names (e.g. "Image") to include in API
6325	// requests with the JSON null value. By default, fields with empty
6326	// values are omitted from API requests. However, any field with an
6327	// empty value appearing in NullFields will be sent to the server as
6328	// null. It is an error if a field in this list has a non-empty value.
6329	// This may be used to include null fields in Patch requests.
6330	NullFields []string `json:"-"`
6331}
6332
6333func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
6334	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6335	raw := NoMethod(*s)
6336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6337}
6338
6339func (s *GoogleCloudVisionV1p2beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
6340	type NoMethod GoogleCloudVisionV1p2beta1ProductSearchResultsResult
6341	var s1 struct {
6342		Score gensupport.JSONFloat64 `json:"score"`
6343		*NoMethod
6344	}
6345	s1.NoMethod = (*NoMethod)(s)
6346	if err := json.Unmarshal(data, &s1); err != nil {
6347		return err
6348	}
6349	s.Score = float64(s1.Score)
6350	return nil
6351}
6352
6353// GoogleCloudVisionV1p2beta1Property: A `Property` consists of a
6354// user-supplied name/value pair.
6355type GoogleCloudVisionV1p2beta1Property struct {
6356	// Name: Name of the property.
6357	Name string `json:"name,omitempty"`
6358
6359	// Uint64Value: Value of numeric properties.
6360	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
6361
6362	// Value: Value of the property.
6363	Value string `json:"value,omitempty"`
6364
6365	// ForceSendFields is a list of field names (e.g. "Name") to
6366	// unconditionally include in API requests. By default, fields with
6367	// empty values are omitted from API requests. However, any non-pointer,
6368	// non-interface field appearing in ForceSendFields will be sent to the
6369	// server regardless of whether the field is empty or not. This may be
6370	// used to include empty fields in Patch requests.
6371	ForceSendFields []string `json:"-"`
6372
6373	// NullFields is a list of field names (e.g. "Name") to include in API
6374	// requests with the JSON null value. By default, fields with empty
6375	// values are omitted from API requests. However, any field with an
6376	// empty value appearing in NullFields will be sent to the server as
6377	// null. It is an error if a field in this list has a non-empty value.
6378	// This may be used to include null fields in Patch requests.
6379	NullFields []string `json:"-"`
6380}
6381
6382func (s *GoogleCloudVisionV1p2beta1Property) MarshalJSON() ([]byte, error) {
6383	type NoMethod GoogleCloudVisionV1p2beta1Property
6384	raw := NoMethod(*s)
6385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6386}
6387
6388// GoogleCloudVisionV1p2beta1SafeSearchAnnotation: Set of features
6389// pertaining to the image, computed by computer vision
6390// methods over safe-search verticals (for example, adult, spoof,
6391// medical,
6392// violence).
6393type GoogleCloudVisionV1p2beta1SafeSearchAnnotation struct {
6394	// Adult: Represents the adult content likelihood for the image. Adult
6395	// content may
6396	// contain elements such as nudity, pornographic images or cartoons,
6397	// or
6398	// sexual activities.
6399	//
6400	// Possible values:
6401	//   "UNKNOWN" - Unknown likelihood.
6402	//   "VERY_UNLIKELY" - It is very unlikely.
6403	//   "UNLIKELY" - It is unlikely.
6404	//   "POSSIBLE" - It is possible.
6405	//   "LIKELY" - It is likely.
6406	//   "VERY_LIKELY" - It is very likely.
6407	Adult string `json:"adult,omitempty"`
6408
6409	// Medical: Likelihood that this is a medical image.
6410	//
6411	// Possible values:
6412	//   "UNKNOWN" - Unknown likelihood.
6413	//   "VERY_UNLIKELY" - It is very unlikely.
6414	//   "UNLIKELY" - It is unlikely.
6415	//   "POSSIBLE" - It is possible.
6416	//   "LIKELY" - It is likely.
6417	//   "VERY_LIKELY" - It is very likely.
6418	Medical string `json:"medical,omitempty"`
6419
6420	// Racy: Likelihood that the request image contains racy content. Racy
6421	// content may
6422	// include (but is not limited to) skimpy or sheer clothing,
6423	// strategically
6424	// covered nudity, lewd or provocative poses, or close-ups of
6425	// sensitive
6426	// body areas.
6427	//
6428	// Possible values:
6429	//   "UNKNOWN" - Unknown likelihood.
6430	//   "VERY_UNLIKELY" - It is very unlikely.
6431	//   "UNLIKELY" - It is unlikely.
6432	//   "POSSIBLE" - It is possible.
6433	//   "LIKELY" - It is likely.
6434	//   "VERY_LIKELY" - It is very likely.
6435	Racy string `json:"racy,omitempty"`
6436
6437	// Spoof: Spoof likelihood. The likelihood that an modification
6438	// was made to the image's canonical version to make it appear
6439	// funny or offensive.
6440	//
6441	// Possible values:
6442	//   "UNKNOWN" - Unknown likelihood.
6443	//   "VERY_UNLIKELY" - It is very unlikely.
6444	//   "UNLIKELY" - It is unlikely.
6445	//   "POSSIBLE" - It is possible.
6446	//   "LIKELY" - It is likely.
6447	//   "VERY_LIKELY" - It is very likely.
6448	Spoof string `json:"spoof,omitempty"`
6449
6450	// Violence: Likelihood that this image contains violent content.
6451	//
6452	// Possible values:
6453	//   "UNKNOWN" - Unknown likelihood.
6454	//   "VERY_UNLIKELY" - It is very unlikely.
6455	//   "UNLIKELY" - It is unlikely.
6456	//   "POSSIBLE" - It is possible.
6457	//   "LIKELY" - It is likely.
6458	//   "VERY_LIKELY" - It is very likely.
6459	Violence string `json:"violence,omitempty"`
6460
6461	// ForceSendFields is a list of field names (e.g. "Adult") to
6462	// unconditionally include in API requests. By default, fields with
6463	// empty values are omitted from API requests. However, any non-pointer,
6464	// non-interface field appearing in ForceSendFields will be sent to the
6465	// server regardless of whether the field is empty or not. This may be
6466	// used to include empty fields in Patch requests.
6467	ForceSendFields []string `json:"-"`
6468
6469	// NullFields is a list of field names (e.g. "Adult") to include in API
6470	// requests with the JSON null value. By default, fields with empty
6471	// values are omitted from API requests. However, any field with an
6472	// empty value appearing in NullFields will be sent to the server as
6473	// null. It is an error if a field in this list has a non-empty value.
6474	// This may be used to include null fields in Patch requests.
6475	NullFields []string `json:"-"`
6476}
6477
6478func (s *GoogleCloudVisionV1p2beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
6479	type NoMethod GoogleCloudVisionV1p2beta1SafeSearchAnnotation
6480	raw := NoMethod(*s)
6481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6482}
6483
6484// GoogleCloudVisionV1p2beta1Symbol: A single symbol representation.
6485type GoogleCloudVisionV1p2beta1Symbol struct {
6486	// BoundingBox: The bounding box for the symbol.
6487	// The vertices are in the order of top-left, top-right,
6488	// bottom-right,
6489	// bottom-left. When a rotation of the bounding box is detected the
6490	// rotation
6491	// is represented as around the top-left corner as defined when the text
6492	// is
6493	// read in the 'natural' orientation.
6494	// For example:
6495	//   * when the text is horizontal it might look like:
6496	//      0----1
6497	//      |    |
6498	//      3----2
6499	//   * when it's rotated 180 degrees around the top-left corner it
6500	// becomes:
6501	//      2----3
6502	//      |    |
6503	//      1----0
6504	//   and the vertex order will still be (0, 1, 2, 3).
6505	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
6506
6507	// Confidence: Confidence of the OCR results for the symbol. Range [0,
6508	// 1].
6509	Confidence float64 `json:"confidence,omitempty"`
6510
6511	// Property: Additional information detected for the symbol.
6512	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
6513
6514	// Text: The actual UTF-8 representation of the symbol.
6515	Text string `json:"text,omitempty"`
6516
6517	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
6518	// unconditionally include in API requests. By default, fields with
6519	// empty values are omitted from API requests. However, any non-pointer,
6520	// non-interface field appearing in ForceSendFields will be sent to the
6521	// server regardless of whether the field is empty or not. This may be
6522	// used to include empty fields in Patch requests.
6523	ForceSendFields []string `json:"-"`
6524
6525	// NullFields is a list of field names (e.g. "BoundingBox") to include
6526	// in API requests with the JSON null value. By default, fields with
6527	// empty values are omitted from API requests. However, any field with
6528	// an empty value appearing in NullFields will be sent to the server as
6529	// null. It is an error if a field in this list has a non-empty value.
6530	// This may be used to include null fields in Patch requests.
6531	NullFields []string `json:"-"`
6532}
6533
6534func (s *GoogleCloudVisionV1p2beta1Symbol) MarshalJSON() ([]byte, error) {
6535	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6536	raw := NoMethod(*s)
6537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6538}
6539
6540func (s *GoogleCloudVisionV1p2beta1Symbol) UnmarshalJSON(data []byte) error {
6541	type NoMethod GoogleCloudVisionV1p2beta1Symbol
6542	var s1 struct {
6543		Confidence gensupport.JSONFloat64 `json:"confidence"`
6544		*NoMethod
6545	}
6546	s1.NoMethod = (*NoMethod)(s)
6547	if err := json.Unmarshal(data, &s1); err != nil {
6548		return err
6549	}
6550	s.Confidence = float64(s1.Confidence)
6551	return nil
6552}
6553
6554// GoogleCloudVisionV1p2beta1TextAnnotation: TextAnnotation contains a
6555// structured representation of OCR extracted text.
6556// The hierarchy of an OCR extracted text structure is like this:
6557//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
6558// Symbol
6559// Each structural component, starting from Page, may further have their
6560// own
6561// properties. Properties describe detected languages, breaks etc..
6562// Please refer
6563// to the TextAnnotation.TextProperty message definition below for
6564// more
6565// detail.
6566type GoogleCloudVisionV1p2beta1TextAnnotation struct {
6567	// Pages: List of pages detected by OCR.
6568	Pages []*GoogleCloudVisionV1p2beta1Page `json:"pages,omitempty"`
6569
6570	// Text: UTF-8 text detected on the pages.
6571	Text string `json:"text,omitempty"`
6572
6573	// ForceSendFields is a list of field names (e.g. "Pages") to
6574	// unconditionally include in API requests. By default, fields with
6575	// empty values are omitted from API requests. However, any non-pointer,
6576	// non-interface field appearing in ForceSendFields will be sent to the
6577	// server regardless of whether the field is empty or not. This may be
6578	// used to include empty fields in Patch requests.
6579	ForceSendFields []string `json:"-"`
6580
6581	// NullFields is a list of field names (e.g. "Pages") to include in API
6582	// requests with the JSON null value. By default, fields with empty
6583	// values are omitted from API requests. However, any field with an
6584	// empty value appearing in NullFields will be sent to the server as
6585	// null. It is an error if a field in this list has a non-empty value.
6586	// This may be used to include null fields in Patch requests.
6587	NullFields []string `json:"-"`
6588}
6589
6590func (s *GoogleCloudVisionV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
6591	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotation
6592	raw := NoMethod(*s)
6593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6594}
6595
6596// GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak: Detected start
6597// or end of a structural component.
6598type GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak struct {
6599	// IsPrefix: True if break prepends the element.
6600	IsPrefix bool `json:"isPrefix,omitempty"`
6601
6602	// Type: Detected break type.
6603	//
6604	// Possible values:
6605	//   "UNKNOWN" - Unknown break label type.
6606	//   "SPACE" - Regular space.
6607	//   "SURE_SPACE" - Sure space (very wide).
6608	//   "EOL_SURE_SPACE" - Line-wrapping break.
6609	//   "HYPHEN" - End-line hyphen that is not present in text; does not
6610	// co-occur with
6611	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
6612	//   "LINE_BREAK" - Line break that ends a paragraph.
6613	Type string `json:"type,omitempty"`
6614
6615	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
6616	// unconditionally include in API requests. By default, fields with
6617	// empty values are omitted from API requests. However, any non-pointer,
6618	// non-interface field appearing in ForceSendFields will be sent to the
6619	// server regardless of whether the field is empty or not. This may be
6620	// used to include empty fields in Patch requests.
6621	ForceSendFields []string `json:"-"`
6622
6623	// NullFields is a list of field names (e.g. "IsPrefix") to include in
6624	// API requests with the JSON null value. By default, fields with empty
6625	// values are omitted from API requests. However, any field with an
6626	// empty value appearing in NullFields will be sent to the server as
6627	// null. It is an error if a field in this list has a non-empty value.
6628	// This may be used to include null fields in Patch requests.
6629	NullFields []string `json:"-"`
6630}
6631
6632func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
6633	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak
6634	raw := NoMethod(*s)
6635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6636}
6637
6638// GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage: Detected
6639// language for a structural component.
6640type GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage struct {
6641	// Confidence: Confidence of detected language. Range [0, 1].
6642	Confidence float64 `json:"confidence,omitempty"`
6643
6644	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
6645	// For more
6646	// information,
6647	// see
6648	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6649	LanguageCode string `json:"languageCode,omitempty"`
6650
6651	// ForceSendFields is a list of field names (e.g. "Confidence") to
6652	// unconditionally include in API requests. By default, fields with
6653	// empty values are omitted from API requests. However, any non-pointer,
6654	// non-interface field appearing in ForceSendFields will be sent to the
6655	// server regardless of whether the field is empty or not. This may be
6656	// used to include empty fields in Patch requests.
6657	ForceSendFields []string `json:"-"`
6658
6659	// NullFields is a list of field names (e.g. "Confidence") to include in
6660	// API requests with the JSON null value. By default, fields with empty
6661	// values are omitted from API requests. However, any field with an
6662	// empty value appearing in NullFields will be sent to the server as
6663	// null. It is an error if a field in this list has a non-empty value.
6664	// This may be used to include null fields in Patch requests.
6665	NullFields []string `json:"-"`
6666}
6667
6668func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
6669	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6670	raw := NoMethod(*s)
6671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6672}
6673
6674func (s *GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
6675	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage
6676	var s1 struct {
6677		Confidence gensupport.JSONFloat64 `json:"confidence"`
6678		*NoMethod
6679	}
6680	s1.NoMethod = (*NoMethod)(s)
6681	if err := json.Unmarshal(data, &s1); err != nil {
6682		return err
6683	}
6684	s.Confidence = float64(s1.Confidence)
6685	return nil
6686}
6687
6688// GoogleCloudVisionV1p2beta1TextAnnotationTextProperty: Additional
6689// information detected on the structural component.
6690type GoogleCloudVisionV1p2beta1TextAnnotationTextProperty struct {
6691	// DetectedBreak: Detected start or end of a text segment.
6692	DetectedBreak *GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
6693
6694	// DetectedLanguages: A list of detected languages together with
6695	// confidence.
6696	DetectedLanguages []*GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
6697
6698	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
6699	// unconditionally include in API requests. By default, fields with
6700	// empty values are omitted from API requests. However, any non-pointer,
6701	// non-interface field appearing in ForceSendFields will be sent to the
6702	// server regardless of whether the field is empty or not. This may be
6703	// used to include empty fields in Patch requests.
6704	ForceSendFields []string `json:"-"`
6705
6706	// NullFields is a list of field names (e.g. "DetectedBreak") to include
6707	// in API requests with the JSON null value. By default, fields with
6708	// empty values are omitted from API requests. However, any field with
6709	// an empty value appearing in NullFields will be sent to the server as
6710	// null. It is an error if a field in this list has a non-empty value.
6711	// This may be used to include null fields in Patch requests.
6712	NullFields []string `json:"-"`
6713}
6714
6715func (s *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
6716	type NoMethod GoogleCloudVisionV1p2beta1TextAnnotationTextProperty
6717	raw := NoMethod(*s)
6718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6719}
6720
6721// GoogleCloudVisionV1p2beta1Vertex: A vertex represents a 2D point in
6722// the image.
6723// NOTE: the vertex coordinates are in the same scale as the original
6724// image.
6725type GoogleCloudVisionV1p2beta1Vertex struct {
6726	// X: X coordinate.
6727	X int64 `json:"x,omitempty"`
6728
6729	// Y: Y coordinate.
6730	Y int64 `json:"y,omitempty"`
6731
6732	// ForceSendFields is a list of field names (e.g. "X") to
6733	// unconditionally include in API requests. By default, fields with
6734	// empty values are omitted from API requests. However, any non-pointer,
6735	// non-interface field appearing in ForceSendFields will be sent to the
6736	// server regardless of whether the field is empty or not. This may be
6737	// used to include empty fields in Patch requests.
6738	ForceSendFields []string `json:"-"`
6739
6740	// NullFields is a list of field names (e.g. "X") to include in API
6741	// requests with the JSON null value. By default, fields with empty
6742	// values are omitted from API requests. However, any field with an
6743	// empty value appearing in NullFields will be sent to the server as
6744	// null. It is an error if a field in this list has a non-empty value.
6745	// This may be used to include null fields in Patch requests.
6746	NullFields []string `json:"-"`
6747}
6748
6749func (s *GoogleCloudVisionV1p2beta1Vertex) MarshalJSON() ([]byte, error) {
6750	type NoMethod GoogleCloudVisionV1p2beta1Vertex
6751	raw := NoMethod(*s)
6752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6753}
6754
6755// GoogleCloudVisionV1p2beta1WebDetection: Relevant information for the
6756// image from the Internet.
6757type GoogleCloudVisionV1p2beta1WebDetection struct {
6758	// BestGuessLabels: The service's best guess as to the topic of the
6759	// request image.
6760	// Inferred from similar images on the open web.
6761	BestGuessLabels []*GoogleCloudVisionV1p2beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
6762
6763	// FullMatchingImages: Fully matching images from the Internet.
6764	// Can include resized copies of the query image.
6765	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6766
6767	// PagesWithMatchingImages: Web pages containing the matching images
6768	// from the Internet.
6769	PagesWithMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
6770
6771	// PartialMatchingImages: Partial matching images from the
6772	// Internet.
6773	// Those images are similar enough to share some key-point features.
6774	// For
6775	// example an original image will likely have partial matching for its
6776	// crops.
6777	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6778
6779	// VisuallySimilarImages: The visually similar image results.
6780	VisuallySimilarImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
6781
6782	// WebEntities: Deduced entities from similar images on the Internet.
6783	WebEntities []*GoogleCloudVisionV1p2beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
6784
6785	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
6786	// unconditionally include in API requests. By default, fields with
6787	// empty values are omitted from API requests. However, any non-pointer,
6788	// non-interface field appearing in ForceSendFields will be sent to the
6789	// server regardless of whether the field is empty or not. This may be
6790	// used to include empty fields in Patch requests.
6791	ForceSendFields []string `json:"-"`
6792
6793	// NullFields is a list of field names (e.g. "BestGuessLabels") to
6794	// include in API requests with the JSON null value. By default, fields
6795	// with empty values are omitted from API requests. However, any field
6796	// with an empty value appearing in NullFields will be sent to the
6797	// server as null. It is an error if a field in this list has a
6798	// non-empty value. This may be used to include null fields in Patch
6799	// requests.
6800	NullFields []string `json:"-"`
6801}
6802
6803func (s *GoogleCloudVisionV1p2beta1WebDetection) MarshalJSON() ([]byte, error) {
6804	type NoMethod GoogleCloudVisionV1p2beta1WebDetection
6805	raw := NoMethod(*s)
6806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6807}
6808
6809// GoogleCloudVisionV1p2beta1WebDetectionWebEntity: Entity deduced from
6810// similar images on the Internet.
6811type GoogleCloudVisionV1p2beta1WebDetectionWebEntity struct {
6812	// Description: Canonical description of the entity, in English.
6813	Description string `json:"description,omitempty"`
6814
6815	// EntityId: Opaque entity ID.
6816	EntityId string `json:"entityId,omitempty"`
6817
6818	// Score: Overall relevancy score for the entity.
6819	// Not normalized and not comparable across different image queries.
6820	Score float64 `json:"score,omitempty"`
6821
6822	// ForceSendFields is a list of field names (e.g. "Description") to
6823	// unconditionally include in API requests. By default, fields with
6824	// empty values are omitted from API requests. However, any non-pointer,
6825	// non-interface field appearing in ForceSendFields will be sent to the
6826	// server regardless of whether the field is empty or not. This may be
6827	// used to include empty fields in Patch requests.
6828	ForceSendFields []string `json:"-"`
6829
6830	// NullFields is a list of field names (e.g. "Description") to include
6831	// in API requests with the JSON null value. By default, fields with
6832	// empty values are omitted from API requests. However, any field with
6833	// an empty value appearing in NullFields will be sent to the server as
6834	// null. It is an error if a field in this list has a non-empty value.
6835	// This may be used to include null fields in Patch requests.
6836	NullFields []string `json:"-"`
6837}
6838
6839func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
6840	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6841	raw := NoMethod(*s)
6842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6843}
6844
6845func (s *GoogleCloudVisionV1p2beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
6846	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebEntity
6847	var s1 struct {
6848		Score gensupport.JSONFloat64 `json:"score"`
6849		*NoMethod
6850	}
6851	s1.NoMethod = (*NoMethod)(s)
6852	if err := json.Unmarshal(data, &s1); err != nil {
6853		return err
6854	}
6855	s.Score = float64(s1.Score)
6856	return nil
6857}
6858
6859// GoogleCloudVisionV1p2beta1WebDetectionWebImage: Metadata for online
6860// images.
6861type GoogleCloudVisionV1p2beta1WebDetectionWebImage struct {
6862	// Score: (Deprecated) Overall relevancy score for the image.
6863	Score float64 `json:"score,omitempty"`
6864
6865	// Url: The result image URL.
6866	Url string `json:"url,omitempty"`
6867
6868	// ForceSendFields is a list of field names (e.g. "Score") to
6869	// unconditionally include in API requests. By default, fields with
6870	// empty values are omitted from API requests. However, any non-pointer,
6871	// non-interface field appearing in ForceSendFields will be sent to the
6872	// server regardless of whether the field is empty or not. This may be
6873	// used to include empty fields in Patch requests.
6874	ForceSendFields []string `json:"-"`
6875
6876	// NullFields is a list of field names (e.g. "Score") to include in API
6877	// requests with the JSON null value. By default, fields with empty
6878	// values are omitted from API requests. However, any field with an
6879	// empty value appearing in NullFields will be sent to the server as
6880	// null. It is an error if a field in this list has a non-empty value.
6881	// This may be used to include null fields in Patch requests.
6882	NullFields []string `json:"-"`
6883}
6884
6885func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
6886	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6887	raw := NoMethod(*s)
6888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6889}
6890
6891func (s *GoogleCloudVisionV1p2beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
6892	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebImage
6893	var s1 struct {
6894		Score gensupport.JSONFloat64 `json:"score"`
6895		*NoMethod
6896	}
6897	s1.NoMethod = (*NoMethod)(s)
6898	if err := json.Unmarshal(data, &s1); err != nil {
6899		return err
6900	}
6901	s.Score = float64(s1.Score)
6902	return nil
6903}
6904
6905// GoogleCloudVisionV1p2beta1WebDetectionWebLabel: Label to provide
6906// extra metadata for the web detection.
6907type GoogleCloudVisionV1p2beta1WebDetectionWebLabel struct {
6908	// Label: Label for extra metadata.
6909	Label string `json:"label,omitempty"`
6910
6911	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
6912	// or "sr-Latn".
6913	// For more information,
6914	// see
6915	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
6916	LanguageCode string `json:"languageCode,omitempty"`
6917
6918	// ForceSendFields is a list of field names (e.g. "Label") to
6919	// unconditionally include in API requests. By default, fields with
6920	// empty values are omitted from API requests. However, any non-pointer,
6921	// non-interface field appearing in ForceSendFields will be sent to the
6922	// server regardless of whether the field is empty or not. This may be
6923	// used to include empty fields in Patch requests.
6924	ForceSendFields []string `json:"-"`
6925
6926	// NullFields is a list of field names (e.g. "Label") to include in API
6927	// requests with the JSON null value. By default, fields with empty
6928	// values are omitted from API requests. However, any field with an
6929	// empty value appearing in NullFields will be sent to the server as
6930	// null. It is an error if a field in this list has a non-empty value.
6931	// This may be used to include null fields in Patch requests.
6932	NullFields []string `json:"-"`
6933}
6934
6935func (s *GoogleCloudVisionV1p2beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
6936	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebLabel
6937	raw := NoMethod(*s)
6938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6939}
6940
6941// GoogleCloudVisionV1p2beta1WebDetectionWebPage: Metadata for web
6942// pages.
6943type GoogleCloudVisionV1p2beta1WebDetectionWebPage struct {
6944	// FullMatchingImages: Fully matching images on the page.
6945	// Can include resized copies of the query image.
6946	FullMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
6947
6948	// PageTitle: Title for the web page, may contain HTML markups.
6949	PageTitle string `json:"pageTitle,omitempty"`
6950
6951	// PartialMatchingImages: Partial matching images on the page.
6952	// Those images are similar enough to share some key-point features.
6953	// For
6954	// example an original image will likely have partial matching for
6955	// its
6956	// crops.
6957	PartialMatchingImages []*GoogleCloudVisionV1p2beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
6958
6959	// Score: (Deprecated) Overall relevancy score for the web page.
6960	Score float64 `json:"score,omitempty"`
6961
6962	// Url: The result web page URL.
6963	Url string `json:"url,omitempty"`
6964
6965	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
6966	// to unconditionally include in API requests. By default, fields with
6967	// empty values are omitted from API requests. However, any non-pointer,
6968	// non-interface field appearing in ForceSendFields will be sent to the
6969	// server regardless of whether the field is empty or not. This may be
6970	// used to include empty fields in Patch requests.
6971	ForceSendFields []string `json:"-"`
6972
6973	// NullFields is a list of field names (e.g. "FullMatchingImages") to
6974	// include in API requests with the JSON null value. By default, fields
6975	// with empty values are omitted from API requests. However, any field
6976	// with an empty value appearing in NullFields will be sent to the
6977	// server as null. It is an error if a field in this list has a
6978	// non-empty value. This may be used to include null fields in Patch
6979	// requests.
6980	NullFields []string `json:"-"`
6981}
6982
6983func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
6984	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6985	raw := NoMethod(*s)
6986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6987}
6988
6989func (s *GoogleCloudVisionV1p2beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
6990	type NoMethod GoogleCloudVisionV1p2beta1WebDetectionWebPage
6991	var s1 struct {
6992		Score gensupport.JSONFloat64 `json:"score"`
6993		*NoMethod
6994	}
6995	s1.NoMethod = (*NoMethod)(s)
6996	if err := json.Unmarshal(data, &s1); err != nil {
6997		return err
6998	}
6999	s.Score = float64(s1.Score)
7000	return nil
7001}
7002
7003// GoogleCloudVisionV1p2beta1Word: A word representation.
7004type GoogleCloudVisionV1p2beta1Word struct {
7005	// BoundingBox: The bounding box for the word.
7006	// The vertices are in the order of top-left, top-right,
7007	// bottom-right,
7008	// bottom-left. When a rotation of the bounding box is detected the
7009	// rotation
7010	// is represented as around the top-left corner as defined when the text
7011	// is
7012	// read in the 'natural' orientation.
7013	// For example:
7014	//   * when the text is horizontal it might look like:
7015	//      0----1
7016	//      |    |
7017	//      3----2
7018	//   * when it's rotated 180 degrees around the top-left corner it
7019	// becomes:
7020	//      2----3
7021	//      |    |
7022	//      1----0
7023	//   and the vertex order will still be (0, 1, 2, 3).
7024	BoundingBox *GoogleCloudVisionV1p2beta1BoundingPoly `json:"boundingBox,omitempty"`
7025
7026	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
7027	Confidence float64 `json:"confidence,omitempty"`
7028
7029	// Property: Additional information detected for the word.
7030	Property *GoogleCloudVisionV1p2beta1TextAnnotationTextProperty `json:"property,omitempty"`
7031
7032	// Symbols: List of symbols in the word.
7033	// The order of the symbols follows the natural reading order.
7034	Symbols []*GoogleCloudVisionV1p2beta1Symbol `json:"symbols,omitempty"`
7035
7036	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
7037	// unconditionally include in API requests. By default, fields with
7038	// empty values are omitted from API requests. However, any non-pointer,
7039	// non-interface field appearing in ForceSendFields will be sent to the
7040	// server regardless of whether the field is empty or not. This may be
7041	// used to include empty fields in Patch requests.
7042	ForceSendFields []string `json:"-"`
7043
7044	// NullFields is a list of field names (e.g. "BoundingBox") to include
7045	// in API requests with the JSON null value. By default, fields with
7046	// empty values are omitted from API requests. However, any field with
7047	// an empty value appearing in NullFields will be sent to the server as
7048	// null. It is an error if a field in this list has a non-empty value.
7049	// This may be used to include null fields in Patch requests.
7050	NullFields []string `json:"-"`
7051}
7052
7053func (s *GoogleCloudVisionV1p2beta1Word) MarshalJSON() ([]byte, error) {
7054	type NoMethod GoogleCloudVisionV1p2beta1Word
7055	raw := NoMethod(*s)
7056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7057}
7058
7059func (s *GoogleCloudVisionV1p2beta1Word) UnmarshalJSON(data []byte) error {
7060	type NoMethod GoogleCloudVisionV1p2beta1Word
7061	var s1 struct {
7062		Confidence gensupport.JSONFloat64 `json:"confidence"`
7063		*NoMethod
7064	}
7065	s1.NoMethod = (*NoMethod)(s)
7066	if err := json.Unmarshal(data, &s1); err != nil {
7067		return err
7068	}
7069	s.Confidence = float64(s1.Confidence)
7070	return nil
7071}
7072
7073// GoogleCloudVisionV1p3beta1AnnotateFileResponse: Response to a single
7074// file annotation request. A file may contain one or more
7075// images, which individually have their own responses.
7076type GoogleCloudVisionV1p3beta1AnnotateFileResponse struct {
7077	// Error: If set, represents the error message for the failed request.
7078	// The
7079	// `responses` field will not be set in this case.
7080	Error *Status `json:"error,omitempty"`
7081
7082	// InputConfig: Information about the file for which this response is
7083	// generated.
7084	InputConfig *GoogleCloudVisionV1p3beta1InputConfig `json:"inputConfig,omitempty"`
7085
7086	// Responses: Individual responses to images found within the file. This
7087	// field will be
7088	// empty if the `error` field is set.
7089	Responses []*GoogleCloudVisionV1p3beta1AnnotateImageResponse `json:"responses,omitempty"`
7090
7091	// TotalPages: This field gives the total number of pages in the file.
7092	TotalPages int64 `json:"totalPages,omitempty"`
7093
7094	// ForceSendFields is a list of field names (e.g. "Error") to
7095	// unconditionally include in API requests. By default, fields with
7096	// empty values are omitted from API requests. However, any non-pointer,
7097	// non-interface field appearing in ForceSendFields will be sent to the
7098	// server regardless of whether the field is empty or not. This may be
7099	// used to include empty fields in Patch requests.
7100	ForceSendFields []string `json:"-"`
7101
7102	// NullFields is a list of field names (e.g. "Error") to include in API
7103	// requests with the JSON null value. By default, fields with empty
7104	// values are omitted from API requests. However, any field with an
7105	// empty value appearing in NullFields will be sent to the server as
7106	// null. It is an error if a field in this list has a non-empty value.
7107	// This may be used to include null fields in Patch requests.
7108	NullFields []string `json:"-"`
7109}
7110
7111func (s *GoogleCloudVisionV1p3beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
7112	type NoMethod GoogleCloudVisionV1p3beta1AnnotateFileResponse
7113	raw := NoMethod(*s)
7114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7115}
7116
7117// GoogleCloudVisionV1p3beta1AnnotateImageResponse: Response to an image
7118// annotation request.
7119type GoogleCloudVisionV1p3beta1AnnotateImageResponse struct {
7120	// Context: If present, contextual information is needed to understand
7121	// where this image
7122	// comes from.
7123	Context *GoogleCloudVisionV1p3beta1ImageAnnotationContext `json:"context,omitempty"`
7124
7125	// CropHintsAnnotation: If present, crop hints have completed
7126	// successfully.
7127	CropHintsAnnotation *GoogleCloudVisionV1p3beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
7128
7129	// Error: If set, represents the error message for the operation.
7130	// Note that filled-in image annotations are guaranteed to be
7131	// correct, even when `error` is set.
7132	Error *Status `json:"error,omitempty"`
7133
7134	// FaceAnnotations: If present, face detection has completed
7135	// successfully.
7136	FaceAnnotations []*GoogleCloudVisionV1p3beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
7137
7138	// FullTextAnnotation: If present, text (OCR) detection or document
7139	// (OCR) text detection has
7140	// completed successfully.
7141	// This annotation provides the structural hierarchy for the OCR
7142	// detected
7143	// text.
7144	FullTextAnnotation *GoogleCloudVisionV1p3beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
7145
7146	// ImagePropertiesAnnotation: If present, image properties were
7147	// extracted successfully.
7148	ImagePropertiesAnnotation *GoogleCloudVisionV1p3beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
7149
7150	// LabelAnnotations: If present, label detection has completed
7151	// successfully.
7152	LabelAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
7153
7154	// LandmarkAnnotations: If present, landmark detection has completed
7155	// successfully.
7156	LandmarkAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
7157
7158	// LocalizedObjectAnnotations: If present, localized object detection
7159	// has completed successfully.
7160	// This will be sorted descending by confidence score.
7161	LocalizedObjectAnnotations []*GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
7162
7163	// LogoAnnotations: If present, logo detection has completed
7164	// successfully.
7165	LogoAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
7166
7167	// ProductSearchResults: If present, product search has completed
7168	// successfully.
7169	ProductSearchResults *GoogleCloudVisionV1p3beta1ProductSearchResults `json:"productSearchResults,omitempty"`
7170
7171	// SafeSearchAnnotation: If present, safe-search annotation has
7172	// completed successfully.
7173	SafeSearchAnnotation *GoogleCloudVisionV1p3beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
7174
7175	// TextAnnotations: If present, text (OCR) detection has completed
7176	// successfully.
7177	TextAnnotations []*GoogleCloudVisionV1p3beta1EntityAnnotation `json:"textAnnotations,omitempty"`
7178
7179	// WebDetection: If present, web detection has completed successfully.
7180	WebDetection *GoogleCloudVisionV1p3beta1WebDetection `json:"webDetection,omitempty"`
7181
7182	// ForceSendFields is a list of field names (e.g. "Context") to
7183	// unconditionally include in API requests. By default, fields with
7184	// empty values are omitted from API requests. However, any non-pointer,
7185	// non-interface field appearing in ForceSendFields will be sent to the
7186	// server regardless of whether the field is empty or not. This may be
7187	// used to include empty fields in Patch requests.
7188	ForceSendFields []string `json:"-"`
7189
7190	// NullFields is a list of field names (e.g. "Context") to include in
7191	// API requests with the JSON null value. By default, fields with empty
7192	// values are omitted from API requests. However, any field with an
7193	// empty value appearing in NullFields will be sent to the server as
7194	// null. It is an error if a field in this list has a non-empty value.
7195	// This may be used to include null fields in Patch requests.
7196	NullFields []string `json:"-"`
7197}
7198
7199func (s *GoogleCloudVisionV1p3beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
7200	type NoMethod GoogleCloudVisionV1p3beta1AnnotateImageResponse
7201	raw := NoMethod(*s)
7202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7203}
7204
7205// GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse: The response for
7206// a single offline file annotation request.
7207type GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse struct {
7208	// OutputConfig: The output location and metadata from
7209	// AsyncAnnotateFileRequest.
7210	OutputConfig *GoogleCloudVisionV1p3beta1OutputConfig `json:"outputConfig,omitempty"`
7211
7212	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
7213	// unconditionally include in API requests. By default, fields with
7214	// empty values are omitted from API requests. However, any non-pointer,
7215	// non-interface field appearing in ForceSendFields will be sent to the
7216	// server regardless of whether the field is empty or not. This may be
7217	// used to include empty fields in Patch requests.
7218	ForceSendFields []string `json:"-"`
7219
7220	// NullFields is a list of field names (e.g. "OutputConfig") to include
7221	// in API requests with the JSON null value. By default, fields with
7222	// empty values are omitted from API requests. However, any field with
7223	// an empty value appearing in NullFields will be sent to the server as
7224	// null. It is an error if a field in this list has a non-empty value.
7225	// This may be used to include null fields in Patch requests.
7226	NullFields []string `json:"-"`
7227}
7228
7229func (s *GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
7230	type NoMethod GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse
7231	raw := NoMethod(*s)
7232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7233}
7234
7235// GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse: Response
7236// to an async batch file annotation request.
7237type GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse struct {
7238	// Responses: The list of file annotation responses, one for each
7239	// request in
7240	// AsyncBatchAnnotateFilesRequest.
7241	Responses []*GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
7242
7243	// ForceSendFields is a list of field names (e.g. "Responses") to
7244	// unconditionally include in API requests. By default, fields with
7245	// empty values are omitted from API requests. However, any non-pointer,
7246	// non-interface field appearing in ForceSendFields will be sent to the
7247	// server regardless of whether the field is empty or not. This may be
7248	// used to include empty fields in Patch requests.
7249	ForceSendFields []string `json:"-"`
7250
7251	// NullFields is a list of field names (e.g. "Responses") to include in
7252	// API requests with the JSON null value. By default, fields with empty
7253	// values are omitted from API requests. However, any field with an
7254	// empty value appearing in NullFields will be sent to the server as
7255	// null. It is an error if a field in this list has a non-empty value.
7256	// This may be used to include null fields in Patch requests.
7257	NullFields []string `json:"-"`
7258}
7259
7260func (s *GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
7261	type NoMethod GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse
7262	raw := NoMethod(*s)
7263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7264}
7265
7266// GoogleCloudVisionV1p3beta1BatchOperationMetadata: Metadata for the
7267// batch operations such as the current state.
7268//
7269// This is included in the `metadata` field of the `Operation` returned
7270// by the
7271// `GetOperation` call of the `google::longrunning::Operations` service.
7272type GoogleCloudVisionV1p3beta1BatchOperationMetadata struct {
7273	// EndTime: The time when the batch request is finished
7274	// and
7275	// google.longrunning.Operation.done is set to true.
7276	EndTime string `json:"endTime,omitempty"`
7277
7278	// State: The current state of the batch operation.
7279	//
7280	// Possible values:
7281	//   "STATE_UNSPECIFIED" - Invalid.
7282	//   "PROCESSING" - Request is actively being processed.
7283	//   "SUCCESSFUL" - The request is done and at least one item has been
7284	// successfully
7285	// processed.
7286	//   "FAILED" - The request is done and no item has been successfully
7287	// processed.
7288	//   "CANCELLED" - The request is done after the
7289	// longrunning.Operations.CancelOperation has
7290	// been called by the user.  Any records that were processed before
7291	// the
7292	// cancel command are output as specified in the request.
7293	State string `json:"state,omitempty"`
7294
7295	// SubmitTime: The time when the batch request was submitted to the
7296	// server.
7297	SubmitTime string `json:"submitTime,omitempty"`
7298
7299	// ForceSendFields is a list of field names (e.g. "EndTime") to
7300	// unconditionally include in API requests. By default, fields with
7301	// empty values are omitted from API requests. However, any non-pointer,
7302	// non-interface field appearing in ForceSendFields will be sent to the
7303	// server regardless of whether the field is empty or not. This may be
7304	// used to include empty fields in Patch requests.
7305	ForceSendFields []string `json:"-"`
7306
7307	// NullFields is a list of field names (e.g. "EndTime") to include in
7308	// API requests with the JSON null value. By default, fields with empty
7309	// values are omitted from API requests. However, any field with an
7310	// empty value appearing in NullFields will be sent to the server as
7311	// null. It is an error if a field in this list has a non-empty value.
7312	// This may be used to include null fields in Patch requests.
7313	NullFields []string `json:"-"`
7314}
7315
7316func (s *GoogleCloudVisionV1p3beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
7317	type NoMethod GoogleCloudVisionV1p3beta1BatchOperationMetadata
7318	raw := NoMethod(*s)
7319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7320}
7321
7322// GoogleCloudVisionV1p3beta1Block: Logical element on the page.
7323type GoogleCloudVisionV1p3beta1Block struct {
7324	// BlockType: Detected block type (text, image etc) for this block.
7325	//
7326	// Possible values:
7327	//   "UNKNOWN" - Unknown block type.
7328	//   "TEXT" - Regular text block.
7329	//   "TABLE" - Table block.
7330	//   "PICTURE" - Image block.
7331	//   "RULER" - Horizontal/vertical line box.
7332	//   "BARCODE" - Barcode block.
7333	BlockType string `json:"blockType,omitempty"`
7334
7335	// BoundingBox: The bounding box for the block.
7336	// The vertices are in the order of top-left, top-right,
7337	// bottom-right,
7338	// bottom-left. When a rotation of the bounding box is detected the
7339	// rotation
7340	// is represented as around the top-left corner as defined when the text
7341	// is
7342	// read in the 'natural' orientation.
7343	// For example:
7344	//
7345	// * when the text is horizontal it might look like:
7346	//
7347	//         0----1
7348	//         |    |
7349	//         3----2
7350	//
7351	// * when it's rotated 180 degrees around the top-left corner it
7352	// becomes:
7353	//
7354	//         2----3
7355	//         |    |
7356	//         1----0
7357	//
7358	//   and the vertex order will still be (0, 1, 2, 3).
7359	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
7360
7361	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
7362	Confidence float64 `json:"confidence,omitempty"`
7363
7364	// Paragraphs: List of paragraphs in this block (if this blocks is of
7365	// type text).
7366	Paragraphs []*GoogleCloudVisionV1p3beta1Paragraph `json:"paragraphs,omitempty"`
7367
7368	// Property: Additional information detected for the block.
7369	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
7370
7371	// ForceSendFields is a list of field names (e.g. "BlockType") to
7372	// unconditionally include in API requests. By default, fields with
7373	// empty values are omitted from API requests. However, any non-pointer,
7374	// non-interface field appearing in ForceSendFields will be sent to the
7375	// server regardless of whether the field is empty or not. This may be
7376	// used to include empty fields in Patch requests.
7377	ForceSendFields []string `json:"-"`
7378
7379	// NullFields is a list of field names (e.g. "BlockType") to include in
7380	// API requests with the JSON null value. By default, fields with empty
7381	// values are omitted from API requests. However, any field with an
7382	// empty value appearing in NullFields will be sent to the server as
7383	// null. It is an error if a field in this list has a non-empty value.
7384	// This may be used to include null fields in Patch requests.
7385	NullFields []string `json:"-"`
7386}
7387
7388func (s *GoogleCloudVisionV1p3beta1Block) MarshalJSON() ([]byte, error) {
7389	type NoMethod GoogleCloudVisionV1p3beta1Block
7390	raw := NoMethod(*s)
7391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7392}
7393
7394func (s *GoogleCloudVisionV1p3beta1Block) UnmarshalJSON(data []byte) error {
7395	type NoMethod GoogleCloudVisionV1p3beta1Block
7396	var s1 struct {
7397		Confidence gensupport.JSONFloat64 `json:"confidence"`
7398		*NoMethod
7399	}
7400	s1.NoMethod = (*NoMethod)(s)
7401	if err := json.Unmarshal(data, &s1); err != nil {
7402		return err
7403	}
7404	s.Confidence = float64(s1.Confidence)
7405	return nil
7406}
7407
7408// GoogleCloudVisionV1p3beta1BoundingPoly: A bounding polygon for the
7409// detected image annotation.
7410type GoogleCloudVisionV1p3beta1BoundingPoly struct {
7411	// NormalizedVertices: The bounding polygon normalized vertices.
7412	NormalizedVertices []*GoogleCloudVisionV1p3beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
7413
7414	// Vertices: The bounding polygon vertices.
7415	Vertices []*GoogleCloudVisionV1p3beta1Vertex `json:"vertices,omitempty"`
7416
7417	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
7418	// to unconditionally include in API requests. By default, fields with
7419	// empty values are omitted from API requests. However, any non-pointer,
7420	// non-interface field appearing in ForceSendFields will be sent to the
7421	// server regardless of whether the field is empty or not. This may be
7422	// used to include empty fields in Patch requests.
7423	ForceSendFields []string `json:"-"`
7424
7425	// NullFields is a list of field names (e.g. "NormalizedVertices") to
7426	// include in API requests with the JSON null value. By default, fields
7427	// with empty values are omitted from API requests. However, any field
7428	// with an empty value appearing in NullFields will be sent to the
7429	// server as null. It is an error if a field in this list has a
7430	// non-empty value. This may be used to include null fields in Patch
7431	// requests.
7432	NullFields []string `json:"-"`
7433}
7434
7435func (s *GoogleCloudVisionV1p3beta1BoundingPoly) MarshalJSON() ([]byte, error) {
7436	type NoMethod GoogleCloudVisionV1p3beta1BoundingPoly
7437	raw := NoMethod(*s)
7438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7439}
7440
7441// GoogleCloudVisionV1p3beta1ColorInfo: Color information consists of
7442// RGB channels, score, and the fraction of
7443// the image that the color occupies in the image.
7444type GoogleCloudVisionV1p3beta1ColorInfo struct {
7445	// Color: RGB components of the color.
7446	Color *Color `json:"color,omitempty"`
7447
7448	// PixelFraction: The fraction of pixels the color occupies in the
7449	// image.
7450	// Value in range [0, 1].
7451	PixelFraction float64 `json:"pixelFraction,omitempty"`
7452
7453	// Score: Image-specific score for this color. Value in range [0, 1].
7454	Score float64 `json:"score,omitempty"`
7455
7456	// ForceSendFields is a list of field names (e.g. "Color") to
7457	// unconditionally include in API requests. By default, fields with
7458	// empty values are omitted from API requests. However, any non-pointer,
7459	// non-interface field appearing in ForceSendFields will be sent to the
7460	// server regardless of whether the field is empty or not. This may be
7461	// used to include empty fields in Patch requests.
7462	ForceSendFields []string `json:"-"`
7463
7464	// NullFields is a list of field names (e.g. "Color") to include in API
7465	// requests with the JSON null value. By default, fields with empty
7466	// values are omitted from API requests. However, any field with an
7467	// empty value appearing in NullFields will be sent to the server as
7468	// null. It is an error if a field in this list has a non-empty value.
7469	// This may be used to include null fields in Patch requests.
7470	NullFields []string `json:"-"`
7471}
7472
7473func (s *GoogleCloudVisionV1p3beta1ColorInfo) MarshalJSON() ([]byte, error) {
7474	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7475	raw := NoMethod(*s)
7476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7477}
7478
7479func (s *GoogleCloudVisionV1p3beta1ColorInfo) UnmarshalJSON(data []byte) error {
7480	type NoMethod GoogleCloudVisionV1p3beta1ColorInfo
7481	var s1 struct {
7482		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
7483		Score         gensupport.JSONFloat64 `json:"score"`
7484		*NoMethod
7485	}
7486	s1.NoMethod = (*NoMethod)(s)
7487	if err := json.Unmarshal(data, &s1); err != nil {
7488		return err
7489	}
7490	s.PixelFraction = float64(s1.PixelFraction)
7491	s.Score = float64(s1.Score)
7492	return nil
7493}
7494
7495// GoogleCloudVisionV1p3beta1CropHint: Single crop hint that is used to
7496// generate a new crop when serving an image.
7497type GoogleCloudVisionV1p3beta1CropHint struct {
7498	// BoundingPoly: The bounding polygon for the crop region. The
7499	// coordinates of the bounding
7500	// box are in the original image's scale.
7501	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7502
7503	// Confidence: Confidence of this being a salient region.  Range [0, 1].
7504	Confidence float64 `json:"confidence,omitempty"`
7505
7506	// ImportanceFraction: Fraction of importance of this salient region
7507	// with respect to the original
7508	// image.
7509	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
7510
7511	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7512	// unconditionally include in API requests. By default, fields with
7513	// empty values are omitted from API requests. However, any non-pointer,
7514	// non-interface field appearing in ForceSendFields will be sent to the
7515	// server regardless of whether the field is empty or not. This may be
7516	// used to include empty fields in Patch requests.
7517	ForceSendFields []string `json:"-"`
7518
7519	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7520	// in API requests with the JSON null value. By default, fields with
7521	// empty values are omitted from API requests. However, any field with
7522	// an empty value appearing in NullFields will be sent to the server as
7523	// null. It is an error if a field in this list has a non-empty value.
7524	// This may be used to include null fields in Patch requests.
7525	NullFields []string `json:"-"`
7526}
7527
7528func (s *GoogleCloudVisionV1p3beta1CropHint) MarshalJSON() ([]byte, error) {
7529	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7530	raw := NoMethod(*s)
7531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7532}
7533
7534func (s *GoogleCloudVisionV1p3beta1CropHint) UnmarshalJSON(data []byte) error {
7535	type NoMethod GoogleCloudVisionV1p3beta1CropHint
7536	var s1 struct {
7537		Confidence         gensupport.JSONFloat64 `json:"confidence"`
7538		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
7539		*NoMethod
7540	}
7541	s1.NoMethod = (*NoMethod)(s)
7542	if err := json.Unmarshal(data, &s1); err != nil {
7543		return err
7544	}
7545	s.Confidence = float64(s1.Confidence)
7546	s.ImportanceFraction = float64(s1.ImportanceFraction)
7547	return nil
7548}
7549
7550// GoogleCloudVisionV1p3beta1CropHintsAnnotation: Set of crop hints that
7551// are used to generate new crops when serving images.
7552type GoogleCloudVisionV1p3beta1CropHintsAnnotation struct {
7553	// CropHints: Crop hint results.
7554	CropHints []*GoogleCloudVisionV1p3beta1CropHint `json:"cropHints,omitempty"`
7555
7556	// ForceSendFields is a list of field names (e.g. "CropHints") to
7557	// unconditionally include in API requests. By default, fields with
7558	// empty values are omitted from API requests. However, any non-pointer,
7559	// non-interface field appearing in ForceSendFields will be sent to the
7560	// server regardless of whether the field is empty or not. This may be
7561	// used to include empty fields in Patch requests.
7562	ForceSendFields []string `json:"-"`
7563
7564	// NullFields is a list of field names (e.g. "CropHints") to include in
7565	// API requests with the JSON null value. By default, fields with empty
7566	// values are omitted from API requests. However, any field with an
7567	// empty value appearing in NullFields will be sent to the server as
7568	// null. It is an error if a field in this list has a non-empty value.
7569	// This may be used to include null fields in Patch requests.
7570	NullFields []string `json:"-"`
7571}
7572
7573func (s *GoogleCloudVisionV1p3beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
7574	type NoMethod GoogleCloudVisionV1p3beta1CropHintsAnnotation
7575	raw := NoMethod(*s)
7576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7577}
7578
7579// GoogleCloudVisionV1p3beta1DominantColorsAnnotation: Set of dominant
7580// colors and their corresponding scores.
7581type GoogleCloudVisionV1p3beta1DominantColorsAnnotation struct {
7582	// Colors: RGB color values with their score and pixel fraction.
7583	Colors []*GoogleCloudVisionV1p3beta1ColorInfo `json:"colors,omitempty"`
7584
7585	// ForceSendFields is a list of field names (e.g. "Colors") to
7586	// unconditionally include in API requests. By default, fields with
7587	// empty values are omitted from API requests. However, any non-pointer,
7588	// non-interface field appearing in ForceSendFields will be sent to the
7589	// server regardless of whether the field is empty or not. This may be
7590	// used to include empty fields in Patch requests.
7591	ForceSendFields []string `json:"-"`
7592
7593	// NullFields is a list of field names (e.g. "Colors") to include in API
7594	// requests with the JSON null value. By default, fields with empty
7595	// values are omitted from API requests. However, any field with an
7596	// empty value appearing in NullFields will be sent to the server as
7597	// null. It is an error if a field in this list has a non-empty value.
7598	// This may be used to include null fields in Patch requests.
7599	NullFields []string `json:"-"`
7600}
7601
7602func (s *GoogleCloudVisionV1p3beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
7603	type NoMethod GoogleCloudVisionV1p3beta1DominantColorsAnnotation
7604	raw := NoMethod(*s)
7605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7606}
7607
7608// GoogleCloudVisionV1p3beta1EntityAnnotation: Set of detected entity
7609// features.
7610type GoogleCloudVisionV1p3beta1EntityAnnotation struct {
7611	// BoundingPoly: Image region to which this entity belongs. Not
7612	// produced
7613	// for `LABEL_DETECTION` features.
7614	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7615
7616	// Confidence: **Deprecated. Use `score` instead.**
7617	// The accuracy of the entity detection in an image.
7618	// For example, for an image in which the "Eiffel Tower" entity is
7619	// detected,
7620	// this field represents the confidence that there is a tower in the
7621	// query
7622	// image. Range [0, 1].
7623	Confidence float64 `json:"confidence,omitempty"`
7624
7625	// Description: Entity textual description, expressed in its `locale`
7626	// language.
7627	Description string `json:"description,omitempty"`
7628
7629	// Locale: The language code for the locale in which the entity
7630	// textual
7631	// `description` is expressed.
7632	Locale string `json:"locale,omitempty"`
7633
7634	// Locations: The location information for the detected entity.
7635	// Multiple
7636	// `LocationInfo` elements can be present because one location
7637	// may
7638	// indicate the location of the scene in the image, and another
7639	// location
7640	// may indicate the location of the place where the image was
7641	// taken.
7642	// Location information is usually present for landmarks.
7643	Locations []*GoogleCloudVisionV1p3beta1LocationInfo `json:"locations,omitempty"`
7644
7645	// Mid: Opaque entity ID. Some IDs may be available in
7646	// [Google Knowledge Graph
7647	// Search
7648	// API](https://developers.google.com/knowledge-graph/).
7649	Mid string `json:"mid,omitempty"`
7650
7651	// Properties: Some entities may have optional user-supplied `Property`
7652	// (name/value)
7653	// fields, such a score or string that qualifies the entity.
7654	Properties []*GoogleCloudVisionV1p3beta1Property `json:"properties,omitempty"`
7655
7656	// Score: Overall score of the result. Range [0, 1].
7657	Score float64 `json:"score,omitempty"`
7658
7659	// Topicality: The relevancy of the ICA (Image Content Annotation) label
7660	// to the
7661	// image. For example, the relevancy of "tower" is likely higher to an
7662	// image
7663	// containing the detected "Eiffel Tower" than to an image containing
7664	// a
7665	// detected distant towering building, even though the confidence
7666	// that
7667	// there is a tower in each image may be the same. Range [0, 1].
7668	Topicality float64 `json:"topicality,omitempty"`
7669
7670	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
7671	// unconditionally include in API requests. By default, fields with
7672	// empty values are omitted from API requests. However, any non-pointer,
7673	// non-interface field appearing in ForceSendFields will be sent to the
7674	// server regardless of whether the field is empty or not. This may be
7675	// used to include empty fields in Patch requests.
7676	ForceSendFields []string `json:"-"`
7677
7678	// NullFields is a list of field names (e.g. "BoundingPoly") to include
7679	// in API requests with the JSON null value. By default, fields with
7680	// empty values are omitted from API requests. However, any field with
7681	// an empty value appearing in NullFields will be sent to the server as
7682	// null. It is an error if a field in this list has a non-empty value.
7683	// This may be used to include null fields in Patch requests.
7684	NullFields []string `json:"-"`
7685}
7686
7687func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
7688	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7689	raw := NoMethod(*s)
7690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7691}
7692
7693func (s *GoogleCloudVisionV1p3beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
7694	type NoMethod GoogleCloudVisionV1p3beta1EntityAnnotation
7695	var s1 struct {
7696		Confidence gensupport.JSONFloat64 `json:"confidence"`
7697		Score      gensupport.JSONFloat64 `json:"score"`
7698		Topicality gensupport.JSONFloat64 `json:"topicality"`
7699		*NoMethod
7700	}
7701	s1.NoMethod = (*NoMethod)(s)
7702	if err := json.Unmarshal(data, &s1); err != nil {
7703		return err
7704	}
7705	s.Confidence = float64(s1.Confidence)
7706	s.Score = float64(s1.Score)
7707	s.Topicality = float64(s1.Topicality)
7708	return nil
7709}
7710
7711// GoogleCloudVisionV1p3beta1FaceAnnotation: A face annotation object
7712// contains the results of face detection.
7713type GoogleCloudVisionV1p3beta1FaceAnnotation struct {
7714	// AngerLikelihood: Anger likelihood.
7715	//
7716	// Possible values:
7717	//   "UNKNOWN" - Unknown likelihood.
7718	//   "VERY_UNLIKELY" - It is very unlikely.
7719	//   "UNLIKELY" - It is unlikely.
7720	//   "POSSIBLE" - It is possible.
7721	//   "LIKELY" - It is likely.
7722	//   "VERY_LIKELY" - It is very likely.
7723	AngerLikelihood string `json:"angerLikelihood,omitempty"`
7724
7725	// BlurredLikelihood: Blurred likelihood.
7726	//
7727	// Possible values:
7728	//   "UNKNOWN" - Unknown likelihood.
7729	//   "VERY_UNLIKELY" - It is very unlikely.
7730	//   "UNLIKELY" - It is unlikely.
7731	//   "POSSIBLE" - It is possible.
7732	//   "LIKELY" - It is likely.
7733	//   "VERY_LIKELY" - It is very likely.
7734	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
7735
7736	// BoundingPoly: The bounding polygon around the face. The coordinates
7737	// of the bounding box
7738	// are in the original image's scale.
7739	// The bounding box is computed to "frame" the face in accordance with
7740	// human
7741	// expectations. It is based on the landmarker results.
7742	// Note that one or more x and/or y coordinates may not be generated in
7743	// the
7744	// `BoundingPoly` (the polygon will be unbounded) if only a partial
7745	// face
7746	// appears in the image to be annotated.
7747	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
7748
7749	// DetectionConfidence: Detection confidence. Range [0, 1].
7750	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
7751
7752	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
7753	// than the
7754	// `boundingPoly`, and encloses only the skin part of the face.
7755	// Typically, it
7756	// is used to eliminate the face from any image analysis that detects
7757	// the
7758	// "amount of skin" visible in an image. It is not based on
7759	// the
7760	// landmarker results, only on the initial face detection, hence
7761	// the <code>fd</code> (face detection) prefix.
7762	FdBoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
7763
7764	// HeadwearLikelihood: Headwear likelihood.
7765	//
7766	// Possible values:
7767	//   "UNKNOWN" - Unknown likelihood.
7768	//   "VERY_UNLIKELY" - It is very unlikely.
7769	//   "UNLIKELY" - It is unlikely.
7770	//   "POSSIBLE" - It is possible.
7771	//   "LIKELY" - It is likely.
7772	//   "VERY_LIKELY" - It is very likely.
7773	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
7774
7775	// JoyLikelihood: Joy likelihood.
7776	//
7777	// Possible values:
7778	//   "UNKNOWN" - Unknown likelihood.
7779	//   "VERY_UNLIKELY" - It is very unlikely.
7780	//   "UNLIKELY" - It is unlikely.
7781	//   "POSSIBLE" - It is possible.
7782	//   "LIKELY" - It is likely.
7783	//   "VERY_LIKELY" - It is very likely.
7784	JoyLikelihood string `json:"joyLikelihood,omitempty"`
7785
7786	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
7787	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
7788
7789	// Landmarks: Detected face landmarks.
7790	Landmarks []*GoogleCloudVisionV1p3beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
7791
7792	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
7793	// that the face is
7794	// pointing relative to the vertical plane perpendicular to the image.
7795	// Range
7796	// [-180,180].
7797	PanAngle float64 `json:"panAngle,omitempty"`
7798
7799	// RollAngle: Roll angle, which indicates the amount of
7800	// clockwise/anti-clockwise rotation
7801	// of the face relative to the image vertical about the axis
7802	// perpendicular to
7803	// the face. Range [-180,180].
7804	RollAngle float64 `json:"rollAngle,omitempty"`
7805
7806	// SorrowLikelihood: Sorrow likelihood.
7807	//
7808	// Possible values:
7809	//   "UNKNOWN" - Unknown likelihood.
7810	//   "VERY_UNLIKELY" - It is very unlikely.
7811	//   "UNLIKELY" - It is unlikely.
7812	//   "POSSIBLE" - It is possible.
7813	//   "LIKELY" - It is likely.
7814	//   "VERY_LIKELY" - It is very likely.
7815	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
7816
7817	// SurpriseLikelihood: Surprise likelihood.
7818	//
7819	// Possible values:
7820	//   "UNKNOWN" - Unknown likelihood.
7821	//   "VERY_UNLIKELY" - It is very unlikely.
7822	//   "UNLIKELY" - It is unlikely.
7823	//   "POSSIBLE" - It is possible.
7824	//   "LIKELY" - It is likely.
7825	//   "VERY_LIKELY" - It is very likely.
7826	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
7827
7828	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
7829	// that the face is
7830	// pointing relative to the image's horizontal plane. Range [-180,180].
7831	TiltAngle float64 `json:"tiltAngle,omitempty"`
7832
7833	// UnderExposedLikelihood: Under-exposed likelihood.
7834	//
7835	// Possible values:
7836	//   "UNKNOWN" - Unknown likelihood.
7837	//   "VERY_UNLIKELY" - It is very unlikely.
7838	//   "UNLIKELY" - It is unlikely.
7839	//   "POSSIBLE" - It is possible.
7840	//   "LIKELY" - It is likely.
7841	//   "VERY_LIKELY" - It is very likely.
7842	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
7843
7844	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
7845	// unconditionally include in API requests. By default, fields with
7846	// empty values are omitted from API requests. However, any non-pointer,
7847	// non-interface field appearing in ForceSendFields will be sent to the
7848	// server regardless of whether the field is empty or not. This may be
7849	// used to include empty fields in Patch requests.
7850	ForceSendFields []string `json:"-"`
7851
7852	// NullFields is a list of field names (e.g. "AngerLikelihood") to
7853	// include in API requests with the JSON null value. By default, fields
7854	// with empty values are omitted from API requests. However, any field
7855	// with an empty value appearing in NullFields will be sent to the
7856	// server as null. It is an error if a field in this list has a
7857	// non-empty value. This may be used to include null fields in Patch
7858	// requests.
7859	NullFields []string `json:"-"`
7860}
7861
7862func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
7863	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7864	raw := NoMethod(*s)
7865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7866}
7867
7868func (s *GoogleCloudVisionV1p3beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
7869	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotation
7870	var s1 struct {
7871		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
7872		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
7873		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
7874		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
7875		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
7876		*NoMethod
7877	}
7878	s1.NoMethod = (*NoMethod)(s)
7879	if err := json.Unmarshal(data, &s1); err != nil {
7880		return err
7881	}
7882	s.DetectionConfidence = float64(s1.DetectionConfidence)
7883	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
7884	s.PanAngle = float64(s1.PanAngle)
7885	s.RollAngle = float64(s1.RollAngle)
7886	s.TiltAngle = float64(s1.TiltAngle)
7887	return nil
7888}
7889
7890// GoogleCloudVisionV1p3beta1FaceAnnotationLandmark: A face-specific
7891// landmark (for example, a face feature).
7892type GoogleCloudVisionV1p3beta1FaceAnnotationLandmark struct {
7893	// Position: Face landmark position.
7894	Position *GoogleCloudVisionV1p3beta1Position `json:"position,omitempty"`
7895
7896	// Type: Face landmark type.
7897	//
7898	// Possible values:
7899	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
7900	// filled.
7901	//   "LEFT_EYE" - Left eye.
7902	//   "RIGHT_EYE" - Right eye.
7903	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
7904	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
7905	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
7906	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
7907	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
7908	//   "NOSE_TIP" - Nose tip.
7909	//   "UPPER_LIP" - Upper lip.
7910	//   "LOWER_LIP" - Lower lip.
7911	//   "MOUTH_LEFT" - Mouth left.
7912	//   "MOUTH_RIGHT" - Mouth right.
7913	//   "MOUTH_CENTER" - Mouth center.
7914	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
7915	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
7916	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
7917	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
7918	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
7919	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
7920	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
7921	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
7922	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
7923	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
7924	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
7925	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
7926	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
7927	//   "LEFT_EAR_TRAGION" - Left ear tragion.
7928	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
7929	//   "LEFT_EYE_PUPIL" - Left eye pupil.
7930	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
7931	//   "FOREHEAD_GLABELLA" - Forehead glabella.
7932	//   "CHIN_GNATHION" - Chin gnathion.
7933	//   "CHIN_LEFT_GONION" - Chin left gonion.
7934	//   "CHIN_RIGHT_GONION" - Chin right gonion.
7935	Type string `json:"type,omitempty"`
7936
7937	// ForceSendFields is a list of field names (e.g. "Position") to
7938	// unconditionally include in API requests. By default, fields with
7939	// empty values are omitted from API requests. However, any non-pointer,
7940	// non-interface field appearing in ForceSendFields will be sent to the
7941	// server regardless of whether the field is empty or not. This may be
7942	// used to include empty fields in Patch requests.
7943	ForceSendFields []string `json:"-"`
7944
7945	// NullFields is a list of field names (e.g. "Position") to include in
7946	// API requests with the JSON null value. By default, fields with empty
7947	// values are omitted from API requests. However, any field with an
7948	// empty value appearing in NullFields will be sent to the server as
7949	// null. It is an error if a field in this list has a non-empty value.
7950	// This may be used to include null fields in Patch requests.
7951	NullFields []string `json:"-"`
7952}
7953
7954func (s *GoogleCloudVisionV1p3beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
7955	type NoMethod GoogleCloudVisionV1p3beta1FaceAnnotationLandmark
7956	raw := NoMethod(*s)
7957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7958}
7959
7960// GoogleCloudVisionV1p3beta1GcsDestination: The Google Cloud Storage
7961// location where the output will be written to.
7962type GoogleCloudVisionV1p3beta1GcsDestination struct {
7963	// Uri: Google Cloud Storage URI prefix where the results will be
7964	// stored. Results
7965	// will be in JSON format and preceded by its corresponding input URI
7966	// prefix.
7967	// This field can either represent a gcs file prefix or gcs directory.
7968	// In
7969	// either case, the uri should be unique because in order to get all of
7970	// the
7971	// output files, you will need to do a wildcard gcs search on the uri
7972	// prefix
7973	// you provide.
7974	//
7975	// Examples:
7976	//
7977	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
7978	// files
7979	// will be created in gs://bucket-name/here/ and the names of the
7980	// output files will begin with "filenameprefix".
7981	//
7982	// *    Directory Prefix: gs://bucket-name/some/location/   The output
7983	// files
7984	// will be created in gs://bucket-name/some/location/ and the names of
7985	// the
7986	// output files could be anything because there was no filename
7987	// prefix
7988	// specified.
7989	//
7990	// If multiple outputs, each response is still AnnotateFileResponse,
7991	// each of
7992	// which contains some subset of the full list of
7993	// AnnotateImageResponse.
7994	// Multiple outputs can happen if, for example, the output JSON is too
7995	// large
7996	// and overflows into multiple sharded files.
7997	Uri string `json:"uri,omitempty"`
7998
7999	// ForceSendFields is a list of field names (e.g. "Uri") to
8000	// unconditionally include in API requests. By default, fields with
8001	// empty values are omitted from API requests. However, any non-pointer,
8002	// non-interface field appearing in ForceSendFields will be sent to the
8003	// server regardless of whether the field is empty or not. This may be
8004	// used to include empty fields in Patch requests.
8005	ForceSendFields []string `json:"-"`
8006
8007	// NullFields is a list of field names (e.g. "Uri") to include in API
8008	// requests with the JSON null value. By default, fields with empty
8009	// values are omitted from API requests. However, any field with an
8010	// empty value appearing in NullFields will be sent to the server as
8011	// null. It is an error if a field in this list has a non-empty value.
8012	// This may be used to include null fields in Patch requests.
8013	NullFields []string `json:"-"`
8014}
8015
8016func (s *GoogleCloudVisionV1p3beta1GcsDestination) MarshalJSON() ([]byte, error) {
8017	type NoMethod GoogleCloudVisionV1p3beta1GcsDestination
8018	raw := NoMethod(*s)
8019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8020}
8021
8022// GoogleCloudVisionV1p3beta1GcsSource: The Google Cloud Storage
8023// location where the input will be read from.
8024type GoogleCloudVisionV1p3beta1GcsSource struct {
8025	// Uri: Google Cloud Storage URI for the input file. This must only be
8026	// a
8027	// Google Cloud Storage object. Wildcards are not currently supported.
8028	Uri string `json:"uri,omitempty"`
8029
8030	// ForceSendFields is a list of field names (e.g. "Uri") to
8031	// unconditionally include in API requests. By default, fields with
8032	// empty values are omitted from API requests. However, any non-pointer,
8033	// non-interface field appearing in ForceSendFields will be sent to the
8034	// server regardless of whether the field is empty or not. This may be
8035	// used to include empty fields in Patch requests.
8036	ForceSendFields []string `json:"-"`
8037
8038	// NullFields is a list of field names (e.g. "Uri") to include in API
8039	// requests with the JSON null value. By default, fields with empty
8040	// values are omitted from API requests. However, any field with an
8041	// empty value appearing in NullFields will be sent to the server as
8042	// null. It is an error if a field in this list has a non-empty value.
8043	// This may be used to include null fields in Patch requests.
8044	NullFields []string `json:"-"`
8045}
8046
8047func (s *GoogleCloudVisionV1p3beta1GcsSource) MarshalJSON() ([]byte, error) {
8048	type NoMethod GoogleCloudVisionV1p3beta1GcsSource
8049	raw := NoMethod(*s)
8050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8051}
8052
8053// GoogleCloudVisionV1p3beta1ImageAnnotationContext: If an image was
8054// produced from a file (e.g. a PDF), this message gives
8055// information about the source of that image.
8056type GoogleCloudVisionV1p3beta1ImageAnnotationContext struct {
8057	// PageNumber: If the file was a PDF or TIFF, this field gives the page
8058	// number within
8059	// the file used to produce the image.
8060	PageNumber int64 `json:"pageNumber,omitempty"`
8061
8062	// Uri: The URI of the file used to produce the image.
8063	Uri string `json:"uri,omitempty"`
8064
8065	// ForceSendFields is a list of field names (e.g. "PageNumber") to
8066	// unconditionally include in API requests. By default, fields with
8067	// empty values are omitted from API requests. However, any non-pointer,
8068	// non-interface field appearing in ForceSendFields will be sent to the
8069	// server regardless of whether the field is empty or not. This may be
8070	// used to include empty fields in Patch requests.
8071	ForceSendFields []string `json:"-"`
8072
8073	// NullFields is a list of field names (e.g. "PageNumber") to include in
8074	// API requests with the JSON null value. By default, fields with empty
8075	// values are omitted from API requests. However, any field with an
8076	// empty value appearing in NullFields will be sent to the server as
8077	// null. It is an error if a field in this list has a non-empty value.
8078	// This may be used to include null fields in Patch requests.
8079	NullFields []string `json:"-"`
8080}
8081
8082func (s *GoogleCloudVisionV1p3beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
8083	type NoMethod GoogleCloudVisionV1p3beta1ImageAnnotationContext
8084	raw := NoMethod(*s)
8085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8086}
8087
8088// GoogleCloudVisionV1p3beta1ImageProperties: Stores image properties,
8089// such as dominant colors.
8090type GoogleCloudVisionV1p3beta1ImageProperties struct {
8091	// DominantColors: If present, dominant colors completed successfully.
8092	DominantColors *GoogleCloudVisionV1p3beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
8093
8094	// ForceSendFields is a list of field names (e.g. "DominantColors") to
8095	// unconditionally include in API requests. By default, fields with
8096	// empty values are omitted from API requests. However, any non-pointer,
8097	// non-interface field appearing in ForceSendFields will be sent to the
8098	// server regardless of whether the field is empty or not. This may be
8099	// used to include empty fields in Patch requests.
8100	ForceSendFields []string `json:"-"`
8101
8102	// NullFields is a list of field names (e.g. "DominantColors") to
8103	// include in API requests with the JSON null value. By default, fields
8104	// with empty values are omitted from API requests. However, any field
8105	// with an empty value appearing in NullFields will be sent to the
8106	// server as null. It is an error if a field in this list has a
8107	// non-empty value. This may be used to include null fields in Patch
8108	// requests.
8109	NullFields []string `json:"-"`
8110}
8111
8112func (s *GoogleCloudVisionV1p3beta1ImageProperties) MarshalJSON() ([]byte, error) {
8113	type NoMethod GoogleCloudVisionV1p3beta1ImageProperties
8114	raw := NoMethod(*s)
8115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8116}
8117
8118// GoogleCloudVisionV1p3beta1ImportProductSetsResponse: Response message
8119// for the `ImportProductSets` method.
8120//
8121// This message is returned by
8122// the
8123// google.longrunning.Operations.GetOperation method in the
8124// returned
8125// google.longrunning.Operation.response field.
8126type GoogleCloudVisionV1p3beta1ImportProductSetsResponse struct {
8127	// ReferenceImages: The list of reference_images that are imported
8128	// successfully.
8129	ReferenceImages []*GoogleCloudVisionV1p3beta1ReferenceImage `json:"referenceImages,omitempty"`
8130
8131	// Statuses: The rpc status for each ImportProductSet request, including
8132	// both successes
8133	// and errors.
8134	//
8135	// The number of statuses here matches the number of lines in the csv
8136	// file,
8137	// and statuses[i] stores the success or failure status of processing
8138	// the i-th
8139	// line of the csv, starting from line 0.
8140	Statuses []*Status `json:"statuses,omitempty"`
8141
8142	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
8143	// unconditionally include in API requests. By default, fields with
8144	// empty values are omitted from API requests. However, any non-pointer,
8145	// non-interface field appearing in ForceSendFields will be sent to the
8146	// server regardless of whether the field is empty or not. This may be
8147	// used to include empty fields in Patch requests.
8148	ForceSendFields []string `json:"-"`
8149
8150	// NullFields is a list of field names (e.g. "ReferenceImages") to
8151	// include in API requests with the JSON null value. By default, fields
8152	// with empty values are omitted from API requests. However, any field
8153	// with an empty value appearing in NullFields will be sent to the
8154	// server as null. It is an error if a field in this list has a
8155	// non-empty value. This may be used to include null fields in Patch
8156	// requests.
8157	NullFields []string `json:"-"`
8158}
8159
8160func (s *GoogleCloudVisionV1p3beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
8161	type NoMethod GoogleCloudVisionV1p3beta1ImportProductSetsResponse
8162	raw := NoMethod(*s)
8163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8164}
8165
8166// GoogleCloudVisionV1p3beta1InputConfig: The desired input location and
8167// metadata.
8168type GoogleCloudVisionV1p3beta1InputConfig struct {
8169	// Content: File content, represented as a stream of bytes.
8170	// Note: As with all `bytes` fields, protobuffers use a pure
8171	// binary
8172	// representation, whereas JSON representations use base64.
8173	//
8174	// Currently, this field only works for BatchAnnotateFiles requests. It
8175	// does
8176	// not work for AsyncBatchAnnotateFiles requests.
8177	Content string `json:"content,omitempty"`
8178
8179	// GcsSource: The Google Cloud Storage location to read the input from.
8180	GcsSource *GoogleCloudVisionV1p3beta1GcsSource `json:"gcsSource,omitempty"`
8181
8182	// MimeType: The type of the file. Currently only "application/pdf",
8183	// "image/tiff" and
8184	// "image/gif" are supported. Wildcards are not supported.
8185	MimeType string `json:"mimeType,omitempty"`
8186
8187	// ForceSendFields is a list of field names (e.g. "Content") to
8188	// unconditionally include in API requests. By default, fields with
8189	// empty values are omitted from API requests. However, any non-pointer,
8190	// non-interface field appearing in ForceSendFields will be sent to the
8191	// server regardless of whether the field is empty or not. This may be
8192	// used to include empty fields in Patch requests.
8193	ForceSendFields []string `json:"-"`
8194
8195	// NullFields is a list of field names (e.g. "Content") to include in
8196	// API requests with the JSON null value. By default, fields with empty
8197	// values are omitted from API requests. However, any field with an
8198	// empty value appearing in NullFields will be sent to the server as
8199	// null. It is an error if a field in this list has a non-empty value.
8200	// This may be used to include null fields in Patch requests.
8201	NullFields []string `json:"-"`
8202}
8203
8204func (s *GoogleCloudVisionV1p3beta1InputConfig) MarshalJSON() ([]byte, error) {
8205	type NoMethod GoogleCloudVisionV1p3beta1InputConfig
8206	raw := NoMethod(*s)
8207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8208}
8209
8210// GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation: Set of detected
8211// objects with bounding boxes.
8212type GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation struct {
8213	// BoundingPoly: Image region to which this object belongs. This must be
8214	// populated.
8215	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8216
8217	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8218	// For more
8219	// information,
8220	// see
8221	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8222	LanguageCode string `json:"languageCode,omitempty"`
8223
8224	// Mid: Object ID that should align with EntityAnnotation mid.
8225	Mid string `json:"mid,omitempty"`
8226
8227	// Name: Object name, expressed in its `language_code` language.
8228	Name string `json:"name,omitempty"`
8229
8230	// Score: Score of the result. Range [0, 1].
8231	Score float64 `json:"score,omitempty"`
8232
8233	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8234	// unconditionally include in API requests. By default, fields with
8235	// empty values are omitted from API requests. However, any non-pointer,
8236	// non-interface field appearing in ForceSendFields will be sent to the
8237	// server regardless of whether the field is empty or not. This may be
8238	// used to include empty fields in Patch requests.
8239	ForceSendFields []string `json:"-"`
8240
8241	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8242	// in API requests with the JSON null value. By default, fields with
8243	// empty values are omitted from API requests. However, any field with
8244	// an empty value appearing in NullFields will be sent to the server as
8245	// null. It is an error if a field in this list has a non-empty value.
8246	// This may be used to include null fields in Patch requests.
8247	NullFields []string `json:"-"`
8248}
8249
8250func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
8251	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8252	raw := NoMethod(*s)
8253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8254}
8255
8256func (s *GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
8257	type NoMethod GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation
8258	var s1 struct {
8259		Score gensupport.JSONFloat64 `json:"score"`
8260		*NoMethod
8261	}
8262	s1.NoMethod = (*NoMethod)(s)
8263	if err := json.Unmarshal(data, &s1); err != nil {
8264		return err
8265	}
8266	s.Score = float64(s1.Score)
8267	return nil
8268}
8269
8270// GoogleCloudVisionV1p3beta1LocationInfo: Detected entity location
8271// information.
8272type GoogleCloudVisionV1p3beta1LocationInfo struct {
8273	// LatLng: lat/long location coordinates.
8274	LatLng *LatLng `json:"latLng,omitempty"`
8275
8276	// ForceSendFields is a list of field names (e.g. "LatLng") to
8277	// unconditionally include in API requests. By default, fields with
8278	// empty values are omitted from API requests. However, any non-pointer,
8279	// non-interface field appearing in ForceSendFields will be sent to the
8280	// server regardless of whether the field is empty or not. This may be
8281	// used to include empty fields in Patch requests.
8282	ForceSendFields []string `json:"-"`
8283
8284	// NullFields is a list of field names (e.g. "LatLng") to include in API
8285	// requests with the JSON null value. By default, fields with empty
8286	// values are omitted from API requests. However, any field with an
8287	// empty value appearing in NullFields will be sent to the server as
8288	// null. It is an error if a field in this list has a non-empty value.
8289	// This may be used to include null fields in Patch requests.
8290	NullFields []string `json:"-"`
8291}
8292
8293func (s *GoogleCloudVisionV1p3beta1LocationInfo) MarshalJSON() ([]byte, error) {
8294	type NoMethod GoogleCloudVisionV1p3beta1LocationInfo
8295	raw := NoMethod(*s)
8296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8297}
8298
8299// GoogleCloudVisionV1p3beta1NormalizedVertex: A vertex represents a 2D
8300// point in the image.
8301// NOTE: the normalized vertex coordinates are relative to the original
8302// image
8303// and range from 0 to 1.
8304type GoogleCloudVisionV1p3beta1NormalizedVertex struct {
8305	// X: X coordinate.
8306	X float64 `json:"x,omitempty"`
8307
8308	// Y: Y coordinate.
8309	Y float64 `json:"y,omitempty"`
8310
8311	// ForceSendFields is a list of field names (e.g. "X") to
8312	// unconditionally include in API requests. By default, fields with
8313	// empty values are omitted from API requests. However, any non-pointer,
8314	// non-interface field appearing in ForceSendFields will be sent to the
8315	// server regardless of whether the field is empty or not. This may be
8316	// used to include empty fields in Patch requests.
8317	ForceSendFields []string `json:"-"`
8318
8319	// NullFields is a list of field names (e.g. "X") to include in API
8320	// requests with the JSON null value. By default, fields with empty
8321	// values are omitted from API requests. However, any field with an
8322	// empty value appearing in NullFields will be sent to the server as
8323	// null. It is an error if a field in this list has a non-empty value.
8324	// This may be used to include null fields in Patch requests.
8325	NullFields []string `json:"-"`
8326}
8327
8328func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
8329	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8330	raw := NoMethod(*s)
8331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8332}
8333
8334func (s *GoogleCloudVisionV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
8335	type NoMethod GoogleCloudVisionV1p3beta1NormalizedVertex
8336	var s1 struct {
8337		X gensupport.JSONFloat64 `json:"x"`
8338		Y gensupport.JSONFloat64 `json:"y"`
8339		*NoMethod
8340	}
8341	s1.NoMethod = (*NoMethod)(s)
8342	if err := json.Unmarshal(data, &s1); err != nil {
8343		return err
8344	}
8345	s.X = float64(s1.X)
8346	s.Y = float64(s1.Y)
8347	return nil
8348}
8349
8350// GoogleCloudVisionV1p3beta1OperationMetadata: Contains metadata for
8351// the BatchAnnotateImages operation.
8352type GoogleCloudVisionV1p3beta1OperationMetadata struct {
8353	// CreateTime: The time when the batch request was received.
8354	CreateTime string `json:"createTime,omitempty"`
8355
8356	// State: Current state of the batch operation.
8357	//
8358	// Possible values:
8359	//   "STATE_UNSPECIFIED" - Invalid.
8360	//   "CREATED" - Request is received.
8361	//   "RUNNING" - Request is actively being processed.
8362	//   "DONE" - The batch processing is done.
8363	//   "CANCELLED" - The batch processing was cancelled.
8364	State string `json:"state,omitempty"`
8365
8366	// UpdateTime: The time when the operation result was last updated.
8367	UpdateTime string `json:"updateTime,omitempty"`
8368
8369	// ForceSendFields is a list of field names (e.g. "CreateTime") to
8370	// unconditionally include in API requests. By default, fields with
8371	// empty values are omitted from API requests. However, any non-pointer,
8372	// non-interface field appearing in ForceSendFields will be sent to the
8373	// server regardless of whether the field is empty or not. This may be
8374	// used to include empty fields in Patch requests.
8375	ForceSendFields []string `json:"-"`
8376
8377	// NullFields is a list of field names (e.g. "CreateTime") to include in
8378	// API requests with the JSON null value. By default, fields with empty
8379	// values are omitted from API requests. However, any field with an
8380	// empty value appearing in NullFields will be sent to the server as
8381	// null. It is an error if a field in this list has a non-empty value.
8382	// This may be used to include null fields in Patch requests.
8383	NullFields []string `json:"-"`
8384}
8385
8386func (s *GoogleCloudVisionV1p3beta1OperationMetadata) MarshalJSON() ([]byte, error) {
8387	type NoMethod GoogleCloudVisionV1p3beta1OperationMetadata
8388	raw := NoMethod(*s)
8389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8390}
8391
8392// GoogleCloudVisionV1p3beta1OutputConfig: The desired output location
8393// and metadata.
8394type GoogleCloudVisionV1p3beta1OutputConfig struct {
8395	// BatchSize: The max number of response protos to put into each output
8396	// JSON file on
8397	// Google Cloud Storage.
8398	// The valid range is [1, 100]. If not specified, the default value is
8399	// 20.
8400	//
8401	// For example, for one pdf file with 100 pages, 100 response protos
8402	// will
8403	// be generated. If `batch_size` = 20, then 5 json files each
8404	// containing 20 response protos will be written under the
8405	// prefix
8406	// `gcs_destination`.`uri`.
8407	//
8408	// Currently, batch_size only applies to GcsDestination, with potential
8409	// future
8410	// support for other output configurations.
8411	BatchSize int64 `json:"batchSize,omitempty"`
8412
8413	// GcsDestination: The Google Cloud Storage location to write the
8414	// output(s) to.
8415	GcsDestination *GoogleCloudVisionV1p3beta1GcsDestination `json:"gcsDestination,omitempty"`
8416
8417	// ForceSendFields is a list of field names (e.g. "BatchSize") to
8418	// unconditionally include in API requests. By default, fields with
8419	// empty values are omitted from API requests. However, any non-pointer,
8420	// non-interface field appearing in ForceSendFields will be sent to the
8421	// server regardless of whether the field is empty or not. This may be
8422	// used to include empty fields in Patch requests.
8423	ForceSendFields []string `json:"-"`
8424
8425	// NullFields is a list of field names (e.g. "BatchSize") to include in
8426	// API requests with the JSON null value. By default, fields with empty
8427	// values are omitted from API requests. However, any field with an
8428	// empty value appearing in NullFields will be sent to the server as
8429	// null. It is an error if a field in this list has a non-empty value.
8430	// This may be used to include null fields in Patch requests.
8431	NullFields []string `json:"-"`
8432}
8433
8434func (s *GoogleCloudVisionV1p3beta1OutputConfig) MarshalJSON() ([]byte, error) {
8435	type NoMethod GoogleCloudVisionV1p3beta1OutputConfig
8436	raw := NoMethod(*s)
8437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8438}
8439
8440// GoogleCloudVisionV1p3beta1Page: Detected page from OCR.
8441type GoogleCloudVisionV1p3beta1Page struct {
8442	// Blocks: List of blocks of text, images etc on this page.
8443	Blocks []*GoogleCloudVisionV1p3beta1Block `json:"blocks,omitempty"`
8444
8445	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
8446	Confidence float64 `json:"confidence,omitempty"`
8447
8448	// Height: Page height. For PDFs the unit is points. For images
8449	// (including
8450	// TIFFs) the unit is pixels.
8451	Height int64 `json:"height,omitempty"`
8452
8453	// Property: Additional information detected on the page.
8454	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8455
8456	// Width: Page width. For PDFs the unit is points. For images
8457	// (including
8458	// TIFFs) the unit is pixels.
8459	Width int64 `json:"width,omitempty"`
8460
8461	// ForceSendFields is a list of field names (e.g. "Blocks") to
8462	// unconditionally include in API requests. By default, fields with
8463	// empty values are omitted from API requests. However, any non-pointer,
8464	// non-interface field appearing in ForceSendFields will be sent to the
8465	// server regardless of whether the field is empty or not. This may be
8466	// used to include empty fields in Patch requests.
8467	ForceSendFields []string `json:"-"`
8468
8469	// NullFields is a list of field names (e.g. "Blocks") to include in API
8470	// requests with the JSON null value. By default, fields with empty
8471	// values are omitted from API requests. However, any field with an
8472	// empty value appearing in NullFields will be sent to the server as
8473	// null. It is an error if a field in this list has a non-empty value.
8474	// This may be used to include null fields in Patch requests.
8475	NullFields []string `json:"-"`
8476}
8477
8478func (s *GoogleCloudVisionV1p3beta1Page) MarshalJSON() ([]byte, error) {
8479	type NoMethod GoogleCloudVisionV1p3beta1Page
8480	raw := NoMethod(*s)
8481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8482}
8483
8484func (s *GoogleCloudVisionV1p3beta1Page) UnmarshalJSON(data []byte) error {
8485	type NoMethod GoogleCloudVisionV1p3beta1Page
8486	var s1 struct {
8487		Confidence gensupport.JSONFloat64 `json:"confidence"`
8488		*NoMethod
8489	}
8490	s1.NoMethod = (*NoMethod)(s)
8491	if err := json.Unmarshal(data, &s1); err != nil {
8492		return err
8493	}
8494	s.Confidence = float64(s1.Confidence)
8495	return nil
8496}
8497
8498// GoogleCloudVisionV1p3beta1Paragraph: Structural unit of text
8499// representing a number of words in certain order.
8500type GoogleCloudVisionV1p3beta1Paragraph struct {
8501	// BoundingBox: The bounding box for the paragraph.
8502	// The vertices are in the order of top-left, top-right,
8503	// bottom-right,
8504	// bottom-left. When a rotation of the bounding box is detected the
8505	// rotation
8506	// is represented as around the top-left corner as defined when the text
8507	// is
8508	// read in the 'natural' orientation.
8509	// For example:
8510	//   * when the text is horizontal it might look like:
8511	//      0----1
8512	//      |    |
8513	//      3----2
8514	//   * when it's rotated 180 degrees around the top-left corner it
8515	// becomes:
8516	//      2----3
8517	//      |    |
8518	//      1----0
8519	//   and the vertex order will still be (0, 1, 2, 3).
8520	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
8521
8522	// Confidence: Confidence of the OCR results for the paragraph. Range
8523	// [0, 1].
8524	Confidence float64 `json:"confidence,omitempty"`
8525
8526	// Property: Additional information detected for the paragraph.
8527	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
8528
8529	// Words: List of all words in this paragraph.
8530	Words []*GoogleCloudVisionV1p3beta1Word `json:"words,omitempty"`
8531
8532	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
8533	// unconditionally include in API requests. By default, fields with
8534	// empty values are omitted from API requests. However, any non-pointer,
8535	// non-interface field appearing in ForceSendFields will be sent to the
8536	// server regardless of whether the field is empty or not. This may be
8537	// used to include empty fields in Patch requests.
8538	ForceSendFields []string `json:"-"`
8539
8540	// NullFields is a list of field names (e.g. "BoundingBox") to include
8541	// in API requests with the JSON null value. By default, fields with
8542	// empty values are omitted from API requests. However, any field with
8543	// an empty value appearing in NullFields will be sent to the server as
8544	// null. It is an error if a field in this list has a non-empty value.
8545	// This may be used to include null fields in Patch requests.
8546	NullFields []string `json:"-"`
8547}
8548
8549func (s *GoogleCloudVisionV1p3beta1Paragraph) MarshalJSON() ([]byte, error) {
8550	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8551	raw := NoMethod(*s)
8552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8553}
8554
8555func (s *GoogleCloudVisionV1p3beta1Paragraph) UnmarshalJSON(data []byte) error {
8556	type NoMethod GoogleCloudVisionV1p3beta1Paragraph
8557	var s1 struct {
8558		Confidence gensupport.JSONFloat64 `json:"confidence"`
8559		*NoMethod
8560	}
8561	s1.NoMethod = (*NoMethod)(s)
8562	if err := json.Unmarshal(data, &s1); err != nil {
8563		return err
8564	}
8565	s.Confidence = float64(s1.Confidence)
8566	return nil
8567}
8568
8569// GoogleCloudVisionV1p3beta1Position: A 3D position in the image, used
8570// primarily for Face detection landmarks.
8571// A valid Position must have both x and y coordinates.
8572// The position coordinates are in the same scale as the original image.
8573type GoogleCloudVisionV1p3beta1Position struct {
8574	// X: X coordinate.
8575	X float64 `json:"x,omitempty"`
8576
8577	// Y: Y coordinate.
8578	Y float64 `json:"y,omitempty"`
8579
8580	// Z: Z coordinate (or depth).
8581	Z float64 `json:"z,omitempty"`
8582
8583	// ForceSendFields is a list of field names (e.g. "X") to
8584	// unconditionally include in API requests. By default, fields with
8585	// empty values are omitted from API requests. However, any non-pointer,
8586	// non-interface field appearing in ForceSendFields will be sent to the
8587	// server regardless of whether the field is empty or not. This may be
8588	// used to include empty fields in Patch requests.
8589	ForceSendFields []string `json:"-"`
8590
8591	// NullFields is a list of field names (e.g. "X") to include in API
8592	// requests with the JSON null value. By default, fields with empty
8593	// values are omitted from API requests. However, any field with an
8594	// empty value appearing in NullFields will be sent to the server as
8595	// null. It is an error if a field in this list has a non-empty value.
8596	// This may be used to include null fields in Patch requests.
8597	NullFields []string `json:"-"`
8598}
8599
8600func (s *GoogleCloudVisionV1p3beta1Position) MarshalJSON() ([]byte, error) {
8601	type NoMethod GoogleCloudVisionV1p3beta1Position
8602	raw := NoMethod(*s)
8603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8604}
8605
8606func (s *GoogleCloudVisionV1p3beta1Position) UnmarshalJSON(data []byte) error {
8607	type NoMethod GoogleCloudVisionV1p3beta1Position
8608	var s1 struct {
8609		X gensupport.JSONFloat64 `json:"x"`
8610		Y gensupport.JSONFloat64 `json:"y"`
8611		Z gensupport.JSONFloat64 `json:"z"`
8612		*NoMethod
8613	}
8614	s1.NoMethod = (*NoMethod)(s)
8615	if err := json.Unmarshal(data, &s1); err != nil {
8616		return err
8617	}
8618	s.X = float64(s1.X)
8619	s.Y = float64(s1.Y)
8620	s.Z = float64(s1.Z)
8621	return nil
8622}
8623
8624// GoogleCloudVisionV1p3beta1Product: A Product contains
8625// ReferenceImages.
8626type GoogleCloudVisionV1p3beta1Product struct {
8627	// Description: User-provided metadata to be stored with this product.
8628	// Must be at most 4096
8629	// characters long.
8630	Description string `json:"description,omitempty"`
8631
8632	// DisplayName: The user-provided name for this Product. Must not be
8633	// empty. Must be at most
8634	// 4096 characters long.
8635	DisplayName string `json:"displayName,omitempty"`
8636
8637	// Name: The resource name of the product.
8638	//
8639	// Format
8640	// is:
8641	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
8642	//
8643	// This field is ignored when creating a product.
8644	Name string `json:"name,omitempty"`
8645
8646	// ProductCategory: Immutable. The category for the product identified
8647	// by the reference image. This should
8648	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
8649	// categories
8650	// "homegoods", "apparel", and "toys" are still supported, but these
8651	// should
8652	// not be used for new products.
8653	ProductCategory string `json:"productCategory,omitempty"`
8654
8655	// ProductLabels: Key-value pairs that can be attached to a product. At
8656	// query time,
8657	// constraints can be specified based on the product_labels.
8658	//
8659	// Note that integer values can be provided as strings, e.g. "1199".
8660	// Only
8661	// strings with integer values can match a range-based restriction which
8662	// is
8663	// to be supported soon.
8664	//
8665	// Multiple values can be assigned to the same key. One product may have
8666	// up to
8667	// 500 product_labels.
8668	//
8669	// Notice that the total number of distinct product_labels over all
8670	// products
8671	// in one ProductSet cannot exceed 1M, otherwise the product search
8672	// pipeline
8673	// will refuse to work for that ProductSet.
8674	ProductLabels []*GoogleCloudVisionV1p3beta1ProductKeyValue `json:"productLabels,omitempty"`
8675
8676	// ForceSendFields is a list of field names (e.g. "Description") to
8677	// unconditionally include in API requests. By default, fields with
8678	// empty values are omitted from API requests. However, any non-pointer,
8679	// non-interface field appearing in ForceSendFields will be sent to the
8680	// server regardless of whether the field is empty or not. This may be
8681	// used to include empty fields in Patch requests.
8682	ForceSendFields []string `json:"-"`
8683
8684	// NullFields is a list of field names (e.g. "Description") to include
8685	// in API requests with the JSON null value. By default, fields with
8686	// empty values are omitted from API requests. However, any field with
8687	// an empty value appearing in NullFields will be sent to the server as
8688	// null. It is an error if a field in this list has a non-empty value.
8689	// This may be used to include null fields in Patch requests.
8690	NullFields []string `json:"-"`
8691}
8692
8693func (s *GoogleCloudVisionV1p3beta1Product) MarshalJSON() ([]byte, error) {
8694	type NoMethod GoogleCloudVisionV1p3beta1Product
8695	raw := NoMethod(*s)
8696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8697}
8698
8699// GoogleCloudVisionV1p3beta1ProductKeyValue: A product label
8700// represented as a key-value pair.
8701type GoogleCloudVisionV1p3beta1ProductKeyValue struct {
8702	// Key: The key of the label attached to the product. Cannot be empty
8703	// and cannot
8704	// exceed 128 bytes.
8705	Key string `json:"key,omitempty"`
8706
8707	// Value: The value of the label attached to the product. Cannot be
8708	// empty and
8709	// cannot exceed 128 bytes.
8710	Value string `json:"value,omitempty"`
8711
8712	// ForceSendFields is a list of field names (e.g. "Key") to
8713	// unconditionally include in API requests. By default, fields with
8714	// empty values are omitted from API requests. However, any non-pointer,
8715	// non-interface field appearing in ForceSendFields will be sent to the
8716	// server regardless of whether the field is empty or not. This may be
8717	// used to include empty fields in Patch requests.
8718	ForceSendFields []string `json:"-"`
8719
8720	// NullFields is a list of field names (e.g. "Key") to include in API
8721	// requests with the JSON null value. By default, fields with empty
8722	// values are omitted from API requests. However, any field with an
8723	// empty value appearing in NullFields will be sent to the server as
8724	// null. It is an error if a field in this list has a non-empty value.
8725	// This may be used to include null fields in Patch requests.
8726	NullFields []string `json:"-"`
8727}
8728
8729func (s *GoogleCloudVisionV1p3beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
8730	type NoMethod GoogleCloudVisionV1p3beta1ProductKeyValue
8731	raw := NoMethod(*s)
8732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8733}
8734
8735// GoogleCloudVisionV1p3beta1ProductSearchResults: Results for a product
8736// search request.
8737type GoogleCloudVisionV1p3beta1ProductSearchResults struct {
8738	// IndexTime: Timestamp of the index which provided these results.
8739	// Products added to the
8740	// product set and products removed from the product set after this time
8741	// are
8742	// not reflected in the current results.
8743	IndexTime string `json:"indexTime,omitempty"`
8744
8745	// ProductGroupedResults: List of results grouped by products detected
8746	// in the query image. Each entry
8747	// corresponds to one bounding polygon in the query image, and contains
8748	// the
8749	// matching products specific to that region. There may be duplicate
8750	// product
8751	// matches in the union of all the per-product results.
8752	ProductGroupedResults []*GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
8753
8754	// Results: List of results, one for each product match.
8755	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8756
8757	// ForceSendFields is a list of field names (e.g. "IndexTime") to
8758	// unconditionally include in API requests. By default, fields with
8759	// empty values are omitted from API requests. However, any non-pointer,
8760	// non-interface field appearing in ForceSendFields will be sent to the
8761	// server regardless of whether the field is empty or not. This may be
8762	// used to include empty fields in Patch requests.
8763	ForceSendFields []string `json:"-"`
8764
8765	// NullFields is a list of field names (e.g. "IndexTime") to include in
8766	// API requests with the JSON null value. By default, fields with empty
8767	// values are omitted from API requests. However, any field with an
8768	// empty value appearing in NullFields will be sent to the server as
8769	// null. It is an error if a field in this list has a non-empty value.
8770	// This may be used to include null fields in Patch requests.
8771	NullFields []string `json:"-"`
8772}
8773
8774func (s *GoogleCloudVisionV1p3beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
8775	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResults
8776	raw := NoMethod(*s)
8777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8778}
8779
8780// GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult:
8781// Information about the products similar to a single product in a
8782// query
8783// image.
8784type GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult struct {
8785	// BoundingPoly: The bounding polygon around the product detected in the
8786	// query image.
8787	BoundingPoly *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPoly,omitempty"`
8788
8789	// ObjectAnnotations: List of generic predictions for the object in the
8790	// bounding box.
8791	ObjectAnnotations []*GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
8792
8793	// Results: List of results, one for each product match.
8794	Results []*GoogleCloudVisionV1p3beta1ProductSearchResultsResult `json:"results,omitempty"`
8795
8796	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
8797	// unconditionally include in API requests. By default, fields with
8798	// empty values are omitted from API requests. However, any non-pointer,
8799	// non-interface field appearing in ForceSendFields will be sent to the
8800	// server regardless of whether the field is empty or not. This may be
8801	// used to include empty fields in Patch requests.
8802	ForceSendFields []string `json:"-"`
8803
8804	// NullFields is a list of field names (e.g. "BoundingPoly") to include
8805	// in API requests with the JSON null value. By default, fields with
8806	// empty values are omitted from API requests. However, any field with
8807	// an empty value appearing in NullFields will be sent to the server as
8808	// null. It is an error if a field in this list has a non-empty value.
8809	// This may be used to include null fields in Patch requests.
8810	NullFields []string `json:"-"`
8811}
8812
8813func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
8814	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult
8815	raw := NoMethod(*s)
8816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8817}
8818
8819// GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation:
8820// Prediction for what the object in the bounding box is.
8821type GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation struct {
8822	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
8823	// For more
8824	// information,
8825	// see
8826	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
8827	LanguageCode string `json:"languageCode,omitempty"`
8828
8829	// Mid: Object ID that should align with EntityAnnotation mid.
8830	Mid string `json:"mid,omitempty"`
8831
8832	// Name: Object name, expressed in its `language_code` language.
8833	Name string `json:"name,omitempty"`
8834
8835	// Score: Score of the result. Range [0, 1].
8836	Score float64 `json:"score,omitempty"`
8837
8838	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
8839	// unconditionally include in API requests. By default, fields with
8840	// empty values are omitted from API requests. However, any non-pointer,
8841	// non-interface field appearing in ForceSendFields will be sent to the
8842	// server regardless of whether the field is empty or not. This may be
8843	// used to include empty fields in Patch requests.
8844	ForceSendFields []string `json:"-"`
8845
8846	// NullFields is a list of field names (e.g. "LanguageCode") to include
8847	// in API requests with the JSON null value. By default, fields with
8848	// empty values are omitted from API requests. However, any field with
8849	// an empty value appearing in NullFields will be sent to the server as
8850	// null. It is an error if a field in this list has a non-empty value.
8851	// This may be used to include null fields in Patch requests.
8852	NullFields []string `json:"-"`
8853}
8854
8855func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
8856	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8857	raw := NoMethod(*s)
8858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8859}
8860
8861func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
8862	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation
8863	var s1 struct {
8864		Score gensupport.JSONFloat64 `json:"score"`
8865		*NoMethod
8866	}
8867	s1.NoMethod = (*NoMethod)(s)
8868	if err := json.Unmarshal(data, &s1); err != nil {
8869		return err
8870	}
8871	s.Score = float64(s1.Score)
8872	return nil
8873}
8874
8875// GoogleCloudVisionV1p3beta1ProductSearchResultsResult: Information
8876// about a product.
8877type GoogleCloudVisionV1p3beta1ProductSearchResultsResult struct {
8878	// Image: The resource name of the image from the product that is the
8879	// closest match
8880	// to the query.
8881	Image string `json:"image,omitempty"`
8882
8883	// Product: The Product.
8884	Product *GoogleCloudVisionV1p3beta1Product `json:"product,omitempty"`
8885
8886	// Score: A confidence level on the match, ranging from 0 (no
8887	// confidence) to
8888	// 1 (full confidence).
8889	Score float64 `json:"score,omitempty"`
8890
8891	// ForceSendFields is a list of field names (e.g. "Image") to
8892	// unconditionally include in API requests. By default, fields with
8893	// empty values are omitted from API requests. However, any non-pointer,
8894	// non-interface field appearing in ForceSendFields will be sent to the
8895	// server regardless of whether the field is empty or not. This may be
8896	// used to include empty fields in Patch requests.
8897	ForceSendFields []string `json:"-"`
8898
8899	// NullFields is a list of field names (e.g. "Image") to include in API
8900	// requests with the JSON null value. By default, fields with empty
8901	// values are omitted from API requests. However, any field with an
8902	// empty value appearing in NullFields will be sent to the server as
8903	// null. It is an error if a field in this list has a non-empty value.
8904	// This may be used to include null fields in Patch requests.
8905	NullFields []string `json:"-"`
8906}
8907
8908func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
8909	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8910	raw := NoMethod(*s)
8911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8912}
8913
8914func (s *GoogleCloudVisionV1p3beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
8915	type NoMethod GoogleCloudVisionV1p3beta1ProductSearchResultsResult
8916	var s1 struct {
8917		Score gensupport.JSONFloat64 `json:"score"`
8918		*NoMethod
8919	}
8920	s1.NoMethod = (*NoMethod)(s)
8921	if err := json.Unmarshal(data, &s1); err != nil {
8922		return err
8923	}
8924	s.Score = float64(s1.Score)
8925	return nil
8926}
8927
8928// GoogleCloudVisionV1p3beta1Property: A `Property` consists of a
8929// user-supplied name/value pair.
8930type GoogleCloudVisionV1p3beta1Property struct {
8931	// Name: Name of the property.
8932	Name string `json:"name,omitempty"`
8933
8934	// Uint64Value: Value of numeric properties.
8935	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
8936
8937	// Value: Value of the property.
8938	Value string `json:"value,omitempty"`
8939
8940	// ForceSendFields is a list of field names (e.g. "Name") to
8941	// unconditionally include in API requests. By default, fields with
8942	// empty values are omitted from API requests. However, any non-pointer,
8943	// non-interface field appearing in ForceSendFields will be sent to the
8944	// server regardless of whether the field is empty or not. This may be
8945	// used to include empty fields in Patch requests.
8946	ForceSendFields []string `json:"-"`
8947
8948	// NullFields is a list of field names (e.g. "Name") to include in API
8949	// requests with the JSON null value. By default, fields with empty
8950	// values are omitted from API requests. However, any field with an
8951	// empty value appearing in NullFields will be sent to the server as
8952	// null. It is an error if a field in this list has a non-empty value.
8953	// This may be used to include null fields in Patch requests.
8954	NullFields []string `json:"-"`
8955}
8956
8957func (s *GoogleCloudVisionV1p3beta1Property) MarshalJSON() ([]byte, error) {
8958	type NoMethod GoogleCloudVisionV1p3beta1Property
8959	raw := NoMethod(*s)
8960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8961}
8962
8963// GoogleCloudVisionV1p3beta1ReferenceImage: A `ReferenceImage`
8964// represents a product image and its associated metadata,
8965// such as bounding boxes.
8966type GoogleCloudVisionV1p3beta1ReferenceImage struct {
8967	// BoundingPolys: Optional. Bounding polygons around the areas of
8968	// interest in the reference image.
8969	// If this field is empty, the system will try to detect regions
8970	// of
8971	// interest. At most 10 bounding polygons will be used.
8972	//
8973	// The provided shape is converted into a non-rotated rectangle.
8974	// Once
8975	// converted, the small edge of the rectangle must be greater than or
8976	// equal
8977	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
8978	// 1:5
8979	// is not).
8980	BoundingPolys []*GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingPolys,omitempty"`
8981
8982	// Name: The resource name of the reference image.
8983	//
8984	// Format
8985	// is:
8986	//
8987	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
8988	// ceImages/IMAGE_ID`.
8989	//
8990	// This field is ignored when creating a reference image.
8991	Name string `json:"name,omitempty"`
8992
8993	// Uri: Required. The Google Cloud Storage URI of the reference
8994	// image.
8995	//
8996	// The URI must start with `gs://`.
8997	Uri string `json:"uri,omitempty"`
8998
8999	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
9000	// unconditionally include in API requests. By default, fields with
9001	// empty values are omitted from API requests. However, any non-pointer,
9002	// non-interface field appearing in ForceSendFields will be sent to the
9003	// server regardless of whether the field is empty or not. This may be
9004	// used to include empty fields in Patch requests.
9005	ForceSendFields []string `json:"-"`
9006
9007	// NullFields is a list of field names (e.g. "BoundingPolys") to include
9008	// in API requests with the JSON null value. By default, fields with
9009	// empty values are omitted from API requests. However, any field with
9010	// an empty value appearing in NullFields will be sent to the server as
9011	// null. It is an error if a field in this list has a non-empty value.
9012	// This may be used to include null fields in Patch requests.
9013	NullFields []string `json:"-"`
9014}
9015
9016func (s *GoogleCloudVisionV1p3beta1ReferenceImage) MarshalJSON() ([]byte, error) {
9017	type NoMethod GoogleCloudVisionV1p3beta1ReferenceImage
9018	raw := NoMethod(*s)
9019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9020}
9021
9022// GoogleCloudVisionV1p3beta1SafeSearchAnnotation: Set of features
9023// pertaining to the image, computed by computer vision
9024// methods over safe-search verticals (for example, adult, spoof,
9025// medical,
9026// violence).
9027type GoogleCloudVisionV1p3beta1SafeSearchAnnotation struct {
9028	// Adult: Represents the adult content likelihood for the image. Adult
9029	// content may
9030	// contain elements such as nudity, pornographic images or cartoons,
9031	// or
9032	// sexual activities.
9033	//
9034	// Possible values:
9035	//   "UNKNOWN" - Unknown likelihood.
9036	//   "VERY_UNLIKELY" - It is very unlikely.
9037	//   "UNLIKELY" - It is unlikely.
9038	//   "POSSIBLE" - It is possible.
9039	//   "LIKELY" - It is likely.
9040	//   "VERY_LIKELY" - It is very likely.
9041	Adult string `json:"adult,omitempty"`
9042
9043	// Medical: Likelihood that this is a medical image.
9044	//
9045	// Possible values:
9046	//   "UNKNOWN" - Unknown likelihood.
9047	//   "VERY_UNLIKELY" - It is very unlikely.
9048	//   "UNLIKELY" - It is unlikely.
9049	//   "POSSIBLE" - It is possible.
9050	//   "LIKELY" - It is likely.
9051	//   "VERY_LIKELY" - It is very likely.
9052	Medical string `json:"medical,omitempty"`
9053
9054	// Racy: Likelihood that the request image contains racy content. Racy
9055	// content may
9056	// include (but is not limited to) skimpy or sheer clothing,
9057	// strategically
9058	// covered nudity, lewd or provocative poses, or close-ups of
9059	// sensitive
9060	// body areas.
9061	//
9062	// Possible values:
9063	//   "UNKNOWN" - Unknown likelihood.
9064	//   "VERY_UNLIKELY" - It is very unlikely.
9065	//   "UNLIKELY" - It is unlikely.
9066	//   "POSSIBLE" - It is possible.
9067	//   "LIKELY" - It is likely.
9068	//   "VERY_LIKELY" - It is very likely.
9069	Racy string `json:"racy,omitempty"`
9070
9071	// Spoof: Spoof likelihood. The likelihood that an modification
9072	// was made to the image's canonical version to make it appear
9073	// funny or offensive.
9074	//
9075	// Possible values:
9076	//   "UNKNOWN" - Unknown likelihood.
9077	//   "VERY_UNLIKELY" - It is very unlikely.
9078	//   "UNLIKELY" - It is unlikely.
9079	//   "POSSIBLE" - It is possible.
9080	//   "LIKELY" - It is likely.
9081	//   "VERY_LIKELY" - It is very likely.
9082	Spoof string `json:"spoof,omitempty"`
9083
9084	// Violence: Likelihood that this image contains violent content.
9085	//
9086	// Possible values:
9087	//   "UNKNOWN" - Unknown likelihood.
9088	//   "VERY_UNLIKELY" - It is very unlikely.
9089	//   "UNLIKELY" - It is unlikely.
9090	//   "POSSIBLE" - It is possible.
9091	//   "LIKELY" - It is likely.
9092	//   "VERY_LIKELY" - It is very likely.
9093	Violence string `json:"violence,omitempty"`
9094
9095	// ForceSendFields is a list of field names (e.g. "Adult") to
9096	// unconditionally include in API requests. By default, fields with
9097	// empty values are omitted from API requests. However, any non-pointer,
9098	// non-interface field appearing in ForceSendFields will be sent to the
9099	// server regardless of whether the field is empty or not. This may be
9100	// used to include empty fields in Patch requests.
9101	ForceSendFields []string `json:"-"`
9102
9103	// NullFields is a list of field names (e.g. "Adult") to include in API
9104	// requests with the JSON null value. By default, fields with empty
9105	// values are omitted from API requests. However, any field with an
9106	// empty value appearing in NullFields will be sent to the server as
9107	// null. It is an error if a field in this list has a non-empty value.
9108	// This may be used to include null fields in Patch requests.
9109	NullFields []string `json:"-"`
9110}
9111
9112func (s *GoogleCloudVisionV1p3beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
9113	type NoMethod GoogleCloudVisionV1p3beta1SafeSearchAnnotation
9114	raw := NoMethod(*s)
9115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9116}
9117
9118// GoogleCloudVisionV1p3beta1Symbol: A single symbol representation.
9119type GoogleCloudVisionV1p3beta1Symbol struct {
9120	// BoundingBox: The bounding box for the symbol.
9121	// The vertices are in the order of top-left, top-right,
9122	// bottom-right,
9123	// bottom-left. When a rotation of the bounding box is detected the
9124	// rotation
9125	// is represented as around the top-left corner as defined when the text
9126	// is
9127	// read in the 'natural' orientation.
9128	// For example:
9129	//   * when the text is horizontal it might look like:
9130	//      0----1
9131	//      |    |
9132	//      3----2
9133	//   * when it's rotated 180 degrees around the top-left corner it
9134	// becomes:
9135	//      2----3
9136	//      |    |
9137	//      1----0
9138	//   and the vertex order will still be (0, 1, 2, 3).
9139	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9140
9141	// Confidence: Confidence of the OCR results for the symbol. Range [0,
9142	// 1].
9143	Confidence float64 `json:"confidence,omitempty"`
9144
9145	// Property: Additional information detected for the symbol.
9146	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9147
9148	// Text: The actual UTF-8 representation of the symbol.
9149	Text string `json:"text,omitempty"`
9150
9151	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9152	// unconditionally include in API requests. By default, fields with
9153	// empty values are omitted from API requests. However, any non-pointer,
9154	// non-interface field appearing in ForceSendFields will be sent to the
9155	// server regardless of whether the field is empty or not. This may be
9156	// used to include empty fields in Patch requests.
9157	ForceSendFields []string `json:"-"`
9158
9159	// NullFields is a list of field names (e.g. "BoundingBox") to include
9160	// in API requests with the JSON null value. By default, fields with
9161	// empty values are omitted from API requests. However, any field with
9162	// an empty value appearing in NullFields will be sent to the server as
9163	// null. It is an error if a field in this list has a non-empty value.
9164	// This may be used to include null fields in Patch requests.
9165	NullFields []string `json:"-"`
9166}
9167
9168func (s *GoogleCloudVisionV1p3beta1Symbol) MarshalJSON() ([]byte, error) {
9169	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9170	raw := NoMethod(*s)
9171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9172}
9173
9174func (s *GoogleCloudVisionV1p3beta1Symbol) UnmarshalJSON(data []byte) error {
9175	type NoMethod GoogleCloudVisionV1p3beta1Symbol
9176	var s1 struct {
9177		Confidence gensupport.JSONFloat64 `json:"confidence"`
9178		*NoMethod
9179	}
9180	s1.NoMethod = (*NoMethod)(s)
9181	if err := json.Unmarshal(data, &s1); err != nil {
9182		return err
9183	}
9184	s.Confidence = float64(s1.Confidence)
9185	return nil
9186}
9187
9188// GoogleCloudVisionV1p3beta1TextAnnotation: TextAnnotation contains a
9189// structured representation of OCR extracted text.
9190// The hierarchy of an OCR extracted text structure is like this:
9191//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
9192// Symbol
9193// Each structural component, starting from Page, may further have their
9194// own
9195// properties. Properties describe detected languages, breaks etc..
9196// Please refer
9197// to the TextAnnotation.TextProperty message definition below for
9198// more
9199// detail.
9200type GoogleCloudVisionV1p3beta1TextAnnotation struct {
9201	// Pages: List of pages detected by OCR.
9202	Pages []*GoogleCloudVisionV1p3beta1Page `json:"pages,omitempty"`
9203
9204	// Text: UTF-8 text detected on the pages.
9205	Text string `json:"text,omitempty"`
9206
9207	// ForceSendFields is a list of field names (e.g. "Pages") to
9208	// unconditionally include in API requests. By default, fields with
9209	// empty values are omitted from API requests. However, any non-pointer,
9210	// non-interface field appearing in ForceSendFields will be sent to the
9211	// server regardless of whether the field is empty or not. This may be
9212	// used to include empty fields in Patch requests.
9213	ForceSendFields []string `json:"-"`
9214
9215	// NullFields is a list of field names (e.g. "Pages") to include in API
9216	// requests with the JSON null value. By default, fields with empty
9217	// values are omitted from API requests. However, any field with an
9218	// empty value appearing in NullFields will be sent to the server as
9219	// null. It is an error if a field in this list has a non-empty value.
9220	// This may be used to include null fields in Patch requests.
9221	NullFields []string `json:"-"`
9222}
9223
9224func (s *GoogleCloudVisionV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
9225	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotation
9226	raw := NoMethod(*s)
9227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9228}
9229
9230// GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak: Detected start
9231// or end of a structural component.
9232type GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak struct {
9233	// IsPrefix: True if break prepends the element.
9234	IsPrefix bool `json:"isPrefix,omitempty"`
9235
9236	// Type: Detected break type.
9237	//
9238	// Possible values:
9239	//   "UNKNOWN" - Unknown break label type.
9240	//   "SPACE" - Regular space.
9241	//   "SURE_SPACE" - Sure space (very wide).
9242	//   "EOL_SURE_SPACE" - Line-wrapping break.
9243	//   "HYPHEN" - End-line hyphen that is not present in text; does not
9244	// co-occur with
9245	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
9246	//   "LINE_BREAK" - Line break that ends a paragraph.
9247	Type string `json:"type,omitempty"`
9248
9249	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
9250	// unconditionally include in API requests. By default, fields with
9251	// empty values are omitted from API requests. However, any non-pointer,
9252	// non-interface field appearing in ForceSendFields will be sent to the
9253	// server regardless of whether the field is empty or not. This may be
9254	// used to include empty fields in Patch requests.
9255	ForceSendFields []string `json:"-"`
9256
9257	// NullFields is a list of field names (e.g. "IsPrefix") to include in
9258	// API requests with the JSON null value. By default, fields with empty
9259	// values are omitted from API requests. However, any field with an
9260	// empty value appearing in NullFields will be sent to the server as
9261	// null. It is an error if a field in this list has a non-empty value.
9262	// This may be used to include null fields in Patch requests.
9263	NullFields []string `json:"-"`
9264}
9265
9266func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
9267	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak
9268	raw := NoMethod(*s)
9269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9270}
9271
9272// GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage: Detected
9273// language for a structural component.
9274type GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage struct {
9275	// Confidence: Confidence of detected language. Range [0, 1].
9276	Confidence float64 `json:"confidence,omitempty"`
9277
9278	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
9279	// For more
9280	// information,
9281	// see
9282	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9283	LanguageCode string `json:"languageCode,omitempty"`
9284
9285	// ForceSendFields is a list of field names (e.g. "Confidence") to
9286	// unconditionally include in API requests. By default, fields with
9287	// empty values are omitted from API requests. However, any non-pointer,
9288	// non-interface field appearing in ForceSendFields will be sent to the
9289	// server regardless of whether the field is empty or not. This may be
9290	// used to include empty fields in Patch requests.
9291	ForceSendFields []string `json:"-"`
9292
9293	// NullFields is a list of field names (e.g. "Confidence") to include in
9294	// API requests with the JSON null value. By default, fields with empty
9295	// values are omitted from API requests. However, any field with an
9296	// empty value appearing in NullFields will be sent to the server as
9297	// null. It is an error if a field in this list has a non-empty value.
9298	// This may be used to include null fields in Patch requests.
9299	NullFields []string `json:"-"`
9300}
9301
9302func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
9303	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9304	raw := NoMethod(*s)
9305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9306}
9307
9308func (s *GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
9309	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage
9310	var s1 struct {
9311		Confidence gensupport.JSONFloat64 `json:"confidence"`
9312		*NoMethod
9313	}
9314	s1.NoMethod = (*NoMethod)(s)
9315	if err := json.Unmarshal(data, &s1); err != nil {
9316		return err
9317	}
9318	s.Confidence = float64(s1.Confidence)
9319	return nil
9320}
9321
9322// GoogleCloudVisionV1p3beta1TextAnnotationTextProperty: Additional
9323// information detected on the structural component.
9324type GoogleCloudVisionV1p3beta1TextAnnotationTextProperty struct {
9325	// DetectedBreak: Detected start or end of a text segment.
9326	DetectedBreak *GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
9327
9328	// DetectedLanguages: A list of detected languages together with
9329	// confidence.
9330	DetectedLanguages []*GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
9331
9332	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
9333	// unconditionally include in API requests. By default, fields with
9334	// empty values are omitted from API requests. However, any non-pointer,
9335	// non-interface field appearing in ForceSendFields will be sent to the
9336	// server regardless of whether the field is empty or not. This may be
9337	// used to include empty fields in Patch requests.
9338	ForceSendFields []string `json:"-"`
9339
9340	// NullFields is a list of field names (e.g. "DetectedBreak") to include
9341	// in API requests with the JSON null value. By default, fields with
9342	// empty values are omitted from API requests. However, any field with
9343	// an empty value appearing in NullFields will be sent to the server as
9344	// null. It is an error if a field in this list has a non-empty value.
9345	// This may be used to include null fields in Patch requests.
9346	NullFields []string `json:"-"`
9347}
9348
9349func (s *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
9350	type NoMethod GoogleCloudVisionV1p3beta1TextAnnotationTextProperty
9351	raw := NoMethod(*s)
9352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9353}
9354
9355// GoogleCloudVisionV1p3beta1Vertex: A vertex represents a 2D point in
9356// the image.
9357// NOTE: the vertex coordinates are in the same scale as the original
9358// image.
9359type GoogleCloudVisionV1p3beta1Vertex struct {
9360	// X: X coordinate.
9361	X int64 `json:"x,omitempty"`
9362
9363	// Y: Y coordinate.
9364	Y int64 `json:"y,omitempty"`
9365
9366	// ForceSendFields is a list of field names (e.g. "X") to
9367	// unconditionally include in API requests. By default, fields with
9368	// empty values are omitted from API requests. However, any non-pointer,
9369	// non-interface field appearing in ForceSendFields will be sent to the
9370	// server regardless of whether the field is empty or not. This may be
9371	// used to include empty fields in Patch requests.
9372	ForceSendFields []string `json:"-"`
9373
9374	// NullFields is a list of field names (e.g. "X") to include in API
9375	// requests with the JSON null value. By default, fields with empty
9376	// values are omitted from API requests. However, any field with an
9377	// empty value appearing in NullFields will be sent to the server as
9378	// null. It is an error if a field in this list has a non-empty value.
9379	// This may be used to include null fields in Patch requests.
9380	NullFields []string `json:"-"`
9381}
9382
9383func (s *GoogleCloudVisionV1p3beta1Vertex) MarshalJSON() ([]byte, error) {
9384	type NoMethod GoogleCloudVisionV1p3beta1Vertex
9385	raw := NoMethod(*s)
9386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9387}
9388
9389// GoogleCloudVisionV1p3beta1WebDetection: Relevant information for the
9390// image from the Internet.
9391type GoogleCloudVisionV1p3beta1WebDetection struct {
9392	// BestGuessLabels: The service's best guess as to the topic of the
9393	// request image.
9394	// Inferred from similar images on the open web.
9395	BestGuessLabels []*GoogleCloudVisionV1p3beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
9396
9397	// FullMatchingImages: Fully matching images from the Internet.
9398	// Can include resized copies of the query image.
9399	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9400
9401	// PagesWithMatchingImages: Web pages containing the matching images
9402	// from the Internet.
9403	PagesWithMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
9404
9405	// PartialMatchingImages: Partial matching images from the
9406	// Internet.
9407	// Those images are similar enough to share some key-point features.
9408	// For
9409	// example an original image will likely have partial matching for its
9410	// crops.
9411	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9412
9413	// VisuallySimilarImages: The visually similar image results.
9414	VisuallySimilarImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
9415
9416	// WebEntities: Deduced entities from similar images on the Internet.
9417	WebEntities []*GoogleCloudVisionV1p3beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
9418
9419	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
9420	// unconditionally include in API requests. By default, fields with
9421	// empty values are omitted from API requests. However, any non-pointer,
9422	// non-interface field appearing in ForceSendFields will be sent to the
9423	// server regardless of whether the field is empty or not. This may be
9424	// used to include empty fields in Patch requests.
9425	ForceSendFields []string `json:"-"`
9426
9427	// NullFields is a list of field names (e.g. "BestGuessLabels") to
9428	// include in API requests with the JSON null value. By default, fields
9429	// with empty values are omitted from API requests. However, any field
9430	// with an empty value appearing in NullFields will be sent to the
9431	// server as null. It is an error if a field in this list has a
9432	// non-empty value. This may be used to include null fields in Patch
9433	// requests.
9434	NullFields []string `json:"-"`
9435}
9436
9437func (s *GoogleCloudVisionV1p3beta1WebDetection) MarshalJSON() ([]byte, error) {
9438	type NoMethod GoogleCloudVisionV1p3beta1WebDetection
9439	raw := NoMethod(*s)
9440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9441}
9442
9443// GoogleCloudVisionV1p3beta1WebDetectionWebEntity: Entity deduced from
9444// similar images on the Internet.
9445type GoogleCloudVisionV1p3beta1WebDetectionWebEntity struct {
9446	// Description: Canonical description of the entity, in English.
9447	Description string `json:"description,omitempty"`
9448
9449	// EntityId: Opaque entity ID.
9450	EntityId string `json:"entityId,omitempty"`
9451
9452	// Score: Overall relevancy score for the entity.
9453	// Not normalized and not comparable across different image queries.
9454	Score float64 `json:"score,omitempty"`
9455
9456	// ForceSendFields is a list of field names (e.g. "Description") to
9457	// unconditionally include in API requests. By default, fields with
9458	// empty values are omitted from API requests. However, any non-pointer,
9459	// non-interface field appearing in ForceSendFields will be sent to the
9460	// server regardless of whether the field is empty or not. This may be
9461	// used to include empty fields in Patch requests.
9462	ForceSendFields []string `json:"-"`
9463
9464	// NullFields is a list of field names (e.g. "Description") to include
9465	// in API requests with the JSON null value. By default, fields with
9466	// empty values are omitted from API requests. However, any field with
9467	// an empty value appearing in NullFields will be sent to the server as
9468	// null. It is an error if a field in this list has a non-empty value.
9469	// This may be used to include null fields in Patch requests.
9470	NullFields []string `json:"-"`
9471}
9472
9473func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
9474	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9475	raw := NoMethod(*s)
9476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9477}
9478
9479func (s *GoogleCloudVisionV1p3beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
9480	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebEntity
9481	var s1 struct {
9482		Score gensupport.JSONFloat64 `json:"score"`
9483		*NoMethod
9484	}
9485	s1.NoMethod = (*NoMethod)(s)
9486	if err := json.Unmarshal(data, &s1); err != nil {
9487		return err
9488	}
9489	s.Score = float64(s1.Score)
9490	return nil
9491}
9492
9493// GoogleCloudVisionV1p3beta1WebDetectionWebImage: Metadata for online
9494// images.
9495type GoogleCloudVisionV1p3beta1WebDetectionWebImage struct {
9496	// Score: (Deprecated) Overall relevancy score for the image.
9497	Score float64 `json:"score,omitempty"`
9498
9499	// Url: The result image URL.
9500	Url string `json:"url,omitempty"`
9501
9502	// ForceSendFields is a list of field names (e.g. "Score") to
9503	// unconditionally include in API requests. By default, fields with
9504	// empty values are omitted from API requests. However, any non-pointer,
9505	// non-interface field appearing in ForceSendFields will be sent to the
9506	// server regardless of whether the field is empty or not. This may be
9507	// used to include empty fields in Patch requests.
9508	ForceSendFields []string `json:"-"`
9509
9510	// NullFields is a list of field names (e.g. "Score") to include in API
9511	// requests with the JSON null value. By default, fields with empty
9512	// values are omitted from API requests. However, any field with an
9513	// empty value appearing in NullFields will be sent to the server as
9514	// null. It is an error if a field in this list has a non-empty value.
9515	// This may be used to include null fields in Patch requests.
9516	NullFields []string `json:"-"`
9517}
9518
9519func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
9520	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9521	raw := NoMethod(*s)
9522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9523}
9524
9525func (s *GoogleCloudVisionV1p3beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
9526	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebImage
9527	var s1 struct {
9528		Score gensupport.JSONFloat64 `json:"score"`
9529		*NoMethod
9530	}
9531	s1.NoMethod = (*NoMethod)(s)
9532	if err := json.Unmarshal(data, &s1); err != nil {
9533		return err
9534	}
9535	s.Score = float64(s1.Score)
9536	return nil
9537}
9538
9539// GoogleCloudVisionV1p3beta1WebDetectionWebLabel: Label to provide
9540// extra metadata for the web detection.
9541type GoogleCloudVisionV1p3beta1WebDetectionWebLabel struct {
9542	// Label: Label for extra metadata.
9543	Label string `json:"label,omitempty"`
9544
9545	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
9546	// or "sr-Latn".
9547	// For more information,
9548	// see
9549	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
9550	LanguageCode string `json:"languageCode,omitempty"`
9551
9552	// ForceSendFields is a list of field names (e.g. "Label") to
9553	// unconditionally include in API requests. By default, fields with
9554	// empty values are omitted from API requests. However, any non-pointer,
9555	// non-interface field appearing in ForceSendFields will be sent to the
9556	// server regardless of whether the field is empty or not. This may be
9557	// used to include empty fields in Patch requests.
9558	ForceSendFields []string `json:"-"`
9559
9560	// NullFields is a list of field names (e.g. "Label") to include in API
9561	// requests with the JSON null value. By default, fields with empty
9562	// values are omitted from API requests. However, any field with an
9563	// empty value appearing in NullFields will be sent to the server as
9564	// null. It is an error if a field in this list has a non-empty value.
9565	// This may be used to include null fields in Patch requests.
9566	NullFields []string `json:"-"`
9567}
9568
9569func (s *GoogleCloudVisionV1p3beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
9570	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebLabel
9571	raw := NoMethod(*s)
9572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9573}
9574
9575// GoogleCloudVisionV1p3beta1WebDetectionWebPage: Metadata for web
9576// pages.
9577type GoogleCloudVisionV1p3beta1WebDetectionWebPage struct {
9578	// FullMatchingImages: Fully matching images on the page.
9579	// Can include resized copies of the query image.
9580	FullMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
9581
9582	// PageTitle: Title for the web page, may contain HTML markups.
9583	PageTitle string `json:"pageTitle,omitempty"`
9584
9585	// PartialMatchingImages: Partial matching images on the page.
9586	// Those images are similar enough to share some key-point features.
9587	// For
9588	// example an original image will likely have partial matching for
9589	// its
9590	// crops.
9591	PartialMatchingImages []*GoogleCloudVisionV1p3beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
9592
9593	// Score: (Deprecated) Overall relevancy score for the web page.
9594	Score float64 `json:"score,omitempty"`
9595
9596	// Url: The result web page URL.
9597	Url string `json:"url,omitempty"`
9598
9599	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
9600	// to unconditionally include in API requests. By default, fields with
9601	// empty values are omitted from API requests. However, any non-pointer,
9602	// non-interface field appearing in ForceSendFields will be sent to the
9603	// server regardless of whether the field is empty or not. This may be
9604	// used to include empty fields in Patch requests.
9605	ForceSendFields []string `json:"-"`
9606
9607	// NullFields is a list of field names (e.g. "FullMatchingImages") to
9608	// include in API requests with the JSON null value. By default, fields
9609	// with empty values are omitted from API requests. However, any field
9610	// with an empty value appearing in NullFields will be sent to the
9611	// server as null. It is an error if a field in this list has a
9612	// non-empty value. This may be used to include null fields in Patch
9613	// requests.
9614	NullFields []string `json:"-"`
9615}
9616
9617func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
9618	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9619	raw := NoMethod(*s)
9620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9621}
9622
9623func (s *GoogleCloudVisionV1p3beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
9624	type NoMethod GoogleCloudVisionV1p3beta1WebDetectionWebPage
9625	var s1 struct {
9626		Score gensupport.JSONFloat64 `json:"score"`
9627		*NoMethod
9628	}
9629	s1.NoMethod = (*NoMethod)(s)
9630	if err := json.Unmarshal(data, &s1); err != nil {
9631		return err
9632	}
9633	s.Score = float64(s1.Score)
9634	return nil
9635}
9636
9637// GoogleCloudVisionV1p3beta1Word: A word representation.
9638type GoogleCloudVisionV1p3beta1Word struct {
9639	// BoundingBox: The bounding box for the word.
9640	// The vertices are in the order of top-left, top-right,
9641	// bottom-right,
9642	// bottom-left. When a rotation of the bounding box is detected the
9643	// rotation
9644	// is represented as around the top-left corner as defined when the text
9645	// is
9646	// read in the 'natural' orientation.
9647	// For example:
9648	//   * when the text is horizontal it might look like:
9649	//      0----1
9650	//      |    |
9651	//      3----2
9652	//   * when it's rotated 180 degrees around the top-left corner it
9653	// becomes:
9654	//      2----3
9655	//      |    |
9656	//      1----0
9657	//   and the vertex order will still be (0, 1, 2, 3).
9658	BoundingBox *GoogleCloudVisionV1p3beta1BoundingPoly `json:"boundingBox,omitempty"`
9659
9660	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
9661	Confidence float64 `json:"confidence,omitempty"`
9662
9663	// Property: Additional information detected for the word.
9664	Property *GoogleCloudVisionV1p3beta1TextAnnotationTextProperty `json:"property,omitempty"`
9665
9666	// Symbols: List of symbols in the word.
9667	// The order of the symbols follows the natural reading order.
9668	Symbols []*GoogleCloudVisionV1p3beta1Symbol `json:"symbols,omitempty"`
9669
9670	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
9671	// unconditionally include in API requests. By default, fields with
9672	// empty values are omitted from API requests. However, any non-pointer,
9673	// non-interface field appearing in ForceSendFields will be sent to the
9674	// server regardless of whether the field is empty or not. This may be
9675	// used to include empty fields in Patch requests.
9676	ForceSendFields []string `json:"-"`
9677
9678	// NullFields is a list of field names (e.g. "BoundingBox") to include
9679	// in API requests with the JSON null value. By default, fields with
9680	// empty values are omitted from API requests. However, any field with
9681	// an empty value appearing in NullFields will be sent to the server as
9682	// null. It is an error if a field in this list has a non-empty value.
9683	// This may be used to include null fields in Patch requests.
9684	NullFields []string `json:"-"`
9685}
9686
9687func (s *GoogleCloudVisionV1p3beta1Word) MarshalJSON() ([]byte, error) {
9688	type NoMethod GoogleCloudVisionV1p3beta1Word
9689	raw := NoMethod(*s)
9690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9691}
9692
9693func (s *GoogleCloudVisionV1p3beta1Word) UnmarshalJSON(data []byte) error {
9694	type NoMethod GoogleCloudVisionV1p3beta1Word
9695	var s1 struct {
9696		Confidence gensupport.JSONFloat64 `json:"confidence"`
9697		*NoMethod
9698	}
9699	s1.NoMethod = (*NoMethod)(s)
9700	if err := json.Unmarshal(data, &s1); err != nil {
9701		return err
9702	}
9703	s.Confidence = float64(s1.Confidence)
9704	return nil
9705}
9706
9707// GoogleCloudVisionV1p4beta1AnnotateFileResponse: Response to a single
9708// file annotation request. A file may contain one or more
9709// images, which individually have their own responses.
9710type GoogleCloudVisionV1p4beta1AnnotateFileResponse struct {
9711	// Error: If set, represents the error message for the failed request.
9712	// The
9713	// `responses` field will not be set in this case.
9714	Error *Status `json:"error,omitempty"`
9715
9716	// InputConfig: Information about the file for which this response is
9717	// generated.
9718	InputConfig *GoogleCloudVisionV1p4beta1InputConfig `json:"inputConfig,omitempty"`
9719
9720	// Responses: Individual responses to images found within the file. This
9721	// field will be
9722	// empty if the `error` field is set.
9723	Responses []*GoogleCloudVisionV1p4beta1AnnotateImageResponse `json:"responses,omitempty"`
9724
9725	// TotalPages: This field gives the total number of pages in the file.
9726	TotalPages int64 `json:"totalPages,omitempty"`
9727
9728	// ForceSendFields is a list of field names (e.g. "Error") to
9729	// unconditionally include in API requests. By default, fields with
9730	// empty values are omitted from API requests. However, any non-pointer,
9731	// non-interface field appearing in ForceSendFields will be sent to the
9732	// server regardless of whether the field is empty or not. This may be
9733	// used to include empty fields in Patch requests.
9734	ForceSendFields []string `json:"-"`
9735
9736	// NullFields is a list of field names (e.g. "Error") to include in API
9737	// requests with the JSON null value. By default, fields with empty
9738	// values are omitted from API requests. However, any field with an
9739	// empty value appearing in NullFields will be sent to the server as
9740	// null. It is an error if a field in this list has a non-empty value.
9741	// This may be used to include null fields in Patch requests.
9742	NullFields []string `json:"-"`
9743}
9744
9745func (s *GoogleCloudVisionV1p4beta1AnnotateFileResponse) MarshalJSON() ([]byte, error) {
9746	type NoMethod GoogleCloudVisionV1p4beta1AnnotateFileResponse
9747	raw := NoMethod(*s)
9748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9749}
9750
9751// GoogleCloudVisionV1p4beta1AnnotateImageResponse: Response to an image
9752// annotation request.
9753type GoogleCloudVisionV1p4beta1AnnotateImageResponse struct {
9754	// Context: If present, contextual information is needed to understand
9755	// where this image
9756	// comes from.
9757	Context *GoogleCloudVisionV1p4beta1ImageAnnotationContext `json:"context,omitempty"`
9758
9759	// CropHintsAnnotation: If present, crop hints have completed
9760	// successfully.
9761	CropHintsAnnotation *GoogleCloudVisionV1p4beta1CropHintsAnnotation `json:"cropHintsAnnotation,omitempty"`
9762
9763	// Error: If set, represents the error message for the operation.
9764	// Note that filled-in image annotations are guaranteed to be
9765	// correct, even when `error` is set.
9766	Error *Status `json:"error,omitempty"`
9767
9768	// FaceAnnotations: If present, face detection has completed
9769	// successfully.
9770	FaceAnnotations []*GoogleCloudVisionV1p4beta1FaceAnnotation `json:"faceAnnotations,omitempty"`
9771
9772	// FullTextAnnotation: If present, text (OCR) detection or document
9773	// (OCR) text detection has
9774	// completed successfully.
9775	// This annotation provides the structural hierarchy for the OCR
9776	// detected
9777	// text.
9778	FullTextAnnotation *GoogleCloudVisionV1p4beta1TextAnnotation `json:"fullTextAnnotation,omitempty"`
9779
9780	// ImagePropertiesAnnotation: If present, image properties were
9781	// extracted successfully.
9782	ImagePropertiesAnnotation *GoogleCloudVisionV1p4beta1ImageProperties `json:"imagePropertiesAnnotation,omitempty"`
9783
9784	// LabelAnnotations: If present, label detection has completed
9785	// successfully.
9786	LabelAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"labelAnnotations,omitempty"`
9787
9788	// LandmarkAnnotations: If present, landmark detection has completed
9789	// successfully.
9790	LandmarkAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"landmarkAnnotations,omitempty"`
9791
9792	// LocalizedObjectAnnotations: If present, localized object detection
9793	// has completed successfully.
9794	// This will be sorted descending by confidence score.
9795	LocalizedObjectAnnotations []*GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation `json:"localizedObjectAnnotations,omitempty"`
9796
9797	// LogoAnnotations: If present, logo detection has completed
9798	// successfully.
9799	LogoAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"logoAnnotations,omitempty"`
9800
9801	// ProductSearchResults: If present, product search has completed
9802	// successfully.
9803	ProductSearchResults *GoogleCloudVisionV1p4beta1ProductSearchResults `json:"productSearchResults,omitempty"`
9804
9805	// SafeSearchAnnotation: If present, safe-search annotation has
9806	// completed successfully.
9807	SafeSearchAnnotation *GoogleCloudVisionV1p4beta1SafeSearchAnnotation `json:"safeSearchAnnotation,omitempty"`
9808
9809	// TextAnnotations: If present, text (OCR) detection has completed
9810	// successfully.
9811	TextAnnotations []*GoogleCloudVisionV1p4beta1EntityAnnotation `json:"textAnnotations,omitempty"`
9812
9813	// WebDetection: If present, web detection has completed successfully.
9814	WebDetection *GoogleCloudVisionV1p4beta1WebDetection `json:"webDetection,omitempty"`
9815
9816	// ForceSendFields is a list of field names (e.g. "Context") to
9817	// unconditionally include in API requests. By default, fields with
9818	// empty values are omitted from API requests. However, any non-pointer,
9819	// non-interface field appearing in ForceSendFields will be sent to the
9820	// server regardless of whether the field is empty or not. This may be
9821	// used to include empty fields in Patch requests.
9822	ForceSendFields []string `json:"-"`
9823
9824	// NullFields is a list of field names (e.g. "Context") to include in
9825	// API requests with the JSON null value. By default, fields with empty
9826	// values are omitted from API requests. However, any field with an
9827	// empty value appearing in NullFields will be sent to the server as
9828	// null. It is an error if a field in this list has a non-empty value.
9829	// This may be used to include null fields in Patch requests.
9830	NullFields []string `json:"-"`
9831}
9832
9833func (s *GoogleCloudVisionV1p4beta1AnnotateImageResponse) MarshalJSON() ([]byte, error) {
9834	type NoMethod GoogleCloudVisionV1p4beta1AnnotateImageResponse
9835	raw := NoMethod(*s)
9836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9837}
9838
9839// GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse: The response for
9840// a single offline file annotation request.
9841type GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse struct {
9842	// OutputConfig: The output location and metadata from
9843	// AsyncAnnotateFileRequest.
9844	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9845
9846	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9847	// unconditionally include in API requests. By default, fields with
9848	// empty values are omitted from API requests. However, any non-pointer,
9849	// non-interface field appearing in ForceSendFields will be sent to the
9850	// server regardless of whether the field is empty or not. This may be
9851	// used to include empty fields in Patch requests.
9852	ForceSendFields []string `json:"-"`
9853
9854	// NullFields is a list of field names (e.g. "OutputConfig") to include
9855	// in API requests with the JSON null value. By default, fields with
9856	// empty values are omitted from API requests. However, any field with
9857	// an empty value appearing in NullFields will be sent to the server as
9858	// null. It is an error if a field in this list has a non-empty value.
9859	// This may be used to include null fields in Patch requests.
9860	NullFields []string `json:"-"`
9861}
9862
9863func (s *GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse) MarshalJSON() ([]byte, error) {
9864	type NoMethod GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse
9865	raw := NoMethod(*s)
9866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9867}
9868
9869// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse: Response
9870// to an async batch file annotation request.
9871type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse struct {
9872	// Responses: The list of file annotation responses, one for each
9873	// request in
9874	// AsyncBatchAnnotateFilesRequest.
9875	Responses []*GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse `json:"responses,omitempty"`
9876
9877	// ForceSendFields is a list of field names (e.g. "Responses") to
9878	// unconditionally include in API requests. By default, fields with
9879	// empty values are omitted from API requests. However, any non-pointer,
9880	// non-interface field appearing in ForceSendFields will be sent to the
9881	// server regardless of whether the field is empty or not. This may be
9882	// used to include empty fields in Patch requests.
9883	ForceSendFields []string `json:"-"`
9884
9885	// NullFields is a list of field names (e.g. "Responses") to include in
9886	// API requests with the JSON null value. By default, fields with empty
9887	// values are omitted from API requests. However, any field with an
9888	// empty value appearing in NullFields will be sent to the server as
9889	// null. It is an error if a field in this list has a non-empty value.
9890	// This may be used to include null fields in Patch requests.
9891	NullFields []string `json:"-"`
9892}
9893
9894func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9895	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse
9896	raw := NoMethod(*s)
9897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9898}
9899
9900// GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse: Response
9901// to an async batch image annotation request.
9902type GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse struct {
9903	// OutputConfig: The output location and metadata from
9904	// AsyncBatchAnnotateImagesRequest.
9905	OutputConfig *GoogleCloudVisionV1p4beta1OutputConfig `json:"outputConfig,omitempty"`
9906
9907	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
9908	// unconditionally include in API requests. By default, fields with
9909	// empty values are omitted from API requests. However, any non-pointer,
9910	// non-interface field appearing in ForceSendFields will be sent to the
9911	// server regardless of whether the field is empty or not. This may be
9912	// used to include empty fields in Patch requests.
9913	ForceSendFields []string `json:"-"`
9914
9915	// NullFields is a list of field names (e.g. "OutputConfig") to include
9916	// in API requests with the JSON null value. By default, fields with
9917	// empty values are omitted from API requests. However, any field with
9918	// an empty value appearing in NullFields will be sent to the server as
9919	// null. It is an error if a field in this list has a non-empty value.
9920	// This may be used to include null fields in Patch requests.
9921	NullFields []string `json:"-"`
9922}
9923
9924func (s *GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse) MarshalJSON() ([]byte, error) {
9925	type NoMethod GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse
9926	raw := NoMethod(*s)
9927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9928}
9929
9930// GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse: A list of file
9931// annotation responses.
9932type GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse struct {
9933	// Responses: The list of file annotation responses, each response
9934	// corresponding to each
9935	// AnnotateFileRequest in BatchAnnotateFilesRequest.
9936	Responses []*GoogleCloudVisionV1p4beta1AnnotateFileResponse `json:"responses,omitempty"`
9937
9938	// ForceSendFields is a list of field names (e.g. "Responses") to
9939	// unconditionally include in API requests. By default, fields with
9940	// empty values are omitted from API requests. However, any non-pointer,
9941	// non-interface field appearing in ForceSendFields will be sent to the
9942	// server regardless of whether the field is empty or not. This may be
9943	// used to include empty fields in Patch requests.
9944	ForceSendFields []string `json:"-"`
9945
9946	// NullFields is a list of field names (e.g. "Responses") to include in
9947	// API requests with the JSON null value. By default, fields with empty
9948	// values are omitted from API requests. However, any field with an
9949	// empty value appearing in NullFields will be sent to the server as
9950	// null. It is an error if a field in this list has a non-empty value.
9951	// This may be used to include null fields in Patch requests.
9952	NullFields []string `json:"-"`
9953}
9954
9955func (s *GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse) MarshalJSON() ([]byte, error) {
9956	type NoMethod GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse
9957	raw := NoMethod(*s)
9958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9959}
9960
9961// GoogleCloudVisionV1p4beta1BatchOperationMetadata: Metadata for the
9962// batch operations such as the current state.
9963//
9964// This is included in the `metadata` field of the `Operation` returned
9965// by the
9966// `GetOperation` call of the `google::longrunning::Operations` service.
9967type GoogleCloudVisionV1p4beta1BatchOperationMetadata struct {
9968	// EndTime: The time when the batch request is finished
9969	// and
9970	// google.longrunning.Operation.done is set to true.
9971	EndTime string `json:"endTime,omitempty"`
9972
9973	// State: The current state of the batch operation.
9974	//
9975	// Possible values:
9976	//   "STATE_UNSPECIFIED" - Invalid.
9977	//   "PROCESSING" - Request is actively being processed.
9978	//   "SUCCESSFUL" - The request is done and at least one item has been
9979	// successfully
9980	// processed.
9981	//   "FAILED" - The request is done and no item has been successfully
9982	// processed.
9983	//   "CANCELLED" - The request is done after the
9984	// longrunning.Operations.CancelOperation has
9985	// been called by the user.  Any records that were processed before
9986	// the
9987	// cancel command are output as specified in the request.
9988	State string `json:"state,omitempty"`
9989
9990	// SubmitTime: The time when the batch request was submitted to the
9991	// server.
9992	SubmitTime string `json:"submitTime,omitempty"`
9993
9994	// ForceSendFields is a list of field names (e.g. "EndTime") to
9995	// unconditionally include in API requests. By default, fields with
9996	// empty values are omitted from API requests. However, any non-pointer,
9997	// non-interface field appearing in ForceSendFields will be sent to the
9998	// server regardless of whether the field is empty or not. This may be
9999	// used to include empty fields in Patch requests.
10000	ForceSendFields []string `json:"-"`
10001
10002	// NullFields is a list of field names (e.g. "EndTime") to include in
10003	// API requests with the JSON null value. By default, fields with empty
10004	// values are omitted from API requests. However, any field with an
10005	// empty value appearing in NullFields will be sent to the server as
10006	// null. It is an error if a field in this list has a non-empty value.
10007	// This may be used to include null fields in Patch requests.
10008	NullFields []string `json:"-"`
10009}
10010
10011func (s *GoogleCloudVisionV1p4beta1BatchOperationMetadata) MarshalJSON() ([]byte, error) {
10012	type NoMethod GoogleCloudVisionV1p4beta1BatchOperationMetadata
10013	raw := NoMethod(*s)
10014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10015}
10016
10017// GoogleCloudVisionV1p4beta1Block: Logical element on the page.
10018type GoogleCloudVisionV1p4beta1Block struct {
10019	// BlockType: Detected block type (text, image etc) for this block.
10020	//
10021	// Possible values:
10022	//   "UNKNOWN" - Unknown block type.
10023	//   "TEXT" - Regular text block.
10024	//   "TABLE" - Table block.
10025	//   "PICTURE" - Image block.
10026	//   "RULER" - Horizontal/vertical line box.
10027	//   "BARCODE" - Barcode block.
10028	BlockType string `json:"blockType,omitempty"`
10029
10030	// BoundingBox: The bounding box for the block.
10031	// The vertices are in the order of top-left, top-right,
10032	// bottom-right,
10033	// bottom-left. When a rotation of the bounding box is detected the
10034	// rotation
10035	// is represented as around the top-left corner as defined when the text
10036	// is
10037	// read in the 'natural' orientation.
10038	// For example:
10039	//
10040	// * when the text is horizontal it might look like:
10041	//
10042	//         0----1
10043	//         |    |
10044	//         3----2
10045	//
10046	// * when it's rotated 180 degrees around the top-left corner it
10047	// becomes:
10048	//
10049	//         2----3
10050	//         |    |
10051	//         1----0
10052	//
10053	//   and the vertex order will still be (0, 1, 2, 3).
10054	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
10055
10056	// Confidence: Confidence of the OCR results on the block. Range [0, 1].
10057	Confidence float64 `json:"confidence,omitempty"`
10058
10059	// Paragraphs: List of paragraphs in this block (if this blocks is of
10060	// type text).
10061	Paragraphs []*GoogleCloudVisionV1p4beta1Paragraph `json:"paragraphs,omitempty"`
10062
10063	// Property: Additional information detected for the block.
10064	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
10065
10066	// ForceSendFields is a list of field names (e.g. "BlockType") to
10067	// unconditionally include in API requests. By default, fields with
10068	// empty values are omitted from API requests. However, any non-pointer,
10069	// non-interface field appearing in ForceSendFields will be sent to the
10070	// server regardless of whether the field is empty or not. This may be
10071	// used to include empty fields in Patch requests.
10072	ForceSendFields []string `json:"-"`
10073
10074	// NullFields is a list of field names (e.g. "BlockType") to include in
10075	// API requests with the JSON null value. By default, fields with empty
10076	// values are omitted from API requests. However, any field with an
10077	// empty value appearing in NullFields will be sent to the server as
10078	// null. It is an error if a field in this list has a non-empty value.
10079	// This may be used to include null fields in Patch requests.
10080	NullFields []string `json:"-"`
10081}
10082
10083func (s *GoogleCloudVisionV1p4beta1Block) MarshalJSON() ([]byte, error) {
10084	type NoMethod GoogleCloudVisionV1p4beta1Block
10085	raw := NoMethod(*s)
10086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10087}
10088
10089func (s *GoogleCloudVisionV1p4beta1Block) UnmarshalJSON(data []byte) error {
10090	type NoMethod GoogleCloudVisionV1p4beta1Block
10091	var s1 struct {
10092		Confidence gensupport.JSONFloat64 `json:"confidence"`
10093		*NoMethod
10094	}
10095	s1.NoMethod = (*NoMethod)(s)
10096	if err := json.Unmarshal(data, &s1); err != nil {
10097		return err
10098	}
10099	s.Confidence = float64(s1.Confidence)
10100	return nil
10101}
10102
10103// GoogleCloudVisionV1p4beta1BoundingPoly: A bounding polygon for the
10104// detected image annotation.
10105type GoogleCloudVisionV1p4beta1BoundingPoly struct {
10106	// NormalizedVertices: The bounding polygon normalized vertices.
10107	NormalizedVertices []*GoogleCloudVisionV1p4beta1NormalizedVertex `json:"normalizedVertices,omitempty"`
10108
10109	// Vertices: The bounding polygon vertices.
10110	Vertices []*GoogleCloudVisionV1p4beta1Vertex `json:"vertices,omitempty"`
10111
10112	// ForceSendFields is a list of field names (e.g. "NormalizedVertices")
10113	// to unconditionally include in API requests. By default, fields with
10114	// empty values are omitted from API requests. However, any non-pointer,
10115	// non-interface field appearing in ForceSendFields will be sent to the
10116	// server regardless of whether the field is empty or not. This may be
10117	// used to include empty fields in Patch requests.
10118	ForceSendFields []string `json:"-"`
10119
10120	// NullFields is a list of field names (e.g. "NormalizedVertices") to
10121	// include in API requests with the JSON null value. By default, fields
10122	// with empty values are omitted from API requests. However, any field
10123	// with an empty value appearing in NullFields will be sent to the
10124	// server as null. It is an error if a field in this list has a
10125	// non-empty value. This may be used to include null fields in Patch
10126	// requests.
10127	NullFields []string `json:"-"`
10128}
10129
10130func (s *GoogleCloudVisionV1p4beta1BoundingPoly) MarshalJSON() ([]byte, error) {
10131	type NoMethod GoogleCloudVisionV1p4beta1BoundingPoly
10132	raw := NoMethod(*s)
10133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10134}
10135
10136// GoogleCloudVisionV1p4beta1Celebrity: A Celebrity is a group of Faces
10137// with an identity.
10138type GoogleCloudVisionV1p4beta1Celebrity struct {
10139	// Description: The Celebrity's description.
10140	Description string `json:"description,omitempty"`
10141
10142	// DisplayName: The Celebrity's display name.
10143	DisplayName string `json:"displayName,omitempty"`
10144
10145	// Name: The resource name of the preloaded Celebrity. Has the
10146	// format
10147	// `builtin/{mid}`.
10148	Name string `json:"name,omitempty"`
10149
10150	// ForceSendFields is a list of field names (e.g. "Description") to
10151	// unconditionally include in API requests. By default, fields with
10152	// empty values are omitted from API requests. However, any non-pointer,
10153	// non-interface field appearing in ForceSendFields will be sent to the
10154	// server regardless of whether the field is empty or not. This may be
10155	// used to include empty fields in Patch requests.
10156	ForceSendFields []string `json:"-"`
10157
10158	// NullFields is a list of field names (e.g. "Description") to include
10159	// in API requests with the JSON null value. By default, fields with
10160	// empty values are omitted from API requests. However, any field with
10161	// an empty value appearing in NullFields will be sent to the server as
10162	// null. It is an error if a field in this list has a non-empty value.
10163	// This may be used to include null fields in Patch requests.
10164	NullFields []string `json:"-"`
10165}
10166
10167func (s *GoogleCloudVisionV1p4beta1Celebrity) MarshalJSON() ([]byte, error) {
10168	type NoMethod GoogleCloudVisionV1p4beta1Celebrity
10169	raw := NoMethod(*s)
10170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10171}
10172
10173// GoogleCloudVisionV1p4beta1ColorInfo: Color information consists of
10174// RGB channels, score, and the fraction of
10175// the image that the color occupies in the image.
10176type GoogleCloudVisionV1p4beta1ColorInfo struct {
10177	// Color: RGB components of the color.
10178	Color *Color `json:"color,omitempty"`
10179
10180	// PixelFraction: The fraction of pixels the color occupies in the
10181	// image.
10182	// Value in range [0, 1].
10183	PixelFraction float64 `json:"pixelFraction,omitempty"`
10184
10185	// Score: Image-specific score for this color. Value in range [0, 1].
10186	Score float64 `json:"score,omitempty"`
10187
10188	// ForceSendFields is a list of field names (e.g. "Color") to
10189	// unconditionally include in API requests. By default, fields with
10190	// empty values are omitted from API requests. However, any non-pointer,
10191	// non-interface field appearing in ForceSendFields will be sent to the
10192	// server regardless of whether the field is empty or not. This may be
10193	// used to include empty fields in Patch requests.
10194	ForceSendFields []string `json:"-"`
10195
10196	// NullFields is a list of field names (e.g. "Color") to include in API
10197	// requests with the JSON null value. By default, fields with empty
10198	// values are omitted from API requests. However, any field with an
10199	// empty value appearing in NullFields will be sent to the server as
10200	// null. It is an error if a field in this list has a non-empty value.
10201	// This may be used to include null fields in Patch requests.
10202	NullFields []string `json:"-"`
10203}
10204
10205func (s *GoogleCloudVisionV1p4beta1ColorInfo) MarshalJSON() ([]byte, error) {
10206	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10207	raw := NoMethod(*s)
10208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10209}
10210
10211func (s *GoogleCloudVisionV1p4beta1ColorInfo) UnmarshalJSON(data []byte) error {
10212	type NoMethod GoogleCloudVisionV1p4beta1ColorInfo
10213	var s1 struct {
10214		PixelFraction gensupport.JSONFloat64 `json:"pixelFraction"`
10215		Score         gensupport.JSONFloat64 `json:"score"`
10216		*NoMethod
10217	}
10218	s1.NoMethod = (*NoMethod)(s)
10219	if err := json.Unmarshal(data, &s1); err != nil {
10220		return err
10221	}
10222	s.PixelFraction = float64(s1.PixelFraction)
10223	s.Score = float64(s1.Score)
10224	return nil
10225}
10226
10227// GoogleCloudVisionV1p4beta1CropHint: Single crop hint that is used to
10228// generate a new crop when serving an image.
10229type GoogleCloudVisionV1p4beta1CropHint struct {
10230	// BoundingPoly: The bounding polygon for the crop region. The
10231	// coordinates of the bounding
10232	// box are in the original image's scale.
10233	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10234
10235	// Confidence: Confidence of this being a salient region.  Range [0, 1].
10236	Confidence float64 `json:"confidence,omitempty"`
10237
10238	// ImportanceFraction: Fraction of importance of this salient region
10239	// with respect to the original
10240	// image.
10241	ImportanceFraction float64 `json:"importanceFraction,omitempty"`
10242
10243	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10244	// unconditionally include in API requests. By default, fields with
10245	// empty values are omitted from API requests. However, any non-pointer,
10246	// non-interface field appearing in ForceSendFields will be sent to the
10247	// server regardless of whether the field is empty or not. This may be
10248	// used to include empty fields in Patch requests.
10249	ForceSendFields []string `json:"-"`
10250
10251	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10252	// in API requests with the JSON null value. By default, fields with
10253	// empty values are omitted from API requests. However, any field with
10254	// an empty value appearing in NullFields will be sent to the server as
10255	// null. It is an error if a field in this list has a non-empty value.
10256	// This may be used to include null fields in Patch requests.
10257	NullFields []string `json:"-"`
10258}
10259
10260func (s *GoogleCloudVisionV1p4beta1CropHint) MarshalJSON() ([]byte, error) {
10261	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10262	raw := NoMethod(*s)
10263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10264}
10265
10266func (s *GoogleCloudVisionV1p4beta1CropHint) UnmarshalJSON(data []byte) error {
10267	type NoMethod GoogleCloudVisionV1p4beta1CropHint
10268	var s1 struct {
10269		Confidence         gensupport.JSONFloat64 `json:"confidence"`
10270		ImportanceFraction gensupport.JSONFloat64 `json:"importanceFraction"`
10271		*NoMethod
10272	}
10273	s1.NoMethod = (*NoMethod)(s)
10274	if err := json.Unmarshal(data, &s1); err != nil {
10275		return err
10276	}
10277	s.Confidence = float64(s1.Confidence)
10278	s.ImportanceFraction = float64(s1.ImportanceFraction)
10279	return nil
10280}
10281
10282// GoogleCloudVisionV1p4beta1CropHintsAnnotation: Set of crop hints that
10283// are used to generate new crops when serving images.
10284type GoogleCloudVisionV1p4beta1CropHintsAnnotation struct {
10285	// CropHints: Crop hint results.
10286	CropHints []*GoogleCloudVisionV1p4beta1CropHint `json:"cropHints,omitempty"`
10287
10288	// ForceSendFields is a list of field names (e.g. "CropHints") to
10289	// unconditionally include in API requests. By default, fields with
10290	// empty values are omitted from API requests. However, any non-pointer,
10291	// non-interface field appearing in ForceSendFields will be sent to the
10292	// server regardless of whether the field is empty or not. This may be
10293	// used to include empty fields in Patch requests.
10294	ForceSendFields []string `json:"-"`
10295
10296	// NullFields is a list of field names (e.g. "CropHints") to include in
10297	// API requests with the JSON null value. By default, fields with empty
10298	// values are omitted from API requests. However, any field with an
10299	// empty value appearing in NullFields will be sent to the server as
10300	// null. It is an error if a field in this list has a non-empty value.
10301	// This may be used to include null fields in Patch requests.
10302	NullFields []string `json:"-"`
10303}
10304
10305func (s *GoogleCloudVisionV1p4beta1CropHintsAnnotation) MarshalJSON() ([]byte, error) {
10306	type NoMethod GoogleCloudVisionV1p4beta1CropHintsAnnotation
10307	raw := NoMethod(*s)
10308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10309}
10310
10311// GoogleCloudVisionV1p4beta1DominantColorsAnnotation: Set of dominant
10312// colors and their corresponding scores.
10313type GoogleCloudVisionV1p4beta1DominantColorsAnnotation struct {
10314	// Colors: RGB color values with their score and pixel fraction.
10315	Colors []*GoogleCloudVisionV1p4beta1ColorInfo `json:"colors,omitempty"`
10316
10317	// ForceSendFields is a list of field names (e.g. "Colors") to
10318	// unconditionally include in API requests. By default, fields with
10319	// empty values are omitted from API requests. However, any non-pointer,
10320	// non-interface field appearing in ForceSendFields will be sent to the
10321	// server regardless of whether the field is empty or not. This may be
10322	// used to include empty fields in Patch requests.
10323	ForceSendFields []string `json:"-"`
10324
10325	// NullFields is a list of field names (e.g. "Colors") to include in API
10326	// requests with the JSON null value. By default, fields with empty
10327	// values are omitted from API requests. However, any field with an
10328	// empty value appearing in NullFields will be sent to the server as
10329	// null. It is an error if a field in this list has a non-empty value.
10330	// This may be used to include null fields in Patch requests.
10331	NullFields []string `json:"-"`
10332}
10333
10334func (s *GoogleCloudVisionV1p4beta1DominantColorsAnnotation) MarshalJSON() ([]byte, error) {
10335	type NoMethod GoogleCloudVisionV1p4beta1DominantColorsAnnotation
10336	raw := NoMethod(*s)
10337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10338}
10339
10340// GoogleCloudVisionV1p4beta1EntityAnnotation: Set of detected entity
10341// features.
10342type GoogleCloudVisionV1p4beta1EntityAnnotation struct {
10343	// BoundingPoly: Image region to which this entity belongs. Not
10344	// produced
10345	// for `LABEL_DETECTION` features.
10346	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10347
10348	// Confidence: **Deprecated. Use `score` instead.**
10349	// The accuracy of the entity detection in an image.
10350	// For example, for an image in which the "Eiffel Tower" entity is
10351	// detected,
10352	// this field represents the confidence that there is a tower in the
10353	// query
10354	// image. Range [0, 1].
10355	Confidence float64 `json:"confidence,omitempty"`
10356
10357	// Description: Entity textual description, expressed in its `locale`
10358	// language.
10359	Description string `json:"description,omitempty"`
10360
10361	// Locale: The language code for the locale in which the entity
10362	// textual
10363	// `description` is expressed.
10364	Locale string `json:"locale,omitempty"`
10365
10366	// Locations: The location information for the detected entity.
10367	// Multiple
10368	// `LocationInfo` elements can be present because one location
10369	// may
10370	// indicate the location of the scene in the image, and another
10371	// location
10372	// may indicate the location of the place where the image was
10373	// taken.
10374	// Location information is usually present for landmarks.
10375	Locations []*GoogleCloudVisionV1p4beta1LocationInfo `json:"locations,omitempty"`
10376
10377	// Mid: Opaque entity ID. Some IDs may be available in
10378	// [Google Knowledge Graph
10379	// Search
10380	// API](https://developers.google.com/knowledge-graph/).
10381	Mid string `json:"mid,omitempty"`
10382
10383	// Properties: Some entities may have optional user-supplied `Property`
10384	// (name/value)
10385	// fields, such a score or string that qualifies the entity.
10386	Properties []*GoogleCloudVisionV1p4beta1Property `json:"properties,omitempty"`
10387
10388	// Score: Overall score of the result. Range [0, 1].
10389	Score float64 `json:"score,omitempty"`
10390
10391	// Topicality: The relevancy of the ICA (Image Content Annotation) label
10392	// to the
10393	// image. For example, the relevancy of "tower" is likely higher to an
10394	// image
10395	// containing the detected "Eiffel Tower" than to an image containing
10396	// a
10397	// detected distant towering building, even though the confidence
10398	// that
10399	// there is a tower in each image may be the same. Range [0, 1].
10400	Topicality float64 `json:"topicality,omitempty"`
10401
10402	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
10403	// unconditionally include in API requests. By default, fields with
10404	// empty values are omitted from API requests. However, any non-pointer,
10405	// non-interface field appearing in ForceSendFields will be sent to the
10406	// server regardless of whether the field is empty or not. This may be
10407	// used to include empty fields in Patch requests.
10408	ForceSendFields []string `json:"-"`
10409
10410	// NullFields is a list of field names (e.g. "BoundingPoly") to include
10411	// in API requests with the JSON null value. By default, fields with
10412	// empty values are omitted from API requests. However, any field with
10413	// an empty value appearing in NullFields will be sent to the server as
10414	// null. It is an error if a field in this list has a non-empty value.
10415	// This may be used to include null fields in Patch requests.
10416	NullFields []string `json:"-"`
10417}
10418
10419func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) MarshalJSON() ([]byte, error) {
10420	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10421	raw := NoMethod(*s)
10422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10423}
10424
10425func (s *GoogleCloudVisionV1p4beta1EntityAnnotation) UnmarshalJSON(data []byte) error {
10426	type NoMethod GoogleCloudVisionV1p4beta1EntityAnnotation
10427	var s1 struct {
10428		Confidence gensupport.JSONFloat64 `json:"confidence"`
10429		Score      gensupport.JSONFloat64 `json:"score"`
10430		Topicality gensupport.JSONFloat64 `json:"topicality"`
10431		*NoMethod
10432	}
10433	s1.NoMethod = (*NoMethod)(s)
10434	if err := json.Unmarshal(data, &s1); err != nil {
10435		return err
10436	}
10437	s.Confidence = float64(s1.Confidence)
10438	s.Score = float64(s1.Score)
10439	s.Topicality = float64(s1.Topicality)
10440	return nil
10441}
10442
10443// GoogleCloudVisionV1p4beta1FaceAnnotation: A face annotation object
10444// contains the results of face detection.
10445type GoogleCloudVisionV1p4beta1FaceAnnotation struct {
10446	// AngerLikelihood: Anger likelihood.
10447	//
10448	// Possible values:
10449	//   "UNKNOWN" - Unknown likelihood.
10450	//   "VERY_UNLIKELY" - It is very unlikely.
10451	//   "UNLIKELY" - It is unlikely.
10452	//   "POSSIBLE" - It is possible.
10453	//   "LIKELY" - It is likely.
10454	//   "VERY_LIKELY" - It is very likely.
10455	AngerLikelihood string `json:"angerLikelihood,omitempty"`
10456
10457	// BlurredLikelihood: Blurred likelihood.
10458	//
10459	// Possible values:
10460	//   "UNKNOWN" - Unknown likelihood.
10461	//   "VERY_UNLIKELY" - It is very unlikely.
10462	//   "UNLIKELY" - It is unlikely.
10463	//   "POSSIBLE" - It is possible.
10464	//   "LIKELY" - It is likely.
10465	//   "VERY_LIKELY" - It is very likely.
10466	BlurredLikelihood string `json:"blurredLikelihood,omitempty"`
10467
10468	// BoundingPoly: The bounding polygon around the face. The coordinates
10469	// of the bounding box
10470	// are in the original image's scale.
10471	// The bounding box is computed to "frame" the face in accordance with
10472	// human
10473	// expectations. It is based on the landmarker results.
10474	// Note that one or more x and/or y coordinates may not be generated in
10475	// the
10476	// `BoundingPoly` (the polygon will be unbounded) if only a partial
10477	// face
10478	// appears in the image to be annotated.
10479	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
10480
10481	// DetectionConfidence: Detection confidence. Range [0, 1].
10482	DetectionConfidence float64 `json:"detectionConfidence,omitempty"`
10483
10484	// FdBoundingPoly: The `fd_bounding_poly` bounding polygon is tighter
10485	// than the
10486	// `boundingPoly`, and encloses only the skin part of the face.
10487	// Typically, it
10488	// is used to eliminate the face from any image analysis that detects
10489	// the
10490	// "amount of skin" visible in an image. It is not based on
10491	// the
10492	// landmarker results, only on the initial face detection, hence
10493	// the <code>fd</code> (face detection) prefix.
10494	FdBoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"fdBoundingPoly,omitempty"`
10495
10496	// HeadwearLikelihood: Headwear likelihood.
10497	//
10498	// Possible values:
10499	//   "UNKNOWN" - Unknown likelihood.
10500	//   "VERY_UNLIKELY" - It is very unlikely.
10501	//   "UNLIKELY" - It is unlikely.
10502	//   "POSSIBLE" - It is possible.
10503	//   "LIKELY" - It is likely.
10504	//   "VERY_LIKELY" - It is very likely.
10505	HeadwearLikelihood string `json:"headwearLikelihood,omitempty"`
10506
10507	// JoyLikelihood: Joy likelihood.
10508	//
10509	// Possible values:
10510	//   "UNKNOWN" - Unknown likelihood.
10511	//   "VERY_UNLIKELY" - It is very unlikely.
10512	//   "UNLIKELY" - It is unlikely.
10513	//   "POSSIBLE" - It is possible.
10514	//   "LIKELY" - It is likely.
10515	//   "VERY_LIKELY" - It is very likely.
10516	JoyLikelihood string `json:"joyLikelihood,omitempty"`
10517
10518	// LandmarkingConfidence: Face landmarking confidence. Range [0, 1].
10519	LandmarkingConfidence float64 `json:"landmarkingConfidence,omitempty"`
10520
10521	// Landmarks: Detected face landmarks.
10522	Landmarks []*GoogleCloudVisionV1p4beta1FaceAnnotationLandmark `json:"landmarks,omitempty"`
10523
10524	// PanAngle: Yaw angle, which indicates the leftward/rightward angle
10525	// that the face is
10526	// pointing relative to the vertical plane perpendicular to the image.
10527	// Range
10528	// [-180,180].
10529	PanAngle float64 `json:"panAngle,omitempty"`
10530
10531	// RecognitionResult: Additional recognition information. Only computed
10532	// if
10533	// image_context.face_recognition_params is provided, **and** a match is
10534	// found
10535	// to a Celebrity in the input CelebritySet. This field is
10536	// sorted in order of decreasing confidence values.
10537	RecognitionResult []*GoogleCloudVisionV1p4beta1FaceRecognitionResult `json:"recognitionResult,omitempty"`
10538
10539	// RollAngle: Roll angle, which indicates the amount of
10540	// clockwise/anti-clockwise rotation
10541	// of the face relative to the image vertical about the axis
10542	// perpendicular to
10543	// the face. Range [-180,180].
10544	RollAngle float64 `json:"rollAngle,omitempty"`
10545
10546	// SorrowLikelihood: Sorrow likelihood.
10547	//
10548	// Possible values:
10549	//   "UNKNOWN" - Unknown likelihood.
10550	//   "VERY_UNLIKELY" - It is very unlikely.
10551	//   "UNLIKELY" - It is unlikely.
10552	//   "POSSIBLE" - It is possible.
10553	//   "LIKELY" - It is likely.
10554	//   "VERY_LIKELY" - It is very likely.
10555	SorrowLikelihood string `json:"sorrowLikelihood,omitempty"`
10556
10557	// SurpriseLikelihood: Surprise likelihood.
10558	//
10559	// Possible values:
10560	//   "UNKNOWN" - Unknown likelihood.
10561	//   "VERY_UNLIKELY" - It is very unlikely.
10562	//   "UNLIKELY" - It is unlikely.
10563	//   "POSSIBLE" - It is possible.
10564	//   "LIKELY" - It is likely.
10565	//   "VERY_LIKELY" - It is very likely.
10566	SurpriseLikelihood string `json:"surpriseLikelihood,omitempty"`
10567
10568	// TiltAngle: Pitch angle, which indicates the upwards/downwards angle
10569	// that the face is
10570	// pointing relative to the image's horizontal plane. Range [-180,180].
10571	TiltAngle float64 `json:"tiltAngle,omitempty"`
10572
10573	// UnderExposedLikelihood: Under-exposed likelihood.
10574	//
10575	// Possible values:
10576	//   "UNKNOWN" - Unknown likelihood.
10577	//   "VERY_UNLIKELY" - It is very unlikely.
10578	//   "UNLIKELY" - It is unlikely.
10579	//   "POSSIBLE" - It is possible.
10580	//   "LIKELY" - It is likely.
10581	//   "VERY_LIKELY" - It is very likely.
10582	UnderExposedLikelihood string `json:"underExposedLikelihood,omitempty"`
10583
10584	// ForceSendFields is a list of field names (e.g. "AngerLikelihood") to
10585	// unconditionally include in API requests. By default, fields with
10586	// empty values are omitted from API requests. However, any non-pointer,
10587	// non-interface field appearing in ForceSendFields will be sent to the
10588	// server regardless of whether the field is empty or not. This may be
10589	// used to include empty fields in Patch requests.
10590	ForceSendFields []string `json:"-"`
10591
10592	// NullFields is a list of field names (e.g. "AngerLikelihood") to
10593	// include in API requests with the JSON null value. By default, fields
10594	// with empty values are omitted from API requests. However, any field
10595	// with an empty value appearing in NullFields will be sent to the
10596	// server as null. It is an error if a field in this list has a
10597	// non-empty value. This may be used to include null fields in Patch
10598	// requests.
10599	NullFields []string `json:"-"`
10600}
10601
10602func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) MarshalJSON() ([]byte, error) {
10603	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10604	raw := NoMethod(*s)
10605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10606}
10607
10608func (s *GoogleCloudVisionV1p4beta1FaceAnnotation) UnmarshalJSON(data []byte) error {
10609	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotation
10610	var s1 struct {
10611		DetectionConfidence   gensupport.JSONFloat64 `json:"detectionConfidence"`
10612		LandmarkingConfidence gensupport.JSONFloat64 `json:"landmarkingConfidence"`
10613		PanAngle              gensupport.JSONFloat64 `json:"panAngle"`
10614		RollAngle             gensupport.JSONFloat64 `json:"rollAngle"`
10615		TiltAngle             gensupport.JSONFloat64 `json:"tiltAngle"`
10616		*NoMethod
10617	}
10618	s1.NoMethod = (*NoMethod)(s)
10619	if err := json.Unmarshal(data, &s1); err != nil {
10620		return err
10621	}
10622	s.DetectionConfidence = float64(s1.DetectionConfidence)
10623	s.LandmarkingConfidence = float64(s1.LandmarkingConfidence)
10624	s.PanAngle = float64(s1.PanAngle)
10625	s.RollAngle = float64(s1.RollAngle)
10626	s.TiltAngle = float64(s1.TiltAngle)
10627	return nil
10628}
10629
10630// GoogleCloudVisionV1p4beta1FaceAnnotationLandmark: A face-specific
10631// landmark (for example, a face feature).
10632type GoogleCloudVisionV1p4beta1FaceAnnotationLandmark struct {
10633	// Position: Face landmark position.
10634	Position *GoogleCloudVisionV1p4beta1Position `json:"position,omitempty"`
10635
10636	// Type: Face landmark type.
10637	//
10638	// Possible values:
10639	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
10640	// filled.
10641	//   "LEFT_EYE" - Left eye.
10642	//   "RIGHT_EYE" - Right eye.
10643	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
10644	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
10645	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
10646	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
10647	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
10648	//   "NOSE_TIP" - Nose tip.
10649	//   "UPPER_LIP" - Upper lip.
10650	//   "LOWER_LIP" - Lower lip.
10651	//   "MOUTH_LEFT" - Mouth left.
10652	//   "MOUTH_RIGHT" - Mouth right.
10653	//   "MOUTH_CENTER" - Mouth center.
10654	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
10655	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
10656	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
10657	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
10658	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
10659	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
10660	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
10661	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
10662	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
10663	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
10664	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
10665	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
10666	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
10667	//   "LEFT_EAR_TRAGION" - Left ear tragion.
10668	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
10669	//   "LEFT_EYE_PUPIL" - Left eye pupil.
10670	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
10671	//   "FOREHEAD_GLABELLA" - Forehead glabella.
10672	//   "CHIN_GNATHION" - Chin gnathion.
10673	//   "CHIN_LEFT_GONION" - Chin left gonion.
10674	//   "CHIN_RIGHT_GONION" - Chin right gonion.
10675	Type string `json:"type,omitempty"`
10676
10677	// ForceSendFields is a list of field names (e.g. "Position") to
10678	// unconditionally include in API requests. By default, fields with
10679	// empty values are omitted from API requests. However, any non-pointer,
10680	// non-interface field appearing in ForceSendFields will be sent to the
10681	// server regardless of whether the field is empty or not. This may be
10682	// used to include empty fields in Patch requests.
10683	ForceSendFields []string `json:"-"`
10684
10685	// NullFields is a list of field names (e.g. "Position") to include in
10686	// API requests with the JSON null value. By default, fields with empty
10687	// values are omitted from API requests. However, any field with an
10688	// empty value appearing in NullFields will be sent to the server as
10689	// null. It is an error if a field in this list has a non-empty value.
10690	// This may be used to include null fields in Patch requests.
10691	NullFields []string `json:"-"`
10692}
10693
10694func (s *GoogleCloudVisionV1p4beta1FaceAnnotationLandmark) MarshalJSON() ([]byte, error) {
10695	type NoMethod GoogleCloudVisionV1p4beta1FaceAnnotationLandmark
10696	raw := NoMethod(*s)
10697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10698}
10699
10700// GoogleCloudVisionV1p4beta1FaceRecognitionResult: Information about a
10701// face's identity.
10702type GoogleCloudVisionV1p4beta1FaceRecognitionResult struct {
10703	// Celebrity: The Celebrity that this face was matched to.
10704	Celebrity *GoogleCloudVisionV1p4beta1Celebrity `json:"celebrity,omitempty"`
10705
10706	// Confidence: Recognition confidence. Range [0, 1].
10707	Confidence float64 `json:"confidence,omitempty"`
10708
10709	// ForceSendFields is a list of field names (e.g. "Celebrity") to
10710	// unconditionally include in API requests. By default, fields with
10711	// empty values are omitted from API requests. However, any non-pointer,
10712	// non-interface field appearing in ForceSendFields will be sent to the
10713	// server regardless of whether the field is empty or not. This may be
10714	// used to include empty fields in Patch requests.
10715	ForceSendFields []string `json:"-"`
10716
10717	// NullFields is a list of field names (e.g. "Celebrity") to include in
10718	// API requests with the JSON null value. By default, fields with empty
10719	// values are omitted from API requests. However, any field with an
10720	// empty value appearing in NullFields will be sent to the server as
10721	// null. It is an error if a field in this list has a non-empty value.
10722	// This may be used to include null fields in Patch requests.
10723	NullFields []string `json:"-"`
10724}
10725
10726func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) MarshalJSON() ([]byte, error) {
10727	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10728	raw := NoMethod(*s)
10729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10730}
10731
10732func (s *GoogleCloudVisionV1p4beta1FaceRecognitionResult) UnmarshalJSON(data []byte) error {
10733	type NoMethod GoogleCloudVisionV1p4beta1FaceRecognitionResult
10734	var s1 struct {
10735		Confidence gensupport.JSONFloat64 `json:"confidence"`
10736		*NoMethod
10737	}
10738	s1.NoMethod = (*NoMethod)(s)
10739	if err := json.Unmarshal(data, &s1); err != nil {
10740		return err
10741	}
10742	s.Confidence = float64(s1.Confidence)
10743	return nil
10744}
10745
10746// GoogleCloudVisionV1p4beta1GcsDestination: The Google Cloud Storage
10747// location where the output will be written to.
10748type GoogleCloudVisionV1p4beta1GcsDestination struct {
10749	// Uri: Google Cloud Storage URI prefix where the results will be
10750	// stored. Results
10751	// will be in JSON format and preceded by its corresponding input URI
10752	// prefix.
10753	// This field can either represent a gcs file prefix or gcs directory.
10754	// In
10755	// either case, the uri should be unique because in order to get all of
10756	// the
10757	// output files, you will need to do a wildcard gcs search on the uri
10758	// prefix
10759	// you provide.
10760	//
10761	// Examples:
10762	//
10763	// *    File Prefix: gs://bucket-name/here/filenameprefix   The output
10764	// files
10765	// will be created in gs://bucket-name/here/ and the names of the
10766	// output files will begin with "filenameprefix".
10767	//
10768	// *    Directory Prefix: gs://bucket-name/some/location/   The output
10769	// files
10770	// will be created in gs://bucket-name/some/location/ and the names of
10771	// the
10772	// output files could be anything because there was no filename
10773	// prefix
10774	// specified.
10775	//
10776	// If multiple outputs, each response is still AnnotateFileResponse,
10777	// each of
10778	// which contains some subset of the full list of
10779	// AnnotateImageResponse.
10780	// Multiple outputs can happen if, for example, the output JSON is too
10781	// large
10782	// and overflows into multiple sharded files.
10783	Uri string `json:"uri,omitempty"`
10784
10785	// ForceSendFields is a list of field names (e.g. "Uri") to
10786	// unconditionally include in API requests. By default, fields with
10787	// empty values are omitted from API requests. However, any non-pointer,
10788	// non-interface field appearing in ForceSendFields will be sent to the
10789	// server regardless of whether the field is empty or not. This may be
10790	// used to include empty fields in Patch requests.
10791	ForceSendFields []string `json:"-"`
10792
10793	// NullFields is a list of field names (e.g. "Uri") to include in API
10794	// requests with the JSON null value. By default, fields with empty
10795	// values are omitted from API requests. However, any field with an
10796	// empty value appearing in NullFields will be sent to the server as
10797	// null. It is an error if a field in this list has a non-empty value.
10798	// This may be used to include null fields in Patch requests.
10799	NullFields []string `json:"-"`
10800}
10801
10802func (s *GoogleCloudVisionV1p4beta1GcsDestination) MarshalJSON() ([]byte, error) {
10803	type NoMethod GoogleCloudVisionV1p4beta1GcsDestination
10804	raw := NoMethod(*s)
10805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10806}
10807
10808// GoogleCloudVisionV1p4beta1GcsSource: The Google Cloud Storage
10809// location where the input will be read from.
10810type GoogleCloudVisionV1p4beta1GcsSource struct {
10811	// Uri: Google Cloud Storage URI for the input file. This must only be
10812	// a
10813	// Google Cloud Storage object. Wildcards are not currently supported.
10814	Uri string `json:"uri,omitempty"`
10815
10816	// ForceSendFields is a list of field names (e.g. "Uri") to
10817	// unconditionally include in API requests. By default, fields with
10818	// empty values are omitted from API requests. However, any non-pointer,
10819	// non-interface field appearing in ForceSendFields will be sent to the
10820	// server regardless of whether the field is empty or not. This may be
10821	// used to include empty fields in Patch requests.
10822	ForceSendFields []string `json:"-"`
10823
10824	// NullFields is a list of field names (e.g. "Uri") to include in API
10825	// requests with the JSON null value. By default, fields with empty
10826	// values are omitted from API requests. However, any field with an
10827	// empty value appearing in NullFields will be sent to the server as
10828	// null. It is an error if a field in this list has a non-empty value.
10829	// This may be used to include null fields in Patch requests.
10830	NullFields []string `json:"-"`
10831}
10832
10833func (s *GoogleCloudVisionV1p4beta1GcsSource) MarshalJSON() ([]byte, error) {
10834	type NoMethod GoogleCloudVisionV1p4beta1GcsSource
10835	raw := NoMethod(*s)
10836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10837}
10838
10839// GoogleCloudVisionV1p4beta1ImageAnnotationContext: If an image was
10840// produced from a file (e.g. a PDF), this message gives
10841// information about the source of that image.
10842type GoogleCloudVisionV1p4beta1ImageAnnotationContext struct {
10843	// PageNumber: If the file was a PDF or TIFF, this field gives the page
10844	// number within
10845	// the file used to produce the image.
10846	PageNumber int64 `json:"pageNumber,omitempty"`
10847
10848	// Uri: The URI of the file used to produce the image.
10849	Uri string `json:"uri,omitempty"`
10850
10851	// ForceSendFields is a list of field names (e.g. "PageNumber") to
10852	// unconditionally include in API requests. By default, fields with
10853	// empty values are omitted from API requests. However, any non-pointer,
10854	// non-interface field appearing in ForceSendFields will be sent to the
10855	// server regardless of whether the field is empty or not. This may be
10856	// used to include empty fields in Patch requests.
10857	ForceSendFields []string `json:"-"`
10858
10859	// NullFields is a list of field names (e.g. "PageNumber") to include in
10860	// API requests with the JSON null value. By default, fields with empty
10861	// values are omitted from API requests. However, any field with an
10862	// empty value appearing in NullFields will be sent to the server as
10863	// null. It is an error if a field in this list has a non-empty value.
10864	// This may be used to include null fields in Patch requests.
10865	NullFields []string `json:"-"`
10866}
10867
10868func (s *GoogleCloudVisionV1p4beta1ImageAnnotationContext) MarshalJSON() ([]byte, error) {
10869	type NoMethod GoogleCloudVisionV1p4beta1ImageAnnotationContext
10870	raw := NoMethod(*s)
10871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10872}
10873
10874// GoogleCloudVisionV1p4beta1ImageProperties: Stores image properties,
10875// such as dominant colors.
10876type GoogleCloudVisionV1p4beta1ImageProperties struct {
10877	// DominantColors: If present, dominant colors completed successfully.
10878	DominantColors *GoogleCloudVisionV1p4beta1DominantColorsAnnotation `json:"dominantColors,omitempty"`
10879
10880	// ForceSendFields is a list of field names (e.g. "DominantColors") to
10881	// unconditionally include in API requests. By default, fields with
10882	// empty values are omitted from API requests. However, any non-pointer,
10883	// non-interface field appearing in ForceSendFields will be sent to the
10884	// server regardless of whether the field is empty or not. This may be
10885	// used to include empty fields in Patch requests.
10886	ForceSendFields []string `json:"-"`
10887
10888	// NullFields is a list of field names (e.g. "DominantColors") to
10889	// include in API requests with the JSON null value. By default, fields
10890	// with empty values are omitted from API requests. However, any field
10891	// with an empty value appearing in NullFields will be sent to the
10892	// server as null. It is an error if a field in this list has a
10893	// non-empty value. This may be used to include null fields in Patch
10894	// requests.
10895	NullFields []string `json:"-"`
10896}
10897
10898func (s *GoogleCloudVisionV1p4beta1ImageProperties) MarshalJSON() ([]byte, error) {
10899	type NoMethod GoogleCloudVisionV1p4beta1ImageProperties
10900	raw := NoMethod(*s)
10901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10902}
10903
10904// GoogleCloudVisionV1p4beta1ImportProductSetsResponse: Response message
10905// for the `ImportProductSets` method.
10906//
10907// This message is returned by
10908// the
10909// google.longrunning.Operations.GetOperation method in the
10910// returned
10911// google.longrunning.Operation.response field.
10912type GoogleCloudVisionV1p4beta1ImportProductSetsResponse struct {
10913	// ReferenceImages: The list of reference_images that are imported
10914	// successfully.
10915	ReferenceImages []*GoogleCloudVisionV1p4beta1ReferenceImage `json:"referenceImages,omitempty"`
10916
10917	// Statuses: The rpc status for each ImportProductSet request, including
10918	// both successes
10919	// and errors.
10920	//
10921	// The number of statuses here matches the number of lines in the csv
10922	// file,
10923	// and statuses[i] stores the success or failure status of processing
10924	// the i-th
10925	// line of the csv, starting from line 0.
10926	Statuses []*Status `json:"statuses,omitempty"`
10927
10928	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
10929	// unconditionally include in API requests. By default, fields with
10930	// empty values are omitted from API requests. However, any non-pointer,
10931	// non-interface field appearing in ForceSendFields will be sent to the
10932	// server regardless of whether the field is empty or not. This may be
10933	// used to include empty fields in Patch requests.
10934	ForceSendFields []string `json:"-"`
10935
10936	// NullFields is a list of field names (e.g. "ReferenceImages") to
10937	// include in API requests with the JSON null value. By default, fields
10938	// with empty values are omitted from API requests. However, any field
10939	// with an empty value appearing in NullFields will be sent to the
10940	// server as null. It is an error if a field in this list has a
10941	// non-empty value. This may be used to include null fields in Patch
10942	// requests.
10943	NullFields []string `json:"-"`
10944}
10945
10946func (s *GoogleCloudVisionV1p4beta1ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
10947	type NoMethod GoogleCloudVisionV1p4beta1ImportProductSetsResponse
10948	raw := NoMethod(*s)
10949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10950}
10951
10952// GoogleCloudVisionV1p4beta1InputConfig: The desired input location and
10953// metadata.
10954type GoogleCloudVisionV1p4beta1InputConfig struct {
10955	// Content: File content, represented as a stream of bytes.
10956	// Note: As with all `bytes` fields, protobuffers use a pure
10957	// binary
10958	// representation, whereas JSON representations use base64.
10959	//
10960	// Currently, this field only works for BatchAnnotateFiles requests. It
10961	// does
10962	// not work for AsyncBatchAnnotateFiles requests.
10963	Content string `json:"content,omitempty"`
10964
10965	// GcsSource: The Google Cloud Storage location to read the input from.
10966	GcsSource *GoogleCloudVisionV1p4beta1GcsSource `json:"gcsSource,omitempty"`
10967
10968	// MimeType: The type of the file. Currently only "application/pdf",
10969	// "image/tiff" and
10970	// "image/gif" are supported. Wildcards are not supported.
10971	MimeType string `json:"mimeType,omitempty"`
10972
10973	// ForceSendFields is a list of field names (e.g. "Content") to
10974	// unconditionally include in API requests. By default, fields with
10975	// empty values are omitted from API requests. However, any non-pointer,
10976	// non-interface field appearing in ForceSendFields will be sent to the
10977	// server regardless of whether the field is empty or not. This may be
10978	// used to include empty fields in Patch requests.
10979	ForceSendFields []string `json:"-"`
10980
10981	// NullFields is a list of field names (e.g. "Content") to include in
10982	// API requests with the JSON null value. By default, fields with empty
10983	// values are omitted from API requests. However, any field with an
10984	// empty value appearing in NullFields will be sent to the server as
10985	// null. It is an error if a field in this list has a non-empty value.
10986	// This may be used to include null fields in Patch requests.
10987	NullFields []string `json:"-"`
10988}
10989
10990func (s *GoogleCloudVisionV1p4beta1InputConfig) MarshalJSON() ([]byte, error) {
10991	type NoMethod GoogleCloudVisionV1p4beta1InputConfig
10992	raw := NoMethod(*s)
10993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10994}
10995
10996// GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation: Set of detected
10997// objects with bounding boxes.
10998type GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation struct {
10999	// BoundingPoly: Image region to which this object belongs. This must be
11000	// populated.
11001	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
11002
11003	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11004	// For more
11005	// information,
11006	// see
11007	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11008	LanguageCode string `json:"languageCode,omitempty"`
11009
11010	// Mid: Object ID that should align with EntityAnnotation mid.
11011	Mid string `json:"mid,omitempty"`
11012
11013	// Name: Object name, expressed in its `language_code` language.
11014	Name string `json:"name,omitempty"`
11015
11016	// Score: Score of the result. Range [0, 1].
11017	Score float64 `json:"score,omitempty"`
11018
11019	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11020	// unconditionally include in API requests. By default, fields with
11021	// empty values are omitted from API requests. However, any non-pointer,
11022	// non-interface field appearing in ForceSendFields will be sent to the
11023	// server regardless of whether the field is empty or not. This may be
11024	// used to include empty fields in Patch requests.
11025	ForceSendFields []string `json:"-"`
11026
11027	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11028	// in API requests with the JSON null value. By default, fields with
11029	// empty values are omitted from API requests. However, any field with
11030	// an empty value appearing in NullFields will be sent to the server as
11031	// null. It is an error if a field in this list has a non-empty value.
11032	// This may be used to include null fields in Patch requests.
11033	NullFields []string `json:"-"`
11034}
11035
11036func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
11037	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
11038	raw := NoMethod(*s)
11039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11040}
11041
11042func (s *GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
11043	type NoMethod GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation
11044	var s1 struct {
11045		Score gensupport.JSONFloat64 `json:"score"`
11046		*NoMethod
11047	}
11048	s1.NoMethod = (*NoMethod)(s)
11049	if err := json.Unmarshal(data, &s1); err != nil {
11050		return err
11051	}
11052	s.Score = float64(s1.Score)
11053	return nil
11054}
11055
11056// GoogleCloudVisionV1p4beta1LocationInfo: Detected entity location
11057// information.
11058type GoogleCloudVisionV1p4beta1LocationInfo struct {
11059	// LatLng: lat/long location coordinates.
11060	LatLng *LatLng `json:"latLng,omitempty"`
11061
11062	// ForceSendFields is a list of field names (e.g. "LatLng") to
11063	// unconditionally include in API requests. By default, fields with
11064	// empty values are omitted from API requests. However, any non-pointer,
11065	// non-interface field appearing in ForceSendFields will be sent to the
11066	// server regardless of whether the field is empty or not. This may be
11067	// used to include empty fields in Patch requests.
11068	ForceSendFields []string `json:"-"`
11069
11070	// NullFields is a list of field names (e.g. "LatLng") to include in API
11071	// requests with the JSON null value. By default, fields with empty
11072	// values are omitted from API requests. However, any field with an
11073	// empty value appearing in NullFields will be sent to the server as
11074	// null. It is an error if a field in this list has a non-empty value.
11075	// This may be used to include null fields in Patch requests.
11076	NullFields []string `json:"-"`
11077}
11078
11079func (s *GoogleCloudVisionV1p4beta1LocationInfo) MarshalJSON() ([]byte, error) {
11080	type NoMethod GoogleCloudVisionV1p4beta1LocationInfo
11081	raw := NoMethod(*s)
11082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11083}
11084
11085// GoogleCloudVisionV1p4beta1NormalizedVertex: A vertex represents a 2D
11086// point in the image.
11087// NOTE: the normalized vertex coordinates are relative to the original
11088// image
11089// and range from 0 to 1.
11090type GoogleCloudVisionV1p4beta1NormalizedVertex struct {
11091	// X: X coordinate.
11092	X float64 `json:"x,omitempty"`
11093
11094	// Y: Y coordinate.
11095	Y float64 `json:"y,omitempty"`
11096
11097	// ForceSendFields is a list of field names (e.g. "X") to
11098	// unconditionally include in API requests. By default, fields with
11099	// empty values are omitted from API requests. However, any non-pointer,
11100	// non-interface field appearing in ForceSendFields will be sent to the
11101	// server regardless of whether the field is empty or not. This may be
11102	// used to include empty fields in Patch requests.
11103	ForceSendFields []string `json:"-"`
11104
11105	// NullFields is a list of field names (e.g. "X") to include in API
11106	// requests with the JSON null value. By default, fields with empty
11107	// values are omitted from API requests. However, any field with an
11108	// empty value appearing in NullFields will be sent to the server as
11109	// null. It is an error if a field in this list has a non-empty value.
11110	// This may be used to include null fields in Patch requests.
11111	NullFields []string `json:"-"`
11112}
11113
11114func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
11115	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11116	raw := NoMethod(*s)
11117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11118}
11119
11120func (s *GoogleCloudVisionV1p4beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
11121	type NoMethod GoogleCloudVisionV1p4beta1NormalizedVertex
11122	var s1 struct {
11123		X gensupport.JSONFloat64 `json:"x"`
11124		Y gensupport.JSONFloat64 `json:"y"`
11125		*NoMethod
11126	}
11127	s1.NoMethod = (*NoMethod)(s)
11128	if err := json.Unmarshal(data, &s1); err != nil {
11129		return err
11130	}
11131	s.X = float64(s1.X)
11132	s.Y = float64(s1.Y)
11133	return nil
11134}
11135
11136// GoogleCloudVisionV1p4beta1OperationMetadata: Contains metadata for
11137// the BatchAnnotateImages operation.
11138type GoogleCloudVisionV1p4beta1OperationMetadata struct {
11139	// CreateTime: The time when the batch request was received.
11140	CreateTime string `json:"createTime,omitempty"`
11141
11142	// State: Current state of the batch operation.
11143	//
11144	// Possible values:
11145	//   "STATE_UNSPECIFIED" - Invalid.
11146	//   "CREATED" - Request is received.
11147	//   "RUNNING" - Request is actively being processed.
11148	//   "DONE" - The batch processing is done.
11149	//   "CANCELLED" - The batch processing was cancelled.
11150	State string `json:"state,omitempty"`
11151
11152	// UpdateTime: The time when the operation result was last updated.
11153	UpdateTime string `json:"updateTime,omitempty"`
11154
11155	// ForceSendFields is a list of field names (e.g. "CreateTime") to
11156	// unconditionally include in API requests. By default, fields with
11157	// empty values are omitted from API requests. However, any non-pointer,
11158	// non-interface field appearing in ForceSendFields will be sent to the
11159	// server regardless of whether the field is empty or not. This may be
11160	// used to include empty fields in Patch requests.
11161	ForceSendFields []string `json:"-"`
11162
11163	// NullFields is a list of field names (e.g. "CreateTime") to include in
11164	// API requests with the JSON null value. By default, fields with empty
11165	// values are omitted from API requests. However, any field with an
11166	// empty value appearing in NullFields will be sent to the server as
11167	// null. It is an error if a field in this list has a non-empty value.
11168	// This may be used to include null fields in Patch requests.
11169	NullFields []string `json:"-"`
11170}
11171
11172func (s *GoogleCloudVisionV1p4beta1OperationMetadata) MarshalJSON() ([]byte, error) {
11173	type NoMethod GoogleCloudVisionV1p4beta1OperationMetadata
11174	raw := NoMethod(*s)
11175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11176}
11177
11178// GoogleCloudVisionV1p4beta1OutputConfig: The desired output location
11179// and metadata.
11180type GoogleCloudVisionV1p4beta1OutputConfig struct {
11181	// BatchSize: The max number of response protos to put into each output
11182	// JSON file on
11183	// Google Cloud Storage.
11184	// The valid range is [1, 100]. If not specified, the default value is
11185	// 20.
11186	//
11187	// For example, for one pdf file with 100 pages, 100 response protos
11188	// will
11189	// be generated. If `batch_size` = 20, then 5 json files each
11190	// containing 20 response protos will be written under the
11191	// prefix
11192	// `gcs_destination`.`uri`.
11193	//
11194	// Currently, batch_size only applies to GcsDestination, with potential
11195	// future
11196	// support for other output configurations.
11197	BatchSize int64 `json:"batchSize,omitempty"`
11198
11199	// GcsDestination: The Google Cloud Storage location to write the
11200	// output(s) to.
11201	GcsDestination *GoogleCloudVisionV1p4beta1GcsDestination `json:"gcsDestination,omitempty"`
11202
11203	// ForceSendFields is a list of field names (e.g. "BatchSize") to
11204	// unconditionally include in API requests. By default, fields with
11205	// empty values are omitted from API requests. However, any non-pointer,
11206	// non-interface field appearing in ForceSendFields will be sent to the
11207	// server regardless of whether the field is empty or not. This may be
11208	// used to include empty fields in Patch requests.
11209	ForceSendFields []string `json:"-"`
11210
11211	// NullFields is a list of field names (e.g. "BatchSize") to include in
11212	// API requests with the JSON null value. By default, fields with empty
11213	// values are omitted from API requests. However, any field with an
11214	// empty value appearing in NullFields will be sent to the server as
11215	// null. It is an error if a field in this list has a non-empty value.
11216	// This may be used to include null fields in Patch requests.
11217	NullFields []string `json:"-"`
11218}
11219
11220func (s *GoogleCloudVisionV1p4beta1OutputConfig) MarshalJSON() ([]byte, error) {
11221	type NoMethod GoogleCloudVisionV1p4beta1OutputConfig
11222	raw := NoMethod(*s)
11223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11224}
11225
11226// GoogleCloudVisionV1p4beta1Page: Detected page from OCR.
11227type GoogleCloudVisionV1p4beta1Page struct {
11228	// Blocks: List of blocks of text, images etc on this page.
11229	Blocks []*GoogleCloudVisionV1p4beta1Block `json:"blocks,omitempty"`
11230
11231	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
11232	Confidence float64 `json:"confidence,omitempty"`
11233
11234	// Height: Page height. For PDFs the unit is points. For images
11235	// (including
11236	// TIFFs) the unit is pixels.
11237	Height int64 `json:"height,omitempty"`
11238
11239	// Property: Additional information detected on the page.
11240	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11241
11242	// Width: Page width. For PDFs the unit is points. For images
11243	// (including
11244	// TIFFs) the unit is pixels.
11245	Width int64 `json:"width,omitempty"`
11246
11247	// ForceSendFields is a list of field names (e.g. "Blocks") to
11248	// unconditionally include in API requests. By default, fields with
11249	// empty values are omitted from API requests. However, any non-pointer,
11250	// non-interface field appearing in ForceSendFields will be sent to the
11251	// server regardless of whether the field is empty or not. This may be
11252	// used to include empty fields in Patch requests.
11253	ForceSendFields []string `json:"-"`
11254
11255	// NullFields is a list of field names (e.g. "Blocks") to include in API
11256	// requests with the JSON null value. By default, fields with empty
11257	// values are omitted from API requests. However, any field with an
11258	// empty value appearing in NullFields will be sent to the server as
11259	// null. It is an error if a field in this list has a non-empty value.
11260	// This may be used to include null fields in Patch requests.
11261	NullFields []string `json:"-"`
11262}
11263
11264func (s *GoogleCloudVisionV1p4beta1Page) MarshalJSON() ([]byte, error) {
11265	type NoMethod GoogleCloudVisionV1p4beta1Page
11266	raw := NoMethod(*s)
11267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11268}
11269
11270func (s *GoogleCloudVisionV1p4beta1Page) UnmarshalJSON(data []byte) error {
11271	type NoMethod GoogleCloudVisionV1p4beta1Page
11272	var s1 struct {
11273		Confidence gensupport.JSONFloat64 `json:"confidence"`
11274		*NoMethod
11275	}
11276	s1.NoMethod = (*NoMethod)(s)
11277	if err := json.Unmarshal(data, &s1); err != nil {
11278		return err
11279	}
11280	s.Confidence = float64(s1.Confidence)
11281	return nil
11282}
11283
11284// GoogleCloudVisionV1p4beta1Paragraph: Structural unit of text
11285// representing a number of words in certain order.
11286type GoogleCloudVisionV1p4beta1Paragraph struct {
11287	// BoundingBox: The bounding box for the paragraph.
11288	// The vertices are in the order of top-left, top-right,
11289	// bottom-right,
11290	// bottom-left. When a rotation of the bounding box is detected the
11291	// rotation
11292	// is represented as around the top-left corner as defined when the text
11293	// is
11294	// read in the 'natural' orientation.
11295	// For example:
11296	//   * when the text is horizontal it might look like:
11297	//      0----1
11298	//      |    |
11299	//      3----2
11300	//   * when it's rotated 180 degrees around the top-left corner it
11301	// becomes:
11302	//      2----3
11303	//      |    |
11304	//      1----0
11305	//   and the vertex order will still be (0, 1, 2, 3).
11306	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11307
11308	// Confidence: Confidence of the OCR results for the paragraph. Range
11309	// [0, 1].
11310	Confidence float64 `json:"confidence,omitempty"`
11311
11312	// Property: Additional information detected for the paragraph.
11313	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11314
11315	// Words: List of all words in this paragraph.
11316	Words []*GoogleCloudVisionV1p4beta1Word `json:"words,omitempty"`
11317
11318	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11319	// unconditionally include in API requests. By default, fields with
11320	// empty values are omitted from API requests. However, any non-pointer,
11321	// non-interface field appearing in ForceSendFields will be sent to the
11322	// server regardless of whether the field is empty or not. This may be
11323	// used to include empty fields in Patch requests.
11324	ForceSendFields []string `json:"-"`
11325
11326	// NullFields is a list of field names (e.g. "BoundingBox") to include
11327	// in API requests with the JSON null value. By default, fields with
11328	// empty values are omitted from API requests. However, any field with
11329	// an empty value appearing in NullFields will be sent to the server as
11330	// null. It is an error if a field in this list has a non-empty value.
11331	// This may be used to include null fields in Patch requests.
11332	NullFields []string `json:"-"`
11333}
11334
11335func (s *GoogleCloudVisionV1p4beta1Paragraph) MarshalJSON() ([]byte, error) {
11336	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11337	raw := NoMethod(*s)
11338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11339}
11340
11341func (s *GoogleCloudVisionV1p4beta1Paragraph) UnmarshalJSON(data []byte) error {
11342	type NoMethod GoogleCloudVisionV1p4beta1Paragraph
11343	var s1 struct {
11344		Confidence gensupport.JSONFloat64 `json:"confidence"`
11345		*NoMethod
11346	}
11347	s1.NoMethod = (*NoMethod)(s)
11348	if err := json.Unmarshal(data, &s1); err != nil {
11349		return err
11350	}
11351	s.Confidence = float64(s1.Confidence)
11352	return nil
11353}
11354
11355// GoogleCloudVisionV1p4beta1Position: A 3D position in the image, used
11356// primarily for Face detection landmarks.
11357// A valid Position must have both x and y coordinates.
11358// The position coordinates are in the same scale as the original image.
11359type GoogleCloudVisionV1p4beta1Position struct {
11360	// X: X coordinate.
11361	X float64 `json:"x,omitempty"`
11362
11363	// Y: Y coordinate.
11364	Y float64 `json:"y,omitempty"`
11365
11366	// Z: Z coordinate (or depth).
11367	Z float64 `json:"z,omitempty"`
11368
11369	// ForceSendFields is a list of field names (e.g. "X") to
11370	// unconditionally include in API requests. By default, fields with
11371	// empty values are omitted from API requests. However, any non-pointer,
11372	// non-interface field appearing in ForceSendFields will be sent to the
11373	// server regardless of whether the field is empty or not. This may be
11374	// used to include empty fields in Patch requests.
11375	ForceSendFields []string `json:"-"`
11376
11377	// NullFields is a list of field names (e.g. "X") to include in API
11378	// requests with the JSON null value. By default, fields with empty
11379	// values are omitted from API requests. However, any field with an
11380	// empty value appearing in NullFields will be sent to the server as
11381	// null. It is an error if a field in this list has a non-empty value.
11382	// This may be used to include null fields in Patch requests.
11383	NullFields []string `json:"-"`
11384}
11385
11386func (s *GoogleCloudVisionV1p4beta1Position) MarshalJSON() ([]byte, error) {
11387	type NoMethod GoogleCloudVisionV1p4beta1Position
11388	raw := NoMethod(*s)
11389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11390}
11391
11392func (s *GoogleCloudVisionV1p4beta1Position) UnmarshalJSON(data []byte) error {
11393	type NoMethod GoogleCloudVisionV1p4beta1Position
11394	var s1 struct {
11395		X gensupport.JSONFloat64 `json:"x"`
11396		Y gensupport.JSONFloat64 `json:"y"`
11397		Z gensupport.JSONFloat64 `json:"z"`
11398		*NoMethod
11399	}
11400	s1.NoMethod = (*NoMethod)(s)
11401	if err := json.Unmarshal(data, &s1); err != nil {
11402		return err
11403	}
11404	s.X = float64(s1.X)
11405	s.Y = float64(s1.Y)
11406	s.Z = float64(s1.Z)
11407	return nil
11408}
11409
11410// GoogleCloudVisionV1p4beta1Product: A Product contains
11411// ReferenceImages.
11412type GoogleCloudVisionV1p4beta1Product struct {
11413	// Description: User-provided metadata to be stored with this product.
11414	// Must be at most 4096
11415	// characters long.
11416	Description string `json:"description,omitempty"`
11417
11418	// DisplayName: The user-provided name for this Product. Must not be
11419	// empty. Must be at most
11420	// 4096 characters long.
11421	DisplayName string `json:"displayName,omitempty"`
11422
11423	// Name: The resource name of the product.
11424	//
11425	// Format
11426	// is:
11427	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
11428	//
11429	// This field is ignored when creating a product.
11430	Name string `json:"name,omitempty"`
11431
11432	// ProductCategory: Immutable. The category for the product identified
11433	// by the reference image. This should
11434	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
11435	// categories
11436	// "homegoods", "apparel", and "toys" are still supported, but these
11437	// should
11438	// not be used for new products.
11439	ProductCategory string `json:"productCategory,omitempty"`
11440
11441	// ProductLabels: Key-value pairs that can be attached to a product. At
11442	// query time,
11443	// constraints can be specified based on the product_labels.
11444	//
11445	// Note that integer values can be provided as strings, e.g. "1199".
11446	// Only
11447	// strings with integer values can match a range-based restriction which
11448	// is
11449	// to be supported soon.
11450	//
11451	// Multiple values can be assigned to the same key. One product may have
11452	// up to
11453	// 500 product_labels.
11454	//
11455	// Notice that the total number of distinct product_labels over all
11456	// products
11457	// in one ProductSet cannot exceed 1M, otherwise the product search
11458	// pipeline
11459	// will refuse to work for that ProductSet.
11460	ProductLabels []*GoogleCloudVisionV1p4beta1ProductKeyValue `json:"productLabels,omitempty"`
11461
11462	// ForceSendFields is a list of field names (e.g. "Description") to
11463	// unconditionally include in API requests. By default, fields with
11464	// empty values are omitted from API requests. However, any non-pointer,
11465	// non-interface field appearing in ForceSendFields will be sent to the
11466	// server regardless of whether the field is empty or not. This may be
11467	// used to include empty fields in Patch requests.
11468	ForceSendFields []string `json:"-"`
11469
11470	// NullFields is a list of field names (e.g. "Description") to include
11471	// in API requests with the JSON null value. By default, fields with
11472	// empty values are omitted from API requests. However, any field with
11473	// an empty value appearing in NullFields will be sent to the server as
11474	// null. It is an error if a field in this list has a non-empty value.
11475	// This may be used to include null fields in Patch requests.
11476	NullFields []string `json:"-"`
11477}
11478
11479func (s *GoogleCloudVisionV1p4beta1Product) MarshalJSON() ([]byte, error) {
11480	type NoMethod GoogleCloudVisionV1p4beta1Product
11481	raw := NoMethod(*s)
11482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11483}
11484
11485// GoogleCloudVisionV1p4beta1ProductKeyValue: A product label
11486// represented as a key-value pair.
11487type GoogleCloudVisionV1p4beta1ProductKeyValue struct {
11488	// Key: The key of the label attached to the product. Cannot be empty
11489	// and cannot
11490	// exceed 128 bytes.
11491	Key string `json:"key,omitempty"`
11492
11493	// Value: The value of the label attached to the product. Cannot be
11494	// empty and
11495	// cannot exceed 128 bytes.
11496	Value string `json:"value,omitempty"`
11497
11498	// ForceSendFields is a list of field names (e.g. "Key") to
11499	// unconditionally include in API requests. By default, fields with
11500	// empty values are omitted from API requests. However, any non-pointer,
11501	// non-interface field appearing in ForceSendFields will be sent to the
11502	// server regardless of whether the field is empty or not. This may be
11503	// used to include empty fields in Patch requests.
11504	ForceSendFields []string `json:"-"`
11505
11506	// NullFields is a list of field names (e.g. "Key") to include in API
11507	// requests with the JSON null value. By default, fields with empty
11508	// values are omitted from API requests. However, any field with an
11509	// empty value appearing in NullFields will be sent to the server as
11510	// null. It is an error if a field in this list has a non-empty value.
11511	// This may be used to include null fields in Patch requests.
11512	NullFields []string `json:"-"`
11513}
11514
11515func (s *GoogleCloudVisionV1p4beta1ProductKeyValue) MarshalJSON() ([]byte, error) {
11516	type NoMethod GoogleCloudVisionV1p4beta1ProductKeyValue
11517	raw := NoMethod(*s)
11518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11519}
11520
11521// GoogleCloudVisionV1p4beta1ProductSearchResults: Results for a product
11522// search request.
11523type GoogleCloudVisionV1p4beta1ProductSearchResults struct {
11524	// IndexTime: Timestamp of the index which provided these results.
11525	// Products added to the
11526	// product set and products removed from the product set after this time
11527	// are
11528	// not reflected in the current results.
11529	IndexTime string `json:"indexTime,omitempty"`
11530
11531	// ProductGroupedResults: List of results grouped by products detected
11532	// in the query image. Each entry
11533	// corresponds to one bounding polygon in the query image, and contains
11534	// the
11535	// matching products specific to that region. There may be duplicate
11536	// product
11537	// matches in the union of all the per-product results.
11538	ProductGroupedResults []*GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult `json:"productGroupedResults,omitempty"`
11539
11540	// Results: List of results, one for each product match.
11541	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11542
11543	// ForceSendFields is a list of field names (e.g. "IndexTime") to
11544	// unconditionally include in API requests. By default, fields with
11545	// empty values are omitted from API requests. However, any non-pointer,
11546	// non-interface field appearing in ForceSendFields will be sent to the
11547	// server regardless of whether the field is empty or not. This may be
11548	// used to include empty fields in Patch requests.
11549	ForceSendFields []string `json:"-"`
11550
11551	// NullFields is a list of field names (e.g. "IndexTime") to include in
11552	// API requests with the JSON null value. By default, fields with empty
11553	// values are omitted from API requests. However, any field with an
11554	// empty value appearing in NullFields will be sent to the server as
11555	// null. It is an error if a field in this list has a non-empty value.
11556	// This may be used to include null fields in Patch requests.
11557	NullFields []string `json:"-"`
11558}
11559
11560func (s *GoogleCloudVisionV1p4beta1ProductSearchResults) MarshalJSON() ([]byte, error) {
11561	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResults
11562	raw := NoMethod(*s)
11563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11564}
11565
11566// GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult:
11567// Information about the products similar to a single product in a
11568// query
11569// image.
11570type GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult struct {
11571	// BoundingPoly: The bounding polygon around the product detected in the
11572	// query image.
11573	BoundingPoly *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPoly,omitempty"`
11574
11575	// ObjectAnnotations: List of generic predictions for the object in the
11576	// bounding box.
11577	ObjectAnnotations []*GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation `json:"objectAnnotations,omitempty"`
11578
11579	// Results: List of results, one for each product match.
11580	Results []*GoogleCloudVisionV1p4beta1ProductSearchResultsResult `json:"results,omitempty"`
11581
11582	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
11583	// unconditionally include in API requests. By default, fields with
11584	// empty values are omitted from API requests. However, any non-pointer,
11585	// non-interface field appearing in ForceSendFields will be sent to the
11586	// server regardless of whether the field is empty or not. This may be
11587	// used to include empty fields in Patch requests.
11588	ForceSendFields []string `json:"-"`
11589
11590	// NullFields is a list of field names (e.g. "BoundingPoly") to include
11591	// in API requests with the JSON null value. By default, fields with
11592	// empty values are omitted from API requests. However, any field with
11593	// an empty value appearing in NullFields will be sent to the server as
11594	// null. It is an error if a field in this list has a non-empty value.
11595	// This may be used to include null fields in Patch requests.
11596	NullFields []string `json:"-"`
11597}
11598
11599func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult) MarshalJSON() ([]byte, error) {
11600	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult
11601	raw := NoMethod(*s)
11602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11603}
11604
11605// GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation:
11606// Prediction for what the object in the bounding box is.
11607type GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation struct {
11608	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
11609	// For more
11610	// information,
11611	// see
11612	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
11613	LanguageCode string `json:"languageCode,omitempty"`
11614
11615	// Mid: Object ID that should align with EntityAnnotation mid.
11616	Mid string `json:"mid,omitempty"`
11617
11618	// Name: Object name, expressed in its `language_code` language.
11619	Name string `json:"name,omitempty"`
11620
11621	// Score: Score of the result. Range [0, 1].
11622	Score float64 `json:"score,omitempty"`
11623
11624	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
11625	// unconditionally include in API requests. By default, fields with
11626	// empty values are omitted from API requests. However, any non-pointer,
11627	// non-interface field appearing in ForceSendFields will be sent to the
11628	// server regardless of whether the field is empty or not. This may be
11629	// used to include empty fields in Patch requests.
11630	ForceSendFields []string `json:"-"`
11631
11632	// NullFields is a list of field names (e.g. "LanguageCode") to include
11633	// in API requests with the JSON null value. By default, fields with
11634	// empty values are omitted from API requests. However, any field with
11635	// an empty value appearing in NullFields will be sent to the server as
11636	// null. It is an error if a field in this list has a non-empty value.
11637	// This may be used to include null fields in Patch requests.
11638	NullFields []string `json:"-"`
11639}
11640
11641func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) MarshalJSON() ([]byte, error) {
11642	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
11643	raw := NoMethod(*s)
11644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11645}
11646
11647func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation) UnmarshalJSON(data []byte) error {
11648	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation
11649	var s1 struct {
11650		Score gensupport.JSONFloat64 `json:"score"`
11651		*NoMethod
11652	}
11653	s1.NoMethod = (*NoMethod)(s)
11654	if err := json.Unmarshal(data, &s1); err != nil {
11655		return err
11656	}
11657	s.Score = float64(s1.Score)
11658	return nil
11659}
11660
11661// GoogleCloudVisionV1p4beta1ProductSearchResultsResult: Information
11662// about a product.
11663type GoogleCloudVisionV1p4beta1ProductSearchResultsResult struct {
11664	// Image: The resource name of the image from the product that is the
11665	// closest match
11666	// to the query.
11667	Image string `json:"image,omitempty"`
11668
11669	// Product: The Product.
11670	Product *GoogleCloudVisionV1p4beta1Product `json:"product,omitempty"`
11671
11672	// Score: A confidence level on the match, ranging from 0 (no
11673	// confidence) to
11674	// 1 (full confidence).
11675	Score float64 `json:"score,omitempty"`
11676
11677	// ForceSendFields is a list of field names (e.g. "Image") to
11678	// unconditionally include in API requests. By default, fields with
11679	// empty values are omitted from API requests. However, any non-pointer,
11680	// non-interface field appearing in ForceSendFields will be sent to the
11681	// server regardless of whether the field is empty or not. This may be
11682	// used to include empty fields in Patch requests.
11683	ForceSendFields []string `json:"-"`
11684
11685	// NullFields is a list of field names (e.g. "Image") to include in API
11686	// requests with the JSON null value. By default, fields with empty
11687	// values are omitted from API requests. However, any field with an
11688	// empty value appearing in NullFields will be sent to the server as
11689	// null. It is an error if a field in this list has a non-empty value.
11690	// This may be used to include null fields in Patch requests.
11691	NullFields []string `json:"-"`
11692}
11693
11694func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) MarshalJSON() ([]byte, error) {
11695	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11696	raw := NoMethod(*s)
11697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11698}
11699
11700func (s *GoogleCloudVisionV1p4beta1ProductSearchResultsResult) UnmarshalJSON(data []byte) error {
11701	type NoMethod GoogleCloudVisionV1p4beta1ProductSearchResultsResult
11702	var s1 struct {
11703		Score gensupport.JSONFloat64 `json:"score"`
11704		*NoMethod
11705	}
11706	s1.NoMethod = (*NoMethod)(s)
11707	if err := json.Unmarshal(data, &s1); err != nil {
11708		return err
11709	}
11710	s.Score = float64(s1.Score)
11711	return nil
11712}
11713
11714// GoogleCloudVisionV1p4beta1Property: A `Property` consists of a
11715// user-supplied name/value pair.
11716type GoogleCloudVisionV1p4beta1Property struct {
11717	// Name: Name of the property.
11718	Name string `json:"name,omitempty"`
11719
11720	// Uint64Value: Value of numeric properties.
11721	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
11722
11723	// Value: Value of the property.
11724	Value string `json:"value,omitempty"`
11725
11726	// ForceSendFields is a list of field names (e.g. "Name") to
11727	// unconditionally include in API requests. By default, fields with
11728	// empty values are omitted from API requests. However, any non-pointer,
11729	// non-interface field appearing in ForceSendFields will be sent to the
11730	// server regardless of whether the field is empty or not. This may be
11731	// used to include empty fields in Patch requests.
11732	ForceSendFields []string `json:"-"`
11733
11734	// NullFields is a list of field names (e.g. "Name") to include in API
11735	// requests with the JSON null value. By default, fields with empty
11736	// values are omitted from API requests. However, any field with an
11737	// empty value appearing in NullFields will be sent to the server as
11738	// null. It is an error if a field in this list has a non-empty value.
11739	// This may be used to include null fields in Patch requests.
11740	NullFields []string `json:"-"`
11741}
11742
11743func (s *GoogleCloudVisionV1p4beta1Property) MarshalJSON() ([]byte, error) {
11744	type NoMethod GoogleCloudVisionV1p4beta1Property
11745	raw := NoMethod(*s)
11746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11747}
11748
11749// GoogleCloudVisionV1p4beta1ReferenceImage: A `ReferenceImage`
11750// represents a product image and its associated metadata,
11751// such as bounding boxes.
11752type GoogleCloudVisionV1p4beta1ReferenceImage struct {
11753	// BoundingPolys: Optional. Bounding polygons around the areas of
11754	// interest in the reference image.
11755	// If this field is empty, the system will try to detect regions
11756	// of
11757	// interest. At most 10 bounding polygons will be used.
11758	//
11759	// The provided shape is converted into a non-rotated rectangle.
11760	// Once
11761	// converted, the small edge of the rectangle must be greater than or
11762	// equal
11763	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
11764	// 1:5
11765	// is not).
11766	BoundingPolys []*GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingPolys,omitempty"`
11767
11768	// Name: The resource name of the reference image.
11769	//
11770	// Format
11771	// is:
11772	//
11773	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
11774	// ceImages/IMAGE_ID`.
11775	//
11776	// This field is ignored when creating a reference image.
11777	Name string `json:"name,omitempty"`
11778
11779	// Uri: Required. The Google Cloud Storage URI of the reference
11780	// image.
11781	//
11782	// The URI must start with `gs://`.
11783	Uri string `json:"uri,omitempty"`
11784
11785	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
11786	// unconditionally include in API requests. By default, fields with
11787	// empty values are omitted from API requests. However, any non-pointer,
11788	// non-interface field appearing in ForceSendFields will be sent to the
11789	// server regardless of whether the field is empty or not. This may be
11790	// used to include empty fields in Patch requests.
11791	ForceSendFields []string `json:"-"`
11792
11793	// NullFields is a list of field names (e.g. "BoundingPolys") to include
11794	// in API requests with the JSON null value. By default, fields with
11795	// empty values are omitted from API requests. However, any field with
11796	// an empty value appearing in NullFields will be sent to the server as
11797	// null. It is an error if a field in this list has a non-empty value.
11798	// This may be used to include null fields in Patch requests.
11799	NullFields []string `json:"-"`
11800}
11801
11802func (s *GoogleCloudVisionV1p4beta1ReferenceImage) MarshalJSON() ([]byte, error) {
11803	type NoMethod GoogleCloudVisionV1p4beta1ReferenceImage
11804	raw := NoMethod(*s)
11805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11806}
11807
11808// GoogleCloudVisionV1p4beta1SafeSearchAnnotation: Set of features
11809// pertaining to the image, computed by computer vision
11810// methods over safe-search verticals (for example, adult, spoof,
11811// medical,
11812// violence).
11813type GoogleCloudVisionV1p4beta1SafeSearchAnnotation struct {
11814	// Adult: Represents the adult content likelihood for the image. Adult
11815	// content may
11816	// contain elements such as nudity, pornographic images or cartoons,
11817	// or
11818	// sexual activities.
11819	//
11820	// Possible values:
11821	//   "UNKNOWN" - Unknown likelihood.
11822	//   "VERY_UNLIKELY" - It is very unlikely.
11823	//   "UNLIKELY" - It is unlikely.
11824	//   "POSSIBLE" - It is possible.
11825	//   "LIKELY" - It is likely.
11826	//   "VERY_LIKELY" - It is very likely.
11827	Adult string `json:"adult,omitempty"`
11828
11829	// Medical: Likelihood that this is a medical image.
11830	//
11831	// Possible values:
11832	//   "UNKNOWN" - Unknown likelihood.
11833	//   "VERY_UNLIKELY" - It is very unlikely.
11834	//   "UNLIKELY" - It is unlikely.
11835	//   "POSSIBLE" - It is possible.
11836	//   "LIKELY" - It is likely.
11837	//   "VERY_LIKELY" - It is very likely.
11838	Medical string `json:"medical,omitempty"`
11839
11840	// Racy: Likelihood that the request image contains racy content. Racy
11841	// content may
11842	// include (but is not limited to) skimpy or sheer clothing,
11843	// strategically
11844	// covered nudity, lewd or provocative poses, or close-ups of
11845	// sensitive
11846	// body areas.
11847	//
11848	// Possible values:
11849	//   "UNKNOWN" - Unknown likelihood.
11850	//   "VERY_UNLIKELY" - It is very unlikely.
11851	//   "UNLIKELY" - It is unlikely.
11852	//   "POSSIBLE" - It is possible.
11853	//   "LIKELY" - It is likely.
11854	//   "VERY_LIKELY" - It is very likely.
11855	Racy string `json:"racy,omitempty"`
11856
11857	// Spoof: Spoof likelihood. The likelihood that an modification
11858	// was made to the image's canonical version to make it appear
11859	// funny or offensive.
11860	//
11861	// Possible values:
11862	//   "UNKNOWN" - Unknown likelihood.
11863	//   "VERY_UNLIKELY" - It is very unlikely.
11864	//   "UNLIKELY" - It is unlikely.
11865	//   "POSSIBLE" - It is possible.
11866	//   "LIKELY" - It is likely.
11867	//   "VERY_LIKELY" - It is very likely.
11868	Spoof string `json:"spoof,omitempty"`
11869
11870	// Violence: Likelihood that this image contains violent content.
11871	//
11872	// Possible values:
11873	//   "UNKNOWN" - Unknown likelihood.
11874	//   "VERY_UNLIKELY" - It is very unlikely.
11875	//   "UNLIKELY" - It is unlikely.
11876	//   "POSSIBLE" - It is possible.
11877	//   "LIKELY" - It is likely.
11878	//   "VERY_LIKELY" - It is very likely.
11879	Violence string `json:"violence,omitempty"`
11880
11881	// ForceSendFields is a list of field names (e.g. "Adult") to
11882	// unconditionally include in API requests. By default, fields with
11883	// empty values are omitted from API requests. However, any non-pointer,
11884	// non-interface field appearing in ForceSendFields will be sent to the
11885	// server regardless of whether the field is empty or not. This may be
11886	// used to include empty fields in Patch requests.
11887	ForceSendFields []string `json:"-"`
11888
11889	// NullFields is a list of field names (e.g. "Adult") to include in API
11890	// requests with the JSON null value. By default, fields with empty
11891	// values are omitted from API requests. However, any field with an
11892	// empty value appearing in NullFields will be sent to the server as
11893	// null. It is an error if a field in this list has a non-empty value.
11894	// This may be used to include null fields in Patch requests.
11895	NullFields []string `json:"-"`
11896}
11897
11898func (s *GoogleCloudVisionV1p4beta1SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
11899	type NoMethod GoogleCloudVisionV1p4beta1SafeSearchAnnotation
11900	raw := NoMethod(*s)
11901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11902}
11903
11904// GoogleCloudVisionV1p4beta1Symbol: A single symbol representation.
11905type GoogleCloudVisionV1p4beta1Symbol struct {
11906	// BoundingBox: The bounding box for the symbol.
11907	// The vertices are in the order of top-left, top-right,
11908	// bottom-right,
11909	// bottom-left. When a rotation of the bounding box is detected the
11910	// rotation
11911	// is represented as around the top-left corner as defined when the text
11912	// is
11913	// read in the 'natural' orientation.
11914	// For example:
11915	//   * when the text is horizontal it might look like:
11916	//      0----1
11917	//      |    |
11918	//      3----2
11919	//   * when it's rotated 180 degrees around the top-left corner it
11920	// becomes:
11921	//      2----3
11922	//      |    |
11923	//      1----0
11924	//   and the vertex order will still be (0, 1, 2, 3).
11925	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
11926
11927	// Confidence: Confidence of the OCR results for the symbol. Range [0,
11928	// 1].
11929	Confidence float64 `json:"confidence,omitempty"`
11930
11931	// Property: Additional information detected for the symbol.
11932	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
11933
11934	// Text: The actual UTF-8 representation of the symbol.
11935	Text string `json:"text,omitempty"`
11936
11937	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
11938	// unconditionally include in API requests. By default, fields with
11939	// empty values are omitted from API requests. However, any non-pointer,
11940	// non-interface field appearing in ForceSendFields will be sent to the
11941	// server regardless of whether the field is empty or not. This may be
11942	// used to include empty fields in Patch requests.
11943	ForceSendFields []string `json:"-"`
11944
11945	// NullFields is a list of field names (e.g. "BoundingBox") to include
11946	// in API requests with the JSON null value. By default, fields with
11947	// empty values are omitted from API requests. However, any field with
11948	// an empty value appearing in NullFields will be sent to the server as
11949	// null. It is an error if a field in this list has a non-empty value.
11950	// This may be used to include null fields in Patch requests.
11951	NullFields []string `json:"-"`
11952}
11953
11954func (s *GoogleCloudVisionV1p4beta1Symbol) MarshalJSON() ([]byte, error) {
11955	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11956	raw := NoMethod(*s)
11957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11958}
11959
11960func (s *GoogleCloudVisionV1p4beta1Symbol) UnmarshalJSON(data []byte) error {
11961	type NoMethod GoogleCloudVisionV1p4beta1Symbol
11962	var s1 struct {
11963		Confidence gensupport.JSONFloat64 `json:"confidence"`
11964		*NoMethod
11965	}
11966	s1.NoMethod = (*NoMethod)(s)
11967	if err := json.Unmarshal(data, &s1); err != nil {
11968		return err
11969	}
11970	s.Confidence = float64(s1.Confidence)
11971	return nil
11972}
11973
11974// GoogleCloudVisionV1p4beta1TextAnnotation: TextAnnotation contains a
11975// structured representation of OCR extracted text.
11976// The hierarchy of an OCR extracted text structure is like this:
11977//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
11978// Symbol
11979// Each structural component, starting from Page, may further have their
11980// own
11981// properties. Properties describe detected languages, breaks etc..
11982// Please refer
11983// to the TextAnnotation.TextProperty message definition below for
11984// more
11985// detail.
11986type GoogleCloudVisionV1p4beta1TextAnnotation struct {
11987	// Pages: List of pages detected by OCR.
11988	Pages []*GoogleCloudVisionV1p4beta1Page `json:"pages,omitempty"`
11989
11990	// Text: UTF-8 text detected on the pages.
11991	Text string `json:"text,omitempty"`
11992
11993	// ForceSendFields is a list of field names (e.g. "Pages") to
11994	// unconditionally include in API requests. By default, fields with
11995	// empty values are omitted from API requests. However, any non-pointer,
11996	// non-interface field appearing in ForceSendFields will be sent to the
11997	// server regardless of whether the field is empty or not. This may be
11998	// used to include empty fields in Patch requests.
11999	ForceSendFields []string `json:"-"`
12000
12001	// NullFields is a list of field names (e.g. "Pages") to include in API
12002	// requests with the JSON null value. By default, fields with empty
12003	// values are omitted from API requests. However, any field with an
12004	// empty value appearing in NullFields will be sent to the server as
12005	// null. It is an error if a field in this list has a non-empty value.
12006	// This may be used to include null fields in Patch requests.
12007	NullFields []string `json:"-"`
12008}
12009
12010func (s *GoogleCloudVisionV1p4beta1TextAnnotation) MarshalJSON() ([]byte, error) {
12011	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotation
12012	raw := NoMethod(*s)
12013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12014}
12015
12016// GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak: Detected start
12017// or end of a structural component.
12018type GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak struct {
12019	// IsPrefix: True if break prepends the element.
12020	IsPrefix bool `json:"isPrefix,omitempty"`
12021
12022	// Type: Detected break type.
12023	//
12024	// Possible values:
12025	//   "UNKNOWN" - Unknown break label type.
12026	//   "SPACE" - Regular space.
12027	//   "SURE_SPACE" - Sure space (very wide).
12028	//   "EOL_SURE_SPACE" - Line-wrapping break.
12029	//   "HYPHEN" - End-line hyphen that is not present in text; does not
12030	// co-occur with
12031	// `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.
12032	//   "LINE_BREAK" - Line break that ends a paragraph.
12033	Type string `json:"type,omitempty"`
12034
12035	// ForceSendFields is a list of field names (e.g. "IsPrefix") to
12036	// unconditionally include in API requests. By default, fields with
12037	// empty values are omitted from API requests. However, any non-pointer,
12038	// non-interface field appearing in ForceSendFields will be sent to the
12039	// server regardless of whether the field is empty or not. This may be
12040	// used to include empty fields in Patch requests.
12041	ForceSendFields []string `json:"-"`
12042
12043	// NullFields is a list of field names (e.g. "IsPrefix") to include in
12044	// API requests with the JSON null value. By default, fields with empty
12045	// values are omitted from API requests. However, any field with an
12046	// empty value appearing in NullFields will be sent to the server as
12047	// null. It is an error if a field in this list has a non-empty value.
12048	// This may be used to include null fields in Patch requests.
12049	NullFields []string `json:"-"`
12050}
12051
12052func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak) MarshalJSON() ([]byte, error) {
12053	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak
12054	raw := NoMethod(*s)
12055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12056}
12057
12058// GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage: Detected
12059// language for a structural component.
12060type GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage struct {
12061	// Confidence: Confidence of detected language. Range [0, 1].
12062	Confidence float64 `json:"confidence,omitempty"`
12063
12064	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
12065	// For more
12066	// information,
12067	// see
12068	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12069	LanguageCode string `json:"languageCode,omitempty"`
12070
12071	// ForceSendFields is a list of field names (e.g. "Confidence") to
12072	// unconditionally include in API requests. By default, fields with
12073	// empty values are omitted from API requests. However, any non-pointer,
12074	// non-interface field appearing in ForceSendFields will be sent to the
12075	// server regardless of whether the field is empty or not. This may be
12076	// used to include empty fields in Patch requests.
12077	ForceSendFields []string `json:"-"`
12078
12079	// NullFields is a list of field names (e.g. "Confidence") to include in
12080	// API requests with the JSON null value. By default, fields with empty
12081	// values are omitted from API requests. However, any field with an
12082	// empty value appearing in NullFields will be sent to the server as
12083	// null. It is an error if a field in this list has a non-empty value.
12084	// This may be used to include null fields in Patch requests.
12085	NullFields []string `json:"-"`
12086}
12087
12088func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) MarshalJSON() ([]byte, error) {
12089	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12090	raw := NoMethod(*s)
12091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12092}
12093
12094func (s *GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage) UnmarshalJSON(data []byte) error {
12095	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage
12096	var s1 struct {
12097		Confidence gensupport.JSONFloat64 `json:"confidence"`
12098		*NoMethod
12099	}
12100	s1.NoMethod = (*NoMethod)(s)
12101	if err := json.Unmarshal(data, &s1); err != nil {
12102		return err
12103	}
12104	s.Confidence = float64(s1.Confidence)
12105	return nil
12106}
12107
12108// GoogleCloudVisionV1p4beta1TextAnnotationTextProperty: Additional
12109// information detected on the structural component.
12110type GoogleCloudVisionV1p4beta1TextAnnotationTextProperty struct {
12111	// DetectedBreak: Detected start or end of a text segment.
12112	DetectedBreak *GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak `json:"detectedBreak,omitempty"`
12113
12114	// DetectedLanguages: A list of detected languages together with
12115	// confidence.
12116	DetectedLanguages []*GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage `json:"detectedLanguages,omitempty"`
12117
12118	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
12119	// unconditionally include in API requests. By default, fields with
12120	// empty values are omitted from API requests. However, any non-pointer,
12121	// non-interface field appearing in ForceSendFields will be sent to the
12122	// server regardless of whether the field is empty or not. This may be
12123	// used to include empty fields in Patch requests.
12124	ForceSendFields []string `json:"-"`
12125
12126	// NullFields is a list of field names (e.g. "DetectedBreak") to include
12127	// in API requests with the JSON null value. By default, fields with
12128	// empty values are omitted from API requests. However, any field with
12129	// an empty value appearing in NullFields will be sent to the server as
12130	// null. It is an error if a field in this list has a non-empty value.
12131	// This may be used to include null fields in Patch requests.
12132	NullFields []string `json:"-"`
12133}
12134
12135func (s *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty) MarshalJSON() ([]byte, error) {
12136	type NoMethod GoogleCloudVisionV1p4beta1TextAnnotationTextProperty
12137	raw := NoMethod(*s)
12138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12139}
12140
12141// GoogleCloudVisionV1p4beta1Vertex: A vertex represents a 2D point in
12142// the image.
12143// NOTE: the vertex coordinates are in the same scale as the original
12144// image.
12145type GoogleCloudVisionV1p4beta1Vertex struct {
12146	// X: X coordinate.
12147	X int64 `json:"x,omitempty"`
12148
12149	// Y: Y coordinate.
12150	Y int64 `json:"y,omitempty"`
12151
12152	// ForceSendFields is a list of field names (e.g. "X") to
12153	// unconditionally include in API requests. By default, fields with
12154	// empty values are omitted from API requests. However, any non-pointer,
12155	// non-interface field appearing in ForceSendFields will be sent to the
12156	// server regardless of whether the field is empty or not. This may be
12157	// used to include empty fields in Patch requests.
12158	ForceSendFields []string `json:"-"`
12159
12160	// NullFields is a list of field names (e.g. "X") to include in API
12161	// requests with the JSON null value. By default, fields with empty
12162	// values are omitted from API requests. However, any field with an
12163	// empty value appearing in NullFields will be sent to the server as
12164	// null. It is an error if a field in this list has a non-empty value.
12165	// This may be used to include null fields in Patch requests.
12166	NullFields []string `json:"-"`
12167}
12168
12169func (s *GoogleCloudVisionV1p4beta1Vertex) MarshalJSON() ([]byte, error) {
12170	type NoMethod GoogleCloudVisionV1p4beta1Vertex
12171	raw := NoMethod(*s)
12172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12173}
12174
12175// GoogleCloudVisionV1p4beta1WebDetection: Relevant information for the
12176// image from the Internet.
12177type GoogleCloudVisionV1p4beta1WebDetection struct {
12178	// BestGuessLabels: The service's best guess as to the topic of the
12179	// request image.
12180	// Inferred from similar images on the open web.
12181	BestGuessLabels []*GoogleCloudVisionV1p4beta1WebDetectionWebLabel `json:"bestGuessLabels,omitempty"`
12182
12183	// FullMatchingImages: Fully matching images from the Internet.
12184	// Can include resized copies of the query image.
12185	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12186
12187	// PagesWithMatchingImages: Web pages containing the matching images
12188	// from the Internet.
12189	PagesWithMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebPage `json:"pagesWithMatchingImages,omitempty"`
12190
12191	// PartialMatchingImages: Partial matching images from the
12192	// Internet.
12193	// Those images are similar enough to share some key-point features.
12194	// For
12195	// example an original image will likely have partial matching for its
12196	// crops.
12197	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12198
12199	// VisuallySimilarImages: The visually similar image results.
12200	VisuallySimilarImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"visuallySimilarImages,omitempty"`
12201
12202	// WebEntities: Deduced entities from similar images on the Internet.
12203	WebEntities []*GoogleCloudVisionV1p4beta1WebDetectionWebEntity `json:"webEntities,omitempty"`
12204
12205	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
12206	// unconditionally include in API requests. By default, fields with
12207	// empty values are omitted from API requests. However, any non-pointer,
12208	// non-interface field appearing in ForceSendFields will be sent to the
12209	// server regardless of whether the field is empty or not. This may be
12210	// used to include empty fields in Patch requests.
12211	ForceSendFields []string `json:"-"`
12212
12213	// NullFields is a list of field names (e.g. "BestGuessLabels") to
12214	// include in API requests with the JSON null value. By default, fields
12215	// with empty values are omitted from API requests. However, any field
12216	// with an empty value appearing in NullFields will be sent to the
12217	// server as null. It is an error if a field in this list has a
12218	// non-empty value. This may be used to include null fields in Patch
12219	// requests.
12220	NullFields []string `json:"-"`
12221}
12222
12223func (s *GoogleCloudVisionV1p4beta1WebDetection) MarshalJSON() ([]byte, error) {
12224	type NoMethod GoogleCloudVisionV1p4beta1WebDetection
12225	raw := NoMethod(*s)
12226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12227}
12228
12229// GoogleCloudVisionV1p4beta1WebDetectionWebEntity: Entity deduced from
12230// similar images on the Internet.
12231type GoogleCloudVisionV1p4beta1WebDetectionWebEntity struct {
12232	// Description: Canonical description of the entity, in English.
12233	Description string `json:"description,omitempty"`
12234
12235	// EntityId: Opaque entity ID.
12236	EntityId string `json:"entityId,omitempty"`
12237
12238	// Score: Overall relevancy score for the entity.
12239	// Not normalized and not comparable across different image queries.
12240	Score float64 `json:"score,omitempty"`
12241
12242	// ForceSendFields is a list of field names (e.g. "Description") to
12243	// unconditionally include in API requests. By default, fields with
12244	// empty values are omitted from API requests. However, any non-pointer,
12245	// non-interface field appearing in ForceSendFields will be sent to the
12246	// server regardless of whether the field is empty or not. This may be
12247	// used to include empty fields in Patch requests.
12248	ForceSendFields []string `json:"-"`
12249
12250	// NullFields is a list of field names (e.g. "Description") to include
12251	// in API requests with the JSON null value. By default, fields with
12252	// empty values are omitted from API requests. However, any field with
12253	// an empty value appearing in NullFields will be sent to the server as
12254	// null. It is an error if a field in this list has a non-empty value.
12255	// This may be used to include null fields in Patch requests.
12256	NullFields []string `json:"-"`
12257}
12258
12259func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) MarshalJSON() ([]byte, error) {
12260	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12261	raw := NoMethod(*s)
12262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12263}
12264
12265func (s *GoogleCloudVisionV1p4beta1WebDetectionWebEntity) UnmarshalJSON(data []byte) error {
12266	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebEntity
12267	var s1 struct {
12268		Score gensupport.JSONFloat64 `json:"score"`
12269		*NoMethod
12270	}
12271	s1.NoMethod = (*NoMethod)(s)
12272	if err := json.Unmarshal(data, &s1); err != nil {
12273		return err
12274	}
12275	s.Score = float64(s1.Score)
12276	return nil
12277}
12278
12279// GoogleCloudVisionV1p4beta1WebDetectionWebImage: Metadata for online
12280// images.
12281type GoogleCloudVisionV1p4beta1WebDetectionWebImage struct {
12282	// Score: (Deprecated) Overall relevancy score for the image.
12283	Score float64 `json:"score,omitempty"`
12284
12285	// Url: The result image URL.
12286	Url string `json:"url,omitempty"`
12287
12288	// ForceSendFields is a list of field names (e.g. "Score") to
12289	// unconditionally include in API requests. By default, fields with
12290	// empty values are omitted from API requests. However, any non-pointer,
12291	// non-interface field appearing in ForceSendFields will be sent to the
12292	// server regardless of whether the field is empty or not. This may be
12293	// used to include empty fields in Patch requests.
12294	ForceSendFields []string `json:"-"`
12295
12296	// NullFields is a list of field names (e.g. "Score") to include in API
12297	// requests with the JSON null value. By default, fields with empty
12298	// values are omitted from API requests. However, any field with an
12299	// empty value appearing in NullFields will be sent to the server as
12300	// null. It is an error if a field in this list has a non-empty value.
12301	// This may be used to include null fields in Patch requests.
12302	NullFields []string `json:"-"`
12303}
12304
12305func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) MarshalJSON() ([]byte, error) {
12306	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12307	raw := NoMethod(*s)
12308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12309}
12310
12311func (s *GoogleCloudVisionV1p4beta1WebDetectionWebImage) UnmarshalJSON(data []byte) error {
12312	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebImage
12313	var s1 struct {
12314		Score gensupport.JSONFloat64 `json:"score"`
12315		*NoMethod
12316	}
12317	s1.NoMethod = (*NoMethod)(s)
12318	if err := json.Unmarshal(data, &s1); err != nil {
12319		return err
12320	}
12321	s.Score = float64(s1.Score)
12322	return nil
12323}
12324
12325// GoogleCloudVisionV1p4beta1WebDetectionWebLabel: Label to provide
12326// extra metadata for the web detection.
12327type GoogleCloudVisionV1p4beta1WebDetectionWebLabel struct {
12328	// Label: Label for extra metadata.
12329	Label string `json:"label,omitempty"`
12330
12331	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
12332	// or "sr-Latn".
12333	// For more information,
12334	// see
12335	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
12336	LanguageCode string `json:"languageCode,omitempty"`
12337
12338	// ForceSendFields is a list of field names (e.g. "Label") to
12339	// unconditionally include in API requests. By default, fields with
12340	// empty values are omitted from API requests. However, any non-pointer,
12341	// non-interface field appearing in ForceSendFields will be sent to the
12342	// server regardless of whether the field is empty or not. This may be
12343	// used to include empty fields in Patch requests.
12344	ForceSendFields []string `json:"-"`
12345
12346	// NullFields is a list of field names (e.g. "Label") to include in API
12347	// requests with the JSON null value. By default, fields with empty
12348	// values are omitted from API requests. However, any field with an
12349	// empty value appearing in NullFields will be sent to the server as
12350	// null. It is an error if a field in this list has a non-empty value.
12351	// This may be used to include null fields in Patch requests.
12352	NullFields []string `json:"-"`
12353}
12354
12355func (s *GoogleCloudVisionV1p4beta1WebDetectionWebLabel) MarshalJSON() ([]byte, error) {
12356	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebLabel
12357	raw := NoMethod(*s)
12358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12359}
12360
12361// GoogleCloudVisionV1p4beta1WebDetectionWebPage: Metadata for web
12362// pages.
12363type GoogleCloudVisionV1p4beta1WebDetectionWebPage struct {
12364	// FullMatchingImages: Fully matching images on the page.
12365	// Can include resized copies of the query image.
12366	FullMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"fullMatchingImages,omitempty"`
12367
12368	// PageTitle: Title for the web page, may contain HTML markups.
12369	PageTitle string `json:"pageTitle,omitempty"`
12370
12371	// PartialMatchingImages: Partial matching images on the page.
12372	// Those images are similar enough to share some key-point features.
12373	// For
12374	// example an original image will likely have partial matching for
12375	// its
12376	// crops.
12377	PartialMatchingImages []*GoogleCloudVisionV1p4beta1WebDetectionWebImage `json:"partialMatchingImages,omitempty"`
12378
12379	// Score: (Deprecated) Overall relevancy score for the web page.
12380	Score float64 `json:"score,omitempty"`
12381
12382	// Url: The result web page URL.
12383	Url string `json:"url,omitempty"`
12384
12385	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
12386	// to unconditionally include in API requests. By default, fields with
12387	// empty values are omitted from API requests. However, any non-pointer,
12388	// non-interface field appearing in ForceSendFields will be sent to the
12389	// server regardless of whether the field is empty or not. This may be
12390	// used to include empty fields in Patch requests.
12391	ForceSendFields []string `json:"-"`
12392
12393	// NullFields is a list of field names (e.g. "FullMatchingImages") to
12394	// include in API requests with the JSON null value. By default, fields
12395	// with empty values are omitted from API requests. However, any field
12396	// with an empty value appearing in NullFields will be sent to the
12397	// server as null. It is an error if a field in this list has a
12398	// non-empty value. This may be used to include null fields in Patch
12399	// requests.
12400	NullFields []string `json:"-"`
12401}
12402
12403func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) MarshalJSON() ([]byte, error) {
12404	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12405	raw := NoMethod(*s)
12406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12407}
12408
12409func (s *GoogleCloudVisionV1p4beta1WebDetectionWebPage) UnmarshalJSON(data []byte) error {
12410	type NoMethod GoogleCloudVisionV1p4beta1WebDetectionWebPage
12411	var s1 struct {
12412		Score gensupport.JSONFloat64 `json:"score"`
12413		*NoMethod
12414	}
12415	s1.NoMethod = (*NoMethod)(s)
12416	if err := json.Unmarshal(data, &s1); err != nil {
12417		return err
12418	}
12419	s.Score = float64(s1.Score)
12420	return nil
12421}
12422
12423// GoogleCloudVisionV1p4beta1Word: A word representation.
12424type GoogleCloudVisionV1p4beta1Word struct {
12425	// BoundingBox: The bounding box for the word.
12426	// The vertices are in the order of top-left, top-right,
12427	// bottom-right,
12428	// bottom-left. When a rotation of the bounding box is detected the
12429	// rotation
12430	// is represented as around the top-left corner as defined when the text
12431	// is
12432	// read in the 'natural' orientation.
12433	// For example:
12434	//   * when the text is horizontal it might look like:
12435	//      0----1
12436	//      |    |
12437	//      3----2
12438	//   * when it's rotated 180 degrees around the top-left corner it
12439	// becomes:
12440	//      2----3
12441	//      |    |
12442	//      1----0
12443	//   and the vertex order will still be (0, 1, 2, 3).
12444	BoundingBox *GoogleCloudVisionV1p4beta1BoundingPoly `json:"boundingBox,omitempty"`
12445
12446	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
12447	Confidence float64 `json:"confidence,omitempty"`
12448
12449	// Property: Additional information detected for the word.
12450	Property *GoogleCloudVisionV1p4beta1TextAnnotationTextProperty `json:"property,omitempty"`
12451
12452	// Symbols: List of symbols in the word.
12453	// The order of the symbols follows the natural reading order.
12454	Symbols []*GoogleCloudVisionV1p4beta1Symbol `json:"symbols,omitempty"`
12455
12456	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
12457	// unconditionally include in API requests. By default, fields with
12458	// empty values are omitted from API requests. However, any non-pointer,
12459	// non-interface field appearing in ForceSendFields will be sent to the
12460	// server regardless of whether the field is empty or not. This may be
12461	// used to include empty fields in Patch requests.
12462	ForceSendFields []string `json:"-"`
12463
12464	// NullFields is a list of field names (e.g. "BoundingBox") to include
12465	// in API requests with the JSON null value. By default, fields with
12466	// empty values are omitted from API requests. However, any field with
12467	// an empty value appearing in NullFields will be sent to the server as
12468	// null. It is an error if a field in this list has a non-empty value.
12469	// This may be used to include null fields in Patch requests.
12470	NullFields []string `json:"-"`
12471}
12472
12473func (s *GoogleCloudVisionV1p4beta1Word) MarshalJSON() ([]byte, error) {
12474	type NoMethod GoogleCloudVisionV1p4beta1Word
12475	raw := NoMethod(*s)
12476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12477}
12478
12479func (s *GoogleCloudVisionV1p4beta1Word) UnmarshalJSON(data []byte) error {
12480	type NoMethod GoogleCloudVisionV1p4beta1Word
12481	var s1 struct {
12482		Confidence gensupport.JSONFloat64 `json:"confidence"`
12483		*NoMethod
12484	}
12485	s1.NoMethod = (*NoMethod)(s)
12486	if err := json.Unmarshal(data, &s1); err != nil {
12487		return err
12488	}
12489	s.Confidence = float64(s1.Confidence)
12490	return nil
12491}
12492
12493// GroupedResult: Information about the products similar to a single
12494// product in a query
12495// image.
12496type GroupedResult struct {
12497	// BoundingPoly: The bounding polygon around the product detected in the
12498	// query image.
12499	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
12500
12501	// ObjectAnnotations: List of generic predictions for the object in the
12502	// bounding box.
12503	ObjectAnnotations []*ObjectAnnotation `json:"objectAnnotations,omitempty"`
12504
12505	// Results: List of results, one for each product match.
12506	Results []*Result `json:"results,omitempty"`
12507
12508	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
12509	// unconditionally include in API requests. By default, fields with
12510	// empty values are omitted from API requests. However, any non-pointer,
12511	// non-interface field appearing in ForceSendFields will be sent to the
12512	// server regardless of whether the field is empty or not. This may be
12513	// used to include empty fields in Patch requests.
12514	ForceSendFields []string `json:"-"`
12515
12516	// NullFields is a list of field names (e.g. "BoundingPoly") to include
12517	// in API requests with the JSON null value. By default, fields with
12518	// empty values are omitted from API requests. However, any field with
12519	// an empty value appearing in NullFields will be sent to the server as
12520	// null. It is an error if a field in this list has a non-empty value.
12521	// This may be used to include null fields in Patch requests.
12522	NullFields []string `json:"-"`
12523}
12524
12525func (s *GroupedResult) MarshalJSON() ([]byte, error) {
12526	type NoMethod GroupedResult
12527	raw := NoMethod(*s)
12528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12529}
12530
12531// Image: Client image to perform Google Cloud Vision API tasks over.
12532type Image struct {
12533	// Content: Image content, represented as a stream of bytes.
12534	// Note: As with all `bytes` fields, protobuffers use a pure
12535	// binary
12536	// representation, whereas JSON representations use base64.
12537	Content string `json:"content,omitempty"`
12538
12539	// Source: Google Cloud Storage image location, or publicly-accessible
12540	// image
12541	// URL. If both `content` and `source` are provided for an image,
12542	// `content`
12543	// takes precedence and is used to perform the image annotation request.
12544	Source *ImageSource `json:"source,omitempty"`
12545
12546	// ForceSendFields is a list of field names (e.g. "Content") to
12547	// unconditionally include in API requests. By default, fields with
12548	// empty values are omitted from API requests. However, any non-pointer,
12549	// non-interface field appearing in ForceSendFields will be sent to the
12550	// server regardless of whether the field is empty or not. This may be
12551	// used to include empty fields in Patch requests.
12552	ForceSendFields []string `json:"-"`
12553
12554	// NullFields is a list of field names (e.g. "Content") to include in
12555	// API requests with the JSON null value. By default, fields with empty
12556	// values are omitted from API requests. However, any field with an
12557	// empty value appearing in NullFields will be sent to the server as
12558	// null. It is an error if a field in this list has a non-empty value.
12559	// This may be used to include null fields in Patch requests.
12560	NullFields []string `json:"-"`
12561}
12562
12563func (s *Image) MarshalJSON() ([]byte, error) {
12564	type NoMethod Image
12565	raw := NoMethod(*s)
12566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12567}
12568
12569// ImageAnnotationContext: If an image was produced from a file (e.g. a
12570// PDF), this message gives
12571// information about the source of that image.
12572type ImageAnnotationContext struct {
12573	// PageNumber: If the file was a PDF or TIFF, this field gives the page
12574	// number within
12575	// the file used to produce the image.
12576	PageNumber int64 `json:"pageNumber,omitempty"`
12577
12578	// Uri: The URI of the file used to produce the image.
12579	Uri string `json:"uri,omitempty"`
12580
12581	// ForceSendFields is a list of field names (e.g. "PageNumber") to
12582	// unconditionally include in API requests. By default, fields with
12583	// empty values are omitted from API requests. However, any non-pointer,
12584	// non-interface field appearing in ForceSendFields will be sent to the
12585	// server regardless of whether the field is empty or not. This may be
12586	// used to include empty fields in Patch requests.
12587	ForceSendFields []string `json:"-"`
12588
12589	// NullFields is a list of field names (e.g. "PageNumber") to include in
12590	// API requests with the JSON null value. By default, fields with empty
12591	// values are omitted from API requests. However, any field with an
12592	// empty value appearing in NullFields will be sent to the server as
12593	// null. It is an error if a field in this list has a non-empty value.
12594	// This may be used to include null fields in Patch requests.
12595	NullFields []string `json:"-"`
12596}
12597
12598func (s *ImageAnnotationContext) MarshalJSON() ([]byte, error) {
12599	type NoMethod ImageAnnotationContext
12600	raw := NoMethod(*s)
12601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12602}
12603
12604// ImageContext: Image context and/or feature-specific parameters.
12605type ImageContext struct {
12606	// CropHintsParams: Parameters for crop hints annotation request.
12607	CropHintsParams *CropHintsParams `json:"cropHintsParams,omitempty"`
12608
12609	// LanguageHints: List of languages to use for TEXT_DETECTION. In most
12610	// cases, an empty value
12611	// yields the best results since it enables automatic language
12612	// detection. For
12613	// languages based on the Latin alphabet, setting `language_hints` is
12614	// not
12615	// needed. In rare cases, when the language of the text in the image is
12616	// known,
12617	// setting a hint will help get better results (although it will be
12618	// a
12619	// significant hindrance if the hint is wrong). Text detection returns
12620	// an
12621	// error if one or more of the specified languages is not one of
12622	// the
12623	// [supported languages](/vision/docs/languages).
12624	LanguageHints []string `json:"languageHints,omitempty"`
12625
12626	// LatLongRect: Not used.
12627	LatLongRect *LatLongRect `json:"latLongRect,omitempty"`
12628
12629	// ProductSearchParams: Parameters for product search.
12630	ProductSearchParams *ProductSearchParams `json:"productSearchParams,omitempty"`
12631
12632	// WebDetectionParams: Parameters for web detection.
12633	WebDetectionParams *WebDetectionParams `json:"webDetectionParams,omitempty"`
12634
12635	// ForceSendFields is a list of field names (e.g. "CropHintsParams") to
12636	// unconditionally include in API requests. By default, fields with
12637	// empty values are omitted from API requests. However, any non-pointer,
12638	// non-interface field appearing in ForceSendFields will be sent to the
12639	// server regardless of whether the field is empty or not. This may be
12640	// used to include empty fields in Patch requests.
12641	ForceSendFields []string `json:"-"`
12642
12643	// NullFields is a list of field names (e.g. "CropHintsParams") to
12644	// include in API requests with the JSON null value. By default, fields
12645	// with empty values are omitted from API requests. However, any field
12646	// with an empty value appearing in NullFields will be sent to the
12647	// server as null. It is an error if a field in this list has a
12648	// non-empty value. This may be used to include null fields in Patch
12649	// requests.
12650	NullFields []string `json:"-"`
12651}
12652
12653func (s *ImageContext) MarshalJSON() ([]byte, error) {
12654	type NoMethod ImageContext
12655	raw := NoMethod(*s)
12656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12657}
12658
12659// ImageProperties: Stores image properties, such as dominant colors.
12660type ImageProperties struct {
12661	// DominantColors: If present, dominant colors completed successfully.
12662	DominantColors *DominantColorsAnnotation `json:"dominantColors,omitempty"`
12663
12664	// ForceSendFields is a list of field names (e.g. "DominantColors") to
12665	// unconditionally include in API requests. By default, fields with
12666	// empty values are omitted from API requests. However, any non-pointer,
12667	// non-interface field appearing in ForceSendFields will be sent to the
12668	// server regardless of whether the field is empty or not. This may be
12669	// used to include empty fields in Patch requests.
12670	ForceSendFields []string `json:"-"`
12671
12672	// NullFields is a list of field names (e.g. "DominantColors") to
12673	// include in API requests with the JSON null value. By default, fields
12674	// with empty values are omitted from API requests. However, any field
12675	// with an empty value appearing in NullFields will be sent to the
12676	// server as null. It is an error if a field in this list has a
12677	// non-empty value. This may be used to include null fields in Patch
12678	// requests.
12679	NullFields []string `json:"-"`
12680}
12681
12682func (s *ImageProperties) MarshalJSON() ([]byte, error) {
12683	type NoMethod ImageProperties
12684	raw := NoMethod(*s)
12685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12686}
12687
12688// ImageSource: External image source (Google Cloud Storage or web URL
12689// image location).
12690type ImageSource struct {
12691	// GcsImageUri: **Use `image_uri` instead.**
12692	//
12693	// The Google Cloud Storage  URI of the
12694	// form
12695	// `gs://bucket_name/object_name`. Object versioning is not supported.
12696	// See
12697	// [Google Cloud Storage
12698	// Request
12699	// URIs](https://cloud.google.com/storage/docs/reference-uris) for more
12700	// info.
12701	GcsImageUri string `json:"gcsImageUri,omitempty"`
12702
12703	// ImageUri: The URI of the source image. Can be either:
12704	//
12705	// 1. A Google Cloud Storage URI of the form
12706	//    `gs://bucket_name/object_name`. Object versioning is not
12707	// supported. See
12708	//    [Google Cloud Storage Request
12709	//    URIs](https://cloud.google.com/storage/docs/reference-uris) for
12710	// more
12711	//    info.
12712	//
12713	// 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images
12714	// from
12715	//    HTTP/HTTPS URLs, Google cannot guarantee that the request will be
12716	//    completed. Your request may fail if the specified host denies the
12717	//    request (e.g. due to request throttling or DOS prevention), or if
12718	// Google
12719	//    throttles requests to the site for abuse prevention. You should
12720	// not
12721	//    depend on externally-hosted images for production
12722	// applications.
12723	//
12724	// When both `gcs_image_uri` and `image_uri` are specified, `image_uri`
12725	// takes
12726	// precedence.
12727	ImageUri string `json:"imageUri,omitempty"`
12728
12729	// ForceSendFields is a list of field names (e.g. "GcsImageUri") to
12730	// unconditionally include in API requests. By default, fields with
12731	// empty values are omitted from API requests. However, any non-pointer,
12732	// non-interface field appearing in ForceSendFields will be sent to the
12733	// server regardless of whether the field is empty or not. This may be
12734	// used to include empty fields in Patch requests.
12735	ForceSendFields []string `json:"-"`
12736
12737	// NullFields is a list of field names (e.g. "GcsImageUri") to include
12738	// in API requests with the JSON null value. By default, fields with
12739	// empty values are omitted from API requests. However, any field with
12740	// an empty value appearing in NullFields will be sent to the server as
12741	// null. It is an error if a field in this list has a non-empty value.
12742	// This may be used to include null fields in Patch requests.
12743	NullFields []string `json:"-"`
12744}
12745
12746func (s *ImageSource) MarshalJSON() ([]byte, error) {
12747	type NoMethod ImageSource
12748	raw := NoMethod(*s)
12749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12750}
12751
12752// ImportProductSetsGcsSource: The Google Cloud Storage location for a
12753// csv file which preserves a list of
12754// ImportProductSetRequests in each line.
12755type ImportProductSetsGcsSource struct {
12756	// CsvFileUri: The Google Cloud Storage URI of the input csv file.
12757	//
12758	// The URI must start with `gs://`.
12759	//
12760	// The format of the input csv file should be one image per line.
12761	// In each line, there are 8 columns.
12762	//
12763	// 1.  image-uri
12764	// 2.  image-id
12765	// 3.  product-set-id
12766	// 4.  product-id
12767	// 5.  product-category
12768	// 6.  product-display-name
12769	// 7.  labels
12770	// 8.  bounding-poly
12771	//
12772	// The `image-uri`, `product-set-id`, `product-id`, and
12773	// `product-category`
12774	// columns are required. All other columns are optional.
12775	//
12776	// If the `ProductSet` or `Product` specified by the `product-set-id`
12777	// and
12778	// `product-id` values does not exist, then the system will create a
12779	// new
12780	// `ProductSet` or `Product` for the image. In this case,
12781	// the
12782	// `product-display-name` column refers to
12783	// display_name, the
12784	// `product-category` column refers to
12785	// product_category, and the
12786	// `labels` column refers to product_labels.
12787	//
12788	// The `image-id` column is optional but must be unique if provided. If
12789	// it is
12790	// empty, the system will automatically assign a unique id to the
12791	// image.
12792	//
12793	// The `product-display-name` column is optional. If it is empty, the
12794	// system
12795	// sets the display_name field for the product to a
12796	// space (" "). You can update the `display_name` later by using the
12797	// API.
12798	//
12799	// If a `Product` with the specified `product-id` already exists, then
12800	// the
12801	// system ignores the `product-display-name`, `product-category`, and
12802	// `labels`
12803	// columns.
12804	//
12805	// The `labels` column (optional) is a line containing a list
12806	// of
12807	// comma-separated key-value pairs, in the following format:
12808	//
12809	//     "key_1=value_1,key_2=value_2,...,key_n=value_n"
12810	//
12811	// The `bounding-poly` column (optional) identifies one region
12812	// of
12813	// interest from the image in the same manner as `CreateReferenceImage`.
12814	// If
12815	// you do not specify the `bounding-poly` column, then the system will
12816	// try to
12817	// detect regions of interest automatically.
12818	//
12819	// At most one `bounding-poly` column is allowed per line. If the
12820	// image
12821	// contains multiple regions of interest, add a line to the CSV file
12822	// that
12823	// includes the same product information, and the `bounding-poly` values
12824	// for
12825	// each region of interest.
12826	//
12827	// The `bounding-poly` column must contain an even number of
12828	// comma-separated
12829	// numbers, in the format "p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y".
12830	// Use
12831	// non-negative integers for absolute bounding polygons, and float
12832	// values
12833	// in [0, 1] for normalized bounding polygons.
12834	//
12835	// The system will resize the image if the image resolution is too
12836	// large to process (larger than 20MP).
12837	CsvFileUri string `json:"csvFileUri,omitempty"`
12838
12839	// ForceSendFields is a list of field names (e.g. "CsvFileUri") to
12840	// unconditionally include in API requests. By default, fields with
12841	// empty values are omitted from API requests. However, any non-pointer,
12842	// non-interface field appearing in ForceSendFields will be sent to the
12843	// server regardless of whether the field is empty or not. This may be
12844	// used to include empty fields in Patch requests.
12845	ForceSendFields []string `json:"-"`
12846
12847	// NullFields is a list of field names (e.g. "CsvFileUri") to include in
12848	// API requests with the JSON null value. By default, fields with empty
12849	// values are omitted from API requests. However, any field with an
12850	// empty value appearing in NullFields will be sent to the server as
12851	// null. It is an error if a field in this list has a non-empty value.
12852	// This may be used to include null fields in Patch requests.
12853	NullFields []string `json:"-"`
12854}
12855
12856func (s *ImportProductSetsGcsSource) MarshalJSON() ([]byte, error) {
12857	type NoMethod ImportProductSetsGcsSource
12858	raw := NoMethod(*s)
12859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12860}
12861
12862// ImportProductSetsInputConfig: The input content for the
12863// `ImportProductSets` method.
12864type ImportProductSetsInputConfig struct {
12865	// GcsSource: The Google Cloud Storage location for a csv file which
12866	// preserves a list
12867	// of ImportProductSetRequests in each line.
12868	GcsSource *ImportProductSetsGcsSource `json:"gcsSource,omitempty"`
12869
12870	// ForceSendFields is a list of field names (e.g. "GcsSource") to
12871	// unconditionally include in API requests. By default, fields with
12872	// empty values are omitted from API requests. However, any non-pointer,
12873	// non-interface field appearing in ForceSendFields will be sent to the
12874	// server regardless of whether the field is empty or not. This may be
12875	// used to include empty fields in Patch requests.
12876	ForceSendFields []string `json:"-"`
12877
12878	// NullFields is a list of field names (e.g. "GcsSource") to include in
12879	// API requests with the JSON null value. By default, fields with empty
12880	// values are omitted from API requests. However, any field with an
12881	// empty value appearing in NullFields will be sent to the server as
12882	// null. It is an error if a field in this list has a non-empty value.
12883	// This may be used to include null fields in Patch requests.
12884	NullFields []string `json:"-"`
12885}
12886
12887func (s *ImportProductSetsInputConfig) MarshalJSON() ([]byte, error) {
12888	type NoMethod ImportProductSetsInputConfig
12889	raw := NoMethod(*s)
12890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12891}
12892
12893// ImportProductSetsRequest: Request message for the `ImportProductSets`
12894// method.
12895type ImportProductSetsRequest struct {
12896	// InputConfig: Required. The input content for the list of requests.
12897	InputConfig *ImportProductSetsInputConfig `json:"inputConfig,omitempty"`
12898
12899	// ForceSendFields is a list of field names (e.g. "InputConfig") to
12900	// unconditionally include in API requests. By default, fields with
12901	// empty values are omitted from API requests. However, any non-pointer,
12902	// non-interface field appearing in ForceSendFields will be sent to the
12903	// server regardless of whether the field is empty or not. This may be
12904	// used to include empty fields in Patch requests.
12905	ForceSendFields []string `json:"-"`
12906
12907	// NullFields is a list of field names (e.g. "InputConfig") to include
12908	// in API requests with the JSON null value. By default, fields with
12909	// empty values are omitted from API requests. However, any field with
12910	// an empty value appearing in NullFields will be sent to the server as
12911	// null. It is an error if a field in this list has a non-empty value.
12912	// This may be used to include null fields in Patch requests.
12913	NullFields []string `json:"-"`
12914}
12915
12916func (s *ImportProductSetsRequest) MarshalJSON() ([]byte, error) {
12917	type NoMethod ImportProductSetsRequest
12918	raw := NoMethod(*s)
12919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12920}
12921
12922// ImportProductSetsResponse: Response message for the
12923// `ImportProductSets` method.
12924//
12925// This message is returned by
12926// the
12927// google.longrunning.Operations.GetOperation method in the
12928// returned
12929// google.longrunning.Operation.response field.
12930type ImportProductSetsResponse struct {
12931	// ReferenceImages: The list of reference_images that are imported
12932	// successfully.
12933	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
12934
12935	// Statuses: The rpc status for each ImportProductSet request, including
12936	// both successes
12937	// and errors.
12938	//
12939	// The number of statuses here matches the number of lines in the csv
12940	// file,
12941	// and statuses[i] stores the success or failure status of processing
12942	// the i-th
12943	// line of the csv, starting from line 0.
12944	Statuses []*Status `json:"statuses,omitempty"`
12945
12946	// ForceSendFields is a list of field names (e.g. "ReferenceImages") to
12947	// unconditionally include in API requests. By default, fields with
12948	// empty values are omitted from API requests. However, any non-pointer,
12949	// non-interface field appearing in ForceSendFields will be sent to the
12950	// server regardless of whether the field is empty or not. This may be
12951	// used to include empty fields in Patch requests.
12952	ForceSendFields []string `json:"-"`
12953
12954	// NullFields is a list of field names (e.g. "ReferenceImages") to
12955	// include in API requests with the JSON null value. By default, fields
12956	// with empty values are omitted from API requests. However, any field
12957	// with an empty value appearing in NullFields will be sent to the
12958	// server as null. It is an error if a field in this list has a
12959	// non-empty value. This may be used to include null fields in Patch
12960	// requests.
12961	NullFields []string `json:"-"`
12962}
12963
12964func (s *ImportProductSetsResponse) MarshalJSON() ([]byte, error) {
12965	type NoMethod ImportProductSetsResponse
12966	raw := NoMethod(*s)
12967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12968}
12969
12970// InputConfig: The desired input location and metadata.
12971type InputConfig struct {
12972	// Content: File content, represented as a stream of bytes.
12973	// Note: As with all `bytes` fields, protobuffers use a pure
12974	// binary
12975	// representation, whereas JSON representations use base64.
12976	//
12977	// Currently, this field only works for BatchAnnotateFiles requests. It
12978	// does
12979	// not work for AsyncBatchAnnotateFiles requests.
12980	Content string `json:"content,omitempty"`
12981
12982	// GcsSource: The Google Cloud Storage location to read the input from.
12983	GcsSource *GcsSource `json:"gcsSource,omitempty"`
12984
12985	// MimeType: The type of the file. Currently only "application/pdf",
12986	// "image/tiff" and
12987	// "image/gif" are supported. Wildcards are not supported.
12988	MimeType string `json:"mimeType,omitempty"`
12989
12990	// ForceSendFields is a list of field names (e.g. "Content") to
12991	// unconditionally include in API requests. By default, fields with
12992	// empty values are omitted from API requests. However, any non-pointer,
12993	// non-interface field appearing in ForceSendFields will be sent to the
12994	// server regardless of whether the field is empty or not. This may be
12995	// used to include empty fields in Patch requests.
12996	ForceSendFields []string `json:"-"`
12997
12998	// NullFields is a list of field names (e.g. "Content") to include in
12999	// API requests with the JSON null value. By default, fields with empty
13000	// values are omitted from API requests. However, any field with an
13001	// empty value appearing in NullFields will be sent to the server as
13002	// null. It is an error if a field in this list has a non-empty value.
13003	// This may be used to include null fields in Patch requests.
13004	NullFields []string `json:"-"`
13005}
13006
13007func (s *InputConfig) MarshalJSON() ([]byte, error) {
13008	type NoMethod InputConfig
13009	raw := NoMethod(*s)
13010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13011}
13012
13013// KeyValue: A product label represented as a key-value pair.
13014type KeyValue struct {
13015	// Key: The key of the label attached to the product. Cannot be empty
13016	// and cannot
13017	// exceed 128 bytes.
13018	Key string `json:"key,omitempty"`
13019
13020	// Value: The value of the label attached to the product. Cannot be
13021	// empty and
13022	// cannot exceed 128 bytes.
13023	Value string `json:"value,omitempty"`
13024
13025	// ForceSendFields is a list of field names (e.g. "Key") to
13026	// unconditionally include in API requests. By default, fields with
13027	// empty values are omitted from API requests. However, any non-pointer,
13028	// non-interface field appearing in ForceSendFields will be sent to the
13029	// server regardless of whether the field is empty or not. This may be
13030	// used to include empty fields in Patch requests.
13031	ForceSendFields []string `json:"-"`
13032
13033	// NullFields is a list of field names (e.g. "Key") to include in API
13034	// requests with the JSON null value. By default, fields with empty
13035	// values are omitted from API requests. However, any field with an
13036	// empty value appearing in NullFields will be sent to the server as
13037	// null. It is an error if a field in this list has a non-empty value.
13038	// This may be used to include null fields in Patch requests.
13039	NullFields []string `json:"-"`
13040}
13041
13042func (s *KeyValue) MarshalJSON() ([]byte, error) {
13043	type NoMethod KeyValue
13044	raw := NoMethod(*s)
13045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13046}
13047
13048// Landmark: A face-specific landmark (for example, a face feature).
13049type Landmark struct {
13050	// Position: Face landmark position.
13051	Position *Position `json:"position,omitempty"`
13052
13053	// Type: Face landmark type.
13054	//
13055	// Possible values:
13056	//   "UNKNOWN_LANDMARK" - Unknown face landmark detected. Should not be
13057	// filled.
13058	//   "LEFT_EYE" - Left eye.
13059	//   "RIGHT_EYE" - Right eye.
13060	//   "LEFT_OF_LEFT_EYEBROW" - Left of left eyebrow.
13061	//   "RIGHT_OF_LEFT_EYEBROW" - Right of left eyebrow.
13062	//   "LEFT_OF_RIGHT_EYEBROW" - Left of right eyebrow.
13063	//   "RIGHT_OF_RIGHT_EYEBROW" - Right of right eyebrow.
13064	//   "MIDPOINT_BETWEEN_EYES" - Midpoint between eyes.
13065	//   "NOSE_TIP" - Nose tip.
13066	//   "UPPER_LIP" - Upper lip.
13067	//   "LOWER_LIP" - Lower lip.
13068	//   "MOUTH_LEFT" - Mouth left.
13069	//   "MOUTH_RIGHT" - Mouth right.
13070	//   "MOUTH_CENTER" - Mouth center.
13071	//   "NOSE_BOTTOM_RIGHT" - Nose, bottom right.
13072	//   "NOSE_BOTTOM_LEFT" - Nose, bottom left.
13073	//   "NOSE_BOTTOM_CENTER" - Nose, bottom center.
13074	//   "LEFT_EYE_TOP_BOUNDARY" - Left eye, top boundary.
13075	//   "LEFT_EYE_RIGHT_CORNER" - Left eye, right corner.
13076	//   "LEFT_EYE_BOTTOM_BOUNDARY" - Left eye, bottom boundary.
13077	//   "LEFT_EYE_LEFT_CORNER" - Left eye, left corner.
13078	//   "RIGHT_EYE_TOP_BOUNDARY" - Right eye, top boundary.
13079	//   "RIGHT_EYE_RIGHT_CORNER" - Right eye, right corner.
13080	//   "RIGHT_EYE_BOTTOM_BOUNDARY" - Right eye, bottom boundary.
13081	//   "RIGHT_EYE_LEFT_CORNER" - Right eye, left corner.
13082	//   "LEFT_EYEBROW_UPPER_MIDPOINT" - Left eyebrow, upper midpoint.
13083	//   "RIGHT_EYEBROW_UPPER_MIDPOINT" - Right eyebrow, upper midpoint.
13084	//   "LEFT_EAR_TRAGION" - Left ear tragion.
13085	//   "RIGHT_EAR_TRAGION" - Right ear tragion.
13086	//   "LEFT_EYE_PUPIL" - Left eye pupil.
13087	//   "RIGHT_EYE_PUPIL" - Right eye pupil.
13088	//   "FOREHEAD_GLABELLA" - Forehead glabella.
13089	//   "CHIN_GNATHION" - Chin gnathion.
13090	//   "CHIN_LEFT_GONION" - Chin left gonion.
13091	//   "CHIN_RIGHT_GONION" - Chin right gonion.
13092	Type string `json:"type,omitempty"`
13093
13094	// ForceSendFields is a list of field names (e.g. "Position") to
13095	// unconditionally include in API requests. By default, fields with
13096	// empty values are omitted from API requests. However, any non-pointer,
13097	// non-interface field appearing in ForceSendFields will be sent to the
13098	// server regardless of whether the field is empty or not. This may be
13099	// used to include empty fields in Patch requests.
13100	ForceSendFields []string `json:"-"`
13101
13102	// NullFields is a list of field names (e.g. "Position") to include in
13103	// API requests with the JSON null value. By default, fields with empty
13104	// values are omitted from API requests. However, any field with an
13105	// empty value appearing in NullFields will be sent to the server as
13106	// null. It is an error if a field in this list has a non-empty value.
13107	// This may be used to include null fields in Patch requests.
13108	NullFields []string `json:"-"`
13109}
13110
13111func (s *Landmark) MarshalJSON() ([]byte, error) {
13112	type NoMethod Landmark
13113	raw := NoMethod(*s)
13114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13115}
13116
13117// LatLng: An object representing a latitude/longitude pair. This is
13118// expressed as a pair
13119// of doubles representing degrees latitude and degrees longitude.
13120// Unless
13121// specified otherwise, this must conform to the
13122// <a
13123// href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
13124// st
13125// andard</a>. Values must be within normalized ranges.
13126type LatLng struct {
13127	// Latitude: The latitude in degrees. It must be in the range [-90.0,
13128	// +90.0].
13129	Latitude float64 `json:"latitude,omitempty"`
13130
13131	// Longitude: The longitude in degrees. It must be in the range [-180.0,
13132	// +180.0].
13133	Longitude float64 `json:"longitude,omitempty"`
13134
13135	// ForceSendFields is a list of field names (e.g. "Latitude") to
13136	// unconditionally include in API requests. By default, fields with
13137	// empty values are omitted from API requests. However, any non-pointer,
13138	// non-interface field appearing in ForceSendFields will be sent to the
13139	// server regardless of whether the field is empty or not. This may be
13140	// used to include empty fields in Patch requests.
13141	ForceSendFields []string `json:"-"`
13142
13143	// NullFields is a list of field names (e.g. "Latitude") to include in
13144	// API requests with the JSON null value. By default, fields with empty
13145	// values are omitted from API requests. However, any field with an
13146	// empty value appearing in NullFields will be sent to the server as
13147	// null. It is an error if a field in this list has a non-empty value.
13148	// This may be used to include null fields in Patch requests.
13149	NullFields []string `json:"-"`
13150}
13151
13152func (s *LatLng) MarshalJSON() ([]byte, error) {
13153	type NoMethod LatLng
13154	raw := NoMethod(*s)
13155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13156}
13157
13158func (s *LatLng) UnmarshalJSON(data []byte) error {
13159	type NoMethod LatLng
13160	var s1 struct {
13161		Latitude  gensupport.JSONFloat64 `json:"latitude"`
13162		Longitude gensupport.JSONFloat64 `json:"longitude"`
13163		*NoMethod
13164	}
13165	s1.NoMethod = (*NoMethod)(s)
13166	if err := json.Unmarshal(data, &s1); err != nil {
13167		return err
13168	}
13169	s.Latitude = float64(s1.Latitude)
13170	s.Longitude = float64(s1.Longitude)
13171	return nil
13172}
13173
13174// LatLongRect: Rectangle determined by min and max `LatLng` pairs.
13175type LatLongRect struct {
13176	// MaxLatLng: Max lat/long pair.
13177	MaxLatLng *LatLng `json:"maxLatLng,omitempty"`
13178
13179	// MinLatLng: Min lat/long pair.
13180	MinLatLng *LatLng `json:"minLatLng,omitempty"`
13181
13182	// ForceSendFields is a list of field names (e.g. "MaxLatLng") to
13183	// unconditionally include in API requests. By default, fields with
13184	// empty values are omitted from API requests. However, any non-pointer,
13185	// non-interface field appearing in ForceSendFields will be sent to the
13186	// server regardless of whether the field is empty or not. This may be
13187	// used to include empty fields in Patch requests.
13188	ForceSendFields []string `json:"-"`
13189
13190	// NullFields is a list of field names (e.g. "MaxLatLng") to include in
13191	// API requests with the JSON null value. By default, fields with empty
13192	// values are omitted from API requests. However, any field with an
13193	// empty value appearing in NullFields will be sent to the server as
13194	// null. It is an error if a field in this list has a non-empty value.
13195	// This may be used to include null fields in Patch requests.
13196	NullFields []string `json:"-"`
13197}
13198
13199func (s *LatLongRect) MarshalJSON() ([]byte, error) {
13200	type NoMethod LatLongRect
13201	raw := NoMethod(*s)
13202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13203}
13204
13205// ListOperationsResponse: The response message for
13206// Operations.ListOperations.
13207type ListOperationsResponse struct {
13208	// NextPageToken: The standard List next-page token.
13209	NextPageToken string `json:"nextPageToken,omitempty"`
13210
13211	// Operations: A list of operations that matches the specified filter in
13212	// the request.
13213	Operations []*Operation `json:"operations,omitempty"`
13214
13215	// ServerResponse contains the HTTP response code and headers from the
13216	// server.
13217	googleapi.ServerResponse `json:"-"`
13218
13219	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13220	// unconditionally include in API requests. By default, fields with
13221	// empty values are omitted from API requests. However, any non-pointer,
13222	// non-interface field appearing in ForceSendFields will be sent to the
13223	// server regardless of whether the field is empty or not. This may be
13224	// used to include empty fields in Patch requests.
13225	ForceSendFields []string `json:"-"`
13226
13227	// NullFields is a list of field names (e.g. "NextPageToken") to include
13228	// in API requests with the JSON null value. By default, fields with
13229	// empty values are omitted from API requests. However, any field with
13230	// an empty value appearing in NullFields will be sent to the server as
13231	// null. It is an error if a field in this list has a non-empty value.
13232	// This may be used to include null fields in Patch requests.
13233	NullFields []string `json:"-"`
13234}
13235
13236func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
13237	type NoMethod ListOperationsResponse
13238	raw := NoMethod(*s)
13239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13240}
13241
13242// ListProductSetsResponse: Response message for the `ListProductSets`
13243// method.
13244type ListProductSetsResponse struct {
13245	// NextPageToken: Token to retrieve the next page of results, or empty
13246	// if there are no more
13247	// results in the list.
13248	NextPageToken string `json:"nextPageToken,omitempty"`
13249
13250	// ProductSets: List of ProductSets.
13251	ProductSets []*ProductSet `json:"productSets,omitempty"`
13252
13253	// ServerResponse contains the HTTP response code and headers from the
13254	// server.
13255	googleapi.ServerResponse `json:"-"`
13256
13257	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13258	// unconditionally include in API requests. By default, fields with
13259	// empty values are omitted from API requests. However, any non-pointer,
13260	// non-interface field appearing in ForceSendFields will be sent to the
13261	// server regardless of whether the field is empty or not. This may be
13262	// used to include empty fields in Patch requests.
13263	ForceSendFields []string `json:"-"`
13264
13265	// NullFields is a list of field names (e.g. "NextPageToken") to include
13266	// in API requests with the JSON null value. By default, fields with
13267	// empty values are omitted from API requests. However, any field with
13268	// an empty value appearing in NullFields will be sent to the server as
13269	// null. It is an error if a field in this list has a non-empty value.
13270	// This may be used to include null fields in Patch requests.
13271	NullFields []string `json:"-"`
13272}
13273
13274func (s *ListProductSetsResponse) MarshalJSON() ([]byte, error) {
13275	type NoMethod ListProductSetsResponse
13276	raw := NoMethod(*s)
13277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13278}
13279
13280// ListProductsInProductSetResponse: Response message for the
13281// `ListProductsInProductSet` method.
13282type ListProductsInProductSetResponse struct {
13283	// NextPageToken: Token to retrieve the next page of results, or empty
13284	// if there are no more
13285	// results in the list.
13286	NextPageToken string `json:"nextPageToken,omitempty"`
13287
13288	// Products: The list of Products.
13289	Products []*Product `json:"products,omitempty"`
13290
13291	// ServerResponse contains the HTTP response code and headers from the
13292	// server.
13293	googleapi.ServerResponse `json:"-"`
13294
13295	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13296	// unconditionally include in API requests. By default, fields with
13297	// empty values are omitted from API requests. However, any non-pointer,
13298	// non-interface field appearing in ForceSendFields will be sent to the
13299	// server regardless of whether the field is empty or not. This may be
13300	// used to include empty fields in Patch requests.
13301	ForceSendFields []string `json:"-"`
13302
13303	// NullFields is a list of field names (e.g. "NextPageToken") to include
13304	// in API requests with the JSON null value. By default, fields with
13305	// empty values are omitted from API requests. However, any field with
13306	// an empty value appearing in NullFields will be sent to the server as
13307	// null. It is an error if a field in this list has a non-empty value.
13308	// This may be used to include null fields in Patch requests.
13309	NullFields []string `json:"-"`
13310}
13311
13312func (s *ListProductsInProductSetResponse) MarshalJSON() ([]byte, error) {
13313	type NoMethod ListProductsInProductSetResponse
13314	raw := NoMethod(*s)
13315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13316}
13317
13318// ListProductsResponse: Response message for the `ListProducts` method.
13319type ListProductsResponse struct {
13320	// NextPageToken: Token to retrieve the next page of results, or empty
13321	// if there are no more
13322	// results in the list.
13323	NextPageToken string `json:"nextPageToken,omitempty"`
13324
13325	// Products: List of products.
13326	Products []*Product `json:"products,omitempty"`
13327
13328	// ServerResponse contains the HTTP response code and headers from the
13329	// server.
13330	googleapi.ServerResponse `json:"-"`
13331
13332	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13333	// unconditionally include in API requests. By default, fields with
13334	// empty values are omitted from API requests. However, any non-pointer,
13335	// non-interface field appearing in ForceSendFields will be sent to the
13336	// server regardless of whether the field is empty or not. This may be
13337	// used to include empty fields in Patch requests.
13338	ForceSendFields []string `json:"-"`
13339
13340	// NullFields is a list of field names (e.g. "NextPageToken") to include
13341	// in API requests with the JSON null value. By default, fields with
13342	// empty values are omitted from API requests. However, any field with
13343	// an empty value appearing in NullFields will be sent to the server as
13344	// null. It is an error if a field in this list has a non-empty value.
13345	// This may be used to include null fields in Patch requests.
13346	NullFields []string `json:"-"`
13347}
13348
13349func (s *ListProductsResponse) MarshalJSON() ([]byte, error) {
13350	type NoMethod ListProductsResponse
13351	raw := NoMethod(*s)
13352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13353}
13354
13355// ListReferenceImagesResponse: Response message for the
13356// `ListReferenceImages` method.
13357type ListReferenceImagesResponse struct {
13358	// NextPageToken: The next_page_token returned from a previous List
13359	// request, if any.
13360	NextPageToken string `json:"nextPageToken,omitempty"`
13361
13362	// PageSize: The maximum number of items to return. Default 10, maximum
13363	// 100.
13364	PageSize int64 `json:"pageSize,omitempty"`
13365
13366	// ReferenceImages: The list of reference images.
13367	ReferenceImages []*ReferenceImage `json:"referenceImages,omitempty"`
13368
13369	// ServerResponse contains the HTTP response code and headers from the
13370	// server.
13371	googleapi.ServerResponse `json:"-"`
13372
13373	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13374	// unconditionally include in API requests. By default, fields with
13375	// empty values are omitted from API requests. However, any non-pointer,
13376	// non-interface field appearing in ForceSendFields will be sent to the
13377	// server regardless of whether the field is empty or not. This may be
13378	// used to include empty fields in Patch requests.
13379	ForceSendFields []string `json:"-"`
13380
13381	// NullFields is a list of field names (e.g. "NextPageToken") to include
13382	// in API requests with the JSON null value. By default, fields with
13383	// empty values are omitted from API requests. However, any field with
13384	// an empty value appearing in NullFields will be sent to the server as
13385	// null. It is an error if a field in this list has a non-empty value.
13386	// This may be used to include null fields in Patch requests.
13387	NullFields []string `json:"-"`
13388}
13389
13390func (s *ListReferenceImagesResponse) MarshalJSON() ([]byte, error) {
13391	type NoMethod ListReferenceImagesResponse
13392	raw := NoMethod(*s)
13393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13394}
13395
13396// LocalizedObjectAnnotation: Set of detected objects with bounding
13397// boxes.
13398type LocalizedObjectAnnotation struct {
13399	// BoundingPoly: Image region to which this object belongs. This must be
13400	// populated.
13401	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
13402
13403	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
13404	// For more
13405	// information,
13406	// see
13407	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13408	LanguageCode string `json:"languageCode,omitempty"`
13409
13410	// Mid: Object ID that should align with EntityAnnotation mid.
13411	Mid string `json:"mid,omitempty"`
13412
13413	// Name: Object name, expressed in its `language_code` language.
13414	Name string `json:"name,omitempty"`
13415
13416	// Score: Score of the result. Range [0, 1].
13417	Score float64 `json:"score,omitempty"`
13418
13419	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
13420	// unconditionally include in API requests. By default, fields with
13421	// empty values are omitted from API requests. However, any non-pointer,
13422	// non-interface field appearing in ForceSendFields will be sent to the
13423	// server regardless of whether the field is empty or not. This may be
13424	// used to include empty fields in Patch requests.
13425	ForceSendFields []string `json:"-"`
13426
13427	// NullFields is a list of field names (e.g. "BoundingPoly") to include
13428	// in API requests with the JSON null value. By default, fields with
13429	// empty values are omitted from API requests. However, any field with
13430	// an empty value appearing in NullFields will be sent to the server as
13431	// null. It is an error if a field in this list has a non-empty value.
13432	// This may be used to include null fields in Patch requests.
13433	NullFields []string `json:"-"`
13434}
13435
13436func (s *LocalizedObjectAnnotation) MarshalJSON() ([]byte, error) {
13437	type NoMethod LocalizedObjectAnnotation
13438	raw := NoMethod(*s)
13439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13440}
13441
13442func (s *LocalizedObjectAnnotation) UnmarshalJSON(data []byte) error {
13443	type NoMethod LocalizedObjectAnnotation
13444	var s1 struct {
13445		Score gensupport.JSONFloat64 `json:"score"`
13446		*NoMethod
13447	}
13448	s1.NoMethod = (*NoMethod)(s)
13449	if err := json.Unmarshal(data, &s1); err != nil {
13450		return err
13451	}
13452	s.Score = float64(s1.Score)
13453	return nil
13454}
13455
13456// LocationInfo: Detected entity location information.
13457type LocationInfo struct {
13458	// LatLng: lat/long location coordinates.
13459	LatLng *LatLng `json:"latLng,omitempty"`
13460
13461	// ForceSendFields is a list of field names (e.g. "LatLng") to
13462	// unconditionally include in API requests. By default, fields with
13463	// empty values are omitted from API requests. However, any non-pointer,
13464	// non-interface field appearing in ForceSendFields will be sent to the
13465	// server regardless of whether the field is empty or not. This may be
13466	// used to include empty fields in Patch requests.
13467	ForceSendFields []string `json:"-"`
13468
13469	// NullFields is a list of field names (e.g. "LatLng") to include in API
13470	// requests with the JSON null value. By default, fields with empty
13471	// values are omitted from API requests. However, any field with an
13472	// empty value appearing in NullFields will be sent to the server as
13473	// null. It is an error if a field in this list has a non-empty value.
13474	// This may be used to include null fields in Patch requests.
13475	NullFields []string `json:"-"`
13476}
13477
13478func (s *LocationInfo) MarshalJSON() ([]byte, error) {
13479	type NoMethod LocationInfo
13480	raw := NoMethod(*s)
13481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13482}
13483
13484// NormalizedVertex: A vertex represents a 2D point in the image.
13485// NOTE: the normalized vertex coordinates are relative to the original
13486// image
13487// and range from 0 to 1.
13488type NormalizedVertex struct {
13489	// X: X coordinate.
13490	X float64 `json:"x,omitempty"`
13491
13492	// Y: Y coordinate.
13493	Y float64 `json:"y,omitempty"`
13494
13495	// ForceSendFields is a list of field names (e.g. "X") to
13496	// unconditionally include in API requests. By default, fields with
13497	// empty values are omitted from API requests. However, any non-pointer,
13498	// non-interface field appearing in ForceSendFields will be sent to the
13499	// server regardless of whether the field is empty or not. This may be
13500	// used to include empty fields in Patch requests.
13501	ForceSendFields []string `json:"-"`
13502
13503	// NullFields is a list of field names (e.g. "X") to include in API
13504	// requests with the JSON null value. By default, fields with empty
13505	// values are omitted from API requests. However, any field with an
13506	// empty value appearing in NullFields will be sent to the server as
13507	// null. It is an error if a field in this list has a non-empty value.
13508	// This may be used to include null fields in Patch requests.
13509	NullFields []string `json:"-"`
13510}
13511
13512func (s *NormalizedVertex) MarshalJSON() ([]byte, error) {
13513	type NoMethod NormalizedVertex
13514	raw := NoMethod(*s)
13515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13516}
13517
13518func (s *NormalizedVertex) UnmarshalJSON(data []byte) error {
13519	type NoMethod NormalizedVertex
13520	var s1 struct {
13521		X gensupport.JSONFloat64 `json:"x"`
13522		Y gensupport.JSONFloat64 `json:"y"`
13523		*NoMethod
13524	}
13525	s1.NoMethod = (*NoMethod)(s)
13526	if err := json.Unmarshal(data, &s1); err != nil {
13527		return err
13528	}
13529	s.X = float64(s1.X)
13530	s.Y = float64(s1.Y)
13531	return nil
13532}
13533
13534// ObjectAnnotation: Prediction for what the object in the bounding box
13535// is.
13536type ObjectAnnotation struct {
13537	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn".
13538	// For more
13539	// information,
13540	// see
13541	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
13542	LanguageCode string `json:"languageCode,omitempty"`
13543
13544	// Mid: Object ID that should align with EntityAnnotation mid.
13545	Mid string `json:"mid,omitempty"`
13546
13547	// Name: Object name, expressed in its `language_code` language.
13548	Name string `json:"name,omitempty"`
13549
13550	// Score: Score of the result. Range [0, 1].
13551	Score float64 `json:"score,omitempty"`
13552
13553	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
13554	// unconditionally include in API requests. By default, fields with
13555	// empty values are omitted from API requests. However, any non-pointer,
13556	// non-interface field appearing in ForceSendFields will be sent to the
13557	// server regardless of whether the field is empty or not. This may be
13558	// used to include empty fields in Patch requests.
13559	ForceSendFields []string `json:"-"`
13560
13561	// NullFields is a list of field names (e.g. "LanguageCode") to include
13562	// in API requests with the JSON null value. By default, fields with
13563	// empty values are omitted from API requests. However, any field with
13564	// an empty value appearing in NullFields will be sent to the server as
13565	// null. It is an error if a field in this list has a non-empty value.
13566	// This may be used to include null fields in Patch requests.
13567	NullFields []string `json:"-"`
13568}
13569
13570func (s *ObjectAnnotation) MarshalJSON() ([]byte, error) {
13571	type NoMethod ObjectAnnotation
13572	raw := NoMethod(*s)
13573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13574}
13575
13576func (s *ObjectAnnotation) UnmarshalJSON(data []byte) error {
13577	type NoMethod ObjectAnnotation
13578	var s1 struct {
13579		Score gensupport.JSONFloat64 `json:"score"`
13580		*NoMethod
13581	}
13582	s1.NoMethod = (*NoMethod)(s)
13583	if err := json.Unmarshal(data, &s1); err != nil {
13584		return err
13585	}
13586	s.Score = float64(s1.Score)
13587	return nil
13588}
13589
13590// Operation: This resource represents a long-running operation that is
13591// the result of a
13592// network API call.
13593type Operation struct {
13594	// Done: If the value is `false`, it means the operation is still in
13595	// progress.
13596	// If `true`, the operation is completed, and either `error` or
13597	// `response` is
13598	// available.
13599	Done bool `json:"done,omitempty"`
13600
13601	// Error: The error result of the operation in case of failure or
13602	// cancellation.
13603	Error *Status `json:"error,omitempty"`
13604
13605	// Metadata: Service-specific metadata associated with the operation.
13606	// It typically
13607	// contains progress information and common metadata such as create
13608	// time.
13609	// Some services might not provide such metadata.  Any method that
13610	// returns a
13611	// long-running operation should document the metadata type, if any.
13612	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
13613
13614	// Name: The server-assigned name, which is only unique within the same
13615	// service that
13616	// originally returns it. If you use the default HTTP mapping,
13617	// the
13618	// `name` should be a resource name ending with
13619	// `operations/{unique_id}`.
13620	Name string `json:"name,omitempty"`
13621
13622	// Response: The normal response of the operation in case of success.
13623	// If the original
13624	// method returns no data on success, such as `Delete`, the response
13625	// is
13626	// `google.protobuf.Empty`.  If the original method is
13627	// standard
13628	// `Get`/`Create`/`Update`, the response should be the resource.  For
13629	// other
13630	// methods, the response should have the type `XxxResponse`, where
13631	// `Xxx`
13632	// is the original method name.  For example, if the original method
13633	// name
13634	// is `TakeSnapshot()`, the inferred response type
13635	// is
13636	// `TakeSnapshotResponse`.
13637	Response googleapi.RawMessage `json:"response,omitempty"`
13638
13639	// ServerResponse contains the HTTP response code and headers from the
13640	// server.
13641	googleapi.ServerResponse `json:"-"`
13642
13643	// ForceSendFields is a list of field names (e.g. "Done") to
13644	// unconditionally include in API requests. By default, fields with
13645	// empty values are omitted from API requests. However, any non-pointer,
13646	// non-interface field appearing in ForceSendFields will be sent to the
13647	// server regardless of whether the field is empty or not. This may be
13648	// used to include empty fields in Patch requests.
13649	ForceSendFields []string `json:"-"`
13650
13651	// NullFields is a list of field names (e.g. "Done") to include in API
13652	// requests with the JSON null value. By default, fields with empty
13653	// values are omitted from API requests. However, any field with an
13654	// empty value appearing in NullFields will be sent to the server as
13655	// null. It is an error if a field in this list has a non-empty value.
13656	// This may be used to include null fields in Patch requests.
13657	NullFields []string `json:"-"`
13658}
13659
13660func (s *Operation) MarshalJSON() ([]byte, error) {
13661	type NoMethod Operation
13662	raw := NoMethod(*s)
13663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13664}
13665
13666// OperationMetadata: Contains metadata for the BatchAnnotateImages
13667// operation.
13668type OperationMetadata struct {
13669	// CreateTime: The time when the batch request was received.
13670	CreateTime string `json:"createTime,omitempty"`
13671
13672	// State: Current state of the batch operation.
13673	//
13674	// Possible values:
13675	//   "STATE_UNSPECIFIED" - Invalid.
13676	//   "CREATED" - Request is received.
13677	//   "RUNNING" - Request is actively being processed.
13678	//   "DONE" - The batch processing is done.
13679	//   "CANCELLED" - The batch processing was cancelled.
13680	State string `json:"state,omitempty"`
13681
13682	// UpdateTime: The time when the operation result was last updated.
13683	UpdateTime string `json:"updateTime,omitempty"`
13684
13685	// ForceSendFields is a list of field names (e.g. "CreateTime") to
13686	// unconditionally include in API requests. By default, fields with
13687	// empty values are omitted from API requests. However, any non-pointer,
13688	// non-interface field appearing in ForceSendFields will be sent to the
13689	// server regardless of whether the field is empty or not. This may be
13690	// used to include empty fields in Patch requests.
13691	ForceSendFields []string `json:"-"`
13692
13693	// NullFields is a list of field names (e.g. "CreateTime") to include in
13694	// API requests with the JSON null value. By default, fields with empty
13695	// values are omitted from API requests. However, any field with an
13696	// empty value appearing in NullFields will be sent to the server as
13697	// null. It is an error if a field in this list has a non-empty value.
13698	// This may be used to include null fields in Patch requests.
13699	NullFields []string `json:"-"`
13700}
13701
13702func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
13703	type NoMethod OperationMetadata
13704	raw := NoMethod(*s)
13705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13706}
13707
13708// OutputConfig: The desired output location and metadata.
13709type OutputConfig struct {
13710	// BatchSize: The max number of response protos to put into each output
13711	// JSON file on
13712	// Google Cloud Storage.
13713	// The valid range is [1, 100]. If not specified, the default value is
13714	// 20.
13715	//
13716	// For example, for one pdf file with 100 pages, 100 response protos
13717	// will
13718	// be generated. If `batch_size` = 20, then 5 json files each
13719	// containing 20 response protos will be written under the
13720	// prefix
13721	// `gcs_destination`.`uri`.
13722	//
13723	// Currently, batch_size only applies to GcsDestination, with potential
13724	// future
13725	// support for other output configurations.
13726	BatchSize int64 `json:"batchSize,omitempty"`
13727
13728	// GcsDestination: The Google Cloud Storage location to write the
13729	// output(s) to.
13730	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
13731
13732	// ForceSendFields is a list of field names (e.g. "BatchSize") to
13733	// unconditionally include in API requests. By default, fields with
13734	// empty values are omitted from API requests. However, any non-pointer,
13735	// non-interface field appearing in ForceSendFields will be sent to the
13736	// server regardless of whether the field is empty or not. This may be
13737	// used to include empty fields in Patch requests.
13738	ForceSendFields []string `json:"-"`
13739
13740	// NullFields is a list of field names (e.g. "BatchSize") to include in
13741	// API requests with the JSON null value. By default, fields with empty
13742	// values are omitted from API requests. However, any field with an
13743	// empty value appearing in NullFields will be sent to the server as
13744	// null. It is an error if a field in this list has a non-empty value.
13745	// This may be used to include null fields in Patch requests.
13746	NullFields []string `json:"-"`
13747}
13748
13749func (s *OutputConfig) MarshalJSON() ([]byte, error) {
13750	type NoMethod OutputConfig
13751	raw := NoMethod(*s)
13752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13753}
13754
13755// Page: Detected page from OCR.
13756type Page struct {
13757	// Blocks: List of blocks of text, images etc on this page.
13758	Blocks []*Block `json:"blocks,omitempty"`
13759
13760	// Confidence: Confidence of the OCR results on the page. Range [0, 1].
13761	Confidence float64 `json:"confidence,omitempty"`
13762
13763	// Height: Page height. For PDFs the unit is points. For images
13764	// (including
13765	// TIFFs) the unit is pixels.
13766	Height int64 `json:"height,omitempty"`
13767
13768	// Property: Additional information detected on the page.
13769	Property *TextProperty `json:"property,omitempty"`
13770
13771	// Width: Page width. For PDFs the unit is points. For images
13772	// (including
13773	// TIFFs) the unit is pixels.
13774	Width int64 `json:"width,omitempty"`
13775
13776	// ForceSendFields is a list of field names (e.g. "Blocks") to
13777	// unconditionally include in API requests. By default, fields with
13778	// empty values are omitted from API requests. However, any non-pointer,
13779	// non-interface field appearing in ForceSendFields will be sent to the
13780	// server regardless of whether the field is empty or not. This may be
13781	// used to include empty fields in Patch requests.
13782	ForceSendFields []string `json:"-"`
13783
13784	// NullFields is a list of field names (e.g. "Blocks") to include in API
13785	// requests with the JSON null value. By default, fields with empty
13786	// values are omitted from API requests. However, any field with an
13787	// empty value appearing in NullFields will be sent to the server as
13788	// null. It is an error if a field in this list has a non-empty value.
13789	// This may be used to include null fields in Patch requests.
13790	NullFields []string `json:"-"`
13791}
13792
13793func (s *Page) MarshalJSON() ([]byte, error) {
13794	type NoMethod Page
13795	raw := NoMethod(*s)
13796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13797}
13798
13799func (s *Page) UnmarshalJSON(data []byte) error {
13800	type NoMethod Page
13801	var s1 struct {
13802		Confidence gensupport.JSONFloat64 `json:"confidence"`
13803		*NoMethod
13804	}
13805	s1.NoMethod = (*NoMethod)(s)
13806	if err := json.Unmarshal(data, &s1); err != nil {
13807		return err
13808	}
13809	s.Confidence = float64(s1.Confidence)
13810	return nil
13811}
13812
13813// Paragraph: Structural unit of text representing a number of words in
13814// certain order.
13815type Paragraph struct {
13816	// BoundingBox: The bounding box for the paragraph.
13817	// The vertices are in the order of top-left, top-right,
13818	// bottom-right,
13819	// bottom-left. When a rotation of the bounding box is detected the
13820	// rotation
13821	// is represented as around the top-left corner as defined when the text
13822	// is
13823	// read in the 'natural' orientation.
13824	// For example:
13825	//   * when the text is horizontal it might look like:
13826	//      0----1
13827	//      |    |
13828	//      3----2
13829	//   * when it's rotated 180 degrees around the top-left corner it
13830	// becomes:
13831	//      2----3
13832	//      |    |
13833	//      1----0
13834	//   and the vertex order will still be (0, 1, 2, 3).
13835	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
13836
13837	// Confidence: Confidence of the OCR results for the paragraph. Range
13838	// [0, 1].
13839	Confidence float64 `json:"confidence,omitempty"`
13840
13841	// Property: Additional information detected for the paragraph.
13842	Property *TextProperty `json:"property,omitempty"`
13843
13844	// Words: List of all words in this paragraph.
13845	Words []*Word `json:"words,omitempty"`
13846
13847	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
13848	// unconditionally include in API requests. By default, fields with
13849	// empty values are omitted from API requests. However, any non-pointer,
13850	// non-interface field appearing in ForceSendFields will be sent to the
13851	// server regardless of whether the field is empty or not. This may be
13852	// used to include empty fields in Patch requests.
13853	ForceSendFields []string `json:"-"`
13854
13855	// NullFields is a list of field names (e.g. "BoundingBox") to include
13856	// in API requests with the JSON null value. By default, fields with
13857	// empty values are omitted from API requests. However, any field with
13858	// an empty value appearing in NullFields will be sent to the server as
13859	// null. It is an error if a field in this list has a non-empty value.
13860	// This may be used to include null fields in Patch requests.
13861	NullFields []string `json:"-"`
13862}
13863
13864func (s *Paragraph) MarshalJSON() ([]byte, error) {
13865	type NoMethod Paragraph
13866	raw := NoMethod(*s)
13867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13868}
13869
13870func (s *Paragraph) UnmarshalJSON(data []byte) error {
13871	type NoMethod Paragraph
13872	var s1 struct {
13873		Confidence gensupport.JSONFloat64 `json:"confidence"`
13874		*NoMethod
13875	}
13876	s1.NoMethod = (*NoMethod)(s)
13877	if err := json.Unmarshal(data, &s1); err != nil {
13878		return err
13879	}
13880	s.Confidence = float64(s1.Confidence)
13881	return nil
13882}
13883
13884// Position: A 3D position in the image, used primarily for Face
13885// detection landmarks.
13886// A valid Position must have both x and y coordinates.
13887// The position coordinates are in the same scale as the original image.
13888type Position struct {
13889	// X: X coordinate.
13890	X float64 `json:"x,omitempty"`
13891
13892	// Y: Y coordinate.
13893	Y float64 `json:"y,omitempty"`
13894
13895	// Z: Z coordinate (or depth).
13896	Z float64 `json:"z,omitempty"`
13897
13898	// ForceSendFields is a list of field names (e.g. "X") to
13899	// unconditionally include in API requests. By default, fields with
13900	// empty values are omitted from API requests. However, any non-pointer,
13901	// non-interface field appearing in ForceSendFields will be sent to the
13902	// server regardless of whether the field is empty or not. This may be
13903	// used to include empty fields in Patch requests.
13904	ForceSendFields []string `json:"-"`
13905
13906	// NullFields is a list of field names (e.g. "X") to include in API
13907	// requests with the JSON null value. By default, fields with empty
13908	// values are omitted from API requests. However, any field with an
13909	// empty value appearing in NullFields will be sent to the server as
13910	// null. It is an error if a field in this list has a non-empty value.
13911	// This may be used to include null fields in Patch requests.
13912	NullFields []string `json:"-"`
13913}
13914
13915func (s *Position) MarshalJSON() ([]byte, error) {
13916	type NoMethod Position
13917	raw := NoMethod(*s)
13918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13919}
13920
13921func (s *Position) UnmarshalJSON(data []byte) error {
13922	type NoMethod Position
13923	var s1 struct {
13924		X gensupport.JSONFloat64 `json:"x"`
13925		Y gensupport.JSONFloat64 `json:"y"`
13926		Z gensupport.JSONFloat64 `json:"z"`
13927		*NoMethod
13928	}
13929	s1.NoMethod = (*NoMethod)(s)
13930	if err := json.Unmarshal(data, &s1); err != nil {
13931		return err
13932	}
13933	s.X = float64(s1.X)
13934	s.Y = float64(s1.Y)
13935	s.Z = float64(s1.Z)
13936	return nil
13937}
13938
13939// Product: A Product contains ReferenceImages.
13940type Product struct {
13941	// Description: User-provided metadata to be stored with this product.
13942	// Must be at most 4096
13943	// characters long.
13944	Description string `json:"description,omitempty"`
13945
13946	// DisplayName: The user-provided name for this Product. Must not be
13947	// empty. Must be at most
13948	// 4096 characters long.
13949	DisplayName string `json:"displayName,omitempty"`
13950
13951	// Name: The resource name of the product.
13952	//
13953	// Format
13954	// is:
13955	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
13956	//
13957	// This field is ignored when creating a product.
13958	Name string `json:"name,omitempty"`
13959
13960	// ProductCategory: Immutable. The category for the product identified
13961	// by the reference image. This should
13962	// be either "homegoods-v2", "apparel-v2", or "toys-v2". The legacy
13963	// categories
13964	// "homegoods", "apparel", and "toys" are still supported, but these
13965	// should
13966	// not be used for new products.
13967	ProductCategory string `json:"productCategory,omitempty"`
13968
13969	// ProductLabels: Key-value pairs that can be attached to a product. At
13970	// query time,
13971	// constraints can be specified based on the product_labels.
13972	//
13973	// Note that integer values can be provided as strings, e.g. "1199".
13974	// Only
13975	// strings with integer values can match a range-based restriction which
13976	// is
13977	// to be supported soon.
13978	//
13979	// Multiple values can be assigned to the same key. One product may have
13980	// up to
13981	// 500 product_labels.
13982	//
13983	// Notice that the total number of distinct product_labels over all
13984	// products
13985	// in one ProductSet cannot exceed 1M, otherwise the product search
13986	// pipeline
13987	// will refuse to work for that ProductSet.
13988	ProductLabels []*KeyValue `json:"productLabels,omitempty"`
13989
13990	// ServerResponse contains the HTTP response code and headers from the
13991	// server.
13992	googleapi.ServerResponse `json:"-"`
13993
13994	// ForceSendFields is a list of field names (e.g. "Description") to
13995	// unconditionally include in API requests. By default, fields with
13996	// empty values are omitted from API requests. However, any non-pointer,
13997	// non-interface field appearing in ForceSendFields will be sent to the
13998	// server regardless of whether the field is empty or not. This may be
13999	// used to include empty fields in Patch requests.
14000	ForceSendFields []string `json:"-"`
14001
14002	// NullFields is a list of field names (e.g. "Description") to include
14003	// in API requests with the JSON null value. By default, fields with
14004	// empty values are omitted from API requests. However, any field with
14005	// an empty value appearing in NullFields will be sent to the server as
14006	// null. It is an error if a field in this list has a non-empty value.
14007	// This may be used to include null fields in Patch requests.
14008	NullFields []string `json:"-"`
14009}
14010
14011func (s *Product) MarshalJSON() ([]byte, error) {
14012	type NoMethod Product
14013	raw := NoMethod(*s)
14014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14015}
14016
14017// ProductSearchParams: Parameters for a product search request.
14018type ProductSearchParams struct {
14019	// BoundingPoly: The bounding polygon around the area of interest in the
14020	// image.
14021	// If it is not specified, system discretion will be applied.
14022	BoundingPoly *BoundingPoly `json:"boundingPoly,omitempty"`
14023
14024	// Filter: The filtering expression. This can be used to restrict search
14025	// results based
14026	// on Product labels. We currently support an AND of OR of
14027	// key-value
14028	// expressions, where each expression within an OR must have the same
14029	// key. An
14030	// '=' should be used to connect the key and value.
14031	//
14032	// For example, "(color = red OR color = blue) AND brand = Google"
14033	// is
14034	// acceptable, but "(color = red OR brand = Google)" is not
14035	// acceptable.
14036	// "color: red" is not acceptable because it uses a ':' instead of an
14037	// '='.
14038	Filter string `json:"filter,omitempty"`
14039
14040	// ProductCategories: The list of product categories to search in.
14041	// Currently, we only consider
14042	// the first category, and either "homegoods-v2", "apparel-v2",
14043	// "toys-v2",
14044	// "packagedgoods-v1", or "general-v1" should be specified. The
14045	// legacy
14046	// categories "homegoods", "apparel", and "toys" are still supported but
14047	// will
14048	// be deprecated. For new products, please use "homegoods-v2",
14049	// "apparel-v2",
14050	// or "toys-v2" for better product search accuracy. It is recommended
14051	// to
14052	// migrate existing products to these categories as well.
14053	ProductCategories []string `json:"productCategories,omitempty"`
14054
14055	// ProductSet: The resource name of a ProductSet to be searched for
14056	// similar images.
14057	//
14058	// Format
14059	// is:
14060	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
14061	ProductSet string `json:"productSet,omitempty"`
14062
14063	// ForceSendFields is a list of field names (e.g. "BoundingPoly") to
14064	// unconditionally include in API requests. By default, fields with
14065	// empty values are omitted from API requests. However, any non-pointer,
14066	// non-interface field appearing in ForceSendFields will be sent to the
14067	// server regardless of whether the field is empty or not. This may be
14068	// used to include empty fields in Patch requests.
14069	ForceSendFields []string `json:"-"`
14070
14071	// NullFields is a list of field names (e.g. "BoundingPoly") to include
14072	// in API requests with the JSON null value. By default, fields with
14073	// empty values are omitted from API requests. However, any field with
14074	// an empty value appearing in NullFields will be sent to the server as
14075	// null. It is an error if a field in this list has a non-empty value.
14076	// This may be used to include null fields in Patch requests.
14077	NullFields []string `json:"-"`
14078}
14079
14080func (s *ProductSearchParams) MarshalJSON() ([]byte, error) {
14081	type NoMethod ProductSearchParams
14082	raw := NoMethod(*s)
14083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14084}
14085
14086// ProductSearchResults: Results for a product search request.
14087type ProductSearchResults struct {
14088	// IndexTime: Timestamp of the index which provided these results.
14089	// Products added to the
14090	// product set and products removed from the product set after this time
14091	// are
14092	// not reflected in the current results.
14093	IndexTime string `json:"indexTime,omitempty"`
14094
14095	// ProductGroupedResults: List of results grouped by products detected
14096	// in the query image. Each entry
14097	// corresponds to one bounding polygon in the query image, and contains
14098	// the
14099	// matching products specific to that region. There may be duplicate
14100	// product
14101	// matches in the union of all the per-product results.
14102	ProductGroupedResults []*GroupedResult `json:"productGroupedResults,omitempty"`
14103
14104	// Results: List of results, one for each product match.
14105	Results []*Result `json:"results,omitempty"`
14106
14107	// ForceSendFields is a list of field names (e.g. "IndexTime") to
14108	// unconditionally include in API requests. By default, fields with
14109	// empty values are omitted from API requests. However, any non-pointer,
14110	// non-interface field appearing in ForceSendFields will be sent to the
14111	// server regardless of whether the field is empty or not. This may be
14112	// used to include empty fields in Patch requests.
14113	ForceSendFields []string `json:"-"`
14114
14115	// NullFields is a list of field names (e.g. "IndexTime") to include in
14116	// API requests with the JSON null value. By default, fields with empty
14117	// values are omitted from API requests. However, any field with an
14118	// empty value appearing in NullFields will be sent to the server as
14119	// null. It is an error if a field in this list has a non-empty value.
14120	// This may be used to include null fields in Patch requests.
14121	NullFields []string `json:"-"`
14122}
14123
14124func (s *ProductSearchResults) MarshalJSON() ([]byte, error) {
14125	type NoMethod ProductSearchResults
14126	raw := NoMethod(*s)
14127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14128}
14129
14130// ProductSet: A ProductSet contains Products. A ProductSet can contain
14131// a maximum of 1
14132// million reference images. If the limit is exceeded, periodic indexing
14133// will
14134// fail.
14135type ProductSet struct {
14136	// DisplayName: The user-provided name for this ProductSet. Must not be
14137	// empty. Must be at
14138	// most 4096 characters long.
14139	DisplayName string `json:"displayName,omitempty"`
14140
14141	// IndexError: Output only. If there was an error with indexing the
14142	// product set, the field
14143	// is populated.
14144	//
14145	// This field is ignored when creating a ProductSet.
14146	IndexError *Status `json:"indexError,omitempty"`
14147
14148	// IndexTime: Output only. The time at which this ProductSet was last
14149	// indexed. Query
14150	// results will reflect all updates before this time. If this ProductSet
14151	// has
14152	// never been indexed, this timestamp is the default
14153	// value
14154	// "1970-01-01T00:00:00Z".
14155	//
14156	// This field is ignored when creating a ProductSet.
14157	IndexTime string `json:"indexTime,omitempty"`
14158
14159	// Name: The resource name of the ProductSet.
14160	//
14161	// Format
14162	// is:
14163	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
14164	//
14165	//
14166	// This field is ignored when creating a ProductSet.
14167	Name string `json:"name,omitempty"`
14168
14169	// ServerResponse contains the HTTP response code and headers from the
14170	// server.
14171	googleapi.ServerResponse `json:"-"`
14172
14173	// ForceSendFields is a list of field names (e.g. "DisplayName") to
14174	// unconditionally include in API requests. By default, fields with
14175	// empty values are omitted from API requests. However, any non-pointer,
14176	// non-interface field appearing in ForceSendFields will be sent to the
14177	// server regardless of whether the field is empty or not. This may be
14178	// used to include empty fields in Patch requests.
14179	ForceSendFields []string `json:"-"`
14180
14181	// NullFields is a list of field names (e.g. "DisplayName") to include
14182	// in API requests with the JSON null value. By default, fields with
14183	// empty values are omitted from API requests. However, any field with
14184	// an empty value appearing in NullFields will be sent to the server as
14185	// null. It is an error if a field in this list has a non-empty value.
14186	// This may be used to include null fields in Patch requests.
14187	NullFields []string `json:"-"`
14188}
14189
14190func (s *ProductSet) MarshalJSON() ([]byte, error) {
14191	type NoMethod ProductSet
14192	raw := NoMethod(*s)
14193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14194}
14195
14196// ProductSetPurgeConfig: Config to control which ProductSet contains
14197// the Products to be deleted.
14198type ProductSetPurgeConfig struct {
14199	// ProductSetId: The ProductSet that contains the Products to delete. If
14200	// a Product is a
14201	// member of product_set_id in addition to other ProductSets, the
14202	// Product will
14203	// still be deleted.
14204	ProductSetId string `json:"productSetId,omitempty"`
14205
14206	// ForceSendFields is a list of field names (e.g. "ProductSetId") to
14207	// unconditionally include in API requests. By default, fields with
14208	// empty values are omitted from API requests. However, any non-pointer,
14209	// non-interface field appearing in ForceSendFields will be sent to the
14210	// server regardless of whether the field is empty or not. This may be
14211	// used to include empty fields in Patch requests.
14212	ForceSendFields []string `json:"-"`
14213
14214	// NullFields is a list of field names (e.g. "ProductSetId") to include
14215	// in API requests with the JSON null value. By default, fields with
14216	// empty values are omitted from API requests. However, any field with
14217	// an empty value appearing in NullFields will be sent to the server as
14218	// null. It is an error if a field in this list has a non-empty value.
14219	// This may be used to include null fields in Patch requests.
14220	NullFields []string `json:"-"`
14221}
14222
14223func (s *ProductSetPurgeConfig) MarshalJSON() ([]byte, error) {
14224	type NoMethod ProductSetPurgeConfig
14225	raw := NoMethod(*s)
14226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14227}
14228
14229// Property: A `Property` consists of a user-supplied name/value pair.
14230type Property struct {
14231	// Name: Name of the property.
14232	Name string `json:"name,omitempty"`
14233
14234	// Uint64Value: Value of numeric properties.
14235	Uint64Value uint64 `json:"uint64Value,omitempty,string"`
14236
14237	// Value: Value of the property.
14238	Value string `json:"value,omitempty"`
14239
14240	// ForceSendFields is a list of field names (e.g. "Name") to
14241	// unconditionally include in API requests. By default, fields with
14242	// empty values are omitted from API requests. However, any non-pointer,
14243	// non-interface field appearing in ForceSendFields will be sent to the
14244	// server regardless of whether the field is empty or not. This may be
14245	// used to include empty fields in Patch requests.
14246	ForceSendFields []string `json:"-"`
14247
14248	// NullFields is a list of field names (e.g. "Name") to include in API
14249	// requests with the JSON null value. By default, fields with empty
14250	// values are omitted from API requests. However, any field with an
14251	// empty value appearing in NullFields will be sent to the server as
14252	// null. It is an error if a field in this list has a non-empty value.
14253	// This may be used to include null fields in Patch requests.
14254	NullFields []string `json:"-"`
14255}
14256
14257func (s *Property) MarshalJSON() ([]byte, error) {
14258	type NoMethod Property
14259	raw := NoMethod(*s)
14260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14261}
14262
14263// PurgeProductsRequest: Request message for the `PurgeProducts` method.
14264type PurgeProductsRequest struct {
14265	// DeleteOrphanProducts: If delete_orphan_products is true, all Products
14266	// that are not in any
14267	// ProductSet will be deleted.
14268	DeleteOrphanProducts bool `json:"deleteOrphanProducts,omitempty"`
14269
14270	// Force: The default value is false. Override this value to true to
14271	// actually perform
14272	// the purge.
14273	Force bool `json:"force,omitempty"`
14274
14275	// ProductSetPurgeConfig: Specify which ProductSet contains the Products
14276	// to be deleted.
14277	ProductSetPurgeConfig *ProductSetPurgeConfig `json:"productSetPurgeConfig,omitempty"`
14278
14279	// ForceSendFields is a list of field names (e.g.
14280	// "DeleteOrphanProducts") to unconditionally include in API requests.
14281	// By default, fields with empty values are omitted from API requests.
14282	// However, any non-pointer, non-interface field appearing in
14283	// ForceSendFields will be sent to the server regardless of whether the
14284	// field is empty or not. This may be used to include empty fields in
14285	// Patch requests.
14286	ForceSendFields []string `json:"-"`
14287
14288	// NullFields is a list of field names (e.g. "DeleteOrphanProducts") to
14289	// include in API requests with the JSON null value. By default, fields
14290	// with empty values are omitted from API requests. However, any field
14291	// with an empty value appearing in NullFields will be sent to the
14292	// server as null. It is an error if a field in this list has a
14293	// non-empty value. This may be used to include null fields in Patch
14294	// requests.
14295	NullFields []string `json:"-"`
14296}
14297
14298func (s *PurgeProductsRequest) MarshalJSON() ([]byte, error) {
14299	type NoMethod PurgeProductsRequest
14300	raw := NoMethod(*s)
14301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14302}
14303
14304// ReferenceImage: A `ReferenceImage` represents a product image and its
14305// associated metadata,
14306// such as bounding boxes.
14307type ReferenceImage struct {
14308	// BoundingPolys: Optional. Bounding polygons around the areas of
14309	// interest in the reference image.
14310	// If this field is empty, the system will try to detect regions
14311	// of
14312	// interest. At most 10 bounding polygons will be used.
14313	//
14314	// The provided shape is converted into a non-rotated rectangle.
14315	// Once
14316	// converted, the small edge of the rectangle must be greater than or
14317	// equal
14318	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok;
14319	// 1:5
14320	// is not).
14321	BoundingPolys []*BoundingPoly `json:"boundingPolys,omitempty"`
14322
14323	// Name: The resource name of the reference image.
14324	//
14325	// Format
14326	// is:
14327	//
14328	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referen
14329	// ceImages/IMAGE_ID`.
14330	//
14331	// This field is ignored when creating a reference image.
14332	Name string `json:"name,omitempty"`
14333
14334	// Uri: Required. The Google Cloud Storage URI of the reference
14335	// image.
14336	//
14337	// The URI must start with `gs://`.
14338	Uri string `json:"uri,omitempty"`
14339
14340	// ServerResponse contains the HTTP response code and headers from the
14341	// server.
14342	googleapi.ServerResponse `json:"-"`
14343
14344	// ForceSendFields is a list of field names (e.g. "BoundingPolys") to
14345	// unconditionally include in API requests. By default, fields with
14346	// empty values are omitted from API requests. However, any non-pointer,
14347	// non-interface field appearing in ForceSendFields will be sent to the
14348	// server regardless of whether the field is empty or not. This may be
14349	// used to include empty fields in Patch requests.
14350	ForceSendFields []string `json:"-"`
14351
14352	// NullFields is a list of field names (e.g. "BoundingPolys") to include
14353	// in API requests with the JSON null value. By default, fields with
14354	// empty values are omitted from API requests. However, any field with
14355	// an empty value appearing in NullFields will be sent to the server as
14356	// null. It is an error if a field in this list has a non-empty value.
14357	// This may be used to include null fields in Patch requests.
14358	NullFields []string `json:"-"`
14359}
14360
14361func (s *ReferenceImage) MarshalJSON() ([]byte, error) {
14362	type NoMethod ReferenceImage
14363	raw := NoMethod(*s)
14364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14365}
14366
14367// RemoveProductFromProductSetRequest: Request message for the
14368// `RemoveProductFromProductSet` method.
14369type RemoveProductFromProductSetRequest struct {
14370	// Product: Required. The resource name for the Product to be removed
14371	// from this ProductSet.
14372	//
14373	// Format is:
14374	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
14375	Product string `json:"product,omitempty"`
14376
14377	// ForceSendFields is a list of field names (e.g. "Product") to
14378	// unconditionally include in API requests. By default, fields with
14379	// empty values are omitted from API requests. However, any non-pointer,
14380	// non-interface field appearing in ForceSendFields will be sent to the
14381	// server regardless of whether the field is empty or not. This may be
14382	// used to include empty fields in Patch requests.
14383	ForceSendFields []string `json:"-"`
14384
14385	// NullFields is a list of field names (e.g. "Product") to include in
14386	// API requests with the JSON null value. By default, fields with empty
14387	// values are omitted from API requests. However, any field with an
14388	// empty value appearing in NullFields will be sent to the server as
14389	// null. It is an error if a field in this list has a non-empty value.
14390	// This may be used to include null fields in Patch requests.
14391	NullFields []string `json:"-"`
14392}
14393
14394func (s *RemoveProductFromProductSetRequest) MarshalJSON() ([]byte, error) {
14395	type NoMethod RemoveProductFromProductSetRequest
14396	raw := NoMethod(*s)
14397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14398}
14399
14400// Result: Information about a product.
14401type Result struct {
14402	// Image: The resource name of the image from the product that is the
14403	// closest match
14404	// to the query.
14405	Image string `json:"image,omitempty"`
14406
14407	// Product: The Product.
14408	Product *Product `json:"product,omitempty"`
14409
14410	// Score: A confidence level on the match, ranging from 0 (no
14411	// confidence) to
14412	// 1 (full confidence).
14413	Score float64 `json:"score,omitempty"`
14414
14415	// ForceSendFields is a list of field names (e.g. "Image") to
14416	// unconditionally include in API requests. By default, fields with
14417	// empty values are omitted from API requests. However, any non-pointer,
14418	// non-interface field appearing in ForceSendFields will be sent to the
14419	// server regardless of whether the field is empty or not. This may be
14420	// used to include empty fields in Patch requests.
14421	ForceSendFields []string `json:"-"`
14422
14423	// NullFields is a list of field names (e.g. "Image") to include in API
14424	// requests with the JSON null value. By default, fields with empty
14425	// values are omitted from API requests. However, any field with an
14426	// empty value appearing in NullFields will be sent to the server as
14427	// null. It is an error if a field in this list has a non-empty value.
14428	// This may be used to include null fields in Patch requests.
14429	NullFields []string `json:"-"`
14430}
14431
14432func (s *Result) MarshalJSON() ([]byte, error) {
14433	type NoMethod Result
14434	raw := NoMethod(*s)
14435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14436}
14437
14438func (s *Result) UnmarshalJSON(data []byte) error {
14439	type NoMethod Result
14440	var s1 struct {
14441		Score gensupport.JSONFloat64 `json:"score"`
14442		*NoMethod
14443	}
14444	s1.NoMethod = (*NoMethod)(s)
14445	if err := json.Unmarshal(data, &s1); err != nil {
14446		return err
14447	}
14448	s.Score = float64(s1.Score)
14449	return nil
14450}
14451
14452// SafeSearchAnnotation: Set of features pertaining to the image,
14453// computed by computer vision
14454// methods over safe-search verticals (for example, adult, spoof,
14455// medical,
14456// violence).
14457type SafeSearchAnnotation struct {
14458	// Adult: Represents the adult content likelihood for the image. Adult
14459	// content may
14460	// contain elements such as nudity, pornographic images or cartoons,
14461	// or
14462	// sexual activities.
14463	//
14464	// Possible values:
14465	//   "UNKNOWN" - Unknown likelihood.
14466	//   "VERY_UNLIKELY" - It is very unlikely.
14467	//   "UNLIKELY" - It is unlikely.
14468	//   "POSSIBLE" - It is possible.
14469	//   "LIKELY" - It is likely.
14470	//   "VERY_LIKELY" - It is very likely.
14471	Adult string `json:"adult,omitempty"`
14472
14473	// Medical: Likelihood that this is a medical image.
14474	//
14475	// Possible values:
14476	//   "UNKNOWN" - Unknown likelihood.
14477	//   "VERY_UNLIKELY" - It is very unlikely.
14478	//   "UNLIKELY" - It is unlikely.
14479	//   "POSSIBLE" - It is possible.
14480	//   "LIKELY" - It is likely.
14481	//   "VERY_LIKELY" - It is very likely.
14482	Medical string `json:"medical,omitempty"`
14483
14484	// Racy: Likelihood that the request image contains racy content. Racy
14485	// content may
14486	// include (but is not limited to) skimpy or sheer clothing,
14487	// strategically
14488	// covered nudity, lewd or provocative poses, or close-ups of
14489	// sensitive
14490	// body areas.
14491	//
14492	// Possible values:
14493	//   "UNKNOWN" - Unknown likelihood.
14494	//   "VERY_UNLIKELY" - It is very unlikely.
14495	//   "UNLIKELY" - It is unlikely.
14496	//   "POSSIBLE" - It is possible.
14497	//   "LIKELY" - It is likely.
14498	//   "VERY_LIKELY" - It is very likely.
14499	Racy string `json:"racy,omitempty"`
14500
14501	// Spoof: Spoof likelihood. The likelihood that an modification
14502	// was made to the image's canonical version to make it appear
14503	// funny or offensive.
14504	//
14505	// Possible values:
14506	//   "UNKNOWN" - Unknown likelihood.
14507	//   "VERY_UNLIKELY" - It is very unlikely.
14508	//   "UNLIKELY" - It is unlikely.
14509	//   "POSSIBLE" - It is possible.
14510	//   "LIKELY" - It is likely.
14511	//   "VERY_LIKELY" - It is very likely.
14512	Spoof string `json:"spoof,omitempty"`
14513
14514	// Violence: Likelihood that this image contains violent content.
14515	//
14516	// Possible values:
14517	//   "UNKNOWN" - Unknown likelihood.
14518	//   "VERY_UNLIKELY" - It is very unlikely.
14519	//   "UNLIKELY" - It is unlikely.
14520	//   "POSSIBLE" - It is possible.
14521	//   "LIKELY" - It is likely.
14522	//   "VERY_LIKELY" - It is very likely.
14523	Violence string `json:"violence,omitempty"`
14524
14525	// ForceSendFields is a list of field names (e.g. "Adult") to
14526	// unconditionally include in API requests. By default, fields with
14527	// empty values are omitted from API requests. However, any non-pointer,
14528	// non-interface field appearing in ForceSendFields will be sent to the
14529	// server regardless of whether the field is empty or not. This may be
14530	// used to include empty fields in Patch requests.
14531	ForceSendFields []string `json:"-"`
14532
14533	// NullFields is a list of field names (e.g. "Adult") to include in API
14534	// requests with the JSON null value. By default, fields with empty
14535	// values are omitted from API requests. However, any field with an
14536	// empty value appearing in NullFields will be sent to the server as
14537	// null. It is an error if a field in this list has a non-empty value.
14538	// This may be used to include null fields in Patch requests.
14539	NullFields []string `json:"-"`
14540}
14541
14542func (s *SafeSearchAnnotation) MarshalJSON() ([]byte, error) {
14543	type NoMethod SafeSearchAnnotation
14544	raw := NoMethod(*s)
14545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14546}
14547
14548// Status: The `Status` type defines a logical error model that is
14549// suitable for
14550// different programming environments, including REST APIs and RPC APIs.
14551// It is
14552// used by [gRPC](https://github.com/grpc). Each `Status` message
14553// contains
14554// three pieces of data: error code, error message, and error
14555// details.
14556//
14557// You can find out more about this error model and how to work with it
14558// in the
14559// [API Design Guide](https://cloud.google.com/apis/design/errors).
14560type Status struct {
14561	// Code: The status code, which should be an enum value of
14562	// google.rpc.Code.
14563	Code int64 `json:"code,omitempty"`
14564
14565	// Details: A list of messages that carry the error details.  There is a
14566	// common set of
14567	// message types for APIs to use.
14568	Details []googleapi.RawMessage `json:"details,omitempty"`
14569
14570	// Message: A developer-facing error message, which should be in
14571	// English. Any
14572	// user-facing error message should be localized and sent in
14573	// the
14574	// google.rpc.Status.details field, or localized by the client.
14575	Message string `json:"message,omitempty"`
14576
14577	// ForceSendFields is a list of field names (e.g. "Code") to
14578	// unconditionally include in API requests. By default, fields with
14579	// empty values are omitted from API requests. However, any non-pointer,
14580	// non-interface field appearing in ForceSendFields will be sent to the
14581	// server regardless of whether the field is empty or not. This may be
14582	// used to include empty fields in Patch requests.
14583	ForceSendFields []string `json:"-"`
14584
14585	// NullFields is a list of field names (e.g. "Code") to include in API
14586	// requests with the JSON null value. By default, fields with empty
14587	// values are omitted from API requests. However, any field with an
14588	// empty value appearing in NullFields will be sent to the server as
14589	// null. It is an error if a field in this list has a non-empty value.
14590	// This may be used to include null fields in Patch requests.
14591	NullFields []string `json:"-"`
14592}
14593
14594func (s *Status) MarshalJSON() ([]byte, error) {
14595	type NoMethod Status
14596	raw := NoMethod(*s)
14597	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14598}
14599
14600// Symbol: A single symbol representation.
14601type Symbol struct {
14602	// BoundingBox: The bounding box for the symbol.
14603	// The vertices are in the order of top-left, top-right,
14604	// bottom-right,
14605	// bottom-left. When a rotation of the bounding box is detected the
14606	// rotation
14607	// is represented as around the top-left corner as defined when the text
14608	// is
14609	// read in the 'natural' orientation.
14610	// For example:
14611	//   * when the text is horizontal it might look like:
14612	//      0----1
14613	//      |    |
14614	//      3----2
14615	//   * when it's rotated 180 degrees around the top-left corner it
14616	// becomes:
14617	//      2----3
14618	//      |    |
14619	//      1----0
14620	//   and the vertex order will still be (0, 1, 2, 3).
14621	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
14622
14623	// Confidence: Confidence of the OCR results for the symbol. Range [0,
14624	// 1].
14625	Confidence float64 `json:"confidence,omitempty"`
14626
14627	// Property: Additional information detected for the symbol.
14628	Property *TextProperty `json:"property,omitempty"`
14629
14630	// Text: The actual UTF-8 representation of the symbol.
14631	Text string `json:"text,omitempty"`
14632
14633	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
14634	// unconditionally include in API requests. By default, fields with
14635	// empty values are omitted from API requests. However, any non-pointer,
14636	// non-interface field appearing in ForceSendFields will be sent to the
14637	// server regardless of whether the field is empty or not. This may be
14638	// used to include empty fields in Patch requests.
14639	ForceSendFields []string `json:"-"`
14640
14641	// NullFields is a list of field names (e.g. "BoundingBox") to include
14642	// in API requests with the JSON null value. By default, fields with
14643	// empty values are omitted from API requests. However, any field with
14644	// an empty value appearing in NullFields will be sent to the server as
14645	// null. It is an error if a field in this list has a non-empty value.
14646	// This may be used to include null fields in Patch requests.
14647	NullFields []string `json:"-"`
14648}
14649
14650func (s *Symbol) MarshalJSON() ([]byte, error) {
14651	type NoMethod Symbol
14652	raw := NoMethod(*s)
14653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14654}
14655
14656func (s *Symbol) UnmarshalJSON(data []byte) error {
14657	type NoMethod Symbol
14658	var s1 struct {
14659		Confidence gensupport.JSONFloat64 `json:"confidence"`
14660		*NoMethod
14661	}
14662	s1.NoMethod = (*NoMethod)(s)
14663	if err := json.Unmarshal(data, &s1); err != nil {
14664		return err
14665	}
14666	s.Confidence = float64(s1.Confidence)
14667	return nil
14668}
14669
14670// TextAnnotation: TextAnnotation contains a structured representation
14671// of OCR extracted text.
14672// The hierarchy of an OCR extracted text structure is like this:
14673//     TextAnnotation -> Page -> Block -> Paragraph -> Word ->
14674// Symbol
14675// Each structural component, starting from Page, may further have their
14676// own
14677// properties. Properties describe detected languages, breaks etc..
14678// Please refer
14679// to the TextAnnotation.TextProperty message definition below for
14680// more
14681// detail.
14682type TextAnnotation struct {
14683	// Pages: List of pages detected by OCR.
14684	Pages []*Page `json:"pages,omitempty"`
14685
14686	// Text: UTF-8 text detected on the pages.
14687	Text string `json:"text,omitempty"`
14688
14689	// ForceSendFields is a list of field names (e.g. "Pages") to
14690	// unconditionally include in API requests. By default, fields with
14691	// empty values are omitted from API requests. However, any non-pointer,
14692	// non-interface field appearing in ForceSendFields will be sent to the
14693	// server regardless of whether the field is empty or not. This may be
14694	// used to include empty fields in Patch requests.
14695	ForceSendFields []string `json:"-"`
14696
14697	// NullFields is a list of field names (e.g. "Pages") to include in API
14698	// requests with the JSON null value. By default, fields with empty
14699	// values are omitted from API requests. However, any field with an
14700	// empty value appearing in NullFields will be sent to the server as
14701	// null. It is an error if a field in this list has a non-empty value.
14702	// This may be used to include null fields in Patch requests.
14703	NullFields []string `json:"-"`
14704}
14705
14706func (s *TextAnnotation) MarshalJSON() ([]byte, error) {
14707	type NoMethod TextAnnotation
14708	raw := NoMethod(*s)
14709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14710}
14711
14712// TextProperty: Additional information detected on the structural
14713// component.
14714type TextProperty struct {
14715	// DetectedBreak: Detected start or end of a text segment.
14716	DetectedBreak *DetectedBreak `json:"detectedBreak,omitempty"`
14717
14718	// DetectedLanguages: A list of detected languages together with
14719	// confidence.
14720	DetectedLanguages []*DetectedLanguage `json:"detectedLanguages,omitempty"`
14721
14722	// ForceSendFields is a list of field names (e.g. "DetectedBreak") to
14723	// unconditionally include in API requests. By default, fields with
14724	// empty values are omitted from API requests. However, any non-pointer,
14725	// non-interface field appearing in ForceSendFields will be sent to the
14726	// server regardless of whether the field is empty or not. This may be
14727	// used to include empty fields in Patch requests.
14728	ForceSendFields []string `json:"-"`
14729
14730	// NullFields is a list of field names (e.g. "DetectedBreak") to include
14731	// in API requests with the JSON null value. By default, fields with
14732	// empty values are omitted from API requests. However, any field with
14733	// an empty value appearing in NullFields will be sent to the server as
14734	// null. It is an error if a field in this list has a non-empty value.
14735	// This may be used to include null fields in Patch requests.
14736	NullFields []string `json:"-"`
14737}
14738
14739func (s *TextProperty) MarshalJSON() ([]byte, error) {
14740	type NoMethod TextProperty
14741	raw := NoMethod(*s)
14742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14743}
14744
14745// Vertex: A vertex represents a 2D point in the image.
14746// NOTE: the vertex coordinates are in the same scale as the original
14747// image.
14748type Vertex struct {
14749	// X: X coordinate.
14750	X int64 `json:"x,omitempty"`
14751
14752	// Y: Y coordinate.
14753	Y int64 `json:"y,omitempty"`
14754
14755	// ForceSendFields is a list of field names (e.g. "X") to
14756	// unconditionally include in API requests. By default, fields with
14757	// empty values are omitted from API requests. However, any non-pointer,
14758	// non-interface field appearing in ForceSendFields will be sent to the
14759	// server regardless of whether the field is empty or not. This may be
14760	// used to include empty fields in Patch requests.
14761	ForceSendFields []string `json:"-"`
14762
14763	// NullFields is a list of field names (e.g. "X") to include in API
14764	// requests with the JSON null value. By default, fields with empty
14765	// values are omitted from API requests. However, any field with an
14766	// empty value appearing in NullFields will be sent to the server as
14767	// null. It is an error if a field in this list has a non-empty value.
14768	// This may be used to include null fields in Patch requests.
14769	NullFields []string `json:"-"`
14770}
14771
14772func (s *Vertex) MarshalJSON() ([]byte, error) {
14773	type NoMethod Vertex
14774	raw := NoMethod(*s)
14775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14776}
14777
14778// WebDetection: Relevant information for the image from the Internet.
14779type WebDetection struct {
14780	// BestGuessLabels: The service's best guess as to the topic of the
14781	// request image.
14782	// Inferred from similar images on the open web.
14783	BestGuessLabels []*WebLabel `json:"bestGuessLabels,omitempty"`
14784
14785	// FullMatchingImages: Fully matching images from the Internet.
14786	// Can include resized copies of the query image.
14787	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
14788
14789	// PagesWithMatchingImages: Web pages containing the matching images
14790	// from the Internet.
14791	PagesWithMatchingImages []*WebPage `json:"pagesWithMatchingImages,omitempty"`
14792
14793	// PartialMatchingImages: Partial matching images from the
14794	// Internet.
14795	// Those images are similar enough to share some key-point features.
14796	// For
14797	// example an original image will likely have partial matching for its
14798	// crops.
14799	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
14800
14801	// VisuallySimilarImages: The visually similar image results.
14802	VisuallySimilarImages []*WebImage `json:"visuallySimilarImages,omitempty"`
14803
14804	// WebEntities: Deduced entities from similar images on the Internet.
14805	WebEntities []*WebEntity `json:"webEntities,omitempty"`
14806
14807	// ForceSendFields is a list of field names (e.g. "BestGuessLabels") to
14808	// unconditionally include in API requests. By default, fields with
14809	// empty values are omitted from API requests. However, any non-pointer,
14810	// non-interface field appearing in ForceSendFields will be sent to the
14811	// server regardless of whether the field is empty or not. This may be
14812	// used to include empty fields in Patch requests.
14813	ForceSendFields []string `json:"-"`
14814
14815	// NullFields is a list of field names (e.g. "BestGuessLabels") to
14816	// include in API requests with the JSON null value. By default, fields
14817	// with empty values are omitted from API requests. However, any field
14818	// with an empty value appearing in NullFields will be sent to the
14819	// server as null. It is an error if a field in this list has a
14820	// non-empty value. This may be used to include null fields in Patch
14821	// requests.
14822	NullFields []string `json:"-"`
14823}
14824
14825func (s *WebDetection) MarshalJSON() ([]byte, error) {
14826	type NoMethod WebDetection
14827	raw := NoMethod(*s)
14828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14829}
14830
14831// WebDetectionParams: Parameters for web detection request.
14832type WebDetectionParams struct {
14833	// IncludeGeoResults: Whether to include results derived from the geo
14834	// information in the image.
14835	IncludeGeoResults bool `json:"includeGeoResults,omitempty"`
14836
14837	// ForceSendFields is a list of field names (e.g. "IncludeGeoResults")
14838	// to unconditionally include in API requests. By default, fields with
14839	// empty values are omitted from API requests. However, any non-pointer,
14840	// non-interface field appearing in ForceSendFields will be sent to the
14841	// server regardless of whether the field is empty or not. This may be
14842	// used to include empty fields in Patch requests.
14843	ForceSendFields []string `json:"-"`
14844
14845	// NullFields is a list of field names (e.g. "IncludeGeoResults") to
14846	// include in API requests with the JSON null value. By default, fields
14847	// with empty values are omitted from API requests. However, any field
14848	// with an empty value appearing in NullFields will be sent to the
14849	// server as null. It is an error if a field in this list has a
14850	// non-empty value. This may be used to include null fields in Patch
14851	// requests.
14852	NullFields []string `json:"-"`
14853}
14854
14855func (s *WebDetectionParams) MarshalJSON() ([]byte, error) {
14856	type NoMethod WebDetectionParams
14857	raw := NoMethod(*s)
14858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14859}
14860
14861// WebEntity: Entity deduced from similar images on the Internet.
14862type WebEntity struct {
14863	// Description: Canonical description of the entity, in English.
14864	Description string `json:"description,omitempty"`
14865
14866	// EntityId: Opaque entity ID.
14867	EntityId string `json:"entityId,omitempty"`
14868
14869	// Score: Overall relevancy score for the entity.
14870	// Not normalized and not comparable across different image queries.
14871	Score float64 `json:"score,omitempty"`
14872
14873	// ForceSendFields is a list of field names (e.g. "Description") to
14874	// unconditionally include in API requests. By default, fields with
14875	// empty values are omitted from API requests. However, any non-pointer,
14876	// non-interface field appearing in ForceSendFields will be sent to the
14877	// server regardless of whether the field is empty or not. This may be
14878	// used to include empty fields in Patch requests.
14879	ForceSendFields []string `json:"-"`
14880
14881	// NullFields is a list of field names (e.g. "Description") to include
14882	// in API requests with the JSON null value. By default, fields with
14883	// empty values are omitted from API requests. However, any field with
14884	// an empty value appearing in NullFields will be sent to the server as
14885	// null. It is an error if a field in this list has a non-empty value.
14886	// This may be used to include null fields in Patch requests.
14887	NullFields []string `json:"-"`
14888}
14889
14890func (s *WebEntity) MarshalJSON() ([]byte, error) {
14891	type NoMethod WebEntity
14892	raw := NoMethod(*s)
14893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14894}
14895
14896func (s *WebEntity) UnmarshalJSON(data []byte) error {
14897	type NoMethod WebEntity
14898	var s1 struct {
14899		Score gensupport.JSONFloat64 `json:"score"`
14900		*NoMethod
14901	}
14902	s1.NoMethod = (*NoMethod)(s)
14903	if err := json.Unmarshal(data, &s1); err != nil {
14904		return err
14905	}
14906	s.Score = float64(s1.Score)
14907	return nil
14908}
14909
14910// WebImage: Metadata for online images.
14911type WebImage struct {
14912	// Score: (Deprecated) Overall relevancy score for the image.
14913	Score float64 `json:"score,omitempty"`
14914
14915	// Url: The result image URL.
14916	Url string `json:"url,omitempty"`
14917
14918	// ForceSendFields is a list of field names (e.g. "Score") to
14919	// unconditionally include in API requests. By default, fields with
14920	// empty values are omitted from API requests. However, any non-pointer,
14921	// non-interface field appearing in ForceSendFields will be sent to the
14922	// server regardless of whether the field is empty or not. This may be
14923	// used to include empty fields in Patch requests.
14924	ForceSendFields []string `json:"-"`
14925
14926	// NullFields is a list of field names (e.g. "Score") to include in API
14927	// requests with the JSON null value. By default, fields with empty
14928	// values are omitted from API requests. However, any field with an
14929	// empty value appearing in NullFields will be sent to the server as
14930	// null. It is an error if a field in this list has a non-empty value.
14931	// This may be used to include null fields in Patch requests.
14932	NullFields []string `json:"-"`
14933}
14934
14935func (s *WebImage) MarshalJSON() ([]byte, error) {
14936	type NoMethod WebImage
14937	raw := NoMethod(*s)
14938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14939}
14940
14941func (s *WebImage) UnmarshalJSON(data []byte) error {
14942	type NoMethod WebImage
14943	var s1 struct {
14944		Score gensupport.JSONFloat64 `json:"score"`
14945		*NoMethod
14946	}
14947	s1.NoMethod = (*NoMethod)(s)
14948	if err := json.Unmarshal(data, &s1); err != nil {
14949		return err
14950	}
14951	s.Score = float64(s1.Score)
14952	return nil
14953}
14954
14955// WebLabel: Label to provide extra metadata for the web detection.
14956type WebLabel struct {
14957	// Label: Label for extra metadata.
14958	Label string `json:"label,omitempty"`
14959
14960	// LanguageCode: The BCP-47 language code for `label`, such as "en-US"
14961	// or "sr-Latn".
14962	// For more information,
14963	// see
14964	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
14965	LanguageCode string `json:"languageCode,omitempty"`
14966
14967	// ForceSendFields is a list of field names (e.g. "Label") to
14968	// unconditionally include in API requests. By default, fields with
14969	// empty values are omitted from API requests. However, any non-pointer,
14970	// non-interface field appearing in ForceSendFields will be sent to the
14971	// server regardless of whether the field is empty or not. This may be
14972	// used to include empty fields in Patch requests.
14973	ForceSendFields []string `json:"-"`
14974
14975	// NullFields is a list of field names (e.g. "Label") to include in API
14976	// requests with the JSON null value. By default, fields with empty
14977	// values are omitted from API requests. However, any field with an
14978	// empty value appearing in NullFields will be sent to the server as
14979	// null. It is an error if a field in this list has a non-empty value.
14980	// This may be used to include null fields in Patch requests.
14981	NullFields []string `json:"-"`
14982}
14983
14984func (s *WebLabel) MarshalJSON() ([]byte, error) {
14985	type NoMethod WebLabel
14986	raw := NoMethod(*s)
14987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14988}
14989
14990// WebPage: Metadata for web pages.
14991type WebPage struct {
14992	// FullMatchingImages: Fully matching images on the page.
14993	// Can include resized copies of the query image.
14994	FullMatchingImages []*WebImage `json:"fullMatchingImages,omitempty"`
14995
14996	// PageTitle: Title for the web page, may contain HTML markups.
14997	PageTitle string `json:"pageTitle,omitempty"`
14998
14999	// PartialMatchingImages: Partial matching images on the page.
15000	// Those images are similar enough to share some key-point features.
15001	// For
15002	// example an original image will likely have partial matching for
15003	// its
15004	// crops.
15005	PartialMatchingImages []*WebImage `json:"partialMatchingImages,omitempty"`
15006
15007	// Score: (Deprecated) Overall relevancy score for the web page.
15008	Score float64 `json:"score,omitempty"`
15009
15010	// Url: The result web page URL.
15011	Url string `json:"url,omitempty"`
15012
15013	// ForceSendFields is a list of field names (e.g. "FullMatchingImages")
15014	// to unconditionally include in API requests. By default, fields with
15015	// empty values are omitted from API requests. However, any non-pointer,
15016	// non-interface field appearing in ForceSendFields will be sent to the
15017	// server regardless of whether the field is empty or not. This may be
15018	// used to include empty fields in Patch requests.
15019	ForceSendFields []string `json:"-"`
15020
15021	// NullFields is a list of field names (e.g. "FullMatchingImages") to
15022	// include in API requests with the JSON null value. By default, fields
15023	// with empty values are omitted from API requests. However, any field
15024	// with an empty value appearing in NullFields will be sent to the
15025	// server as null. It is an error if a field in this list has a
15026	// non-empty value. This may be used to include null fields in Patch
15027	// requests.
15028	NullFields []string `json:"-"`
15029}
15030
15031func (s *WebPage) MarshalJSON() ([]byte, error) {
15032	type NoMethod WebPage
15033	raw := NoMethod(*s)
15034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15035}
15036
15037func (s *WebPage) UnmarshalJSON(data []byte) error {
15038	type NoMethod WebPage
15039	var s1 struct {
15040		Score gensupport.JSONFloat64 `json:"score"`
15041		*NoMethod
15042	}
15043	s1.NoMethod = (*NoMethod)(s)
15044	if err := json.Unmarshal(data, &s1); err != nil {
15045		return err
15046	}
15047	s.Score = float64(s1.Score)
15048	return nil
15049}
15050
15051// Word: A word representation.
15052type Word struct {
15053	// BoundingBox: The bounding box for the word.
15054	// The vertices are in the order of top-left, top-right,
15055	// bottom-right,
15056	// bottom-left. When a rotation of the bounding box is detected the
15057	// rotation
15058	// is represented as around the top-left corner as defined when the text
15059	// is
15060	// read in the 'natural' orientation.
15061	// For example:
15062	//   * when the text is horizontal it might look like:
15063	//      0----1
15064	//      |    |
15065	//      3----2
15066	//   * when it's rotated 180 degrees around the top-left corner it
15067	// becomes:
15068	//      2----3
15069	//      |    |
15070	//      1----0
15071	//   and the vertex order will still be (0, 1, 2, 3).
15072	BoundingBox *BoundingPoly `json:"boundingBox,omitempty"`
15073
15074	// Confidence: Confidence of the OCR results for the word. Range [0, 1].
15075	Confidence float64 `json:"confidence,omitempty"`
15076
15077	// Property: Additional information detected for the word.
15078	Property *TextProperty `json:"property,omitempty"`
15079
15080	// Symbols: List of symbols in the word.
15081	// The order of the symbols follows the natural reading order.
15082	Symbols []*Symbol `json:"symbols,omitempty"`
15083
15084	// ForceSendFields is a list of field names (e.g. "BoundingBox") to
15085	// unconditionally include in API requests. By default, fields with
15086	// empty values are omitted from API requests. However, any non-pointer,
15087	// non-interface field appearing in ForceSendFields will be sent to the
15088	// server regardless of whether the field is empty or not. This may be
15089	// used to include empty fields in Patch requests.
15090	ForceSendFields []string `json:"-"`
15091
15092	// NullFields is a list of field names (e.g. "BoundingBox") to include
15093	// in API requests with the JSON null value. By default, fields with
15094	// empty values are omitted from API requests. However, any field with
15095	// an empty value appearing in NullFields will be sent to the server as
15096	// null. It is an error if a field in this list has a non-empty value.
15097	// This may be used to include null fields in Patch requests.
15098	NullFields []string `json:"-"`
15099}
15100
15101func (s *Word) MarshalJSON() ([]byte, error) {
15102	type NoMethod Word
15103	raw := NoMethod(*s)
15104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15105}
15106
15107func (s *Word) UnmarshalJSON(data []byte) error {
15108	type NoMethod Word
15109	var s1 struct {
15110		Confidence gensupport.JSONFloat64 `json:"confidence"`
15111		*NoMethod
15112	}
15113	s1.NoMethod = (*NoMethod)(s)
15114	if err := json.Unmarshal(data, &s1); err != nil {
15115		return err
15116	}
15117	s.Confidence = float64(s1.Confidence)
15118	return nil
15119}
15120
15121// method id "vision.files.annotate":
15122
15123type FilesAnnotateCall struct {
15124	s                         *Service
15125	batchannotatefilesrequest *BatchAnnotateFilesRequest
15126	urlParams_                gensupport.URLParams
15127	ctx_                      context.Context
15128	header_                   http.Header
15129}
15130
15131// Annotate: Service that performs image detection and annotation for a
15132// batch of files.
15133// Now only "application/pdf", "image/tiff" and "image/gif" are
15134// supported.
15135//
15136// This service will extract at most 5 (customers can specify which 5
15137// in
15138// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
15139// each
15140// file provided and perform detection and annotation for each
15141// image
15142// extracted.
15143func (r *FilesService) Annotate(batchannotatefilesrequest *BatchAnnotateFilesRequest) *FilesAnnotateCall {
15144	c := &FilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15145	c.batchannotatefilesrequest = batchannotatefilesrequest
15146	return c
15147}
15148
15149// Fields allows partial responses to be retrieved. See
15150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15151// for more information.
15152func (c *FilesAnnotateCall) Fields(s ...googleapi.Field) *FilesAnnotateCall {
15153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15154	return c
15155}
15156
15157// Context sets the context to be used in this call's Do method. Any
15158// pending HTTP request will be aborted if the provided context is
15159// canceled.
15160func (c *FilesAnnotateCall) Context(ctx context.Context) *FilesAnnotateCall {
15161	c.ctx_ = ctx
15162	return c
15163}
15164
15165// Header returns an http.Header that can be modified by the caller to
15166// add HTTP headers to the request.
15167func (c *FilesAnnotateCall) Header() http.Header {
15168	if c.header_ == nil {
15169		c.header_ = make(http.Header)
15170	}
15171	return c.header_
15172}
15173
15174func (c *FilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15175	reqHeaders := make(http.Header)
15176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15177	for k, v := range c.header_ {
15178		reqHeaders[k] = v
15179	}
15180	reqHeaders.Set("User-Agent", c.s.userAgent())
15181	var body io.Reader = nil
15182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
15183	if err != nil {
15184		return nil, err
15185	}
15186	reqHeaders.Set("Content-Type", "application/json")
15187	c.urlParams_.Set("alt", alt)
15188	c.urlParams_.Set("prettyPrint", "false")
15189	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:annotate")
15190	urls += "?" + c.urlParams_.Encode()
15191	req, err := http.NewRequest("POST", urls, body)
15192	if err != nil {
15193		return nil, err
15194	}
15195	req.Header = reqHeaders
15196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15197}
15198
15199// Do executes the "vision.files.annotate" call.
15200// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
15201// Any non-2xx status code is an error. Response headers are in either
15202// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
15203// was returned at all) in error.(*googleapi.Error).Header. Use
15204// googleapi.IsNotModified to check whether the returned error was
15205// because http.StatusNotModified was returned.
15206func (c *FilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
15207	gensupport.SetOptions(c.urlParams_, opts...)
15208	res, err := c.doRequest("json")
15209	if res != nil && res.StatusCode == http.StatusNotModified {
15210		if res.Body != nil {
15211			res.Body.Close()
15212		}
15213		return nil, &googleapi.Error{
15214			Code:   res.StatusCode,
15215			Header: res.Header,
15216		}
15217	}
15218	if err != nil {
15219		return nil, err
15220	}
15221	defer googleapi.CloseBody(res)
15222	if err := googleapi.CheckResponse(res); err != nil {
15223		return nil, err
15224	}
15225	ret := &BatchAnnotateFilesResponse{
15226		ServerResponse: googleapi.ServerResponse{
15227			Header:         res.Header,
15228			HTTPStatusCode: res.StatusCode,
15229		},
15230	}
15231	target := &ret
15232	if err := gensupport.DecodeResponse(target, res); err != nil {
15233		return nil, err
15234	}
15235	return ret, nil
15236	// {
15237	//   "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.",
15238	//   "flatPath": "v1/files:annotate",
15239	//   "httpMethod": "POST",
15240	//   "id": "vision.files.annotate",
15241	//   "parameterOrder": [],
15242	//   "parameters": {},
15243	//   "path": "v1/files:annotate",
15244	//   "request": {
15245	//     "$ref": "BatchAnnotateFilesRequest"
15246	//   },
15247	//   "response": {
15248	//     "$ref": "BatchAnnotateFilesResponse"
15249	//   },
15250	//   "scopes": [
15251	//     "https://www.googleapis.com/auth/cloud-platform",
15252	//     "https://www.googleapis.com/auth/cloud-vision"
15253	//   ]
15254	// }
15255
15256}
15257
15258// method id "vision.files.asyncBatchAnnotate":
15259
15260type FilesAsyncBatchAnnotateCall struct {
15261	s                              *Service
15262	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
15263	urlParams_                     gensupport.URLParams
15264	ctx_                           context.Context
15265	header_                        http.Header
15266}
15267
15268// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15269// for a list of generic
15270// files, such as PDF files, which may contain multiple pages and
15271// multiple
15272// images per page. Progress and results can be retrieved through
15273// the
15274// `google.longrunning.Operations` interface.
15275// `Operation.metadata` contains `OperationMetadata`
15276// (metadata).
15277// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
15278// (results).
15279func (r *FilesService) AsyncBatchAnnotate(asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *FilesAsyncBatchAnnotateCall {
15280	c := &FilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15281	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
15282	return c
15283}
15284
15285// Fields allows partial responses to be retrieved. See
15286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15287// for more information.
15288func (c *FilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *FilesAsyncBatchAnnotateCall {
15289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15290	return c
15291}
15292
15293// Context sets the context to be used in this call's Do method. Any
15294// pending HTTP request will be aborted if the provided context is
15295// canceled.
15296func (c *FilesAsyncBatchAnnotateCall) Context(ctx context.Context) *FilesAsyncBatchAnnotateCall {
15297	c.ctx_ = ctx
15298	return c
15299}
15300
15301// Header returns an http.Header that can be modified by the caller to
15302// add HTTP headers to the request.
15303func (c *FilesAsyncBatchAnnotateCall) Header() http.Header {
15304	if c.header_ == nil {
15305		c.header_ = make(http.Header)
15306	}
15307	return c.header_
15308}
15309
15310func (c *FilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15311	reqHeaders := make(http.Header)
15312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15313	for k, v := range c.header_ {
15314		reqHeaders[k] = v
15315	}
15316	reqHeaders.Set("User-Agent", c.s.userAgent())
15317	var body io.Reader = nil
15318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
15319	if err != nil {
15320		return nil, err
15321	}
15322	reqHeaders.Set("Content-Type", "application/json")
15323	c.urlParams_.Set("alt", alt)
15324	c.urlParams_.Set("prettyPrint", "false")
15325	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/files:asyncBatchAnnotate")
15326	urls += "?" + c.urlParams_.Encode()
15327	req, err := http.NewRequest("POST", urls, body)
15328	if err != nil {
15329		return nil, err
15330	}
15331	req.Header = reqHeaders
15332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15333}
15334
15335// Do executes the "vision.files.asyncBatchAnnotate" call.
15336// Exactly one of *Operation or error will be non-nil. Any non-2xx
15337// status code is an error. Response headers are in either
15338// *Operation.ServerResponse.Header or (if a response was returned at
15339// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15340// to check whether the returned error was because
15341// http.StatusNotModified was returned.
15342func (c *FilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15343	gensupport.SetOptions(c.urlParams_, opts...)
15344	res, err := c.doRequest("json")
15345	if res != nil && res.StatusCode == http.StatusNotModified {
15346		if res.Body != nil {
15347			res.Body.Close()
15348		}
15349		return nil, &googleapi.Error{
15350			Code:   res.StatusCode,
15351			Header: res.Header,
15352		}
15353	}
15354	if err != nil {
15355		return nil, err
15356	}
15357	defer googleapi.CloseBody(res)
15358	if err := googleapi.CheckResponse(res); err != nil {
15359		return nil, err
15360	}
15361	ret := &Operation{
15362		ServerResponse: googleapi.ServerResponse{
15363			Header:         res.Header,
15364			HTTPStatusCode: res.StatusCode,
15365		},
15366	}
15367	target := &ret
15368	if err := gensupport.DecodeResponse(target, res); err != nil {
15369		return nil, err
15370	}
15371	return ret, nil
15372	// {
15373	//   "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).",
15374	//   "flatPath": "v1/files:asyncBatchAnnotate",
15375	//   "httpMethod": "POST",
15376	//   "id": "vision.files.asyncBatchAnnotate",
15377	//   "parameterOrder": [],
15378	//   "parameters": {},
15379	//   "path": "v1/files:asyncBatchAnnotate",
15380	//   "request": {
15381	//     "$ref": "AsyncBatchAnnotateFilesRequest"
15382	//   },
15383	//   "response": {
15384	//     "$ref": "Operation"
15385	//   },
15386	//   "scopes": [
15387	//     "https://www.googleapis.com/auth/cloud-platform",
15388	//     "https://www.googleapis.com/auth/cloud-vision"
15389	//   ]
15390	// }
15391
15392}
15393
15394// method id "vision.images.annotate":
15395
15396type ImagesAnnotateCall struct {
15397	s                          *Service
15398	batchannotateimagesrequest *BatchAnnotateImagesRequest
15399	urlParams_                 gensupport.URLParams
15400	ctx_                       context.Context
15401	header_                    http.Header
15402}
15403
15404// Annotate: Run image detection and annotation for a batch of images.
15405func (r *ImagesService) Annotate(batchannotateimagesrequest *BatchAnnotateImagesRequest) *ImagesAnnotateCall {
15406	c := &ImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15407	c.batchannotateimagesrequest = batchannotateimagesrequest
15408	return c
15409}
15410
15411// Fields allows partial responses to be retrieved. See
15412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15413// for more information.
15414func (c *ImagesAnnotateCall) Fields(s ...googleapi.Field) *ImagesAnnotateCall {
15415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15416	return c
15417}
15418
15419// Context sets the context to be used in this call's Do method. Any
15420// pending HTTP request will be aborted if the provided context is
15421// canceled.
15422func (c *ImagesAnnotateCall) Context(ctx context.Context) *ImagesAnnotateCall {
15423	c.ctx_ = ctx
15424	return c
15425}
15426
15427// Header returns an http.Header that can be modified by the caller to
15428// add HTTP headers to the request.
15429func (c *ImagesAnnotateCall) Header() http.Header {
15430	if c.header_ == nil {
15431		c.header_ = make(http.Header)
15432	}
15433	return c.header_
15434}
15435
15436func (c *ImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
15437	reqHeaders := make(http.Header)
15438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15439	for k, v := range c.header_ {
15440		reqHeaders[k] = v
15441	}
15442	reqHeaders.Set("User-Agent", c.s.userAgent())
15443	var body io.Reader = nil
15444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
15445	if err != nil {
15446		return nil, err
15447	}
15448	reqHeaders.Set("Content-Type", "application/json")
15449	c.urlParams_.Set("alt", alt)
15450	c.urlParams_.Set("prettyPrint", "false")
15451	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:annotate")
15452	urls += "?" + c.urlParams_.Encode()
15453	req, err := http.NewRequest("POST", urls, body)
15454	if err != nil {
15455		return nil, err
15456	}
15457	req.Header = reqHeaders
15458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15459}
15460
15461// Do executes the "vision.images.annotate" call.
15462// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
15463// Any non-2xx status code is an error. Response headers are in either
15464// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
15465// was returned at all) in error.(*googleapi.Error).Header. Use
15466// googleapi.IsNotModified to check whether the returned error was
15467// because http.StatusNotModified was returned.
15468func (c *ImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
15469	gensupport.SetOptions(c.urlParams_, opts...)
15470	res, err := c.doRequest("json")
15471	if res != nil && res.StatusCode == http.StatusNotModified {
15472		if res.Body != nil {
15473			res.Body.Close()
15474		}
15475		return nil, &googleapi.Error{
15476			Code:   res.StatusCode,
15477			Header: res.Header,
15478		}
15479	}
15480	if err != nil {
15481		return nil, err
15482	}
15483	defer googleapi.CloseBody(res)
15484	if err := googleapi.CheckResponse(res); err != nil {
15485		return nil, err
15486	}
15487	ret := &BatchAnnotateImagesResponse{
15488		ServerResponse: googleapi.ServerResponse{
15489			Header:         res.Header,
15490			HTTPStatusCode: res.StatusCode,
15491		},
15492	}
15493	target := &ret
15494	if err := gensupport.DecodeResponse(target, res); err != nil {
15495		return nil, err
15496	}
15497	return ret, nil
15498	// {
15499	//   "description": "Run image detection and annotation for a batch of images.",
15500	//   "flatPath": "v1/images:annotate",
15501	//   "httpMethod": "POST",
15502	//   "id": "vision.images.annotate",
15503	//   "parameterOrder": [],
15504	//   "parameters": {},
15505	//   "path": "v1/images:annotate",
15506	//   "request": {
15507	//     "$ref": "BatchAnnotateImagesRequest"
15508	//   },
15509	//   "response": {
15510	//     "$ref": "BatchAnnotateImagesResponse"
15511	//   },
15512	//   "scopes": [
15513	//     "https://www.googleapis.com/auth/cloud-platform",
15514	//     "https://www.googleapis.com/auth/cloud-vision"
15515	//   ]
15516	// }
15517
15518}
15519
15520// method id "vision.images.asyncBatchAnnotate":
15521
15522type ImagesAsyncBatchAnnotateCall struct {
15523	s                               *Service
15524	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
15525	urlParams_                      gensupport.URLParams
15526	ctx_                            context.Context
15527	header_                         http.Header
15528}
15529
15530// AsyncBatchAnnotate: Run asynchronous image detection and annotation
15531// for a list of images.
15532//
15533// Progress and results can be retrieved through
15534// the
15535// `google.longrunning.Operations` interface.
15536// `Operation.metadata` contains `OperationMetadata`
15537// (metadata).
15538// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
15539// (results).
15540//
15541// This service will write image annotation outputs to json files in
15542// customer
15543// GCS bucket, each json file containing BatchAnnotateImagesResponse
15544// proto.
15545func (r *ImagesService) AsyncBatchAnnotate(asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ImagesAsyncBatchAnnotateCall {
15546	c := &ImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15547	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
15548	return c
15549}
15550
15551// Fields allows partial responses to be retrieved. See
15552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15553// for more information.
15554func (c *ImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ImagesAsyncBatchAnnotateCall {
15555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15556	return c
15557}
15558
15559// Context sets the context to be used in this call's Do method. Any
15560// pending HTTP request will be aborted if the provided context is
15561// canceled.
15562func (c *ImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ImagesAsyncBatchAnnotateCall {
15563	c.ctx_ = ctx
15564	return c
15565}
15566
15567// Header returns an http.Header that can be modified by the caller to
15568// add HTTP headers to the request.
15569func (c *ImagesAsyncBatchAnnotateCall) Header() http.Header {
15570	if c.header_ == nil {
15571		c.header_ = make(http.Header)
15572	}
15573	return c.header_
15574}
15575
15576func (c *ImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
15577	reqHeaders := make(http.Header)
15578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15579	for k, v := range c.header_ {
15580		reqHeaders[k] = v
15581	}
15582	reqHeaders.Set("User-Agent", c.s.userAgent())
15583	var body io.Reader = nil
15584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
15585	if err != nil {
15586		return nil, err
15587	}
15588	reqHeaders.Set("Content-Type", "application/json")
15589	c.urlParams_.Set("alt", alt)
15590	c.urlParams_.Set("prettyPrint", "false")
15591	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/images:asyncBatchAnnotate")
15592	urls += "?" + c.urlParams_.Encode()
15593	req, err := http.NewRequest("POST", urls, body)
15594	if err != nil {
15595		return nil, err
15596	}
15597	req.Header = reqHeaders
15598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15599}
15600
15601// Do executes the "vision.images.asyncBatchAnnotate" call.
15602// Exactly one of *Operation or error will be non-nil. Any non-2xx
15603// status code is an error. Response headers are in either
15604// *Operation.ServerResponse.Header or (if a response was returned at
15605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15606// to check whether the returned error was because
15607// http.StatusNotModified was returned.
15608func (c *ImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15609	gensupport.SetOptions(c.urlParams_, opts...)
15610	res, err := c.doRequest("json")
15611	if res != nil && res.StatusCode == http.StatusNotModified {
15612		if res.Body != nil {
15613			res.Body.Close()
15614		}
15615		return nil, &googleapi.Error{
15616			Code:   res.StatusCode,
15617			Header: res.Header,
15618		}
15619	}
15620	if err != nil {
15621		return nil, err
15622	}
15623	defer googleapi.CloseBody(res)
15624	if err := googleapi.CheckResponse(res); err != nil {
15625		return nil, err
15626	}
15627	ret := &Operation{
15628		ServerResponse: googleapi.ServerResponse{
15629			Header:         res.Header,
15630			HTTPStatusCode: res.StatusCode,
15631		},
15632	}
15633	target := &ret
15634	if err := gensupport.DecodeResponse(target, res); err != nil {
15635		return nil, err
15636	}
15637	return ret, nil
15638	// {
15639	//   "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.",
15640	//   "flatPath": "v1/images:asyncBatchAnnotate",
15641	//   "httpMethod": "POST",
15642	//   "id": "vision.images.asyncBatchAnnotate",
15643	//   "parameterOrder": [],
15644	//   "parameters": {},
15645	//   "path": "v1/images:asyncBatchAnnotate",
15646	//   "request": {
15647	//     "$ref": "AsyncBatchAnnotateImagesRequest"
15648	//   },
15649	//   "response": {
15650	//     "$ref": "Operation"
15651	//   },
15652	//   "scopes": [
15653	//     "https://www.googleapis.com/auth/cloud-platform",
15654	//     "https://www.googleapis.com/auth/cloud-vision"
15655	//   ]
15656	// }
15657
15658}
15659
15660// method id "vision.locations.operations.get":
15661
15662type LocationsOperationsGetCall struct {
15663	s            *Service
15664	name         string
15665	urlParams_   gensupport.URLParams
15666	ifNoneMatch_ string
15667	ctx_         context.Context
15668	header_      http.Header
15669}
15670
15671// Get: Gets the latest state of a long-running operation.  Clients can
15672// use this
15673// method to poll the operation result at intervals as recommended by
15674// the API
15675// service.
15676func (r *LocationsOperationsService) Get(name string) *LocationsOperationsGetCall {
15677	c := &LocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15678	c.name = name
15679	return c
15680}
15681
15682// Fields allows partial responses to be retrieved. See
15683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15684// for more information.
15685func (c *LocationsOperationsGetCall) Fields(s ...googleapi.Field) *LocationsOperationsGetCall {
15686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15687	return c
15688}
15689
15690// IfNoneMatch sets the optional parameter which makes the operation
15691// fail if the object's ETag matches the given value. This is useful for
15692// getting updates only after the object has changed since the last
15693// request. Use googleapi.IsNotModified to check whether the response
15694// error from Do is the result of In-None-Match.
15695func (c *LocationsOperationsGetCall) IfNoneMatch(entityTag string) *LocationsOperationsGetCall {
15696	c.ifNoneMatch_ = entityTag
15697	return c
15698}
15699
15700// Context sets the context to be used in this call's Do method. Any
15701// pending HTTP request will be aborted if the provided context is
15702// canceled.
15703func (c *LocationsOperationsGetCall) Context(ctx context.Context) *LocationsOperationsGetCall {
15704	c.ctx_ = ctx
15705	return c
15706}
15707
15708// Header returns an http.Header that can be modified by the caller to
15709// add HTTP headers to the request.
15710func (c *LocationsOperationsGetCall) Header() http.Header {
15711	if c.header_ == nil {
15712		c.header_ = make(http.Header)
15713	}
15714	return c.header_
15715}
15716
15717func (c *LocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
15718	reqHeaders := make(http.Header)
15719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15720	for k, v := range c.header_ {
15721		reqHeaders[k] = v
15722	}
15723	reqHeaders.Set("User-Agent", c.s.userAgent())
15724	if c.ifNoneMatch_ != "" {
15725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15726	}
15727	var body io.Reader = nil
15728	c.urlParams_.Set("alt", alt)
15729	c.urlParams_.Set("prettyPrint", "false")
15730	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
15731	urls += "?" + c.urlParams_.Encode()
15732	req, err := http.NewRequest("GET", urls, body)
15733	if err != nil {
15734		return nil, err
15735	}
15736	req.Header = reqHeaders
15737	googleapi.Expand(req.URL, map[string]string{
15738		"name": c.name,
15739	})
15740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15741}
15742
15743// Do executes the "vision.locations.operations.get" call.
15744// Exactly one of *Operation or error will be non-nil. Any non-2xx
15745// status code is an error. Response headers are in either
15746// *Operation.ServerResponse.Header or (if a response was returned at
15747// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15748// to check whether the returned error was because
15749// http.StatusNotModified was returned.
15750func (c *LocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
15751	gensupport.SetOptions(c.urlParams_, opts...)
15752	res, err := c.doRequest("json")
15753	if res != nil && res.StatusCode == http.StatusNotModified {
15754		if res.Body != nil {
15755			res.Body.Close()
15756		}
15757		return nil, &googleapi.Error{
15758			Code:   res.StatusCode,
15759			Header: res.Header,
15760		}
15761	}
15762	if err != nil {
15763		return nil, err
15764	}
15765	defer googleapi.CloseBody(res)
15766	if err := googleapi.CheckResponse(res); err != nil {
15767		return nil, err
15768	}
15769	ret := &Operation{
15770		ServerResponse: googleapi.ServerResponse{
15771			Header:         res.Header,
15772			HTTPStatusCode: res.StatusCode,
15773		},
15774	}
15775	target := &ret
15776	if err := gensupport.DecodeResponse(target, res); err != nil {
15777		return nil, err
15778	}
15779	return ret, nil
15780	// {
15781	//   "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.",
15782	//   "flatPath": "v1/locations/{locationsId}/operations/{operationsId}",
15783	//   "httpMethod": "GET",
15784	//   "id": "vision.locations.operations.get",
15785	//   "parameterOrder": [
15786	//     "name"
15787	//   ],
15788	//   "parameters": {
15789	//     "name": {
15790	//       "description": "The name of the operation resource.",
15791	//       "location": "path",
15792	//       "pattern": "^locations/[^/]+/operations/[^/]+$",
15793	//       "required": true,
15794	//       "type": "string"
15795	//     }
15796	//   },
15797	//   "path": "v1/{+name}",
15798	//   "response": {
15799	//     "$ref": "Operation"
15800	//   },
15801	//   "scopes": [
15802	//     "https://www.googleapis.com/auth/cloud-platform",
15803	//     "https://www.googleapis.com/auth/cloud-vision"
15804	//   ]
15805	// }
15806
15807}
15808
15809// method id "vision.operations.cancel":
15810
15811type OperationsCancelCall struct {
15812	s                      *Service
15813	name                   string
15814	canceloperationrequest *CancelOperationRequest
15815	urlParams_             gensupport.URLParams
15816	ctx_                   context.Context
15817	header_                http.Header
15818}
15819
15820// Cancel: Starts asynchronous cancellation on a long-running operation.
15821//  The server
15822// makes a best effort to cancel the operation, but success is
15823// not
15824// guaranteed.  If the server doesn't support this method, it
15825// returns
15826// `google.rpc.Code.UNIMPLEMENTED`.  Clients can
15827// use
15828// Operations.GetOperation or
15829// other methods to check whether the cancellation succeeded or whether
15830// the
15831// operation completed despite cancellation. On successful
15832// cancellation,
15833// the operation is not deleted; instead, it becomes an operation
15834// with
15835// an Operation.error value with a google.rpc.Status.code of
15836// 1,
15837// corresponding to `Code.CANCELLED`.
15838func (r *OperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *OperationsCancelCall {
15839	c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15840	c.name = name
15841	c.canceloperationrequest = canceloperationrequest
15842	return c
15843}
15844
15845// Fields allows partial responses to be retrieved. See
15846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15847// for more information.
15848func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall {
15849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15850	return c
15851}
15852
15853// Context sets the context to be used in this call's Do method. Any
15854// pending HTTP request will be aborted if the provided context is
15855// canceled.
15856func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall {
15857	c.ctx_ = ctx
15858	return c
15859}
15860
15861// Header returns an http.Header that can be modified by the caller to
15862// add HTTP headers to the request.
15863func (c *OperationsCancelCall) Header() http.Header {
15864	if c.header_ == nil {
15865		c.header_ = make(http.Header)
15866	}
15867	return c.header_
15868}
15869
15870func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) {
15871	reqHeaders := make(http.Header)
15872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
15873	for k, v := range c.header_ {
15874		reqHeaders[k] = v
15875	}
15876	reqHeaders.Set("User-Agent", c.s.userAgent())
15877	var body io.Reader = nil
15878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
15879	if err != nil {
15880		return nil, err
15881	}
15882	reqHeaders.Set("Content-Type", "application/json")
15883	c.urlParams_.Set("alt", alt)
15884	c.urlParams_.Set("prettyPrint", "false")
15885	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
15886	urls += "?" + c.urlParams_.Encode()
15887	req, err := http.NewRequest("POST", urls, body)
15888	if err != nil {
15889		return nil, err
15890	}
15891	req.Header = reqHeaders
15892	googleapi.Expand(req.URL, map[string]string{
15893		"name": c.name,
15894	})
15895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15896}
15897
15898// Do executes the "vision.operations.cancel" call.
15899// Exactly one of *Empty or error will be non-nil. Any non-2xx status
15900// code is an error. Response headers are in either
15901// *Empty.ServerResponse.Header or (if a response was returned at all)
15902// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
15903// check whether the returned error was because http.StatusNotModified
15904// was returned.
15905func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
15906	gensupport.SetOptions(c.urlParams_, opts...)
15907	res, err := c.doRequest("json")
15908	if res != nil && res.StatusCode == http.StatusNotModified {
15909		if res.Body != nil {
15910			res.Body.Close()
15911		}
15912		return nil, &googleapi.Error{
15913			Code:   res.StatusCode,
15914			Header: res.Header,
15915		}
15916	}
15917	if err != nil {
15918		return nil, err
15919	}
15920	defer googleapi.CloseBody(res)
15921	if err := googleapi.CheckResponse(res); err != nil {
15922		return nil, err
15923	}
15924	ret := &Empty{
15925		ServerResponse: googleapi.ServerResponse{
15926			Header:         res.Header,
15927			HTTPStatusCode: res.StatusCode,
15928		},
15929	}
15930	target := &ret
15931	if err := gensupport.DecodeResponse(target, res); err != nil {
15932		return nil, err
15933	}
15934	return ret, nil
15935	// {
15936	//   "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`.",
15937	//   "flatPath": "v1/operations/{operationsId}:cancel",
15938	//   "httpMethod": "POST",
15939	//   "id": "vision.operations.cancel",
15940	//   "parameterOrder": [
15941	//     "name"
15942	//   ],
15943	//   "parameters": {
15944	//     "name": {
15945	//       "description": "The name of the operation resource to be cancelled.",
15946	//       "location": "path",
15947	//       "pattern": "^operations/.+$",
15948	//       "required": true,
15949	//       "type": "string"
15950	//     }
15951	//   },
15952	//   "path": "v1/{+name}:cancel",
15953	//   "request": {
15954	//     "$ref": "CancelOperationRequest"
15955	//   },
15956	//   "response": {
15957	//     "$ref": "Empty"
15958	//   },
15959	//   "scopes": [
15960	//     "https://www.googleapis.com/auth/cloud-platform",
15961	//     "https://www.googleapis.com/auth/cloud-vision"
15962	//   ]
15963	// }
15964
15965}
15966
15967// method id "vision.operations.delete":
15968
15969type OperationsDeleteCall struct {
15970	s          *Service
15971	name       string
15972	urlParams_ gensupport.URLParams
15973	ctx_       context.Context
15974	header_    http.Header
15975}
15976
15977// Delete: Deletes a long-running operation. This method indicates that
15978// the client is
15979// no longer interested in the operation result. It does not cancel
15980// the
15981// operation. If the server doesn't support this method, it
15982// returns
15983// `google.rpc.Code.UNIMPLEMENTED`.
15984func (r *OperationsService) Delete(name string) *OperationsDeleteCall {
15985	c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15986	c.name = name
15987	return c
15988}
15989
15990// Fields allows partial responses to be retrieved. See
15991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15992// for more information.
15993func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall {
15994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15995	return c
15996}
15997
15998// Context sets the context to be used in this call's Do method. Any
15999// pending HTTP request will be aborted if the provided context is
16000// canceled.
16001func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall {
16002	c.ctx_ = ctx
16003	return c
16004}
16005
16006// Header returns an http.Header that can be modified by the caller to
16007// add HTTP headers to the request.
16008func (c *OperationsDeleteCall) Header() http.Header {
16009	if c.header_ == nil {
16010		c.header_ = make(http.Header)
16011	}
16012	return c.header_
16013}
16014
16015func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
16016	reqHeaders := make(http.Header)
16017	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16018	for k, v := range c.header_ {
16019		reqHeaders[k] = v
16020	}
16021	reqHeaders.Set("User-Agent", c.s.userAgent())
16022	var body io.Reader = nil
16023	c.urlParams_.Set("alt", alt)
16024	c.urlParams_.Set("prettyPrint", "false")
16025	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16026	urls += "?" + c.urlParams_.Encode()
16027	req, err := http.NewRequest("DELETE", urls, body)
16028	if err != nil {
16029		return nil, err
16030	}
16031	req.Header = reqHeaders
16032	googleapi.Expand(req.URL, map[string]string{
16033		"name": c.name,
16034	})
16035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16036}
16037
16038// Do executes the "vision.operations.delete" call.
16039// Exactly one of *Empty or error will be non-nil. Any non-2xx status
16040// code is an error. Response headers are in either
16041// *Empty.ServerResponse.Header or (if a response was returned at all)
16042// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
16043// check whether the returned error was because http.StatusNotModified
16044// was returned.
16045func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
16046	gensupport.SetOptions(c.urlParams_, opts...)
16047	res, err := c.doRequest("json")
16048	if res != nil && res.StatusCode == http.StatusNotModified {
16049		if res.Body != nil {
16050			res.Body.Close()
16051		}
16052		return nil, &googleapi.Error{
16053			Code:   res.StatusCode,
16054			Header: res.Header,
16055		}
16056	}
16057	if err != nil {
16058		return nil, err
16059	}
16060	defer googleapi.CloseBody(res)
16061	if err := googleapi.CheckResponse(res); err != nil {
16062		return nil, err
16063	}
16064	ret := &Empty{
16065		ServerResponse: googleapi.ServerResponse{
16066			Header:         res.Header,
16067			HTTPStatusCode: res.StatusCode,
16068		},
16069	}
16070	target := &ret
16071	if err := gensupport.DecodeResponse(target, res); err != nil {
16072		return nil, err
16073	}
16074	return ret, nil
16075	// {
16076	//   "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`.",
16077	//   "flatPath": "v1/operations/{operationsId}",
16078	//   "httpMethod": "DELETE",
16079	//   "id": "vision.operations.delete",
16080	//   "parameterOrder": [
16081	//     "name"
16082	//   ],
16083	//   "parameters": {
16084	//     "name": {
16085	//       "description": "The name of the operation resource to be deleted.",
16086	//       "location": "path",
16087	//       "pattern": "^operations/.+$",
16088	//       "required": true,
16089	//       "type": "string"
16090	//     }
16091	//   },
16092	//   "path": "v1/{+name}",
16093	//   "response": {
16094	//     "$ref": "Empty"
16095	//   },
16096	//   "scopes": [
16097	//     "https://www.googleapis.com/auth/cloud-platform",
16098	//     "https://www.googleapis.com/auth/cloud-vision"
16099	//   ]
16100	// }
16101
16102}
16103
16104// method id "vision.operations.get":
16105
16106type OperationsGetCall struct {
16107	s            *Service
16108	name         string
16109	urlParams_   gensupport.URLParams
16110	ifNoneMatch_ string
16111	ctx_         context.Context
16112	header_      http.Header
16113}
16114
16115// Get: Gets the latest state of a long-running operation.  Clients can
16116// use this
16117// method to poll the operation result at intervals as recommended by
16118// the API
16119// service.
16120func (r *OperationsService) Get(name string) *OperationsGetCall {
16121	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16122	c.name = name
16123	return c
16124}
16125
16126// Fields allows partial responses to be retrieved. See
16127// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16128// for more information.
16129func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
16130	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16131	return c
16132}
16133
16134// IfNoneMatch sets the optional parameter which makes the operation
16135// fail if the object's ETag matches the given value. This is useful for
16136// getting updates only after the object has changed since the last
16137// request. Use googleapi.IsNotModified to check whether the response
16138// error from Do is the result of In-None-Match.
16139func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
16140	c.ifNoneMatch_ = entityTag
16141	return c
16142}
16143
16144// Context sets the context to be used in this call's Do method. Any
16145// pending HTTP request will be aborted if the provided context is
16146// canceled.
16147func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
16148	c.ctx_ = ctx
16149	return c
16150}
16151
16152// Header returns an http.Header that can be modified by the caller to
16153// add HTTP headers to the request.
16154func (c *OperationsGetCall) Header() http.Header {
16155	if c.header_ == nil {
16156		c.header_ = make(http.Header)
16157	}
16158	return c.header_
16159}
16160
16161func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
16162	reqHeaders := make(http.Header)
16163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16164	for k, v := range c.header_ {
16165		reqHeaders[k] = v
16166	}
16167	reqHeaders.Set("User-Agent", c.s.userAgent())
16168	if c.ifNoneMatch_ != "" {
16169		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16170	}
16171	var body io.Reader = nil
16172	c.urlParams_.Set("alt", alt)
16173	c.urlParams_.Set("prettyPrint", "false")
16174	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16175	urls += "?" + c.urlParams_.Encode()
16176	req, err := http.NewRequest("GET", urls, body)
16177	if err != nil {
16178		return nil, err
16179	}
16180	req.Header = reqHeaders
16181	googleapi.Expand(req.URL, map[string]string{
16182		"name": c.name,
16183	})
16184	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16185}
16186
16187// Do executes the "vision.operations.get" call.
16188// Exactly one of *Operation or error will be non-nil. Any non-2xx
16189// status code is an error. Response headers are in either
16190// *Operation.ServerResponse.Header or (if a response was returned at
16191// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16192// to check whether the returned error was because
16193// http.StatusNotModified was returned.
16194func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16195	gensupport.SetOptions(c.urlParams_, opts...)
16196	res, err := c.doRequest("json")
16197	if res != nil && res.StatusCode == http.StatusNotModified {
16198		if res.Body != nil {
16199			res.Body.Close()
16200		}
16201		return nil, &googleapi.Error{
16202			Code:   res.StatusCode,
16203			Header: res.Header,
16204		}
16205	}
16206	if err != nil {
16207		return nil, err
16208	}
16209	defer googleapi.CloseBody(res)
16210	if err := googleapi.CheckResponse(res); err != nil {
16211		return nil, err
16212	}
16213	ret := &Operation{
16214		ServerResponse: googleapi.ServerResponse{
16215			Header:         res.Header,
16216			HTTPStatusCode: res.StatusCode,
16217		},
16218	}
16219	target := &ret
16220	if err := gensupport.DecodeResponse(target, res); err != nil {
16221		return nil, err
16222	}
16223	return ret, nil
16224	// {
16225	//   "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.",
16226	//   "flatPath": "v1/operations/{operationsId}",
16227	//   "httpMethod": "GET",
16228	//   "id": "vision.operations.get",
16229	//   "parameterOrder": [
16230	//     "name"
16231	//   ],
16232	//   "parameters": {
16233	//     "name": {
16234	//       "description": "The name of the operation resource.",
16235	//       "location": "path",
16236	//       "pattern": "^operations/[^/]+$",
16237	//       "required": true,
16238	//       "type": "string"
16239	//     }
16240	//   },
16241	//   "path": "v1/{+name}",
16242	//   "response": {
16243	//     "$ref": "Operation"
16244	//   },
16245	//   "scopes": [
16246	//     "https://www.googleapis.com/auth/cloud-platform",
16247	//     "https://www.googleapis.com/auth/cloud-vision"
16248	//   ]
16249	// }
16250
16251}
16252
16253// method id "vision.operations.list":
16254
16255type OperationsListCall struct {
16256	s            *Service
16257	name         string
16258	urlParams_   gensupport.URLParams
16259	ifNoneMatch_ string
16260	ctx_         context.Context
16261	header_      http.Header
16262}
16263
16264// List: Lists operations that match the specified filter in the
16265// request. If the
16266// server doesn't support this method, it returns
16267// `UNIMPLEMENTED`.
16268//
16269// NOTE: the `name` binding allows API services to override the
16270// binding
16271// to use different resource name schemes, such as `users/*/operations`.
16272// To
16273// override the binding, API services can add a binding such
16274// as
16275// "/v1/{name=users/*}/operations" to their service configuration.
16276// For backwards compatibility, the default name includes the
16277// operations
16278// collection id, however overriding users must ensure the name
16279// binding
16280// is the parent resource, without the operations collection id.
16281func (r *OperationsService) List(name string) *OperationsListCall {
16282	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16283	c.name = name
16284	return c
16285}
16286
16287// Filter sets the optional parameter "filter": The standard list
16288// filter.
16289func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
16290	c.urlParams_.Set("filter", filter)
16291	return c
16292}
16293
16294// PageSize sets the optional parameter "pageSize": The standard list
16295// page size.
16296func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall {
16297	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
16298	return c
16299}
16300
16301// PageToken sets the optional parameter "pageToken": The standard list
16302// page token.
16303func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
16304	c.urlParams_.Set("pageToken", pageToken)
16305	return c
16306}
16307
16308// Fields allows partial responses to be retrieved. See
16309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16310// for more information.
16311func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
16312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16313	return c
16314}
16315
16316// IfNoneMatch sets the optional parameter which makes the operation
16317// fail if the object's ETag matches the given value. This is useful for
16318// getting updates only after the object has changed since the last
16319// request. Use googleapi.IsNotModified to check whether the response
16320// error from Do is the result of In-None-Match.
16321func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
16322	c.ifNoneMatch_ = entityTag
16323	return c
16324}
16325
16326// Context sets the context to be used in this call's Do method. Any
16327// pending HTTP request will be aborted if the provided context is
16328// canceled.
16329func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
16330	c.ctx_ = ctx
16331	return c
16332}
16333
16334// Header returns an http.Header that can be modified by the caller to
16335// add HTTP headers to the request.
16336func (c *OperationsListCall) Header() http.Header {
16337	if c.header_ == nil {
16338		c.header_ = make(http.Header)
16339	}
16340	return c.header_
16341}
16342
16343func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
16344	reqHeaders := make(http.Header)
16345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16346	for k, v := range c.header_ {
16347		reqHeaders[k] = v
16348	}
16349	reqHeaders.Set("User-Agent", c.s.userAgent())
16350	if c.ifNoneMatch_ != "" {
16351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16352	}
16353	var body io.Reader = nil
16354	c.urlParams_.Set("alt", alt)
16355	c.urlParams_.Set("prettyPrint", "false")
16356	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
16357	urls += "?" + c.urlParams_.Encode()
16358	req, err := http.NewRequest("GET", urls, body)
16359	if err != nil {
16360		return nil, err
16361	}
16362	req.Header = reqHeaders
16363	googleapi.Expand(req.URL, map[string]string{
16364		"name": c.name,
16365	})
16366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16367}
16368
16369// Do executes the "vision.operations.list" call.
16370// Exactly one of *ListOperationsResponse or error will be non-nil. Any
16371// non-2xx status code is an error. Response headers are in either
16372// *ListOperationsResponse.ServerResponse.Header or (if a response was
16373// returned at all) in error.(*googleapi.Error).Header. Use
16374// googleapi.IsNotModified to check whether the returned error was
16375// because http.StatusNotModified was returned.
16376func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
16377	gensupport.SetOptions(c.urlParams_, opts...)
16378	res, err := c.doRequest("json")
16379	if res != nil && res.StatusCode == http.StatusNotModified {
16380		if res.Body != nil {
16381			res.Body.Close()
16382		}
16383		return nil, &googleapi.Error{
16384			Code:   res.StatusCode,
16385			Header: res.Header,
16386		}
16387	}
16388	if err != nil {
16389		return nil, err
16390	}
16391	defer googleapi.CloseBody(res)
16392	if err := googleapi.CheckResponse(res); err != nil {
16393		return nil, err
16394	}
16395	ret := &ListOperationsResponse{
16396		ServerResponse: googleapi.ServerResponse{
16397			Header:         res.Header,
16398			HTTPStatusCode: res.StatusCode,
16399		},
16400	}
16401	target := &ret
16402	if err := gensupport.DecodeResponse(target, res); err != nil {
16403		return nil, err
16404	}
16405	return ret, nil
16406	// {
16407	//   "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.",
16408	//   "flatPath": "v1/operations",
16409	//   "httpMethod": "GET",
16410	//   "id": "vision.operations.list",
16411	//   "parameterOrder": [
16412	//     "name"
16413	//   ],
16414	//   "parameters": {
16415	//     "filter": {
16416	//       "description": "The standard list filter.",
16417	//       "location": "query",
16418	//       "type": "string"
16419	//     },
16420	//     "name": {
16421	//       "description": "The name of the operation's parent resource.",
16422	//       "location": "path",
16423	//       "pattern": "^operations$",
16424	//       "required": true,
16425	//       "type": "string"
16426	//     },
16427	//     "pageSize": {
16428	//       "description": "The standard list page size.",
16429	//       "format": "int32",
16430	//       "location": "query",
16431	//       "type": "integer"
16432	//     },
16433	//     "pageToken": {
16434	//       "description": "The standard list page token.",
16435	//       "location": "query",
16436	//       "type": "string"
16437	//     }
16438	//   },
16439	//   "path": "v1/{+name}",
16440	//   "response": {
16441	//     "$ref": "ListOperationsResponse"
16442	//   },
16443	//   "scopes": [
16444	//     "https://www.googleapis.com/auth/cloud-platform",
16445	//     "https://www.googleapis.com/auth/cloud-vision"
16446	//   ]
16447	// }
16448
16449}
16450
16451// Pages invokes f for each page of results.
16452// A non-nil error returned from f will halt the iteration.
16453// The provided context supersedes any context provided to the Context method.
16454func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
16455	c.ctx_ = ctx
16456	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
16457	for {
16458		x, err := c.Do()
16459		if err != nil {
16460			return err
16461		}
16462		if err := f(x); err != nil {
16463			return err
16464		}
16465		if x.NextPageToken == "" {
16466			return nil
16467		}
16468		c.PageToken(x.NextPageToken)
16469	}
16470}
16471
16472// method id "vision.projects.files.annotate":
16473
16474type ProjectsFilesAnnotateCall struct {
16475	s                         *Service
16476	parent                    string
16477	batchannotatefilesrequest *BatchAnnotateFilesRequest
16478	urlParams_                gensupport.URLParams
16479	ctx_                      context.Context
16480	header_                   http.Header
16481}
16482
16483// Annotate: Service that performs image detection and annotation for a
16484// batch of files.
16485// Now only "application/pdf", "image/tiff" and "image/gif" are
16486// supported.
16487//
16488// This service will extract at most 5 (customers can specify which 5
16489// in
16490// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
16491// each
16492// file provided and perform detection and annotation for each
16493// image
16494// extracted.
16495func (r *ProjectsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsFilesAnnotateCall {
16496	c := &ProjectsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16497	c.parent = parent
16498	c.batchannotatefilesrequest = batchannotatefilesrequest
16499	return c
16500}
16501
16502// Fields allows partial responses to be retrieved. See
16503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16504// for more information.
16505func (c *ProjectsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAnnotateCall {
16506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16507	return c
16508}
16509
16510// Context sets the context to be used in this call's Do method. Any
16511// pending HTTP request will be aborted if the provided context is
16512// canceled.
16513func (c *ProjectsFilesAnnotateCall) Context(ctx context.Context) *ProjectsFilesAnnotateCall {
16514	c.ctx_ = ctx
16515	return c
16516}
16517
16518// Header returns an http.Header that can be modified by the caller to
16519// add HTTP headers to the request.
16520func (c *ProjectsFilesAnnotateCall) Header() http.Header {
16521	if c.header_ == nil {
16522		c.header_ = make(http.Header)
16523	}
16524	return c.header_
16525}
16526
16527func (c *ProjectsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
16528	reqHeaders := make(http.Header)
16529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16530	for k, v := range c.header_ {
16531		reqHeaders[k] = v
16532	}
16533	reqHeaders.Set("User-Agent", c.s.userAgent())
16534	var body io.Reader = nil
16535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
16536	if err != nil {
16537		return nil, err
16538	}
16539	reqHeaders.Set("Content-Type", "application/json")
16540	c.urlParams_.Set("alt", alt)
16541	c.urlParams_.Set("prettyPrint", "false")
16542	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
16543	urls += "?" + c.urlParams_.Encode()
16544	req, err := http.NewRequest("POST", urls, body)
16545	if err != nil {
16546		return nil, err
16547	}
16548	req.Header = reqHeaders
16549	googleapi.Expand(req.URL, map[string]string{
16550		"parent": c.parent,
16551	})
16552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16553}
16554
16555// Do executes the "vision.projects.files.annotate" call.
16556// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
16557// Any non-2xx status code is an error. Response headers are in either
16558// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
16559// was returned at all) in error.(*googleapi.Error).Header. Use
16560// googleapi.IsNotModified to check whether the returned error was
16561// because http.StatusNotModified was returned.
16562func (c *ProjectsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
16563	gensupport.SetOptions(c.urlParams_, opts...)
16564	res, err := c.doRequest("json")
16565	if res != nil && res.StatusCode == http.StatusNotModified {
16566		if res.Body != nil {
16567			res.Body.Close()
16568		}
16569		return nil, &googleapi.Error{
16570			Code:   res.StatusCode,
16571			Header: res.Header,
16572		}
16573	}
16574	if err != nil {
16575		return nil, err
16576	}
16577	defer googleapi.CloseBody(res)
16578	if err := googleapi.CheckResponse(res); err != nil {
16579		return nil, err
16580	}
16581	ret := &BatchAnnotateFilesResponse{
16582		ServerResponse: googleapi.ServerResponse{
16583			Header:         res.Header,
16584			HTTPStatusCode: res.StatusCode,
16585		},
16586	}
16587	target := &ret
16588	if err := gensupport.DecodeResponse(target, res); err != nil {
16589		return nil, err
16590	}
16591	return ret, nil
16592	// {
16593	//   "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.",
16594	//   "flatPath": "v1/projects/{projectsId}/files:annotate",
16595	//   "httpMethod": "POST",
16596	//   "id": "vision.projects.files.annotate",
16597	//   "parameterOrder": [
16598	//     "parent"
16599	//   ],
16600	//   "parameters": {
16601	//     "parent": {
16602	//       "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`.",
16603	//       "location": "path",
16604	//       "pattern": "^projects/[^/]+$",
16605	//       "required": true,
16606	//       "type": "string"
16607	//     }
16608	//   },
16609	//   "path": "v1/{+parent}/files:annotate",
16610	//   "request": {
16611	//     "$ref": "BatchAnnotateFilesRequest"
16612	//   },
16613	//   "response": {
16614	//     "$ref": "BatchAnnotateFilesResponse"
16615	//   },
16616	//   "scopes": [
16617	//     "https://www.googleapis.com/auth/cloud-platform",
16618	//     "https://www.googleapis.com/auth/cloud-vision"
16619	//   ]
16620	// }
16621
16622}
16623
16624// method id "vision.projects.files.asyncBatchAnnotate":
16625
16626type ProjectsFilesAsyncBatchAnnotateCall struct {
16627	s                              *Service
16628	parent                         string
16629	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
16630	urlParams_                     gensupport.URLParams
16631	ctx_                           context.Context
16632	header_                        http.Header
16633}
16634
16635// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16636// for a list of generic
16637// files, such as PDF files, which may contain multiple pages and
16638// multiple
16639// images per page. Progress and results can be retrieved through
16640// the
16641// `google.longrunning.Operations` interface.
16642// `Operation.metadata` contains `OperationMetadata`
16643// (metadata).
16644// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
16645// (results).
16646func (r *ProjectsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsFilesAsyncBatchAnnotateCall {
16647	c := &ProjectsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16648	c.parent = parent
16649	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
16650	return c
16651}
16652
16653// Fields allows partial responses to be retrieved. See
16654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16655// for more information.
16656func (c *ProjectsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsFilesAsyncBatchAnnotateCall {
16657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16658	return c
16659}
16660
16661// Context sets the context to be used in this call's Do method. Any
16662// pending HTTP request will be aborted if the provided context is
16663// canceled.
16664func (c *ProjectsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsFilesAsyncBatchAnnotateCall {
16665	c.ctx_ = ctx
16666	return c
16667}
16668
16669// Header returns an http.Header that can be modified by the caller to
16670// add HTTP headers to the request.
16671func (c *ProjectsFilesAsyncBatchAnnotateCall) Header() http.Header {
16672	if c.header_ == nil {
16673		c.header_ = make(http.Header)
16674	}
16675	return c.header_
16676}
16677
16678func (c *ProjectsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16679	reqHeaders := make(http.Header)
16680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16681	for k, v := range c.header_ {
16682		reqHeaders[k] = v
16683	}
16684	reqHeaders.Set("User-Agent", c.s.userAgent())
16685	var body io.Reader = nil
16686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
16687	if err != nil {
16688		return nil, err
16689	}
16690	reqHeaders.Set("Content-Type", "application/json")
16691	c.urlParams_.Set("alt", alt)
16692	c.urlParams_.Set("prettyPrint", "false")
16693	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
16694	urls += "?" + c.urlParams_.Encode()
16695	req, err := http.NewRequest("POST", urls, body)
16696	if err != nil {
16697		return nil, err
16698	}
16699	req.Header = reqHeaders
16700	googleapi.Expand(req.URL, map[string]string{
16701		"parent": c.parent,
16702	})
16703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16704}
16705
16706// Do executes the "vision.projects.files.asyncBatchAnnotate" call.
16707// Exactly one of *Operation or error will be non-nil. Any non-2xx
16708// status code is an error. Response headers are in either
16709// *Operation.ServerResponse.Header or (if a response was returned at
16710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16711// to check whether the returned error was because
16712// http.StatusNotModified was returned.
16713func (c *ProjectsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
16714	gensupport.SetOptions(c.urlParams_, opts...)
16715	res, err := c.doRequest("json")
16716	if res != nil && res.StatusCode == http.StatusNotModified {
16717		if res.Body != nil {
16718			res.Body.Close()
16719		}
16720		return nil, &googleapi.Error{
16721			Code:   res.StatusCode,
16722			Header: res.Header,
16723		}
16724	}
16725	if err != nil {
16726		return nil, err
16727	}
16728	defer googleapi.CloseBody(res)
16729	if err := googleapi.CheckResponse(res); err != nil {
16730		return nil, err
16731	}
16732	ret := &Operation{
16733		ServerResponse: googleapi.ServerResponse{
16734			Header:         res.Header,
16735			HTTPStatusCode: res.StatusCode,
16736		},
16737	}
16738	target := &ret
16739	if err := gensupport.DecodeResponse(target, res); err != nil {
16740		return nil, err
16741	}
16742	return ret, nil
16743	// {
16744	//   "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).",
16745	//   "flatPath": "v1/projects/{projectsId}/files:asyncBatchAnnotate",
16746	//   "httpMethod": "POST",
16747	//   "id": "vision.projects.files.asyncBatchAnnotate",
16748	//   "parameterOrder": [
16749	//     "parent"
16750	//   ],
16751	//   "parameters": {
16752	//     "parent": {
16753	//       "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`.",
16754	//       "location": "path",
16755	//       "pattern": "^projects/[^/]+$",
16756	//       "required": true,
16757	//       "type": "string"
16758	//     }
16759	//   },
16760	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
16761	//   "request": {
16762	//     "$ref": "AsyncBatchAnnotateFilesRequest"
16763	//   },
16764	//   "response": {
16765	//     "$ref": "Operation"
16766	//   },
16767	//   "scopes": [
16768	//     "https://www.googleapis.com/auth/cloud-platform",
16769	//     "https://www.googleapis.com/auth/cloud-vision"
16770	//   ]
16771	// }
16772
16773}
16774
16775// method id "vision.projects.images.annotate":
16776
16777type ProjectsImagesAnnotateCall struct {
16778	s                          *Service
16779	parent                     string
16780	batchannotateimagesrequest *BatchAnnotateImagesRequest
16781	urlParams_                 gensupport.URLParams
16782	ctx_                       context.Context
16783	header_                    http.Header
16784}
16785
16786// Annotate: Run image detection and annotation for a batch of images.
16787func (r *ProjectsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsImagesAnnotateCall {
16788	c := &ProjectsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16789	c.parent = parent
16790	c.batchannotateimagesrequest = batchannotateimagesrequest
16791	return c
16792}
16793
16794// Fields allows partial responses to be retrieved. See
16795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16796// for more information.
16797func (c *ProjectsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAnnotateCall {
16798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16799	return c
16800}
16801
16802// Context sets the context to be used in this call's Do method. Any
16803// pending HTTP request will be aborted if the provided context is
16804// canceled.
16805func (c *ProjectsImagesAnnotateCall) Context(ctx context.Context) *ProjectsImagesAnnotateCall {
16806	c.ctx_ = ctx
16807	return c
16808}
16809
16810// Header returns an http.Header that can be modified by the caller to
16811// add HTTP headers to the request.
16812func (c *ProjectsImagesAnnotateCall) Header() http.Header {
16813	if c.header_ == nil {
16814		c.header_ = make(http.Header)
16815	}
16816	return c.header_
16817}
16818
16819func (c *ProjectsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
16820	reqHeaders := make(http.Header)
16821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16822	for k, v := range c.header_ {
16823		reqHeaders[k] = v
16824	}
16825	reqHeaders.Set("User-Agent", c.s.userAgent())
16826	var body io.Reader = nil
16827	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
16828	if err != nil {
16829		return nil, err
16830	}
16831	reqHeaders.Set("Content-Type", "application/json")
16832	c.urlParams_.Set("alt", alt)
16833	c.urlParams_.Set("prettyPrint", "false")
16834	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
16835	urls += "?" + c.urlParams_.Encode()
16836	req, err := http.NewRequest("POST", urls, body)
16837	if err != nil {
16838		return nil, err
16839	}
16840	req.Header = reqHeaders
16841	googleapi.Expand(req.URL, map[string]string{
16842		"parent": c.parent,
16843	})
16844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16845}
16846
16847// Do executes the "vision.projects.images.annotate" call.
16848// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
16849// Any non-2xx status code is an error. Response headers are in either
16850// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
16851// was returned at all) in error.(*googleapi.Error).Header. Use
16852// googleapi.IsNotModified to check whether the returned error was
16853// because http.StatusNotModified was returned.
16854func (c *ProjectsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
16855	gensupport.SetOptions(c.urlParams_, opts...)
16856	res, err := c.doRequest("json")
16857	if res != nil && res.StatusCode == http.StatusNotModified {
16858		if res.Body != nil {
16859			res.Body.Close()
16860		}
16861		return nil, &googleapi.Error{
16862			Code:   res.StatusCode,
16863			Header: res.Header,
16864		}
16865	}
16866	if err != nil {
16867		return nil, err
16868	}
16869	defer googleapi.CloseBody(res)
16870	if err := googleapi.CheckResponse(res); err != nil {
16871		return nil, err
16872	}
16873	ret := &BatchAnnotateImagesResponse{
16874		ServerResponse: googleapi.ServerResponse{
16875			Header:         res.Header,
16876			HTTPStatusCode: res.StatusCode,
16877		},
16878	}
16879	target := &ret
16880	if err := gensupport.DecodeResponse(target, res); err != nil {
16881		return nil, err
16882	}
16883	return ret, nil
16884	// {
16885	//   "description": "Run image detection and annotation for a batch of images.",
16886	//   "flatPath": "v1/projects/{projectsId}/images:annotate",
16887	//   "httpMethod": "POST",
16888	//   "id": "vision.projects.images.annotate",
16889	//   "parameterOrder": [
16890	//     "parent"
16891	//   ],
16892	//   "parameters": {
16893	//     "parent": {
16894	//       "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`.",
16895	//       "location": "path",
16896	//       "pattern": "^projects/[^/]+$",
16897	//       "required": true,
16898	//       "type": "string"
16899	//     }
16900	//   },
16901	//   "path": "v1/{+parent}/images:annotate",
16902	//   "request": {
16903	//     "$ref": "BatchAnnotateImagesRequest"
16904	//   },
16905	//   "response": {
16906	//     "$ref": "BatchAnnotateImagesResponse"
16907	//   },
16908	//   "scopes": [
16909	//     "https://www.googleapis.com/auth/cloud-platform",
16910	//     "https://www.googleapis.com/auth/cloud-vision"
16911	//   ]
16912	// }
16913
16914}
16915
16916// method id "vision.projects.images.asyncBatchAnnotate":
16917
16918type ProjectsImagesAsyncBatchAnnotateCall struct {
16919	s                               *Service
16920	parent                          string
16921	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
16922	urlParams_                      gensupport.URLParams
16923	ctx_                            context.Context
16924	header_                         http.Header
16925}
16926
16927// AsyncBatchAnnotate: Run asynchronous image detection and annotation
16928// for a list of images.
16929//
16930// Progress and results can be retrieved through
16931// the
16932// `google.longrunning.Operations` interface.
16933// `Operation.metadata` contains `OperationMetadata`
16934// (metadata).
16935// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
16936// (results).
16937//
16938// This service will write image annotation outputs to json files in
16939// customer
16940// GCS bucket, each json file containing BatchAnnotateImagesResponse
16941// proto.
16942func (r *ProjectsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsImagesAsyncBatchAnnotateCall {
16943	c := &ProjectsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16944	c.parent = parent
16945	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
16946	return c
16947}
16948
16949// Fields allows partial responses to be retrieved. See
16950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16951// for more information.
16952func (c *ProjectsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsImagesAsyncBatchAnnotateCall {
16953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16954	return c
16955}
16956
16957// Context sets the context to be used in this call's Do method. Any
16958// pending HTTP request will be aborted if the provided context is
16959// canceled.
16960func (c *ProjectsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsImagesAsyncBatchAnnotateCall {
16961	c.ctx_ = ctx
16962	return c
16963}
16964
16965// Header returns an http.Header that can be modified by the caller to
16966// add HTTP headers to the request.
16967func (c *ProjectsImagesAsyncBatchAnnotateCall) Header() http.Header {
16968	if c.header_ == nil {
16969		c.header_ = make(http.Header)
16970	}
16971	return c.header_
16972}
16973
16974func (c *ProjectsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
16975	reqHeaders := make(http.Header)
16976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
16977	for k, v := range c.header_ {
16978		reqHeaders[k] = v
16979	}
16980	reqHeaders.Set("User-Agent", c.s.userAgent())
16981	var body io.Reader = nil
16982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
16983	if err != nil {
16984		return nil, err
16985	}
16986	reqHeaders.Set("Content-Type", "application/json")
16987	c.urlParams_.Set("alt", alt)
16988	c.urlParams_.Set("prettyPrint", "false")
16989	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
16990	urls += "?" + c.urlParams_.Encode()
16991	req, err := http.NewRequest("POST", urls, body)
16992	if err != nil {
16993		return nil, err
16994	}
16995	req.Header = reqHeaders
16996	googleapi.Expand(req.URL, map[string]string{
16997		"parent": c.parent,
16998	})
16999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17000}
17001
17002// Do executes the "vision.projects.images.asyncBatchAnnotate" call.
17003// Exactly one of *Operation or error will be non-nil. Any non-2xx
17004// status code is an error. Response headers are in either
17005// *Operation.ServerResponse.Header or (if a response was returned at
17006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17007// to check whether the returned error was because
17008// http.StatusNotModified was returned.
17009func (c *ProjectsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17010	gensupport.SetOptions(c.urlParams_, opts...)
17011	res, err := c.doRequest("json")
17012	if res != nil && res.StatusCode == http.StatusNotModified {
17013		if res.Body != nil {
17014			res.Body.Close()
17015		}
17016		return nil, &googleapi.Error{
17017			Code:   res.StatusCode,
17018			Header: res.Header,
17019		}
17020	}
17021	if err != nil {
17022		return nil, err
17023	}
17024	defer googleapi.CloseBody(res)
17025	if err := googleapi.CheckResponse(res); err != nil {
17026		return nil, err
17027	}
17028	ret := &Operation{
17029		ServerResponse: googleapi.ServerResponse{
17030			Header:         res.Header,
17031			HTTPStatusCode: res.StatusCode,
17032		},
17033	}
17034	target := &ret
17035	if err := gensupport.DecodeResponse(target, res); err != nil {
17036		return nil, err
17037	}
17038	return ret, nil
17039	// {
17040	//   "description": "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.",
17041	//   "flatPath": "v1/projects/{projectsId}/images:asyncBatchAnnotate",
17042	//   "httpMethod": "POST",
17043	//   "id": "vision.projects.images.asyncBatchAnnotate",
17044	//   "parameterOrder": [
17045	//     "parent"
17046	//   ],
17047	//   "parameters": {
17048	//     "parent": {
17049	//       "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`.",
17050	//       "location": "path",
17051	//       "pattern": "^projects/[^/]+$",
17052	//       "required": true,
17053	//       "type": "string"
17054	//     }
17055	//   },
17056	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
17057	//   "request": {
17058	//     "$ref": "AsyncBatchAnnotateImagesRequest"
17059	//   },
17060	//   "response": {
17061	//     "$ref": "Operation"
17062	//   },
17063	//   "scopes": [
17064	//     "https://www.googleapis.com/auth/cloud-platform",
17065	//     "https://www.googleapis.com/auth/cloud-vision"
17066	//   ]
17067	// }
17068
17069}
17070
17071// method id "vision.projects.locations.files.annotate":
17072
17073type ProjectsLocationsFilesAnnotateCall struct {
17074	s                         *Service
17075	parent                    string
17076	batchannotatefilesrequest *BatchAnnotateFilesRequest
17077	urlParams_                gensupport.URLParams
17078	ctx_                      context.Context
17079	header_                   http.Header
17080}
17081
17082// Annotate: Service that performs image detection and annotation for a
17083// batch of files.
17084// Now only "application/pdf", "image/tiff" and "image/gif" are
17085// supported.
17086//
17087// This service will extract at most 5 (customers can specify which 5
17088// in
17089// AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from
17090// each
17091// file provided and perform detection and annotation for each
17092// image
17093// extracted.
17094func (r *ProjectsLocationsFilesService) Annotate(parent string, batchannotatefilesrequest *BatchAnnotateFilesRequest) *ProjectsLocationsFilesAnnotateCall {
17095	c := &ProjectsLocationsFilesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17096	c.parent = parent
17097	c.batchannotatefilesrequest = batchannotatefilesrequest
17098	return c
17099}
17100
17101// Fields allows partial responses to be retrieved. See
17102// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17103// for more information.
17104func (c *ProjectsLocationsFilesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAnnotateCall {
17105	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17106	return c
17107}
17108
17109// Context sets the context to be used in this call's Do method. Any
17110// pending HTTP request will be aborted if the provided context is
17111// canceled.
17112func (c *ProjectsLocationsFilesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAnnotateCall {
17113	c.ctx_ = ctx
17114	return c
17115}
17116
17117// Header returns an http.Header that can be modified by the caller to
17118// add HTTP headers to the request.
17119func (c *ProjectsLocationsFilesAnnotateCall) Header() http.Header {
17120	if c.header_ == nil {
17121		c.header_ = make(http.Header)
17122	}
17123	return c.header_
17124}
17125
17126func (c *ProjectsLocationsFilesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17127	reqHeaders := make(http.Header)
17128	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17129	for k, v := range c.header_ {
17130		reqHeaders[k] = v
17131	}
17132	reqHeaders.Set("User-Agent", c.s.userAgent())
17133	var body io.Reader = nil
17134	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotatefilesrequest)
17135	if err != nil {
17136		return nil, err
17137	}
17138	reqHeaders.Set("Content-Type", "application/json")
17139	c.urlParams_.Set("alt", alt)
17140	c.urlParams_.Set("prettyPrint", "false")
17141	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:annotate")
17142	urls += "?" + c.urlParams_.Encode()
17143	req, err := http.NewRequest("POST", urls, body)
17144	if err != nil {
17145		return nil, err
17146	}
17147	req.Header = reqHeaders
17148	googleapi.Expand(req.URL, map[string]string{
17149		"parent": c.parent,
17150	})
17151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17152}
17153
17154// Do executes the "vision.projects.locations.files.annotate" call.
17155// Exactly one of *BatchAnnotateFilesResponse or error will be non-nil.
17156// Any non-2xx status code is an error. Response headers are in either
17157// *BatchAnnotateFilesResponse.ServerResponse.Header or (if a response
17158// was returned at all) in error.(*googleapi.Error).Header. Use
17159// googleapi.IsNotModified to check whether the returned error was
17160// because http.StatusNotModified was returned.
17161func (c *ProjectsLocationsFilesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateFilesResponse, error) {
17162	gensupport.SetOptions(c.urlParams_, opts...)
17163	res, err := c.doRequest("json")
17164	if res != nil && res.StatusCode == http.StatusNotModified {
17165		if res.Body != nil {
17166			res.Body.Close()
17167		}
17168		return nil, &googleapi.Error{
17169			Code:   res.StatusCode,
17170			Header: res.Header,
17171		}
17172	}
17173	if err != nil {
17174		return nil, err
17175	}
17176	defer googleapi.CloseBody(res)
17177	if err := googleapi.CheckResponse(res); err != nil {
17178		return nil, err
17179	}
17180	ret := &BatchAnnotateFilesResponse{
17181		ServerResponse: googleapi.ServerResponse{
17182			Header:         res.Header,
17183			HTTPStatusCode: res.StatusCode,
17184		},
17185	}
17186	target := &ret
17187	if err := gensupport.DecodeResponse(target, res); err != nil {
17188		return nil, err
17189	}
17190	return ret, nil
17191	// {
17192	//   "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.",
17193	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:annotate",
17194	//   "httpMethod": "POST",
17195	//   "id": "vision.projects.locations.files.annotate",
17196	//   "parameterOrder": [
17197	//     "parent"
17198	//   ],
17199	//   "parameters": {
17200	//     "parent": {
17201	//       "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`.",
17202	//       "location": "path",
17203	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17204	//       "required": true,
17205	//       "type": "string"
17206	//     }
17207	//   },
17208	//   "path": "v1/{+parent}/files:annotate",
17209	//   "request": {
17210	//     "$ref": "BatchAnnotateFilesRequest"
17211	//   },
17212	//   "response": {
17213	//     "$ref": "BatchAnnotateFilesResponse"
17214	//   },
17215	//   "scopes": [
17216	//     "https://www.googleapis.com/auth/cloud-platform",
17217	//     "https://www.googleapis.com/auth/cloud-vision"
17218	//   ]
17219	// }
17220
17221}
17222
17223// method id "vision.projects.locations.files.asyncBatchAnnotate":
17224
17225type ProjectsLocationsFilesAsyncBatchAnnotateCall struct {
17226	s                              *Service
17227	parent                         string
17228	asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest
17229	urlParams_                     gensupport.URLParams
17230	ctx_                           context.Context
17231	header_                        http.Header
17232}
17233
17234// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17235// for a list of generic
17236// files, such as PDF files, which may contain multiple pages and
17237// multiple
17238// images per page. Progress and results can be retrieved through
17239// the
17240// `google.longrunning.Operations` interface.
17241// `Operation.metadata` contains `OperationMetadata`
17242// (metadata).
17243// `Operation.response` contains `AsyncBatchAnnotateFilesResponse`
17244// (results).
17245func (r *ProjectsLocationsFilesService) AsyncBatchAnnotate(parent string, asyncbatchannotatefilesrequest *AsyncBatchAnnotateFilesRequest) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17246	c := &ProjectsLocationsFilesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17247	c.parent = parent
17248	c.asyncbatchannotatefilesrequest = asyncbatchannotatefilesrequest
17249	return c
17250}
17251
17252// Fields allows partial responses to be retrieved. See
17253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17254// for more information.
17255func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17257	return c
17258}
17259
17260// Context sets the context to be used in this call's Do method. Any
17261// pending HTTP request will be aborted if the provided context is
17262// canceled.
17263func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsFilesAsyncBatchAnnotateCall {
17264	c.ctx_ = ctx
17265	return c
17266}
17267
17268// Header returns an http.Header that can be modified by the caller to
17269// add HTTP headers to the request.
17270func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Header() http.Header {
17271	if c.header_ == nil {
17272		c.header_ = make(http.Header)
17273	}
17274	return c.header_
17275}
17276
17277func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17278	reqHeaders := make(http.Header)
17279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17280	for k, v := range c.header_ {
17281		reqHeaders[k] = v
17282	}
17283	reqHeaders.Set("User-Agent", c.s.userAgent())
17284	var body io.Reader = nil
17285	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotatefilesrequest)
17286	if err != nil {
17287		return nil, err
17288	}
17289	reqHeaders.Set("Content-Type", "application/json")
17290	c.urlParams_.Set("alt", alt)
17291	c.urlParams_.Set("prettyPrint", "false")
17292	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/files:asyncBatchAnnotate")
17293	urls += "?" + c.urlParams_.Encode()
17294	req, err := http.NewRequest("POST", urls, body)
17295	if err != nil {
17296		return nil, err
17297	}
17298	req.Header = reqHeaders
17299	googleapi.Expand(req.URL, map[string]string{
17300		"parent": c.parent,
17301	})
17302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17303}
17304
17305// Do executes the "vision.projects.locations.files.asyncBatchAnnotate" call.
17306// Exactly one of *Operation or error will be non-nil. Any non-2xx
17307// status code is an error. Response headers are in either
17308// *Operation.ServerResponse.Header or (if a response was returned at
17309// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17310// to check whether the returned error was because
17311// http.StatusNotModified was returned.
17312func (c *ProjectsLocationsFilesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17313	gensupport.SetOptions(c.urlParams_, opts...)
17314	res, err := c.doRequest("json")
17315	if res != nil && res.StatusCode == http.StatusNotModified {
17316		if res.Body != nil {
17317			res.Body.Close()
17318		}
17319		return nil, &googleapi.Error{
17320			Code:   res.StatusCode,
17321			Header: res.Header,
17322		}
17323	}
17324	if err != nil {
17325		return nil, err
17326	}
17327	defer googleapi.CloseBody(res)
17328	if err := googleapi.CheckResponse(res); err != nil {
17329		return nil, err
17330	}
17331	ret := &Operation{
17332		ServerResponse: googleapi.ServerResponse{
17333			Header:         res.Header,
17334			HTTPStatusCode: res.StatusCode,
17335		},
17336	}
17337	target := &ret
17338	if err := gensupport.DecodeResponse(target, res); err != nil {
17339		return nil, err
17340	}
17341	return ret, nil
17342	// {
17343	//   "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).",
17344	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:asyncBatchAnnotate",
17345	//   "httpMethod": "POST",
17346	//   "id": "vision.projects.locations.files.asyncBatchAnnotate",
17347	//   "parameterOrder": [
17348	//     "parent"
17349	//   ],
17350	//   "parameters": {
17351	//     "parent": {
17352	//       "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`.",
17353	//       "location": "path",
17354	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17355	//       "required": true,
17356	//       "type": "string"
17357	//     }
17358	//   },
17359	//   "path": "v1/{+parent}/files:asyncBatchAnnotate",
17360	//   "request": {
17361	//     "$ref": "AsyncBatchAnnotateFilesRequest"
17362	//   },
17363	//   "response": {
17364	//     "$ref": "Operation"
17365	//   },
17366	//   "scopes": [
17367	//     "https://www.googleapis.com/auth/cloud-platform",
17368	//     "https://www.googleapis.com/auth/cloud-vision"
17369	//   ]
17370	// }
17371
17372}
17373
17374// method id "vision.projects.locations.images.annotate":
17375
17376type ProjectsLocationsImagesAnnotateCall struct {
17377	s                          *Service
17378	parent                     string
17379	batchannotateimagesrequest *BatchAnnotateImagesRequest
17380	urlParams_                 gensupport.URLParams
17381	ctx_                       context.Context
17382	header_                    http.Header
17383}
17384
17385// Annotate: Run image detection and annotation for a batch of images.
17386func (r *ProjectsLocationsImagesService) Annotate(parent string, batchannotateimagesrequest *BatchAnnotateImagesRequest) *ProjectsLocationsImagesAnnotateCall {
17387	c := &ProjectsLocationsImagesAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17388	c.parent = parent
17389	c.batchannotateimagesrequest = batchannotateimagesrequest
17390	return c
17391}
17392
17393// Fields allows partial responses to be retrieved. See
17394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17395// for more information.
17396func (c *ProjectsLocationsImagesAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAnnotateCall {
17397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17398	return c
17399}
17400
17401// Context sets the context to be used in this call's Do method. Any
17402// pending HTTP request will be aborted if the provided context is
17403// canceled.
17404func (c *ProjectsLocationsImagesAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAnnotateCall {
17405	c.ctx_ = ctx
17406	return c
17407}
17408
17409// Header returns an http.Header that can be modified by the caller to
17410// add HTTP headers to the request.
17411func (c *ProjectsLocationsImagesAnnotateCall) Header() http.Header {
17412	if c.header_ == nil {
17413		c.header_ = make(http.Header)
17414	}
17415	return c.header_
17416}
17417
17418func (c *ProjectsLocationsImagesAnnotateCall) doRequest(alt string) (*http.Response, error) {
17419	reqHeaders := make(http.Header)
17420	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17421	for k, v := range c.header_ {
17422		reqHeaders[k] = v
17423	}
17424	reqHeaders.Set("User-Agent", c.s.userAgent())
17425	var body io.Reader = nil
17426	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchannotateimagesrequest)
17427	if err != nil {
17428		return nil, err
17429	}
17430	reqHeaders.Set("Content-Type", "application/json")
17431	c.urlParams_.Set("alt", alt)
17432	c.urlParams_.Set("prettyPrint", "false")
17433	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:annotate")
17434	urls += "?" + c.urlParams_.Encode()
17435	req, err := http.NewRequest("POST", urls, body)
17436	if err != nil {
17437		return nil, err
17438	}
17439	req.Header = reqHeaders
17440	googleapi.Expand(req.URL, map[string]string{
17441		"parent": c.parent,
17442	})
17443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17444}
17445
17446// Do executes the "vision.projects.locations.images.annotate" call.
17447// Exactly one of *BatchAnnotateImagesResponse or error will be non-nil.
17448// Any non-2xx status code is an error. Response headers are in either
17449// *BatchAnnotateImagesResponse.ServerResponse.Header or (if a response
17450// was returned at all) in error.(*googleapi.Error).Header. Use
17451// googleapi.IsNotModified to check whether the returned error was
17452// because http.StatusNotModified was returned.
17453func (c *ProjectsLocationsImagesAnnotateCall) Do(opts ...googleapi.CallOption) (*BatchAnnotateImagesResponse, error) {
17454	gensupport.SetOptions(c.urlParams_, opts...)
17455	res, err := c.doRequest("json")
17456	if res != nil && res.StatusCode == http.StatusNotModified {
17457		if res.Body != nil {
17458			res.Body.Close()
17459		}
17460		return nil, &googleapi.Error{
17461			Code:   res.StatusCode,
17462			Header: res.Header,
17463		}
17464	}
17465	if err != nil {
17466		return nil, err
17467	}
17468	defer googleapi.CloseBody(res)
17469	if err := googleapi.CheckResponse(res); err != nil {
17470		return nil, err
17471	}
17472	ret := &BatchAnnotateImagesResponse{
17473		ServerResponse: googleapi.ServerResponse{
17474			Header:         res.Header,
17475			HTTPStatusCode: res.StatusCode,
17476		},
17477	}
17478	target := &ret
17479	if err := gensupport.DecodeResponse(target, res); err != nil {
17480		return nil, err
17481	}
17482	return ret, nil
17483	// {
17484	//   "description": "Run image detection and annotation for a batch of images.",
17485	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:annotate",
17486	//   "httpMethod": "POST",
17487	//   "id": "vision.projects.locations.images.annotate",
17488	//   "parameterOrder": [
17489	//     "parent"
17490	//   ],
17491	//   "parameters": {
17492	//     "parent": {
17493	//       "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`.",
17494	//       "location": "path",
17495	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17496	//       "required": true,
17497	//       "type": "string"
17498	//     }
17499	//   },
17500	//   "path": "v1/{+parent}/images:annotate",
17501	//   "request": {
17502	//     "$ref": "BatchAnnotateImagesRequest"
17503	//   },
17504	//   "response": {
17505	//     "$ref": "BatchAnnotateImagesResponse"
17506	//   },
17507	//   "scopes": [
17508	//     "https://www.googleapis.com/auth/cloud-platform",
17509	//     "https://www.googleapis.com/auth/cloud-vision"
17510	//   ]
17511	// }
17512
17513}
17514
17515// method id "vision.projects.locations.images.asyncBatchAnnotate":
17516
17517type ProjectsLocationsImagesAsyncBatchAnnotateCall struct {
17518	s                               *Service
17519	parent                          string
17520	asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest
17521	urlParams_                      gensupport.URLParams
17522	ctx_                            context.Context
17523	header_                         http.Header
17524}
17525
17526// AsyncBatchAnnotate: Run asynchronous image detection and annotation
17527// for a list of images.
17528//
17529// Progress and results can be retrieved through
17530// the
17531// `google.longrunning.Operations` interface.
17532// `Operation.metadata` contains `OperationMetadata`
17533// (metadata).
17534// `Operation.response` contains `AsyncBatchAnnotateImagesResponse`
17535// (results).
17536//
17537// This service will write image annotation outputs to json files in
17538// customer
17539// GCS bucket, each json file containing BatchAnnotateImagesResponse
17540// proto.
17541func (r *ProjectsLocationsImagesService) AsyncBatchAnnotate(parent string, asyncbatchannotateimagesrequest *AsyncBatchAnnotateImagesRequest) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17542	c := &ProjectsLocationsImagesAsyncBatchAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17543	c.parent = parent
17544	c.asyncbatchannotateimagesrequest = asyncbatchannotateimagesrequest
17545	return c
17546}
17547
17548// Fields allows partial responses to be retrieved. See
17549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17550// for more information.
17551func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Fields(s ...googleapi.Field) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17553	return c
17554}
17555
17556// Context sets the context to be used in this call's Do method. Any
17557// pending HTTP request will be aborted if the provided context is
17558// canceled.
17559func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Context(ctx context.Context) *ProjectsLocationsImagesAsyncBatchAnnotateCall {
17560	c.ctx_ = ctx
17561	return c
17562}
17563
17564// Header returns an http.Header that can be modified by the caller to
17565// add HTTP headers to the request.
17566func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Header() http.Header {
17567	if c.header_ == nil {
17568		c.header_ = make(http.Header)
17569	}
17570	return c.header_
17571}
17572
17573func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) doRequest(alt string) (*http.Response, error) {
17574	reqHeaders := make(http.Header)
17575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17576	for k, v := range c.header_ {
17577		reqHeaders[k] = v
17578	}
17579	reqHeaders.Set("User-Agent", c.s.userAgent())
17580	var body io.Reader = nil
17581	body, err := googleapi.WithoutDataWrapper.JSONReader(c.asyncbatchannotateimagesrequest)
17582	if err != nil {
17583		return nil, err
17584	}
17585	reqHeaders.Set("Content-Type", "application/json")
17586	c.urlParams_.Set("alt", alt)
17587	c.urlParams_.Set("prettyPrint", "false")
17588	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/images:asyncBatchAnnotate")
17589	urls += "?" + c.urlParams_.Encode()
17590	req, err := http.NewRequest("POST", urls, body)
17591	if err != nil {
17592		return nil, err
17593	}
17594	req.Header = reqHeaders
17595	googleapi.Expand(req.URL, map[string]string{
17596		"parent": c.parent,
17597	})
17598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17599}
17600
17601// Do executes the "vision.projects.locations.images.asyncBatchAnnotate" call.
17602// Exactly one of *Operation or error will be non-nil. Any non-2xx
17603// status code is an error. Response headers are in either
17604// *Operation.ServerResponse.Header or (if a response was returned at
17605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17606// to check whether the returned error was because
17607// http.StatusNotModified was returned.
17608func (c *ProjectsLocationsImagesAsyncBatchAnnotateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17609	gensupport.SetOptions(c.urlParams_, opts...)
17610	res, err := c.doRequest("json")
17611	if res != nil && res.StatusCode == http.StatusNotModified {
17612		if res.Body != nil {
17613			res.Body.Close()
17614		}
17615		return nil, &googleapi.Error{
17616			Code:   res.StatusCode,
17617			Header: res.Header,
17618		}
17619	}
17620	if err != nil {
17621		return nil, err
17622	}
17623	defer googleapi.CloseBody(res)
17624	if err := googleapi.CheckResponse(res); err != nil {
17625		return nil, err
17626	}
17627	ret := &Operation{
17628		ServerResponse: googleapi.ServerResponse{
17629			Header:         res.Header,
17630			HTTPStatusCode: res.StatusCode,
17631		},
17632	}
17633	target := &ret
17634	if err := gensupport.DecodeResponse(target, res); err != nil {
17635		return nil, err
17636	}
17637	return ret, nil
17638	// {
17639	//   "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.",
17640	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:asyncBatchAnnotate",
17641	//   "httpMethod": "POST",
17642	//   "id": "vision.projects.locations.images.asyncBatchAnnotate",
17643	//   "parameterOrder": [
17644	//     "parent"
17645	//   ],
17646	//   "parameters": {
17647	//     "parent": {
17648	//       "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`.",
17649	//       "location": "path",
17650	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
17651	//       "required": true,
17652	//       "type": "string"
17653	//     }
17654	//   },
17655	//   "path": "v1/{+parent}/images:asyncBatchAnnotate",
17656	//   "request": {
17657	//     "$ref": "AsyncBatchAnnotateImagesRequest"
17658	//   },
17659	//   "response": {
17660	//     "$ref": "Operation"
17661	//   },
17662	//   "scopes": [
17663	//     "https://www.googleapis.com/auth/cloud-platform",
17664	//     "https://www.googleapis.com/auth/cloud-vision"
17665	//   ]
17666	// }
17667
17668}
17669
17670// method id "vision.projects.locations.operations.get":
17671
17672type ProjectsLocationsOperationsGetCall struct {
17673	s            *Service
17674	name         string
17675	urlParams_   gensupport.URLParams
17676	ifNoneMatch_ string
17677	ctx_         context.Context
17678	header_      http.Header
17679}
17680
17681// Get: Gets the latest state of a long-running operation.  Clients can
17682// use this
17683// method to poll the operation result at intervals as recommended by
17684// the API
17685// service.
17686func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
17687	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17688	c.name = name
17689	return c
17690}
17691
17692// Fields allows partial responses to be retrieved. See
17693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17694// for more information.
17695func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
17696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17697	return c
17698}
17699
17700// IfNoneMatch sets the optional parameter which makes the operation
17701// fail if the object's ETag matches the given value. This is useful for
17702// getting updates only after the object has changed since the last
17703// request. Use googleapi.IsNotModified to check whether the response
17704// error from Do is the result of In-None-Match.
17705func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
17706	c.ifNoneMatch_ = entityTag
17707	return c
17708}
17709
17710// Context sets the context to be used in this call's Do method. Any
17711// pending HTTP request will be aborted if the provided context is
17712// canceled.
17713func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
17714	c.ctx_ = ctx
17715	return c
17716}
17717
17718// Header returns an http.Header that can be modified by the caller to
17719// add HTTP headers to the request.
17720func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
17721	if c.header_ == nil {
17722		c.header_ = make(http.Header)
17723	}
17724	return c.header_
17725}
17726
17727func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
17728	reqHeaders := make(http.Header)
17729	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17730	for k, v := range c.header_ {
17731		reqHeaders[k] = v
17732	}
17733	reqHeaders.Set("User-Agent", c.s.userAgent())
17734	if c.ifNoneMatch_ != "" {
17735		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17736	}
17737	var body io.Reader = nil
17738	c.urlParams_.Set("alt", alt)
17739	c.urlParams_.Set("prettyPrint", "false")
17740	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
17741	urls += "?" + c.urlParams_.Encode()
17742	req, err := http.NewRequest("GET", urls, body)
17743	if err != nil {
17744		return nil, err
17745	}
17746	req.Header = reqHeaders
17747	googleapi.Expand(req.URL, map[string]string{
17748		"name": c.name,
17749	})
17750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17751}
17752
17753// Do executes the "vision.projects.locations.operations.get" call.
17754// Exactly one of *Operation or error will be non-nil. Any non-2xx
17755// status code is an error. Response headers are in either
17756// *Operation.ServerResponse.Header or (if a response was returned at
17757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17758// to check whether the returned error was because
17759// http.StatusNotModified was returned.
17760func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
17761	gensupport.SetOptions(c.urlParams_, opts...)
17762	res, err := c.doRequest("json")
17763	if res != nil && res.StatusCode == http.StatusNotModified {
17764		if res.Body != nil {
17765			res.Body.Close()
17766		}
17767		return nil, &googleapi.Error{
17768			Code:   res.StatusCode,
17769			Header: res.Header,
17770		}
17771	}
17772	if err != nil {
17773		return nil, err
17774	}
17775	defer googleapi.CloseBody(res)
17776	if err := googleapi.CheckResponse(res); err != nil {
17777		return nil, err
17778	}
17779	ret := &Operation{
17780		ServerResponse: googleapi.ServerResponse{
17781			Header:         res.Header,
17782			HTTPStatusCode: res.StatusCode,
17783		},
17784	}
17785	target := &ret
17786	if err := gensupport.DecodeResponse(target, res); err != nil {
17787		return nil, err
17788	}
17789	return ret, nil
17790	// {
17791	//   "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.",
17792	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
17793	//   "httpMethod": "GET",
17794	//   "id": "vision.projects.locations.operations.get",
17795	//   "parameterOrder": [
17796	//     "name"
17797	//   ],
17798	//   "parameters": {
17799	//     "name": {
17800	//       "description": "The name of the operation resource.",
17801	//       "location": "path",
17802	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
17803	//       "required": true,
17804	//       "type": "string"
17805	//     }
17806	//   },
17807	//   "path": "v1/{+name}",
17808	//   "response": {
17809	//     "$ref": "Operation"
17810	//   },
17811	//   "scopes": [
17812	//     "https://www.googleapis.com/auth/cloud-platform",
17813	//     "https://www.googleapis.com/auth/cloud-vision"
17814	//   ]
17815	// }
17816
17817}
17818
17819// method id "vision.projects.locations.productSets.addProduct":
17820
17821type ProjectsLocationsProductSetsAddProductCall struct {
17822	s                             *Service
17823	name                          string
17824	addproducttoproductsetrequest *AddProductToProductSetRequest
17825	urlParams_                    gensupport.URLParams
17826	ctx_                          context.Context
17827	header_                       http.Header
17828}
17829
17830// AddProduct: Adds a Product to the specified ProductSet. If the
17831// Product is already
17832// present, no change is made.
17833//
17834// One Product can be added to at most 100 ProductSets.
17835//
17836// Possible errors:
17837//
17838// * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
17839func (r *ProjectsLocationsProductSetsService) AddProduct(name string, addproducttoproductsetrequest *AddProductToProductSetRequest) *ProjectsLocationsProductSetsAddProductCall {
17840	c := &ProjectsLocationsProductSetsAddProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17841	c.name = name
17842	c.addproducttoproductsetrequest = addproducttoproductsetrequest
17843	return c
17844}
17845
17846// Fields allows partial responses to be retrieved. See
17847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17848// for more information.
17849func (c *ProjectsLocationsProductSetsAddProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsAddProductCall {
17850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17851	return c
17852}
17853
17854// Context sets the context to be used in this call's Do method. Any
17855// pending HTTP request will be aborted if the provided context is
17856// canceled.
17857func (c *ProjectsLocationsProductSetsAddProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsAddProductCall {
17858	c.ctx_ = ctx
17859	return c
17860}
17861
17862// Header returns an http.Header that can be modified by the caller to
17863// add HTTP headers to the request.
17864func (c *ProjectsLocationsProductSetsAddProductCall) Header() http.Header {
17865	if c.header_ == nil {
17866		c.header_ = make(http.Header)
17867	}
17868	return c.header_
17869}
17870
17871func (c *ProjectsLocationsProductSetsAddProductCall) doRequest(alt string) (*http.Response, error) {
17872	reqHeaders := make(http.Header)
17873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
17874	for k, v := range c.header_ {
17875		reqHeaders[k] = v
17876	}
17877	reqHeaders.Set("User-Agent", c.s.userAgent())
17878	var body io.Reader = nil
17879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addproducttoproductsetrequest)
17880	if err != nil {
17881		return nil, err
17882	}
17883	reqHeaders.Set("Content-Type", "application/json")
17884	c.urlParams_.Set("alt", alt)
17885	c.urlParams_.Set("prettyPrint", "false")
17886	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:addProduct")
17887	urls += "?" + c.urlParams_.Encode()
17888	req, err := http.NewRequest("POST", urls, body)
17889	if err != nil {
17890		return nil, err
17891	}
17892	req.Header = reqHeaders
17893	googleapi.Expand(req.URL, map[string]string{
17894		"name": c.name,
17895	})
17896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17897}
17898
17899// Do executes the "vision.projects.locations.productSets.addProduct" call.
17900// Exactly one of *Empty or error will be non-nil. Any non-2xx status
17901// code is an error. Response headers are in either
17902// *Empty.ServerResponse.Header or (if a response was returned at all)
17903// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17904// check whether the returned error was because http.StatusNotModified
17905// was returned.
17906func (c *ProjectsLocationsProductSetsAddProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
17907	gensupport.SetOptions(c.urlParams_, opts...)
17908	res, err := c.doRequest("json")
17909	if res != nil && res.StatusCode == http.StatusNotModified {
17910		if res.Body != nil {
17911			res.Body.Close()
17912		}
17913		return nil, &googleapi.Error{
17914			Code:   res.StatusCode,
17915			Header: res.Header,
17916		}
17917	}
17918	if err != nil {
17919		return nil, err
17920	}
17921	defer googleapi.CloseBody(res)
17922	if err := googleapi.CheckResponse(res); err != nil {
17923		return nil, err
17924	}
17925	ret := &Empty{
17926		ServerResponse: googleapi.ServerResponse{
17927			Header:         res.Header,
17928			HTTPStatusCode: res.StatusCode,
17929		},
17930	}
17931	target := &ret
17932	if err := gensupport.DecodeResponse(target, res); err != nil {
17933		return nil, err
17934	}
17935	return ret, nil
17936	// {
17937	//   "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.",
17938	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:addProduct",
17939	//   "httpMethod": "POST",
17940	//   "id": "vision.projects.locations.productSets.addProduct",
17941	//   "parameterOrder": [
17942	//     "name"
17943	//   ],
17944	//   "parameters": {
17945	//     "name": {
17946	//       "description": "Required. The resource name for the ProductSet to modify.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
17947	//       "location": "path",
17948	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
17949	//       "required": true,
17950	//       "type": "string"
17951	//     }
17952	//   },
17953	//   "path": "v1/{+name}:addProduct",
17954	//   "request": {
17955	//     "$ref": "AddProductToProductSetRequest"
17956	//   },
17957	//   "response": {
17958	//     "$ref": "Empty"
17959	//   },
17960	//   "scopes": [
17961	//     "https://www.googleapis.com/auth/cloud-platform",
17962	//     "https://www.googleapis.com/auth/cloud-vision"
17963	//   ]
17964	// }
17965
17966}
17967
17968// method id "vision.projects.locations.productSets.create":
17969
17970type ProjectsLocationsProductSetsCreateCall struct {
17971	s          *Service
17972	parent     string
17973	productset *ProductSet
17974	urlParams_ gensupport.URLParams
17975	ctx_       context.Context
17976	header_    http.Header
17977}
17978
17979// Create: Creates and returns a new ProductSet resource.
17980//
17981// Possible errors:
17982//
17983// * Returns INVALID_ARGUMENT if display_name is missing, or is longer
17984// than
17985//   4096 characters.
17986func (r *ProjectsLocationsProductSetsService) Create(parent string, productset *ProductSet) *ProjectsLocationsProductSetsCreateCall {
17987	c := &ProjectsLocationsProductSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17988	c.parent = parent
17989	c.productset = productset
17990	return c
17991}
17992
17993// ProductSetId sets the optional parameter "productSetId": A
17994// user-supplied resource id for this ProductSet. If set, the server
17995// will
17996// attempt to use this value as the resource id. If it is already in
17997// use, an
17998// error is returned with code ALREADY_EXISTS. Must be at most 128
17999// characters
18000// long. It cannot contain the character `/`.
18001func (c *ProjectsLocationsProductSetsCreateCall) ProductSetId(productSetId string) *ProjectsLocationsProductSetsCreateCall {
18002	c.urlParams_.Set("productSetId", productSetId)
18003	return c
18004}
18005
18006// Fields allows partial responses to be retrieved. See
18007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18008// for more information.
18009func (c *ProjectsLocationsProductSetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsCreateCall {
18010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18011	return c
18012}
18013
18014// Context sets the context to be used in this call's Do method. Any
18015// pending HTTP request will be aborted if the provided context is
18016// canceled.
18017func (c *ProjectsLocationsProductSetsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductSetsCreateCall {
18018	c.ctx_ = ctx
18019	return c
18020}
18021
18022// Header returns an http.Header that can be modified by the caller to
18023// add HTTP headers to the request.
18024func (c *ProjectsLocationsProductSetsCreateCall) Header() http.Header {
18025	if c.header_ == nil {
18026		c.header_ = make(http.Header)
18027	}
18028	return c.header_
18029}
18030
18031func (c *ProjectsLocationsProductSetsCreateCall) doRequest(alt string) (*http.Response, error) {
18032	reqHeaders := make(http.Header)
18033	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18034	for k, v := range c.header_ {
18035		reqHeaders[k] = v
18036	}
18037	reqHeaders.Set("User-Agent", c.s.userAgent())
18038	var body io.Reader = nil
18039	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
18040	if err != nil {
18041		return nil, err
18042	}
18043	reqHeaders.Set("Content-Type", "application/json")
18044	c.urlParams_.Set("alt", alt)
18045	c.urlParams_.Set("prettyPrint", "false")
18046	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
18047	urls += "?" + c.urlParams_.Encode()
18048	req, err := http.NewRequest("POST", urls, body)
18049	if err != nil {
18050		return nil, err
18051	}
18052	req.Header = reqHeaders
18053	googleapi.Expand(req.URL, map[string]string{
18054		"parent": c.parent,
18055	})
18056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18057}
18058
18059// Do executes the "vision.projects.locations.productSets.create" call.
18060// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18061// status code is an error. Response headers are in either
18062// *ProductSet.ServerResponse.Header or (if a response was returned at
18063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18064// to check whether the returned error was because
18065// http.StatusNotModified was returned.
18066func (c *ProjectsLocationsProductSetsCreateCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18067	gensupport.SetOptions(c.urlParams_, opts...)
18068	res, err := c.doRequest("json")
18069	if res != nil && res.StatusCode == http.StatusNotModified {
18070		if res.Body != nil {
18071			res.Body.Close()
18072		}
18073		return nil, &googleapi.Error{
18074			Code:   res.StatusCode,
18075			Header: res.Header,
18076		}
18077	}
18078	if err != nil {
18079		return nil, err
18080	}
18081	defer googleapi.CloseBody(res)
18082	if err := googleapi.CheckResponse(res); err != nil {
18083		return nil, err
18084	}
18085	ret := &ProductSet{
18086		ServerResponse: googleapi.ServerResponse{
18087			Header:         res.Header,
18088			HTTPStatusCode: res.StatusCode,
18089		},
18090	}
18091	target := &ret
18092	if err := gensupport.DecodeResponse(target, res); err != nil {
18093		return nil, err
18094	}
18095	return ret, nil
18096	// {
18097	//   "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.",
18098	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
18099	//   "httpMethod": "POST",
18100	//   "id": "vision.projects.locations.productSets.create",
18101	//   "parameterOrder": [
18102	//     "parent"
18103	//   ],
18104	//   "parameters": {
18105	//     "parent": {
18106	//       "description": "Required. The project in which the ProductSet should be created.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18107	//       "location": "path",
18108	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18109	//       "required": true,
18110	//       "type": "string"
18111	//     },
18112	//     "productSetId": {
18113	//       "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 `/`.",
18114	//       "location": "query",
18115	//       "type": "string"
18116	//     }
18117	//   },
18118	//   "path": "v1/{+parent}/productSets",
18119	//   "request": {
18120	//     "$ref": "ProductSet"
18121	//   },
18122	//   "response": {
18123	//     "$ref": "ProductSet"
18124	//   },
18125	//   "scopes": [
18126	//     "https://www.googleapis.com/auth/cloud-platform",
18127	//     "https://www.googleapis.com/auth/cloud-vision"
18128	//   ]
18129	// }
18130
18131}
18132
18133// method id "vision.projects.locations.productSets.delete":
18134
18135type ProjectsLocationsProductSetsDeleteCall struct {
18136	s          *Service
18137	name       string
18138	urlParams_ gensupport.URLParams
18139	ctx_       context.Context
18140	header_    http.Header
18141}
18142
18143// Delete: Permanently deletes a ProductSet. Products and
18144// ReferenceImages in the
18145// ProductSet are not deleted.
18146//
18147// The actual image files are not deleted from Google Cloud Storage.
18148func (r *ProjectsLocationsProductSetsService) Delete(name string) *ProjectsLocationsProductSetsDeleteCall {
18149	c := &ProjectsLocationsProductSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18150	c.name = name
18151	return c
18152}
18153
18154// Fields allows partial responses to be retrieved. See
18155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18156// for more information.
18157func (c *ProjectsLocationsProductSetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsDeleteCall {
18158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18159	return c
18160}
18161
18162// Context sets the context to be used in this call's Do method. Any
18163// pending HTTP request will be aborted if the provided context is
18164// canceled.
18165func (c *ProjectsLocationsProductSetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductSetsDeleteCall {
18166	c.ctx_ = ctx
18167	return c
18168}
18169
18170// Header returns an http.Header that can be modified by the caller to
18171// add HTTP headers to the request.
18172func (c *ProjectsLocationsProductSetsDeleteCall) Header() http.Header {
18173	if c.header_ == nil {
18174		c.header_ = make(http.Header)
18175	}
18176	return c.header_
18177}
18178
18179func (c *ProjectsLocationsProductSetsDeleteCall) doRequest(alt string) (*http.Response, error) {
18180	reqHeaders := make(http.Header)
18181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18182	for k, v := range c.header_ {
18183		reqHeaders[k] = v
18184	}
18185	reqHeaders.Set("User-Agent", c.s.userAgent())
18186	var body io.Reader = nil
18187	c.urlParams_.Set("alt", alt)
18188	c.urlParams_.Set("prettyPrint", "false")
18189	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18190	urls += "?" + c.urlParams_.Encode()
18191	req, err := http.NewRequest("DELETE", urls, body)
18192	if err != nil {
18193		return nil, err
18194	}
18195	req.Header = reqHeaders
18196	googleapi.Expand(req.URL, map[string]string{
18197		"name": c.name,
18198	})
18199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18200}
18201
18202// Do executes the "vision.projects.locations.productSets.delete" call.
18203// Exactly one of *Empty or error will be non-nil. Any non-2xx status
18204// code is an error. Response headers are in either
18205// *Empty.ServerResponse.Header or (if a response was returned at all)
18206// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18207// check whether the returned error was because http.StatusNotModified
18208// was returned.
18209func (c *ProjectsLocationsProductSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
18210	gensupport.SetOptions(c.urlParams_, opts...)
18211	res, err := c.doRequest("json")
18212	if res != nil && res.StatusCode == http.StatusNotModified {
18213		if res.Body != nil {
18214			res.Body.Close()
18215		}
18216		return nil, &googleapi.Error{
18217			Code:   res.StatusCode,
18218			Header: res.Header,
18219		}
18220	}
18221	if err != nil {
18222		return nil, err
18223	}
18224	defer googleapi.CloseBody(res)
18225	if err := googleapi.CheckResponse(res); err != nil {
18226		return nil, err
18227	}
18228	ret := &Empty{
18229		ServerResponse: googleapi.ServerResponse{
18230			Header:         res.Header,
18231			HTTPStatusCode: res.StatusCode,
18232		},
18233	}
18234	target := &ret
18235	if err := gensupport.DecodeResponse(target, res); err != nil {
18236		return nil, err
18237	}
18238	return ret, nil
18239	// {
18240	//   "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.",
18241	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18242	//   "httpMethod": "DELETE",
18243	//   "id": "vision.projects.locations.productSets.delete",
18244	//   "parameterOrder": [
18245	//     "name"
18246	//   ],
18247	//   "parameters": {
18248	//     "name": {
18249	//       "description": "Required. Resource name of the ProductSet to delete.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
18250	//       "location": "path",
18251	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18252	//       "required": true,
18253	//       "type": "string"
18254	//     }
18255	//   },
18256	//   "path": "v1/{+name}",
18257	//   "response": {
18258	//     "$ref": "Empty"
18259	//   },
18260	//   "scopes": [
18261	//     "https://www.googleapis.com/auth/cloud-platform",
18262	//     "https://www.googleapis.com/auth/cloud-vision"
18263	//   ]
18264	// }
18265
18266}
18267
18268// method id "vision.projects.locations.productSets.get":
18269
18270type ProjectsLocationsProductSetsGetCall struct {
18271	s            *Service
18272	name         string
18273	urlParams_   gensupport.URLParams
18274	ifNoneMatch_ string
18275	ctx_         context.Context
18276	header_      http.Header
18277}
18278
18279// Get: Gets information associated with a ProductSet.
18280//
18281// Possible errors:
18282//
18283// * Returns NOT_FOUND if the ProductSet does not exist.
18284func (r *ProjectsLocationsProductSetsService) Get(name string) *ProjectsLocationsProductSetsGetCall {
18285	c := &ProjectsLocationsProductSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18286	c.name = name
18287	return c
18288}
18289
18290// Fields allows partial responses to be retrieved. See
18291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18292// for more information.
18293func (c *ProjectsLocationsProductSetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsGetCall {
18294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18295	return c
18296}
18297
18298// IfNoneMatch sets the optional parameter which makes the operation
18299// fail if the object's ETag matches the given value. This is useful for
18300// getting updates only after the object has changed since the last
18301// request. Use googleapi.IsNotModified to check whether the response
18302// error from Do is the result of In-None-Match.
18303func (c *ProjectsLocationsProductSetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsGetCall {
18304	c.ifNoneMatch_ = entityTag
18305	return c
18306}
18307
18308// Context sets the context to be used in this call's Do method. Any
18309// pending HTTP request will be aborted if the provided context is
18310// canceled.
18311func (c *ProjectsLocationsProductSetsGetCall) Context(ctx context.Context) *ProjectsLocationsProductSetsGetCall {
18312	c.ctx_ = ctx
18313	return c
18314}
18315
18316// Header returns an http.Header that can be modified by the caller to
18317// add HTTP headers to the request.
18318func (c *ProjectsLocationsProductSetsGetCall) Header() http.Header {
18319	if c.header_ == nil {
18320		c.header_ = make(http.Header)
18321	}
18322	return c.header_
18323}
18324
18325func (c *ProjectsLocationsProductSetsGetCall) doRequest(alt string) (*http.Response, error) {
18326	reqHeaders := make(http.Header)
18327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18328	for k, v := range c.header_ {
18329		reqHeaders[k] = v
18330	}
18331	reqHeaders.Set("User-Agent", c.s.userAgent())
18332	if c.ifNoneMatch_ != "" {
18333		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18334	}
18335	var body io.Reader = nil
18336	c.urlParams_.Set("alt", alt)
18337	c.urlParams_.Set("prettyPrint", "false")
18338	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18339	urls += "?" + c.urlParams_.Encode()
18340	req, err := http.NewRequest("GET", urls, body)
18341	if err != nil {
18342		return nil, err
18343	}
18344	req.Header = reqHeaders
18345	googleapi.Expand(req.URL, map[string]string{
18346		"name": c.name,
18347	})
18348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18349}
18350
18351// Do executes the "vision.projects.locations.productSets.get" call.
18352// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18353// status code is an error. Response headers are in either
18354// *ProductSet.ServerResponse.Header or (if a response was returned at
18355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18356// to check whether the returned error was because
18357// http.StatusNotModified was returned.
18358func (c *ProjectsLocationsProductSetsGetCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18359	gensupport.SetOptions(c.urlParams_, opts...)
18360	res, err := c.doRequest("json")
18361	if res != nil && res.StatusCode == http.StatusNotModified {
18362		if res.Body != nil {
18363			res.Body.Close()
18364		}
18365		return nil, &googleapi.Error{
18366			Code:   res.StatusCode,
18367			Header: res.Header,
18368		}
18369	}
18370	if err != nil {
18371		return nil, err
18372	}
18373	defer googleapi.CloseBody(res)
18374	if err := googleapi.CheckResponse(res); err != nil {
18375		return nil, err
18376	}
18377	ret := &ProductSet{
18378		ServerResponse: googleapi.ServerResponse{
18379			Header:         res.Header,
18380			HTTPStatusCode: res.StatusCode,
18381		},
18382	}
18383	target := &ret
18384	if err := gensupport.DecodeResponse(target, res); err != nil {
18385		return nil, err
18386	}
18387	return ret, nil
18388	// {
18389	//   "description": "Gets information associated with a ProductSet.\n\nPossible errors:\n\n* Returns NOT_FOUND if the ProductSet does not exist.",
18390	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18391	//   "httpMethod": "GET",
18392	//   "id": "vision.projects.locations.productSets.get",
18393	//   "parameterOrder": [
18394	//     "name"
18395	//   ],
18396	//   "parameters": {
18397	//     "name": {
18398	//       "description": "Required. Resource name of the ProductSet to get.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
18399	//       "location": "path",
18400	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18401	//       "required": true,
18402	//       "type": "string"
18403	//     }
18404	//   },
18405	//   "path": "v1/{+name}",
18406	//   "response": {
18407	//     "$ref": "ProductSet"
18408	//   },
18409	//   "scopes": [
18410	//     "https://www.googleapis.com/auth/cloud-platform",
18411	//     "https://www.googleapis.com/auth/cloud-vision"
18412	//   ]
18413	// }
18414
18415}
18416
18417// method id "vision.projects.locations.productSets.import":
18418
18419type ProjectsLocationsProductSetsImportCall struct {
18420	s                        *Service
18421	parent                   string
18422	importproductsetsrequest *ImportProductSetsRequest
18423	urlParams_               gensupport.URLParams
18424	ctx_                     context.Context
18425	header_                  http.Header
18426}
18427
18428// Import: Asynchronous API that imports a list of reference images to
18429// specified
18430// product sets based on a list of image information.
18431//
18432// The google.longrunning.Operation API can be used to keep track of
18433// the
18434// progress and results of the request.
18435// `Operation.metadata` contains `BatchOperationMetadata`.
18436// (progress)
18437// `Operation.response` contains `ImportProductSetsResponse`.
18438// (results)
18439//
18440// The input source of this method is a csv file on Google Cloud
18441// Storage.
18442// For the format of the csv file please
18443// see
18444// ImportProductSetsGcsSource.csv_file_uri.
18445func (r *ProjectsLocationsProductSetsService) Import(parent string, importproductsetsrequest *ImportProductSetsRequest) *ProjectsLocationsProductSetsImportCall {
18446	c := &ProjectsLocationsProductSetsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18447	c.parent = parent
18448	c.importproductsetsrequest = importproductsetsrequest
18449	return c
18450}
18451
18452// Fields allows partial responses to be retrieved. See
18453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18454// for more information.
18455func (c *ProjectsLocationsProductSetsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsImportCall {
18456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18457	return c
18458}
18459
18460// Context sets the context to be used in this call's Do method. Any
18461// pending HTTP request will be aborted if the provided context is
18462// canceled.
18463func (c *ProjectsLocationsProductSetsImportCall) Context(ctx context.Context) *ProjectsLocationsProductSetsImportCall {
18464	c.ctx_ = ctx
18465	return c
18466}
18467
18468// Header returns an http.Header that can be modified by the caller to
18469// add HTTP headers to the request.
18470func (c *ProjectsLocationsProductSetsImportCall) Header() http.Header {
18471	if c.header_ == nil {
18472		c.header_ = make(http.Header)
18473	}
18474	return c.header_
18475}
18476
18477func (c *ProjectsLocationsProductSetsImportCall) doRequest(alt string) (*http.Response, error) {
18478	reqHeaders := make(http.Header)
18479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18480	for k, v := range c.header_ {
18481		reqHeaders[k] = v
18482	}
18483	reqHeaders.Set("User-Agent", c.s.userAgent())
18484	var body io.Reader = nil
18485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.importproductsetsrequest)
18486	if err != nil {
18487		return nil, err
18488	}
18489	reqHeaders.Set("Content-Type", "application/json")
18490	c.urlParams_.Set("alt", alt)
18491	c.urlParams_.Set("prettyPrint", "false")
18492	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets:import")
18493	urls += "?" + c.urlParams_.Encode()
18494	req, err := http.NewRequest("POST", urls, body)
18495	if err != nil {
18496		return nil, err
18497	}
18498	req.Header = reqHeaders
18499	googleapi.Expand(req.URL, map[string]string{
18500		"parent": c.parent,
18501	})
18502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18503}
18504
18505// Do executes the "vision.projects.locations.productSets.import" call.
18506// Exactly one of *Operation or error will be non-nil. Any non-2xx
18507// status code is an error. Response headers are in either
18508// *Operation.ServerResponse.Header or (if a response was returned at
18509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18510// to check whether the returned error was because
18511// http.StatusNotModified was returned.
18512func (c *ProjectsLocationsProductSetsImportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
18513	gensupport.SetOptions(c.urlParams_, opts...)
18514	res, err := c.doRequest("json")
18515	if res != nil && res.StatusCode == http.StatusNotModified {
18516		if res.Body != nil {
18517			res.Body.Close()
18518		}
18519		return nil, &googleapi.Error{
18520			Code:   res.StatusCode,
18521			Header: res.Header,
18522		}
18523	}
18524	if err != nil {
18525		return nil, err
18526	}
18527	defer googleapi.CloseBody(res)
18528	if err := googleapi.CheckResponse(res); err != nil {
18529		return nil, err
18530	}
18531	ret := &Operation{
18532		ServerResponse: googleapi.ServerResponse{
18533			Header:         res.Header,
18534			HTTPStatusCode: res.StatusCode,
18535		},
18536	}
18537	target := &ret
18538	if err := gensupport.DecodeResponse(target, res); err != nil {
18539		return nil, err
18540	}
18541	return ret, nil
18542	// {
18543	//   "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.",
18544	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets:import",
18545	//   "httpMethod": "POST",
18546	//   "id": "vision.projects.locations.productSets.import",
18547	//   "parameterOrder": [
18548	//     "parent"
18549	//   ],
18550	//   "parameters": {
18551	//     "parent": {
18552	//       "description": "Required. The project in which the ProductSets should be imported.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18553	//       "location": "path",
18554	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18555	//       "required": true,
18556	//       "type": "string"
18557	//     }
18558	//   },
18559	//   "path": "v1/{+parent}/productSets:import",
18560	//   "request": {
18561	//     "$ref": "ImportProductSetsRequest"
18562	//   },
18563	//   "response": {
18564	//     "$ref": "Operation"
18565	//   },
18566	//   "scopes": [
18567	//     "https://www.googleapis.com/auth/cloud-platform",
18568	//     "https://www.googleapis.com/auth/cloud-vision"
18569	//   ]
18570	// }
18571
18572}
18573
18574// method id "vision.projects.locations.productSets.list":
18575
18576type ProjectsLocationsProductSetsListCall struct {
18577	s            *Service
18578	parent       string
18579	urlParams_   gensupport.URLParams
18580	ifNoneMatch_ string
18581	ctx_         context.Context
18582	header_      http.Header
18583}
18584
18585// List: Lists ProductSets in an unspecified order.
18586//
18587// Possible errors:
18588//
18589// * Returns INVALID_ARGUMENT if page_size is greater than 100, or less
18590//   than 1.
18591func (r *ProjectsLocationsProductSetsService) List(parent string) *ProjectsLocationsProductSetsListCall {
18592	c := &ProjectsLocationsProductSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18593	c.parent = parent
18594	return c
18595}
18596
18597// PageSize sets the optional parameter "pageSize": The maximum number
18598// of items to return. Default 10, maximum 100.
18599func (c *ProjectsLocationsProductSetsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsListCall {
18600	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
18601	return c
18602}
18603
18604// PageToken sets the optional parameter "pageToken": The
18605// next_page_token returned from a previous List request, if any.
18606func (c *ProjectsLocationsProductSetsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsListCall {
18607	c.urlParams_.Set("pageToken", pageToken)
18608	return c
18609}
18610
18611// Fields allows partial responses to be retrieved. See
18612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18613// for more information.
18614func (c *ProjectsLocationsProductSetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsListCall {
18615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18616	return c
18617}
18618
18619// IfNoneMatch sets the optional parameter which makes the operation
18620// fail if the object's ETag matches the given value. This is useful for
18621// getting updates only after the object has changed since the last
18622// request. Use googleapi.IsNotModified to check whether the response
18623// error from Do is the result of In-None-Match.
18624func (c *ProjectsLocationsProductSetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsListCall {
18625	c.ifNoneMatch_ = entityTag
18626	return c
18627}
18628
18629// Context sets the context to be used in this call's Do method. Any
18630// pending HTTP request will be aborted if the provided context is
18631// canceled.
18632func (c *ProjectsLocationsProductSetsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsListCall {
18633	c.ctx_ = ctx
18634	return c
18635}
18636
18637// Header returns an http.Header that can be modified by the caller to
18638// add HTTP headers to the request.
18639func (c *ProjectsLocationsProductSetsListCall) Header() http.Header {
18640	if c.header_ == nil {
18641		c.header_ = make(http.Header)
18642	}
18643	return c.header_
18644}
18645
18646func (c *ProjectsLocationsProductSetsListCall) doRequest(alt string) (*http.Response, error) {
18647	reqHeaders := make(http.Header)
18648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18649	for k, v := range c.header_ {
18650		reqHeaders[k] = v
18651	}
18652	reqHeaders.Set("User-Agent", c.s.userAgent())
18653	if c.ifNoneMatch_ != "" {
18654		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18655	}
18656	var body io.Reader = nil
18657	c.urlParams_.Set("alt", alt)
18658	c.urlParams_.Set("prettyPrint", "false")
18659	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/productSets")
18660	urls += "?" + c.urlParams_.Encode()
18661	req, err := http.NewRequest("GET", urls, body)
18662	if err != nil {
18663		return nil, err
18664	}
18665	req.Header = reqHeaders
18666	googleapi.Expand(req.URL, map[string]string{
18667		"parent": c.parent,
18668	})
18669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18670}
18671
18672// Do executes the "vision.projects.locations.productSets.list" call.
18673// Exactly one of *ListProductSetsResponse or error will be non-nil. Any
18674// non-2xx status code is an error. Response headers are in either
18675// *ListProductSetsResponse.ServerResponse.Header or (if a response was
18676// returned at all) in error.(*googleapi.Error).Header. Use
18677// googleapi.IsNotModified to check whether the returned error was
18678// because http.StatusNotModified was returned.
18679func (c *ProjectsLocationsProductSetsListCall) Do(opts ...googleapi.CallOption) (*ListProductSetsResponse, error) {
18680	gensupport.SetOptions(c.urlParams_, opts...)
18681	res, err := c.doRequest("json")
18682	if res != nil && res.StatusCode == http.StatusNotModified {
18683		if res.Body != nil {
18684			res.Body.Close()
18685		}
18686		return nil, &googleapi.Error{
18687			Code:   res.StatusCode,
18688			Header: res.Header,
18689		}
18690	}
18691	if err != nil {
18692		return nil, err
18693	}
18694	defer googleapi.CloseBody(res)
18695	if err := googleapi.CheckResponse(res); err != nil {
18696		return nil, err
18697	}
18698	ret := &ListProductSetsResponse{
18699		ServerResponse: googleapi.ServerResponse{
18700			Header:         res.Header,
18701			HTTPStatusCode: res.StatusCode,
18702		},
18703	}
18704	target := &ret
18705	if err := gensupport.DecodeResponse(target, res); err != nil {
18706		return nil, err
18707	}
18708	return ret, nil
18709	// {
18710	//   "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.",
18711	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets",
18712	//   "httpMethod": "GET",
18713	//   "id": "vision.projects.locations.productSets.list",
18714	//   "parameterOrder": [
18715	//     "parent"
18716	//   ],
18717	//   "parameters": {
18718	//     "pageSize": {
18719	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
18720	//       "format": "int32",
18721	//       "location": "query",
18722	//       "type": "integer"
18723	//     },
18724	//     "pageToken": {
18725	//       "description": "The next_page_token returned from a previous List request, if any.",
18726	//       "location": "query",
18727	//       "type": "string"
18728	//     },
18729	//     "parent": {
18730	//       "description": "Required. The project from which ProductSets should be listed.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
18731	//       "location": "path",
18732	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
18733	//       "required": true,
18734	//       "type": "string"
18735	//     }
18736	//   },
18737	//   "path": "v1/{+parent}/productSets",
18738	//   "response": {
18739	//     "$ref": "ListProductSetsResponse"
18740	//   },
18741	//   "scopes": [
18742	//     "https://www.googleapis.com/auth/cloud-platform",
18743	//     "https://www.googleapis.com/auth/cloud-vision"
18744	//   ]
18745	// }
18746
18747}
18748
18749// Pages invokes f for each page of results.
18750// A non-nil error returned from f will halt the iteration.
18751// The provided context supersedes any context provided to the Context method.
18752func (c *ProjectsLocationsProductSetsListCall) Pages(ctx context.Context, f func(*ListProductSetsResponse) error) error {
18753	c.ctx_ = ctx
18754	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18755	for {
18756		x, err := c.Do()
18757		if err != nil {
18758			return err
18759		}
18760		if err := f(x); err != nil {
18761			return err
18762		}
18763		if x.NextPageToken == "" {
18764			return nil
18765		}
18766		c.PageToken(x.NextPageToken)
18767	}
18768}
18769
18770// method id "vision.projects.locations.productSets.patch":
18771
18772type ProjectsLocationsProductSetsPatchCall struct {
18773	s          *Service
18774	name       string
18775	productset *ProductSet
18776	urlParams_ gensupport.URLParams
18777	ctx_       context.Context
18778	header_    http.Header
18779}
18780
18781// Patch: Makes changes to a ProductSet resource.
18782// Only display_name can be updated currently.
18783//
18784// Possible errors:
18785//
18786// * Returns NOT_FOUND if the ProductSet does not exist.
18787// * Returns INVALID_ARGUMENT if display_name is present in update_mask
18788// but
18789//   missing from the request or longer than 4096 characters.
18790func (r *ProjectsLocationsProductSetsService) Patch(name string, productset *ProductSet) *ProjectsLocationsProductSetsPatchCall {
18791	c := &ProjectsLocationsProductSetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18792	c.name = name
18793	c.productset = productset
18794	return c
18795}
18796
18797// UpdateMask sets the optional parameter "updateMask": The FieldMask
18798// that specifies which fields to
18799// update.
18800// If update_mask isn't specified, all mutable fields are to be
18801// updated.
18802// Valid mask path is `display_name`.
18803func (c *ProjectsLocationsProductSetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductSetsPatchCall {
18804	c.urlParams_.Set("updateMask", updateMask)
18805	return c
18806}
18807
18808// Fields allows partial responses to be retrieved. See
18809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18810// for more information.
18811func (c *ProjectsLocationsProductSetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsPatchCall {
18812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18813	return c
18814}
18815
18816// Context sets the context to be used in this call's Do method. Any
18817// pending HTTP request will be aborted if the provided context is
18818// canceled.
18819func (c *ProjectsLocationsProductSetsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductSetsPatchCall {
18820	c.ctx_ = ctx
18821	return c
18822}
18823
18824// Header returns an http.Header that can be modified by the caller to
18825// add HTTP headers to the request.
18826func (c *ProjectsLocationsProductSetsPatchCall) Header() http.Header {
18827	if c.header_ == nil {
18828		c.header_ = make(http.Header)
18829	}
18830	return c.header_
18831}
18832
18833func (c *ProjectsLocationsProductSetsPatchCall) doRequest(alt string) (*http.Response, error) {
18834	reqHeaders := make(http.Header)
18835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18836	for k, v := range c.header_ {
18837		reqHeaders[k] = v
18838	}
18839	reqHeaders.Set("User-Agent", c.s.userAgent())
18840	var body io.Reader = nil
18841	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productset)
18842	if err != nil {
18843		return nil, err
18844	}
18845	reqHeaders.Set("Content-Type", "application/json")
18846	c.urlParams_.Set("alt", alt)
18847	c.urlParams_.Set("prettyPrint", "false")
18848	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
18849	urls += "?" + c.urlParams_.Encode()
18850	req, err := http.NewRequest("PATCH", urls, body)
18851	if err != nil {
18852		return nil, err
18853	}
18854	req.Header = reqHeaders
18855	googleapi.Expand(req.URL, map[string]string{
18856		"name": c.name,
18857	})
18858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18859}
18860
18861// Do executes the "vision.projects.locations.productSets.patch" call.
18862// Exactly one of *ProductSet or error will be non-nil. Any non-2xx
18863// status code is an error. Response headers are in either
18864// *ProductSet.ServerResponse.Header or (if a response was returned at
18865// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18866// to check whether the returned error was because
18867// http.StatusNotModified was returned.
18868func (c *ProjectsLocationsProductSetsPatchCall) Do(opts ...googleapi.CallOption) (*ProductSet, error) {
18869	gensupport.SetOptions(c.urlParams_, opts...)
18870	res, err := c.doRequest("json")
18871	if res != nil && res.StatusCode == http.StatusNotModified {
18872		if res.Body != nil {
18873			res.Body.Close()
18874		}
18875		return nil, &googleapi.Error{
18876			Code:   res.StatusCode,
18877			Header: res.Header,
18878		}
18879	}
18880	if err != nil {
18881		return nil, err
18882	}
18883	defer googleapi.CloseBody(res)
18884	if err := googleapi.CheckResponse(res); err != nil {
18885		return nil, err
18886	}
18887	ret := &ProductSet{
18888		ServerResponse: googleapi.ServerResponse{
18889			Header:         res.Header,
18890			HTTPStatusCode: res.StatusCode,
18891		},
18892	}
18893	target := &ret
18894	if err := gensupport.DecodeResponse(target, res); err != nil {
18895		return nil, err
18896	}
18897	return ret, nil
18898	// {
18899	//   "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.",
18900	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}",
18901	//   "httpMethod": "PATCH",
18902	//   "id": "vision.projects.locations.productSets.patch",
18903	//   "parameterOrder": [
18904	//     "name"
18905	//   ],
18906	//   "parameters": {
18907	//     "name": {
18908	//       "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.",
18909	//       "location": "path",
18910	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
18911	//       "required": true,
18912	//       "type": "string"
18913	//     },
18914	//     "updateMask": {
18915	//       "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`.",
18916	//       "format": "google-fieldmask",
18917	//       "location": "query",
18918	//       "type": "string"
18919	//     }
18920	//   },
18921	//   "path": "v1/{+name}",
18922	//   "request": {
18923	//     "$ref": "ProductSet"
18924	//   },
18925	//   "response": {
18926	//     "$ref": "ProductSet"
18927	//   },
18928	//   "scopes": [
18929	//     "https://www.googleapis.com/auth/cloud-platform",
18930	//     "https://www.googleapis.com/auth/cloud-vision"
18931	//   ]
18932	// }
18933
18934}
18935
18936// method id "vision.projects.locations.productSets.removeProduct":
18937
18938type ProjectsLocationsProductSetsRemoveProductCall struct {
18939	s                                  *Service
18940	name                               string
18941	removeproductfromproductsetrequest *RemoveProductFromProductSetRequest
18942	urlParams_                         gensupport.URLParams
18943	ctx_                               context.Context
18944	header_                            http.Header
18945}
18946
18947// RemoveProduct: Removes a Product from the specified ProductSet.
18948func (r *ProjectsLocationsProductSetsService) RemoveProduct(name string, removeproductfromproductsetrequest *RemoveProductFromProductSetRequest) *ProjectsLocationsProductSetsRemoveProductCall {
18949	c := &ProjectsLocationsProductSetsRemoveProductCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18950	c.name = name
18951	c.removeproductfromproductsetrequest = removeproductfromproductsetrequest
18952	return c
18953}
18954
18955// Fields allows partial responses to be retrieved. See
18956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18957// for more information.
18958func (c *ProjectsLocationsProductSetsRemoveProductCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsRemoveProductCall {
18959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18960	return c
18961}
18962
18963// Context sets the context to be used in this call's Do method. Any
18964// pending HTTP request will be aborted if the provided context is
18965// canceled.
18966func (c *ProjectsLocationsProductSetsRemoveProductCall) Context(ctx context.Context) *ProjectsLocationsProductSetsRemoveProductCall {
18967	c.ctx_ = ctx
18968	return c
18969}
18970
18971// Header returns an http.Header that can be modified by the caller to
18972// add HTTP headers to the request.
18973func (c *ProjectsLocationsProductSetsRemoveProductCall) Header() http.Header {
18974	if c.header_ == nil {
18975		c.header_ = make(http.Header)
18976	}
18977	return c.header_
18978}
18979
18980func (c *ProjectsLocationsProductSetsRemoveProductCall) doRequest(alt string) (*http.Response, error) {
18981	reqHeaders := make(http.Header)
18982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
18983	for k, v := range c.header_ {
18984		reqHeaders[k] = v
18985	}
18986	reqHeaders.Set("User-Agent", c.s.userAgent())
18987	var body io.Reader = nil
18988	body, err := googleapi.WithoutDataWrapper.JSONReader(c.removeproductfromproductsetrequest)
18989	if err != nil {
18990		return nil, err
18991	}
18992	reqHeaders.Set("Content-Type", "application/json")
18993	c.urlParams_.Set("alt", alt)
18994	c.urlParams_.Set("prettyPrint", "false")
18995	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:removeProduct")
18996	urls += "?" + c.urlParams_.Encode()
18997	req, err := http.NewRequest("POST", urls, body)
18998	if err != nil {
18999		return nil, err
19000	}
19001	req.Header = reqHeaders
19002	googleapi.Expand(req.URL, map[string]string{
19003		"name": c.name,
19004	})
19005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19006}
19007
19008// Do executes the "vision.projects.locations.productSets.removeProduct" call.
19009// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19010// code is an error. Response headers are in either
19011// *Empty.ServerResponse.Header or (if a response was returned at all)
19012// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19013// check whether the returned error was because http.StatusNotModified
19014// was returned.
19015func (c *ProjectsLocationsProductSetsRemoveProductCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19016	gensupport.SetOptions(c.urlParams_, opts...)
19017	res, err := c.doRequest("json")
19018	if res != nil && res.StatusCode == http.StatusNotModified {
19019		if res.Body != nil {
19020			res.Body.Close()
19021		}
19022		return nil, &googleapi.Error{
19023			Code:   res.StatusCode,
19024			Header: res.Header,
19025		}
19026	}
19027	if err != nil {
19028		return nil, err
19029	}
19030	defer googleapi.CloseBody(res)
19031	if err := googleapi.CheckResponse(res); err != nil {
19032		return nil, err
19033	}
19034	ret := &Empty{
19035		ServerResponse: googleapi.ServerResponse{
19036			Header:         res.Header,
19037			HTTPStatusCode: res.StatusCode,
19038		},
19039	}
19040	target := &ret
19041	if err := gensupport.DecodeResponse(target, res); err != nil {
19042		return nil, err
19043	}
19044	return ret, nil
19045	// {
19046	//   "description": "Removes a Product from the specified ProductSet.",
19047	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:removeProduct",
19048	//   "httpMethod": "POST",
19049	//   "id": "vision.projects.locations.productSets.removeProduct",
19050	//   "parameterOrder": [
19051	//     "name"
19052	//   ],
19053	//   "parameters": {
19054	//     "name": {
19055	//       "description": "Required. The resource name for the ProductSet to modify.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
19056	//       "location": "path",
19057	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
19058	//       "required": true,
19059	//       "type": "string"
19060	//     }
19061	//   },
19062	//   "path": "v1/{+name}:removeProduct",
19063	//   "request": {
19064	//     "$ref": "RemoveProductFromProductSetRequest"
19065	//   },
19066	//   "response": {
19067	//     "$ref": "Empty"
19068	//   },
19069	//   "scopes": [
19070	//     "https://www.googleapis.com/auth/cloud-platform",
19071	//     "https://www.googleapis.com/auth/cloud-vision"
19072	//   ]
19073	// }
19074
19075}
19076
19077// method id "vision.projects.locations.productSets.products.list":
19078
19079type ProjectsLocationsProductSetsProductsListCall struct {
19080	s            *Service
19081	name         string
19082	urlParams_   gensupport.URLParams
19083	ifNoneMatch_ string
19084	ctx_         context.Context
19085	header_      http.Header
19086}
19087
19088// List: Lists the Products in a ProductSet, in an unspecified order. If
19089// the
19090// ProductSet does not exist, the products field of the response will
19091// be
19092// empty.
19093//
19094// Possible errors:
19095//
19096// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less
19097// than 1.
19098func (r *ProjectsLocationsProductSetsProductsService) List(name string) *ProjectsLocationsProductSetsProductsListCall {
19099	c := &ProjectsLocationsProductSetsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19100	c.name = name
19101	return c
19102}
19103
19104// PageSize sets the optional parameter "pageSize": The maximum number
19105// of items to return. Default 10, maximum 100.
19106func (c *ProjectsLocationsProductSetsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductSetsProductsListCall {
19107	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19108	return c
19109}
19110
19111// PageToken sets the optional parameter "pageToken": The
19112// next_page_token returned from a previous List request, if any.
19113func (c *ProjectsLocationsProductSetsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductSetsProductsListCall {
19114	c.urlParams_.Set("pageToken", pageToken)
19115	return c
19116}
19117
19118// Fields allows partial responses to be retrieved. See
19119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19120// for more information.
19121func (c *ProjectsLocationsProductSetsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductSetsProductsListCall {
19122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19123	return c
19124}
19125
19126// IfNoneMatch sets the optional parameter which makes the operation
19127// fail if the object's ETag matches the given value. This is useful for
19128// getting updates only after the object has changed since the last
19129// request. Use googleapi.IsNotModified to check whether the response
19130// error from Do is the result of In-None-Match.
19131func (c *ProjectsLocationsProductSetsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductSetsProductsListCall {
19132	c.ifNoneMatch_ = entityTag
19133	return c
19134}
19135
19136// Context sets the context to be used in this call's Do method. Any
19137// pending HTTP request will be aborted if the provided context is
19138// canceled.
19139func (c *ProjectsLocationsProductSetsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductSetsProductsListCall {
19140	c.ctx_ = ctx
19141	return c
19142}
19143
19144// Header returns an http.Header that can be modified by the caller to
19145// add HTTP headers to the request.
19146func (c *ProjectsLocationsProductSetsProductsListCall) Header() http.Header {
19147	if c.header_ == nil {
19148		c.header_ = make(http.Header)
19149	}
19150	return c.header_
19151}
19152
19153func (c *ProjectsLocationsProductSetsProductsListCall) doRequest(alt string) (*http.Response, error) {
19154	reqHeaders := make(http.Header)
19155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
19156	for k, v := range c.header_ {
19157		reqHeaders[k] = v
19158	}
19159	reqHeaders.Set("User-Agent", c.s.userAgent())
19160	if c.ifNoneMatch_ != "" {
19161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19162	}
19163	var body io.Reader = nil
19164	c.urlParams_.Set("alt", alt)
19165	c.urlParams_.Set("prettyPrint", "false")
19166	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/products")
19167	urls += "?" + c.urlParams_.Encode()
19168	req, err := http.NewRequest("GET", urls, body)
19169	if err != nil {
19170		return nil, err
19171	}
19172	req.Header = reqHeaders
19173	googleapi.Expand(req.URL, map[string]string{
19174		"name": c.name,
19175	})
19176	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19177}
19178
19179// Do executes the "vision.projects.locations.productSets.products.list" call.
19180// Exactly one of *ListProductsInProductSetResponse or error will be
19181// non-nil. Any non-2xx status code is an error. Response headers are in
19182// either *ListProductsInProductSetResponse.ServerResponse.Header or (if
19183// a response was returned at all) in error.(*googleapi.Error).Header.
19184// Use googleapi.IsNotModified to check whether the returned error was
19185// because http.StatusNotModified was returned.
19186func (c *ProjectsLocationsProductSetsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsInProductSetResponse, error) {
19187	gensupport.SetOptions(c.urlParams_, opts...)
19188	res, err := c.doRequest("json")
19189	if res != nil && res.StatusCode == http.StatusNotModified {
19190		if res.Body != nil {
19191			res.Body.Close()
19192		}
19193		return nil, &googleapi.Error{
19194			Code:   res.StatusCode,
19195			Header: res.Header,
19196		}
19197	}
19198	if err != nil {
19199		return nil, err
19200	}
19201	defer googleapi.CloseBody(res)
19202	if err := googleapi.CheckResponse(res); err != nil {
19203		return nil, err
19204	}
19205	ret := &ListProductsInProductSetResponse{
19206		ServerResponse: googleapi.ServerResponse{
19207			Header:         res.Header,
19208			HTTPStatusCode: res.StatusCode,
19209		},
19210	}
19211	target := &ret
19212	if err := gensupport.DecodeResponse(target, res); err != nil {
19213		return nil, err
19214	}
19215	return ret, nil
19216	// {
19217	//   "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.",
19218	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}/products",
19219	//   "httpMethod": "GET",
19220	//   "id": "vision.projects.locations.productSets.products.list",
19221	//   "parameterOrder": [
19222	//     "name"
19223	//   ],
19224	//   "parameters": {
19225	//     "name": {
19226	//       "description": "Required. The ProductSet resource for which to retrieve Products.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`",
19227	//       "location": "path",
19228	//       "pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$",
19229	//       "required": true,
19230	//       "type": "string"
19231	//     },
19232	//     "pageSize": {
19233	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
19234	//       "format": "int32",
19235	//       "location": "query",
19236	//       "type": "integer"
19237	//     },
19238	//     "pageToken": {
19239	//       "description": "The next_page_token returned from a previous List request, if any.",
19240	//       "location": "query",
19241	//       "type": "string"
19242	//     }
19243	//   },
19244	//   "path": "v1/{+name}/products",
19245	//   "response": {
19246	//     "$ref": "ListProductsInProductSetResponse"
19247	//   },
19248	//   "scopes": [
19249	//     "https://www.googleapis.com/auth/cloud-platform",
19250	//     "https://www.googleapis.com/auth/cloud-vision"
19251	//   ]
19252	// }
19253
19254}
19255
19256// Pages invokes f for each page of results.
19257// A non-nil error returned from f will halt the iteration.
19258// The provided context supersedes any context provided to the Context method.
19259func (c *ProjectsLocationsProductSetsProductsListCall) Pages(ctx context.Context, f func(*ListProductsInProductSetResponse) error) error {
19260	c.ctx_ = ctx
19261	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19262	for {
19263		x, err := c.Do()
19264		if err != nil {
19265			return err
19266		}
19267		if err := f(x); err != nil {
19268			return err
19269		}
19270		if x.NextPageToken == "" {
19271			return nil
19272		}
19273		c.PageToken(x.NextPageToken)
19274	}
19275}
19276
19277// method id "vision.projects.locations.products.create":
19278
19279type ProjectsLocationsProductsCreateCall struct {
19280	s          *Service
19281	parent     string
19282	product    *Product
19283	urlParams_ gensupport.URLParams
19284	ctx_       context.Context
19285	header_    http.Header
19286}
19287
19288// Create: Creates and returns a new product resource.
19289//
19290// Possible errors:
19291//
19292// * Returns INVALID_ARGUMENT if display_name is missing or longer than
19293// 4096
19294//   characters.
19295// * Returns INVALID_ARGUMENT if description is longer than 4096
19296// characters.
19297// * Returns INVALID_ARGUMENT if product_category is missing or invalid.
19298func (r *ProjectsLocationsProductsService) Create(parent string, product *Product) *ProjectsLocationsProductsCreateCall {
19299	c := &ProjectsLocationsProductsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19300	c.parent = parent
19301	c.product = product
19302	return c
19303}
19304
19305// ProductId sets the optional parameter "productId": A user-supplied
19306// resource id for this Product. If set, the server will
19307// attempt to use this value as the resource id. If it is already in
19308// use, an
19309// error is returned with code ALREADY_EXISTS. Must be at most 128
19310// characters
19311// long. It cannot contain the character `/`.
19312func (c *ProjectsLocationsProductsCreateCall) ProductId(productId string) *ProjectsLocationsProductsCreateCall {
19313	c.urlParams_.Set("productId", productId)
19314	return c
19315}
19316
19317// Fields allows partial responses to be retrieved. See
19318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19319// for more information.
19320func (c *ProjectsLocationsProductsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsCreateCall {
19321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19322	return c
19323}
19324
19325// Context sets the context to be used in this call's Do method. Any
19326// pending HTTP request will be aborted if the provided context is
19327// canceled.
19328func (c *ProjectsLocationsProductsCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsCreateCall {
19329	c.ctx_ = ctx
19330	return c
19331}
19332
19333// Header returns an http.Header that can be modified by the caller to
19334// add HTTP headers to the request.
19335func (c *ProjectsLocationsProductsCreateCall) Header() http.Header {
19336	if c.header_ == nil {
19337		c.header_ = make(http.Header)
19338	}
19339	return c.header_
19340}
19341
19342func (c *ProjectsLocationsProductsCreateCall) doRequest(alt string) (*http.Response, error) {
19343	reqHeaders := make(http.Header)
19344	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
19345	for k, v := range c.header_ {
19346		reqHeaders[k] = v
19347	}
19348	reqHeaders.Set("User-Agent", c.s.userAgent())
19349	var body io.Reader = nil
19350	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
19351	if err != nil {
19352		return nil, err
19353	}
19354	reqHeaders.Set("Content-Type", "application/json")
19355	c.urlParams_.Set("alt", alt)
19356	c.urlParams_.Set("prettyPrint", "false")
19357	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
19358	urls += "?" + c.urlParams_.Encode()
19359	req, err := http.NewRequest("POST", urls, body)
19360	if err != nil {
19361		return nil, err
19362	}
19363	req.Header = reqHeaders
19364	googleapi.Expand(req.URL, map[string]string{
19365		"parent": c.parent,
19366	})
19367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19368}
19369
19370// Do executes the "vision.projects.locations.products.create" call.
19371// Exactly one of *Product or error will be non-nil. Any non-2xx status
19372// code is an error. Response headers are in either
19373// *Product.ServerResponse.Header or (if a response was returned at all)
19374// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19375// check whether the returned error was because http.StatusNotModified
19376// was returned.
19377func (c *ProjectsLocationsProductsCreateCall) Do(opts ...googleapi.CallOption) (*Product, error) {
19378	gensupport.SetOptions(c.urlParams_, opts...)
19379	res, err := c.doRequest("json")
19380	if res != nil && res.StatusCode == http.StatusNotModified {
19381		if res.Body != nil {
19382			res.Body.Close()
19383		}
19384		return nil, &googleapi.Error{
19385			Code:   res.StatusCode,
19386			Header: res.Header,
19387		}
19388	}
19389	if err != nil {
19390		return nil, err
19391	}
19392	defer googleapi.CloseBody(res)
19393	if err := googleapi.CheckResponse(res); err != nil {
19394		return nil, err
19395	}
19396	ret := &Product{
19397		ServerResponse: googleapi.ServerResponse{
19398			Header:         res.Header,
19399			HTTPStatusCode: res.StatusCode,
19400		},
19401	}
19402	target := &ret
19403	if err := gensupport.DecodeResponse(target, res); err != nil {
19404		return nil, err
19405	}
19406	return ret, nil
19407	// {
19408	//   "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.",
19409	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
19410	//   "httpMethod": "POST",
19411	//   "id": "vision.projects.locations.products.create",
19412	//   "parameterOrder": [
19413	//     "parent"
19414	//   ],
19415	//   "parameters": {
19416	//     "parent": {
19417	//       "description": "Required. The project in which the Product should be created.\n\nFormat is\n`projects/PROJECT_ID/locations/LOC_ID`.",
19418	//       "location": "path",
19419	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
19420	//       "required": true,
19421	//       "type": "string"
19422	//     },
19423	//     "productId": {
19424	//       "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 `/`.",
19425	//       "location": "query",
19426	//       "type": "string"
19427	//     }
19428	//   },
19429	//   "path": "v1/{+parent}/products",
19430	//   "request": {
19431	//     "$ref": "Product"
19432	//   },
19433	//   "response": {
19434	//     "$ref": "Product"
19435	//   },
19436	//   "scopes": [
19437	//     "https://www.googleapis.com/auth/cloud-platform",
19438	//     "https://www.googleapis.com/auth/cloud-vision"
19439	//   ]
19440	// }
19441
19442}
19443
19444// method id "vision.projects.locations.products.delete":
19445
19446type ProjectsLocationsProductsDeleteCall struct {
19447	s          *Service
19448	name       string
19449	urlParams_ gensupport.URLParams
19450	ctx_       context.Context
19451	header_    http.Header
19452}
19453
19454// Delete: Permanently deletes a product and its reference
19455// images.
19456//
19457// Metadata of the product and all its images will be deleted right
19458// away, but
19459// search queries against ProductSets containing the product may still
19460// work
19461// until all related caches are refreshed.
19462func (r *ProjectsLocationsProductsService) Delete(name string) *ProjectsLocationsProductsDeleteCall {
19463	c := &ProjectsLocationsProductsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19464	c.name = name
19465	return c
19466}
19467
19468// Fields allows partial responses to be retrieved. See
19469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19470// for more information.
19471func (c *ProjectsLocationsProductsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsDeleteCall {
19472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19473	return c
19474}
19475
19476// Context sets the context to be used in this call's Do method. Any
19477// pending HTTP request will be aborted if the provided context is
19478// canceled.
19479func (c *ProjectsLocationsProductsDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsDeleteCall {
19480	c.ctx_ = ctx
19481	return c
19482}
19483
19484// Header returns an http.Header that can be modified by the caller to
19485// add HTTP headers to the request.
19486func (c *ProjectsLocationsProductsDeleteCall) Header() http.Header {
19487	if c.header_ == nil {
19488		c.header_ = make(http.Header)
19489	}
19490	return c.header_
19491}
19492
19493func (c *ProjectsLocationsProductsDeleteCall) doRequest(alt string) (*http.Response, error) {
19494	reqHeaders := make(http.Header)
19495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
19496	for k, v := range c.header_ {
19497		reqHeaders[k] = v
19498	}
19499	reqHeaders.Set("User-Agent", c.s.userAgent())
19500	var body io.Reader = nil
19501	c.urlParams_.Set("alt", alt)
19502	c.urlParams_.Set("prettyPrint", "false")
19503	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19504	urls += "?" + c.urlParams_.Encode()
19505	req, err := http.NewRequest("DELETE", urls, body)
19506	if err != nil {
19507		return nil, err
19508	}
19509	req.Header = reqHeaders
19510	googleapi.Expand(req.URL, map[string]string{
19511		"name": c.name,
19512	})
19513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19514}
19515
19516// Do executes the "vision.projects.locations.products.delete" call.
19517// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19518// code is an error. Response headers are in either
19519// *Empty.ServerResponse.Header or (if a response was returned at all)
19520// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19521// check whether the returned error was because http.StatusNotModified
19522// was returned.
19523func (c *ProjectsLocationsProductsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19524	gensupport.SetOptions(c.urlParams_, opts...)
19525	res, err := c.doRequest("json")
19526	if res != nil && res.StatusCode == http.StatusNotModified {
19527		if res.Body != nil {
19528			res.Body.Close()
19529		}
19530		return nil, &googleapi.Error{
19531			Code:   res.StatusCode,
19532			Header: res.Header,
19533		}
19534	}
19535	if err != nil {
19536		return nil, err
19537	}
19538	defer googleapi.CloseBody(res)
19539	if err := googleapi.CheckResponse(res); err != nil {
19540		return nil, err
19541	}
19542	ret := &Empty{
19543		ServerResponse: googleapi.ServerResponse{
19544			Header:         res.Header,
19545			HTTPStatusCode: res.StatusCode,
19546		},
19547	}
19548	target := &ret
19549	if err := gensupport.DecodeResponse(target, res); err != nil {
19550		return nil, err
19551	}
19552	return ret, nil
19553	// {
19554	//   "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.",
19555	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
19556	//   "httpMethod": "DELETE",
19557	//   "id": "vision.projects.locations.products.delete",
19558	//   "parameterOrder": [
19559	//     "name"
19560	//   ],
19561	//   "parameters": {
19562	//     "name": {
19563	//       "description": "Required. Resource name of product to delete.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
19564	//       "location": "path",
19565	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19566	//       "required": true,
19567	//       "type": "string"
19568	//     }
19569	//   },
19570	//   "path": "v1/{+name}",
19571	//   "response": {
19572	//     "$ref": "Empty"
19573	//   },
19574	//   "scopes": [
19575	//     "https://www.googleapis.com/auth/cloud-platform",
19576	//     "https://www.googleapis.com/auth/cloud-vision"
19577	//   ]
19578	// }
19579
19580}
19581
19582// method id "vision.projects.locations.products.get":
19583
19584type ProjectsLocationsProductsGetCall struct {
19585	s            *Service
19586	name         string
19587	urlParams_   gensupport.URLParams
19588	ifNoneMatch_ string
19589	ctx_         context.Context
19590	header_      http.Header
19591}
19592
19593// Get: Gets information associated with a Product.
19594//
19595// Possible errors:
19596//
19597// * Returns NOT_FOUND if the Product does not exist.
19598func (r *ProjectsLocationsProductsService) Get(name string) *ProjectsLocationsProductsGetCall {
19599	c := &ProjectsLocationsProductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19600	c.name = name
19601	return c
19602}
19603
19604// Fields allows partial responses to be retrieved. See
19605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19606// for more information.
19607func (c *ProjectsLocationsProductsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsGetCall {
19608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19609	return c
19610}
19611
19612// IfNoneMatch sets the optional parameter which makes the operation
19613// fail if the object's ETag matches the given value. This is useful for
19614// getting updates only after the object has changed since the last
19615// request. Use googleapi.IsNotModified to check whether the response
19616// error from Do is the result of In-None-Match.
19617func (c *ProjectsLocationsProductsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsGetCall {
19618	c.ifNoneMatch_ = entityTag
19619	return c
19620}
19621
19622// Context sets the context to be used in this call's Do method. Any
19623// pending HTTP request will be aborted if the provided context is
19624// canceled.
19625func (c *ProjectsLocationsProductsGetCall) Context(ctx context.Context) *ProjectsLocationsProductsGetCall {
19626	c.ctx_ = ctx
19627	return c
19628}
19629
19630// Header returns an http.Header that can be modified by the caller to
19631// add HTTP headers to the request.
19632func (c *ProjectsLocationsProductsGetCall) Header() http.Header {
19633	if c.header_ == nil {
19634		c.header_ = make(http.Header)
19635	}
19636	return c.header_
19637}
19638
19639func (c *ProjectsLocationsProductsGetCall) doRequest(alt string) (*http.Response, error) {
19640	reqHeaders := make(http.Header)
19641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
19642	for k, v := range c.header_ {
19643		reqHeaders[k] = v
19644	}
19645	reqHeaders.Set("User-Agent", c.s.userAgent())
19646	if c.ifNoneMatch_ != "" {
19647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19648	}
19649	var body io.Reader = nil
19650	c.urlParams_.Set("alt", alt)
19651	c.urlParams_.Set("prettyPrint", "false")
19652	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
19653	urls += "?" + c.urlParams_.Encode()
19654	req, err := http.NewRequest("GET", urls, body)
19655	if err != nil {
19656		return nil, err
19657	}
19658	req.Header = reqHeaders
19659	googleapi.Expand(req.URL, map[string]string{
19660		"name": c.name,
19661	})
19662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19663}
19664
19665// Do executes the "vision.projects.locations.products.get" call.
19666// Exactly one of *Product or error will be non-nil. Any non-2xx status
19667// code is an error. Response headers are in either
19668// *Product.ServerResponse.Header or (if a response was returned at all)
19669// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19670// check whether the returned error was because http.StatusNotModified
19671// was returned.
19672func (c *ProjectsLocationsProductsGetCall) Do(opts ...googleapi.CallOption) (*Product, error) {
19673	gensupport.SetOptions(c.urlParams_, opts...)
19674	res, err := c.doRequest("json")
19675	if res != nil && res.StatusCode == http.StatusNotModified {
19676		if res.Body != nil {
19677			res.Body.Close()
19678		}
19679		return nil, &googleapi.Error{
19680			Code:   res.StatusCode,
19681			Header: res.Header,
19682		}
19683	}
19684	if err != nil {
19685		return nil, err
19686	}
19687	defer googleapi.CloseBody(res)
19688	if err := googleapi.CheckResponse(res); err != nil {
19689		return nil, err
19690	}
19691	ret := &Product{
19692		ServerResponse: googleapi.ServerResponse{
19693			Header:         res.Header,
19694			HTTPStatusCode: res.StatusCode,
19695		},
19696	}
19697	target := &ret
19698	if err := gensupport.DecodeResponse(target, res); err != nil {
19699		return nil, err
19700	}
19701	return ret, nil
19702	// {
19703	//   "description": "Gets information associated with a Product.\n\nPossible errors:\n\n* Returns NOT_FOUND if the Product does not exist.",
19704	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
19705	//   "httpMethod": "GET",
19706	//   "id": "vision.projects.locations.products.get",
19707	//   "parameterOrder": [
19708	//     "name"
19709	//   ],
19710	//   "parameters": {
19711	//     "name": {
19712	//       "description": "Required. Resource name of the Product to get.\n\nFormat is:\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`",
19713	//       "location": "path",
19714	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
19715	//       "required": true,
19716	//       "type": "string"
19717	//     }
19718	//   },
19719	//   "path": "v1/{+name}",
19720	//   "response": {
19721	//     "$ref": "Product"
19722	//   },
19723	//   "scopes": [
19724	//     "https://www.googleapis.com/auth/cloud-platform",
19725	//     "https://www.googleapis.com/auth/cloud-vision"
19726	//   ]
19727	// }
19728
19729}
19730
19731// method id "vision.projects.locations.products.list":
19732
19733type ProjectsLocationsProductsListCall struct {
19734	s            *Service
19735	parent       string
19736	urlParams_   gensupport.URLParams
19737	ifNoneMatch_ string
19738	ctx_         context.Context
19739	header_      http.Header
19740}
19741
19742// List: Lists products in an unspecified order.
19743//
19744// Possible errors:
19745//
19746// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less
19747// than 1.
19748func (r *ProjectsLocationsProductsService) List(parent string) *ProjectsLocationsProductsListCall {
19749	c := &ProjectsLocationsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19750	c.parent = parent
19751	return c
19752}
19753
19754// PageSize sets the optional parameter "pageSize": The maximum number
19755// of items to return. Default 10, maximum 100.
19756func (c *ProjectsLocationsProductsListCall) PageSize(pageSize int64) *ProjectsLocationsProductsListCall {
19757	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19758	return c
19759}
19760
19761// PageToken sets the optional parameter "pageToken": The
19762// next_page_token returned from a previous List request, if any.
19763func (c *ProjectsLocationsProductsListCall) PageToken(pageToken string) *ProjectsLocationsProductsListCall {
19764	c.urlParams_.Set("pageToken", pageToken)
19765	return c
19766}
19767
19768// Fields allows partial responses to be retrieved. See
19769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19770// for more information.
19771func (c *ProjectsLocationsProductsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsListCall {
19772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19773	return c
19774}
19775
19776// IfNoneMatch sets the optional parameter which makes the operation
19777// fail if the object's ETag matches the given value. This is useful for
19778// getting updates only after the object has changed since the last
19779// request. Use googleapi.IsNotModified to check whether the response
19780// error from Do is the result of In-None-Match.
19781func (c *ProjectsLocationsProductsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsListCall {
19782	c.ifNoneMatch_ = entityTag
19783	return c
19784}
19785
19786// Context sets the context to be used in this call's Do method. Any
19787// pending HTTP request will be aborted if the provided context is
19788// canceled.
19789func (c *ProjectsLocationsProductsListCall) Context(ctx context.Context) *ProjectsLocationsProductsListCall {
19790	c.ctx_ = ctx
19791	return c
19792}
19793
19794// Header returns an http.Header that can be modified by the caller to
19795// add HTTP headers to the request.
19796func (c *ProjectsLocationsProductsListCall) Header() http.Header {
19797	if c.header_ == nil {
19798		c.header_ = make(http.Header)
19799	}
19800	return c.header_
19801}
19802
19803func (c *ProjectsLocationsProductsListCall) doRequest(alt string) (*http.Response, error) {
19804	reqHeaders := make(http.Header)
19805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
19806	for k, v := range c.header_ {
19807		reqHeaders[k] = v
19808	}
19809	reqHeaders.Set("User-Agent", c.s.userAgent())
19810	if c.ifNoneMatch_ != "" {
19811		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19812	}
19813	var body io.Reader = nil
19814	c.urlParams_.Set("alt", alt)
19815	c.urlParams_.Set("prettyPrint", "false")
19816	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products")
19817	urls += "?" + c.urlParams_.Encode()
19818	req, err := http.NewRequest("GET", urls, body)
19819	if err != nil {
19820		return nil, err
19821	}
19822	req.Header = reqHeaders
19823	googleapi.Expand(req.URL, map[string]string{
19824		"parent": c.parent,
19825	})
19826	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19827}
19828
19829// Do executes the "vision.projects.locations.products.list" call.
19830// Exactly one of *ListProductsResponse or error will be non-nil. Any
19831// non-2xx status code is an error. Response headers are in either
19832// *ListProductsResponse.ServerResponse.Header or (if a response was
19833// returned at all) in error.(*googleapi.Error).Header. Use
19834// googleapi.IsNotModified to check whether the returned error was
19835// because http.StatusNotModified was returned.
19836func (c *ProjectsLocationsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsResponse, error) {
19837	gensupport.SetOptions(c.urlParams_, opts...)
19838	res, err := c.doRequest("json")
19839	if res != nil && res.StatusCode == http.StatusNotModified {
19840		if res.Body != nil {
19841			res.Body.Close()
19842		}
19843		return nil, &googleapi.Error{
19844			Code:   res.StatusCode,
19845			Header: res.Header,
19846		}
19847	}
19848	if err != nil {
19849		return nil, err
19850	}
19851	defer googleapi.CloseBody(res)
19852	if err := googleapi.CheckResponse(res); err != nil {
19853		return nil, err
19854	}
19855	ret := &ListProductsResponse{
19856		ServerResponse: googleapi.ServerResponse{
19857			Header:         res.Header,
19858			HTTPStatusCode: res.StatusCode,
19859		},
19860	}
19861	target := &ret
19862	if err := gensupport.DecodeResponse(target, res); err != nil {
19863		return nil, err
19864	}
19865	return ret, nil
19866	// {
19867	//   "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.",
19868	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products",
19869	//   "httpMethod": "GET",
19870	//   "id": "vision.projects.locations.products.list",
19871	//   "parameterOrder": [
19872	//     "parent"
19873	//   ],
19874	//   "parameters": {
19875	//     "pageSize": {
19876	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
19877	//       "format": "int32",
19878	//       "location": "query",
19879	//       "type": "integer"
19880	//     },
19881	//     "pageToken": {
19882	//       "description": "The next_page_token returned from a previous List request, if any.",
19883	//       "location": "query",
19884	//       "type": "string"
19885	//     },
19886	//     "parent": {
19887	//       "description": "Required. The project OR ProductSet from which Products should be listed.\n\nFormat:\n`projects/PROJECT_ID/locations/LOC_ID`",
19888	//       "location": "path",
19889	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
19890	//       "required": true,
19891	//       "type": "string"
19892	//     }
19893	//   },
19894	//   "path": "v1/{+parent}/products",
19895	//   "response": {
19896	//     "$ref": "ListProductsResponse"
19897	//   },
19898	//   "scopes": [
19899	//     "https://www.googleapis.com/auth/cloud-platform",
19900	//     "https://www.googleapis.com/auth/cloud-vision"
19901	//   ]
19902	// }
19903
19904}
19905
19906// Pages invokes f for each page of results.
19907// A non-nil error returned from f will halt the iteration.
19908// The provided context supersedes any context provided to the Context method.
19909func (c *ProjectsLocationsProductsListCall) Pages(ctx context.Context, f func(*ListProductsResponse) error) error {
19910	c.ctx_ = ctx
19911	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19912	for {
19913		x, err := c.Do()
19914		if err != nil {
19915			return err
19916		}
19917		if err := f(x); err != nil {
19918			return err
19919		}
19920		if x.NextPageToken == "" {
19921			return nil
19922		}
19923		c.PageToken(x.NextPageToken)
19924	}
19925}
19926
19927// method id "vision.projects.locations.products.patch":
19928
19929type ProjectsLocationsProductsPatchCall struct {
19930	s          *Service
19931	name       string
19932	product    *Product
19933	urlParams_ gensupport.URLParams
19934	ctx_       context.Context
19935	header_    http.Header
19936}
19937
19938// Patch: Makes changes to a Product resource.
19939// Only the `display_name`, `description`, and `labels` fields can be
19940// updated
19941// right now.
19942//
19943// If labels are updated, the change will not be reflected in queries
19944// until
19945// the next index time.
19946//
19947// Possible errors:
19948//
19949// * Returns NOT_FOUND if the Product does not exist.
19950// * Returns INVALID_ARGUMENT if display_name is present in update_mask
19951// but is
19952//   missing from the request or longer than 4096 characters.
19953// * Returns INVALID_ARGUMENT if description is present in update_mask
19954// but is
19955//   longer than 4096 characters.
19956// * Returns INVALID_ARGUMENT if product_category is present in
19957// update_mask.
19958func (r *ProjectsLocationsProductsService) Patch(name string, product *Product) *ProjectsLocationsProductsPatchCall {
19959	c := &ProjectsLocationsProductsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19960	c.name = name
19961	c.product = product
19962	return c
19963}
19964
19965// UpdateMask sets the optional parameter "updateMask": The FieldMask
19966// that specifies which fields
19967// to update.
19968// If update_mask isn't specified, all mutable fields are to be
19969// updated.
19970// Valid mask paths include `product_labels`, `display_name`,
19971// and
19972// `description`.
19973func (c *ProjectsLocationsProductsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsProductsPatchCall {
19974	c.urlParams_.Set("updateMask", updateMask)
19975	return c
19976}
19977
19978// Fields allows partial responses to be retrieved. See
19979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19980// for more information.
19981func (c *ProjectsLocationsProductsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPatchCall {
19982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19983	return c
19984}
19985
19986// Context sets the context to be used in this call's Do method. Any
19987// pending HTTP request will be aborted if the provided context is
19988// canceled.
19989func (c *ProjectsLocationsProductsPatchCall) Context(ctx context.Context) *ProjectsLocationsProductsPatchCall {
19990	c.ctx_ = ctx
19991	return c
19992}
19993
19994// Header returns an http.Header that can be modified by the caller to
19995// add HTTP headers to the request.
19996func (c *ProjectsLocationsProductsPatchCall) Header() http.Header {
19997	if c.header_ == nil {
19998		c.header_ = make(http.Header)
19999	}
20000	return c.header_
20001}
20002
20003func (c *ProjectsLocationsProductsPatchCall) doRequest(alt string) (*http.Response, error) {
20004	reqHeaders := make(http.Header)
20005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20006	for k, v := range c.header_ {
20007		reqHeaders[k] = v
20008	}
20009	reqHeaders.Set("User-Agent", c.s.userAgent())
20010	var body io.Reader = nil
20011	body, err := googleapi.WithoutDataWrapper.JSONReader(c.product)
20012	if err != nil {
20013		return nil, err
20014	}
20015	reqHeaders.Set("Content-Type", "application/json")
20016	c.urlParams_.Set("alt", alt)
20017	c.urlParams_.Set("prettyPrint", "false")
20018	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20019	urls += "?" + c.urlParams_.Encode()
20020	req, err := http.NewRequest("PATCH", urls, body)
20021	if err != nil {
20022		return nil, err
20023	}
20024	req.Header = reqHeaders
20025	googleapi.Expand(req.URL, map[string]string{
20026		"name": c.name,
20027	})
20028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20029}
20030
20031// Do executes the "vision.projects.locations.products.patch" call.
20032// Exactly one of *Product or error will be non-nil. Any non-2xx status
20033// code is an error. Response headers are in either
20034// *Product.ServerResponse.Header or (if a response was returned at all)
20035// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
20036// check whether the returned error was because http.StatusNotModified
20037// was returned.
20038func (c *ProjectsLocationsProductsPatchCall) Do(opts ...googleapi.CallOption) (*Product, error) {
20039	gensupport.SetOptions(c.urlParams_, opts...)
20040	res, err := c.doRequest("json")
20041	if res != nil && res.StatusCode == http.StatusNotModified {
20042		if res.Body != nil {
20043			res.Body.Close()
20044		}
20045		return nil, &googleapi.Error{
20046			Code:   res.StatusCode,
20047			Header: res.Header,
20048		}
20049	}
20050	if err != nil {
20051		return nil, err
20052	}
20053	defer googleapi.CloseBody(res)
20054	if err := googleapi.CheckResponse(res); err != nil {
20055		return nil, err
20056	}
20057	ret := &Product{
20058		ServerResponse: googleapi.ServerResponse{
20059			Header:         res.Header,
20060			HTTPStatusCode: res.StatusCode,
20061		},
20062	}
20063	target := &ret
20064	if err := gensupport.DecodeResponse(target, res); err != nil {
20065		return nil, err
20066	}
20067	return ret, nil
20068	// {
20069	//   "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.",
20070	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}",
20071	//   "httpMethod": "PATCH",
20072	//   "id": "vision.projects.locations.products.patch",
20073	//   "parameterOrder": [
20074	//     "name"
20075	//   ],
20076	//   "parameters": {
20077	//     "name": {
20078	//       "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.",
20079	//       "location": "path",
20080	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20081	//       "required": true,
20082	//       "type": "string"
20083	//     },
20084	//     "updateMask": {
20085	//       "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`.",
20086	//       "format": "google-fieldmask",
20087	//       "location": "query",
20088	//       "type": "string"
20089	//     }
20090	//   },
20091	//   "path": "v1/{+name}",
20092	//   "request": {
20093	//     "$ref": "Product"
20094	//   },
20095	//   "response": {
20096	//     "$ref": "Product"
20097	//   },
20098	//   "scopes": [
20099	//     "https://www.googleapis.com/auth/cloud-platform",
20100	//     "https://www.googleapis.com/auth/cloud-vision"
20101	//   ]
20102	// }
20103
20104}
20105
20106// method id "vision.projects.locations.products.purge":
20107
20108type ProjectsLocationsProductsPurgeCall struct {
20109	s                    *Service
20110	parent               string
20111	purgeproductsrequest *PurgeProductsRequest
20112	urlParams_           gensupport.URLParams
20113	ctx_                 context.Context
20114	header_              http.Header
20115}
20116
20117// Purge: Asynchronous API to delete all Products in a ProductSet or all
20118// Products
20119// that are in no ProductSet.
20120//
20121// If a Product is a member of the specified ProductSet in addition to
20122// other
20123// ProductSets, the Product will still be deleted.
20124//
20125// It is recommended to not delete the specified ProductSet until after
20126// this
20127// operation has completed. It is also recommended to not add any of
20128// the
20129// Products involved in the batch delete to a new ProductSet while
20130// this
20131// operation is running because those Products may still end up
20132// deleted.
20133//
20134// It's not possible to undo the PurgeProducts operation. Therefore, it
20135// is
20136// recommended to keep the csv files used in ImportProductSets (if that
20137// was
20138// how you originally built the Product Set) before starting
20139// PurgeProducts, in
20140// case you need to re-import the data after deletion.
20141//
20142// If the plan is to purge all of the Products from a ProductSet and
20143// then
20144// re-use the empty ProductSet to re-import new Products into the
20145// empty
20146// ProductSet, you must wait until the PurgeProducts operation has
20147// finished
20148// for that ProductSet.
20149//
20150// The google.longrunning.Operation API can be used to keep track of
20151// the
20152// progress and results of the request.
20153// `Operation.metadata` contains `BatchOperationMetadata`. (progress)
20154func (r *ProjectsLocationsProductsService) Purge(parent string, purgeproductsrequest *PurgeProductsRequest) *ProjectsLocationsProductsPurgeCall {
20155	c := &ProjectsLocationsProductsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20156	c.parent = parent
20157	c.purgeproductsrequest = purgeproductsrequest
20158	return c
20159}
20160
20161// Fields allows partial responses to be retrieved. See
20162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20163// for more information.
20164func (c *ProjectsLocationsProductsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsPurgeCall {
20165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20166	return c
20167}
20168
20169// Context sets the context to be used in this call's Do method. Any
20170// pending HTTP request will be aborted if the provided context is
20171// canceled.
20172func (c *ProjectsLocationsProductsPurgeCall) Context(ctx context.Context) *ProjectsLocationsProductsPurgeCall {
20173	c.ctx_ = ctx
20174	return c
20175}
20176
20177// Header returns an http.Header that can be modified by the caller to
20178// add HTTP headers to the request.
20179func (c *ProjectsLocationsProductsPurgeCall) Header() http.Header {
20180	if c.header_ == nil {
20181		c.header_ = make(http.Header)
20182	}
20183	return c.header_
20184}
20185
20186func (c *ProjectsLocationsProductsPurgeCall) doRequest(alt string) (*http.Response, error) {
20187	reqHeaders := make(http.Header)
20188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20189	for k, v := range c.header_ {
20190		reqHeaders[k] = v
20191	}
20192	reqHeaders.Set("User-Agent", c.s.userAgent())
20193	var body io.Reader = nil
20194	body, err := googleapi.WithoutDataWrapper.JSONReader(c.purgeproductsrequest)
20195	if err != nil {
20196		return nil, err
20197	}
20198	reqHeaders.Set("Content-Type", "application/json")
20199	c.urlParams_.Set("alt", alt)
20200	c.urlParams_.Set("prettyPrint", "false")
20201	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products:purge")
20202	urls += "?" + c.urlParams_.Encode()
20203	req, err := http.NewRequest("POST", urls, body)
20204	if err != nil {
20205		return nil, err
20206	}
20207	req.Header = reqHeaders
20208	googleapi.Expand(req.URL, map[string]string{
20209		"parent": c.parent,
20210	})
20211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20212}
20213
20214// Do executes the "vision.projects.locations.products.purge" call.
20215// Exactly one of *Operation or error will be non-nil. Any non-2xx
20216// status code is an error. Response headers are in either
20217// *Operation.ServerResponse.Header or (if a response was returned at
20218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
20219// to check whether the returned error was because
20220// http.StatusNotModified was returned.
20221func (c *ProjectsLocationsProductsPurgeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
20222	gensupport.SetOptions(c.urlParams_, opts...)
20223	res, err := c.doRequest("json")
20224	if res != nil && res.StatusCode == http.StatusNotModified {
20225		if res.Body != nil {
20226			res.Body.Close()
20227		}
20228		return nil, &googleapi.Error{
20229			Code:   res.StatusCode,
20230			Header: res.Header,
20231		}
20232	}
20233	if err != nil {
20234		return nil, err
20235	}
20236	defer googleapi.CloseBody(res)
20237	if err := googleapi.CheckResponse(res); err != nil {
20238		return nil, err
20239	}
20240	ret := &Operation{
20241		ServerResponse: googleapi.ServerResponse{
20242			Header:         res.Header,
20243			HTTPStatusCode: res.StatusCode,
20244		},
20245	}
20246	target := &ret
20247	if err := gensupport.DecodeResponse(target, res); err != nil {
20248		return nil, err
20249	}
20250	return ret, nil
20251	// {
20252	//   "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)",
20253	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products:purge",
20254	//   "httpMethod": "POST",
20255	//   "id": "vision.projects.locations.products.purge",
20256	//   "parameterOrder": [
20257	//     "parent"
20258	//   ],
20259	//   "parameters": {
20260	//     "parent": {
20261	//       "description": "Required. The project and location in which the Products should be deleted.\n\nFormat is `projects/PROJECT_ID/locations/LOC_ID`.",
20262	//       "location": "path",
20263	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
20264	//       "required": true,
20265	//       "type": "string"
20266	//     }
20267	//   },
20268	//   "path": "v1/{+parent}/products:purge",
20269	//   "request": {
20270	//     "$ref": "PurgeProductsRequest"
20271	//   },
20272	//   "response": {
20273	//     "$ref": "Operation"
20274	//   },
20275	//   "scopes": [
20276	//     "https://www.googleapis.com/auth/cloud-platform",
20277	//     "https://www.googleapis.com/auth/cloud-vision"
20278	//   ]
20279	// }
20280
20281}
20282
20283// method id "vision.projects.locations.products.referenceImages.create":
20284
20285type ProjectsLocationsProductsReferenceImagesCreateCall struct {
20286	s              *Service
20287	parent         string
20288	referenceimage *ReferenceImage
20289	urlParams_     gensupport.URLParams
20290	ctx_           context.Context
20291	header_        http.Header
20292}
20293
20294// Create: Creates and returns a new ReferenceImage resource.
20295//
20296// The `bounding_poly` field is optional. If `bounding_poly` is not
20297// specified,
20298// the system will try to detect regions of interest in the image that
20299// are
20300// compatible with the product_category on the parent product. If it
20301// is
20302// specified, detection is ALWAYS skipped. The system converts polygons
20303// into
20304// non-rotated rectangles.
20305//
20306// Note that the pipeline will resize the image if the image resolution
20307// is too
20308// large to process (above 50MP).
20309//
20310// Possible errors:
20311//
20312// * Returns INVALID_ARGUMENT if the image_uri is missing or longer than
20313// 4096
20314//   characters.
20315// * Returns INVALID_ARGUMENT if the product does not exist.
20316// * Returns INVALID_ARGUMENT if bounding_poly is not provided, and
20317// nothing
20318//   compatible with the parent product's product_category is
20319// detected.
20320// * Returns INVALID_ARGUMENT if bounding_poly contains more than 10
20321// polygons.
20322func (r *ProjectsLocationsProductsReferenceImagesService) Create(parent string, referenceimage *ReferenceImage) *ProjectsLocationsProductsReferenceImagesCreateCall {
20323	c := &ProjectsLocationsProductsReferenceImagesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20324	c.parent = parent
20325	c.referenceimage = referenceimage
20326	return c
20327}
20328
20329// ReferenceImageId sets the optional parameter "referenceImageId": A
20330// user-supplied resource id for the ReferenceImage to be added. If
20331// set,
20332// the server will attempt to use this value as the resource id. If it
20333// is
20334// already in use, an error is returned with code ALREADY_EXISTS. Must
20335// be at
20336// most 128 characters long. It cannot contain the character `/`.
20337func (c *ProjectsLocationsProductsReferenceImagesCreateCall) ReferenceImageId(referenceImageId string) *ProjectsLocationsProductsReferenceImagesCreateCall {
20338	c.urlParams_.Set("referenceImageId", referenceImageId)
20339	return c
20340}
20341
20342// Fields allows partial responses to be retrieved. See
20343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20344// for more information.
20345func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesCreateCall {
20346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20347	return c
20348}
20349
20350// Context sets the context to be used in this call's Do method. Any
20351// pending HTTP request will be aborted if the provided context is
20352// canceled.
20353func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesCreateCall {
20354	c.ctx_ = ctx
20355	return c
20356}
20357
20358// Header returns an http.Header that can be modified by the caller to
20359// add HTTP headers to the request.
20360func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Header() http.Header {
20361	if c.header_ == nil {
20362		c.header_ = make(http.Header)
20363	}
20364	return c.header_
20365}
20366
20367func (c *ProjectsLocationsProductsReferenceImagesCreateCall) doRequest(alt string) (*http.Response, error) {
20368	reqHeaders := make(http.Header)
20369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20370	for k, v := range c.header_ {
20371		reqHeaders[k] = v
20372	}
20373	reqHeaders.Set("User-Agent", c.s.userAgent())
20374	var body io.Reader = nil
20375	body, err := googleapi.WithoutDataWrapper.JSONReader(c.referenceimage)
20376	if err != nil {
20377		return nil, err
20378	}
20379	reqHeaders.Set("Content-Type", "application/json")
20380	c.urlParams_.Set("alt", alt)
20381	c.urlParams_.Set("prettyPrint", "false")
20382	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
20383	urls += "?" + c.urlParams_.Encode()
20384	req, err := http.NewRequest("POST", urls, body)
20385	if err != nil {
20386		return nil, err
20387	}
20388	req.Header = reqHeaders
20389	googleapi.Expand(req.URL, map[string]string{
20390		"parent": c.parent,
20391	})
20392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20393}
20394
20395// Do executes the "vision.projects.locations.products.referenceImages.create" call.
20396// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
20397// status code is an error. Response headers are in either
20398// *ReferenceImage.ServerResponse.Header or (if a response was returned
20399// at all) in error.(*googleapi.Error).Header. Use
20400// googleapi.IsNotModified to check whether the returned error was
20401// because http.StatusNotModified was returned.
20402func (c *ProjectsLocationsProductsReferenceImagesCreateCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
20403	gensupport.SetOptions(c.urlParams_, opts...)
20404	res, err := c.doRequest("json")
20405	if res != nil && res.StatusCode == http.StatusNotModified {
20406		if res.Body != nil {
20407			res.Body.Close()
20408		}
20409		return nil, &googleapi.Error{
20410			Code:   res.StatusCode,
20411			Header: res.Header,
20412		}
20413	}
20414	if err != nil {
20415		return nil, err
20416	}
20417	defer googleapi.CloseBody(res)
20418	if err := googleapi.CheckResponse(res); err != nil {
20419		return nil, err
20420	}
20421	ret := &ReferenceImage{
20422		ServerResponse: googleapi.ServerResponse{
20423			Header:         res.Header,
20424			HTTPStatusCode: res.StatusCode,
20425		},
20426	}
20427	target := &ret
20428	if err := gensupport.DecodeResponse(target, res); err != nil {
20429		return nil, err
20430	}
20431	return ret, nil
20432	// {
20433	//   "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.",
20434	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
20435	//   "httpMethod": "POST",
20436	//   "id": "vision.projects.locations.products.referenceImages.create",
20437	//   "parameterOrder": [
20438	//     "parent"
20439	//   ],
20440	//   "parameters": {
20441	//     "parent": {
20442	//       "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`.",
20443	//       "location": "path",
20444	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20445	//       "required": true,
20446	//       "type": "string"
20447	//     },
20448	//     "referenceImageId": {
20449	//       "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 `/`.",
20450	//       "location": "query",
20451	//       "type": "string"
20452	//     }
20453	//   },
20454	//   "path": "v1/{+parent}/referenceImages",
20455	//   "request": {
20456	//     "$ref": "ReferenceImage"
20457	//   },
20458	//   "response": {
20459	//     "$ref": "ReferenceImage"
20460	//   },
20461	//   "scopes": [
20462	//     "https://www.googleapis.com/auth/cloud-platform",
20463	//     "https://www.googleapis.com/auth/cloud-vision"
20464	//   ]
20465	// }
20466
20467}
20468
20469// method id "vision.projects.locations.products.referenceImages.delete":
20470
20471type ProjectsLocationsProductsReferenceImagesDeleteCall struct {
20472	s          *Service
20473	name       string
20474	urlParams_ gensupport.URLParams
20475	ctx_       context.Context
20476	header_    http.Header
20477}
20478
20479// Delete: Permanently deletes a reference image.
20480//
20481// The image metadata will be deleted right away, but search
20482// queries
20483// against ProductSets containing the image may still work until all
20484// related
20485// caches are refreshed.
20486//
20487// The actual image files are not deleted from Google Cloud Storage.
20488func (r *ProjectsLocationsProductsReferenceImagesService) Delete(name string) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20489	c := &ProjectsLocationsProductsReferenceImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20490	c.name = name
20491	return c
20492}
20493
20494// Fields allows partial responses to be retrieved. See
20495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20496// for more information.
20497func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20499	return c
20500}
20501
20502// Context sets the context to be used in this call's Do method. Any
20503// pending HTTP request will be aborted if the provided context is
20504// canceled.
20505func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesDeleteCall {
20506	c.ctx_ = ctx
20507	return c
20508}
20509
20510// Header returns an http.Header that can be modified by the caller to
20511// add HTTP headers to the request.
20512func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Header() http.Header {
20513	if c.header_ == nil {
20514		c.header_ = make(http.Header)
20515	}
20516	return c.header_
20517}
20518
20519func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
20520	reqHeaders := make(http.Header)
20521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20522	for k, v := range c.header_ {
20523		reqHeaders[k] = v
20524	}
20525	reqHeaders.Set("User-Agent", c.s.userAgent())
20526	var body io.Reader = nil
20527	c.urlParams_.Set("alt", alt)
20528	c.urlParams_.Set("prettyPrint", "false")
20529	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20530	urls += "?" + c.urlParams_.Encode()
20531	req, err := http.NewRequest("DELETE", urls, body)
20532	if err != nil {
20533		return nil, err
20534	}
20535	req.Header = reqHeaders
20536	googleapi.Expand(req.URL, map[string]string{
20537		"name": c.name,
20538	})
20539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20540}
20541
20542// Do executes the "vision.projects.locations.products.referenceImages.delete" call.
20543// Exactly one of *Empty or error will be non-nil. Any non-2xx status
20544// code is an error. Response headers are in either
20545// *Empty.ServerResponse.Header or (if a response was returned at all)
20546// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
20547// check whether the returned error was because http.StatusNotModified
20548// was returned.
20549func (c *ProjectsLocationsProductsReferenceImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
20550	gensupport.SetOptions(c.urlParams_, opts...)
20551	res, err := c.doRequest("json")
20552	if res != nil && res.StatusCode == http.StatusNotModified {
20553		if res.Body != nil {
20554			res.Body.Close()
20555		}
20556		return nil, &googleapi.Error{
20557			Code:   res.StatusCode,
20558			Header: res.Header,
20559		}
20560	}
20561	if err != nil {
20562		return nil, err
20563	}
20564	defer googleapi.CloseBody(res)
20565	if err := googleapi.CheckResponse(res); err != nil {
20566		return nil, err
20567	}
20568	ret := &Empty{
20569		ServerResponse: googleapi.ServerResponse{
20570			Header:         res.Header,
20571			HTTPStatusCode: res.StatusCode,
20572		},
20573	}
20574	target := &ret
20575	if err := gensupport.DecodeResponse(target, res); err != nil {
20576		return nil, err
20577	}
20578	return ret, nil
20579	// {
20580	//   "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.",
20581	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
20582	//   "httpMethod": "DELETE",
20583	//   "id": "vision.projects.locations.products.referenceImages.delete",
20584	//   "parameterOrder": [
20585	//     "name"
20586	//   ],
20587	//   "parameters": {
20588	//     "name": {
20589	//       "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`",
20590	//       "location": "path",
20591	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
20592	//       "required": true,
20593	//       "type": "string"
20594	//     }
20595	//   },
20596	//   "path": "v1/{+name}",
20597	//   "response": {
20598	//     "$ref": "Empty"
20599	//   },
20600	//   "scopes": [
20601	//     "https://www.googleapis.com/auth/cloud-platform",
20602	//     "https://www.googleapis.com/auth/cloud-vision"
20603	//   ]
20604	// }
20605
20606}
20607
20608// method id "vision.projects.locations.products.referenceImages.get":
20609
20610type ProjectsLocationsProductsReferenceImagesGetCall struct {
20611	s            *Service
20612	name         string
20613	urlParams_   gensupport.URLParams
20614	ifNoneMatch_ string
20615	ctx_         context.Context
20616	header_      http.Header
20617}
20618
20619// Get: Gets information associated with a ReferenceImage.
20620//
20621// Possible errors:
20622//
20623// * Returns NOT_FOUND if the specified image does not exist.
20624func (r *ProjectsLocationsProductsReferenceImagesService) Get(name string) *ProjectsLocationsProductsReferenceImagesGetCall {
20625	c := &ProjectsLocationsProductsReferenceImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20626	c.name = name
20627	return c
20628}
20629
20630// Fields allows partial responses to be retrieved. See
20631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20632// for more information.
20633func (c *ProjectsLocationsProductsReferenceImagesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesGetCall {
20634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20635	return c
20636}
20637
20638// IfNoneMatch sets the optional parameter which makes the operation
20639// fail if the object's ETag matches the given value. This is useful for
20640// getting updates only after the object has changed since the last
20641// request. Use googleapi.IsNotModified to check whether the response
20642// error from Do is the result of In-None-Match.
20643func (c *ProjectsLocationsProductsReferenceImagesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesGetCall {
20644	c.ifNoneMatch_ = entityTag
20645	return c
20646}
20647
20648// Context sets the context to be used in this call's Do method. Any
20649// pending HTTP request will be aborted if the provided context is
20650// canceled.
20651func (c *ProjectsLocationsProductsReferenceImagesGetCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesGetCall {
20652	c.ctx_ = ctx
20653	return c
20654}
20655
20656// Header returns an http.Header that can be modified by the caller to
20657// add HTTP headers to the request.
20658func (c *ProjectsLocationsProductsReferenceImagesGetCall) Header() http.Header {
20659	if c.header_ == nil {
20660		c.header_ = make(http.Header)
20661	}
20662	return c.header_
20663}
20664
20665func (c *ProjectsLocationsProductsReferenceImagesGetCall) doRequest(alt string) (*http.Response, error) {
20666	reqHeaders := make(http.Header)
20667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20668	for k, v := range c.header_ {
20669		reqHeaders[k] = v
20670	}
20671	reqHeaders.Set("User-Agent", c.s.userAgent())
20672	if c.ifNoneMatch_ != "" {
20673		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20674	}
20675	var body io.Reader = nil
20676	c.urlParams_.Set("alt", alt)
20677	c.urlParams_.Set("prettyPrint", "false")
20678	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
20679	urls += "?" + c.urlParams_.Encode()
20680	req, err := http.NewRequest("GET", urls, body)
20681	if err != nil {
20682		return nil, err
20683	}
20684	req.Header = reqHeaders
20685	googleapi.Expand(req.URL, map[string]string{
20686		"name": c.name,
20687	})
20688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20689}
20690
20691// Do executes the "vision.projects.locations.products.referenceImages.get" call.
20692// Exactly one of *ReferenceImage or error will be non-nil. Any non-2xx
20693// status code is an error. Response headers are in either
20694// *ReferenceImage.ServerResponse.Header or (if a response was returned
20695// at all) in error.(*googleapi.Error).Header. Use
20696// googleapi.IsNotModified to check whether the returned error was
20697// because http.StatusNotModified was returned.
20698func (c *ProjectsLocationsProductsReferenceImagesGetCall) Do(opts ...googleapi.CallOption) (*ReferenceImage, error) {
20699	gensupport.SetOptions(c.urlParams_, opts...)
20700	res, err := c.doRequest("json")
20701	if res != nil && res.StatusCode == http.StatusNotModified {
20702		if res.Body != nil {
20703			res.Body.Close()
20704		}
20705		return nil, &googleapi.Error{
20706			Code:   res.StatusCode,
20707			Header: res.Header,
20708		}
20709	}
20710	if err != nil {
20711		return nil, err
20712	}
20713	defer googleapi.CloseBody(res)
20714	if err := googleapi.CheckResponse(res); err != nil {
20715		return nil, err
20716	}
20717	ret := &ReferenceImage{
20718		ServerResponse: googleapi.ServerResponse{
20719			Header:         res.Header,
20720			HTTPStatusCode: res.StatusCode,
20721		},
20722	}
20723	target := &ret
20724	if err := gensupport.DecodeResponse(target, res); err != nil {
20725		return nil, err
20726	}
20727	return ret, nil
20728	// {
20729	//   "description": "Gets information associated with a ReferenceImage.\n\nPossible errors:\n\n* Returns NOT_FOUND if the specified image does not exist.",
20730	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}",
20731	//   "httpMethod": "GET",
20732	//   "id": "vision.projects.locations.products.referenceImages.get",
20733	//   "parameterOrder": [
20734	//     "name"
20735	//   ],
20736	//   "parameters": {
20737	//     "name": {
20738	//       "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`.",
20739	//       "location": "path",
20740	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$",
20741	//       "required": true,
20742	//       "type": "string"
20743	//     }
20744	//   },
20745	//   "path": "v1/{+name}",
20746	//   "response": {
20747	//     "$ref": "ReferenceImage"
20748	//   },
20749	//   "scopes": [
20750	//     "https://www.googleapis.com/auth/cloud-platform",
20751	//     "https://www.googleapis.com/auth/cloud-vision"
20752	//   ]
20753	// }
20754
20755}
20756
20757// method id "vision.projects.locations.products.referenceImages.list":
20758
20759type ProjectsLocationsProductsReferenceImagesListCall struct {
20760	s            *Service
20761	parent       string
20762	urlParams_   gensupport.URLParams
20763	ifNoneMatch_ string
20764	ctx_         context.Context
20765	header_      http.Header
20766}
20767
20768// List: Lists reference images.
20769//
20770// Possible errors:
20771//
20772// * Returns NOT_FOUND if the parent product does not exist.
20773// * Returns INVALID_ARGUMENT if the page_size is greater than 100, or
20774// less
20775//   than 1.
20776func (r *ProjectsLocationsProductsReferenceImagesService) List(parent string) *ProjectsLocationsProductsReferenceImagesListCall {
20777	c := &ProjectsLocationsProductsReferenceImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20778	c.parent = parent
20779	return c
20780}
20781
20782// PageSize sets the optional parameter "pageSize": The maximum number
20783// of items to return. Default 10, maximum 100.
20784func (c *ProjectsLocationsProductsReferenceImagesListCall) PageSize(pageSize int64) *ProjectsLocationsProductsReferenceImagesListCall {
20785	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20786	return c
20787}
20788
20789// PageToken sets the optional parameter "pageToken": A token
20790// identifying a page of results to be returned. This is the value
20791// of `nextPageToken` returned in a previous reference image list
20792// request.
20793//
20794// Defaults to the first page if not specified.
20795func (c *ProjectsLocationsProductsReferenceImagesListCall) PageToken(pageToken string) *ProjectsLocationsProductsReferenceImagesListCall {
20796	c.urlParams_.Set("pageToken", pageToken)
20797	return c
20798}
20799
20800// Fields allows partial responses to be retrieved. See
20801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20802// for more information.
20803func (c *ProjectsLocationsProductsReferenceImagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsProductsReferenceImagesListCall {
20804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20805	return c
20806}
20807
20808// IfNoneMatch sets the optional parameter which makes the operation
20809// fail if the object's ETag matches the given value. This is useful for
20810// getting updates only after the object has changed since the last
20811// request. Use googleapi.IsNotModified to check whether the response
20812// error from Do is the result of In-None-Match.
20813func (c *ProjectsLocationsProductsReferenceImagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsProductsReferenceImagesListCall {
20814	c.ifNoneMatch_ = entityTag
20815	return c
20816}
20817
20818// Context sets the context to be used in this call's Do method. Any
20819// pending HTTP request will be aborted if the provided context is
20820// canceled.
20821func (c *ProjectsLocationsProductsReferenceImagesListCall) Context(ctx context.Context) *ProjectsLocationsProductsReferenceImagesListCall {
20822	c.ctx_ = ctx
20823	return c
20824}
20825
20826// Header returns an http.Header that can be modified by the caller to
20827// add HTTP headers to the request.
20828func (c *ProjectsLocationsProductsReferenceImagesListCall) Header() http.Header {
20829	if c.header_ == nil {
20830		c.header_ = make(http.Header)
20831	}
20832	return c.header_
20833}
20834
20835func (c *ProjectsLocationsProductsReferenceImagesListCall) doRequest(alt string) (*http.Response, error) {
20836	reqHeaders := make(http.Header)
20837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
20838	for k, v := range c.header_ {
20839		reqHeaders[k] = v
20840	}
20841	reqHeaders.Set("User-Agent", c.s.userAgent())
20842	if c.ifNoneMatch_ != "" {
20843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20844	}
20845	var body io.Reader = nil
20846	c.urlParams_.Set("alt", alt)
20847	c.urlParams_.Set("prettyPrint", "false")
20848	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/referenceImages")
20849	urls += "?" + c.urlParams_.Encode()
20850	req, err := http.NewRequest("GET", urls, body)
20851	if err != nil {
20852		return nil, err
20853	}
20854	req.Header = reqHeaders
20855	googleapi.Expand(req.URL, map[string]string{
20856		"parent": c.parent,
20857	})
20858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20859}
20860
20861// Do executes the "vision.projects.locations.products.referenceImages.list" call.
20862// Exactly one of *ListReferenceImagesResponse or error will be non-nil.
20863// Any non-2xx status code is an error. Response headers are in either
20864// *ListReferenceImagesResponse.ServerResponse.Header or (if a response
20865// was returned at all) in error.(*googleapi.Error).Header. Use
20866// googleapi.IsNotModified to check whether the returned error was
20867// because http.StatusNotModified was returned.
20868func (c *ProjectsLocationsProductsReferenceImagesListCall) Do(opts ...googleapi.CallOption) (*ListReferenceImagesResponse, error) {
20869	gensupport.SetOptions(c.urlParams_, opts...)
20870	res, err := c.doRequest("json")
20871	if res != nil && res.StatusCode == http.StatusNotModified {
20872		if res.Body != nil {
20873			res.Body.Close()
20874		}
20875		return nil, &googleapi.Error{
20876			Code:   res.StatusCode,
20877			Header: res.Header,
20878		}
20879	}
20880	if err != nil {
20881		return nil, err
20882	}
20883	defer googleapi.CloseBody(res)
20884	if err := googleapi.CheckResponse(res); err != nil {
20885		return nil, err
20886	}
20887	ret := &ListReferenceImagesResponse{
20888		ServerResponse: googleapi.ServerResponse{
20889			Header:         res.Header,
20890			HTTPStatusCode: res.StatusCode,
20891		},
20892	}
20893	target := &ret
20894	if err := gensupport.DecodeResponse(target, res); err != nil {
20895		return nil, err
20896	}
20897	return ret, nil
20898	// {
20899	//   "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.",
20900	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages",
20901	//   "httpMethod": "GET",
20902	//   "id": "vision.projects.locations.products.referenceImages.list",
20903	//   "parameterOrder": [
20904	//     "parent"
20905	//   ],
20906	//   "parameters": {
20907	//     "pageSize": {
20908	//       "description": "The maximum number of items to return. Default 10, maximum 100.",
20909	//       "format": "int32",
20910	//       "location": "query",
20911	//       "type": "integer"
20912	//     },
20913	//     "pageToken": {
20914	//       "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.",
20915	//       "location": "query",
20916	//       "type": "string"
20917	//     },
20918	//     "parent": {
20919	//       "description": "Required. Resource name of the product containing the reference images.\n\nFormat is\n`projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.",
20920	//       "location": "path",
20921	//       "pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$",
20922	//       "required": true,
20923	//       "type": "string"
20924	//     }
20925	//   },
20926	//   "path": "v1/{+parent}/referenceImages",
20927	//   "response": {
20928	//     "$ref": "ListReferenceImagesResponse"
20929	//   },
20930	//   "scopes": [
20931	//     "https://www.googleapis.com/auth/cloud-platform",
20932	//     "https://www.googleapis.com/auth/cloud-vision"
20933	//   ]
20934	// }
20935
20936}
20937
20938// Pages invokes f for each page of results.
20939// A non-nil error returned from f will halt the iteration.
20940// The provided context supersedes any context provided to the Context method.
20941func (c *ProjectsLocationsProductsReferenceImagesListCall) Pages(ctx context.Context, f func(*ListReferenceImagesResponse) error) error {
20942	c.ctx_ = ctx
20943	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
20944	for {
20945		x, err := c.Do()
20946		if err != nil {
20947			return err
20948		}
20949		if err := f(x); err != nil {
20950			return err
20951		}
20952		if x.NextPageToken == "" {
20953			return nil
20954		}
20955		c.PageToken(x.NextPageToken)
20956	}
20957}
20958
20959// method id "vision.projects.operations.get":
20960
20961type ProjectsOperationsGetCall struct {
20962	s            *Service
20963	name         string
20964	urlParams_   gensupport.URLParams
20965	ifNoneMatch_ string
20966	ctx_         context.Context
20967	header_      http.Header
20968}
20969
20970// Get: Gets the latest state of a long-running operation.  Clients can
20971// use this
20972// method to poll the operation result at intervals as recommended by
20973// the API
20974// service.
20975func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
20976	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20977	c.name = name
20978	return c
20979}
20980
20981// Fields allows partial responses to be retrieved. See
20982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20983// for more information.
20984func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
20985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20986	return c
20987}
20988
20989// IfNoneMatch sets the optional parameter which makes the operation
20990// fail if the object's ETag matches the given value. This is useful for
20991// getting updates only after the object has changed since the last
20992// request. Use googleapi.IsNotModified to check whether the response
20993// error from Do is the result of In-None-Match.
20994func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
20995	c.ifNoneMatch_ = entityTag
20996	return c
20997}
20998
20999// Context sets the context to be used in this call's Do method. Any
21000// pending HTTP request will be aborted if the provided context is
21001// canceled.
21002func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
21003	c.ctx_ = ctx
21004	return c
21005}
21006
21007// Header returns an http.Header that can be modified by the caller to
21008// add HTTP headers to the request.
21009func (c *ProjectsOperationsGetCall) Header() http.Header {
21010	if c.header_ == nil {
21011		c.header_ = make(http.Header)
21012	}
21013	return c.header_
21014}
21015
21016func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
21017	reqHeaders := make(http.Header)
21018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
21019	for k, v := range c.header_ {
21020		reqHeaders[k] = v
21021	}
21022	reqHeaders.Set("User-Agent", c.s.userAgent())
21023	if c.ifNoneMatch_ != "" {
21024		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21025	}
21026	var body io.Reader = nil
21027	c.urlParams_.Set("alt", alt)
21028	c.urlParams_.Set("prettyPrint", "false")
21029	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
21030	urls += "?" + c.urlParams_.Encode()
21031	req, err := http.NewRequest("GET", urls, body)
21032	if err != nil {
21033		return nil, err
21034	}
21035	req.Header = reqHeaders
21036	googleapi.Expand(req.URL, map[string]string{
21037		"name": c.name,
21038	})
21039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21040}
21041
21042// Do executes the "vision.projects.operations.get" call.
21043// Exactly one of *Operation or error will be non-nil. Any non-2xx
21044// status code is an error. Response headers are in either
21045// *Operation.ServerResponse.Header or (if a response was returned at
21046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
21047// to check whether the returned error was because
21048// http.StatusNotModified was returned.
21049func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
21050	gensupport.SetOptions(c.urlParams_, opts...)
21051	res, err := c.doRequest("json")
21052	if res != nil && res.StatusCode == http.StatusNotModified {
21053		if res.Body != nil {
21054			res.Body.Close()
21055		}
21056		return nil, &googleapi.Error{
21057			Code:   res.StatusCode,
21058			Header: res.Header,
21059		}
21060	}
21061	if err != nil {
21062		return nil, err
21063	}
21064	defer googleapi.CloseBody(res)
21065	if err := googleapi.CheckResponse(res); err != nil {
21066		return nil, err
21067	}
21068	ret := &Operation{
21069		ServerResponse: googleapi.ServerResponse{
21070			Header:         res.Header,
21071			HTTPStatusCode: res.StatusCode,
21072		},
21073	}
21074	target := &ret
21075	if err := gensupport.DecodeResponse(target, res); err != nil {
21076		return nil, err
21077	}
21078	return ret, nil
21079	// {
21080	//   "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.",
21081	//   "flatPath": "v1/projects/{projectsId}/operations/{operationsId}",
21082	//   "httpMethod": "GET",
21083	//   "id": "vision.projects.operations.get",
21084	//   "parameterOrder": [
21085	//     "name"
21086	//   ],
21087	//   "parameters": {
21088	//     "name": {
21089	//       "description": "The name of the operation resource.",
21090	//       "location": "path",
21091	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
21092	//       "required": true,
21093	//       "type": "string"
21094	//     }
21095	//   },
21096	//   "path": "v1/{+name}",
21097	//   "response": {
21098	//     "$ref": "Operation"
21099	//   },
21100	//   "scopes": [
21101	//     "https://www.googleapis.com/auth/cloud-platform",
21102	//     "https://www.googleapis.com/auth/cloud-vision"
21103	//   ]
21104	// }
21105
21106}
21107