// Copyright 2024 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated file. DO NOT EDIT.

// Package language provides access to the Cloud Natural Language API.
//
// This package is DEPRECATED. Use package cloud.google.com/go/language/apiv1 instead.
//
// For product documentation, see: https://cloud.google.com/natural-language/
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/language/v2"
//	...
//	ctx := context.Background()
//	languageService, err := language.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
//	languageService, err := language.NewService(ctx, option.WithScopes(language.CloudPlatformScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	languageService, err := language.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
//	config := &oauth2.Config{...}
//	// ...
//	token, err := config.Exchange(ctx, ...)
//	languageService, err := language.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package language // import "google.golang.org/api/language/v2"

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strconv"
	"strings"

	googleapi "google.golang.org/api/googleapi"
	internal "google.golang.org/api/internal"
	gensupport "google.golang.org/api/internal/gensupport"
	option "google.golang.org/api/option"
	internaloption "google.golang.org/api/option/internaloption"
	htransport "google.golang.org/api/transport/http"
)

// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version

const apiId = "language:v2"
const apiName = "language"
const apiVersion = "v2"
const basePath = "https://language.googleapis.com/"
const basePathTemplate = "https://language.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://language.mtls.googleapis.com/"
const defaultUniverseDomain = "googleapis.com"

// OAuth2 scopes used by this API.
const (
	// Apply machine learning models to reveal the structure and meaning of
	// text
	CloudLanguageScope = "https://www.googleapis.com/auth/cloud-language"

	// See, edit, configure, and delete your Google Cloud data and see the
	// email address for your Google Account.
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-language",
		"https://www.googleapis.com/auth/cloud-platform",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	opts = append(opts, internaloption.WithDefaultUniverseDomain(defaultUniverseDomain))
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s, err := New(client)
	if err != nil {
		return nil, err
	}
	if endpoint != "" {
		s.BasePath = endpoint
	}
	return s, nil
}

// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
	if client == nil {
		return nil, errors.New("client is nil")
	}
	s := &Service{client: client, BasePath: basePath}
	s.Documents = NewDocumentsService(s)
	return s, nil
}

type Service struct {
	client    *http.Client
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	Documents *DocumentsService
}

func (s *Service) userAgent() string {
	if s.UserAgent == "" {
		return googleapi.UserAgent
	}
	return googleapi.UserAgent + " " + s.UserAgent
}

func NewDocumentsService(s *Service) *DocumentsService {
	rs := &DocumentsService{s: s}
	return rs
}

type DocumentsService struct {
	s *Service
}

// AnalyzeEntitiesRequest: The entity analysis request message.
type AnalyzeEntitiesRequest struct {
	// Document: Required. Input document.
	Document *Document `json:"document,omitempty"`

	// EncodingType: The encoding type used by the API to calculate offsets.
	//
	// Possible values:
	//   "NONE" - If `EncodingType` is not specified, encoding-dependent
	// information (such as `begin_offset`) will be set at `-1`.
	//   "UTF8" - Encoding-dependent information (such as `begin_offset`) is
	// calculated based on the UTF-8 encoding of the input. C++ and Go are
	// examples of languages that use this encoding natively.
	//   "UTF16" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-16 encoding of the input. Java and
	// JavaScript are examples of languages that use this encoding natively.
	//   "UTF32" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-32 encoding of the input. Python is an
	// example of a language that uses this encoding natively.
	EncodingType string `json:"encodingType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Document") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnalyzeEntitiesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod AnalyzeEntitiesRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnalyzeEntitiesResponse: The entity analysis response message.
type AnalyzeEntitiesResponse struct {
	// Entities: The recognized entities in the input document.
	Entities []*Entity `json:"entities,omitempty"`

	// LanguageCode: The language of the text, which will be the same as the
	// language specified in the request or, if not specified, the
	// automatically-detected language. See Document.language field for more
	// details.
	LanguageCode string `json:"languageCode,omitempty"`

	// LanguageSupported: Whether the language is officially supported. The
	// API may still return a response when the language is not supported,
	// but it is on a best effort basis.
	LanguageSupported bool `json:"languageSupported,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Entities") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Entities") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnalyzeEntitiesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod AnalyzeEntitiesResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnalyzeSentimentRequest: The sentiment analysis request message.
type AnalyzeSentimentRequest struct {
	// Document: Required. Input document.
	Document *Document `json:"document,omitempty"`

	// EncodingType: The encoding type used by the API to calculate sentence
	// offsets.
	//
	// Possible values:
	//   "NONE" - If `EncodingType` is not specified, encoding-dependent
	// information (such as `begin_offset`) will be set at `-1`.
	//   "UTF8" - Encoding-dependent information (such as `begin_offset`) is
	// calculated based on the UTF-8 encoding of the input. C++ and Go are
	// examples of languages that use this encoding natively.
	//   "UTF16" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-16 encoding of the input. Java and
	// JavaScript are examples of languages that use this encoding natively.
	//   "UTF32" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-32 encoding of the input. Python is an
	// example of a language that uses this encoding natively.
	EncodingType string `json:"encodingType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Document") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnalyzeSentimentRequest) MarshalJSON() ([]byte, error) {
	type NoMethod AnalyzeSentimentRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnalyzeSentimentResponse: The sentiment analysis response message.
type AnalyzeSentimentResponse struct {
	// DocumentSentiment: The overall sentiment of the input document.
	DocumentSentiment *Sentiment `json:"documentSentiment,omitempty"`

	// LanguageCode: The language of the text, which will be the same as the
	// language specified in the request or, if not specified, the
	// automatically-detected language. See Document.language field for more
	// details.
	LanguageCode string `json:"languageCode,omitempty"`

	// LanguageSupported: Whether the language is officially supported. The
	// API may still return a response when the language is not supported,
	// but it is on a best effort basis.
	LanguageSupported bool `json:"languageSupported,omitempty"`

	// Sentences: The sentiment for all the sentences in the document.
	Sentences []*Sentence `json:"sentences,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "DocumentSentiment")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DocumentSentiment") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *AnalyzeSentimentResponse) MarshalJSON() ([]byte, error) {
	type NoMethod AnalyzeSentimentResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnnotateTextRequest: The request message for the text annotation API,
// which can perform multiple analysis types in one call.
type AnnotateTextRequest struct {
	// Document: Required. Input document.
	Document *Document `json:"document,omitempty"`

	// EncodingType: The encoding type used by the API to calculate offsets.
	//
	// Possible values:
	//   "NONE" - If `EncodingType` is not specified, encoding-dependent
	// information (such as `begin_offset`) will be set at `-1`.
	//   "UTF8" - Encoding-dependent information (such as `begin_offset`) is
	// calculated based on the UTF-8 encoding of the input. C++ and Go are
	// examples of languages that use this encoding natively.
	//   "UTF16" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-16 encoding of the input. Java and
	// JavaScript are examples of languages that use this encoding natively.
	//   "UTF32" - Encoding-dependent information (such as `begin_offset`)
	// is calculated based on the UTF-32 encoding of the input. Python is an
	// example of a language that uses this encoding natively.
	EncodingType string `json:"encodingType,omitempty"`

	// Features: Required. The enabled features.
	Features *AnnotateTextRequestFeatures `json:"features,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Document") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnnotateTextRequest) MarshalJSON() ([]byte, error) {
	type NoMethod AnnotateTextRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnnotateTextRequestFeatures: All available features. Setting each one
// to true will enable that specific analysis for the input.
type AnnotateTextRequestFeatures struct {
	// ClassifyText: Optional. Classify the full document into categories.
	ClassifyText bool `json:"classifyText,omitempty"`

	// ExtractDocumentSentiment: Optional. Extract document-level sentiment.
	ExtractDocumentSentiment bool `json:"extractDocumentSentiment,omitempty"`

	// ExtractEntities: Optional. Extract entities.
	ExtractEntities bool `json:"extractEntities,omitempty"`

	// ModerateText: Optional. Moderate the document for harmful and
	// sensitive categories.
	ModerateText bool `json:"moderateText,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ClassifyText") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClassifyText") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnnotateTextRequestFeatures) MarshalJSON() ([]byte, error) {
	type NoMethod AnnotateTextRequestFeatures
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// AnnotateTextResponse: The text annotations response message.
type AnnotateTextResponse struct {
	// Categories: Categories identified in the input document.
	Categories []*ClassificationCategory `json:"categories,omitempty"`

	// DocumentSentiment: The overall sentiment for the document. Populated
	// if the user enables
	// AnnotateTextRequest.Features.extract_document_sentiment.
	DocumentSentiment *Sentiment `json:"documentSentiment,omitempty"`

	// Entities: Entities, along with their semantic information, in the
	// input document. Populated if the user enables
	// AnnotateTextRequest.Features.extract_entities or
	// AnnotateTextRequest.Features.extract_entity_sentiment.
	Entities []*Entity `json:"entities,omitempty"`

	// LanguageCode: The language of the text, which will be the same as the
	// language specified in the request or, if not specified, the
	// automatically-detected language. See Document.language field for more
	// details.
	LanguageCode string `json:"languageCode,omitempty"`

	// LanguageSupported: Whether the language is officially supported by
	// all requested features. The API may still return a response when the
	// language is not supported, but it is on a best effort basis.
	LanguageSupported bool `json:"languageSupported,omitempty"`

	// ModerationCategories: Harmful and sensitive categories identified in
	// the input document.
	ModerationCategories []*ClassificationCategory `json:"moderationCategories,omitempty"`

	// Sentences: Sentences in the input document. Populated if the user
	// enables AnnotateTextRequest.Features.extract_document_sentiment.
	Sentences []*Sentence `json:"sentences,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Categories") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Categories") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *AnnotateTextResponse) MarshalJSON() ([]byte, error) {
	type NoMethod AnnotateTextResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// ClassificationCategory: Represents a category returned from the text
// classifier.
type ClassificationCategory struct {
	// Confidence: The classifier's confidence of the category. Number
	// represents how certain the classifier is that this category
	// represents the given text.
	Confidence float64 `json:"confidence,omitempty"`

	// Name: The name of the category representing the document.
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Confidence") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Confidence") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *ClassificationCategory) MarshalJSON() ([]byte, error) {
	type NoMethod ClassificationCategory
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *ClassificationCategory) UnmarshalJSON(data []byte) error {
	type NoMethod ClassificationCategory
	var s1 struct {
		Confidence gensupport.JSONFloat64 `json:"confidence"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Confidence = float64(s1.Confidence)
	return nil
}

// ClassifyTextRequest: The document classification request message.
type ClassifyTextRequest struct {
	// Document: Required. Input document.
	Document *Document `json:"document,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Document") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *ClassifyTextRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ClassifyTextRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// ClassifyTextResponse: The document classification response message.
type ClassifyTextResponse struct {
	// Categories: Categories representing the input document.
	Categories []*ClassificationCategory `json:"categories,omitempty"`

	// LanguageCode: The language of the text, which will be the same as the
	// language specified in the request or, if not specified, the
	// automatically-detected language. See Document.language field for more
	// details.
	LanguageCode string `json:"languageCode,omitempty"`

	// LanguageSupported: Whether the language is officially supported. The
	// API may still return a response when the language is not supported,
	// but it is on a best effort basis.
	LanguageSupported bool `json:"languageSupported,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Categories") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Categories") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *ClassifyTextResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ClassifyTextResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// Color: Represents a color in the RGBA color space. This
// representation is designed for simplicity of conversion to and from
// color representations in various languages over compactness. For
// example, the fields of this representation can be trivially provided
// to the constructor of `java.awt.Color` in Java; it can also be
// trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
// method in iOS; and, with just a little work, it can be easily
// formatted into a CSS `rgba()` string in JavaScript. This reference
// page doesn't have information about the absolute color space that
// should be used to interpret the RGB value—for example, sRGB, Adobe
// RGB, DCI-P3, and BT.2020. By default, applications should assume the
// sRGB color space. When color equality needs to be decided,
// implementations, unless documented otherwise, treat two colors as
// equal if all their red, green, blue, and alpha values each differ by
// at most `1e-5`. Example (Java): import com.google.type.Color; // ...
// public static java.awt.Color fromProto(Color protocolor) { float
// alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() :
// 1.0; return new java.awt.Color( protocolor.getRed(),
// protocolor.getGreen(), protocolor.getBlue(), alpha); } public static
// Color toProto(java.awt.Color color) { float red = (float)
// color.getRed(); float green = (float) color.getGreen(); float blue =
// (float) color.getBlue(); float denominator = 255.0; Color.Builder
// resultBuilder = Color .newBuilder() .setRed(red / denominator)
// .setGreen(green / denominator) .setBlue(blue / denominator); int
// alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha(
// FloatValue .newBuilder() .setValue(((float) alpha) / denominator)
// .build()); } return resultBuilder.build(); } // ... Example (iOS /
// Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float
// red = [protocolor red]; float green = [protocolor green]; float blue
// = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha];
// float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper
// value]; } return [UIColor colorWithRed:red green:green blue:blue
// alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red,
// green, blue, alpha; if (![color getRed:&red green:&green blue:&blue
// alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init];
// [result setRed:red]; [result setGreen:green]; [result setBlue:blue];
// if (alpha <= 0.9999) { [result
// setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease];
// return result; } // ... Example (JavaScript): // ... var
// protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red
// || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac =
// rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green
// = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255);
// if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green,
// blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams
// = [red, green, blue].join(','); return ['rgba(', rgbParams, ',',
// alphaFrac, ')'].join(”); }; var rgbToCssColor = function(red, green,
// blue) { var rgbNumber = new Number((red << 16) | (green << 8) |
// blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 -
// hexString.length; var resultBuilder = ['#']; for (var i = 0; i <
// missingZeros; i++) { resultBuilder.push('0'); }
// resultBuilder.push(hexString); return resultBuilder.join(”); }; //
// ...
type Color struct {
	// Alpha: The fraction of this color that should be applied to the
	// pixel. That is, the final pixel color is defined by the equation:
	// `pixel color = alpha * (this color) + (1.0 - alpha) * (background
	// color)` This means that a value of 1.0 corresponds to a solid color,
	// whereas a value of 0.0 corresponds to a completely transparent color.
	// This uses a wrapper message rather than a simple float scalar so that
	// it is possible to distinguish between a default value and the value
	// being unset. If omitted, this color object is rendered as a solid
	// color (as if the alpha value had been explicitly given a value of
	// 1.0).
	Alpha float64 `json:"alpha,omitempty"`

	// Blue: The amount of blue in the color as a value in the interval [0,
	// 1].
	Blue float64 `json:"blue,omitempty"`

	// Green: The amount of green in the color as a value in the interval
	// [0, 1].
	Green float64 `json:"green,omitempty"`

	// Red: The amount of red in the color as a value in the interval [0,
	// 1].
	Red float64 `json:"red,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Alpha") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Alpha") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Color) MarshalJSON() ([]byte, error) {
	type NoMethod Color
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *Color) UnmarshalJSON(data []byte) error {
	type NoMethod Color
	var s1 struct {
		Alpha gensupport.JSONFloat64 `json:"alpha"`
		Blue  gensupport.JSONFloat64 `json:"blue"`
		Green gensupport.JSONFloat64 `json:"green"`
		Red   gensupport.JSONFloat64 `json:"red"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Alpha = float64(s1.Alpha)
	s.Blue = float64(s1.Blue)
	s.Green = float64(s1.Green)
	s.Red = float64(s1.Red)
	return nil
}

// CpuMetric: Metric for billing reports.
type CpuMetric struct {
	// CoreNumber: Required. Number of CPU cores.
	CoreNumber int64 `json:"coreNumber,omitempty,string"`

	// CoreSec: Required. Total seconds of core usage, e.g. 4.
	CoreSec int64 `json:"coreSec,omitempty,string"`

	// CpuType: Required. Type of cpu, e.g. N2.
	//
	// Possible values:
	//   "UNKNOWN_CPU_TYPE"
	//   "A2" - GPU-based machine, skip quota reporting.
	//   "A3" - GPU-based machine, skip quota reporting.
	//   "C2" - COMPUTE_OPTIMIZED
	//   "C2D"
	//   "CUSTOM"
	//   "E2"
	//   "G2" - GPU-based machine, skip quota reporting.
	//   "C3"
	//   "M2" - MEMORY_OPTIMIZED_UPGRADE_PREMIUM
	//   "M1" - MEMORY_OPTIMIZED
	//   "N1"
	//   "N2_CUSTOM"
	//   "N2"
	//   "N2D"
	CpuType string `json:"cpuType,omitempty"`

	// MachineSpec: Required. Machine spec, e.g. N1_STANDARD_4.
	//
	// Possible values:
	//   "UNKNOWN_MACHINE_SPEC"
	//   "N1_STANDARD_2"
	//   "N1_STANDARD_4"
	//   "N1_STANDARD_8"
	//   "N1_STANDARD_16"
	//   "N1_STANDARD_32"
	//   "N1_STANDARD_64"
	//   "N1_STANDARD_96"
	//   "N1_HIGHMEM_2"
	//   "N1_HIGHMEM_4"
	//   "N1_HIGHMEM_8"
	//   "N1_HIGHMEM_16"
	//   "N1_HIGHMEM_32"
	//   "N1_HIGHMEM_64"
	//   "N1_HIGHMEM_96"
	//   "N1_HIGHCPU_2"
	//   "N1_HIGHCPU_4"
	//   "N1_HIGHCPU_8"
	//   "N1_HIGHCPU_16"
	//   "N1_HIGHCPU_32"
	//   "N1_HIGHCPU_64"
	//   "N1_HIGHCPU_96"
	//   "A2_HIGHGPU_1G"
	//   "A2_HIGHGPU_2G"
	//   "A2_HIGHGPU_4G"
	//   "A2_HIGHGPU_8G"
	//   "A2_MEGAGPU_16G"
	//   "A2_ULTRAGPU_1G"
	//   "A2_ULTRAGPU_2G"
	//   "A2_ULTRAGPU_4G"
	//   "A2_ULTRAGPU_8G"
	//   "A3_HIGHGPU_8G"
	//   "E2_STANDARD_2"
	//   "E2_STANDARD_4"
	//   "E2_STANDARD_8"
	//   "E2_STANDARD_16"
	//   "E2_STANDARD_32"
	//   "E2_HIGHMEM_2"
	//   "E2_HIGHMEM_4"
	//   "E2_HIGHMEM_8"
	//   "E2_HIGHMEM_16"
	//   "E2_HIGHCPU_2"
	//   "E2_HIGHCPU_4"
	//   "E2_HIGHCPU_8"
	//   "E2_HIGHCPU_16"
	//   "E2_HIGHCPU_32"
	//   "N2_STANDARD_2"
	//   "N2_STANDARD_4"
	//   "N2_STANDARD_8"
	//   "N2_STANDARD_16"
	//   "N2_STANDARD_32"
	//   "N2_STANDARD_48"
	//   "N2_STANDARD_64"
	//   "N2_STANDARD_80"
	//   "N2_STANDARD_96"
	//   "N2_STANDARD_128"
	//   "N2_HIGHMEM_2"
	//   "N2_HIGHMEM_4"
	//   "N2_HIGHMEM_8"
	//   "N2_HIGHMEM_16"
	//   "N2_HIGHMEM_32"
	//   "N2_HIGHMEM_48"
	//   "N2_HIGHMEM_64"
	//   "N2_HIGHMEM_80"
	//   "N2_HIGHMEM_96"
	//   "N2_HIGHMEM_128"
	//   "N2_HIGHCPU_2"
	//   "N2_HIGHCPU_4"
	//   "N2_HIGHCPU_8"
	//   "N2_HIGHCPU_16"
	//   "N2_HIGHCPU_32"
	//   "N2_HIGHCPU_48"
	//   "N2_HIGHCPU_64"
	//   "N2_HIGHCPU_80"
	//   "N2_HIGHCPU_96"
	//   "N2D_STANDARD_2"
	//   "N2D_STANDARD_4"
	//   "N2D_STANDARD_8"
	//   "N2D_STANDARD_16"
	//   "N2D_STANDARD_32"
	//   "N2D_STANDARD_48"
	//   "N2D_STANDARD_64"
	//   "N2D_STANDARD_80"
	//   "N2D_STANDARD_96"
	//   "N2D_STANDARD_128"
	//   "N2D_STANDARD_224"
	//   "N2D_HIGHMEM_2"
	//   "N2D_HIGHMEM_4"
	//   "N2D_HIGHMEM_8"
	//   "N2D_HIGHMEM_16"
	//   "N2D_HIGHMEM_32"
	//   "N2D_HIGHMEM_48"
	//   "N2D_HIGHMEM_64"
	//   "N2D_HIGHMEM_80"
	//   "N2D_HIGHMEM_96"
	//   "N2D_HIGHCPU_2"
	//   "N2D_HIGHCPU_4"
	//   "N2D_HIGHCPU_8"
	//   "N2D_HIGHCPU_16"
	//   "N2D_HIGHCPU_32"
	//   "N2D_HIGHCPU_48"
	//   "N2D_HIGHCPU_64"
	//   "N2D_HIGHCPU_80"
	//   "N2D_HIGHCPU_96"
	//   "N2D_HIGHCPU_128"
	//   "N2D_HIGHCPU_224"
	//   "C2_STANDARD_4"
	//   "C2_STANDARD_8"
	//   "C2_STANDARD_16"
	//   "C2_STANDARD_30"
	//   "C2_STANDARD_60"
	//   "C2D_STANDARD_2"
	//   "C2D_STANDARD_4"
	//   "C2D_STANDARD_8"
	//   "C2D_STANDARD_16"
	//   "C2D_STANDARD_32"
	//   "C2D_STANDARD_56"
	//   "C2D_STANDARD_112"
	//   "C2D_HIGHCPU_2"
	//   "C2D_HIGHCPU_4"
	//   "C2D_HIGHCPU_8"
	//   "C2D_HIGHCPU_16"
	//   "C2D_HIGHCPU_32"
	//   "C2D_HIGHCPU_56"
	//   "C2D_HIGHCPU_112"
	//   "C2D_HIGHMEM_2"
	//   "C2D_HIGHMEM_4"
	//   "C2D_HIGHMEM_8"
	//   "C2D_HIGHMEM_16"
	//   "C2D_HIGHMEM_32"
	//   "C2D_HIGHMEM_56"
	//   "C2D_HIGHMEM_112"
	//   "G2_STANDARD_4"
	//   "G2_STANDARD_8"
	//   "G2_STANDARD_12"
	//   "G2_STANDARD_16"
	//   "G2_STANDARD_24"
	//   "G2_STANDARD_32"
	//   "G2_STANDARD_48"
	//   "G2_STANDARD_96"
	//   "C3_STANDARD_4"
	//   "C3_STANDARD_8"
	//   "C3_STANDARD_22"
	//   "C3_STANDARD_44"
	//   "C3_STANDARD_88"
	//   "C3_STANDARD_176"
	//   "C3_HIGHCPU_4"
	//   "C3_HIGHCPU_8"
	//   "C3_HIGHCPU_22"
	//   "C3_HIGHCPU_44"
	//   "C3_HIGHCPU_88"
	//   "C3_HIGHCPU_176"
	//   "C3_HIGHMEM_4"
	//   "C3_HIGHMEM_8"
	//   "C3_HIGHMEM_22"
	//   "C3_HIGHMEM_44"
	//   "C3_HIGHMEM_88"
	//   "C3_HIGHMEM_176"
	MachineSpec string `json:"machineSpec,omitempty"`

	// TrackingLabels: Billing tracking labels. They do not contain any user
	// data but only the labels set by Vertex Core Infra itself. Tracking
	// labels' keys are defined with special format: goog-[\p{Ll}\p{N}]+
	// E.g. "key": "goog-k8s-cluster-name","value": "us-east1-b4rk"
	TrackingLabels map[string]string `json:"trackingLabels,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CoreNumber") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CoreNumber") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *CpuMetric) MarshalJSON() ([]byte, error) {
	type NoMethod CpuMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type DiskMetric struct {
	// DiskType: Required. Type of Disk, e.g. REGIONAL_SSD.
	//
	// Possible values:
	//   "UNKNOWN_DISK_TYPE"
	//   "REGIONAL_SSD"
	//   "REGIONAL_STORAGE"
	//   "PD_SSD"
	//   "PD_STANDARD"
	//   "STORAGE_SNAPSHOT"
	DiskType string `json:"diskType,omitempty"`

	// GibSec: Required. Seconds of physical disk usage, e.g. 3600.
	GibSec int64 `json:"gibSec,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "DiskType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DiskType") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *DiskMetric) MarshalJSON() ([]byte, error) {
	type NoMethod DiskMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// Document: Represents the input to API methods.
type Document struct {
	// Content: The content of the input in string format. Cloud audit
	// logging exempt since it is based on user data.
	Content string `json:"content,omitempty"`

	// GcsContentUri: The Google Cloud Storage URI where the file content is
	// located. This URI must be of the form: gs://bucket_name/object_name.
	// For more details, see
	// https://cloud.google.com/storage/docs/reference-uris. NOTE: Cloud
	// Storage object versioning is not supported.
	GcsContentUri string `json:"gcsContentUri,omitempty"`

	// LanguageCode: Optional. The language of the document (if not
	// specified, the language is automatically detected). Both ISO and
	// BCP-47 language codes are accepted. Language Support
	// (https://cloud.google.com/natural-language/docs/languages) lists
	// currently supported languages for each API method. If the language
	// (either specified by the caller or automatically detected) is not
	// supported by the called API method, an `INVALID_ARGUMENT` error is
	// returned.
	LanguageCode string `json:"languageCode,omitempty"`

	// Type: Required. If the type is not set or is `TYPE_UNSPECIFIED`,
	// returns an `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - The content type is not specified.
	//   "PLAIN_TEXT" - Plain text
	//   "HTML" - HTML
	Type string `json:"type,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Content") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Content") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Document) MarshalJSON() ([]byte, error) {
	type NoMethod Document
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// Entity: Represents a phrase in the text that is a known entity, such
// as a person, an organization, or location. The API associates
// information, such as probability and mentions, with entities.
type Entity struct {
	// Mentions: The mentions of this entity in the input document. The API
	// currently supports proper noun mentions.
	Mentions []*EntityMention `json:"mentions,omitempty"`

	// Metadata: Metadata associated with the entity. For the metadata
	// associated with other entity types, see the Type table below.
	Metadata map[string]string `json:"metadata,omitempty"`

	// Name: The representative name for the entity.
	Name string `json:"name,omitempty"`

	// Sentiment: For calls to AnalyzeEntitySentiment or if
	// AnnotateTextRequest.Features.extract_entity_sentiment is set to true,
	// this field will contain the aggregate sentiment expressed for this
	// entity in the provided document.
	Sentiment *Sentiment `json:"sentiment,omitempty"`

	// Type: The entity type.
	//
	// Possible values:
	//   "UNKNOWN" - Unknown
	//   "PERSON" - Person
	//   "LOCATION" - Location
	//   "ORGANIZATION" - Organization
	//   "EVENT" - Event
	//   "WORK_OF_ART" - Artwork
	//   "CONSUMER_GOOD" - Consumer product
	//   "OTHER" - Other types of entities
	//   "PHONE_NUMBER" - Phone number The metadata lists the phone number,
	// formatted according to local convention, plus whichever additional
	// elements appear in the text: * `number` - the actual number, broken
	// down into sections as per local convention * `national_prefix` -
	// country code, if detected * `area_code` - region or area code, if
	// detected * `extension` - phone extension (to be dialed after
	// connection), if detected
	//   "ADDRESS" - Address The metadata identifies the street number and
	// locality plus whichever additional elements appear in the text: *
	// `street_number` - street number * `locality` - city or town *
	// `street_name` - street/route name, if detected * `postal_code` -
	// postal code, if detected * `country` - country, if detected *
	// `broad_region` - administrative area, such as the state, if detected
	// * `narrow_region` - smaller administrative area, such as county, if
	// detected * `sublocality` - used in Asian addresses to demark a
	// district within a city, if detected
	//   "DATE" - Date The metadata identifies the components of the date: *
	// `year` - four digit year, if detected * `month` - two digit month
	// number, if detected * `day` - two digit day number, if detected
	//   "NUMBER" - Number The metadata is the number itself.
	//   "PRICE" - Price The metadata identifies the `value` and `currency`.
	Type string `json:"type,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Mentions") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Mentions") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Entity) MarshalJSON() ([]byte, error) {
	type NoMethod Entity
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// EntityMention: Represents a mention for an entity in the text.
// Currently, proper noun mentions are supported.
type EntityMention struct {
	// Probability: Probability score associated with the entity. The score
	// shows the probability of the entity mention being the entity type.
	// The score is in (0, 1] range.
	Probability float64 `json:"probability,omitempty"`

	// Sentiment: For calls to AnalyzeEntitySentiment or if
	// AnnotateTextRequest.Features.extract_entity_sentiment is set to true,
	// this field will contain the sentiment expressed for this mention of
	// the entity in the provided document.
	Sentiment *Sentiment `json:"sentiment,omitempty"`

	// Text: The mention text.
	Text *TextSpan `json:"text,omitempty"`

	// Type: The type of the entity mention.
	//
	// Possible values:
	//   "TYPE_UNKNOWN" - Unknown
	//   "PROPER" - Proper name
	//   "COMMON" - Common noun (or noun compound)
	Type string `json:"type,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Probability") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Probability") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *EntityMention) MarshalJSON() ([]byte, error) {
	type NoMethod EntityMention
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *EntityMention) UnmarshalJSON(data []byte) error {
	type NoMethod EntityMention
	var s1 struct {
		Probability gensupport.JSONFloat64 `json:"probability"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Probability = float64(s1.Probability)
	return nil
}

type GpuMetric struct {
	// GpuSec: Required. Seconds of GPU usage, e.g. 3600.
	GpuSec int64 `json:"gpuSec,omitempty,string"`

	// GpuType: Required. Type of GPU, e.g. NVIDIA_TESLA_V100.
	//
	// Possible values:
	//   "UNKNOWN_GPU_TYPE"
	//   "NVIDIA_TESLA_A100"
	//   "NVIDIA_A100_80GB"
	//   "NVIDIA_TESLA_K80"
	//   "NVIDIA_L4"
	//   "NVIDIA_TESLA_P100"
	//   "NVIDIA_TESLA_P4"
	//   "NVIDIA_TESLA_T4"
	//   "NVIDIA_TESLA_V100"
	//   "NVIDIA_H100_80GB"
	GpuType string `json:"gpuType,omitempty"`

	// MachineSpec: Required. Machine spec, e.g. N1_STANDARD_4.
	//
	// Possible values:
	//   "UNKNOWN_MACHINE_SPEC"
	//   "N1_STANDARD_2"
	//   "N1_STANDARD_4"
	//   "N1_STANDARD_8"
	//   "N1_STANDARD_16"
	//   "N1_STANDARD_32"
	//   "N1_STANDARD_64"
	//   "N1_STANDARD_96"
	//   "N1_HIGHMEM_2"
	//   "N1_HIGHMEM_4"
	//   "N1_HIGHMEM_8"
	//   "N1_HIGHMEM_16"
	//   "N1_HIGHMEM_32"
	//   "N1_HIGHMEM_64"
	//   "N1_HIGHMEM_96"
	//   "N1_HIGHCPU_2"
	//   "N1_HIGHCPU_4"
	//   "N1_HIGHCPU_8"
	//   "N1_HIGHCPU_16"
	//   "N1_HIGHCPU_32"
	//   "N1_HIGHCPU_64"
	//   "N1_HIGHCPU_96"
	//   "A2_HIGHGPU_1G"
	//   "A2_HIGHGPU_2G"
	//   "A2_HIGHGPU_4G"
	//   "A2_HIGHGPU_8G"
	//   "A2_MEGAGPU_16G"
	//   "A2_ULTRAGPU_1G"
	//   "A2_ULTRAGPU_2G"
	//   "A2_ULTRAGPU_4G"
	//   "A2_ULTRAGPU_8G"
	//   "A3_HIGHGPU_8G"
	//   "E2_STANDARD_2"
	//   "E2_STANDARD_4"
	//   "E2_STANDARD_8"
	//   "E2_STANDARD_16"
	//   "E2_STANDARD_32"
	//   "E2_HIGHMEM_2"
	//   "E2_HIGHMEM_4"
	//   "E2_HIGHMEM_8"
	//   "E2_HIGHMEM_16"
	//   "E2_HIGHCPU_2"
	//   "E2_HIGHCPU_4"
	//   "E2_HIGHCPU_8"
	//   "E2_HIGHCPU_16"
	//   "E2_HIGHCPU_32"
	//   "N2_STANDARD_2"
	//   "N2_STANDARD_4"
	//   "N2_STANDARD_8"
	//   "N2_STANDARD_16"
	//   "N2_STANDARD_32"
	//   "N2_STANDARD_48"
	//   "N2_STANDARD_64"
	//   "N2_STANDARD_80"
	//   "N2_STANDARD_96"
	//   "N2_STANDARD_128"
	//   "N2_HIGHMEM_2"
	//   "N2_HIGHMEM_4"
	//   "N2_HIGHMEM_8"
	//   "N2_HIGHMEM_16"
	//   "N2_HIGHMEM_32"
	//   "N2_HIGHMEM_48"
	//   "N2_HIGHMEM_64"
	//   "N2_HIGHMEM_80"
	//   "N2_HIGHMEM_96"
	//   "N2_HIGHMEM_128"
	//   "N2_HIGHCPU_2"
	//   "N2_HIGHCPU_4"
	//   "N2_HIGHCPU_8"
	//   "N2_HIGHCPU_16"
	//   "N2_HIGHCPU_32"
	//   "N2_HIGHCPU_48"
	//   "N2_HIGHCPU_64"
	//   "N2_HIGHCPU_80"
	//   "N2_HIGHCPU_96"
	//   "N2D_STANDARD_2"
	//   "N2D_STANDARD_4"
	//   "N2D_STANDARD_8"
	//   "N2D_STANDARD_16"
	//   "N2D_STANDARD_32"
	//   "N2D_STANDARD_48"
	//   "N2D_STANDARD_64"
	//   "N2D_STANDARD_80"
	//   "N2D_STANDARD_96"
	//   "N2D_STANDARD_128"
	//   "N2D_STANDARD_224"
	//   "N2D_HIGHMEM_2"
	//   "N2D_HIGHMEM_4"
	//   "N2D_HIGHMEM_8"
	//   "N2D_HIGHMEM_16"
	//   "N2D_HIGHMEM_32"
	//   "N2D_HIGHMEM_48"
	//   "N2D_HIGHMEM_64"
	//   "N2D_HIGHMEM_80"
	//   "N2D_HIGHMEM_96"
	//   "N2D_HIGHCPU_2"
	//   "N2D_HIGHCPU_4"
	//   "N2D_HIGHCPU_8"
	//   "N2D_HIGHCPU_16"
	//   "N2D_HIGHCPU_32"
	//   "N2D_HIGHCPU_48"
	//   "N2D_HIGHCPU_64"
	//   "N2D_HIGHCPU_80"
	//   "N2D_HIGHCPU_96"
	//   "N2D_HIGHCPU_128"
	//   "N2D_HIGHCPU_224"
	//   "C2_STANDARD_4"
	//   "C2_STANDARD_8"
	//   "C2_STANDARD_16"
	//   "C2_STANDARD_30"
	//   "C2_STANDARD_60"
	//   "C2D_STANDARD_2"
	//   "C2D_STANDARD_4"
	//   "C2D_STANDARD_8"
	//   "C2D_STANDARD_16"
	//   "C2D_STANDARD_32"
	//   "C2D_STANDARD_56"
	//   "C2D_STANDARD_112"
	//   "C2D_HIGHCPU_2"
	//   "C2D_HIGHCPU_4"
	//   "C2D_HIGHCPU_8"
	//   "C2D_HIGHCPU_16"
	//   "C2D_HIGHCPU_32"
	//   "C2D_HIGHCPU_56"
	//   "C2D_HIGHCPU_112"
	//   "C2D_HIGHMEM_2"
	//   "C2D_HIGHMEM_4"
	//   "C2D_HIGHMEM_8"
	//   "C2D_HIGHMEM_16"
	//   "C2D_HIGHMEM_32"
	//   "C2D_HIGHMEM_56"
	//   "C2D_HIGHMEM_112"
	//   "G2_STANDARD_4"
	//   "G2_STANDARD_8"
	//   "G2_STANDARD_12"
	//   "G2_STANDARD_16"
	//   "G2_STANDARD_24"
	//   "G2_STANDARD_32"
	//   "G2_STANDARD_48"
	//   "G2_STANDARD_96"
	//   "C3_STANDARD_4"
	//   "C3_STANDARD_8"
	//   "C3_STANDARD_22"
	//   "C3_STANDARD_44"
	//   "C3_STANDARD_88"
	//   "C3_STANDARD_176"
	//   "C3_HIGHCPU_4"
	//   "C3_HIGHCPU_8"
	//   "C3_HIGHCPU_22"
	//   "C3_HIGHCPU_44"
	//   "C3_HIGHCPU_88"
	//   "C3_HIGHCPU_176"
	//   "C3_HIGHMEM_4"
	//   "C3_HIGHMEM_8"
	//   "C3_HIGHMEM_22"
	//   "C3_HIGHMEM_44"
	//   "C3_HIGHMEM_88"
	//   "C3_HIGHMEM_176"
	MachineSpec string `json:"machineSpec,omitempty"`

	// TrackingLabels: Billing tracking labels. They do not contain any user
	// data but only the labels set by Vertex Core Infra itself. Tracking
	// labels' keys are defined with special format: goog-[\p{Ll}\p{N}]+
	// E.g. "key": "goog-k8s-cluster-name","value": "us-east1-b4rk"
	TrackingLabels map[string]string `json:"trackingLabels,omitempty"`

	// ForceSendFields is a list of field names (e.g. "GpuSec") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "GpuSec") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GpuMetric) MarshalJSON() ([]byte, error) {
	type NoMethod GpuMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// InfraUsage: Infra Usage of billing metrics. Next ID: 6
type InfraUsage struct {
	// CpuMetrics: Aggregated core metrics since requested start_time.
	CpuMetrics []*CpuMetric `json:"cpuMetrics,omitempty"`

	// DiskMetrics: Aggregated persistent disk metrics since requested
	// start_time.
	DiskMetrics []*DiskMetric `json:"diskMetrics,omitempty"`

	// GpuMetrics: Aggregated gpu metrics since requested start_time.
	GpuMetrics []*GpuMetric `json:"gpuMetrics,omitempty"`

	// RamMetrics: Aggregated ram metrics since requested start_time.
	RamMetrics []*RamMetric `json:"ramMetrics,omitempty"`

	// TpuMetrics: Aggregated tpu metrics since requested start_time.
	TpuMetrics []*TpuMetric `json:"tpuMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CpuMetrics") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CpuMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *InfraUsage) MarshalJSON() ([]byte, error) {
	type NoMethod InfraUsage
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// ModerateTextRequest: The document moderation request message.
type ModerateTextRequest struct {
	// Document: Required. Input document.
	Document *Document `json:"document,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Document") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *ModerateTextRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ModerateTextRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// ModerateTextResponse: The document moderation response message.
type ModerateTextResponse struct {
	// LanguageCode: The language of the text, which will be the same as the
	// language specified in the request or, if not specified, the
	// automatically-detected language. See Document.language field for more
	// details.
	LanguageCode string `json:"languageCode,omitempty"`

	// LanguageSupported: Whether the language is officially supported. The
	// API may still return a response when the language is not supported,
	// but it is on a best effort basis.
	LanguageSupported bool `json:"languageSupported,omitempty"`

	// ModerationCategories: Harmful and sensitive categories representing
	// the input document.
	ModerationCategories []*ClassificationCategory `json:"moderationCategories,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "LanguageCode") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *ModerateTextResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ModerateTextResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type RamMetric struct {
	// GibSec: Required. VM memory in Gigabyte second, e.g. 3600. Using
	// int64 type to match billing metrics definition.
	GibSec int64 `json:"gibSec,omitempty,string"`

	// MachineSpec: Required. Machine spec, e.g. N1_STANDARD_4.
	//
	// Possible values:
	//   "UNKNOWN_MACHINE_SPEC"
	//   "N1_STANDARD_2"
	//   "N1_STANDARD_4"
	//   "N1_STANDARD_8"
	//   "N1_STANDARD_16"
	//   "N1_STANDARD_32"
	//   "N1_STANDARD_64"
	//   "N1_STANDARD_96"
	//   "N1_HIGHMEM_2"
	//   "N1_HIGHMEM_4"
	//   "N1_HIGHMEM_8"
	//   "N1_HIGHMEM_16"
	//   "N1_HIGHMEM_32"
	//   "N1_HIGHMEM_64"
	//   "N1_HIGHMEM_96"
	//   "N1_HIGHCPU_2"
	//   "N1_HIGHCPU_4"
	//   "N1_HIGHCPU_8"
	//   "N1_HIGHCPU_16"
	//   "N1_HIGHCPU_32"
	//   "N1_HIGHCPU_64"
	//   "N1_HIGHCPU_96"
	//   "A2_HIGHGPU_1G"
	//   "A2_HIGHGPU_2G"
	//   "A2_HIGHGPU_4G"
	//   "A2_HIGHGPU_8G"
	//   "A2_MEGAGPU_16G"
	//   "A2_ULTRAGPU_1G"
	//   "A2_ULTRAGPU_2G"
	//   "A2_ULTRAGPU_4G"
	//   "A2_ULTRAGPU_8G"
	//   "A3_HIGHGPU_8G"
	//   "E2_STANDARD_2"
	//   "E2_STANDARD_4"
	//   "E2_STANDARD_8"
	//   "E2_STANDARD_16"
	//   "E2_STANDARD_32"
	//   "E2_HIGHMEM_2"
	//   "E2_HIGHMEM_4"
	//   "E2_HIGHMEM_8"
	//   "E2_HIGHMEM_16"
	//   "E2_HIGHCPU_2"
	//   "E2_HIGHCPU_4"
	//   "E2_HIGHCPU_8"
	//   "E2_HIGHCPU_16"
	//   "E2_HIGHCPU_32"
	//   "N2_STANDARD_2"
	//   "N2_STANDARD_4"
	//   "N2_STANDARD_8"
	//   "N2_STANDARD_16"
	//   "N2_STANDARD_32"
	//   "N2_STANDARD_48"
	//   "N2_STANDARD_64"
	//   "N2_STANDARD_80"
	//   "N2_STANDARD_96"
	//   "N2_STANDARD_128"
	//   "N2_HIGHMEM_2"
	//   "N2_HIGHMEM_4"
	//   "N2_HIGHMEM_8"
	//   "N2_HIGHMEM_16"
	//   "N2_HIGHMEM_32"
	//   "N2_HIGHMEM_48"
	//   "N2_HIGHMEM_64"
	//   "N2_HIGHMEM_80"
	//   "N2_HIGHMEM_96"
	//   "N2_HIGHMEM_128"
	//   "N2_HIGHCPU_2"
	//   "N2_HIGHCPU_4"
	//   "N2_HIGHCPU_8"
	//   "N2_HIGHCPU_16"
	//   "N2_HIGHCPU_32"
	//   "N2_HIGHCPU_48"
	//   "N2_HIGHCPU_64"
	//   "N2_HIGHCPU_80"
	//   "N2_HIGHCPU_96"
	//   "N2D_STANDARD_2"
	//   "N2D_STANDARD_4"
	//   "N2D_STANDARD_8"
	//   "N2D_STANDARD_16"
	//   "N2D_STANDARD_32"
	//   "N2D_STANDARD_48"
	//   "N2D_STANDARD_64"
	//   "N2D_STANDARD_80"
	//   "N2D_STANDARD_96"
	//   "N2D_STANDARD_128"
	//   "N2D_STANDARD_224"
	//   "N2D_HIGHMEM_2"
	//   "N2D_HIGHMEM_4"
	//   "N2D_HIGHMEM_8"
	//   "N2D_HIGHMEM_16"
	//   "N2D_HIGHMEM_32"
	//   "N2D_HIGHMEM_48"
	//   "N2D_HIGHMEM_64"
	//   "N2D_HIGHMEM_80"
	//   "N2D_HIGHMEM_96"
	//   "N2D_HIGHCPU_2"
	//   "N2D_HIGHCPU_4"
	//   "N2D_HIGHCPU_8"
	//   "N2D_HIGHCPU_16"
	//   "N2D_HIGHCPU_32"
	//   "N2D_HIGHCPU_48"
	//   "N2D_HIGHCPU_64"
	//   "N2D_HIGHCPU_80"
	//   "N2D_HIGHCPU_96"
	//   "N2D_HIGHCPU_128"
	//   "N2D_HIGHCPU_224"
	//   "C2_STANDARD_4"
	//   "C2_STANDARD_8"
	//   "C2_STANDARD_16"
	//   "C2_STANDARD_30"
	//   "C2_STANDARD_60"
	//   "C2D_STANDARD_2"
	//   "C2D_STANDARD_4"
	//   "C2D_STANDARD_8"
	//   "C2D_STANDARD_16"
	//   "C2D_STANDARD_32"
	//   "C2D_STANDARD_56"
	//   "C2D_STANDARD_112"
	//   "C2D_HIGHCPU_2"
	//   "C2D_HIGHCPU_4"
	//   "C2D_HIGHCPU_8"
	//   "C2D_HIGHCPU_16"
	//   "C2D_HIGHCPU_32"
	//   "C2D_HIGHCPU_56"
	//   "C2D_HIGHCPU_112"
	//   "C2D_HIGHMEM_2"
	//   "C2D_HIGHMEM_4"
	//   "C2D_HIGHMEM_8"
	//   "C2D_HIGHMEM_16"
	//   "C2D_HIGHMEM_32"
	//   "C2D_HIGHMEM_56"
	//   "C2D_HIGHMEM_112"
	//   "G2_STANDARD_4"
	//   "G2_STANDARD_8"
	//   "G2_STANDARD_12"
	//   "G2_STANDARD_16"
	//   "G2_STANDARD_24"
	//   "G2_STANDARD_32"
	//   "G2_STANDARD_48"
	//   "G2_STANDARD_96"
	//   "C3_STANDARD_4"
	//   "C3_STANDARD_8"
	//   "C3_STANDARD_22"
	//   "C3_STANDARD_44"
	//   "C3_STANDARD_88"
	//   "C3_STANDARD_176"
	//   "C3_HIGHCPU_4"
	//   "C3_HIGHCPU_8"
	//   "C3_HIGHCPU_22"
	//   "C3_HIGHCPU_44"
	//   "C3_HIGHCPU_88"
	//   "C3_HIGHCPU_176"
	//   "C3_HIGHMEM_4"
	//   "C3_HIGHMEM_8"
	//   "C3_HIGHMEM_22"
	//   "C3_HIGHMEM_44"
	//   "C3_HIGHMEM_88"
	//   "C3_HIGHMEM_176"
	MachineSpec string `json:"machineSpec,omitempty"`

	// Memories: Required. VM memory in gb.
	Memories float64 `json:"memories,omitempty"`

	// RamType: Required. Type of ram.
	//
	// Possible values:
	//   "UNKNOWN_RAM_TYPE"
	//   "A2"
	//   "A3"
	//   "C2" - COMPUTE_OPTIMIZED
	//   "C2D"
	//   "CUSTOM"
	//   "E2"
	//   "G2"
	//   "C3"
	//   "M2" - MEMORY_OPTIMIZED_UPGRADE_PREMIUM
	//   "M1" - MEMORY_OPTIMIZED
	//   "N1"
	//   "N2_CUSTOM"
	//   "N2"
	//   "N2D"
	RamType string `json:"ramType,omitempty"`

	// TrackingLabels: Billing tracking labels. They do not contain any user
	// data but only the labels set by Vertex Core Infra itself. Tracking
	// labels' keys are defined with special format: goog-[\p{Ll}\p{N}]+
	// E.g. "key": "goog-k8s-cluster-name","value": "us-east1-b4rk"
	TrackingLabels map[string]string `json:"trackingLabels,omitempty"`

	// ForceSendFields is a list of field names (e.g. "GibSec") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "GibSec") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *RamMetric) MarshalJSON() ([]byte, error) {
	type NoMethod RamMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *RamMetric) UnmarshalJSON(data []byte) error {
	type NoMethod RamMetric
	var s1 struct {
		Memories gensupport.JSONFloat64 `json:"memories"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Memories = float64(s1.Memories)
	return nil
}

// Sentence: Represents a sentence in the input document.
type Sentence struct {
	// Sentiment: For calls to AnalyzeSentiment or if
	// AnnotateTextRequest.Features.extract_document_sentiment is set to
	// true, this field will contain the sentiment for the sentence.
	Sentiment *Sentiment `json:"sentiment,omitempty"`

	// Text: The sentence text.
	Text *TextSpan `json:"text,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Sentiment") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Sentiment") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Sentence) MarshalJSON() ([]byte, error) {
	type NoMethod Sentence
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// Sentiment: Represents the feeling associated with the entire text or
// entities in the text.
type Sentiment struct {
	// Magnitude: A non-negative number in the [0, +inf) range, which
	// represents the absolute magnitude of sentiment regardless of score
	// (positive or negative).
	Magnitude float64 `json:"magnitude,omitempty"`

	// Score: Sentiment score between -1.0 (negative sentiment) and 1.0
	// (positive sentiment).
	Score float64 `json:"score,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Magnitude") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Magnitude") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Sentiment) MarshalJSON() ([]byte, error) {
	type NoMethod Sentiment
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *Sentiment) UnmarshalJSON(data []byte) error {
	type NoMethod Sentiment
	var s1 struct {
		Magnitude gensupport.JSONFloat64 `json:"magnitude"`
		Score     gensupport.JSONFloat64 `json:"score"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Magnitude = float64(s1.Magnitude)
	s.Score = float64(s1.Score)
	return nil
}

// Status: The `Status` type defines a logical error model that is
// suitable for different programming environments, including REST APIs
// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
// `Status` message contains three pieces of data: error code, error
// message, and error details. You can find out more about this error
// model and how to work with it in the API Design Guide
// (https://cloud.google.com/apis/design/errors).
type Status struct {
	// Code: The status code, which should be an enum value of
	// google.rpc.Code.
	Code int64 `json:"code,omitempty"`

	// Details: A list of messages that carry the error details. There is a
	// common set of message types for APIs to use.
	Details []googleapi.RawMessage `json:"details,omitempty"`

	// Message: A developer-facing error message, which should be in
	// English. Any user-facing error message should be localized and sent
	// in the google.rpc.Status.details field, or localized by the client.
	Message string `json:"message,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Code") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Code") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *Status) MarshalJSON() ([]byte, error) {
	type NoMethod Status
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// TextSpan: Represents a text span in the input document.
type TextSpan struct {
	// BeginOffset: The API calculates the beginning offset of the content
	// in the original document according to the EncodingType specified in
	// the API request.
	BeginOffset int64 `json:"beginOffset,omitempty"`

	// Content: The content of the text span, which is a substring of the
	// document.
	Content string `json:"content,omitempty"`

	// ForceSendFields is a list of field names (e.g. "BeginOffset") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BeginOffset") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *TextSpan) MarshalJSON() ([]byte, error) {
	type NoMethod TextSpan
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type TpuMetric struct {
	// TpuSec: Required. Seconds of TPU usage, e.g. 3600.
	TpuSec int64 `json:"tpuSec,omitempty,string"`

	// TpuType: Required. Type of TPU, e.g. TPU_V2, TPU_V3_POD.
	//
	// Possible values:
	//   "UNKNOWN_TPU_TYPE"
	//   "TPU_V2_POD"
	//   "TPU_V2"
	//   "TPU_V3_POD"
	//   "TPU_V3"
	//   "TPU_V5_LITEPOD"
	TpuType string `json:"tpuType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "TpuSec") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "TpuSec") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *TpuMetric) MarshalJSON() ([]byte, error) {
	type NoMethod TpuMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSArrayStats: The data statistics of a series of ARRAY values.
type XPSArrayStats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// MemberStats: Stats of all the values of all arrays, as if they were a
	// single long series of data. The type depends on the element type of
	// the array.
	MemberStats *XPSDataStats `json:"memberStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSArrayStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSArrayStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSBatchPredictResponse struct {
	// ExampleSet: Examples for batch prediction result. Under full API
	// implementation, results are stored in shared RecordIO of
	// AnnotatedExample protobufs, the annotations field of which is
	// populated by XPS backend.
	ExampleSet *XPSExampleSet `json:"exampleSet,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExampleSet") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExampleSet") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSBatchPredictResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSBatchPredictResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSBoundingBoxMetricsEntry: Bounding box matching model metrics for a
// single intersection-over-union threshold and multiple label match
// confidence thresholds.
type XPSBoundingBoxMetricsEntry struct {
	// ConfidenceMetricsEntries: Metrics for each label-match
	// confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.
	ConfidenceMetricsEntries []*XPSBoundingBoxMetricsEntryConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// IouThreshold: The intersection-over-union threshold value used to
	// compute this metrics entry.
	IouThreshold float64 `json:"iouThreshold,omitempty"`

	// MeanAveragePrecision: The mean average precision.
	MeanAveragePrecision float64 `json:"meanAveragePrecision,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ConfidenceMetricsEntries") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceMetricsEntries")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSBoundingBoxMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSBoundingBoxMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSBoundingBoxMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSBoundingBoxMetricsEntry
	var s1 struct {
		IouThreshold         gensupport.JSONFloat64 `json:"iouThreshold"`
		MeanAveragePrecision gensupport.JSONFloat64 `json:"meanAveragePrecision"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.IouThreshold = float64(s1.IouThreshold)
	s.MeanAveragePrecision = float64(s1.MeanAveragePrecision)
	return nil
}

// XPSBoundingBoxMetricsEntryConfidenceMetricsEntry: Metrics for a
// single confidence threshold.
type XPSBoundingBoxMetricsEntryConfidenceMetricsEntry struct {
	// ConfidenceThreshold: The confidence threshold value used to compute
	// the metrics.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// F1Score: The harmonic mean of recall and precision.
	F1Score float64 `json:"f1Score,omitempty"`

	// Precision: Precision for the given confidence threshold.
	Precision float64 `json:"precision,omitempty"`

	// Recall: Recall for the given confidence threshold.
	Recall float64 `json:"recall,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSBoundingBoxMetricsEntryConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSBoundingBoxMetricsEntryConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSBoundingBoxMetricsEntryConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSBoundingBoxMetricsEntryConfidenceMetricsEntry
	var s1 struct {
		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
		F1Score             gensupport.JSONFloat64 `json:"f1Score"`
		Precision           gensupport.JSONFloat64 `json:"precision"`
		Recall              gensupport.JSONFloat64 `json:"recall"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.F1Score = float64(s1.F1Score)
	s.Precision = float64(s1.Precision)
	s.Recall = float64(s1.Recall)
	return nil
}

// XPSCategoryStats: The data statistics of a series of CATEGORY values.
type XPSCategoryStats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// TopCategoryStats: The statistics of the top 20 CATEGORY values,
	// ordered by CategoryStats.SingleCategoryStats.count.
	TopCategoryStats []*XPSCategoryStatsSingleCategoryStats `json:"topCategoryStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSCategoryStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSCategoryStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSCategoryStatsSingleCategoryStats: The statistics of a single
// CATEGORY value.
type XPSCategoryStatsSingleCategoryStats struct {
	// Count: The number of occurrences of this value in the series.
	Count int64 `json:"count,omitempty,string"`

	// Value: The CATEGORY value.
	Value string `json:"value,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Count") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSCategoryStatsSingleCategoryStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSCategoryStatsSingleCategoryStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSClassificationEvaluationMetrics: Model evaluation metrics for
// classification problems. It can be used for image and video
// classification. Next tag: 9.
type XPSClassificationEvaluationMetrics struct {
	// AuPrc: The Area under precision recall curve metric.
	AuPrc float64 `json:"auPrc,omitempty"`

	// AuRoc: The Area Under Receiver Operating Characteristic curve metric.
	// Micro-averaged for the overall evaluation.
	AuRoc float64 `json:"auRoc,omitempty"`

	// BaseAuPrc: The Area under precision recall curve metric based on
	// priors.
	BaseAuPrc float64 `json:"baseAuPrc,omitempty"`

	// ConfidenceMetricsEntries: Metrics that have confidence thresholds.
	// Precision-recall curve can be derived from it.
	ConfidenceMetricsEntries []*XPSConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// ConfusionMatrix: Confusion matrix of the evaluation. Only set for
	// MULTICLASS classification problems where number of annotation specs
	// is no more than 10. Only set for model level evaluation, not for
	// evaluation per label.
	ConfusionMatrix *XPSConfusionMatrix `json:"confusionMatrix,omitempty"`

	// EvaluatedExamplesCount: The number of examples used for model
	// evaluation.
	EvaluatedExamplesCount int64 `json:"evaluatedExamplesCount,omitempty"`

	// LogLoss: The Log Loss metric.
	LogLoss float64 `json:"logLoss,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AuPrc") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AuPrc") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSClassificationEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSClassificationEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSClassificationEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSClassificationEvaluationMetrics
	var s1 struct {
		AuPrc     gensupport.JSONFloat64 `json:"auPrc"`
		AuRoc     gensupport.JSONFloat64 `json:"auRoc"`
		BaseAuPrc gensupport.JSONFloat64 `json:"baseAuPrc"`
		LogLoss   gensupport.JSONFloat64 `json:"logLoss"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AuPrc = float64(s1.AuPrc)
	s.AuRoc = float64(s1.AuRoc)
	s.BaseAuPrc = float64(s1.BaseAuPrc)
	s.LogLoss = float64(s1.LogLoss)
	return nil
}

// XPSColorMap: Map from color to display name. Will only be used by
// Image Segmentation for uCAIP.
type XPSColorMap struct {
	// AnnotationSpecIdToken: Should be used during training.
	AnnotationSpecIdToken string `json:"annotationSpecIdToken,omitempty"`

	// Color: This type is deprecated in favor of the IntColor below. This
	// is because google.type.Color represent color has a float which
	// semantically does not reflect discrete classes/categories concept.
	// Moreover, to handle it well we need to have some tolerance when
	// converting to a discretized color. As such, the recommendation is to
	// have API surface still use google.type.Color while internally
	// IntColor is used.
	Color *Color `json:"color,omitempty"`

	// DisplayName: Should be used during preprocessing.
	DisplayName string `json:"displayName,omitempty"`

	IntColor *XPSColorMapIntColor `json:"intColor,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "AnnotationSpecIdToken") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AnnotationSpecIdToken") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSColorMap) MarshalJSON() ([]byte, error) {
	type NoMethod XPSColorMap
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSColorMapIntColor: RGB color and each channel is represented by an
// integer.
type XPSColorMapIntColor struct {
	// Blue: The value should be in range of [0, 255].
	Blue int64 `json:"blue,omitempty"`

	// Green: The value should be in range of [0, 255].
	Green int64 `json:"green,omitempty"`

	// Red: The value should be in range of [0, 255].
	Red int64 `json:"red,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Blue") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Blue") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSColorMapIntColor) MarshalJSON() ([]byte, error) {
	type NoMethod XPSColorMapIntColor
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSColumnSpec struct {
	// ColumnId: The unique id of the column. When Preprocess, the Tables BE
	// will popuate the order id of the column, which reflects the order of
	// the column inside the table, i.e. 0 means the first column in the
	// table, N-1 means the last column. AutoML BE will persist this order
	// id in Spanner and set the order id here when calling
	// RefreshTablesStats and Train. Note: it's different than the
	// column_spec_id that is generated in AutoML BE.
	ColumnId int64 `json:"columnId,omitempty"`

	// DataStats: The data stats of the column. It's outputed in
	// RefreshTablesStats and a required input for Train.
	DataStats *XPSDataStats `json:"dataStats,omitempty"`

	// DataType: The data type of the column. It's outputed in Preprocess
	// rpc and a required input for RefreshTablesStats and Train.
	DataType *XPSDataType `json:"dataType,omitempty"`

	// DisplayName: The display name of the column. It's outputed in
	// Preprocess and a required input for RefreshTablesStats and Train.
	DisplayName string `json:"displayName,omitempty"`

	ForecastingMetadata *XPSColumnSpecForecastingMetadata `json:"forecastingMetadata,omitempty"`

	// TopCorrelatedColumns: It's outputed in RefreshTablesStats, and a
	// required input in Train.
	TopCorrelatedColumns []*XPSColumnSpecCorrelatedColumn `json:"topCorrelatedColumns,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ColumnId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSColumnSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSColumnSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSColumnSpecCorrelatedColumn: Identifies a table's column, and its
// correlation with the column this ColumnSpec describes.
type XPSColumnSpecCorrelatedColumn struct {
	ColumnId int64 `json:"columnId,omitempty"`

	CorrelationStats *XPSCorrelationStats `json:"correlationStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ColumnId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSColumnSpecCorrelatedColumn) MarshalJSON() ([]byte, error) {
	type NoMethod XPSColumnSpecCorrelatedColumn
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSColumnSpecForecastingMetadata:
// ======================================================================
// ===== # The fields below are used exclusively for Forecasting.
type XPSColumnSpecForecastingMetadata struct {
	// ColumnType: The type of the column for FORECASTING model training
	// purposes.
	//
	// Possible values:
	//   "COLUMN_TYPE_UNSPECIFIED" - An un-set value of this enum.
	//   "KEY" - Key columns are used to identify timeseries.
	//   "KEY_METADATA" - This column contains information describing static
	// properties of the entities identified by the key column(s) (e.g.
	// city's ZIP code).
	//   "TIME_SERIES_AVAILABLE_PAST_ONLY" - This column contains
	// information for the given entity, at any time poinrt, they are only
	// available in the time series before.
	//   "TIME_SERIES_AVAILABLE_PAST_AND_FUTURE" - This column contains
	// information for the given entity is known both for the past and the
	// sufficiently far future.
	ColumnType string `json:"columnType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ColumnType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnType") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSColumnSpecForecastingMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSColumnSpecForecastingMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSCommonStats: Common statistics for a column with a specified data
// type.
type XPSCommonStats struct {
	DistinctValueCount int64 `json:"distinctValueCount,omitempty,string"`

	NullValueCount int64 `json:"nullValueCount,omitempty,string"`

	ValidValueCount int64 `json:"validValueCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "DistinctValueCount")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DistinctValueCount") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSCommonStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSCommonStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSConfidenceMetricsEntry: ConfidenceMetricsEntry includes generic
// precision, recall, f1 score etc. Next tag: 16.
type XPSConfidenceMetricsEntry struct {
	// ConfidenceThreshold: Metrics are computed with an assumption that the
	// model never return predictions with score lower than this value.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// F1Score: The harmonic mean of recall and precision.
	F1Score float64 `json:"f1Score,omitempty"`

	// F1ScoreAt1: The harmonic mean of recall_at1 and precision_at1.
	F1ScoreAt1 float64 `json:"f1ScoreAt1,omitempty"`

	// FalseNegativeCount: The number of ground truth labels that are not
	// matched by a model created label.
	FalseNegativeCount int64 `json:"falseNegativeCount,omitempty,string"`

	// FalsePositiveCount: The number of model created labels that do not
	// match a ground truth label.
	FalsePositiveCount int64 `json:"falsePositiveCount,omitempty,string"`

	// FalsePositiveRate: False Positive Rate for the given confidence
	// threshold.
	FalsePositiveRate float64 `json:"falsePositiveRate,omitempty"`

	// FalsePositiveRateAt1: The False Positive Rate when only considering
	// the label that has the highest prediction score and not below the
	// confidence threshold for each example.
	FalsePositiveRateAt1 float64 `json:"falsePositiveRateAt1,omitempty"`

	// PositionThreshold: Metrics are computed with an assumption that the
	// model always returns at most this many predictions (ordered by their
	// score, descendingly), but they all still need to meet the
	// confidence_threshold.
	PositionThreshold int64 `json:"positionThreshold,omitempty"`

	// Precision: Precision for the given confidence threshold.
	Precision float64 `json:"precision,omitempty"`

	// PrecisionAt1: The precision when only considering the label that has
	// the highest prediction score and not below the confidence threshold
	// for each example.
	PrecisionAt1 float64 `json:"precisionAt1,omitempty"`

	// Recall: Recall (true positive rate) for the given confidence
	// threshold.
	Recall float64 `json:"recall,omitempty"`

	// RecallAt1: The recall (true positive rate) when only considering the
	// label that has the highest prediction score and not below the
	// confidence threshold for each example.
	RecallAt1 float64 `json:"recallAt1,omitempty"`

	// TrueNegativeCount: The number of labels that were not created by the
	// model, but if they would, they would not match a ground truth label.
	TrueNegativeCount int64 `json:"trueNegativeCount,omitempty,string"`

	// TruePositiveCount: The number of model created labels that match a
	// ground truth label.
	TruePositiveCount int64 `json:"truePositiveCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSConfidenceMetricsEntry
	var s1 struct {
		ConfidenceThreshold  gensupport.JSONFloat64 `json:"confidenceThreshold"`
		F1Score              gensupport.JSONFloat64 `json:"f1Score"`
		F1ScoreAt1           gensupport.JSONFloat64 `json:"f1ScoreAt1"`
		FalsePositiveRate    gensupport.JSONFloat64 `json:"falsePositiveRate"`
		FalsePositiveRateAt1 gensupport.JSONFloat64 `json:"falsePositiveRateAt1"`
		Precision            gensupport.JSONFloat64 `json:"precision"`
		PrecisionAt1         gensupport.JSONFloat64 `json:"precisionAt1"`
		Recall               gensupport.JSONFloat64 `json:"recall"`
		RecallAt1            gensupport.JSONFloat64 `json:"recallAt1"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.F1Score = float64(s1.F1Score)
	s.F1ScoreAt1 = float64(s1.F1ScoreAt1)
	s.FalsePositiveRate = float64(s1.FalsePositiveRate)
	s.FalsePositiveRateAt1 = float64(s1.FalsePositiveRateAt1)
	s.Precision = float64(s1.Precision)
	s.PrecisionAt1 = float64(s1.PrecisionAt1)
	s.Recall = float64(s1.Recall)
	s.RecallAt1 = float64(s1.RecallAt1)
	return nil
}

// XPSConfusionMatrix: Confusion matrix of the model running the
// classification.
type XPSConfusionMatrix struct {
	// AnnotationSpecIdToken: For the following three repeated fields, only
	// one is intended to be set. annotation_spec_id_token is preferable to
	// be set. ID tokens of the annotation specs used in the confusion
	// matrix.
	AnnotationSpecIdToken []string `json:"annotationSpecIdToken,omitempty"`

	// Category: Category (mainly for segmentation). Set only for image
	// segmentation models. Note: uCAIP Image Segmentation should use
	// annotation_spec_id_token.
	Category []int64 `json:"category,omitempty"`

	// Row: Rows in the confusion matrix. The number of rows is equal to the
	// size of `annotation_spec_id_token`. `row[i].value[j]` is the number
	// of examples that have ground truth of the
	// `annotation_spec_id_token[i]` and are predicted as
	// `annotation_spec_id_token[j]` by the model being evaluated.
	Row []*XPSConfusionMatrixRow `json:"row,omitempty"`

	// SentimentLabel: Sentiment labels used in the confusion matrix. Set
	// only for text sentiment models. For AutoML Text Revamp, use
	// `annotation_spec_id_token` instead and leave this field empty.
	SentimentLabel []int64 `json:"sentimentLabel,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "AnnotationSpecIdToken") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AnnotationSpecIdToken") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSConfusionMatrix) MarshalJSON() ([]byte, error) {
	type NoMethod XPSConfusionMatrix
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSConfusionMatrixRow: A row in the confusion matrix.
type XPSConfusionMatrixRow struct {
	// Count: Same as above except intended to represent other counts (for
	// e.g. for segmentation this is pixel count). NOTE(params): Only
	// example_count or count is set (oneoff does not support repeated
	// fields unless they are embedded inside another message).
	Count googleapi.Int64s `json:"count,omitempty"`

	// ExampleCount: Value of the specific cell in the confusion matrix. The
	// number of values each row has (i.e. the length of the row) is equal
	// to the length of the annotation_spec_id_token field.
	ExampleCount []int64 `json:"exampleCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Count") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSConfusionMatrixRow) MarshalJSON() ([]byte, error) {
	type NoMethod XPSConfusionMatrixRow
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSCoreMlFormat: A model format used for iOS mobile devices.
type XPSCoreMlFormat struct {
}

// XPSCorrelationStats: A correlation statistics between two series of
// DataType values. The series may have differing DataType-s, but within
// a single series the DataType must be the same.
type XPSCorrelationStats struct {
	// CramersV: The correlation value using the Cramer's V measure.
	CramersV float64 `json:"cramersV,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CramersV") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CramersV") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSCorrelationStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSCorrelationStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSCorrelationStats) UnmarshalJSON(data []byte) error {
	type NoMethod XPSCorrelationStats
	var s1 struct {
		CramersV gensupport.JSONFloat64 `json:"cramersV"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.CramersV = float64(s1.CramersV)
	return nil
}

// XPSDataErrors: Different types of errors and the stats associatesd
// with each error.
type XPSDataErrors struct {
	// Count: Number of records having errors associated with the enum.
	Count int64 `json:"count,omitempty"`

	// ErrorType: Type of the error.
	//
	// Possible values:
	//   "ERROR_TYPE_UNSPECIFIED" - Not specified.
	//   "UNSUPPORTED_AUDIO_FORMAT" - Audio format not in the formats by
	// cloud-speech AutoML. Currently only wav and flac file formats are
	// supported.
	//   "FILE_EXTENSION_MISMATCH_WITH_AUDIO_FORMAT" - File format differnt
	// from what is specified in the file name extension.
	//   "FILE_TOO_LARGE" - File too large. Maximum allowed size is 50 MB.
	//   "MISSING_TRANSCRIPTION" - Transcript is missing.
	ErrorType string `json:"errorType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Count") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSDataErrors) MarshalJSON() ([]byte, error) {
	type NoMethod XPSDataErrors
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSDataStats: The data statistics of a series of values that share
// the same DataType.
type XPSDataStats struct {
	// ArrayStats: The statistics for ARRAY DataType.
	ArrayStats *XPSArrayStats `json:"arrayStats,omitempty"`

	// CategoryStats: The statistics for CATEGORY DataType.
	CategoryStats *XPSCategoryStats `json:"categoryStats,omitempty"`

	// DistinctValueCount: The number of distinct values.
	DistinctValueCount int64 `json:"distinctValueCount,omitempty,string"`

	// Float64Stats: The statistics for FLOAT64 DataType.
	Float64Stats *XPSFloat64Stats `json:"float64Stats,omitempty"`

	// NullValueCount: The number of values that are null.
	NullValueCount int64 `json:"nullValueCount,omitempty,string"`

	// StringStats: The statistics for STRING DataType.
	StringStats *XPSStringStats `json:"stringStats,omitempty"`

	// StructStats: The statistics for STRUCT DataType.
	StructStats *XPSStructStats `json:"structStats,omitempty"`

	// TimestampStats: The statistics for TIMESTAMP DataType.
	TimestampStats *XPSTimestampStats `json:"timestampStats,omitempty"`

	// ValidValueCount: The number of values that are valid.
	ValidValueCount int64 `json:"validValueCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ArrayStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ArrayStats") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSDataStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSDataStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSDataType: Indicated the type of data that can be stored in a
// structured data entity (e.g. a table).
type XPSDataType struct {
	// CompatibleDataTypes: The highly compatible data types to this data
	// type.
	CompatibleDataTypes []*XPSDataType `json:"compatibleDataTypes,omitempty"`

	// ListElementType: If type_code == ARRAY, then `list_element_type` is
	// the type of the elements.
	ListElementType *XPSDataType `json:"listElementType,omitempty"`

	// Nullable: If true, this DataType can also be `null`.
	Nullable bool `json:"nullable,omitempty"`

	// StructType: If type_code == STRUCT, then `struct_type` provides type
	// information for the struct's fields.
	StructType *XPSStructType `json:"structType,omitempty"`

	// TimeFormat: If type_code == TIMESTAMP then `time_format` provides the
	// format in which that time field is expressed. The time_format must be
	// written in `strftime` syntax. If time_format is not set, then the
	// default format as described on the field is used.
	TimeFormat string `json:"timeFormat,omitempty"`

	// TypeCode: Required. The TypeCode for this type.
	//
	// Possible values:
	//   "TYPE_CODE_UNSPECIFIED" - Not specified. Should not be used.
	//   "FLOAT64" - Encoded as `number`, or the strings "NaN",
	// "Infinity", or "-Infinity".
	//   "TIMESTAMP" - Must be between 0AD and 9999AD. Encoded as `string`
	// according to time_format, or, if that format is not set, then in RFC
	// 3339 `date-time` format, where `time-offset` = "Z" (e.g.
	// 1985-04-12T23:20:50.52Z).
	//   "STRING" - Encoded as `string`.
	//   "ARRAY" - Encoded as `list`, where the list elements are
	// represented according to list_element_type.
	//   "STRUCT" - Encoded as `struct`, where field values are represented
	// according to struct_type.
	//   "CATEGORY" - Values of this type are not further understood by
	// AutoML, e.g. AutoML is unable to tell the order of values (as it
	// could with FLOAT64), or is unable to say if one value contains
	// another (as it could with STRING). Encoded as `string` (bytes should
	// be base64-encoded, as described in RFC 4648, section 4).
	TypeCode string `json:"typeCode,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CompatibleDataTypes")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CompatibleDataTypes") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSDataType) MarshalJSON() ([]byte, error) {
	type NoMethod XPSDataType
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSDockerFormat: A model format used for Docker containers. Use the
// params field to customize the container. The container is verified to
// work correctly on ubuntu 16.04 operating system.
type XPSDockerFormat struct {
	// CpuArchitecture: Optional. Additional cpu information describing the
	// requirements for the to be exported model files.
	//
	// Possible values:
	//   "CPU_ARCHITECTURE_UNSPECIFIED"
	//   "CPU_ARCHITECTURE_X86_64"
	CpuArchitecture string `json:"cpuArchitecture,omitempty"`

	// GpuArchitecture: Optional. Additional gpu information describing the
	// requirements for the to be exported model files.
	//
	// Possible values:
	//   "GPU_ARCHITECTURE_UNSPECIFIED"
	//   "GPU_ARCHITECTURE_NVIDIA"
	GpuArchitecture string `json:"gpuArchitecture,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CpuArchitecture") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CpuArchitecture") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSDockerFormat) MarshalJSON() ([]byte, error) {
	type NoMethod XPSDockerFormat
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSEdgeTpuTfLiteFormat: A model format used for Edge TPU
// (https://cloud.google.com/edge-tpu/) devices.
type XPSEdgeTpuTfLiteFormat struct {
}

// XPSEvaluationMetrics: Contains xPS-specific model evaluation metrics
// either for a single annotation spec (label), or for the model
// overall. Next tag: 18.
type XPSEvaluationMetrics struct {
	// AnnotationSpecIdToken: The annotation_spec for which this evaluation
	// metrics instance had been created. Empty iff this is an overall model
	// evaluation (like Tables evaluation metrics), i.e. aggregated across
	// all labels. The value comes from the input annotations in
	// AnnotatedExample. For MVP product or for text sentiment models where
	// annotation_spec_id_token is not available, set label instead.
	AnnotationSpecIdToken string `json:"annotationSpecIdToken,omitempty"`

	// Category: The integer category label for which this evaluation metric
	// instance had been created. Valid categories are 0 or higher. Overall
	// model evaluation should set this to negative values (rather than
	// implicit zero). Only used for Image Segmentation (prefer to set
	// annotation_spec_id_token instead). Note: uCAIP Image Segmentation
	// should use annotation_spec_id_token.
	Category int64 `json:"category,omitempty"`

	// EvaluatedExampleCount: The number of examples used to create this
	// evaluation metrics instance.
	EvaluatedExampleCount int64 `json:"evaluatedExampleCount,omitempty"`

	ImageClassificationEvalMetrics *XPSClassificationEvaluationMetrics `json:"imageClassificationEvalMetrics,omitempty"`

	ImageObjectDetectionEvalMetrics *XPSImageObjectDetectionEvaluationMetrics `json:"imageObjectDetectionEvalMetrics,omitempty"`

	ImageSegmentationEvalMetrics *XPSImageSegmentationEvaluationMetrics `json:"imageSegmentationEvalMetrics,omitempty"`

	// Label: The label for which this evaluation metrics instance had been
	// created. Empty iff this is an overall model evaluation (like Tables
	// evaluation metrics), i.e. aggregated across all labels. The label
	// maps to AnnotationSpec.display_name in Public API protos. Only used
	// by MVP implementation and text sentiment FULL implementation.
	Label string `json:"label,omitempty"`

	RegressionEvalMetrics *XPSRegressionEvaluationMetrics `json:"regressionEvalMetrics,omitempty"`

	TablesClassificationEvalMetrics *XPSClassificationEvaluationMetrics `json:"tablesClassificationEvalMetrics,omitempty"`

	TablesEvalMetrics *XPSTablesEvaluationMetrics `json:"tablesEvalMetrics,omitempty"`

	TextClassificationEvalMetrics *XPSClassificationEvaluationMetrics `json:"textClassificationEvalMetrics,omitempty"`

	TextExtractionEvalMetrics *XPSTextExtractionEvaluationMetrics `json:"textExtractionEvalMetrics,omitempty"`

	TextSentimentEvalMetrics *XPSTextSentimentEvaluationMetrics `json:"textSentimentEvalMetrics,omitempty"`

	TranslationEvalMetrics *XPSTranslationEvaluationMetrics `json:"translationEvalMetrics,omitempty"`

	VideoActionRecognitionEvalMetrics *XPSVideoActionRecognitionEvaluationMetrics `json:"videoActionRecognitionEvalMetrics,omitempty"`

	VideoClassificationEvalMetrics *XPSClassificationEvaluationMetrics `json:"videoClassificationEvalMetrics,omitempty"`

	VideoObjectTrackingEvalMetrics *XPSVideoObjectTrackingEvaluationMetrics `json:"videoObjectTrackingEvalMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "AnnotationSpecIdToken") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AnnotationSpecIdToken") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSEvaluationMetricsSet: Specifies location of model evaluation
// metrics.
type XPSEvaluationMetricsSet struct {
	// EvaluationMetrics: Inline EvaluationMetrics - should be relatively
	// small. For passing large quantities of exhaustive metrics, use
	// file_spec.
	EvaluationMetrics []*XPSEvaluationMetrics `json:"evaluationMetrics,omitempty"`

	// FileSpec: File spec containing evaluation metrics of a model, must
	// point to RecordIO file(s) of
	// intelligence.cloud.automl.xps.EvaluationMetrics messages.
	FileSpec *XPSFileSpec `json:"fileSpec,omitempty"`

	// NumEvaluationMetrics: Number of the evaluation metrics (usually one
	// per label plus overall).
	NumEvaluationMetrics int64 `json:"numEvaluationMetrics,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "EvaluationMetrics")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EvaluationMetrics") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSEvaluationMetricsSet) MarshalJSON() ([]byte, error) {
	type NoMethod XPSEvaluationMetricsSet
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSExampleSet: Set of examples or input sources.
type XPSExampleSet struct {
	// FileSpec: File spec of the examples or input sources.
	FileSpec *XPSFileSpec `json:"fileSpec,omitempty"`

	// Fingerprint: Fingerprint of the example set.
	Fingerprint int64 `json:"fingerprint,omitempty,string"`

	// NumExamples: Number of examples.
	NumExamples int64 `json:"numExamples,omitempty,string"`

	// NumInputSources: Number of input sources.
	NumInputSources int64 `json:"numInputSources,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "FileSpec") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "FileSpec") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSExampleSet) MarshalJSON() ([]byte, error) {
	type NoMethod XPSExampleSet
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSExportModelOutputConfig struct {
	CoreMlFormat *XPSCoreMlFormat `json:"coreMlFormat,omitempty"`

	DockerFormat *XPSDockerFormat `json:"dockerFormat,omitempty"`

	EdgeTpuTfLiteFormat *XPSEdgeTpuTfLiteFormat `json:"edgeTpuTfLiteFormat,omitempty"`

	// ExportFirebaseAuxiliaryInfo: For any model and format: If true, will
	// additionally export FirebaseExportedModelInfo in a firebase.txt file.
	ExportFirebaseAuxiliaryInfo bool `json:"exportFirebaseAuxiliaryInfo,omitempty"`

	// OutputGcrUri: The Google Contained Registry (GCR) path the exported
	// files to be pushed to. This location is set if the exported format is
	// DOCKDER.
	OutputGcrUri string `json:"outputGcrUri,omitempty"`

	// OutputGcsUri: The Google Cloud Storage (GCS) directory where XPS will
	// output the exported models and related files. Format:
	// gs://bucket/directory
	OutputGcsUri string `json:"outputGcsUri,omitempty"`

	TfJsFormat *XPSTfJsFormat `json:"tfJsFormat,omitempty"`

	TfLiteFormat *XPSTfLiteFormat `json:"tfLiteFormat,omitempty"`

	TfSavedModelFormat *XPSTfSavedModelFormat `json:"tfSavedModelFormat,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CoreMlFormat") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CoreMlFormat") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSExportModelOutputConfig) MarshalJSON() ([]byte, error) {
	type NoMethod XPSExportModelOutputConfig
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSFileSpec: Spec of input and output files, on external file systems
// (CNS, GCS, etc).
type XPSFileSpec struct {
	// DirectoryPath: Deprecated. Use file_spec.
	DirectoryPath string `json:"directoryPath,omitempty"`

	// Possible values:
	//   "FILE_FORMAT_UNKNOWN"
	//   "FILE_FORMAT_SSTABLE"
	//   "FILE_FORMAT_TRANSLATION_RKV" - Internal format for parallel text
	// data used by Google Translate. go/rkvtools
	//   "FILE_FORMAT_RECORDIO"
	//   "FILE_FORMAT_RAW_CSV" - Only the lexicographically first file
	// described by the file_spec contains the header line.
	//   "FILE_FORMAT_RAW_CAPACITOR"
	FileFormat string `json:"fileFormat,omitempty"`

	// FileSpec: Single file path, or file pattern of format
	// "/path/to/file@shard_count". E.g. /cns/cell-d/somewhere/file@2 is
	// expanded to two files: /cns/cell-d/somewhere/file-00000-of-00002 and
	// /cns/cell-d/somewhere/file-00001-of-00002.
	FileSpec string `json:"fileSpec,omitempty"`

	// SingleFilePath: Deprecated. Use file_spec.
	SingleFilePath string `json:"singleFilePath,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DirectoryPath") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DirectoryPath") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSFileSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSFileSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSFloat64Stats: The data statistics of a series of FLOAT64 values.
type XPSFloat64Stats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// HistogramBuckets: Histogram buckets of the data series. Sorted by the
	// min value of the bucket, ascendingly, and the number of the buckets
	// is dynamically generated. The buckets are non-overlapping and
	// completely cover whole FLOAT64 range with min of first bucket being
	// "-Infinity", and max of the last one being "Infinity".
	HistogramBuckets []*XPSFloat64StatsHistogramBucket `json:"histogramBuckets,omitempty"`

	// Mean: The mean of the series.
	Mean float64 `json:"mean,omitempty"`

	// Quantiles: Ordered from 0 to k k-quantile values of the data series
	// of n values. The value at index i is, approximately, the i*n/k-th
	// smallest value in the series; for i = 0 and i = k these are,
	// respectively, the min and max values.
	Quantiles []float64 `json:"quantiles,omitempty"`

	// StandardDeviation: The standard deviation of the series.
	StandardDeviation float64 `json:"standardDeviation,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSFloat64Stats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSFloat64Stats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSFloat64Stats) UnmarshalJSON(data []byte) error {
	type NoMethod XPSFloat64Stats
	var s1 struct {
		Mean              gensupport.JSONFloat64   `json:"mean"`
		Quantiles         []gensupport.JSONFloat64 `json:"quantiles"`
		StandardDeviation gensupport.JSONFloat64   `json:"standardDeviation"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Mean = float64(s1.Mean)
	s.Quantiles = make([]float64, len(s1.Quantiles))
	for i := range s1.Quantiles {
		s.Quantiles[i] = float64(s1.Quantiles[i])
	}
	s.StandardDeviation = float64(s1.StandardDeviation)
	return nil
}

// XPSFloat64StatsHistogramBucket: A bucket of a histogram.
type XPSFloat64StatsHistogramBucket struct {
	// Count: The number of data values that are in the bucket, i.e. are
	// between min and max values.
	Count int64 `json:"count,omitempty,string"`

	// Max: The maximum value of the bucket, exclusive unless max =
	// "Infinity", in which case it's inclusive.
	Max float64 `json:"max,omitempty"`

	// Min: The minimum value of the bucket, inclusive.
	Min float64 `json:"min,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Count") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSFloat64StatsHistogramBucket) MarshalJSON() ([]byte, error) {
	type NoMethod XPSFloat64StatsHistogramBucket
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSFloat64StatsHistogramBucket) UnmarshalJSON(data []byte) error {
	type NoMethod XPSFloat64StatsHistogramBucket
	var s1 struct {
		Max gensupport.JSONFloat64 `json:"max"`
		Min gensupport.JSONFloat64 `json:"min"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Max = float64(s1.Max)
	s.Min = float64(s1.Min)
	return nil
}

type XPSImageClassificationTrainResponse struct {
	// ClassCount: Total number of classes.
	ClassCount int64 `json:"classCount,omitempty,string"`

	// ExportModelSpec: Information of downloadable models that are
	// pre-generated as part of training flow and will be persisted in
	// AutoMl backend. Populated for AutoMl requests.
	ExportModelSpec *XPSImageExportModelSpec `json:"exportModelSpec,omitempty"`

	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope.
	ModelArtifactSpec *XPSImageModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	ModelServingSpec *XPSImageModelServingSpec `json:"modelServingSpec,omitempty"`

	// StopReason: Stop reason for training job, e.g.
	// 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED', 'MODEL_EARLY_STOPPED'.
	//
	// Possible values:
	//   "TRAIN_STOP_REASON_UNSPECIFIED"
	//   "TRAIN_STOP_REASON_BUDGET_REACHED"
	//   "TRAIN_STOP_REASON_MODEL_CONVERGED" - Model fully converged, can
	// not be resumbed training.
	//   "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" - Model early converged,
	// can be further trained till full convergency.
	StopReason string `json:"stopReason,omitempty"`

	// TrainCostInNodeTime: The actual cost to create this model. - For edge
	// type model, the cost is expressed in node hour. - For cloud type
	// model,the cost is expressed in compute hour. - Populated for models
	// created before GA. To be deprecated after GA.
	TrainCostInNodeTime string `json:"trainCostInNodeTime,omitempty"`

	// TrainCostNodeSeconds: The actual training cost, expressed in node
	// seconds. Populated for models trained in node time.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ClassCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClassCount") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageClassificationTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageClassificationTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSImageExportModelSpec: Information of downloadable models that are
// pre-generated as part of training flow and will be persisted in
// AutoMl backend. Upon receiving ExportModel request from user, AutoMl
// backend can serve the pre-generated models to user if exists (by
// copying the files from internal path to user provided location),
// otherwise, AutoMl backend will call xPS ExportModel API to generate
// the model on the fly with the requesting format.
type XPSImageExportModelSpec struct {
	// ExportModelOutputConfig: Contains the model format and internal
	// location of the model files to be exported/downloaded. Use the GCS
	// bucket name which is provided via TrainRequest.gcs_bucket_name to
	// store the model files.
	ExportModelOutputConfig []*XPSExportModelOutputConfig `json:"exportModelOutputConfig,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ExportModelOutputConfig") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExportModelOutputConfig")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageExportModelSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageExportModelSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSImageModelArtifactSpec: Stores the locations and related metadata
// of the model artifacts. Populated for uCAIP requests only.
type XPSImageModelArtifactSpec struct {
	// CheckpointArtifact: The Tensorflow checkpoint files. e.g. Used for
	// resumable training.
	CheckpointArtifact *XPSModelArtifactItem `json:"checkpointArtifact,omitempty"`

	// ExportArtifact: The model binary files in different formats for model
	// export.
	ExportArtifact []*XPSModelArtifactItem `json:"exportArtifact,omitempty"`

	// LabelGcsUri: GCS uri of decoded labels file for model export
	// 'dict.txt'.
	LabelGcsUri string `json:"labelGcsUri,omitempty"`

	// ServingArtifact: The default model binary file used for serving (e.g.
	// online predict, batch predict) via public Cloud AI Platform API.
	ServingArtifact *XPSModelArtifactItem `json:"servingArtifact,omitempty"`

	// TfJsBinaryGcsPrefix: GCS uri prefix of Tensorflow JavaScript binary
	// files 'groupX-shardXofX.bin' Deprecated.
	TfJsBinaryGcsPrefix string `json:"tfJsBinaryGcsPrefix,omitempty"`

	// TfLiteMetadataGcsUri: GCS uri of Tensorflow Lite metadata
	// 'tflite_metadata.json'.
	TfLiteMetadataGcsUri string `json:"tfLiteMetadataGcsUri,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CheckpointArtifact")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CheckpointArtifact") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageModelArtifactSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageModelArtifactSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSImageModelServingSpec: Serving specification for image models.
type XPSImageModelServingSpec struct {
	// ModelThroughputEstimation: Populate under uCAIP request scope.
	ModelThroughputEstimation []*XPSImageModelServingSpecModelThroughputEstimation `json:"modelThroughputEstimation,omitempty"`

	// NodeQps: An estimated value of how much traffic a node can serve.
	// Populated for AutoMl request only.
	NodeQps float64 `json:"nodeQps,omitempty"`

	// TfRuntimeVersion: ## The fields below are only populated under uCAIP
	// request scope.
	// https://cloud.google.com/ml-engine/docs/runtime-version-list
	TfRuntimeVersion string `json:"tfRuntimeVersion,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ModelThroughputEstimation") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "ModelThroughputEstimation") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. However, any field with an empty value appearing in
	// NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageModelServingSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageModelServingSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSImageModelServingSpec) UnmarshalJSON(data []byte) error {
	type NoMethod XPSImageModelServingSpec
	var s1 struct {
		NodeQps gensupport.JSONFloat64 `json:"nodeQps"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.NodeQps = float64(s1.NodeQps)
	return nil
}

type XPSImageModelServingSpecModelThroughputEstimation struct {
	// Possible values:
	//   "UNSPECIFIED"
	//   "NVIDIA_TESLA_K80" - Nvidia Tesla K80 GPU.
	//   "NVIDIA_TESLA_P100" - Nvidia Tesla P100 GPU.
	//   "NVIDIA_TESLA_V100" - Nvidia Tesla V100 GPU.
	//   "NVIDIA_TESLA_P4" - Nvidia Tesla P4 GPU.
	//   "NVIDIA_TESLA_T4" - Nvidia Tesla T4 GPU.
	//   "NVIDIA_TESLA_A100" - Nvidia Tesla A100 GPU.
	//   "NVIDIA_A100_80GB" - Nvidia A100 80GB GPU.
	//   "NVIDIA_L4" - Nvidia L4 GPU.
	//   "NVIDIA_H100_80GB" - Nvidia H100 80Gb GPU.
	//   "TPU_V2" - TPU v2 (JellyFish).
	//   "TPU_V3" - TPU v3 (DragonFish).
	//   "TPU_V4_POD" - TPU_v4 (PufferFish).
	//   "TPU_V5_LITEPOD" - TPU v5 Lite Pods.
	ComputeEngineAcceleratorType string `json:"computeEngineAcceleratorType,omitempty"`

	// LatencyInMilliseconds: Estimated latency.
	LatencyInMilliseconds float64 `json:"latencyInMilliseconds,omitempty"`

	// NodeQps: The approximate qps a deployed node can serve.
	NodeQps float64 `json:"nodeQps,omitempty"`

	// Possible values:
	//   "PARTITION_TYPE_UNSPECIFIED"
	//   "PARTITION_ZERO" - The default partition.
	//   "PARTITION_REDUCED_HOMING" - It has significantly lower replication
	// than partition-0 and is located in the US only. It also has a larger
	// model size limit and higher default RAM quota than partition-0.
	// Customers with batch traffic, US-based traffic, or very large models
	// should use this partition. Capacity in this partition is
	// significantly cheaper than partition-0.
	//   "PARTITION_JELLYFISH" - To be used by customers with
	// Jellyfish-accelerated ops. See go/servomatic-jellyfish for details.
	//   "PARTITION_CPU" - The partition used by regionalized servomatic
	// cloud regions.
	//   "PARTITION_CUSTOM_STORAGE_CPU" - The partition used for loading
	// models from custom storage.
	ServomaticPartitionType string `json:"servomaticPartitionType,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ComputeEngineAcceleratorType") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "ComputeEngineAcceleratorType") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageModelServingSpecModelThroughputEstimation) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageModelServingSpecModelThroughputEstimation
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSImageModelServingSpecModelThroughputEstimation) UnmarshalJSON(data []byte) error {
	type NoMethod XPSImageModelServingSpecModelThroughputEstimation
	var s1 struct {
		LatencyInMilliseconds gensupport.JSONFloat64 `json:"latencyInMilliseconds"`
		NodeQps               gensupport.JSONFloat64 `json:"nodeQps"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.LatencyInMilliseconds = float64(s1.LatencyInMilliseconds)
	s.NodeQps = float64(s1.NodeQps)
	return nil
}

// XPSImageObjectDetectionEvaluationMetrics: Model evaluation metrics
// for image object detection problems. Evaluates prediction quality of
// labeled bounding boxes.
type XPSImageObjectDetectionEvaluationMetrics struct {
	// BoundingBoxMeanAveragePrecision: The single metric for bounding boxes
	// evaluation: the mean_average_precision averaged over all
	// bounding_box_metrics_entries.
	BoundingBoxMeanAveragePrecision float64 `json:"boundingBoxMeanAveragePrecision,omitempty"`

	// BoundingBoxMetricsEntries: The bounding boxes match metrics for each
	// Intersection-over-union threshold
	// 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence
	// threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.
	BoundingBoxMetricsEntries []*XPSBoundingBoxMetricsEntry `json:"boundingBoxMetricsEntries,omitempty"`

	// EvaluatedBoundingBoxCount: The total number of bounding boxes (i.e.
	// summed over all images) the ground truth used to create this
	// evaluation had.
	EvaluatedBoundingBoxCount int64 `json:"evaluatedBoundingBoxCount,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "BoundingBoxMeanAveragePrecision") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "BoundingBoxMeanAveragePrecision") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageObjectDetectionEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageObjectDetectionEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSImageObjectDetectionEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSImageObjectDetectionEvaluationMetrics
	var s1 struct {
		BoundingBoxMeanAveragePrecision gensupport.JSONFloat64 `json:"boundingBoxMeanAveragePrecision"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BoundingBoxMeanAveragePrecision = float64(s1.BoundingBoxMeanAveragePrecision)
	return nil
}

type XPSImageObjectDetectionModelSpec struct {
	// ClassCount: Total number of classes.
	ClassCount int64 `json:"classCount,omitempty,string"`

	ExportModelSpec *XPSImageExportModelSpec `json:"exportModelSpec,omitempty"`

	// MaxBoundingBoxCount: Max number of bounding box.
	MaxBoundingBoxCount int64 `json:"maxBoundingBoxCount,omitempty,string"`

	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope.
	ModelArtifactSpec *XPSImageModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	ModelServingSpec *XPSImageModelServingSpec `json:"modelServingSpec,omitempty"`

	// StopReason: Stop reason for training job, e.g.
	// 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED'.
	//
	// Possible values:
	//   "TRAIN_STOP_REASON_UNSPECIFIED"
	//   "TRAIN_STOP_REASON_BUDGET_REACHED"
	//   "TRAIN_STOP_REASON_MODEL_CONVERGED" - Model fully converged, can
	// not be resumbed training.
	//   "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" - Model early converged,
	// can be further trained till full convergency.
	StopReason string `json:"stopReason,omitempty"`

	// TrainCostNodeSeconds: The actual train cost of creating this model,
	// expressed in node seconds, i.e. 3,600 value in this field means 1
	// node hour.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ClassCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClassCount") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageObjectDetectionModelSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageObjectDetectionModelSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSImageSegmentationEvaluationMetrics: Model evaluation metrics for
// image segmentation problems. Next tag: 4.
type XPSImageSegmentationEvaluationMetrics struct {
	// ConfidenceMetricsEntries: Metrics that have confidence thresholds.
	// Precision-recall curve can be derived from it.
	ConfidenceMetricsEntries []*XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ConfidenceMetricsEntries") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceMetricsEntries")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageSegmentationEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageSegmentationEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry: Metrics
// for a single confidence threshold.
type XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry struct {
	// ConfidenceThreshold: The confidence threshold value used to compute
	// the metrics.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// ConfusionMatrix: Confusion matrix of the per confidence_threshold
	// evaluation. Pixel counts are set here. Only set for model level
	// evaluation, not for evaluation per label.
	ConfusionMatrix *XPSConfusionMatrix `json:"confusionMatrix,omitempty"`

	// DiceScoreCoefficient: DSC or the F1 score: The harmonic mean of
	// recall and precision.
	DiceScoreCoefficient float64 `json:"diceScoreCoefficient,omitempty"`

	// IouScore: IOU score.
	IouScore float64 `json:"iouScore,omitempty"`

	// Precision: Precision for the given confidence threshold.
	Precision float64 `json:"precision,omitempty"`

	// Recall: Recall for the given confidence threshold.
	Recall float64 `json:"recall,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry
	var s1 struct {
		ConfidenceThreshold  gensupport.JSONFloat64 `json:"confidenceThreshold"`
		DiceScoreCoefficient gensupport.JSONFloat64 `json:"diceScoreCoefficient"`
		IouScore             gensupport.JSONFloat64 `json:"iouScore"`
		Precision            gensupport.JSONFloat64 `json:"precision"`
		Recall               gensupport.JSONFloat64 `json:"recall"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.DiceScoreCoefficient = float64(s1.DiceScoreCoefficient)
	s.IouScore = float64(s1.IouScore)
	s.Precision = float64(s1.Precision)
	s.Recall = float64(s1.Recall)
	return nil
}

type XPSImageSegmentationTrainResponse struct {
	// ColorMaps: Color map of the model.
	ColorMaps []*XPSColorMap `json:"colorMaps,omitempty"`

	// ExportModelSpec: NOTE: These fields are not used/needed in EAP but
	// will be set later.
	ExportModelSpec *XPSImageExportModelSpec `json:"exportModelSpec,omitempty"`

	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope. Model artifact spec stores and model gcs pathes and
	// related metadata
	ModelArtifactSpec *XPSImageModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	ModelServingSpec *XPSImageModelServingSpec `json:"modelServingSpec,omitempty"`

	// StopReason: Stop reason for training job, e.g.
	// 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED'.
	//
	// Possible values:
	//   "TRAIN_STOP_REASON_UNSPECIFIED"
	//   "TRAIN_STOP_REASON_BUDGET_REACHED"
	//   "TRAIN_STOP_REASON_MODEL_CONVERGED" - Model fully converged, can
	// not be resumbed training.
	//   "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" - Model early converged,
	// can be further trained till full convergency.
	StopReason string `json:"stopReason,omitempty"`

	// TrainCostNodeSeconds: The actual train cost of creating this model,
	// expressed in node seconds, i.e. 3,600 value in this field means 1
	// node hour.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ColorMaps") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColorMaps") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSImageSegmentationTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSImageSegmentationTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSIntegratedGradientsAttribution: An attribution method that
// computes the Aumann-Shapley value taking advantage of the model's
// fully differentiable structure. Refer to this paper for more details:
// https://arxiv.org/abs/1703.01365
type XPSIntegratedGradientsAttribution struct {
	// StepCount: The number of steps for approximating the path integral. A
	// good value to start is 50 and gradually increase until the sum to
	// diff property is within the desired error range. Valid range of its
	// value is [1, 100], inclusively.
	StepCount int64 `json:"stepCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "StepCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "StepCount") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSIntegratedGradientsAttribution) MarshalJSON() ([]byte, error) {
	type NoMethod XPSIntegratedGradientsAttribution
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSMetricEntry struct {
	// ArgentumMetricId: For billing metrics that are using legacy sku's,
	// set the legacy billing metric id here. This will be sent to Chemist
	// as the "cloudbilling.googleapis.com/argentum_metric_id" label.
	// Otherwise leave empty.
	ArgentumMetricId string `json:"argentumMetricId,omitempty"`

	// DoubleValue: A double value.
	DoubleValue float64 `json:"doubleValue,omitempty"`

	// Int64Value: A signed 64-bit integer value.
	Int64Value int64 `json:"int64Value,omitempty,string"`

	// MetricName: The metric name defined in the service configuration.
	MetricName string `json:"metricName,omitempty"`

	// SystemLabels: Billing system labels for this (metric, value) pair.
	SystemLabels []*XPSMetricEntryLabel `json:"systemLabels,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ArgentumMetricId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ArgentumMetricId") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSMetricEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSMetricEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSMetricEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSMetricEntry
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	return nil
}

type XPSMetricEntryLabel struct {
	// LabelName: The name of the label.
	LabelName string `json:"labelName,omitempty"`

	// LabelValue: The value of the label.
	LabelValue string `json:"labelValue,omitempty"`

	// ForceSendFields is a list of field names (e.g. "LabelName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "LabelName") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSMetricEntryLabel) MarshalJSON() ([]byte, error) {
	type NoMethod XPSMetricEntryLabel
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSModelArtifactItem: A single model artifact item.
type XPSModelArtifactItem struct {
	// ArtifactFormat: The model artifact format.
	//
	// Possible values:
	//   "ARTIFACT_FORMAT_UNSPECIFIED" - Should not be used.
	//   "TF_CHECKPOINT" - The Tensorflow checkpoints. See
	// https://www.tensorflow.org/guide/checkpoint.
	//   "TF_SAVED_MODEL" - The Tensorflow SavedModel binary.
	//   "TF_LITE" - Model artifact in generic TensorFlow Lite (.tflite)
	// format. See https://www.tensorflow.org/lite.
	//   "EDGE_TPU_TF_LITE" - Used for [Edge
	// TPU](https://cloud.google.com/edge-tpu/) devices.
	//   "TF_JS" - A [TensorFlow.js](https://www.tensorflow.org/js) model
	// that can be used in the browser and in Node.js using JavaScript.
	//   "CORE_ML" - Used for iOS mobile devices in (.mlmodel) format. See
	// https://developer.apple.com/documentation/coreml
	ArtifactFormat string `json:"artifactFormat,omitempty"`

	// GcsUri: The Google Cloud Storage (GCS) uri that stores the model
	// binary files.
	GcsUri string `json:"gcsUri,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ArtifactFormat") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ArtifactFormat") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSModelArtifactItem) MarshalJSON() ([]byte, error) {
	type NoMethod XPSModelArtifactItem
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSPreprocessResponse: Next ID: 8
type XPSPreprocessResponse struct {
	// OutputExampleSet: Preprocessed examples, that are to be imported into
	// AutoML storage. This should point to RecordIO file(s) of
	// PreprocessedExample messages. The
	// PreprocessedExample.mvp_training_data-s returned here are later
	// verbatim passed to Train() call in TrainExample.mvp_training_data.
	OutputExampleSet *XPSExampleSet `json:"outputExampleSet,omitempty"`

	SpeechPreprocessResp *XPSSpeechPreprocessResponse `json:"speechPreprocessResp,omitempty"`

	TablesPreprocessResponse *XPSTablesPreprocessResponse `json:"tablesPreprocessResponse,omitempty"`

	TranslationPreprocessResp *XPSTranslationPreprocessResponse `json:"translationPreprocessResp,omitempty"`

	// ForceSendFields is a list of field names (e.g. "OutputExampleSet") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "OutputExampleSet") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSPreprocessResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSPreprocessResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSRegressionEvaluationMetrics: Model evaluation metrics for
// regression problems. It can be used for Tables.
type XPSRegressionEvaluationMetrics struct {
	// MeanAbsoluteError: Mean Absolute Error (MAE).
	MeanAbsoluteError float64 `json:"meanAbsoluteError,omitempty"`

	// MeanAbsolutePercentageError: Mean absolute percentage error. Only set
	// if all ground truth values are positive.
	MeanAbsolutePercentageError float64 `json:"meanAbsolutePercentageError,omitempty"`

	// RSquared: R squared.
	RSquared float64 `json:"rSquared,omitempty"`

	// RegressionMetricsEntries: A list of actual versus predicted points
	// for the model being evaluated.
	RegressionMetricsEntries []*XPSRegressionMetricsEntry `json:"regressionMetricsEntries,omitempty"`

	// RootMeanSquaredError: Root Mean Squared Error (RMSE).
	RootMeanSquaredError float64 `json:"rootMeanSquaredError,omitempty"`

	// RootMeanSquaredLogError: Root mean squared log error.
	RootMeanSquaredLogError float64 `json:"rootMeanSquaredLogError,omitempty"`

	// ForceSendFields is a list of field names (e.g. "MeanAbsoluteError")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "MeanAbsoluteError") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSRegressionEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSRegressionEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSRegressionEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSRegressionEvaluationMetrics
	var s1 struct {
		MeanAbsoluteError           gensupport.JSONFloat64 `json:"meanAbsoluteError"`
		MeanAbsolutePercentageError gensupport.JSONFloat64 `json:"meanAbsolutePercentageError"`
		RSquared                    gensupport.JSONFloat64 `json:"rSquared"`
		RootMeanSquaredError        gensupport.JSONFloat64 `json:"rootMeanSquaredError"`
		RootMeanSquaredLogError     gensupport.JSONFloat64 `json:"rootMeanSquaredLogError"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.MeanAbsoluteError = float64(s1.MeanAbsoluteError)
	s.MeanAbsolutePercentageError = float64(s1.MeanAbsolutePercentageError)
	s.RSquared = float64(s1.RSquared)
	s.RootMeanSquaredError = float64(s1.RootMeanSquaredError)
	s.RootMeanSquaredLogError = float64(s1.RootMeanSquaredLogError)
	return nil
}

// XPSRegressionMetricsEntry: A pair of actual & observed values for the
// model being evaluated.
type XPSRegressionMetricsEntry struct {
	// PredictedValue: The observed value for a row in the dataset.
	PredictedValue float64 `json:"predictedValue,omitempty"`

	// TrueValue: The actual target value for a row in the dataset.
	TrueValue float64 `json:"trueValue,omitempty"`

	// ForceSendFields is a list of field names (e.g. "PredictedValue") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "PredictedValue") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSRegressionMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSRegressionMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSRegressionMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSRegressionMetricsEntry
	var s1 struct {
		PredictedValue gensupport.JSONFloat64 `json:"predictedValue"`
		TrueValue      gensupport.JSONFloat64 `json:"trueValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.PredictedValue = float64(s1.PredictedValue)
	s.TrueValue = float64(s1.TrueValue)
	return nil
}

type XPSReportingMetrics struct {
	// EffectiveTrainingDuration: The effective time training used. If set,
	// this is used for quota management and billing. Deprecated. AutoML BE
	// doesn't use this. Don't set.
	EffectiveTrainingDuration string `json:"effectiveTrainingDuration,omitempty"`

	// MetricEntries: One entry per metric name. The values must be
	// aggregated per metric name.
	MetricEntries []*XPSMetricEntry `json:"metricEntries,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "EffectiveTrainingDuration") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "EffectiveTrainingDuration") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. However, any field with an empty value appearing in
	// NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSReportingMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSReportingMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSResponseExplanationMetadata struct {
	// Inputs: Metadata of the input.
	Inputs map[string]XPSResponseExplanationMetadataInputMetadata `json:"inputs,omitempty"`

	// Outputs: Metadata of the output.
	Outputs map[string]XPSResponseExplanationMetadataOutputMetadata `json:"outputs,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Inputs") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Inputs") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSResponseExplanationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSResponseExplanationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSResponseExplanationMetadataInputMetadata: Metadata of the input of
// a feature.
type XPSResponseExplanationMetadataInputMetadata struct {
	// InputTensorName: Name of the input tensor for this model. Only needed
	// in train response.
	InputTensorName string `json:"inputTensorName,omitempty"`

	// Modality: Modality of the feature. Valid values are: numeric, image.
	// Defaults to numeric.
	//
	// Possible values:
	//   "MODALITY_UNSPECIFIED"
	//   "NUMERIC"
	//   "IMAGE"
	//   "CATEGORICAL"
	Modality string `json:"modality,omitempty"`

	// VisualizationConfig: Visualization configurations for image
	// explanation.
	VisualizationConfig *XPSVisualization `json:"visualizationConfig,omitempty"`

	// ForceSendFields is a list of field names (e.g. "InputTensorName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "InputTensorName") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSResponseExplanationMetadataInputMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSResponseExplanationMetadataInputMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSResponseExplanationMetadataOutputMetadata: Metadata of the
// prediction output to be explained.
type XPSResponseExplanationMetadataOutputMetadata struct {
	// OutputTensorName: Name of the output tensor. Only needed in train
	// response.
	OutputTensorName string `json:"outputTensorName,omitempty"`

	// ForceSendFields is a list of field names (e.g. "OutputTensorName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "OutputTensorName") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSResponseExplanationMetadataOutputMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSResponseExplanationMetadataOutputMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSResponseExplanationParameters struct {
	// IntegratedGradientsAttribution: An attribution method that computes
	// Aumann-Shapley values taking advantage of the model's fully
	// differentiable structure. Refer to this paper for more details:
	// https://arxiv.org/abs/1703.01365
	IntegratedGradientsAttribution *XPSIntegratedGradientsAttribution `json:"integratedGradientsAttribution,omitempty"`

	// XraiAttribution: An attribution method that redistributes Integrated
	// Gradients attribution to segmented regions, taking advantage of the
	// model's fully differentiable structure. Refer to this paper for more
	// details: https://arxiv.org/abs/1906.02825 XRAI currently performs
	// better on natural images, like a picture of a house or an animal. If
	// the images are taken in artificial environments, like a lab or
	// manufacturing line, or from diagnostic equipment, like x-rays or
	// quality-control cameras, use Integrated Gradients instead.
	XraiAttribution *XPSXraiAttribution `json:"xraiAttribution,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "IntegratedGradientsAttribution") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "IntegratedGradientsAttribution") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSResponseExplanationParameters) MarshalJSON() ([]byte, error) {
	type NoMethod XPSResponseExplanationParameters
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSResponseExplanationSpec: Specification of Model explanation.
// Feature-based XAI in AutoML Vision ICN is deprecated, see b/288407203
// for context.
type XPSResponseExplanationSpec struct {
	// ExplanationType: Explanation type. For AutoML Image Classification
	// models, possible values are: * `image-integrated-gradients` *
	// `image-xrai`
	ExplanationType string `json:"explanationType,omitempty"`

	// Metadata: Metadata describing the Model's input and output for
	// explanation.
	Metadata *XPSResponseExplanationMetadata `json:"metadata,omitempty"`

	// Parameters: Parameters that configure explaining of the Model's
	// predictions.
	Parameters *XPSResponseExplanationParameters `json:"parameters,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExplanationType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExplanationType") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSResponseExplanationSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSResponseExplanationSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSRow struct {
	// ColumnIds: The ids of the columns. Note: The below `values` field
	// must match order of this field, if this field is set.
	ColumnIds []int64 `json:"columnIds,omitempty"`

	// Values: The values of the row cells, given in the same order as the
	// column_ids. If column_ids is not set, then in the same order as the
	// input_feature_column_ids in TablesModelMetadata.
	Values []interface{} `json:"values,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ColumnIds") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnIds") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSRow) MarshalJSON() ([]byte, error) {
	type NoMethod XPSRow
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSSpeechEvaluationMetrics struct {
	// SubModelEvaluationMetrics: Evaluation metrics for all submodels
	// contained in this model.
	SubModelEvaluationMetrics []*XPSSpeechEvaluationMetricsSubModelEvaluationMetric `json:"subModelEvaluationMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "SubModelEvaluationMetrics") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "SubModelEvaluationMetrics") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. However, any field with an empty value appearing in
	// NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSSpeechEvaluationMetricsSubModelEvaluationMetric struct {
	// BiasingModelType: Type of the biasing model.
	//
	// Possible values:
	//   "BIASING_MODEL_TYPE_UNSPECIFIED"
	//   "COMMAND_AND_SEARCH" - Build biasing model on top of
	// COMMAND_AND_SEARCH model
	//   "PHONE_CALL" - Build biasing model on top of PHONE_CALL model
	//   "VIDEO" - Build biasing model on top of VIDEO model
	//   "DEFAULT" - Build biasing model on top of DEFAULT model
	BiasingModelType string `json:"biasingModelType,omitempty"`

	// IsEnhancedModel: If true then it means we have an enhanced version of
	// the biasing models.
	IsEnhancedModel bool `json:"isEnhancedModel,omitempty"`

	NumDeletions int64 `json:"numDeletions,omitempty"`

	NumInsertions int64 `json:"numInsertions,omitempty"`

	NumSubstitutions int64 `json:"numSubstitutions,omitempty"`

	// NumUtterances: Number of utterances used in the wer computation.
	NumUtterances int64 `json:"numUtterances,omitempty"`

	// NumWords: Number of words over which the word error rate was
	// computed.
	NumWords int64 `json:"numWords,omitempty"`

	// SentenceAccuracy: Below fields are used for debugging purposes
	SentenceAccuracy float64 `json:"sentenceAccuracy,omitempty"`

	// Wer: Word error rate (standard error metric used for speech
	// recognition).
	Wer float64 `json:"wer,omitempty"`

	// ForceSendFields is a list of field names (e.g. "BiasingModelType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BiasingModelType") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechEvaluationMetricsSubModelEvaluationMetric) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechEvaluationMetricsSubModelEvaluationMetric
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSSpeechEvaluationMetricsSubModelEvaluationMetric) UnmarshalJSON(data []byte) error {
	type NoMethod XPSSpeechEvaluationMetricsSubModelEvaluationMetric
	var s1 struct {
		SentenceAccuracy gensupport.JSONFloat64 `json:"sentenceAccuracy"`
		Wer              gensupport.JSONFloat64 `json:"wer"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SentenceAccuracy = float64(s1.SentenceAccuracy)
	s.Wer = float64(s1.Wer)
	return nil
}

type XPSSpeechModelSpec struct {
	// DatasetId: Required for speech xps backend. Speech xps has to use
	// dataset_id and model_id as the primary key in db so that speech API
	// can query the db directly.
	DatasetId int64 `json:"datasetId,omitempty,string"`

	Language string `json:"language,omitempty"`

	// SubModelSpecs: Model specs for all submodels contained in this model.
	SubModelSpecs []*XPSSpeechModelSpecSubModelSpec `json:"subModelSpecs,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DatasetId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DatasetId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechModelSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechModelSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSSpeechModelSpecSubModelSpec struct {
	// BiasingModelType: Type of the biasing model.
	//
	// Possible values:
	//   "BIASING_MODEL_TYPE_UNSPECIFIED"
	//   "COMMAND_AND_SEARCH" - Build biasing model on top of
	// COMMAND_AND_SEARCH model
	//   "PHONE_CALL" - Build biasing model on top of PHONE_CALL model
	//   "VIDEO" - Build biasing model on top of VIDEO model
	//   "DEFAULT" - Build biasing model on top of DEFAULT model
	BiasingModelType string `json:"biasingModelType,omitempty"`

	// ClientId: In S3, Recognition ClientContextId.client_id
	ClientId string `json:"clientId,omitempty"`

	// ContextId: In S3, Recognition ClientContextId.context_id
	ContextId string `json:"contextId,omitempty"`

	// IsEnhancedModel: If true then it means we have an enhanced version of
	// the biasing models.
	IsEnhancedModel bool `json:"isEnhancedModel,omitempty"`

	// ForceSendFields is a list of field names (e.g. "BiasingModelType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BiasingModelType") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechModelSpecSubModelSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechModelSpecSubModelSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSSpeechPreprocessResponse struct {
	// CnsTestDataPath: Location od shards of sstables (test data) of
	// DataUtterance protos.
	CnsTestDataPath string `json:"cnsTestDataPath,omitempty"`

	// CnsTrainDataPath: Location of shards of sstables (training data) of
	// DataUtterance protos.
	CnsTrainDataPath string `json:"cnsTrainDataPath,omitempty"`

	// PrebuiltModelEvaluationMetrics: The metrics for prebuilt speech
	// models. They are included here because there is no prebuilt speech
	// models stored in the AutoML.
	PrebuiltModelEvaluationMetrics *XPSSpeechEvaluationMetrics `json:"prebuiltModelEvaluationMetrics,omitempty"`

	// SpeechPreprocessStats: Stats associated with the data.
	SpeechPreprocessStats *XPSSpeechPreprocessStats `json:"speechPreprocessStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CnsTestDataPath") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CnsTestDataPath") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechPreprocessResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechPreprocessResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSSpeechPreprocessStats struct {
	// DataErrors: Different types of data errors and the counts associated
	// with them.
	DataErrors []*XPSDataErrors `json:"dataErrors,omitempty"`

	// NumHumanLabeledExamples: The number of rows marked HUMAN_LABELLED
	NumHumanLabeledExamples int64 `json:"numHumanLabeledExamples,omitempty"`

	// NumLogsExamples: The number of samples found in the previously
	// recorded logs data.
	NumLogsExamples int64 `json:"numLogsExamples,omitempty"`

	// NumMachineTranscribedExamples: The number of rows marked as
	// MACHINE_TRANSCRIBED
	NumMachineTranscribedExamples int64 `json:"numMachineTranscribedExamples,omitempty"`

	// TestExamplesCount: The number of examples labelled as TEST by Speech
	// xps server.
	TestExamplesCount int64 `json:"testExamplesCount,omitempty"`

	// TestSentencesCount: The number of sentences in the test data set.
	TestSentencesCount int64 `json:"testSentencesCount,omitempty"`

	// TestWordsCount: The number of words in the test data set.
	TestWordsCount int64 `json:"testWordsCount,omitempty"`

	// TrainExamplesCount: The number of examples labeled as TRAIN by Speech
	// xps server.
	TrainExamplesCount int64 `json:"trainExamplesCount,omitempty"`

	// TrainSentencesCount: The number of sentences in the training data
	// set.
	TrainSentencesCount int64 `json:"trainSentencesCount,omitempty"`

	// TrainWordsCount: The number of words in the training data set.
	TrainWordsCount int64 `json:"trainWordsCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DataErrors") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DataErrors") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSSpeechPreprocessStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSSpeechPreprocessStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSStringStats: The data statistics of a series of STRING values.
type XPSStringStats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// TopUnigramStats: The statistics of the top 20 unigrams, ordered by
	// StringStats.UnigramStats.count.
	TopUnigramStats []*XPSStringStatsUnigramStats `json:"topUnigramStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSStringStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSStringStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSStringStatsUnigramStats: The statistics of a unigram.
type XPSStringStatsUnigramStats struct {
	// Count: The number of occurrences of this unigram in the series.
	Count int64 `json:"count,omitempty,string"`

	// Value: The unigram.
	Value string `json:"value,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Count") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSStringStatsUnigramStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSStringStatsUnigramStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSStructStats: The data statistics of a series of STRUCT values.
type XPSStructStats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// FieldStats: Map from a field name of the struct to data stats
	// aggregated over series of all data in that field across all the
	// structs.
	FieldStats map[string]XPSDataStats `json:"fieldStats,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSStructStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSStructStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSStructType: `StructType` defines the DataType-s of a STRUCT type.
type XPSStructType struct {
	// Fields: Unordered map of struct field names to their data types.
	Fields map[string]XPSDataType `json:"fields,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Fields") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Fields") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSStructType) MarshalJSON() ([]byte, error) {
	type NoMethod XPSStructType
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTableSpec struct {
	// ColumnSpecs: Mapping from column id to column spec.
	ColumnSpecs map[string]XPSColumnSpec `json:"columnSpecs,omitempty"`

	// ImportedDataSizeInBytes: The total size of imported data of the
	// table.
	ImportedDataSizeInBytes int64 `json:"importedDataSizeInBytes,omitempty,string"`

	// RowCount: The number of rows in the table.
	RowCount int64 `json:"rowCount,omitempty,string"`

	// TimeColumnId: The id of the time column.
	TimeColumnId int64 `json:"timeColumnId,omitempty"`

	// ValidRowCount: The number of valid rows.
	ValidRowCount int64 `json:"validRowCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ColumnSpecs") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnSpecs") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTableSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTableSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTablesClassificationMetrics: Metrics for Tables classification
// problems.
type XPSTablesClassificationMetrics struct {
	// CurveMetrics: Metrics building a curve.
	CurveMetrics []*XPSTablesClassificationMetricsCurveMetrics `json:"curveMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CurveMetrics") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CurveMetrics") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesClassificationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesClassificationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTablesClassificationMetricsCurveMetrics: Metrics curve data point
// for a single value.
type XPSTablesClassificationMetricsCurveMetrics struct {
	// AucPr: The area under the precision-recall curve.
	AucPr float64 `json:"aucPr,omitempty"`

	// AucRoc: The area under receiver operating characteristic curve.
	AucRoc float64 `json:"aucRoc,omitempty"`

	// ConfidenceMetricsEntries: Metrics that have confidence thresholds.
	// Precision-recall curve and ROC curve can be derived from them.
	ConfidenceMetricsEntries []*XPSTablesConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// LogLoss: The Log loss metric.
	LogLoss float64 `json:"logLoss,omitempty"`

	// PositionThreshold: The position threshold value used to compute the
	// metrics.
	PositionThreshold int64 `json:"positionThreshold,omitempty"`

	// Value: The CATEGORY row value (for ARRAY unnested) the curve metrics
	// are for.
	Value string `json:"value,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AucPr") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AucPr") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesClassificationMetricsCurveMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesClassificationMetricsCurveMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTablesClassificationMetricsCurveMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTablesClassificationMetricsCurveMetrics
	var s1 struct {
		AucPr   gensupport.JSONFloat64 `json:"aucPr"`
		AucRoc  gensupport.JSONFloat64 `json:"aucRoc"`
		LogLoss gensupport.JSONFloat64 `json:"logLoss"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AucPr = float64(s1.AucPr)
	s.AucRoc = float64(s1.AucRoc)
	s.LogLoss = float64(s1.LogLoss)
	return nil
}

// XPSTablesConfidenceMetricsEntry: Metrics for a single confidence
// threshold.
type XPSTablesConfidenceMetricsEntry struct {
	// ConfidenceThreshold: The confidence threshold value used to compute
	// the metrics.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// F1Score: The harmonic mean of recall and precision. (2 * precision *
	// recall) / (precision + recall)
	F1Score float64 `json:"f1Score,omitempty"`

	// FalseNegativeCount: False negative count.
	FalseNegativeCount int64 `json:"falseNegativeCount,omitempty,string"`

	// FalsePositiveCount: False positive count.
	FalsePositiveCount int64 `json:"falsePositiveCount,omitempty,string"`

	// FalsePositiveRate: FPR = #false positives / (#false positives + #true
	// negatives)
	FalsePositiveRate float64 `json:"falsePositiveRate,omitempty"`

	// Precision: Precision = #true positives / (#true positives + #false
	// positives).
	Precision float64 `json:"precision,omitempty"`

	// Recall: Recall = #true positives / (#true positives + #false
	// negatives).
	Recall float64 `json:"recall,omitempty"`

	// TrueNegativeCount: True negative count.
	TrueNegativeCount int64 `json:"trueNegativeCount,omitempty,string"`

	// TruePositiveCount: True positive count.
	TruePositiveCount int64 `json:"truePositiveCount,omitempty,string"`

	// TruePositiveRate: TPR = #true positives / (#true positives + #false
	// negatvies)
	TruePositiveRate float64 `json:"truePositiveRate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTablesConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTablesConfidenceMetricsEntry
	var s1 struct {
		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
		F1Score             gensupport.JSONFloat64 `json:"f1Score"`
		FalsePositiveRate   gensupport.JSONFloat64 `json:"falsePositiveRate"`
		Precision           gensupport.JSONFloat64 `json:"precision"`
		Recall              gensupport.JSONFloat64 `json:"recall"`
		TruePositiveRate    gensupport.JSONFloat64 `json:"truePositiveRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.F1Score = float64(s1.F1Score)
	s.FalsePositiveRate = float64(s1.FalsePositiveRate)
	s.Precision = float64(s1.Precision)
	s.Recall = float64(s1.Recall)
	s.TruePositiveRate = float64(s1.TruePositiveRate)
	return nil
}

// XPSTablesDatasetMetadata: Metadata for a dataset used for AutoML
// Tables. Next ID: 6
type XPSTablesDatasetMetadata struct {
	// MlUseColumnId: Id the column to split the table.
	MlUseColumnId int64 `json:"mlUseColumnId,omitempty"`

	// PrimaryTableSpec: Primary table.
	PrimaryTableSpec *XPSTableSpec `json:"primaryTableSpec,omitempty"`

	// TargetColumnCorrelations: (the column id : its CorrelationStats with
	// target column).
	TargetColumnCorrelations map[string]XPSCorrelationStats `json:"targetColumnCorrelations,omitempty"`

	// TargetColumnId: Id of the primary table column that should be used as
	// the training label.
	TargetColumnId int64 `json:"targetColumnId,omitempty"`

	// WeightColumnId: Id of the primary table column that should be used as
	// the weight column.
	WeightColumnId int64 `json:"weightColumnId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "MlUseColumnId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "MlUseColumnId") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesDatasetMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesDatasetMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTablesEvaluationMetrics struct {
	// ClassificationMetrics: Classification metrics.
	ClassificationMetrics *XPSTablesClassificationMetrics `json:"classificationMetrics,omitempty"`

	// RegressionMetrics: Regression metrics.
	RegressionMetrics *XPSTablesRegressionMetrics `json:"regressionMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ClassificationMetrics") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClassificationMetrics") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTablesModelColumnInfo: An information specific to given column and
// Tables Model, in context of the Model and the predictions created by
// it.
type XPSTablesModelColumnInfo struct {
	// ColumnId: The ID of the column.
	ColumnId int64 `json:"columnId,omitempty"`

	// FeatureImportance: When given as part of a Model: Measurement of how
	// much model predictions correctness on the TEST data depend on values
	// in this column. A value between 0 and 1, higher means higher
	// influence. These values are normalized - for all input feature
	// columns of a given model they add to 1. When given back by Predict or
	// Batch Predict: Measurement of how impactful for the prediction
	// returned for the given row the value in this column was.
	// Specifically, the feature importance specifies the marginal
	// contribution that the feature made to the prediction score compared
	// to the baseline score. These values are computed using the Sampled
	// Shapley method.
	FeatureImportance float64 `json:"featureImportance,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ColumnId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ColumnId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesModelColumnInfo) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesModelColumnInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTablesModelColumnInfo) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTablesModelColumnInfo
	var s1 struct {
		FeatureImportance gensupport.JSONFloat64 `json:"featureImportance"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FeatureImportance = float64(s1.FeatureImportance)
	return nil
}

// XPSTablesModelStructure: A description of Tables model structure.
type XPSTablesModelStructure struct {
	// ModelParameters: A list of models.
	ModelParameters []*XPSTablesModelStructureModelParameters `json:"modelParameters,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ModelParameters") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelParameters") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesModelStructure) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesModelStructure
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTablesModelStructureModelParameters: Model hyper-parameters for a
// model.
type XPSTablesModelStructureModelParameters struct {
	Hyperparameters []*XPSTablesModelStructureModelParametersParameter `json:"hyperparameters,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Hyperparameters") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Hyperparameters") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesModelStructureModelParameters) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesModelStructureModelParameters
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTablesModelStructureModelParametersParameter struct {
	// FloatValue: Float type parameter value.
	FloatValue float64 `json:"floatValue,omitempty"`

	// IntValue: Integer type parameter value.
	IntValue int64 `json:"intValue,omitempty,string"`

	// Name: Parameter name.
	Name string `json:"name,omitempty"`

	// StringValue: String type parameter value.
	StringValue string `json:"stringValue,omitempty"`

	// ForceSendFields is a list of field names (e.g. "FloatValue") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "FloatValue") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesModelStructureModelParametersParameter) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesModelStructureModelParametersParameter
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTablesModelStructureModelParametersParameter) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTablesModelStructureModelParametersParameter
	var s1 struct {
		FloatValue gensupport.JSONFloat64 `json:"floatValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FloatValue = float64(s1.FloatValue)
	return nil
}

type XPSTablesPreprocessResponse struct {
	// TablesDatasetMetadata: The table/column id, column_name and the
	// DataTypes of the columns will be populated.
	TablesDatasetMetadata *XPSTablesDatasetMetadata `json:"tablesDatasetMetadata,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "TablesDatasetMetadata") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "TablesDatasetMetadata") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesPreprocessResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesPreprocessResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTablesRegressionMetrics: Metrics for Tables regression problems.
type XPSTablesRegressionMetrics struct {
	// MeanAbsoluteError: Mean absolute error.
	MeanAbsoluteError float64 `json:"meanAbsoluteError,omitempty"`

	// MeanAbsolutePercentageError: Mean absolute percentage error, only set
	// if all of the target column's values are positive.
	MeanAbsolutePercentageError float64 `json:"meanAbsolutePercentageError,omitempty"`

	// RSquared: R squared.
	RSquared float64 `json:"rSquared,omitempty"`

	// RegressionMetricsEntries: A list of actual versus predicted points
	// for the model being evaluated.
	RegressionMetricsEntries []*XPSRegressionMetricsEntry `json:"regressionMetricsEntries,omitempty"`

	// RootMeanSquaredError: Root mean squared error.
	RootMeanSquaredError float64 `json:"rootMeanSquaredError,omitempty"`

	// RootMeanSquaredLogError: Root mean squared log error.
	RootMeanSquaredLogError float64 `json:"rootMeanSquaredLogError,omitempty"`

	// ForceSendFields is a list of field names (e.g. "MeanAbsoluteError")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "MeanAbsoluteError") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesRegressionMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesRegressionMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTablesRegressionMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTablesRegressionMetrics
	var s1 struct {
		MeanAbsoluteError           gensupport.JSONFloat64 `json:"meanAbsoluteError"`
		MeanAbsolutePercentageError gensupport.JSONFloat64 `json:"meanAbsolutePercentageError"`
		RSquared                    gensupport.JSONFloat64 `json:"rSquared"`
		RootMeanSquaredError        gensupport.JSONFloat64 `json:"rootMeanSquaredError"`
		RootMeanSquaredLogError     gensupport.JSONFloat64 `json:"rootMeanSquaredLogError"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.MeanAbsoluteError = float64(s1.MeanAbsoluteError)
	s.MeanAbsolutePercentageError = float64(s1.MeanAbsolutePercentageError)
	s.RSquared = float64(s1.RSquared)
	s.RootMeanSquaredError = float64(s1.RootMeanSquaredError)
	s.RootMeanSquaredLogError = float64(s1.RootMeanSquaredLogError)
	return nil
}

type XPSTablesTrainResponse struct {
	ModelStructure *XPSTablesModelStructure `json:"modelStructure,omitempty"`

	// PredictionSampleRows: Sample rows from the dataset this model was
	// trained.
	PredictionSampleRows []*XPSRow `json:"predictionSampleRows,omitempty"`

	// TablesModelColumnInfo: Output only. Auxiliary information for each of
	// the input_feature_column_specs, with respect to this particular
	// model.
	TablesModelColumnInfo []*XPSTablesModelColumnInfo `json:"tablesModelColumnInfo,omitempty"`

	// TrainCostMilliNodeHours: The actual training cost of the model,
	// expressed in milli node hours, i.e. 1,000 value in this field means 1
	// node hour. Guaranteed to not exceed the train budget.
	TrainCostMilliNodeHours int64 `json:"trainCostMilliNodeHours,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ModelStructure") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelStructure") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTablesTrainingOperationMetadata struct {
	// CreateModelStage: Current stage of creating model.
	//
	// Possible values:
	//   "CREATE_MODEL_STAGE_UNSPECIFIED" - Unspecified stage.
	//   "DATA_PREPROCESSING" - Prepare the model training pipeline and run
	// data processing.
	//   "TRAINING" - Training model.
	//   "EVALUATING" - Run evaluation.
	//   "MODEL_POST_PROCESSING" - Finalizing model training pipeline.
	CreateModelStage string `json:"createModelStage,omitempty"`

	// OptimizationObjective: The optimization objective for model.
	OptimizationObjective string `json:"optimizationObjective,omitempty"`

	// TopTrials: This field is for training. When the operation is
	// terminated successfully, AutoML Backend post this field to operation
	// metadata in spanner. If the metadata has no trials returned, the
	// training operation is supposed to be a failure.
	TopTrials []*XPSTuningTrial `json:"topTrials,omitempty"`

	// TrainBudgetMilliNodeHours: Creating model budget.
	TrainBudgetMilliNodeHours int64 `json:"trainBudgetMilliNodeHours,omitempty,string"`

	// TrainingObjectivePoints: This field records the training objective
	// value with respect to time, giving insight into how the model
	// architecture search is performing as training time elapses.
	TrainingObjectivePoints []*XPSTrainingObjectivePoint `json:"trainingObjectivePoints,omitempty"`

	// TrainingStartTime: Timestamp when training process starts.
	TrainingStartTime string `json:"trainingStartTime,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CreateModelStage") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CreateModelStage") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTablesTrainingOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTablesTrainingOperationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTextComponentModel: Component model. Next ID: 10
type XPSTextComponentModel struct {
	// BatchPredictionModelGcsUri: The Cloud Storage resource path to hold
	// batch prediction model.
	BatchPredictionModelGcsUri string `json:"batchPredictionModelGcsUri,omitempty"`

	// OnlinePredictionModelGcsUri: The Cloud Storage resource path to hold
	// online prediction model.
	OnlinePredictionModelGcsUri string `json:"onlinePredictionModelGcsUri,omitempty"`

	// Partition: The partition where the model is deployed. Populated by
	// uCAIP BE as part of online PredictRequest.
	//
	// Possible values:
	//   "PARTITION_TYPE_UNSPECIFIED"
	//   "PARTITION_ZERO" - The default partition.
	//   "PARTITION_REDUCED_HOMING" - It has significantly lower replication
	// than partition-0 and is located in the US only. It also has a larger
	// model size limit and higher default RAM quota than partition-0.
	// Customers with batch traffic, US-based traffic, or very large models
	// should use this partition. Capacity in this partition is
	// significantly cheaper than partition-0.
	//   "PARTITION_JELLYFISH" - To be used by customers with
	// Jellyfish-accelerated ops. See go/servomatic-jellyfish for details.
	//   "PARTITION_CPU" - The partition used by regionalized servomatic
	// cloud regions.
	//   "PARTITION_CUSTOM_STORAGE_CPU" - The partition used for loading
	// models from custom storage.
	Partition string `json:"partition,omitempty"`

	// ServingArtifact: The default model binary file used for serving (e.g.
	// online predict, batch predict) via public Cloud Ai Platform API.
	ServingArtifact *XPSModelArtifactItem `json:"servingArtifact,omitempty"`

	// ServoModelName: The name of servo model. Populated by uCAIP BE as
	// part of online PredictRequest.
	ServoModelName string `json:"servoModelName,omitempty"`

	// SubmodelName: The name of the trained NL submodel.
	SubmodelName string `json:"submodelName,omitempty"`

	// SubmodelType: The type of trained NL submodel
	//
	// Possible values:
	//   "TEXT_MODEL_TYPE_UNSPECIFIED"
	//   "TEXT_MODEL_TYPE_DEFAULT"
	//   "TEXT_MODEL_TYPE_META_ARCHITECT"
	//   "TEXT_MODEL_TYPE_ATC"
	//   "TEXT_MODEL_TYPE_CLARA2"
	//   "TEXT_MODEL_TYPE_CHATBASE"
	//   "TEXT_MODEL_TYPE_SAFT_SPAN_LABELING"
	//   "TEXT_MODEL_TYPE_TEXT_EXTRACTION" - Model type for entity
	// extraction.
	//   "TEXT_MODEL_TYPE_RELATIONSHIP_EXTRACTION" - Model type for
	// relationship extraction.
	//   "TEXT_MODEL_TYPE_COMPOSITE" - A composite model represents a set of
	// component models that have to be used together for prediction. A
	// composite model appears to be a single model to the model user. It
	// may contain only one component model. Please refer to
	// go/cnl-composite-models for more information.
	//   "TEXT_MODEL_TYPE_ALL_MODELS" - Model type used to train default,
	// MA, and ATC models in a single batch worker pipeline.
	//   "TEXT_MODEL_TYPE_BERT" - BERT pipeline needs a specific model type,
	// since it uses a different TFX configuration compared with DEFAULT
	// (despite sharing most of the code).
	//   "TEXT_MODEL_TYPE_ENC_PALM" - Model type for EncPaLM.
	SubmodelType string `json:"submodelType,omitempty"`

	// TfRuntimeVersion: ## The fields below are only populated under uCAIP
	// request scope.
	// https://cloud.google.com/ml-engine/docs/runtime-version-list
	TfRuntimeVersion string `json:"tfRuntimeVersion,omitempty"`

	// VersionNumber: The servomatic model version number. Populated by
	// uCAIP BE as part of online PredictRequest.
	VersionNumber int64 `json:"versionNumber,omitempty,string"`

	// ForceSendFields is a list of field names (e.g.
	// "BatchPredictionModelGcsUri") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "BatchPredictionModelGcsUri") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTextComponentModel) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTextComponentModel
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTextExtractionEvaluationMetrics struct {
	// BestF1ConfidenceMetrics: Values are at the highest F1 score on the
	// precision-recall curve. Only confidence_threshold, recall, precision,
	// and f1_score will be set.
	BestF1ConfidenceMetrics *XPSConfidenceMetricsEntry `json:"bestF1ConfidenceMetrics,omitempty"`

	// ConfidenceMetricsEntries: If the enclosing EvaluationMetrics.label is
	// empty, confidence_metrics_entries is an evaluation of the entire
	// model across all labels. If the enclosing EvaluationMetrics.label is
	// set, confidence_metrics_entries applies to that label.
	ConfidenceMetricsEntries []*XPSConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// ConfusionMatrix: Confusion matrix of the model, at the default
	// confidence threshold (0.0). Only set for whole-model evaluation, not
	// for evaluation per label.
	ConfusionMatrix *XPSConfusionMatrix `json:"confusionMatrix,omitempty"`

	// PerLabelConfidenceMetrics: Only recall, precision, and f1_score will
	// be set.
	PerLabelConfidenceMetrics map[string]XPSConfidenceMetricsEntry `json:"perLabelConfidenceMetrics,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "BestF1ConfidenceMetrics") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BestF1ConfidenceMetrics")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTextExtractionEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTextExtractionEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTextSentimentEvaluationMetrics: Model evaluation metrics for text
// sentiment problems.
type XPSTextSentimentEvaluationMetrics struct {
	// ConfusionMatrix: Output only. Confusion matrix of the evaluation.
	// Only set for the overall model evaluation, not for evaluation of a
	// single annotation spec.
	ConfusionMatrix *XPSConfusionMatrix `json:"confusionMatrix,omitempty"`

	// F1Score: Output only. The harmonic mean of recall and precision.
	F1Score float64 `json:"f1Score,omitempty"`

	// LinearKappa: Output only. Linear weighted kappa. Only set for the
	// overall model evaluation, not for evaluation of a single annotation
	// spec.
	LinearKappa float64 `json:"linearKappa,omitempty"`

	// MeanAbsoluteError: Output only. Mean absolute error. Only set for the
	// overall model evaluation, not for evaluation of a single annotation
	// spec.
	MeanAbsoluteError float64 `json:"meanAbsoluteError,omitempty"`

	// MeanSquaredError: Output only. Mean squared error. Only set for the
	// overall model evaluation, not for evaluation of a single annotation
	// spec.
	MeanSquaredError float64 `json:"meanSquaredError,omitempty"`

	// Precision: Output only. Precision.
	Precision float64 `json:"precision,omitempty"`

	// QuadraticKappa: Output only. Quadratic weighted kappa. Only set for
	// the overall model evaluation, not for evaluation of a single
	// annotation spec.
	QuadraticKappa float64 `json:"quadraticKappa,omitempty"`

	// Recall: Output only. Recall.
	Recall float64 `json:"recall,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ConfusionMatrix") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfusionMatrix") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTextSentimentEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTextSentimentEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTextSentimentEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTextSentimentEvaluationMetrics
	var s1 struct {
		F1Score           gensupport.JSONFloat64 `json:"f1Score"`
		LinearKappa       gensupport.JSONFloat64 `json:"linearKappa"`
		MeanAbsoluteError gensupport.JSONFloat64 `json:"meanAbsoluteError"`
		MeanSquaredError  gensupport.JSONFloat64 `json:"meanSquaredError"`
		Precision         gensupport.JSONFloat64 `json:"precision"`
		QuadraticKappa    gensupport.JSONFloat64 `json:"quadraticKappa"`
		Recall            gensupport.JSONFloat64 `json:"recall"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.F1Score = float64(s1.F1Score)
	s.LinearKappa = float64(s1.LinearKappa)
	s.MeanAbsoluteError = float64(s1.MeanAbsoluteError)
	s.MeanSquaredError = float64(s1.MeanSquaredError)
	s.Precision = float64(s1.Precision)
	s.QuadraticKappa = float64(s1.QuadraticKappa)
	s.Recall = float64(s1.Recall)
	return nil
}

// XPSTextToSpeechTrainResponse: TextToSpeech train response
type XPSTextToSpeechTrainResponse struct {
}

type XPSTextTrainResponse struct {
	// ComponentModel: Component submodels.
	ComponentModel []*XPSTextComponentModel `json:"componentModel,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ComponentModel") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ComponentModel") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTextTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTextTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTfJsFormat: A TensorFlow.js (https://www.tensorflow.org/js) model
// that can be used in the browser and in Node.js using JavaScript.
type XPSTfJsFormat struct {
}

// XPSTfLiteFormat: LINT.IfChange A model format used for mobile and IoT
// devices. See https://www.tensorflow.org/lite.
type XPSTfLiteFormat struct {
}

// XPSTfSavedModelFormat: A tensorflow model format in SavedModel
// format.
type XPSTfSavedModelFormat struct {
}

// XPSTimestampStats: The data statistics of a series of TIMESTAMP
// values.
type XPSTimestampStats struct {
	CommonStats *XPSCommonStats `json:"commonStats,omitempty"`

	// GranularStats: The string key is the pre-defined granularity.
	// Currently supported: hour_of_day, day_of_week, month_of_year.
	// Granularities finer that the granularity of timestamp data are not
	// populated (e.g. if timestamps are at day granularity, then
	// hour_of_day is not populated).
	GranularStats map[string]XPSTimestampStatsGranularStats `json:"granularStats,omitempty"`

	MedianTimestampNanos int64 `json:"medianTimestampNanos,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "CommonStats") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommonStats") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTimestampStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTimestampStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTimestampStatsGranularStats: Stats split by a defined in context
// granularity.
type XPSTimestampStatsGranularStats struct {
	// Buckets: A map from granularity key to example count for that key.
	// E.g. for hour_of_day `13` means 1pm, or for month_of_year `5` means
	// May).
	Buckets map[string]string `json:"buckets,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Buckets") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Buckets") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTimestampStatsGranularStats) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTimestampStatsGranularStats
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTrackMetricsEntry: Track matching model metrics for a single track
// match threshold and multiple label match confidence thresholds. Next
// tag: 6.
type XPSTrackMetricsEntry struct {
	// ConfidenceMetricsEntries: Output only. Metrics for each label-match
	// confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.
	// Precision-recall curve is derived from them.
	ConfidenceMetricsEntries []*XPSTrackMetricsEntryConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// IouThreshold: Output only. The intersection-over-union threshold
	// value between bounding boxes across frames used to compute this
	// metric entry.
	IouThreshold float64 `json:"iouThreshold,omitempty"`

	// MeanBoundingBoxIou: Output only. The mean bounding box iou over all
	// confidence thresholds.
	MeanBoundingBoxIou float64 `json:"meanBoundingBoxIou,omitempty"`

	// MeanMismatchRate: Output only. The mean mismatch rate over all
	// confidence thresholds.
	MeanMismatchRate float64 `json:"meanMismatchRate,omitempty"`

	// MeanTrackingAveragePrecision: Output only. The mean average precision
	// over all confidence thresholds.
	MeanTrackingAveragePrecision float64 `json:"meanTrackingAveragePrecision,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ConfidenceMetricsEntries") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceMetricsEntries")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTrackMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTrackMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTrackMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTrackMetricsEntry
	var s1 struct {
		IouThreshold                 gensupport.JSONFloat64 `json:"iouThreshold"`
		MeanBoundingBoxIou           gensupport.JSONFloat64 `json:"meanBoundingBoxIou"`
		MeanMismatchRate             gensupport.JSONFloat64 `json:"meanMismatchRate"`
		MeanTrackingAveragePrecision gensupport.JSONFloat64 `json:"meanTrackingAveragePrecision"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.IouThreshold = float64(s1.IouThreshold)
	s.MeanBoundingBoxIou = float64(s1.MeanBoundingBoxIou)
	s.MeanMismatchRate = float64(s1.MeanMismatchRate)
	s.MeanTrackingAveragePrecision = float64(s1.MeanTrackingAveragePrecision)
	return nil
}

// XPSTrackMetricsEntryConfidenceMetricsEntry: Metrics for a single
// confidence threshold. Next tag: 6.
type XPSTrackMetricsEntryConfidenceMetricsEntry struct {
	// BoundingBoxIou: Output only. Bounding box intersection-over-union
	// precision. Measures how well the bounding boxes overlap between each
	// other (e.g. complete overlap or just barely above iou_threshold).
	BoundingBoxIou float64 `json:"boundingBoxIou,omitempty"`

	// ConfidenceThreshold: Output only. The confidence threshold value used
	// to compute the metrics.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// MismatchRate: Output only. Mismatch rate, which measures the tracking
	// consistency, i.e. correctness of instance ID continuity.
	MismatchRate float64 `json:"mismatchRate,omitempty"`

	// TrackingPrecision: Output only. Tracking precision.
	TrackingPrecision float64 `json:"trackingPrecision,omitempty"`

	// TrackingRecall: Output only. Tracking recall.
	TrackingRecall float64 `json:"trackingRecall,omitempty"`

	// ForceSendFields is a list of field names (e.g. "BoundingBoxIou") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BoundingBoxIou") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTrackMetricsEntryConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTrackMetricsEntryConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTrackMetricsEntryConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTrackMetricsEntryConfidenceMetricsEntry
	var s1 struct {
		BoundingBoxIou      gensupport.JSONFloat64 `json:"boundingBoxIou"`
		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
		MismatchRate        gensupport.JSONFloat64 `json:"mismatchRate"`
		TrackingPrecision   gensupport.JSONFloat64 `json:"trackingPrecision"`
		TrackingRecall      gensupport.JSONFloat64 `json:"trackingRecall"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BoundingBoxIou = float64(s1.BoundingBoxIou)
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.MismatchRate = float64(s1.MismatchRate)
	s.TrackingPrecision = float64(s1.TrackingPrecision)
	s.TrackingRecall = float64(s1.TrackingRecall)
	return nil
}

// XPSTrainResponse: Next ID: 18
type XPSTrainResponse struct {
	// DeployedModelSizeBytes: Estimated model size in bytes once deployed.
	DeployedModelSizeBytes int64 `json:"deployedModelSizeBytes,omitempty,string"`

	// ErrorAnalysisConfigs: Optional vision model error analysis
	// configuration. The field is set when model error analysis is enabled
	// in the training request. The results of error analysis will be binded
	// together with evaluation results (in the format of AnnotatedExample).
	ErrorAnalysisConfigs []*XPSVisionErrorAnalysisConfig `json:"errorAnalysisConfigs,omitempty"`

	// EvaluatedExampleSet: Examples used to evaluate the model (usually the
	// test set), with the predicted annotations. The file_spec should point
	// to recordio file(s) of AnnotatedExample. For each returned example,
	// the example_id_token and annotations predicted by the model must be
	// set. The example payload can and is recommended to be omitted.
	EvaluatedExampleSet *XPSExampleSet `json:"evaluatedExampleSet,omitempty"`

	// EvaluationMetricsSet: The trained model evaluation metrics. This can
	// be optionally returned.
	EvaluationMetricsSet *XPSEvaluationMetricsSet `json:"evaluationMetricsSet,omitempty"`

	// ExplanationConfigs: VisionExplanationConfig for XAI on test set.
	// Optional for when XAI is enable in training request.
	ExplanationConfigs []*XPSResponseExplanationSpec `json:"explanationConfigs,omitempty"`

	ImageClassificationTrainResp *XPSImageClassificationTrainResponse `json:"imageClassificationTrainResp,omitempty"`

	ImageObjectDetectionTrainResp *XPSImageObjectDetectionModelSpec `json:"imageObjectDetectionTrainResp,omitempty"`

	ImageSegmentationTrainResp *XPSImageSegmentationTrainResponse `json:"imageSegmentationTrainResp,omitempty"`

	// ModelToken: Token that represents the trained model. This is
	// considered immutable and is persisted in AutoML. xPS can put their
	// own proto in the byte string, to e.g. point to the model checkpoints.
	// The token is passed to other xPS APIs to refer to the model.
	ModelToken string `json:"modelToken,omitempty"`

	SpeechTrainResp *XPSSpeechModelSpec `json:"speechTrainResp,omitempty"`

	TablesTrainResp *XPSTablesTrainResponse `json:"tablesTrainResp,omitempty"`

	TextToSpeechTrainResp *XPSTextToSpeechTrainResponse `json:"textToSpeechTrainResp,omitempty"`

	// TextTrainResp: Will only be needed for uCAIP from Beta.
	TextTrainResp *XPSTextTrainResponse `json:"textTrainResp,omitempty"`

	TranslationTrainResp *XPSTranslationTrainResponse `json:"translationTrainResp,omitempty"`

	VideoActionRecognitionTrainResp *XPSVideoActionRecognitionTrainResponse `json:"videoActionRecognitionTrainResp,omitempty"`

	VideoClassificationTrainResp *XPSVideoClassificationTrainResponse `json:"videoClassificationTrainResp,omitempty"`

	VideoObjectTrackingTrainResp *XPSVideoObjectTrackingTrainResponse `json:"videoObjectTrackingTrainResp,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DeployedModelSizeBytes") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DeployedModelSizeBytes")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSTrainingObjectivePoint struct {
	// CreateTime: The time at which this point was recorded.
	CreateTime string `json:"createTime,omitempty"`

	// Value: The objective value when this point was recorded.
	Value float64 `json:"value,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CreateTime") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTrainingObjectivePoint) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTrainingObjectivePoint
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTrainingObjectivePoint) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTrainingObjectivePoint
	var s1 struct {
		Value gensupport.JSONFloat64 `json:"value"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Value = float64(s1.Value)
	return nil
}

// XPSTranslationEvaluationMetrics: Evaluation metrics for the dataset.
type XPSTranslationEvaluationMetrics struct {
	// BaseBleuScore: BLEU score for base model.
	BaseBleuScore float64 `json:"baseBleuScore,omitempty"`

	// BleuScore: BLEU score.
	BleuScore float64 `json:"bleuScore,omitempty"`

	// ForceSendFields is a list of field names (e.g. "BaseBleuScore") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "BaseBleuScore") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTranslationEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTranslationEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSTranslationEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSTranslationEvaluationMetrics
	var s1 struct {
		BaseBleuScore gensupport.JSONFloat64 `json:"baseBleuScore"`
		BleuScore     gensupport.JSONFloat64 `json:"bleuScore"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BaseBleuScore = float64(s1.BaseBleuScore)
	s.BleuScore = float64(s1.BleuScore)
	return nil
}

// XPSTranslationPreprocessResponse: Translation preprocess response.
type XPSTranslationPreprocessResponse struct {
	// ParsedExampleCount: Total example count parsed.
	ParsedExampleCount int64 `json:"parsedExampleCount,omitempty,string"`

	// ValidExampleCount: Total valid example count.
	ValidExampleCount int64 `json:"validExampleCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ParsedExampleCount")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ParsedExampleCount") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTranslationPreprocessResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTranslationPreprocessResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTranslationTrainResponse: Train response for translation.
type XPSTranslationTrainResponse struct {
	// ModelType: Type of the model.
	//
	// Possible values:
	//   "MODEL_TYPE_UNSPECIFIED" - Default
	//   "LEGACY" - Legacy model. Will be deprecated.
	//   "CURRENT" - Current model.
	ModelType string `json:"modelType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ModelType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelType") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSTranslationTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTranslationTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSTuningTrial: Metrics for a tuning job generated, will get
// forwarded to Stackdriver as model tuning logs. Setting this as a
// standalone message out of CreateModelMetadata to avoid confusion as
// we expose this message only to users.
type XPSTuningTrial struct {
	// ModelStructure: Model parameters for the trial.
	ModelStructure *XPSTablesModelStructure `json:"modelStructure,omitempty"`

	// TrainingObjectivePoint: The optimization objective evaluation of the
	// eval split data.
	TrainingObjectivePoint *XPSTrainingObjectivePoint `json:"trainingObjectivePoint,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ModelStructure") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelStructure") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSTuningTrial) MarshalJSON() ([]byte, error) {
	type NoMethod XPSTuningTrial
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSVideoActionMetricsEntry: The Evaluation metrics entry given a
// specific precision_window_length.
type XPSVideoActionMetricsEntry struct {
	// ConfidenceMetricsEntries: Metrics for each label-match
	// confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.
	ConfidenceMetricsEntries []*XPSVideoActionMetricsEntryConfidenceMetricsEntry `json:"confidenceMetricsEntries,omitempty"`

	// MeanAveragePrecision: The mean average precision.
	MeanAveragePrecision float64 `json:"meanAveragePrecision,omitempty"`

	// PrecisionWindowLength: This VideoActionMetricsEntry is calculated
	// based on this prediction window length. If the predicted action's
	// timestamp is inside the time window whose center is the ground truth
	// action's timestamp with this specific length, the prediction result
	// is treated as a true positive.
	PrecisionWindowLength string `json:"precisionWindowLength,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ConfidenceMetricsEntries") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceMetricsEntries")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoActionMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoActionMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSVideoActionMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSVideoActionMetricsEntry
	var s1 struct {
		MeanAveragePrecision gensupport.JSONFloat64 `json:"meanAveragePrecision"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.MeanAveragePrecision = float64(s1.MeanAveragePrecision)
	return nil
}

// XPSVideoActionMetricsEntryConfidenceMetricsEntry: Metrics for a
// single confidence threshold.
type XPSVideoActionMetricsEntryConfidenceMetricsEntry struct {
	// ConfidenceThreshold: Output only. The confidence threshold value used
	// to compute the metrics.
	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`

	// F1Score: Output only. The harmonic mean of recall and precision.
	F1Score float64 `json:"f1Score,omitempty"`

	// Precision: Output only. Precision for the given confidence threshold.
	Precision float64 `json:"precision,omitempty"`

	// Recall: Output only. Recall for the given confidence threshold.
	Recall float64 `json:"recall,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoActionMetricsEntryConfidenceMetricsEntry) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoActionMetricsEntryConfidenceMetricsEntry
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSVideoActionMetricsEntryConfidenceMetricsEntry) UnmarshalJSON(data []byte) error {
	type NoMethod XPSVideoActionMetricsEntryConfidenceMetricsEntry
	var s1 struct {
		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
		F1Score             gensupport.JSONFloat64 `json:"f1Score"`
		Precision           gensupport.JSONFloat64 `json:"precision"`
		Recall              gensupport.JSONFloat64 `json:"recall"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.F1Score = float64(s1.F1Score)
	s.Precision = float64(s1.Precision)
	s.Recall = float64(s1.Recall)
	return nil
}

// XPSVideoActionRecognitionEvaluationMetrics: Model evaluation metrics
// for video action recognition.
type XPSVideoActionRecognitionEvaluationMetrics struct {
	// EvaluatedActionCount: Output only. The number of ground truth actions
	// used to create this evaluation.
	EvaluatedActionCount int64 `json:"evaluatedActionCount,omitempty"`

	// VideoActionMetricsEntries: Output only. The metric entries for
	// precision window lengths: 1s,2s,3s,4s, 5s.
	VideoActionMetricsEntries []*XPSVideoActionMetricsEntry `json:"videoActionMetricsEntries,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "EvaluatedActionCount") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EvaluatedActionCount") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoActionRecognitionEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoActionRecognitionEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVideoActionRecognitionTrainResponse struct {
	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope.
	ModelArtifactSpec *XPSVideoModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	// TrainCostNodeSeconds: The actual train cost of creating this model,
	// expressed in node seconds, i.e. 3,600 value in this field means 1
	// node hour.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ModelArtifactSpec")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelArtifactSpec") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoActionRecognitionTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoActionRecognitionTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVideoBatchPredictOperationMetadata struct {
	// OutputExamples: All the partial batch prediction results that are
	// completed at the moment. Output examples are sorted by completion
	// time. The order will not be changed. Each output example should be
	// the path of a single RecordIO file of AnnotatedExamples.
	OutputExamples []string `json:"outputExamples,omitempty"`

	// ForceSendFields is a list of field names (e.g. "OutputExamples") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "OutputExamples") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoBatchPredictOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoBatchPredictOperationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVideoClassificationTrainResponse struct {
	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope.
	ModelArtifactSpec *XPSVideoModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	// TrainCostNodeSeconds: The actual train cost of creating this model,
	// expressed in node seconds, i.e. 3,600 value in this field means 1
	// node hour.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ModelArtifactSpec")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ModelArtifactSpec") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoClassificationTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoClassificationTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSVideoExportModelSpec: Information of downloadable models that are
// pre-generated as part of training flow and will be persisted in
// AutoMl backend. Upon receiving ExportModel request from user, AutoMl
// backend can serve the pre-generated models to user if exists (by
// copying the files from internal path to user provided location),
// otherwise, AutoMl backend will call xPS ExportModel API to generate
// the model on the fly with the requesting format.
type XPSVideoExportModelSpec struct {
	// ExportModelOutputConfig: Contains the model format and internal
	// location of the model files to be exported/downloaded. Use the GCS
	// bucket name which is provided via TrainRequest.gcs_bucket_name to
	// store the model files.
	ExportModelOutputConfig []*XPSExportModelOutputConfig `json:"exportModelOutputConfig,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ExportModelOutputConfig") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExportModelOutputConfig")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoExportModelSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoExportModelSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVideoModelArtifactSpec struct {
	// ExportArtifact: The model binary files in different formats for model
	// export.
	ExportArtifact []*XPSModelArtifactItem `json:"exportArtifact,omitempty"`

	// ServingArtifact: The default model binary file used for serving (e.g.
	// batch predict) via public Cloud AI Platform API.
	ServingArtifact *XPSModelArtifactItem `json:"servingArtifact,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExportArtifact") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExportArtifact") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoModelArtifactSpec) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoModelArtifactSpec
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSVideoObjectTrackingEvaluationMetrics: Model evaluation metrics for
// ObjectTracking problems. Next tag: 10.
type XPSVideoObjectTrackingEvaluationMetrics struct {
	// BoundingBoxMeanAveragePrecision: Output only. The single metric for
	// bounding boxes evaluation: the mean_average_precision averaged over
	// all bounding_box_metrics_entries.
	BoundingBoxMeanAveragePrecision float64 `json:"boundingBoxMeanAveragePrecision,omitempty"`

	// BoundingBoxMetricsEntries: Output only. The bounding boxes match
	// metrics for each Intersection-over-union threshold
	// 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.
	BoundingBoxMetricsEntries []*XPSBoundingBoxMetricsEntry `json:"boundingBoxMetricsEntries,omitempty"`

	// EvaluatedBoundingboxCount: The number of bounding boxes used for
	// model evaluation.
	EvaluatedBoundingboxCount int64 `json:"evaluatedBoundingboxCount,omitempty"`

	// EvaluatedFrameCount: The number of video frames used for model
	// evaluation.
	EvaluatedFrameCount int64 `json:"evaluatedFrameCount,omitempty"`

	// EvaluatedTrackCount: The number of tracks used for model evaluation.
	EvaluatedTrackCount int64 `json:"evaluatedTrackCount,omitempty"`

	// TrackMeanAveragePrecision: Output only. The single metric for tracks
	// accuracy evaluation: the mean_average_precision averaged over all
	// track_metrics_entries.
	TrackMeanAveragePrecision float64 `json:"trackMeanAveragePrecision,omitempty"`

	// TrackMeanBoundingBoxIou: Output only. The single metric for tracks
	// bounding box iou evaluation: the mean_bounding_box_iou averaged over
	// all track_metrics_entries.
	TrackMeanBoundingBoxIou float64 `json:"trackMeanBoundingBoxIou,omitempty"`

	// TrackMeanMismatchRate: Output only. The single metric for tracking
	// consistency evaluation: the mean_mismatch_rate averaged over all
	// track_metrics_entries.
	TrackMeanMismatchRate float64 `json:"trackMeanMismatchRate,omitempty"`

	// TrackMetricsEntries: Output only. The tracks match metrics for each
	// Intersection-over-union threshold
	// 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.
	TrackMetricsEntries []*XPSTrackMetricsEntry `json:"trackMetricsEntries,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "BoundingBoxMeanAveragePrecision") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "BoundingBoxMeanAveragePrecision") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoObjectTrackingEvaluationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoObjectTrackingEvaluationMetrics
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSVideoObjectTrackingEvaluationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod XPSVideoObjectTrackingEvaluationMetrics
	var s1 struct {
		BoundingBoxMeanAveragePrecision gensupport.JSONFloat64 `json:"boundingBoxMeanAveragePrecision"`
		TrackMeanAveragePrecision       gensupport.JSONFloat64 `json:"trackMeanAveragePrecision"`
		TrackMeanBoundingBoxIou         gensupport.JSONFloat64 `json:"trackMeanBoundingBoxIou"`
		TrackMeanMismatchRate           gensupport.JSONFloat64 `json:"trackMeanMismatchRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BoundingBoxMeanAveragePrecision = float64(s1.BoundingBoxMeanAveragePrecision)
	s.TrackMeanAveragePrecision = float64(s1.TrackMeanAveragePrecision)
	s.TrackMeanBoundingBoxIou = float64(s1.TrackMeanBoundingBoxIou)
	s.TrackMeanMismatchRate = float64(s1.TrackMeanMismatchRate)
	return nil
}

type XPSVideoObjectTrackingTrainResponse struct {
	// ExportModelSpec: Populated for AutoML request only.
	ExportModelSpec *XPSVideoExportModelSpec `json:"exportModelSpec,omitempty"`

	// ModelArtifactSpec: ## The fields below are only populated under uCAIP
	// request scope.
	ModelArtifactSpec *XPSVideoModelArtifactSpec `json:"modelArtifactSpec,omitempty"`

	// TrainCostNodeSeconds: The actual train cost of creating this model,
	// expressed in node seconds, i.e. 3,600 value in this field means 1
	// node hour.
	TrainCostNodeSeconds int64 `json:"trainCostNodeSeconds,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "ExportModelSpec") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExportModelSpec") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoObjectTrackingTrainResponse) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoObjectTrackingTrainResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVideoTrainingOperationMetadata struct {
	// TrainCostMilliNodeHour: This is an estimation of the node hours
	// necessary for training a model, expressed in milli node hours (i.e.
	// 1,000 value in this field means 1 node hour). A node hour represents
	// the time a virtual machine spends running your training job. The cost
	// of one node running for one hour is a node hour.
	TrainCostMilliNodeHour int64 `json:"trainCostMilliNodeHour,omitempty,string"`

	// ForceSendFields is a list of field names (e.g.
	// "TrainCostMilliNodeHour") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "TrainCostMilliNodeHour")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVideoTrainingOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVideoTrainingOperationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSVisionErrorAnalysisConfig: The vision model error analysis
// configuration. Next tag: 3
type XPSVisionErrorAnalysisConfig struct {
	// ExampleCount: The number of query examples in error analysis.
	ExampleCount int64 `json:"exampleCount,omitempty"`

	// QueryType: The query type used in retrieval. The enum values are
	// frozen in the foreseeable future.
	//
	// Possible values:
	//   "QUERY_TYPE_UNSPECIFIED" - Unspecified query type for model error
	// analysis.
	//   "QUERY_TYPE_ALL_SIMILAR" - Query similar samples across all classes
	// in the dataset.
	//   "QUERY_TYPE_SAME_CLASS_SIMILAR" - Query similar samples from the
	// same class of the input sample.
	//   "QUERY_TYPE_SAME_CLASS_DISSIMILAR" - Query dissimilar samples from
	// the same class of the input sample.
	QueryType string `json:"queryType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExampleCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExampleCount") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSVisionErrorAnalysisConfig) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVisionErrorAnalysisConfig
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type XPSVisionTrainingOperationMetadata struct {
	// ExplanationUsage: Aggregated infra usage within certain time period,
	// for billing report purpose if XAI is enable in training request.
	ExplanationUsage *InfraUsage `json:"explanationUsage,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExplanationUsage") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExplanationUsage") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVisionTrainingOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVisionTrainingOperationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSVisualization: Visualization configurations for image explanation.
type XPSVisualization struct {
	// ClipPercentLowerbound: Excludes attributions below the specified
	// percentile, from the highlighted areas. Defaults to 62.
	ClipPercentLowerbound float64 `json:"clipPercentLowerbound,omitempty"`

	// ClipPercentUpperbound: Excludes attributions above the specified
	// percentile from the highlighted areas. Using the
	// clip_percent_upperbound and clip_percent_lowerbound together can be
	// useful for filtering out noise and making it easier to see areas of
	// strong attribution. Defaults to 99.9.
	ClipPercentUpperbound float64 `json:"clipPercentUpperbound,omitempty"`

	// ColorMap: The color scheme used for the highlighted areas. Defaults
	// to PINK_GREEN for Integrated Gradients attribution, which shows
	// positive attributions in green and negative in pink. Defaults to
	// VIRIDIS for XRAI attribution, which highlights the most influential
	// regions in yellow and the least influential in blue.
	//
	// Possible values:
	//   "COLOR_MAP_UNSPECIFIED" - Should not be used.
	//   "PINK_GREEN" - Positive: green. Negative: pink.
	//   "VIRIDIS" - Viridis color map: A perceptually uniform color mapping
	// which is easier to see by those with colorblindness and progresses
	// from yellow to green to blue. Positive: yellow. Negative: blue.
	//   "RED" - Positive: red. Negative: red.
	//   "GREEN" - Positive: green. Negative: green.
	//   "RED_GREEN" - Positive: green. Negative: red.
	//   "PINK_WHITE_GREEN" - PiYG palette.
	ColorMap string `json:"colorMap,omitempty"`

	// OverlayType: How the original image is displayed in the
	// visualization. Adjusting the overlay can help increase visual clarity
	// if the original image makes it difficult to view the visualization.
	// Defaults to NONE.
	//
	// Possible values:
	//   "OVERLAY_TYPE_UNSPECIFIED" - Default value. This is the same as
	// NONE.
	//   "NONE" - No overlay.
	//   "ORIGINAL" - The attributions are shown on top of the original
	// image.
	//   "GRAYSCALE" - The attributions are shown on top of grayscaled
	// version of the original image.
	//   "MASK_BLACK" - The attributions are used as a mask to reveal
	// predictive parts of the image and hide the un-predictive parts.
	OverlayType string `json:"overlayType,omitempty"`

	// Polarity: Whether to only highlight pixels with positive
	// contributions, negative or both. Defaults to POSITIVE.
	//
	// Possible values:
	//   "POLARITY_UNSPECIFIED" - Default value. This is the same as
	// POSITIVE.
	//   "POSITIVE" - Highlights the pixels/outlines that were most
	// influential to the model's prediction.
	//   "NEGATIVE" - Setting polarity to negative highlights areas that
	// does not lead to the models's current prediction.
	//   "BOTH" - Shows both positive and negative attributions.
	Polarity string `json:"polarity,omitempty"`

	// Type: Type of the image visualization. Only applicable to Integrated
	// Gradients attribution. OUTLINES shows regions of attribution, while
	// PIXELS shows per-pixel attribution. Defaults to OUTLINES.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Should not be used.
	//   "PIXELS" - Shows which pixel contributed to the image prediction.
	//   "OUTLINES" - Shows which region contributed to the image prediction
	// by outlining the region.
	Type string `json:"type,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "ClipPercentLowerbound") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClipPercentLowerbound") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *XPSVisualization) MarshalJSON() ([]byte, error) {
	type NoMethod XPSVisualization
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *XPSVisualization) UnmarshalJSON(data []byte) error {
	type NoMethod XPSVisualization
	var s1 struct {
		ClipPercentLowerbound gensupport.JSONFloat64 `json:"clipPercentLowerbound"`
		ClipPercentUpperbound gensupport.JSONFloat64 `json:"clipPercentUpperbound"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ClipPercentLowerbound = float64(s1.ClipPercentLowerbound)
	s.ClipPercentUpperbound = float64(s1.ClipPercentUpperbound)
	return nil
}

type XPSXpsOperationMetadata struct {
	// ExampleCount: Optional. XPS server can opt to provide example count
	// of the long running operation (e.g. training, data importing, batch
	// prediction).
	ExampleCount int64 `json:"exampleCount,omitempty,string"`

	// ReportingMetrics: Metrics for the operation. By the time the
	// operation is terminated (whether succeeded or failed) as returned
	// from XPS, AutoML BE assumes the metrics are finalized. AutoML BE
	// transparently posts the metrics to Chemist if it's not empty,
	// regardless of the response content or error type. If user is supposed
	// to be charged in case of cancellation/error, this field should be
	// set. In the case where the type of LRO doesn't require any billing,
	// this field should be left unset.
	ReportingMetrics *XPSReportingMetrics `json:"reportingMetrics,omitempty"`

	TablesTrainingOperationMetadata *XPSTablesTrainingOperationMetadata `json:"tablesTrainingOperationMetadata,omitempty"`

	VideoBatchPredictOperationMetadata *XPSVideoBatchPredictOperationMetadata `json:"videoBatchPredictOperationMetadata,omitempty"`

	VideoTrainingOperationMetadata *XPSVideoTrainingOperationMetadata `json:"videoTrainingOperationMetadata,omitempty"`

	VisionTrainingOperationMetadata *XPSVisionTrainingOperationMetadata `json:"visionTrainingOperationMetadata,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ExampleCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExampleCount") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSXpsOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod XPSXpsOperationMetadata
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// XPSXraiAttribution: An explanation method that redistributes
// Integrated Gradients attributions to segmented regions, taking
// advantage of the model's fully differentiable structure. Refer to
// this paper for more details: https://arxiv.org/abs/1906.02825 Only
// supports image Models (modality is IMAGE).
type XPSXraiAttribution struct {
	// StepCount: The number of steps for approximating the path integral. A
	// good value to start is 50 and gradually increase until the sum to
	// diff property is met within the desired error range. Valid range of
	// its value is [1, 100], inclusively.
	StepCount int64 `json:"stepCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "StepCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "StepCount") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *XPSXraiAttribution) MarshalJSON() ([]byte, error) {
	type NoMethod XPSXraiAttribution
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// method id "language.documents.analyzeEntities":

type DocumentsAnalyzeEntitiesCall struct {
	s                      *Service
	analyzeentitiesrequest *AnalyzeEntitiesRequest
	urlParams_             gensupport.URLParams
	ctx_                   context.Context
	header_                http.Header
}

// AnalyzeEntities: Finds named entities (currently proper names and
// common nouns) in the text along with entity types, probability,
// mentions for each entity, and other properties.
func (r *DocumentsService) AnalyzeEntities(analyzeentitiesrequest *AnalyzeEntitiesRequest) *DocumentsAnalyzeEntitiesCall {
	c := &DocumentsAnalyzeEntitiesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.analyzeentitiesrequest = analyzeentitiesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *DocumentsAnalyzeEntitiesCall) Fields(s ...googleapi.Field) *DocumentsAnalyzeEntitiesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *DocumentsAnalyzeEntitiesCall) Context(ctx context.Context) *DocumentsAnalyzeEntitiesCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *DocumentsAnalyzeEntitiesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *DocumentsAnalyzeEntitiesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.analyzeentitiesrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/documents:analyzeEntities")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "language.documents.analyzeEntities" call.
// Exactly one of *AnalyzeEntitiesResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *AnalyzeEntitiesResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *DocumentsAnalyzeEntitiesCall) Do(opts ...googleapi.CallOption) (*AnalyzeEntitiesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &AnalyzeEntitiesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Finds named entities (currently proper names and common nouns) in the text along with entity types, probability, mentions for each entity, and other properties.",
	//   "flatPath": "v2/documents:analyzeEntities",
	//   "httpMethod": "POST",
	//   "id": "language.documents.analyzeEntities",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v2/documents:analyzeEntities",
	//   "request": {
	//     "$ref": "AnalyzeEntitiesRequest"
	//   },
	//   "response": {
	//     "$ref": "AnalyzeEntitiesResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-language",
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "language.documents.analyzeSentiment":

type DocumentsAnalyzeSentimentCall struct {
	s                       *Service
	analyzesentimentrequest *AnalyzeSentimentRequest
	urlParams_              gensupport.URLParams
	ctx_                    context.Context
	header_                 http.Header
}

// AnalyzeSentiment: Analyzes the sentiment of the provided text.
func (r *DocumentsService) AnalyzeSentiment(analyzesentimentrequest *AnalyzeSentimentRequest) *DocumentsAnalyzeSentimentCall {
	c := &DocumentsAnalyzeSentimentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.analyzesentimentrequest = analyzesentimentrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *DocumentsAnalyzeSentimentCall) Fields(s ...googleapi.Field) *DocumentsAnalyzeSentimentCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *DocumentsAnalyzeSentimentCall) Context(ctx context.Context) *DocumentsAnalyzeSentimentCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *DocumentsAnalyzeSentimentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *DocumentsAnalyzeSentimentCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.analyzesentimentrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/documents:analyzeSentiment")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "language.documents.analyzeSentiment" call.
// Exactly one of *AnalyzeSentimentResponse or error will be non-nil.
// Any non-2xx status code is an error. Response headers are in either
// *AnalyzeSentimentResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *DocumentsAnalyzeSentimentCall) Do(opts ...googleapi.CallOption) (*AnalyzeSentimentResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &AnalyzeSentimentResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Analyzes the sentiment of the provided text.",
	//   "flatPath": "v2/documents:analyzeSentiment",
	//   "httpMethod": "POST",
	//   "id": "language.documents.analyzeSentiment",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v2/documents:analyzeSentiment",
	//   "request": {
	//     "$ref": "AnalyzeSentimentRequest"
	//   },
	//   "response": {
	//     "$ref": "AnalyzeSentimentResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-language",
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "language.documents.annotateText":

type DocumentsAnnotateTextCall struct {
	s                   *Service
	annotatetextrequest *AnnotateTextRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// AnnotateText: A convenience method that provides all features in one
// call.
func (r *DocumentsService) AnnotateText(annotatetextrequest *AnnotateTextRequest) *DocumentsAnnotateTextCall {
	c := &DocumentsAnnotateTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.annotatetextrequest = annotatetextrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *DocumentsAnnotateTextCall) Fields(s ...googleapi.Field) *DocumentsAnnotateTextCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *DocumentsAnnotateTextCall) Context(ctx context.Context) *DocumentsAnnotateTextCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *DocumentsAnnotateTextCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *DocumentsAnnotateTextCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotatetextrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/documents:annotateText")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "language.documents.annotateText" call.
// Exactly one of *AnnotateTextResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *AnnotateTextResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *DocumentsAnnotateTextCall) Do(opts ...googleapi.CallOption) (*AnnotateTextResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &AnnotateTextResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "A convenience method that provides all features in one call.",
	//   "flatPath": "v2/documents:annotateText",
	//   "httpMethod": "POST",
	//   "id": "language.documents.annotateText",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v2/documents:annotateText",
	//   "request": {
	//     "$ref": "AnnotateTextRequest"
	//   },
	//   "response": {
	//     "$ref": "AnnotateTextResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-language",
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "language.documents.classifyText":

type DocumentsClassifyTextCall struct {
	s                   *Service
	classifytextrequest *ClassifyTextRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// ClassifyText: Classifies a document into categories.
func (r *DocumentsService) ClassifyText(classifytextrequest *ClassifyTextRequest) *DocumentsClassifyTextCall {
	c := &DocumentsClassifyTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.classifytextrequest = classifytextrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *DocumentsClassifyTextCall) Fields(s ...googleapi.Field) *DocumentsClassifyTextCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *DocumentsClassifyTextCall) Context(ctx context.Context) *DocumentsClassifyTextCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *DocumentsClassifyTextCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *DocumentsClassifyTextCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.classifytextrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/documents:classifyText")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "language.documents.classifyText" call.
// Exactly one of *ClassifyTextResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *ClassifyTextResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *DocumentsClassifyTextCall) Do(opts ...googleapi.CallOption) (*ClassifyTextResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ClassifyTextResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Classifies a document into categories.",
	//   "flatPath": "v2/documents:classifyText",
	//   "httpMethod": "POST",
	//   "id": "language.documents.classifyText",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v2/documents:classifyText",
	//   "request": {
	//     "$ref": "ClassifyTextRequest"
	//   },
	//   "response": {
	//     "$ref": "ClassifyTextResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-language",
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "language.documents.moderateText":

type DocumentsModerateTextCall struct {
	s                   *Service
	moderatetextrequest *ModerateTextRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// ModerateText: Moderates a document for harmful and sensitive
// categories.
func (r *DocumentsService) ModerateText(moderatetextrequest *ModerateTextRequest) *DocumentsModerateTextCall {
	c := &DocumentsModerateTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.moderatetextrequest = moderatetextrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *DocumentsModerateTextCall) Fields(s ...googleapi.Field) *DocumentsModerateTextCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *DocumentsModerateTextCall) Context(ctx context.Context) *DocumentsModerateTextCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *DocumentsModerateTextCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *DocumentsModerateTextCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.moderatetextrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/documents:moderateText")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "language.documents.moderateText" call.
// Exactly one of *ModerateTextResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *ModerateTextResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *DocumentsModerateTextCall) Do(opts ...googleapi.CallOption) (*ModerateTextResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ModerateTextResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Moderates a document for harmful and sensitive categories.",
	//   "flatPath": "v2/documents:moderateText",
	//   "httpMethod": "POST",
	//   "id": "language.documents.moderateText",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v2/documents:moderateText",
	//   "request": {
	//     "$ref": "ModerateTextRequest"
	//   },
	//   "response": {
	//     "$ref": "ModerateTextResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-language",
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}
