1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package bigquery provides access to the BigQuery API.
8//
9// This package is DEPRECATED. Use package cloud.google.com/go/bigquery instead.
10//
11// For product documentation, see: https://cloud.google.com/bigquery/
12//
13// Creating a client
14//
15// Usage example:
16//
17//   import "google.golang.org/api/bigquery/v2"
18//   ...
19//   ctx := context.Background()
20//   bigqueryService, err := bigquery.NewService(ctx)
21//
22// In this example, Google Application Default Credentials are used for authentication.
23//
24// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
25//
26// Other authentication options
27//
28// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
29//
30//   bigqueryService, err := bigquery.NewService(ctx, option.WithScopes(bigquery.DevstorageReadWriteScope))
31//
32// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
33//
34//   bigqueryService, err := bigquery.NewService(ctx, option.WithAPIKey("AIza..."))
35//
36// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
37//
38//   config := &oauth2.Config{...}
39//   // ...
40//   token, err := config.Exchange(ctx, ...)
41//   bigqueryService, err := bigquery.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
42//
43// See https://godoc.org/google.golang.org/api/option/ for details on options.
44package bigquery // import "google.golang.org/api/bigquery/v2"
45
46import (
47	"bytes"
48	"context"
49	"encoding/json"
50	"errors"
51	"fmt"
52	"io"
53	"net/http"
54	"net/url"
55	"strconv"
56	"strings"
57
58	googleapi "google.golang.org/api/googleapi"
59	gensupport "google.golang.org/api/internal/gensupport"
60	option "google.golang.org/api/option"
61	internaloption "google.golang.org/api/option/internaloption"
62	htransport "google.golang.org/api/transport/http"
63)
64
65// Always reference these packages, just in case the auto-generated code
66// below doesn't.
67var _ = bytes.NewBuffer
68var _ = strconv.Itoa
69var _ = fmt.Sprintf
70var _ = json.NewDecoder
71var _ = io.Copy
72var _ = url.Parse
73var _ = gensupport.MarshalJSON
74var _ = googleapi.Version
75var _ = errors.New
76var _ = strings.Replace
77var _ = context.Canceled
78var _ = internaloption.WithDefaultEndpoint
79
80const apiId = "bigquery:v2"
81const apiName = "bigquery"
82const apiVersion = "v2"
83const basePath = "https://bigquery.googleapis.com/bigquery/v2/"
84const mtlsBasePath = "https://bigquery.mtls.googleapis.com/bigquery/v2/"
85
86// OAuth2 scopes used by this API.
87const (
88	// View and manage your data in Google BigQuery
89	BigqueryScope = "https://www.googleapis.com/auth/bigquery"
90
91	// Insert data into Google BigQuery
92	BigqueryInsertdataScope = "https://www.googleapis.com/auth/bigquery.insertdata"
93
94	// View your data in Google BigQuery
95	BigqueryReadonlyScope = "https://www.googleapis.com/auth/bigquery.readonly"
96
97	// View and manage your data across Google Cloud Platform services
98	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
99
100	// View your data across Google Cloud Platform services
101	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
102
103	// Manage your data and permissions in Google Cloud Storage
104	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
105
106	// View your data in Google Cloud Storage
107	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
108
109	// Manage your data in Google Cloud Storage
110	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
111)
112
113// NewService creates a new Service.
114func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
115	scopesOption := option.WithScopes(
116		"https://www.googleapis.com/auth/bigquery",
117		"https://www.googleapis.com/auth/bigquery.insertdata",
118		"https://www.googleapis.com/auth/bigquery.readonly",
119		"https://www.googleapis.com/auth/cloud-platform",
120		"https://www.googleapis.com/auth/cloud-platform.read-only",
121		"https://www.googleapis.com/auth/devstorage.full_control",
122		"https://www.googleapis.com/auth/devstorage.read_only",
123		"https://www.googleapis.com/auth/devstorage.read_write",
124	)
125	// NOTE: prepend, so we don't override user-specified scopes.
126	opts = append([]option.ClientOption{scopesOption}, opts...)
127	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
128	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
129	client, endpoint, err := htransport.NewClient(ctx, opts...)
130	if err != nil {
131		return nil, err
132	}
133	s, err := New(client)
134	if err != nil {
135		return nil, err
136	}
137	if endpoint != "" {
138		s.BasePath = endpoint
139	}
140	return s, nil
141}
142
143// New creates a new Service. It uses the provided http.Client for requests.
144//
145// Deprecated: please use NewService instead.
146// To provide a custom HTTP client, use option.WithHTTPClient.
147// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
148func New(client *http.Client) (*Service, error) {
149	if client == nil {
150		return nil, errors.New("client is nil")
151	}
152	s := &Service{client: client, BasePath: basePath}
153	s.Datasets = NewDatasetsService(s)
154	s.Jobs = NewJobsService(s)
155	s.Models = NewModelsService(s)
156	s.Projects = NewProjectsService(s)
157	s.Routines = NewRoutinesService(s)
158	s.RowAccessPolicies = NewRowAccessPoliciesService(s)
159	s.Tabledata = NewTabledataService(s)
160	s.Tables = NewTablesService(s)
161	return s, nil
162}
163
164type Service struct {
165	client    *http.Client
166	BasePath  string // API endpoint base URL
167	UserAgent string // optional additional User-Agent fragment
168
169	Datasets *DatasetsService
170
171	Jobs *JobsService
172
173	Models *ModelsService
174
175	Projects *ProjectsService
176
177	Routines *RoutinesService
178
179	RowAccessPolicies *RowAccessPoliciesService
180
181	Tabledata *TabledataService
182
183	Tables *TablesService
184}
185
186func (s *Service) userAgent() string {
187	if s.UserAgent == "" {
188		return googleapi.UserAgent
189	}
190	return googleapi.UserAgent + " " + s.UserAgent
191}
192
193func NewDatasetsService(s *Service) *DatasetsService {
194	rs := &DatasetsService{s: s}
195	return rs
196}
197
198type DatasetsService struct {
199	s *Service
200}
201
202func NewJobsService(s *Service) *JobsService {
203	rs := &JobsService{s: s}
204	return rs
205}
206
207type JobsService struct {
208	s *Service
209}
210
211func NewModelsService(s *Service) *ModelsService {
212	rs := &ModelsService{s: s}
213	return rs
214}
215
216type ModelsService struct {
217	s *Service
218}
219
220func NewProjectsService(s *Service) *ProjectsService {
221	rs := &ProjectsService{s: s}
222	return rs
223}
224
225type ProjectsService struct {
226	s *Service
227}
228
229func NewRoutinesService(s *Service) *RoutinesService {
230	rs := &RoutinesService{s: s}
231	return rs
232}
233
234type RoutinesService struct {
235	s *Service
236}
237
238func NewRowAccessPoliciesService(s *Service) *RowAccessPoliciesService {
239	rs := &RowAccessPoliciesService{s: s}
240	return rs
241}
242
243type RowAccessPoliciesService struct {
244	s *Service
245}
246
247func NewTabledataService(s *Service) *TabledataService {
248	rs := &TabledataService{s: s}
249	return rs
250}
251
252type TabledataService struct {
253	s *Service
254}
255
256func NewTablesService(s *Service) *TablesService {
257	rs := &TablesService{s: s}
258	return rs
259}
260
261type TablesService struct {
262	s *Service
263}
264
265// AggregateClassificationMetrics: Aggregate metrics for
266// classification/classifier models. For multi-class models, the metrics
267// are either macro-averaged or micro-averaged. When macro-averaged, the
268// metrics are calculated for each label and then an unweighted average
269// is taken of those values. When micro-averaged, the metric is
270// calculated globally by counting the total number of correctly
271// predicted rows.
272type AggregateClassificationMetrics struct {
273	// Accuracy: Accuracy is the fraction of predictions given the correct
274	// label. For multiclass this is a micro-averaged metric.
275	Accuracy float64 `json:"accuracy,omitempty"`
276
277	// F1Score: The F1 score is an average of recall and precision. For
278	// multiclass this is a macro-averaged metric.
279	F1Score float64 `json:"f1Score,omitempty"`
280
281	// LogLoss: Logarithmic Loss. For multiclass this is a macro-averaged
282	// metric.
283	LogLoss float64 `json:"logLoss,omitempty"`
284
285	// Precision: Precision is the fraction of actual positive predictions
286	// that had positive actual labels. For multiclass this is a
287	// macro-averaged metric treating each class as a binary classifier.
288	Precision float64 `json:"precision,omitempty"`
289
290	// Recall: Recall is the fraction of actual positive labels that were
291	// given a positive prediction. For multiclass this is a macro-averaged
292	// metric.
293	Recall float64 `json:"recall,omitempty"`
294
295	// RocAuc: Area Under a ROC Curve. For multiclass this is a
296	// macro-averaged metric.
297	RocAuc float64 `json:"rocAuc,omitempty"`
298
299	// Threshold: Threshold at which the metrics are computed. For binary
300	// classification models this is the positive class threshold. For
301	// multi-class classfication models this is the confidence threshold.
302	Threshold float64 `json:"threshold,omitempty"`
303
304	// ForceSendFields is a list of field names (e.g. "Accuracy") to
305	// unconditionally include in API requests. By default, fields with
306	// empty values are omitted from API requests. However, any non-pointer,
307	// non-interface field appearing in ForceSendFields will be sent to the
308	// server regardless of whether the field is empty or not. This may be
309	// used to include empty fields in Patch requests.
310	ForceSendFields []string `json:"-"`
311
312	// NullFields is a list of field names (e.g. "Accuracy") to include in
313	// API requests with the JSON null value. By default, fields with empty
314	// values are omitted from API requests. However, any field with an
315	// empty value appearing in NullFields will be sent to the server as
316	// null. It is an error if a field in this list has a non-empty value.
317	// This may be used to include null fields in Patch requests.
318	NullFields []string `json:"-"`
319}
320
321func (s *AggregateClassificationMetrics) MarshalJSON() ([]byte, error) {
322	type NoMethod AggregateClassificationMetrics
323	raw := NoMethod(*s)
324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
325}
326
327func (s *AggregateClassificationMetrics) UnmarshalJSON(data []byte) error {
328	type NoMethod AggregateClassificationMetrics
329	var s1 struct {
330		Accuracy  gensupport.JSONFloat64 `json:"accuracy"`
331		F1Score   gensupport.JSONFloat64 `json:"f1Score"`
332		LogLoss   gensupport.JSONFloat64 `json:"logLoss"`
333		Precision gensupport.JSONFloat64 `json:"precision"`
334		Recall    gensupport.JSONFloat64 `json:"recall"`
335		RocAuc    gensupport.JSONFloat64 `json:"rocAuc"`
336		Threshold gensupport.JSONFloat64 `json:"threshold"`
337		*NoMethod
338	}
339	s1.NoMethod = (*NoMethod)(s)
340	if err := json.Unmarshal(data, &s1); err != nil {
341		return err
342	}
343	s.Accuracy = float64(s1.Accuracy)
344	s.F1Score = float64(s1.F1Score)
345	s.LogLoss = float64(s1.LogLoss)
346	s.Precision = float64(s1.Precision)
347	s.Recall = float64(s1.Recall)
348	s.RocAuc = float64(s1.RocAuc)
349	s.Threshold = float64(s1.Threshold)
350	return nil
351}
352
353// Argument: Input/output argument of a function or a stored procedure.
354type Argument struct {
355	// ArgumentKind: Optional. Defaults to FIXED_TYPE.
356	//
357	// Possible values:
358	//   "ARGUMENT_KIND_UNSPECIFIED"
359	//   "FIXED_TYPE" - The argument is a variable with fully specified
360	// type, which can be a struct or an array, but not a table.
361	//   "ANY_TYPE" - The argument is any type, including struct or array,
362	// but not a table. To be added: FIXED_TABLE, ANY_TABLE
363	ArgumentKind string `json:"argumentKind,omitempty"`
364
365	// DataType: Required unless argument_kind = ANY_TYPE.
366	DataType *StandardSqlDataType `json:"dataType,omitempty"`
367
368	// Mode: Optional. Specifies whether the argument is input or output.
369	// Can be set for procedures only.
370	//
371	// Possible values:
372	//   "MODE_UNSPECIFIED"
373	//   "IN" - The argument is input-only.
374	//   "OUT" - The argument is output-only.
375	//   "INOUT" - The argument is both an input and an output.
376	Mode string `json:"mode,omitempty"`
377
378	// Name: Optional. The name of this argument. Can be absent for function
379	// return argument.
380	Name string `json:"name,omitempty"`
381
382	// ForceSendFields is a list of field names (e.g. "ArgumentKind") to
383	// unconditionally include in API requests. By default, fields with
384	// empty values are omitted from API requests. However, any non-pointer,
385	// non-interface field appearing in ForceSendFields will be sent to the
386	// server regardless of whether the field is empty or not. This may be
387	// used to include empty fields in Patch requests.
388	ForceSendFields []string `json:"-"`
389
390	// NullFields is a list of field names (e.g. "ArgumentKind") to include
391	// in API requests with the JSON null value. By default, fields with
392	// empty values are omitted from API requests. However, any field with
393	// an empty value appearing in NullFields will be sent to the server as
394	// null. It is an error if a field in this list has a non-empty value.
395	// This may be used to include null fields in Patch requests.
396	NullFields []string `json:"-"`
397}
398
399func (s *Argument) MarshalJSON() ([]byte, error) {
400	type NoMethod Argument
401	raw := NoMethod(*s)
402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
403}
404
405// ArimaCoefficients: Arima coefficients.
406type ArimaCoefficients struct {
407	// AutoRegressiveCoefficients: Auto-regressive coefficients, an array of
408	// double.
409	AutoRegressiveCoefficients []float64 `json:"autoRegressiveCoefficients,omitempty"`
410
411	// InterceptCoefficient: Intercept coefficient, just a double not an
412	// array.
413	InterceptCoefficient float64 `json:"interceptCoefficient,omitempty"`
414
415	// MovingAverageCoefficients: Moving-average coefficients, an array of
416	// double.
417	MovingAverageCoefficients []float64 `json:"movingAverageCoefficients,omitempty"`
418
419	// ForceSendFields is a list of field names (e.g.
420	// "AutoRegressiveCoefficients") to unconditionally include in API
421	// requests. By default, fields with empty values are omitted from API
422	// requests. However, any non-pointer, non-interface field appearing in
423	// ForceSendFields will be sent to the server regardless of whether the
424	// field is empty or not. This may be used to include empty fields in
425	// Patch requests.
426	ForceSendFields []string `json:"-"`
427
428	// NullFields is a list of field names (e.g.
429	// "AutoRegressiveCoefficients") to include in API requests with the
430	// JSON null value. By default, fields with empty values are omitted
431	// from API requests. However, any field with an empty value appearing
432	// in NullFields will be sent to the server as null. It is an error if a
433	// field in this list has a non-empty value. This may be used to include
434	// null fields in Patch requests.
435	NullFields []string `json:"-"`
436}
437
438func (s *ArimaCoefficients) MarshalJSON() ([]byte, error) {
439	type NoMethod ArimaCoefficients
440	raw := NoMethod(*s)
441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
442}
443
444func (s *ArimaCoefficients) UnmarshalJSON(data []byte) error {
445	type NoMethod ArimaCoefficients
446	var s1 struct {
447		InterceptCoefficient gensupport.JSONFloat64 `json:"interceptCoefficient"`
448		*NoMethod
449	}
450	s1.NoMethod = (*NoMethod)(s)
451	if err := json.Unmarshal(data, &s1); err != nil {
452		return err
453	}
454	s.InterceptCoefficient = float64(s1.InterceptCoefficient)
455	return nil
456}
457
458// ArimaFittingMetrics: ARIMA model fitting metrics.
459type ArimaFittingMetrics struct {
460	// Aic: AIC.
461	Aic float64 `json:"aic,omitempty"`
462
463	// LogLikelihood: Log-likelihood.
464	LogLikelihood float64 `json:"logLikelihood,omitempty"`
465
466	// Variance: Variance.
467	Variance float64 `json:"variance,omitempty"`
468
469	// ForceSendFields is a list of field names (e.g. "Aic") to
470	// unconditionally include in API requests. By default, fields with
471	// empty values are omitted from API requests. However, any non-pointer,
472	// non-interface field appearing in ForceSendFields will be sent to the
473	// server regardless of whether the field is empty or not. This may be
474	// used to include empty fields in Patch requests.
475	ForceSendFields []string `json:"-"`
476
477	// NullFields is a list of field names (e.g. "Aic") to include in API
478	// requests with the JSON null value. By default, fields with empty
479	// values are omitted from API requests. However, any field with an
480	// empty value appearing in NullFields will be sent to the server as
481	// null. It is an error if a field in this list has a non-empty value.
482	// This may be used to include null fields in Patch requests.
483	NullFields []string `json:"-"`
484}
485
486func (s *ArimaFittingMetrics) MarshalJSON() ([]byte, error) {
487	type NoMethod ArimaFittingMetrics
488	raw := NoMethod(*s)
489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
490}
491
492func (s *ArimaFittingMetrics) UnmarshalJSON(data []byte) error {
493	type NoMethod ArimaFittingMetrics
494	var s1 struct {
495		Aic           gensupport.JSONFloat64 `json:"aic"`
496		LogLikelihood gensupport.JSONFloat64 `json:"logLikelihood"`
497		Variance      gensupport.JSONFloat64 `json:"variance"`
498		*NoMethod
499	}
500	s1.NoMethod = (*NoMethod)(s)
501	if err := json.Unmarshal(data, &s1); err != nil {
502		return err
503	}
504	s.Aic = float64(s1.Aic)
505	s.LogLikelihood = float64(s1.LogLikelihood)
506	s.Variance = float64(s1.Variance)
507	return nil
508}
509
510// ArimaForecastingMetrics: Model evaluation metrics for ARIMA
511// forecasting models.
512type ArimaForecastingMetrics struct {
513	// ArimaFittingMetrics: Arima model fitting metrics.
514	ArimaFittingMetrics []*ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
515
516	// ArimaSingleModelForecastingMetrics: Repeated as there can be many
517	// metric sets (one for each model) in auto-arima and the large-scale
518	// case.
519	ArimaSingleModelForecastingMetrics []*ArimaSingleModelForecastingMetrics `json:"arimaSingleModelForecastingMetrics,omitempty"`
520
521	// HasDrift: Whether Arima model fitted with drift or not. It is always
522	// false when d is not 1.
523	HasDrift []bool `json:"hasDrift,omitempty"`
524
525	// NonSeasonalOrder: Non-seasonal order.
526	NonSeasonalOrder []*ArimaOrder `json:"nonSeasonalOrder,omitempty"`
527
528	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
529	// are supported for one time series.
530	//
531	// Possible values:
532	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
533	//   "NO_SEASONALITY" - No seasonality
534	//   "DAILY" - Daily period, 24 hours.
535	//   "WEEKLY" - Weekly period, 7 days.
536	//   "MONTHLY" - Monthly period, 30 days or irregular.
537	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
538	//   "YEARLY" - Yearly period, 365 days or irregular.
539	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
540
541	// TimeSeriesId: Id to differentiate different time series for the
542	// large-scale case.
543	TimeSeriesId []string `json:"timeSeriesId,omitempty"`
544
545	// ForceSendFields is a list of field names (e.g. "ArimaFittingMetrics")
546	// to unconditionally include in API requests. By default, fields with
547	// empty values are omitted from API requests. However, any non-pointer,
548	// non-interface field appearing in ForceSendFields will be sent to the
549	// server regardless of whether the field is empty or not. This may be
550	// used to include empty fields in Patch requests.
551	ForceSendFields []string `json:"-"`
552
553	// NullFields is a list of field names (e.g. "ArimaFittingMetrics") to
554	// include in API requests with the JSON null value. By default, fields
555	// with empty values are omitted from API requests. However, any field
556	// with an empty value appearing in NullFields will be sent to the
557	// server as null. It is an error if a field in this list has a
558	// non-empty value. This may be used to include null fields in Patch
559	// requests.
560	NullFields []string `json:"-"`
561}
562
563func (s *ArimaForecastingMetrics) MarshalJSON() ([]byte, error) {
564	type NoMethod ArimaForecastingMetrics
565	raw := NoMethod(*s)
566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
567}
568
569// ArimaModelInfo: Arima model information.
570type ArimaModelInfo struct {
571	// ArimaCoefficients: Arima coefficients.
572	ArimaCoefficients *ArimaCoefficients `json:"arimaCoefficients,omitempty"`
573
574	// ArimaFittingMetrics: Arima fitting metrics.
575	ArimaFittingMetrics *ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
576
577	// HasDrift: Whether Arima model fitted with drift or not. It is always
578	// false when d is not 1.
579	HasDrift bool `json:"hasDrift,omitempty"`
580
581	// NonSeasonalOrder: Non-seasonal order.
582	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
583
584	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
585	// are supported for one time series.
586	//
587	// Possible values:
588	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
589	//   "NO_SEASONALITY" - No seasonality
590	//   "DAILY" - Daily period, 24 hours.
591	//   "WEEKLY" - Weekly period, 7 days.
592	//   "MONTHLY" - Monthly period, 30 days or irregular.
593	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
594	//   "YEARLY" - Yearly period, 365 days or irregular.
595	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
596
597	// TimeSeriesId: The id to indicate different time series.
598	TimeSeriesId string `json:"timeSeriesId,omitempty"`
599
600	// ForceSendFields is a list of field names (e.g. "ArimaCoefficients")
601	// to unconditionally include in API requests. By default, fields with
602	// empty values are omitted from API requests. However, any non-pointer,
603	// non-interface field appearing in ForceSendFields will be sent to the
604	// server regardless of whether the field is empty or not. This may be
605	// used to include empty fields in Patch requests.
606	ForceSendFields []string `json:"-"`
607
608	// NullFields is a list of field names (e.g. "ArimaCoefficients") to
609	// include in API requests with the JSON null value. By default, fields
610	// with empty values are omitted from API requests. However, any field
611	// with an empty value appearing in NullFields will be sent to the
612	// server as null. It is an error if a field in this list has a
613	// non-empty value. This may be used to include null fields in Patch
614	// requests.
615	NullFields []string `json:"-"`
616}
617
618func (s *ArimaModelInfo) MarshalJSON() ([]byte, error) {
619	type NoMethod ArimaModelInfo
620	raw := NoMethod(*s)
621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
622}
623
624// ArimaOrder: Arima order, can be used for both non-seasonal and
625// seasonal parts.
626type ArimaOrder struct {
627	// D: Order of the differencing part.
628	D int64 `json:"d,omitempty,string"`
629
630	// P: Order of the autoregressive part.
631	P int64 `json:"p,omitempty,string"`
632
633	// Q: Order of the moving-average part.
634	Q int64 `json:"q,omitempty,string"`
635
636	// ForceSendFields is a list of field names (e.g. "D") to
637	// unconditionally include in API requests. By default, fields with
638	// empty values are omitted from API requests. However, any non-pointer,
639	// non-interface field appearing in ForceSendFields will be sent to the
640	// server regardless of whether the field is empty or not. This may be
641	// used to include empty fields in Patch requests.
642	ForceSendFields []string `json:"-"`
643
644	// NullFields is a list of field names (e.g. "D") to include in API
645	// requests with the JSON null value. By default, fields with empty
646	// values are omitted from API requests. However, any field with an
647	// empty value appearing in NullFields will be sent to the server as
648	// null. It is an error if a field in this list has a non-empty value.
649	// This may be used to include null fields in Patch requests.
650	NullFields []string `json:"-"`
651}
652
653func (s *ArimaOrder) MarshalJSON() ([]byte, error) {
654	type NoMethod ArimaOrder
655	raw := NoMethod(*s)
656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
657}
658
659// ArimaResult: (Auto-)arima fitting result. Wrap everything in
660// ArimaResult for easier refactoring if we want to use model-specific
661// iteration results.
662type ArimaResult struct {
663	// ArimaModelInfo: This message is repeated because there are multiple
664	// arima models fitted in auto-arima. For non-auto-arima model, its size
665	// is one.
666	ArimaModelInfo []*ArimaModelInfo `json:"arimaModelInfo,omitempty"`
667
668	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
669	// are supported for one time series.
670	//
671	// Possible values:
672	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
673	//   "NO_SEASONALITY" - No seasonality
674	//   "DAILY" - Daily period, 24 hours.
675	//   "WEEKLY" - Weekly period, 7 days.
676	//   "MONTHLY" - Monthly period, 30 days or irregular.
677	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
678	//   "YEARLY" - Yearly period, 365 days or irregular.
679	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
680
681	// ForceSendFields is a list of field names (e.g. "ArimaModelInfo") to
682	// unconditionally include in API requests. By default, fields with
683	// empty values are omitted from API requests. However, any non-pointer,
684	// non-interface field appearing in ForceSendFields will be sent to the
685	// server regardless of whether the field is empty or not. This may be
686	// used to include empty fields in Patch requests.
687	ForceSendFields []string `json:"-"`
688
689	// NullFields is a list of field names (e.g. "ArimaModelInfo") to
690	// include in API requests with the JSON null value. By default, fields
691	// with empty values are omitted from API requests. However, any field
692	// with an empty value appearing in NullFields will be sent to the
693	// server as null. It is an error if a field in this list has a
694	// non-empty value. This may be used to include null fields in Patch
695	// requests.
696	NullFields []string `json:"-"`
697}
698
699func (s *ArimaResult) MarshalJSON() ([]byte, error) {
700	type NoMethod ArimaResult
701	raw := NoMethod(*s)
702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
703}
704
705// ArimaSingleModelForecastingMetrics: Model evaluation metrics for a
706// single ARIMA forecasting model.
707type ArimaSingleModelForecastingMetrics struct {
708	// ArimaFittingMetrics: Arima fitting metrics.
709	ArimaFittingMetrics *ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
710
711	// HasDrift: Is arima model fitted with drift or not. It is always false
712	// when d is not 1.
713	HasDrift bool `json:"hasDrift,omitempty"`
714
715	// NonSeasonalOrder: Non-seasonal order.
716	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
717
718	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
719	// are supported for one time series.
720	//
721	// Possible values:
722	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
723	//   "NO_SEASONALITY" - No seasonality
724	//   "DAILY" - Daily period, 24 hours.
725	//   "WEEKLY" - Weekly period, 7 days.
726	//   "MONTHLY" - Monthly period, 30 days or irregular.
727	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
728	//   "YEARLY" - Yearly period, 365 days or irregular.
729	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
730
731	// TimeSeriesId: The id to indicate different time series.
732	TimeSeriesId string `json:"timeSeriesId,omitempty"`
733
734	// ForceSendFields is a list of field names (e.g. "ArimaFittingMetrics")
735	// to unconditionally include in API requests. By default, fields with
736	// empty values are omitted from API requests. However, any non-pointer,
737	// non-interface field appearing in ForceSendFields will be sent to the
738	// server regardless of whether the field is empty or not. This may be
739	// used to include empty fields in Patch requests.
740	ForceSendFields []string `json:"-"`
741
742	// NullFields is a list of field names (e.g. "ArimaFittingMetrics") to
743	// include in API requests with the JSON null value. By default, fields
744	// with empty values are omitted from API requests. However, any field
745	// with an empty value appearing in NullFields will be sent to the
746	// server as null. It is an error if a field in this list has a
747	// non-empty value. This may be used to include null fields in Patch
748	// requests.
749	NullFields []string `json:"-"`
750}
751
752func (s *ArimaSingleModelForecastingMetrics) MarshalJSON() ([]byte, error) {
753	type NoMethod ArimaSingleModelForecastingMetrics
754	raw := NoMethod(*s)
755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
756}
757
758// AuditConfig: Specifies the audit configuration for a service. The
759// configuration determines which permission types are logged, and what
760// identities, if any, are exempted from logging. An AuditConfig must
761// have one or more AuditLogConfigs. If there are AuditConfigs for both
762// `allServices` and a specific service, the union of the two
763// AuditConfigs is used for that service: the log_types specified in
764// each AuditConfig are enabled, and the exempted_members in each
765// AuditLogConfig are exempted. Example Policy with multiple
766// AuditConfigs: { "audit_configs": [ { "service": "allServices",
767// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
768// [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
769// "log_type": "ADMIN_READ" } ] }, { "service":
770// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
771// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
772// "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
773// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
774// jose@example.com from DATA_READ logging, and aliya@example.com from
775// DATA_WRITE logging.
776type AuditConfig struct {
777	// AuditLogConfigs: The configuration for logging of each type of
778	// permission.
779	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
780
781	// Service: Specifies a service that will be enabled for audit logging.
782	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
783	// `allServices` is a special value that covers all services.
784	Service string `json:"service,omitempty"`
785
786	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
787	// unconditionally include in API requests. By default, fields with
788	// empty values are omitted from API requests. However, any non-pointer,
789	// non-interface field appearing in ForceSendFields will be sent to the
790	// server regardless of whether the field is empty or not. This may be
791	// used to include empty fields in Patch requests.
792	ForceSendFields []string `json:"-"`
793
794	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
795	// include in API requests with the JSON null value. By default, fields
796	// with empty values are omitted from API requests. However, any field
797	// with an empty value appearing in NullFields will be sent to the
798	// server as null. It is an error if a field in this list has a
799	// non-empty value. This may be used to include null fields in Patch
800	// requests.
801	NullFields []string `json:"-"`
802}
803
804func (s *AuditConfig) MarshalJSON() ([]byte, error) {
805	type NoMethod AuditConfig
806	raw := NoMethod(*s)
807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
808}
809
810// AuditLogConfig: Provides the configuration for logging a type of
811// permissions. Example: { "audit_log_configs": [ { "log_type":
812// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
813// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
814// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
815// logging.
816type AuditLogConfig struct {
817	// ExemptedMembers: Specifies the identities that do not cause logging
818	// for this type of permission. Follows the same format of
819	// Binding.members.
820	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
821
822	// LogType: The log type that this config enables.
823	//
824	// Possible values:
825	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
826	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
827	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
828	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
829	LogType string `json:"logType,omitempty"`
830
831	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
832	// unconditionally include in API requests. By default, fields with
833	// empty values are omitted from API requests. However, any non-pointer,
834	// non-interface field appearing in ForceSendFields will be sent to the
835	// server regardless of whether the field is empty or not. This may be
836	// used to include empty fields in Patch requests.
837	ForceSendFields []string `json:"-"`
838
839	// NullFields is a list of field names (e.g. "ExemptedMembers") to
840	// include in API requests with the JSON null value. By default, fields
841	// with empty values are omitted from API requests. However, any field
842	// with an empty value appearing in NullFields will be sent to the
843	// server as null. It is an error if a field in this list has a
844	// non-empty value. This may be used to include null fields in Patch
845	// requests.
846	NullFields []string `json:"-"`
847}
848
849func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
850	type NoMethod AuditLogConfig
851	raw := NoMethod(*s)
852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
853}
854
855type BigQueryModelTraining struct {
856	// CurrentIteration: [Output-only, Beta] Index of current ML training
857	// iteration. Updated during create model query job to show job
858	// progress.
859	CurrentIteration int64 `json:"currentIteration,omitempty"`
860
861	// ExpectedTotalIterations: [Output-only, Beta] Expected number of
862	// iterations for the create model query job specified as num_iterations
863	// in the input query. The actual total number of iterations may be less
864	// than this number due to early stop.
865	ExpectedTotalIterations int64 `json:"expectedTotalIterations,omitempty,string"`
866
867	// ForceSendFields is a list of field names (e.g. "CurrentIteration") to
868	// unconditionally include in API requests. By default, fields with
869	// empty values are omitted from API requests. However, any non-pointer,
870	// non-interface field appearing in ForceSendFields will be sent to the
871	// server regardless of whether the field is empty or not. This may be
872	// used to include empty fields in Patch requests.
873	ForceSendFields []string `json:"-"`
874
875	// NullFields is a list of field names (e.g. "CurrentIteration") to
876	// include in API requests with the JSON null value. By default, fields
877	// with empty values are omitted from API requests. However, any field
878	// with an empty value appearing in NullFields will be sent to the
879	// server as null. It is an error if a field in this list has a
880	// non-empty value. This may be used to include null fields in Patch
881	// requests.
882	NullFields []string `json:"-"`
883}
884
885func (s *BigQueryModelTraining) MarshalJSON() ([]byte, error) {
886	type NoMethod BigQueryModelTraining
887	raw := NoMethod(*s)
888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
889}
890
891type BigtableColumn struct {
892	// Encoding: [Optional] The encoding of the values when the type is not
893	// STRING. Acceptable encoding values are: TEXT - indicates values are
894	// alphanumeric text strings. BINARY - indicates values are encoded
895	// using HBase Bytes.toBytes family of functions. 'encoding' can also be
896	// set at the column family level. However, the setting at this level
897	// takes precedence if 'encoding' is set at both levels.
898	Encoding string `json:"encoding,omitempty"`
899
900	// FieldName: [Optional] If the qualifier is not a valid BigQuery field
901	// identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid
902	// identifier must be provided as the column field name and is used as
903	// field name in queries.
904	FieldName string `json:"fieldName,omitempty"`
905
906	// OnlyReadLatest: [Optional] If this is set, only the latest version of
907	// value in this column are exposed. 'onlyReadLatest' can also be set at
908	// the column family level. However, the setting at this level takes
909	// precedence if 'onlyReadLatest' is set at both levels.
910	OnlyReadLatest bool `json:"onlyReadLatest,omitempty"`
911
912	// QualifierEncoded: [Required] Qualifier of the column. Columns in the
913	// parent column family that has this exact qualifier are exposed as .
914	// field. If the qualifier is valid UTF-8 string, it can be specified in
915	// the qualifier_string field. Otherwise, a base-64 encoded value must
916	// be set to qualifier_encoded. The column field name is the same as the
917	// column qualifier. However, if the qualifier is not a valid BigQuery
918	// field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid
919	// identifier must be provided as field_name.
920	QualifierEncoded string `json:"qualifierEncoded,omitempty"`
921
922	QualifierString string `json:"qualifierString,omitempty"`
923
924	// Type: [Optional] The type to convert the value in cells of this
925	// column. The values are expected to be encoded using HBase
926	// Bytes.toBytes function when using the BINARY encoding value.
927	// Following BigQuery types are allowed (case-sensitive) - BYTES STRING
928	// INTEGER FLOAT BOOLEAN Default type is BYTES. 'type' can also be set
929	// at the column family level. However, the setting at this level takes
930	// precedence if 'type' is set at both levels.
931	Type string `json:"type,omitempty"`
932
933	// ForceSendFields is a list of field names (e.g. "Encoding") to
934	// unconditionally include in API requests. By default, fields with
935	// empty values are omitted from API requests. However, any non-pointer,
936	// non-interface field appearing in ForceSendFields will be sent to the
937	// server regardless of whether the field is empty or not. This may be
938	// used to include empty fields in Patch requests.
939	ForceSendFields []string `json:"-"`
940
941	// NullFields is a list of field names (e.g. "Encoding") to include in
942	// API requests with the JSON null value. By default, fields with empty
943	// values are omitted from API requests. However, any field with an
944	// empty value appearing in NullFields will be sent to the server as
945	// null. It is an error if a field in this list has a non-empty value.
946	// This may be used to include null fields in Patch requests.
947	NullFields []string `json:"-"`
948}
949
950func (s *BigtableColumn) MarshalJSON() ([]byte, error) {
951	type NoMethod BigtableColumn
952	raw := NoMethod(*s)
953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
954}
955
956type BigtableColumnFamily struct {
957	// Columns: [Optional] Lists of columns that should be exposed as
958	// individual fields as opposed to a list of (column name, value) pairs.
959	// All columns whose qualifier matches a qualifier in this list can be
960	// accessed as .. Other columns can be accessed as a list through
961	// .Column field.
962	Columns []*BigtableColumn `json:"columns,omitempty"`
963
964	// Encoding: [Optional] The encoding of the values when the type is not
965	// STRING. Acceptable encoding values are: TEXT - indicates values are
966	// alphanumeric text strings. BINARY - indicates values are encoded
967	// using HBase Bytes.toBytes family of functions. This can be overridden
968	// for a specific column by listing that column in 'columns' and
969	// specifying an encoding for it.
970	Encoding string `json:"encoding,omitempty"`
971
972	// FamilyId: Identifier of the column family.
973	FamilyId string `json:"familyId,omitempty"`
974
975	// OnlyReadLatest: [Optional] If this is set only the latest version of
976	// value are exposed for all columns in this column family. This can be
977	// overridden for a specific column by listing that column in 'columns'
978	// and specifying a different setting for that column.
979	OnlyReadLatest bool `json:"onlyReadLatest,omitempty"`
980
981	// Type: [Optional] The type to convert the value in cells of this
982	// column family. The values are expected to be encoded using HBase
983	// Bytes.toBytes function when using the BINARY encoding value.
984	// Following BigQuery types are allowed (case-sensitive) - BYTES STRING
985	// INTEGER FLOAT BOOLEAN Default type is BYTES. This can be overridden
986	// for a specific column by listing that column in 'columns' and
987	// specifying a type for it.
988	Type string `json:"type,omitempty"`
989
990	// ForceSendFields is a list of field names (e.g. "Columns") to
991	// unconditionally include in API requests. By default, fields with
992	// empty values are omitted from API requests. However, any non-pointer,
993	// non-interface field appearing in ForceSendFields will be sent to the
994	// server regardless of whether the field is empty or not. This may be
995	// used to include empty fields in Patch requests.
996	ForceSendFields []string `json:"-"`
997
998	// NullFields is a list of field names (e.g. "Columns") to include in
999	// API requests with the JSON null value. By default, fields with empty
1000	// values are omitted from API requests. However, any field with an
1001	// empty value appearing in NullFields will be sent to the server as
1002	// null. It is an error if a field in this list has a non-empty value.
1003	// This may be used to include null fields in Patch requests.
1004	NullFields []string `json:"-"`
1005}
1006
1007func (s *BigtableColumnFamily) MarshalJSON() ([]byte, error) {
1008	type NoMethod BigtableColumnFamily
1009	raw := NoMethod(*s)
1010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1011}
1012
1013type BigtableOptions struct {
1014	// ColumnFamilies: [Optional] List of column families to expose in the
1015	// table schema along with their types. This list restricts the column
1016	// families that can be referenced in queries and specifies their value
1017	// types. You can use this list to do type conversions - see the 'type'
1018	// field for more details. If you leave this list empty, all column
1019	// families are present in the table schema and their values are read as
1020	// BYTES. During a query only the column families referenced in that
1021	// query are read from Bigtable.
1022	ColumnFamilies []*BigtableColumnFamily `json:"columnFamilies,omitempty"`
1023
1024	// IgnoreUnspecifiedColumnFamilies: [Optional] If field is true, then
1025	// the column families that are not specified in columnFamilies list are
1026	// not exposed in the table schema. Otherwise, they are read with BYTES
1027	// type values. The default value is false.
1028	IgnoreUnspecifiedColumnFamilies bool `json:"ignoreUnspecifiedColumnFamilies,omitempty"`
1029
1030	// ReadRowkeyAsString: [Optional] If field is true, then the rowkey
1031	// column families will be read and converted to string. Otherwise they
1032	// are read with BYTES type values and users need to manually cast them
1033	// with CAST if necessary. The default value is false.
1034	ReadRowkeyAsString bool `json:"readRowkeyAsString,omitempty"`
1035
1036	// ForceSendFields is a list of field names (e.g. "ColumnFamilies") to
1037	// unconditionally include in API requests. By default, fields with
1038	// empty values are omitted from API requests. However, any non-pointer,
1039	// non-interface field appearing in ForceSendFields will be sent to the
1040	// server regardless of whether the field is empty or not. This may be
1041	// used to include empty fields in Patch requests.
1042	ForceSendFields []string `json:"-"`
1043
1044	// NullFields is a list of field names (e.g. "ColumnFamilies") to
1045	// include in API requests with the JSON null value. By default, fields
1046	// with empty values are omitted from API requests. However, any field
1047	// with an empty value appearing in NullFields will be sent to the
1048	// server as null. It is an error if a field in this list has a
1049	// non-empty value. This may be used to include null fields in Patch
1050	// requests.
1051	NullFields []string `json:"-"`
1052}
1053
1054func (s *BigtableOptions) MarshalJSON() ([]byte, error) {
1055	type NoMethod BigtableOptions
1056	raw := NoMethod(*s)
1057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1058}
1059
1060// BinaryClassificationMetrics: Evaluation metrics for binary
1061// classification/classifier models.
1062type BinaryClassificationMetrics struct {
1063	// AggregateClassificationMetrics: Aggregate classification metrics.
1064	AggregateClassificationMetrics *AggregateClassificationMetrics `json:"aggregateClassificationMetrics,omitempty"`
1065
1066	// BinaryConfusionMatrixList: Binary confusion matrix at multiple
1067	// thresholds.
1068	BinaryConfusionMatrixList []*BinaryConfusionMatrix `json:"binaryConfusionMatrixList,omitempty"`
1069
1070	// NegativeLabel: Label representing the negative class.
1071	NegativeLabel string `json:"negativeLabel,omitempty"`
1072
1073	// PositiveLabel: Label representing the positive class.
1074	PositiveLabel string `json:"positiveLabel,omitempty"`
1075
1076	// ForceSendFields is a list of field names (e.g.
1077	// "AggregateClassificationMetrics") to unconditionally include in API
1078	// requests. By default, fields with empty values are omitted from API
1079	// requests. However, any non-pointer, non-interface field appearing in
1080	// ForceSendFields will be sent to the server regardless of whether the
1081	// field is empty or not. This may be used to include empty fields in
1082	// Patch requests.
1083	ForceSendFields []string `json:"-"`
1084
1085	// NullFields is a list of field names (e.g.
1086	// "AggregateClassificationMetrics") to include in API requests with the
1087	// JSON null value. By default, fields with empty values are omitted
1088	// from API requests. However, any field with an empty value appearing
1089	// in NullFields will be sent to the server as null. It is an error if a
1090	// field in this list has a non-empty value. This may be used to include
1091	// null fields in Patch requests.
1092	NullFields []string `json:"-"`
1093}
1094
1095func (s *BinaryClassificationMetrics) MarshalJSON() ([]byte, error) {
1096	type NoMethod BinaryClassificationMetrics
1097	raw := NoMethod(*s)
1098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1099}
1100
1101// BinaryConfusionMatrix: Confusion matrix for binary classification
1102// models.
1103type BinaryConfusionMatrix struct {
1104	// Accuracy: The fraction of predictions given the correct label.
1105	Accuracy float64 `json:"accuracy,omitempty"`
1106
1107	// F1Score: The equally weighted average of recall and precision.
1108	F1Score float64 `json:"f1Score,omitempty"`
1109
1110	// FalseNegatives: Number of false samples predicted as false.
1111	FalseNegatives int64 `json:"falseNegatives,omitempty,string"`
1112
1113	// FalsePositives: Number of false samples predicted as true.
1114	FalsePositives int64 `json:"falsePositives,omitempty,string"`
1115
1116	// PositiveClassThreshold: Threshold value used when computing each of
1117	// the following metric.
1118	PositiveClassThreshold float64 `json:"positiveClassThreshold,omitempty"`
1119
1120	// Precision: The fraction of actual positive predictions that had
1121	// positive actual labels.
1122	Precision float64 `json:"precision,omitempty"`
1123
1124	// Recall: The fraction of actual positive labels that were given a
1125	// positive prediction.
1126	Recall float64 `json:"recall,omitempty"`
1127
1128	// TrueNegatives: Number of true samples predicted as false.
1129	TrueNegatives int64 `json:"trueNegatives,omitempty,string"`
1130
1131	// TruePositives: Number of true samples predicted as true.
1132	TruePositives int64 `json:"truePositives,omitempty,string"`
1133
1134	// ForceSendFields is a list of field names (e.g. "Accuracy") to
1135	// unconditionally include in API requests. By default, fields with
1136	// empty values are omitted from API requests. However, any non-pointer,
1137	// non-interface field appearing in ForceSendFields will be sent to the
1138	// server regardless of whether the field is empty or not. This may be
1139	// used to include empty fields in Patch requests.
1140	ForceSendFields []string `json:"-"`
1141
1142	// NullFields is a list of field names (e.g. "Accuracy") to include in
1143	// API requests with the JSON null value. By default, fields with empty
1144	// values are omitted from API requests. However, any field with an
1145	// empty value appearing in NullFields will be sent to the server as
1146	// null. It is an error if a field in this list has a non-empty value.
1147	// This may be used to include null fields in Patch requests.
1148	NullFields []string `json:"-"`
1149}
1150
1151func (s *BinaryConfusionMatrix) MarshalJSON() ([]byte, error) {
1152	type NoMethod BinaryConfusionMatrix
1153	raw := NoMethod(*s)
1154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1155}
1156
1157func (s *BinaryConfusionMatrix) UnmarshalJSON(data []byte) error {
1158	type NoMethod BinaryConfusionMatrix
1159	var s1 struct {
1160		Accuracy               gensupport.JSONFloat64 `json:"accuracy"`
1161		F1Score                gensupport.JSONFloat64 `json:"f1Score"`
1162		PositiveClassThreshold gensupport.JSONFloat64 `json:"positiveClassThreshold"`
1163		Precision              gensupport.JSONFloat64 `json:"precision"`
1164		Recall                 gensupport.JSONFloat64 `json:"recall"`
1165		*NoMethod
1166	}
1167	s1.NoMethod = (*NoMethod)(s)
1168	if err := json.Unmarshal(data, &s1); err != nil {
1169		return err
1170	}
1171	s.Accuracy = float64(s1.Accuracy)
1172	s.F1Score = float64(s1.F1Score)
1173	s.PositiveClassThreshold = float64(s1.PositiveClassThreshold)
1174	s.Precision = float64(s1.Precision)
1175	s.Recall = float64(s1.Recall)
1176	return nil
1177}
1178
1179// Binding: Associates `members` with a `role`.
1180type Binding struct {
1181	BindingId string `json:"bindingId,omitempty"`
1182
1183	// Condition: The condition that is associated with this binding. If the
1184	// condition evaluates to `true`, then this binding applies to the
1185	// current request. If the condition evaluates to `false`, then this
1186	// binding does not apply to the current request. However, a different
1187	// role binding might grant the same role to one or more of the members
1188	// in this binding. To learn which resources support conditions in their
1189	// IAM policies, see the [IAM
1190	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
1191	// olicies).
1192	Condition *Expr `json:"condition,omitempty"`
1193
1194	// Members: Specifies the identities requesting access for a Cloud
1195	// Platform resource. `members` can have the following values: *
1196	// `allUsers`: A special identifier that represents anyone who is on the
1197	// internet; with or without a Google account. *
1198	// `allAuthenticatedUsers`: A special identifier that represents anyone
1199	// who is authenticated with a Google account or a service account. *
1200	// `user:{emailid}`: An email address that represents a specific Google
1201	// account. For example, `alice@example.com` . *
1202	// `serviceAccount:{emailid}`: An email address that represents a
1203	// service account. For example,
1204	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
1205	// email address that represents a Google group. For example,
1206	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
1207	// email address (plus unique identifier) representing a user that has
1208	// been recently deleted. For example,
1209	// `alice@example.com?uid=123456789012345678901`. If the user is
1210	// recovered, this value reverts to `user:{emailid}` and the recovered
1211	// user retains the role in the binding. *
1212	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
1213	// (plus unique identifier) representing a service account that has been
1214	// recently deleted. For example,
1215	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
1216	// If the service account is undeleted, this value reverts to
1217	// `serviceAccount:{emailid}` and the undeleted service account retains
1218	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
1219	// An email address (plus unique identifier) representing a Google group
1220	// that has been recently deleted. For example,
1221	// `admins@example.com?uid=123456789012345678901`. If the group is
1222	// recovered, this value reverts to `group:{emailid}` and the recovered
1223	// group retains the role in the binding. * `domain:{domain}`: The G
1224	// Suite domain (primary) that represents all the users of that domain.
1225	// For example, `google.com` or `example.com`.
1226	Members []string `json:"members,omitempty"`
1227
1228	// Role: Role that is assigned to `members`. For example,
1229	// `roles/viewer`, `roles/editor`, or `roles/owner`.
1230	Role string `json:"role,omitempty"`
1231
1232	// ForceSendFields is a list of field names (e.g. "BindingId") to
1233	// unconditionally include in API requests. By default, fields with
1234	// empty values are omitted from API requests. However, any non-pointer,
1235	// non-interface field appearing in ForceSendFields will be sent to the
1236	// server regardless of whether the field is empty or not. This may be
1237	// used to include empty fields in Patch requests.
1238	ForceSendFields []string `json:"-"`
1239
1240	// NullFields is a list of field names (e.g. "BindingId") to include in
1241	// API requests with the JSON null value. By default, fields with empty
1242	// values are omitted from API requests. However, any field with an
1243	// empty value appearing in NullFields will be sent to the server as
1244	// null. It is an error if a field in this list has a non-empty value.
1245	// This may be used to include null fields in Patch requests.
1246	NullFields []string `json:"-"`
1247}
1248
1249func (s *Binding) MarshalJSON() ([]byte, error) {
1250	type NoMethod Binding
1251	raw := NoMethod(*s)
1252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1253}
1254
1255type BqmlIterationResult struct {
1256	// DurationMs: [Output-only, Beta] Time taken to run the training
1257	// iteration in milliseconds.
1258	DurationMs int64 `json:"durationMs,omitempty,string"`
1259
1260	// EvalLoss: [Output-only, Beta] Eval loss computed on the eval data at
1261	// the end of the iteration. The eval loss is used for early stopping to
1262	// avoid overfitting. No eval loss if eval_split_method option is
1263	// specified as no_split or auto_split with input data size less than
1264	// 500 rows.
1265	EvalLoss float64 `json:"evalLoss,omitempty"`
1266
1267	// Index: [Output-only, Beta] Index of the ML training iteration,
1268	// starting from zero for each training run.
1269	Index int64 `json:"index,omitempty"`
1270
1271	// LearnRate: [Output-only, Beta] Learning rate used for this iteration,
1272	// it varies for different training iterations if learn_rate_strategy
1273	// option is not constant.
1274	LearnRate float64 `json:"learnRate,omitempty"`
1275
1276	// TrainingLoss: [Output-only, Beta] Training loss computed on the
1277	// training data at the end of the iteration. The training loss function
1278	// is defined by model type.
1279	TrainingLoss float64 `json:"trainingLoss,omitempty"`
1280
1281	// ForceSendFields is a list of field names (e.g. "DurationMs") to
1282	// unconditionally include in API requests. By default, fields with
1283	// empty values are omitted from API requests. However, any non-pointer,
1284	// non-interface field appearing in ForceSendFields will be sent to the
1285	// server regardless of whether the field is empty or not. This may be
1286	// used to include empty fields in Patch requests.
1287	ForceSendFields []string `json:"-"`
1288
1289	// NullFields is a list of field names (e.g. "DurationMs") to include in
1290	// API requests with the JSON null value. By default, fields with empty
1291	// values are omitted from API requests. However, any field with an
1292	// empty value appearing in NullFields will be sent to the server as
1293	// null. It is an error if a field in this list has a non-empty value.
1294	// This may be used to include null fields in Patch requests.
1295	NullFields []string `json:"-"`
1296}
1297
1298func (s *BqmlIterationResult) MarshalJSON() ([]byte, error) {
1299	type NoMethod BqmlIterationResult
1300	raw := NoMethod(*s)
1301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1302}
1303
1304func (s *BqmlIterationResult) UnmarshalJSON(data []byte) error {
1305	type NoMethod BqmlIterationResult
1306	var s1 struct {
1307		EvalLoss     gensupport.JSONFloat64 `json:"evalLoss"`
1308		LearnRate    gensupport.JSONFloat64 `json:"learnRate"`
1309		TrainingLoss gensupport.JSONFloat64 `json:"trainingLoss"`
1310		*NoMethod
1311	}
1312	s1.NoMethod = (*NoMethod)(s)
1313	if err := json.Unmarshal(data, &s1); err != nil {
1314		return err
1315	}
1316	s.EvalLoss = float64(s1.EvalLoss)
1317	s.LearnRate = float64(s1.LearnRate)
1318	s.TrainingLoss = float64(s1.TrainingLoss)
1319	return nil
1320}
1321
1322type BqmlTrainingRun struct {
1323	// IterationResults: [Output-only, Beta] List of each iteration results.
1324	IterationResults []*BqmlIterationResult `json:"iterationResults,omitempty"`
1325
1326	// StartTime: [Output-only, Beta] Training run start time in
1327	// milliseconds since the epoch.
1328	StartTime string `json:"startTime,omitempty"`
1329
1330	// State: [Output-only, Beta] Different state applicable for a training
1331	// run. IN PROGRESS: Training run is in progress. FAILED: Training run
1332	// ended due to a non-retryable failure. SUCCEEDED: Training run
1333	// successfully completed. CANCELLED: Training run cancelled by the
1334	// user.
1335	State string `json:"state,omitempty"`
1336
1337	// TrainingOptions: [Output-only, Beta] Training options used by this
1338	// training run. These options are mutable for subsequent training runs.
1339	// Default values are explicitly stored for options not specified in the
1340	// input query of the first training run. For subsequent training runs,
1341	// any option not explicitly specified in the input query will be copied
1342	// from the previous training run.
1343	TrainingOptions *BqmlTrainingRunTrainingOptions `json:"trainingOptions,omitempty"`
1344
1345	// ForceSendFields is a list of field names (e.g. "IterationResults") to
1346	// unconditionally include in API requests. By default, fields with
1347	// empty values are omitted from API requests. However, any non-pointer,
1348	// non-interface field appearing in ForceSendFields will be sent to the
1349	// server regardless of whether the field is empty or not. This may be
1350	// used to include empty fields in Patch requests.
1351	ForceSendFields []string `json:"-"`
1352
1353	// NullFields is a list of field names (e.g. "IterationResults") to
1354	// include in API requests with the JSON null value. By default, fields
1355	// with empty values are omitted from API requests. However, any field
1356	// with an empty value appearing in NullFields will be sent to the
1357	// server as null. It is an error if a field in this list has a
1358	// non-empty value. This may be used to include null fields in Patch
1359	// requests.
1360	NullFields []string `json:"-"`
1361}
1362
1363func (s *BqmlTrainingRun) MarshalJSON() ([]byte, error) {
1364	type NoMethod BqmlTrainingRun
1365	raw := NoMethod(*s)
1366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1367}
1368
1369// BqmlTrainingRunTrainingOptions: [Output-only, Beta] Training options
1370// used by this training run. These options are mutable for subsequent
1371// training runs. Default values are explicitly stored for options not
1372// specified in the input query of the first training run. For
1373// subsequent training runs, any option not explicitly specified in the
1374// input query will be copied from the previous training run.
1375type BqmlTrainingRunTrainingOptions struct {
1376	EarlyStop bool `json:"earlyStop,omitempty"`
1377
1378	L1Reg float64 `json:"l1Reg,omitempty"`
1379
1380	L2Reg float64 `json:"l2Reg,omitempty"`
1381
1382	LearnRate float64 `json:"learnRate,omitempty"`
1383
1384	LearnRateStrategy string `json:"learnRateStrategy,omitempty"`
1385
1386	LineSearchInitLearnRate float64 `json:"lineSearchInitLearnRate,omitempty"`
1387
1388	MaxIteration int64 `json:"maxIteration,omitempty,string"`
1389
1390	MinRelProgress float64 `json:"minRelProgress,omitempty"`
1391
1392	WarmStart bool `json:"warmStart,omitempty"`
1393
1394	// ForceSendFields is a list of field names (e.g. "EarlyStop") to
1395	// unconditionally include in API requests. By default, fields with
1396	// empty values are omitted from API requests. However, any non-pointer,
1397	// non-interface field appearing in ForceSendFields will be sent to the
1398	// server regardless of whether the field is empty or not. This may be
1399	// used to include empty fields in Patch requests.
1400	ForceSendFields []string `json:"-"`
1401
1402	// NullFields is a list of field names (e.g. "EarlyStop") to include in
1403	// API requests with the JSON null value. By default, fields with empty
1404	// values are omitted from API requests. However, any field with an
1405	// empty value appearing in NullFields will be sent to the server as
1406	// null. It is an error if a field in this list has a non-empty value.
1407	// This may be used to include null fields in Patch requests.
1408	NullFields []string `json:"-"`
1409}
1410
1411func (s *BqmlTrainingRunTrainingOptions) MarshalJSON() ([]byte, error) {
1412	type NoMethod BqmlTrainingRunTrainingOptions
1413	raw := NoMethod(*s)
1414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1415}
1416
1417func (s *BqmlTrainingRunTrainingOptions) UnmarshalJSON(data []byte) error {
1418	type NoMethod BqmlTrainingRunTrainingOptions
1419	var s1 struct {
1420		L1Reg                   gensupport.JSONFloat64 `json:"l1Reg"`
1421		L2Reg                   gensupport.JSONFloat64 `json:"l2Reg"`
1422		LearnRate               gensupport.JSONFloat64 `json:"learnRate"`
1423		LineSearchInitLearnRate gensupport.JSONFloat64 `json:"lineSearchInitLearnRate"`
1424		MinRelProgress          gensupport.JSONFloat64 `json:"minRelProgress"`
1425		*NoMethod
1426	}
1427	s1.NoMethod = (*NoMethod)(s)
1428	if err := json.Unmarshal(data, &s1); err != nil {
1429		return err
1430	}
1431	s.L1Reg = float64(s1.L1Reg)
1432	s.L2Reg = float64(s1.L2Reg)
1433	s.LearnRate = float64(s1.LearnRate)
1434	s.LineSearchInitLearnRate = float64(s1.LineSearchInitLearnRate)
1435	s.MinRelProgress = float64(s1.MinRelProgress)
1436	return nil
1437}
1438
1439// CategoricalValue: Representative value of a categorical feature.
1440type CategoricalValue struct {
1441	// CategoryCounts: Counts of all categories for the categorical feature.
1442	// If there are more than ten categories, we return top ten (by count)
1443	// and return one more CategoryCount with category "_OTHER_" and count
1444	// as aggregate counts of remaining categories.
1445	CategoryCounts []*CategoryCount `json:"categoryCounts,omitempty"`
1446
1447	// ForceSendFields is a list of field names (e.g. "CategoryCounts") to
1448	// unconditionally include in API requests. By default, fields with
1449	// empty values are omitted from API requests. However, any non-pointer,
1450	// non-interface field appearing in ForceSendFields will be sent to the
1451	// server regardless of whether the field is empty or not. This may be
1452	// used to include empty fields in Patch requests.
1453	ForceSendFields []string `json:"-"`
1454
1455	// NullFields is a list of field names (e.g. "CategoryCounts") to
1456	// include in API requests with the JSON null value. By default, fields
1457	// with empty values are omitted from API requests. However, any field
1458	// with an empty value appearing in NullFields will be sent to the
1459	// server as null. It is an error if a field in this list has a
1460	// non-empty value. This may be used to include null fields in Patch
1461	// requests.
1462	NullFields []string `json:"-"`
1463}
1464
1465func (s *CategoricalValue) MarshalJSON() ([]byte, error) {
1466	type NoMethod CategoricalValue
1467	raw := NoMethod(*s)
1468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1469}
1470
1471// CategoryCount: Represents the count of a single category within the
1472// cluster.
1473type CategoryCount struct {
1474	// Category: The name of category.
1475	Category string `json:"category,omitempty"`
1476
1477	// Count: The count of training samples matching the category within the
1478	// cluster.
1479	Count int64 `json:"count,omitempty,string"`
1480
1481	// ForceSendFields is a list of field names (e.g. "Category") to
1482	// unconditionally include in API requests. By default, fields with
1483	// empty values are omitted from API requests. However, any non-pointer,
1484	// non-interface field appearing in ForceSendFields will be sent to the
1485	// server regardless of whether the field is empty or not. This may be
1486	// used to include empty fields in Patch requests.
1487	ForceSendFields []string `json:"-"`
1488
1489	// NullFields is a list of field names (e.g. "Category") to include in
1490	// API requests with the JSON null value. By default, fields with empty
1491	// values are omitted from API requests. However, any field with an
1492	// empty value appearing in NullFields will be sent to the server as
1493	// null. It is an error if a field in this list has a non-empty value.
1494	// This may be used to include null fields in Patch requests.
1495	NullFields []string `json:"-"`
1496}
1497
1498func (s *CategoryCount) MarshalJSON() ([]byte, error) {
1499	type NoMethod CategoryCount
1500	raw := NoMethod(*s)
1501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1502}
1503
1504// Cluster: Message containing the information about one cluster.
1505type Cluster struct {
1506	// CentroidId: Centroid id.
1507	CentroidId int64 `json:"centroidId,omitempty,string"`
1508
1509	// Count: Count of training data rows that were assigned to this
1510	// cluster.
1511	Count int64 `json:"count,omitempty,string"`
1512
1513	// FeatureValues: Values of highly variant features for this cluster.
1514	FeatureValues []*FeatureValue `json:"featureValues,omitempty"`
1515
1516	// ForceSendFields is a list of field names (e.g. "CentroidId") to
1517	// unconditionally include in API requests. By default, fields with
1518	// empty values are omitted from API requests. However, any non-pointer,
1519	// non-interface field appearing in ForceSendFields will be sent to the
1520	// server regardless of whether the field is empty or not. This may be
1521	// used to include empty fields in Patch requests.
1522	ForceSendFields []string `json:"-"`
1523
1524	// NullFields is a list of field names (e.g. "CentroidId") to include in
1525	// API requests with the JSON null value. By default, fields with empty
1526	// values are omitted from API requests. However, any field with an
1527	// empty value appearing in NullFields will be sent to the server as
1528	// null. It is an error if a field in this list has a non-empty value.
1529	// This may be used to include null fields in Patch requests.
1530	NullFields []string `json:"-"`
1531}
1532
1533func (s *Cluster) MarshalJSON() ([]byte, error) {
1534	type NoMethod Cluster
1535	raw := NoMethod(*s)
1536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1537}
1538
1539// ClusterInfo: Information about a single cluster for clustering model.
1540type ClusterInfo struct {
1541	// CentroidId: Centroid id.
1542	CentroidId int64 `json:"centroidId,omitempty,string"`
1543
1544	// ClusterRadius: Cluster radius, the average distance from centroid to
1545	// each point assigned to the cluster.
1546	ClusterRadius float64 `json:"clusterRadius,omitempty"`
1547
1548	// ClusterSize: Cluster size, the total number of points assigned to the
1549	// cluster.
1550	ClusterSize int64 `json:"clusterSize,omitempty,string"`
1551
1552	// ForceSendFields is a list of field names (e.g. "CentroidId") to
1553	// unconditionally include in API requests. By default, fields with
1554	// empty values are omitted from API requests. However, any non-pointer,
1555	// non-interface field appearing in ForceSendFields will be sent to the
1556	// server regardless of whether the field is empty or not. This may be
1557	// used to include empty fields in Patch requests.
1558	ForceSendFields []string `json:"-"`
1559
1560	// NullFields is a list of field names (e.g. "CentroidId") to include in
1561	// API requests with the JSON null value. By default, fields with empty
1562	// values are omitted from API requests. However, any field with an
1563	// empty value appearing in NullFields will be sent to the server as
1564	// null. It is an error if a field in this list has a non-empty value.
1565	// This may be used to include null fields in Patch requests.
1566	NullFields []string `json:"-"`
1567}
1568
1569func (s *ClusterInfo) MarshalJSON() ([]byte, error) {
1570	type NoMethod ClusterInfo
1571	raw := NoMethod(*s)
1572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1573}
1574
1575func (s *ClusterInfo) UnmarshalJSON(data []byte) error {
1576	type NoMethod ClusterInfo
1577	var s1 struct {
1578		ClusterRadius gensupport.JSONFloat64 `json:"clusterRadius"`
1579		*NoMethod
1580	}
1581	s1.NoMethod = (*NoMethod)(s)
1582	if err := json.Unmarshal(data, &s1); err != nil {
1583		return err
1584	}
1585	s.ClusterRadius = float64(s1.ClusterRadius)
1586	return nil
1587}
1588
1589type Clustering struct {
1590	// Fields: [Repeated] One or more fields on which data should be
1591	// clustered. Only top-level, non-repeated, simple-type fields are
1592	// supported. When you cluster a table using multiple columns, the order
1593	// of columns you specify is important. The order of the specified
1594	// columns determines the sort order of the data.
1595	Fields []string `json:"fields,omitempty"`
1596
1597	// ForceSendFields is a list of field names (e.g. "Fields") to
1598	// unconditionally include in API requests. By default, fields with
1599	// empty values are omitted from API requests. However, any non-pointer,
1600	// non-interface field appearing in ForceSendFields will be sent to the
1601	// server regardless of whether the field is empty or not. This may be
1602	// used to include empty fields in Patch requests.
1603	ForceSendFields []string `json:"-"`
1604
1605	// NullFields is a list of field names (e.g. "Fields") to include in API
1606	// requests with the JSON null value. By default, fields with empty
1607	// values are omitted from API requests. However, any field with an
1608	// empty value appearing in NullFields will be sent to the server as
1609	// null. It is an error if a field in this list has a non-empty value.
1610	// This may be used to include null fields in Patch requests.
1611	NullFields []string `json:"-"`
1612}
1613
1614func (s *Clustering) MarshalJSON() ([]byte, error) {
1615	type NoMethod Clustering
1616	raw := NoMethod(*s)
1617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1618}
1619
1620// ClusteringMetrics: Evaluation metrics for clustering models.
1621type ClusteringMetrics struct {
1622	// Clusters: [Beta] Information for all clusters.
1623	Clusters []*Cluster `json:"clusters,omitempty"`
1624
1625	// DaviesBouldinIndex: Davies-Bouldin index.
1626	DaviesBouldinIndex float64 `json:"daviesBouldinIndex,omitempty"`
1627
1628	// MeanSquaredDistance: Mean of squared distances between each sample to
1629	// its cluster centroid.
1630	MeanSquaredDistance float64 `json:"meanSquaredDistance,omitempty"`
1631
1632	// ForceSendFields is a list of field names (e.g. "Clusters") to
1633	// unconditionally include in API requests. By default, fields with
1634	// empty values are omitted from API requests. However, any non-pointer,
1635	// non-interface field appearing in ForceSendFields will be sent to the
1636	// server regardless of whether the field is empty or not. This may be
1637	// used to include empty fields in Patch requests.
1638	ForceSendFields []string `json:"-"`
1639
1640	// NullFields is a list of field names (e.g. "Clusters") to include in
1641	// API requests with the JSON null value. By default, fields with empty
1642	// values are omitted from API requests. However, any field with an
1643	// empty value appearing in NullFields will be sent to the server as
1644	// null. It is an error if a field in this list has a non-empty value.
1645	// This may be used to include null fields in Patch requests.
1646	NullFields []string `json:"-"`
1647}
1648
1649func (s *ClusteringMetrics) MarshalJSON() ([]byte, error) {
1650	type NoMethod ClusteringMetrics
1651	raw := NoMethod(*s)
1652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1653}
1654
1655func (s *ClusteringMetrics) UnmarshalJSON(data []byte) error {
1656	type NoMethod ClusteringMetrics
1657	var s1 struct {
1658		DaviesBouldinIndex  gensupport.JSONFloat64 `json:"daviesBouldinIndex"`
1659		MeanSquaredDistance gensupport.JSONFloat64 `json:"meanSquaredDistance"`
1660		*NoMethod
1661	}
1662	s1.NoMethod = (*NoMethod)(s)
1663	if err := json.Unmarshal(data, &s1); err != nil {
1664		return err
1665	}
1666	s.DaviesBouldinIndex = float64(s1.DaviesBouldinIndex)
1667	s.MeanSquaredDistance = float64(s1.MeanSquaredDistance)
1668	return nil
1669}
1670
1671// ConfusionMatrix: Confusion matrix for multi-class classification
1672// models.
1673type ConfusionMatrix struct {
1674	// ConfidenceThreshold: Confidence threshold used when computing the
1675	// entries of the confusion matrix.
1676	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`
1677
1678	// Rows: One row per actual label.
1679	Rows []*Row `json:"rows,omitempty"`
1680
1681	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
1682	// to unconditionally include in API requests. By default, fields with
1683	// empty values are omitted from API requests. However, any non-pointer,
1684	// non-interface field appearing in ForceSendFields will be sent to the
1685	// server regardless of whether the field is empty or not. This may be
1686	// used to include empty fields in Patch requests.
1687	ForceSendFields []string `json:"-"`
1688
1689	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
1690	// include in API requests with the JSON null value. By default, fields
1691	// with empty values are omitted from API requests. However, any field
1692	// with an empty value appearing in NullFields will be sent to the
1693	// server as null. It is an error if a field in this list has a
1694	// non-empty value. This may be used to include null fields in Patch
1695	// requests.
1696	NullFields []string `json:"-"`
1697}
1698
1699func (s *ConfusionMatrix) MarshalJSON() ([]byte, error) {
1700	type NoMethod ConfusionMatrix
1701	raw := NoMethod(*s)
1702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1703}
1704
1705func (s *ConfusionMatrix) UnmarshalJSON(data []byte) error {
1706	type NoMethod ConfusionMatrix
1707	var s1 struct {
1708		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
1709		*NoMethod
1710	}
1711	s1.NoMethod = (*NoMethod)(s)
1712	if err := json.Unmarshal(data, &s1); err != nil {
1713		return err
1714	}
1715	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
1716	return nil
1717}
1718
1719type ConnectionProperty struct {
1720	// Key: [Required] Name of the connection property to set.
1721	Key string `json:"key,omitempty"`
1722
1723	// Value: [Required] Value of the connection property.
1724	Value string `json:"value,omitempty"`
1725
1726	// ForceSendFields is a list of field names (e.g. "Key") to
1727	// unconditionally include in API requests. By default, fields with
1728	// empty values are omitted from API requests. However, any non-pointer,
1729	// non-interface field appearing in ForceSendFields will be sent to the
1730	// server regardless of whether the field is empty or not. This may be
1731	// used to include empty fields in Patch requests.
1732	ForceSendFields []string `json:"-"`
1733
1734	// NullFields is a list of field names (e.g. "Key") to include in API
1735	// requests with the JSON null value. By default, fields with empty
1736	// values are omitted from API requests. However, any field with an
1737	// empty value appearing in NullFields will be sent to the server as
1738	// null. It is an error if a field in this list has a non-empty value.
1739	// This may be used to include null fields in Patch requests.
1740	NullFields []string `json:"-"`
1741}
1742
1743func (s *ConnectionProperty) MarshalJSON() ([]byte, error) {
1744	type NoMethod ConnectionProperty
1745	raw := NoMethod(*s)
1746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1747}
1748
1749type CsvOptions struct {
1750	// AllowJaggedRows: [Optional] Indicates if BigQuery should accept rows
1751	// that are missing trailing optional columns. If true, BigQuery treats
1752	// missing trailing columns as null values. If false, records with
1753	// missing trailing columns are treated as bad records, and if there are
1754	// too many bad records, an invalid error is returned in the job result.
1755	// The default value is false.
1756	AllowJaggedRows bool `json:"allowJaggedRows,omitempty"`
1757
1758	// AllowQuotedNewlines: [Optional] Indicates if BigQuery should allow
1759	// quoted data sections that contain newline characters in a CSV file.
1760	// The default value is false.
1761	AllowQuotedNewlines bool `json:"allowQuotedNewlines,omitempty"`
1762
1763	// Encoding: [Optional] The character encoding of the data. The
1764	// supported values are UTF-8 or ISO-8859-1. The default value is UTF-8.
1765	// BigQuery decodes the data after the raw, binary data has been split
1766	// using the values of the quote and fieldDelimiter properties.
1767	Encoding string `json:"encoding,omitempty"`
1768
1769	// FieldDelimiter: [Optional] The separator for fields in a CSV file.
1770	// BigQuery converts the string to ISO-8859-1 encoding, and then uses
1771	// the first byte of the encoded string to split the data in its raw,
1772	// binary state. BigQuery also supports the escape sequence "\t" to
1773	// specify a tab separator. The default value is a comma (',').
1774	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
1775
1776	// Quote: [Optional] The value that is used to quote data sections in a
1777	// CSV file. BigQuery converts the string to ISO-8859-1 encoding, and
1778	// then uses the first byte of the encoded string to split the data in
1779	// its raw, binary state. The default value is a double-quote ('"'). If
1780	// your data does not contain quoted sections, set the property value to
1781	// an empty string. If your data contains quoted newline characters, you
1782	// must also set the allowQuotedNewlines property to true.
1783	//
1784	// Default: "
1785	Quote *string `json:"quote,omitempty"`
1786
1787	// SkipLeadingRows: [Optional] The number of rows at the top of a CSV
1788	// file that BigQuery will skip when reading the data. The default value
1789	// is 0. This property is useful if you have header rows in the file
1790	// that should be skipped. When autodetect is on, the behavior is the
1791	// following: * skipLeadingRows unspecified - Autodetect tries to detect
1792	// headers in the first row. If they are not detected, the row is read
1793	// as data. Otherwise data is read starting from the second row. *
1794	// skipLeadingRows is 0 - Instructs autodetect that there are no headers
1795	// and data should be read starting from the first row. *
1796	// skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to
1797	// detect headers in row N. If headers are not detected, row N is just
1798	// skipped. Otherwise row N is used to extract column names for the
1799	// detected schema.
1800	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty,string"`
1801
1802	// ForceSendFields is a list of field names (e.g. "AllowJaggedRows") to
1803	// unconditionally include in API requests. By default, fields with
1804	// empty values are omitted from API requests. However, any non-pointer,
1805	// non-interface field appearing in ForceSendFields will be sent to the
1806	// server regardless of whether the field is empty or not. This may be
1807	// used to include empty fields in Patch requests.
1808	ForceSendFields []string `json:"-"`
1809
1810	// NullFields is a list of field names (e.g. "AllowJaggedRows") to
1811	// include in API requests with the JSON null value. By default, fields
1812	// with empty values are omitted from API requests. However, any field
1813	// with an empty value appearing in NullFields will be sent to the
1814	// server as null. It is an error if a field in this list has a
1815	// non-empty value. This may be used to include null fields in Patch
1816	// requests.
1817	NullFields []string `json:"-"`
1818}
1819
1820func (s *CsvOptions) MarshalJSON() ([]byte, error) {
1821	type NoMethod CsvOptions
1822	raw := NoMethod(*s)
1823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1824}
1825
1826// DataSplitResult: Data split result. This contains references to the
1827// training and evaluation data tables that were used to train the
1828// model.
1829type DataSplitResult struct {
1830	// EvaluationTable: Table reference of the evaluation data after split.
1831	EvaluationTable *TableReference `json:"evaluationTable,omitempty"`
1832
1833	// TrainingTable: Table reference of the training data after split.
1834	TrainingTable *TableReference `json:"trainingTable,omitempty"`
1835
1836	// ForceSendFields is a list of field names (e.g. "EvaluationTable") to
1837	// unconditionally include in API requests. By default, fields with
1838	// empty values are omitted from API requests. However, any non-pointer,
1839	// non-interface field appearing in ForceSendFields will be sent to the
1840	// server regardless of whether the field is empty or not. This may be
1841	// used to include empty fields in Patch requests.
1842	ForceSendFields []string `json:"-"`
1843
1844	// NullFields is a list of field names (e.g. "EvaluationTable") to
1845	// include in API requests with the JSON null value. By default, fields
1846	// with empty values are omitted from API requests. However, any field
1847	// with an empty value appearing in NullFields will be sent to the
1848	// server as null. It is an error if a field in this list has a
1849	// non-empty value. This may be used to include null fields in Patch
1850	// requests.
1851	NullFields []string `json:"-"`
1852}
1853
1854func (s *DataSplitResult) MarshalJSON() ([]byte, error) {
1855	type NoMethod DataSplitResult
1856	raw := NoMethod(*s)
1857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1858}
1859
1860type Dataset struct {
1861	// Access: [Optional] An array of objects that define dataset access for
1862	// one or more entities. You can set this property when inserting or
1863	// updating a dataset in order to control who is allowed to access the
1864	// data. If unspecified at dataset creation time, BigQuery adds default
1865	// dataset access for the following entities: access.specialGroup:
1866	// projectReaders; access.role: READER; access.specialGroup:
1867	// projectWriters; access.role: WRITER; access.specialGroup:
1868	// projectOwners; access.role: OWNER; access.userByEmail: [dataset
1869	// creator email]; access.role: OWNER;
1870	Access []*DatasetAccess `json:"access,omitempty"`
1871
1872	// CreationTime: [Output-only] The time when this dataset was created,
1873	// in milliseconds since the epoch.
1874	CreationTime int64 `json:"creationTime,omitempty,string"`
1875
1876	// DatasetReference: [Required] A reference that identifies the dataset.
1877	DatasetReference *DatasetReference `json:"datasetReference,omitempty"`
1878
1879	DefaultEncryptionConfiguration *EncryptionConfiguration `json:"defaultEncryptionConfiguration,omitempty"`
1880
1881	// DefaultPartitionExpirationMs: [Optional] The default partition
1882	// expiration for all partitioned tables in the dataset, in
1883	// milliseconds. Once this property is set, all newly-created
1884	// partitioned tables in the dataset will have an expirationMs property
1885	// in the timePartitioning settings set to this value, and changing the
1886	// value will only affect new tables, not existing ones. The storage in
1887	// a partition will have an expiration time of its partition time plus
1888	// this value. Setting this property overrides the use of
1889	// defaultTableExpirationMs for partitioned tables: only one of
1890	// defaultTableExpirationMs and defaultPartitionExpirationMs will be
1891	// used for any new partitioned table. If you provide an explicit
1892	// timePartitioning.expirationMs when creating or updating a partitioned
1893	// table, that value takes precedence over the default partition
1894	// expiration time indicated by this property.
1895	DefaultPartitionExpirationMs int64 `json:"defaultPartitionExpirationMs,omitempty,string"`
1896
1897	// DefaultTableExpirationMs: [Optional] The default lifetime of all
1898	// tables in the dataset, in milliseconds. The minimum value is 3600000
1899	// milliseconds (one hour). Once this property is set, all newly-created
1900	// tables in the dataset will have an expirationTime property set to the
1901	// creation time plus the value in this property, and changing the value
1902	// will only affect new tables, not existing ones. When the
1903	// expirationTime for a given table is reached, that table will be
1904	// deleted automatically. If a table's expirationTime is modified or
1905	// removed before the table expires, or if you provide an explicit
1906	// expirationTime when creating a table, that value takes precedence
1907	// over the default expiration time indicated by this property.
1908	DefaultTableExpirationMs int64 `json:"defaultTableExpirationMs,omitempty,string"`
1909
1910	// Description: [Optional] A user-friendly description of the dataset.
1911	Description string `json:"description,omitempty"`
1912
1913	// Etag: [Output-only] A hash of the resource.
1914	Etag string `json:"etag,omitempty"`
1915
1916	// FriendlyName: [Optional] A descriptive name for the dataset.
1917	FriendlyName string `json:"friendlyName,omitempty"`
1918
1919	// Id: [Output-only] The fully-qualified unique name of the dataset in
1920	// the format projectId:datasetId. The dataset name without the project
1921	// name is given in the datasetId field. When creating a new dataset,
1922	// leave this field blank, and instead specify the datasetId field.
1923	Id string `json:"id,omitempty"`
1924
1925	// Kind: [Output-only] The resource type.
1926	Kind string `json:"kind,omitempty"`
1927
1928	// Labels: The labels associated with this dataset. You can use these to
1929	// organize and group your datasets. You can set this property when
1930	// inserting or updating a dataset. See Creating and Updating Dataset
1931	// Labels for more information.
1932	Labels map[string]string `json:"labels,omitempty"`
1933
1934	// LastModifiedTime: [Output-only] The date when this dataset or any of
1935	// its tables was last modified, in milliseconds since the epoch.
1936	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
1937
1938	// Location: The geographic location where the dataset should reside.
1939	// The default value is US. See details at
1940	// https://cloud.google.com/bigquery/docs/locations.
1941	Location string `json:"location,omitempty"`
1942
1943	// SatisfiesPZS: [Output-only] Reserved for future use.
1944	SatisfiesPZS bool `json:"satisfiesPZS,omitempty"`
1945
1946	// SelfLink: [Output-only] A URL that can be used to access the resource
1947	// again. You can use this URL in Get or Update requests to the
1948	// resource.
1949	SelfLink string `json:"selfLink,omitempty"`
1950
1951	// ServerResponse contains the HTTP response code and headers from the
1952	// server.
1953	googleapi.ServerResponse `json:"-"`
1954
1955	// ForceSendFields is a list of field names (e.g. "Access") to
1956	// unconditionally include in API requests. By default, fields with
1957	// empty values are omitted from API requests. However, any non-pointer,
1958	// non-interface field appearing in ForceSendFields will be sent to the
1959	// server regardless of whether the field is empty or not. This may be
1960	// used to include empty fields in Patch requests.
1961	ForceSendFields []string `json:"-"`
1962
1963	// NullFields is a list of field names (e.g. "Access") to include in API
1964	// requests with the JSON null value. By default, fields with empty
1965	// values are omitted from API requests. However, any field with an
1966	// empty value appearing in NullFields will be sent to the server as
1967	// null. It is an error if a field in this list has a non-empty value.
1968	// This may be used to include null fields in Patch requests.
1969	NullFields []string `json:"-"`
1970}
1971
1972func (s *Dataset) MarshalJSON() ([]byte, error) {
1973	type NoMethod Dataset
1974	raw := NoMethod(*s)
1975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1976}
1977
1978type DatasetAccess struct {
1979	// Domain: [Pick one] A domain to grant access to. Any users signed in
1980	// with the domain specified will be granted the specified access.
1981	// Example: "example.com". Maps to IAM policy member "domain:DOMAIN".
1982	Domain string `json:"domain,omitempty"`
1983
1984	// GroupByEmail: [Pick one] An email address of a Google Group to grant
1985	// access to. Maps to IAM policy member "group:GROUP".
1986	GroupByEmail string `json:"groupByEmail,omitempty"`
1987
1988	// IamMember: [Pick one] Some other type of member that appears in the
1989	// IAM Policy but isn't a user, group, domain, or special group.
1990	IamMember string `json:"iamMember,omitempty"`
1991
1992	// Role: [Required] An IAM role ID that should be granted to the user,
1993	// group, or domain specified in this access entry. The following legacy
1994	// mappings will be applied: OWNER  roles/bigquery.dataOwner WRITER
1995	// roles/bigquery.dataEditor READER  roles/bigquery.dataViewer This
1996	// field will accept any of the above formats, but will return only the
1997	// legacy format. For example, if you set this field to
1998	// "roles/bigquery.dataOwner", it will be returned back as "OWNER".
1999	Role string `json:"role,omitempty"`
2000
2001	// Routine: [Pick one] A routine from a different dataset to grant
2002	// access to. Queries executed against that routine will have read
2003	// access to views/tables/routines in this dataset. Only UDF is
2004	// supported for now. The role field is not required when this field is
2005	// set. If that routine is updated by any user, access to the routine
2006	// needs to be granted again via an update operation.
2007	Routine *RoutineReference `json:"routine,omitempty"`
2008
2009	// SpecialGroup: [Pick one] A special group to grant access to. Possible
2010	// values include: projectOwners: Owners of the enclosing project.
2011	// projectReaders: Readers of the enclosing project. projectWriters:
2012	// Writers of the enclosing project. allAuthenticatedUsers: All
2013	// authenticated BigQuery users. Maps to similarly-named IAM members.
2014	SpecialGroup string `json:"specialGroup,omitempty"`
2015
2016	// UserByEmail: [Pick one] An email address of a user to grant access
2017	// to. For example: fred@example.com. Maps to IAM policy member
2018	// "user:EMAIL" or "serviceAccount:EMAIL".
2019	UserByEmail string `json:"userByEmail,omitempty"`
2020
2021	// View: [Pick one] A view from a different dataset to grant access to.
2022	// Queries executed against that view will have read access to tables in
2023	// this dataset. The role field is not required when this field is set.
2024	// If that view is updated by any user, access to the view needs to be
2025	// granted again via an update operation.
2026	View *TableReference `json:"view,omitempty"`
2027
2028	// ForceSendFields is a list of field names (e.g. "Domain") to
2029	// unconditionally include in API requests. By default, fields with
2030	// empty values are omitted from API requests. However, any non-pointer,
2031	// non-interface field appearing in ForceSendFields will be sent to the
2032	// server regardless of whether the field is empty or not. This may be
2033	// used to include empty fields in Patch requests.
2034	ForceSendFields []string `json:"-"`
2035
2036	// NullFields is a list of field names (e.g. "Domain") to include in API
2037	// requests with the JSON null value. By default, fields with empty
2038	// values are omitted from API requests. However, any field with an
2039	// empty value appearing in NullFields will be sent to the server as
2040	// null. It is an error if a field in this list has a non-empty value.
2041	// This may be used to include null fields in Patch requests.
2042	NullFields []string `json:"-"`
2043}
2044
2045func (s *DatasetAccess) MarshalJSON() ([]byte, error) {
2046	type NoMethod DatasetAccess
2047	raw := NoMethod(*s)
2048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2049}
2050
2051type DatasetList struct {
2052	// Datasets: An array of the dataset resources in the project. Each
2053	// resource contains basic information. For full information about a
2054	// particular dataset resource, use the Datasets: get method. This
2055	// property is omitted when there are no datasets in the project.
2056	Datasets []*DatasetListDatasets `json:"datasets,omitempty"`
2057
2058	// Etag: A hash value of the results page. You can use this property to
2059	// determine if the page has changed since the last request.
2060	Etag string `json:"etag,omitempty"`
2061
2062	// Kind: The list type. This property always returns the value
2063	// "bigquery#datasetList".
2064	Kind string `json:"kind,omitempty"`
2065
2066	// NextPageToken: A token that can be used to request the next results
2067	// page. This property is omitted on the final results page.
2068	NextPageToken string `json:"nextPageToken,omitempty"`
2069
2070	// ServerResponse contains the HTTP response code and headers from the
2071	// server.
2072	googleapi.ServerResponse `json:"-"`
2073
2074	// ForceSendFields is a list of field names (e.g. "Datasets") to
2075	// unconditionally include in API requests. By default, fields with
2076	// empty values are omitted from API requests. However, any non-pointer,
2077	// non-interface field appearing in ForceSendFields will be sent to the
2078	// server regardless of whether the field is empty or not. This may be
2079	// used to include empty fields in Patch requests.
2080	ForceSendFields []string `json:"-"`
2081
2082	// NullFields is a list of field names (e.g. "Datasets") to include in
2083	// API requests with the JSON null value. By default, fields with empty
2084	// values are omitted from API requests. However, any field with an
2085	// empty value appearing in NullFields will be sent to the server as
2086	// null. It is an error if a field in this list has a non-empty value.
2087	// This may be used to include null fields in Patch requests.
2088	NullFields []string `json:"-"`
2089}
2090
2091func (s *DatasetList) MarshalJSON() ([]byte, error) {
2092	type NoMethod DatasetList
2093	raw := NoMethod(*s)
2094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2095}
2096
2097type DatasetListDatasets struct {
2098	// DatasetReference: The dataset reference. Use this property to access
2099	// specific parts of the dataset's ID, such as project ID or dataset ID.
2100	DatasetReference *DatasetReference `json:"datasetReference,omitempty"`
2101
2102	// FriendlyName: A descriptive name for the dataset, if one exists.
2103	FriendlyName string `json:"friendlyName,omitempty"`
2104
2105	// Id: The fully-qualified, unique, opaque ID of the dataset.
2106	Id string `json:"id,omitempty"`
2107
2108	// Kind: The resource type. This property always returns the value
2109	// "bigquery#dataset".
2110	Kind string `json:"kind,omitempty"`
2111
2112	// Labels: The labels associated with this dataset. You can use these to
2113	// organize and group your datasets.
2114	Labels map[string]string `json:"labels,omitempty"`
2115
2116	// Location: The geographic location where the data resides.
2117	Location string `json:"location,omitempty"`
2118
2119	// ForceSendFields is a list of field names (e.g. "DatasetReference") to
2120	// unconditionally include in API requests. By default, fields with
2121	// empty values are omitted from API requests. However, any non-pointer,
2122	// non-interface field appearing in ForceSendFields will be sent to the
2123	// server regardless of whether the field is empty or not. This may be
2124	// used to include empty fields in Patch requests.
2125	ForceSendFields []string `json:"-"`
2126
2127	// NullFields is a list of field names (e.g. "DatasetReference") to
2128	// include in API requests with the JSON null value. By default, fields
2129	// with empty values are omitted from API requests. However, any field
2130	// with an empty value appearing in NullFields will be sent to the
2131	// server as null. It is an error if a field in this list has a
2132	// non-empty value. This may be used to include null fields in Patch
2133	// requests.
2134	NullFields []string `json:"-"`
2135}
2136
2137func (s *DatasetListDatasets) MarshalJSON() ([]byte, error) {
2138	type NoMethod DatasetListDatasets
2139	raw := NoMethod(*s)
2140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2141}
2142
2143type DatasetReference struct {
2144	// DatasetId: [Required] A unique ID for this dataset, without the
2145	// project name. The ID must contain only letters (a-z, A-Z), numbers
2146	// (0-9), or underscores (_). The maximum length is 1,024 characters.
2147	DatasetId string `json:"datasetId,omitempty"`
2148
2149	// ProjectId: [Optional] The ID of the project containing this dataset.
2150	ProjectId string `json:"projectId,omitempty"`
2151
2152	// ForceSendFields is a list of field names (e.g. "DatasetId") to
2153	// unconditionally include in API requests. By default, fields with
2154	// empty values are omitted from API requests. However, any non-pointer,
2155	// non-interface field appearing in ForceSendFields will be sent to the
2156	// server regardless of whether the field is empty or not. This may be
2157	// used to include empty fields in Patch requests.
2158	ForceSendFields []string `json:"-"`
2159
2160	// NullFields is a list of field names (e.g. "DatasetId") to include in
2161	// API requests with the JSON null value. By default, fields with empty
2162	// values are omitted from API requests. However, any field with an
2163	// empty value appearing in NullFields will be sent to the server as
2164	// null. It is an error if a field in this list has a non-empty value.
2165	// This may be used to include null fields in Patch requests.
2166	NullFields []string `json:"-"`
2167}
2168
2169func (s *DatasetReference) MarshalJSON() ([]byte, error) {
2170	type NoMethod DatasetReference
2171	raw := NoMethod(*s)
2172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2173}
2174
2175type DestinationTableProperties struct {
2176	// Description: [Optional] The description for the destination table.
2177	// This will only be used if the destination table is newly created. If
2178	// the table already exists and a value different than the current
2179	// description is provided, the job will fail.
2180	Description string `json:"description,omitempty"`
2181
2182	// FriendlyName: [Optional] The friendly name for the destination table.
2183	// This will only be used if the destination table is newly created. If
2184	// the table already exists and a value different than the current
2185	// friendly name is provided, the job will fail.
2186	FriendlyName string `json:"friendlyName,omitempty"`
2187
2188	// Labels: [Optional] The labels associated with this table. You can use
2189	// these to organize and group your tables. This will only be used if
2190	// the destination table is newly created. If the table already exists
2191	// and labels are different than the current labels are provided, the
2192	// job will fail.
2193	Labels map[string]string `json:"labels,omitempty"`
2194
2195	// ForceSendFields is a list of field names (e.g. "Description") to
2196	// unconditionally include in API requests. By default, fields with
2197	// empty values are omitted from API requests. However, any non-pointer,
2198	// non-interface field appearing in ForceSendFields will be sent to the
2199	// server regardless of whether the field is empty or not. This may be
2200	// used to include empty fields in Patch requests.
2201	ForceSendFields []string `json:"-"`
2202
2203	// NullFields is a list of field names (e.g. "Description") to include
2204	// in API requests with the JSON null value. By default, fields with
2205	// empty values are omitted from API requests. However, any field with
2206	// an empty value appearing in NullFields will be sent to the server as
2207	// null. It is an error if a field in this list has a non-empty value.
2208	// This may be used to include null fields in Patch requests.
2209	NullFields []string `json:"-"`
2210}
2211
2212func (s *DestinationTableProperties) MarshalJSON() ([]byte, error) {
2213	type NoMethod DestinationTableProperties
2214	raw := NoMethod(*s)
2215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2216}
2217
2218type EncryptionConfiguration struct {
2219	// KmsKeyName: [Optional] Describes the Cloud KMS encryption key that
2220	// will be used to protect destination BigQuery table. The BigQuery
2221	// Service Account associated with your project requires access to this
2222	// encryption key.
2223	KmsKeyName string `json:"kmsKeyName,omitempty"`
2224
2225	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
2226	// unconditionally include in API requests. By default, fields with
2227	// empty values are omitted from API requests. However, any non-pointer,
2228	// non-interface field appearing in ForceSendFields will be sent to the
2229	// server regardless of whether the field is empty or not. This may be
2230	// used to include empty fields in Patch requests.
2231	ForceSendFields []string `json:"-"`
2232
2233	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
2234	// API requests with the JSON null value. By default, fields with empty
2235	// values are omitted from API requests. However, any field with an
2236	// empty value appearing in NullFields will be sent to the server as
2237	// null. It is an error if a field in this list has a non-empty value.
2238	// This may be used to include null fields in Patch requests.
2239	NullFields []string `json:"-"`
2240}
2241
2242func (s *EncryptionConfiguration) MarshalJSON() ([]byte, error) {
2243	type NoMethod EncryptionConfiguration
2244	raw := NoMethod(*s)
2245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2246}
2247
2248// Entry: A single entry in the confusion matrix.
2249type Entry struct {
2250	// ItemCount: Number of items being predicted as this label.
2251	ItemCount int64 `json:"itemCount,omitempty,string"`
2252
2253	// PredictedLabel: The predicted label. For confidence_threshold > 0, we
2254	// will also add an entry indicating the number of items under the
2255	// confidence threshold.
2256	PredictedLabel string `json:"predictedLabel,omitempty"`
2257
2258	// ForceSendFields is a list of field names (e.g. "ItemCount") to
2259	// unconditionally include in API requests. By default, fields with
2260	// empty values are omitted from API requests. However, any non-pointer,
2261	// non-interface field appearing in ForceSendFields will be sent to the
2262	// server regardless of whether the field is empty or not. This may be
2263	// used to include empty fields in Patch requests.
2264	ForceSendFields []string `json:"-"`
2265
2266	// NullFields is a list of field names (e.g. "ItemCount") to include in
2267	// API requests with the JSON null value. By default, fields with empty
2268	// values are omitted from API requests. However, any field with an
2269	// empty value appearing in NullFields will be sent to the server as
2270	// null. It is an error if a field in this list has a non-empty value.
2271	// This may be used to include null fields in Patch requests.
2272	NullFields []string `json:"-"`
2273}
2274
2275func (s *Entry) MarshalJSON() ([]byte, error) {
2276	type NoMethod Entry
2277	raw := NoMethod(*s)
2278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2279}
2280
2281type ErrorProto struct {
2282	// DebugInfo: Debugging information. This property is internal to Google
2283	// and should not be used.
2284	DebugInfo string `json:"debugInfo,omitempty"`
2285
2286	// Location: Specifies where the error occurred, if present.
2287	Location string `json:"location,omitempty"`
2288
2289	// Message: A human-readable description of the error.
2290	Message string `json:"message,omitempty"`
2291
2292	// Reason: A short error code that summarizes the error.
2293	Reason string `json:"reason,omitempty"`
2294
2295	// ForceSendFields is a list of field names (e.g. "DebugInfo") to
2296	// unconditionally include in API requests. By default, fields with
2297	// empty values are omitted from API requests. However, any non-pointer,
2298	// non-interface field appearing in ForceSendFields will be sent to the
2299	// server regardless of whether the field is empty or not. This may be
2300	// used to include empty fields in Patch requests.
2301	ForceSendFields []string `json:"-"`
2302
2303	// NullFields is a list of field names (e.g. "DebugInfo") to include in
2304	// API requests with the JSON null value. By default, fields with empty
2305	// values are omitted from API requests. However, any field with an
2306	// empty value appearing in NullFields will be sent to the server as
2307	// null. It is an error if a field in this list has a non-empty value.
2308	// This may be used to include null fields in Patch requests.
2309	NullFields []string `json:"-"`
2310}
2311
2312func (s *ErrorProto) MarshalJSON() ([]byte, error) {
2313	type NoMethod ErrorProto
2314	raw := NoMethod(*s)
2315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2316}
2317
2318// EvaluationMetrics: Evaluation metrics of a model. These are either
2319// computed on all training data or just the eval data based on whether
2320// eval data was used during training. These are not present for
2321// imported models.
2322type EvaluationMetrics struct {
2323	// ArimaForecastingMetrics: Populated for ARIMA models.
2324	ArimaForecastingMetrics *ArimaForecastingMetrics `json:"arimaForecastingMetrics,omitempty"`
2325
2326	// BinaryClassificationMetrics: Populated for binary
2327	// classification/classifier models.
2328	BinaryClassificationMetrics *BinaryClassificationMetrics `json:"binaryClassificationMetrics,omitempty"`
2329
2330	// ClusteringMetrics: Populated for clustering models.
2331	ClusteringMetrics *ClusteringMetrics `json:"clusteringMetrics,omitempty"`
2332
2333	// MultiClassClassificationMetrics: Populated for multi-class
2334	// classification/classifier models.
2335	MultiClassClassificationMetrics *MultiClassClassificationMetrics `json:"multiClassClassificationMetrics,omitempty"`
2336
2337	// RankingMetrics: Populated for implicit feedback type matrix
2338	// factorization models.
2339	RankingMetrics *RankingMetrics `json:"rankingMetrics,omitempty"`
2340
2341	// RegressionMetrics: Populated for regression models and explicit
2342	// feedback type matrix factorization models.
2343	RegressionMetrics *RegressionMetrics `json:"regressionMetrics,omitempty"`
2344
2345	// ForceSendFields is a list of field names (e.g.
2346	// "ArimaForecastingMetrics") to unconditionally include in API
2347	// requests. By default, fields with empty values are omitted from API
2348	// requests. However, any non-pointer, non-interface field appearing in
2349	// ForceSendFields will be sent to the server regardless of whether the
2350	// field is empty or not. This may be used to include empty fields in
2351	// Patch requests.
2352	ForceSendFields []string `json:"-"`
2353
2354	// NullFields is a list of field names (e.g. "ArimaForecastingMetrics")
2355	// to include in API requests with the JSON null value. By default,
2356	// fields with empty values are omitted from API requests. However, any
2357	// field with an empty value appearing in NullFields will be sent to the
2358	// server as null. It is an error if a field in this list has a
2359	// non-empty value. This may be used to include null fields in Patch
2360	// requests.
2361	NullFields []string `json:"-"`
2362}
2363
2364func (s *EvaluationMetrics) MarshalJSON() ([]byte, error) {
2365	type NoMethod EvaluationMetrics
2366	raw := NoMethod(*s)
2367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2368}
2369
2370type ExplainQueryStage struct {
2371	// CompletedParallelInputs: Number of parallel input segments completed.
2372	CompletedParallelInputs int64 `json:"completedParallelInputs,omitempty,string"`
2373
2374	// ComputeMsAvg: Milliseconds the average shard spent on CPU-bound
2375	// tasks.
2376	ComputeMsAvg int64 `json:"computeMsAvg,omitempty,string"`
2377
2378	// ComputeMsMax: Milliseconds the slowest shard spent on CPU-bound
2379	// tasks.
2380	ComputeMsMax int64 `json:"computeMsMax,omitempty,string"`
2381
2382	// ComputeRatioAvg: Relative amount of time the average shard spent on
2383	// CPU-bound tasks.
2384	ComputeRatioAvg float64 `json:"computeRatioAvg,omitempty"`
2385
2386	// ComputeRatioMax: Relative amount of time the slowest shard spent on
2387	// CPU-bound tasks.
2388	ComputeRatioMax float64 `json:"computeRatioMax,omitempty"`
2389
2390	// EndMs: Stage end time represented as milliseconds since epoch.
2391	EndMs int64 `json:"endMs,omitempty,string"`
2392
2393	// Id: Unique ID for stage within plan.
2394	Id int64 `json:"id,omitempty,string"`
2395
2396	// InputStages: IDs for stages that are inputs to this stage.
2397	InputStages googleapi.Int64s `json:"inputStages,omitempty"`
2398
2399	// Name: Human-readable name for stage.
2400	Name string `json:"name,omitempty"`
2401
2402	// ParallelInputs: Number of parallel input segments to be processed.
2403	ParallelInputs int64 `json:"parallelInputs,omitempty,string"`
2404
2405	// ReadMsAvg: Milliseconds the average shard spent reading input.
2406	ReadMsAvg int64 `json:"readMsAvg,omitempty,string"`
2407
2408	// ReadMsMax: Milliseconds the slowest shard spent reading input.
2409	ReadMsMax int64 `json:"readMsMax,omitempty,string"`
2410
2411	// ReadRatioAvg: Relative amount of time the average shard spent reading
2412	// input.
2413	ReadRatioAvg float64 `json:"readRatioAvg,omitempty"`
2414
2415	// ReadRatioMax: Relative amount of time the slowest shard spent reading
2416	// input.
2417	ReadRatioMax float64 `json:"readRatioMax,omitempty"`
2418
2419	// RecordsRead: Number of records read into the stage.
2420	RecordsRead int64 `json:"recordsRead,omitempty,string"`
2421
2422	// RecordsWritten: Number of records written by the stage.
2423	RecordsWritten int64 `json:"recordsWritten,omitempty,string"`
2424
2425	// ShuffleOutputBytes: Total number of bytes written to shuffle.
2426	ShuffleOutputBytes int64 `json:"shuffleOutputBytes,omitempty,string"`
2427
2428	// ShuffleOutputBytesSpilled: Total number of bytes written to shuffle
2429	// and spilled to disk.
2430	ShuffleOutputBytesSpilled int64 `json:"shuffleOutputBytesSpilled,omitempty,string"`
2431
2432	// SlotMs: Slot-milliseconds used by the stage.
2433	SlotMs int64 `json:"slotMs,omitempty,string"`
2434
2435	// StartMs: Stage start time represented as milliseconds since epoch.
2436	StartMs int64 `json:"startMs,omitempty,string"`
2437
2438	// Status: Current status for the stage.
2439	Status string `json:"status,omitempty"`
2440
2441	// Steps: List of operations within the stage in dependency order
2442	// (approximately chronological).
2443	Steps []*ExplainQueryStep `json:"steps,omitempty"`
2444
2445	// WaitMsAvg: Milliseconds the average shard spent waiting to be
2446	// scheduled.
2447	WaitMsAvg int64 `json:"waitMsAvg,omitempty,string"`
2448
2449	// WaitMsMax: Milliseconds the slowest shard spent waiting to be
2450	// scheduled.
2451	WaitMsMax int64 `json:"waitMsMax,omitempty,string"`
2452
2453	// WaitRatioAvg: Relative amount of time the average shard spent waiting
2454	// to be scheduled.
2455	WaitRatioAvg float64 `json:"waitRatioAvg,omitempty"`
2456
2457	// WaitRatioMax: Relative amount of time the slowest shard spent waiting
2458	// to be scheduled.
2459	WaitRatioMax float64 `json:"waitRatioMax,omitempty"`
2460
2461	// WriteMsAvg: Milliseconds the average shard spent on writing output.
2462	WriteMsAvg int64 `json:"writeMsAvg,omitempty,string"`
2463
2464	// WriteMsMax: Milliseconds the slowest shard spent on writing output.
2465	WriteMsMax int64 `json:"writeMsMax,omitempty,string"`
2466
2467	// WriteRatioAvg: Relative amount of time the average shard spent on
2468	// writing output.
2469	WriteRatioAvg float64 `json:"writeRatioAvg,omitempty"`
2470
2471	// WriteRatioMax: Relative amount of time the slowest shard spent on
2472	// writing output.
2473	WriteRatioMax float64 `json:"writeRatioMax,omitempty"`
2474
2475	// ForceSendFields is a list of field names (e.g.
2476	// "CompletedParallelInputs") to unconditionally include in API
2477	// requests. By default, fields with empty values are omitted from API
2478	// requests. However, any non-pointer, non-interface field appearing in
2479	// ForceSendFields will be sent to the server regardless of whether the
2480	// field is empty or not. This may be used to include empty fields in
2481	// Patch requests.
2482	ForceSendFields []string `json:"-"`
2483
2484	// NullFields is a list of field names (e.g. "CompletedParallelInputs")
2485	// to include in API requests with the JSON null value. By default,
2486	// fields with empty values are omitted from API requests. However, any
2487	// field with an empty value appearing in NullFields will be sent to the
2488	// server as null. It is an error if a field in this list has a
2489	// non-empty value. This may be used to include null fields in Patch
2490	// requests.
2491	NullFields []string `json:"-"`
2492}
2493
2494func (s *ExplainQueryStage) MarshalJSON() ([]byte, error) {
2495	type NoMethod ExplainQueryStage
2496	raw := NoMethod(*s)
2497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2498}
2499
2500func (s *ExplainQueryStage) UnmarshalJSON(data []byte) error {
2501	type NoMethod ExplainQueryStage
2502	var s1 struct {
2503		ComputeRatioAvg gensupport.JSONFloat64 `json:"computeRatioAvg"`
2504		ComputeRatioMax gensupport.JSONFloat64 `json:"computeRatioMax"`
2505		ReadRatioAvg    gensupport.JSONFloat64 `json:"readRatioAvg"`
2506		ReadRatioMax    gensupport.JSONFloat64 `json:"readRatioMax"`
2507		WaitRatioAvg    gensupport.JSONFloat64 `json:"waitRatioAvg"`
2508		WaitRatioMax    gensupport.JSONFloat64 `json:"waitRatioMax"`
2509		WriteRatioAvg   gensupport.JSONFloat64 `json:"writeRatioAvg"`
2510		WriteRatioMax   gensupport.JSONFloat64 `json:"writeRatioMax"`
2511		*NoMethod
2512	}
2513	s1.NoMethod = (*NoMethod)(s)
2514	if err := json.Unmarshal(data, &s1); err != nil {
2515		return err
2516	}
2517	s.ComputeRatioAvg = float64(s1.ComputeRatioAvg)
2518	s.ComputeRatioMax = float64(s1.ComputeRatioMax)
2519	s.ReadRatioAvg = float64(s1.ReadRatioAvg)
2520	s.ReadRatioMax = float64(s1.ReadRatioMax)
2521	s.WaitRatioAvg = float64(s1.WaitRatioAvg)
2522	s.WaitRatioMax = float64(s1.WaitRatioMax)
2523	s.WriteRatioAvg = float64(s1.WriteRatioAvg)
2524	s.WriteRatioMax = float64(s1.WriteRatioMax)
2525	return nil
2526}
2527
2528type ExplainQueryStep struct {
2529	// Kind: Machine-readable operation type.
2530	Kind string `json:"kind,omitempty"`
2531
2532	// Substeps: Human-readable stage descriptions.
2533	Substeps []string `json:"substeps,omitempty"`
2534
2535	// ForceSendFields is a list of field names (e.g. "Kind") to
2536	// unconditionally include in API requests. By default, fields with
2537	// empty values are omitted from API requests. However, any non-pointer,
2538	// non-interface field appearing in ForceSendFields will be sent to the
2539	// server regardless of whether the field is empty or not. This may be
2540	// used to include empty fields in Patch requests.
2541	ForceSendFields []string `json:"-"`
2542
2543	// NullFields is a list of field names (e.g. "Kind") to include in API
2544	// requests with the JSON null value. By default, fields with empty
2545	// values are omitted from API requests. However, any field with an
2546	// empty value appearing in NullFields will be sent to the server as
2547	// null. It is an error if a field in this list has a non-empty value.
2548	// This may be used to include null fields in Patch requests.
2549	NullFields []string `json:"-"`
2550}
2551
2552func (s *ExplainQueryStep) MarshalJSON() ([]byte, error) {
2553	type NoMethod ExplainQueryStep
2554	raw := NoMethod(*s)
2555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2556}
2557
2558// Explanation: Explanation for a single feature.
2559type Explanation struct {
2560	// Attribution: Attribution of feature.
2561	Attribution float64 `json:"attribution,omitempty"`
2562
2563	// FeatureName: Full name of the feature. For non-numerical features,
2564	// will be formatted like .. Overall size of feature name will always be
2565	// truncated to first 120 characters.
2566	FeatureName string `json:"featureName,omitempty"`
2567
2568	// ForceSendFields is a list of field names (e.g. "Attribution") to
2569	// unconditionally include in API requests. By default, fields with
2570	// empty values are omitted from API requests. However, any non-pointer,
2571	// non-interface field appearing in ForceSendFields will be sent to the
2572	// server regardless of whether the field is empty or not. This may be
2573	// used to include empty fields in Patch requests.
2574	ForceSendFields []string `json:"-"`
2575
2576	// NullFields is a list of field names (e.g. "Attribution") to include
2577	// in API requests with the JSON null value. By default, fields with
2578	// empty values are omitted from API requests. However, any field with
2579	// an empty value appearing in NullFields will be sent to the server as
2580	// null. It is an error if a field in this list has a non-empty value.
2581	// This may be used to include null fields in Patch requests.
2582	NullFields []string `json:"-"`
2583}
2584
2585func (s *Explanation) MarshalJSON() ([]byte, error) {
2586	type NoMethod Explanation
2587	raw := NoMethod(*s)
2588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2589}
2590
2591func (s *Explanation) UnmarshalJSON(data []byte) error {
2592	type NoMethod Explanation
2593	var s1 struct {
2594		Attribution gensupport.JSONFloat64 `json:"attribution"`
2595		*NoMethod
2596	}
2597	s1.NoMethod = (*NoMethod)(s)
2598	if err := json.Unmarshal(data, &s1); err != nil {
2599		return err
2600	}
2601	s.Attribution = float64(s1.Attribution)
2602	return nil
2603}
2604
2605// Expr: Represents a textual expression in the Common Expression
2606// Language (CEL) syntax. CEL is a C-like expression language. The
2607// syntax and semantics of CEL are documented at
2608// https://github.com/google/cel-spec. Example (Comparison): title:
2609// "Summary size limit" description: "Determines if a summary is less
2610// than 100 chars" expression: "document.summary.size() < 100" Example
2611// (Equality): title: "Requestor is owner" description: "Determines if
2612// requestor is the document owner" expression: "document.owner ==
2613// request.auth.claims.email" Example (Logic): title: "Public documents"
2614// description: "Determine whether the document should be publicly
2615// visible" expression: "document.type != 'private' && document.type !=
2616// 'internal'" Example (Data Manipulation): title: "Notification string"
2617// description: "Create a notification string with a timestamp."
2618// expression: "'New message received at ' +
2619// string(document.create_time)" The exact variables and functions that
2620// may be referenced within an expression are determined by the service
2621// that evaluates it. See the service documentation for additional
2622// information.
2623type Expr struct {
2624	// Description: Optional. Description of the expression. This is a
2625	// longer text which describes the expression, e.g. when hovered over it
2626	// in a UI.
2627	Description string `json:"description,omitempty"`
2628
2629	// Expression: Textual representation of an expression in Common
2630	// Expression Language syntax.
2631	Expression string `json:"expression,omitempty"`
2632
2633	// Location: Optional. String indicating the location of the expression
2634	// for error reporting, e.g. a file name and a position in the file.
2635	Location string `json:"location,omitempty"`
2636
2637	// Title: Optional. Title for the expression, i.e. a short string
2638	// describing its purpose. This can be used e.g. in UIs which allow to
2639	// enter the expression.
2640	Title string `json:"title,omitempty"`
2641
2642	// ForceSendFields is a list of field names (e.g. "Description") to
2643	// unconditionally include in API requests. By default, fields with
2644	// empty values are omitted from API requests. However, any non-pointer,
2645	// non-interface field appearing in ForceSendFields will be sent to the
2646	// server regardless of whether the field is empty or not. This may be
2647	// used to include empty fields in Patch requests.
2648	ForceSendFields []string `json:"-"`
2649
2650	// NullFields is a list of field names (e.g. "Description") to include
2651	// in API requests with the JSON null value. By default, fields with
2652	// empty values are omitted from API requests. However, any field with
2653	// an empty value appearing in NullFields will be sent to the server as
2654	// null. It is an error if a field in this list has a non-empty value.
2655	// This may be used to include null fields in Patch requests.
2656	NullFields []string `json:"-"`
2657}
2658
2659func (s *Expr) MarshalJSON() ([]byte, error) {
2660	type NoMethod Expr
2661	raw := NoMethod(*s)
2662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2663}
2664
2665type ExternalDataConfiguration struct {
2666	// Autodetect: Try to detect schema and format options automatically.
2667	// Any option specified explicitly will be honored.
2668	Autodetect bool `json:"autodetect,omitempty"`
2669
2670	// BigtableOptions: [Optional] Additional options if sourceFormat is set
2671	// to BIGTABLE.
2672	BigtableOptions *BigtableOptions `json:"bigtableOptions,omitempty"`
2673
2674	// Compression: [Optional] The compression type of the data source.
2675	// Possible values include GZIP and NONE. The default value is NONE.
2676	// This setting is ignored for Google Cloud Bigtable, Google Cloud
2677	// Datastore backups and Avro formats.
2678	Compression string `json:"compression,omitempty"`
2679
2680	// ConnectionId: [Optional, Trusted Tester] Connection for external data
2681	// source.
2682	ConnectionId string `json:"connectionId,omitempty"`
2683
2684	// CsvOptions: Additional properties to set if sourceFormat is set to
2685	// CSV.
2686	CsvOptions *CsvOptions `json:"csvOptions,omitempty"`
2687
2688	// GoogleSheetsOptions: [Optional] Additional options if sourceFormat is
2689	// set to GOOGLE_SHEETS.
2690	GoogleSheetsOptions *GoogleSheetsOptions `json:"googleSheetsOptions,omitempty"`
2691
2692	// HivePartitioningOptions: [Optional, Trusted Tester] Options to
2693	// configure hive partitioning support.
2694	HivePartitioningOptions *HivePartitioningOptions `json:"hivePartitioningOptions,omitempty"`
2695
2696	// IgnoreUnknownValues: [Optional] Indicates if BigQuery should allow
2697	// extra values that are not represented in the table schema. If true,
2698	// the extra values are ignored. If false, records with extra columns
2699	// are treated as bad records, and if there are too many bad records, an
2700	// invalid error is returned in the job result. The default value is
2701	// false. The sourceFormat property determines what BigQuery treats as
2702	// an extra value: CSV: Trailing columns JSON: Named values that don't
2703	// match any column names Google Cloud Bigtable: This setting is
2704	// ignored. Google Cloud Datastore backups: This setting is ignored.
2705	// Avro: This setting is ignored.
2706	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
2707
2708	// MaxBadRecords: [Optional] The maximum number of bad records that
2709	// BigQuery can ignore when reading data. If the number of bad records
2710	// exceeds this value, an invalid error is returned in the job result.
2711	// This is only valid for CSV, JSON, and Google Sheets. The default
2712	// value is 0, which requires that all records are valid. This setting
2713	// is ignored for Google Cloud Bigtable, Google Cloud Datastore backups
2714	// and Avro formats.
2715	MaxBadRecords int64 `json:"maxBadRecords,omitempty"`
2716
2717	// Schema: [Optional] The schema for the data. Schema is required for
2718	// CSV and JSON formats. Schema is disallowed for Google Cloud Bigtable,
2719	// Cloud Datastore backups, and Avro formats.
2720	Schema *TableSchema `json:"schema,omitempty"`
2721
2722	// SourceFormat: [Required] The data format. For CSV files, specify
2723	// "CSV". For Google sheets, specify "GOOGLE_SHEETS". For
2724	// newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro
2725	// files, specify "AVRO". For Google Cloud Datastore backups, specify
2726	// "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify
2727	// "BIGTABLE".
2728	SourceFormat string `json:"sourceFormat,omitempty"`
2729
2730	// SourceUris: [Required] The fully-qualified URIs that point to your
2731	// data in Google Cloud. For Google Cloud Storage URIs: Each URI can
2732	// contain one '*' wildcard character and it must come after the
2733	// 'bucket' name. Size limits related to load jobs apply to external
2734	// data sources. For Google Cloud Bigtable URIs: Exactly one URI can be
2735	// specified and it has be a fully specified and valid HTTPS URL for a
2736	// Google Cloud Bigtable table. For Google Cloud Datastore backups,
2737	// exactly one URI can be specified. Also, the '*' wildcard character is
2738	// not allowed.
2739	SourceUris []string `json:"sourceUris,omitempty"`
2740
2741	// ForceSendFields is a list of field names (e.g. "Autodetect") to
2742	// unconditionally include in API requests. By default, fields with
2743	// empty values are omitted from API requests. However, any non-pointer,
2744	// non-interface field appearing in ForceSendFields will be sent to the
2745	// server regardless of whether the field is empty or not. This may be
2746	// used to include empty fields in Patch requests.
2747	ForceSendFields []string `json:"-"`
2748
2749	// NullFields is a list of field names (e.g. "Autodetect") to include in
2750	// API requests with the JSON null value. By default, fields with empty
2751	// values are omitted from API requests. However, any field with an
2752	// empty value appearing in NullFields will be sent to the server as
2753	// null. It is an error if a field in this list has a non-empty value.
2754	// This may be used to include null fields in Patch requests.
2755	NullFields []string `json:"-"`
2756}
2757
2758func (s *ExternalDataConfiguration) MarshalJSON() ([]byte, error) {
2759	type NoMethod ExternalDataConfiguration
2760	raw := NoMethod(*s)
2761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2762}
2763
2764// FeatureValue: Representative value of a single feature within the
2765// cluster.
2766type FeatureValue struct {
2767	// CategoricalValue: The categorical feature value.
2768	CategoricalValue *CategoricalValue `json:"categoricalValue,omitempty"`
2769
2770	// FeatureColumn: The feature column name.
2771	FeatureColumn string `json:"featureColumn,omitempty"`
2772
2773	// NumericalValue: The numerical feature value. This is the centroid
2774	// value for this feature.
2775	NumericalValue float64 `json:"numericalValue,omitempty"`
2776
2777	// ForceSendFields is a list of field names (e.g. "CategoricalValue") to
2778	// unconditionally include in API requests. By default, fields with
2779	// empty values are omitted from API requests. However, any non-pointer,
2780	// non-interface field appearing in ForceSendFields will be sent to the
2781	// server regardless of whether the field is empty or not. This may be
2782	// used to include empty fields in Patch requests.
2783	ForceSendFields []string `json:"-"`
2784
2785	// NullFields is a list of field names (e.g. "CategoricalValue") to
2786	// include in API requests with the JSON null value. By default, fields
2787	// with empty values are omitted from API requests. However, any field
2788	// with an empty value appearing in NullFields will be sent to the
2789	// server as null. It is an error if a field in this list has a
2790	// non-empty value. This may be used to include null fields in Patch
2791	// requests.
2792	NullFields []string `json:"-"`
2793}
2794
2795func (s *FeatureValue) MarshalJSON() ([]byte, error) {
2796	type NoMethod FeatureValue
2797	raw := NoMethod(*s)
2798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2799}
2800
2801func (s *FeatureValue) UnmarshalJSON(data []byte) error {
2802	type NoMethod FeatureValue
2803	var s1 struct {
2804		NumericalValue gensupport.JSONFloat64 `json:"numericalValue"`
2805		*NoMethod
2806	}
2807	s1.NoMethod = (*NoMethod)(s)
2808	if err := json.Unmarshal(data, &s1); err != nil {
2809		return err
2810	}
2811	s.NumericalValue = float64(s1.NumericalValue)
2812	return nil
2813}
2814
2815// GetIamPolicyRequest: Request message for `GetIamPolicy` method.
2816type GetIamPolicyRequest struct {
2817	// Options: OPTIONAL: A `GetPolicyOptions` object for specifying options
2818	// to `GetIamPolicy`.
2819	Options *GetPolicyOptions `json:"options,omitempty"`
2820
2821	// ForceSendFields is a list of field names (e.g. "Options") to
2822	// unconditionally include in API requests. By default, fields with
2823	// empty values are omitted from API requests. However, any non-pointer,
2824	// non-interface field appearing in ForceSendFields will be sent to the
2825	// server regardless of whether the field is empty or not. This may be
2826	// used to include empty fields in Patch requests.
2827	ForceSendFields []string `json:"-"`
2828
2829	// NullFields is a list of field names (e.g. "Options") to include in
2830	// API requests with the JSON null value. By default, fields with empty
2831	// values are omitted from API requests. However, any field with an
2832	// empty value appearing in NullFields will be sent to the server as
2833	// null. It is an error if a field in this list has a non-empty value.
2834	// This may be used to include null fields in Patch requests.
2835	NullFields []string `json:"-"`
2836}
2837
2838func (s *GetIamPolicyRequest) MarshalJSON() ([]byte, error) {
2839	type NoMethod GetIamPolicyRequest
2840	raw := NoMethod(*s)
2841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2842}
2843
2844// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy.
2845type GetPolicyOptions struct {
2846	// RequestedPolicyVersion: Optional. The policy format version to be
2847	// returned. Valid values are 0, 1, and 3. Requests specifying an
2848	// invalid value will be rejected. Requests for policies with any
2849	// conditional bindings must specify version 3. Policies without any
2850	// conditional bindings may specify any valid value or leave the field
2851	// unset. To learn which resources support conditions in their IAM
2852	// policies, see the [IAM
2853	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
2854	// olicies).
2855	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
2856
2857	// ForceSendFields is a list of field names (e.g.
2858	// "RequestedPolicyVersion") to unconditionally include in API requests.
2859	// By default, fields with empty values are omitted from API requests.
2860	// However, any non-pointer, non-interface field appearing in
2861	// ForceSendFields will be sent to the server regardless of whether the
2862	// field is empty or not. This may be used to include empty fields in
2863	// Patch requests.
2864	ForceSendFields []string `json:"-"`
2865
2866	// NullFields is a list of field names (e.g. "RequestedPolicyVersion")
2867	// to include in API requests with the JSON null value. By default,
2868	// fields with empty values are omitted from API requests. However, any
2869	// field with an empty value appearing in NullFields will be sent to the
2870	// server as null. It is an error if a field in this list has a
2871	// non-empty value. This may be used to include null fields in Patch
2872	// requests.
2873	NullFields []string `json:"-"`
2874}
2875
2876func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) {
2877	type NoMethod GetPolicyOptions
2878	raw := NoMethod(*s)
2879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2880}
2881
2882type GetQueryResultsResponse struct {
2883	// CacheHit: Whether the query result was fetched from the query cache.
2884	CacheHit bool `json:"cacheHit,omitempty"`
2885
2886	// Errors: [Output-only] The first errors or warnings encountered during
2887	// the running of the job. The final message includes the number of
2888	// errors that caused the process to stop. Errors here do not
2889	// necessarily mean that the job has completed or was unsuccessful.
2890	Errors []*ErrorProto `json:"errors,omitempty"`
2891
2892	// Etag: A hash of this response.
2893	Etag string `json:"etag,omitempty"`
2894
2895	// JobComplete: Whether the query has completed or not. If rows or
2896	// totalRows are present, this will always be true. If this is false,
2897	// totalRows will not be available.
2898	JobComplete bool `json:"jobComplete,omitempty"`
2899
2900	// JobReference: Reference to the BigQuery Job that was created to run
2901	// the query. This field will be present even if the original request
2902	// timed out, in which case GetQueryResults can be used to read the
2903	// results once the query has completed. Since this API only returns the
2904	// first page of results, subsequent pages can be fetched via the same
2905	// mechanism (GetQueryResults).
2906	JobReference *JobReference `json:"jobReference,omitempty"`
2907
2908	// Kind: The resource type of the response.
2909	Kind string `json:"kind,omitempty"`
2910
2911	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
2912	// DML statement. Present only for DML statements INSERT, UPDATE or
2913	// DELETE.
2914	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
2915
2916	// PageToken: A token used for paging results.
2917	PageToken string `json:"pageToken,omitempty"`
2918
2919	// Rows: An object with as many results as can be contained within the
2920	// maximum permitted reply size. To get any additional rows, you can
2921	// call GetQueryResults and specify the jobReference returned above.
2922	// Present only when the query completes successfully.
2923	Rows []*TableRow `json:"rows,omitempty"`
2924
2925	// Schema: The schema of the results. Present only when the query
2926	// completes successfully.
2927	Schema *TableSchema `json:"schema,omitempty"`
2928
2929	// TotalBytesProcessed: The total number of bytes processed for this
2930	// query.
2931	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
2932
2933	// TotalRows: The total number of rows in the complete query result set,
2934	// which can be more than the number of rows in this single page of
2935	// results. Present only when the query completes successfully.
2936	TotalRows uint64 `json:"totalRows,omitempty,string"`
2937
2938	// ServerResponse contains the HTTP response code and headers from the
2939	// server.
2940	googleapi.ServerResponse `json:"-"`
2941
2942	// ForceSendFields is a list of field names (e.g. "CacheHit") to
2943	// unconditionally include in API requests. By default, fields with
2944	// empty values are omitted from API requests. However, any non-pointer,
2945	// non-interface field appearing in ForceSendFields will be sent to the
2946	// server regardless of whether the field is empty or not. This may be
2947	// used to include empty fields in Patch requests.
2948	ForceSendFields []string `json:"-"`
2949
2950	// NullFields is a list of field names (e.g. "CacheHit") to include in
2951	// API requests with the JSON null value. By default, fields with empty
2952	// values are omitted from API requests. However, any field with an
2953	// empty value appearing in NullFields will be sent to the server as
2954	// null. It is an error if a field in this list has a non-empty value.
2955	// This may be used to include null fields in Patch requests.
2956	NullFields []string `json:"-"`
2957}
2958
2959func (s *GetQueryResultsResponse) MarshalJSON() ([]byte, error) {
2960	type NoMethod GetQueryResultsResponse
2961	raw := NoMethod(*s)
2962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2963}
2964
2965type GetServiceAccountResponse struct {
2966	// Email: The service account email address.
2967	Email string `json:"email,omitempty"`
2968
2969	// Kind: The resource type of the response.
2970	Kind string `json:"kind,omitempty"`
2971
2972	// ServerResponse contains the HTTP response code and headers from the
2973	// server.
2974	googleapi.ServerResponse `json:"-"`
2975
2976	// ForceSendFields is a list of field names (e.g. "Email") to
2977	// unconditionally include in API requests. By default, fields with
2978	// empty values are omitted from API requests. However, any non-pointer,
2979	// non-interface field appearing in ForceSendFields will be sent to the
2980	// server regardless of whether the field is empty or not. This may be
2981	// used to include empty fields in Patch requests.
2982	ForceSendFields []string `json:"-"`
2983
2984	// NullFields is a list of field names (e.g. "Email") to include in API
2985	// requests with the JSON null value. By default, fields with empty
2986	// values are omitted from API requests. However, any field with an
2987	// empty value appearing in NullFields will be sent to the server as
2988	// null. It is an error if a field in this list has a non-empty value.
2989	// This may be used to include null fields in Patch requests.
2990	NullFields []string `json:"-"`
2991}
2992
2993func (s *GetServiceAccountResponse) MarshalJSON() ([]byte, error) {
2994	type NoMethod GetServiceAccountResponse
2995	raw := NoMethod(*s)
2996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2997}
2998
2999// GlobalExplanation: Global explanations containing the top most
3000// important features after training.
3001type GlobalExplanation struct {
3002	// ClassLabel: Class label for this set of global explanations. Will be
3003	// empty/null for binary logistic and linear regression models. Sorted
3004	// alphabetically in descending order.
3005	ClassLabel string `json:"classLabel,omitempty"`
3006
3007	// Explanations: A list of the top global explanations. Sorted by
3008	// absolute value of attribution in descending order.
3009	Explanations []*Explanation `json:"explanations,omitempty"`
3010
3011	// ForceSendFields is a list of field names (e.g. "ClassLabel") to
3012	// unconditionally include in API requests. By default, fields with
3013	// empty values are omitted from API requests. However, any non-pointer,
3014	// non-interface field appearing in ForceSendFields will be sent to the
3015	// server regardless of whether the field is empty or not. This may be
3016	// used to include empty fields in Patch requests.
3017	ForceSendFields []string `json:"-"`
3018
3019	// NullFields is a list of field names (e.g. "ClassLabel") to include in
3020	// API requests with the JSON null value. By default, fields with empty
3021	// values are omitted from API requests. However, any field with an
3022	// empty value appearing in NullFields will be sent to the server as
3023	// null. It is an error if a field in this list has a non-empty value.
3024	// This may be used to include null fields in Patch requests.
3025	NullFields []string `json:"-"`
3026}
3027
3028func (s *GlobalExplanation) MarshalJSON() ([]byte, error) {
3029	type NoMethod GlobalExplanation
3030	raw := NoMethod(*s)
3031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3032}
3033
3034type GoogleSheetsOptions struct {
3035	// Range: [Optional] Range of a sheet to query from. Only used when
3036	// non-empty. Typical format:
3037	// sheet_name!top_left_cell_id:bottom_right_cell_id For example:
3038	// sheet1!A1:B20
3039	Range string `json:"range,omitempty"`
3040
3041	// SkipLeadingRows: [Optional] The number of rows at the top of a sheet
3042	// that BigQuery will skip when reading the data. The default value is
3043	// 0. This property is useful if you have header rows that should be
3044	// skipped. When autodetect is on, behavior is the following: *
3045	// skipLeadingRows unspecified - Autodetect tries to detect headers in
3046	// the first row. If they are not detected, the row is read as data.
3047	// Otherwise data is read starting from the second row. *
3048	// skipLeadingRows is 0 - Instructs autodetect that there are no headers
3049	// and data should be read starting from the first row. *
3050	// skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to
3051	// detect headers in row N. If headers are not detected, row N is just
3052	// skipped. Otherwise row N is used to extract column names for the
3053	// detected schema.
3054	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty,string"`
3055
3056	// ForceSendFields is a list of field names (e.g. "Range") to
3057	// unconditionally include in API requests. By default, fields with
3058	// empty values are omitted from API requests. However, any non-pointer,
3059	// non-interface field appearing in ForceSendFields will be sent to the
3060	// server regardless of whether the field is empty or not. This may be
3061	// used to include empty fields in Patch requests.
3062	ForceSendFields []string `json:"-"`
3063
3064	// NullFields is a list of field names (e.g. "Range") to include in API
3065	// requests with the JSON null value. By default, fields with empty
3066	// values are omitted from API requests. However, any field with an
3067	// empty value appearing in NullFields will be sent to the server as
3068	// null. It is an error if a field in this list has a non-empty value.
3069	// This may be used to include null fields in Patch requests.
3070	NullFields []string `json:"-"`
3071}
3072
3073func (s *GoogleSheetsOptions) MarshalJSON() ([]byte, error) {
3074	type NoMethod GoogleSheetsOptions
3075	raw := NoMethod(*s)
3076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3077}
3078
3079type HivePartitioningOptions struct {
3080	// Mode: [Optional] When set, what mode of hive partitioning to use when
3081	// reading data. The following modes are supported. (1) AUTO:
3082	// automatically infer partition key name(s) and type(s). (2) STRINGS:
3083	// automatically infer partition key name(s). All types are interpreted
3084	// as strings. (3) CUSTOM: partition key schema is encoded in the source
3085	// URI prefix. Not all storage formats support hive partitioning.
3086	// Requesting hive partitioning on an unsupported format will lead to an
3087	// error. Currently supported types include: AVRO, CSV, JSON, ORC and
3088	// Parquet.
3089	Mode string `json:"mode,omitempty"`
3090
3091	// RequirePartitionFilter: [Optional] If set to true, queries over this
3092	// table require a partition filter that can be used for partition
3093	// elimination to be specified. Note that this field should only be true
3094	// when creating a permanent external table or querying a temporary
3095	// external table. Hive-partitioned loads with requirePartitionFilter
3096	// explicitly set to true will fail.
3097	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
3098
3099	// SourceUriPrefix: [Optional] When hive partition detection is
3100	// requested, a common prefix for all source uris should be supplied.
3101	// The prefix must end immediately before the partition key encoding
3102	// begins. For example, consider files following this data layout.
3103	// gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro
3104	// gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro
3105	// When hive partitioning is requested with either AUTO or STRINGS
3106	// detection, the common prefix can be either of
3107	// gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing
3108	// slash does not matter).
3109	SourceUriPrefix string `json:"sourceUriPrefix,omitempty"`
3110
3111	// ForceSendFields is a list of field names (e.g. "Mode") to
3112	// unconditionally include in API requests. By default, fields with
3113	// empty values are omitted from API requests. However, any non-pointer,
3114	// non-interface field appearing in ForceSendFields will be sent to the
3115	// server regardless of whether the field is empty or not. This may be
3116	// used to include empty fields in Patch requests.
3117	ForceSendFields []string `json:"-"`
3118
3119	// NullFields is a list of field names (e.g. "Mode") to include in API
3120	// requests with the JSON null value. By default, fields with empty
3121	// values are omitted from API requests. However, any field with an
3122	// empty value appearing in NullFields will be sent to the server as
3123	// null. It is an error if a field in this list has a non-empty value.
3124	// This may be used to include null fields in Patch requests.
3125	NullFields []string `json:"-"`
3126}
3127
3128func (s *HivePartitioningOptions) MarshalJSON() ([]byte, error) {
3129	type NoMethod HivePartitioningOptions
3130	raw := NoMethod(*s)
3131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3132}
3133
3134// IterationResult: Information about a single iteration of the training
3135// run.
3136type IterationResult struct {
3137	ArimaResult *ArimaResult `json:"arimaResult,omitempty"`
3138
3139	// ClusterInfos: Information about top clusters for clustering models.
3140	ClusterInfos []*ClusterInfo `json:"clusterInfos,omitempty"`
3141
3142	// DurationMs: Time taken to run the iteration in milliseconds.
3143	DurationMs int64 `json:"durationMs,omitempty,string"`
3144
3145	// EvalLoss: Loss computed on the eval data at the end of iteration.
3146	EvalLoss float64 `json:"evalLoss,omitempty"`
3147
3148	// Index: Index of the iteration, 0 based.
3149	Index int64 `json:"index,omitempty"`
3150
3151	// LearnRate: Learn rate used for this iteration.
3152	LearnRate float64 `json:"learnRate,omitempty"`
3153
3154	// TrainingLoss: Loss computed on the training data at the end of
3155	// iteration.
3156	TrainingLoss float64 `json:"trainingLoss,omitempty"`
3157
3158	// ForceSendFields is a list of field names (e.g. "ArimaResult") to
3159	// unconditionally include in API requests. By default, fields with
3160	// empty values are omitted from API requests. However, any non-pointer,
3161	// non-interface field appearing in ForceSendFields will be sent to the
3162	// server regardless of whether the field is empty or not. This may be
3163	// used to include empty fields in Patch requests.
3164	ForceSendFields []string `json:"-"`
3165
3166	// NullFields is a list of field names (e.g. "ArimaResult") to include
3167	// in API requests with the JSON null value. By default, fields with
3168	// empty values are omitted from API requests. However, any field with
3169	// an empty value appearing in NullFields will be sent to the server as
3170	// null. It is an error if a field in this list has a non-empty value.
3171	// This may be used to include null fields in Patch requests.
3172	NullFields []string `json:"-"`
3173}
3174
3175func (s *IterationResult) MarshalJSON() ([]byte, error) {
3176	type NoMethod IterationResult
3177	raw := NoMethod(*s)
3178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3179}
3180
3181func (s *IterationResult) UnmarshalJSON(data []byte) error {
3182	type NoMethod IterationResult
3183	var s1 struct {
3184		EvalLoss     gensupport.JSONFloat64 `json:"evalLoss"`
3185		LearnRate    gensupport.JSONFloat64 `json:"learnRate"`
3186		TrainingLoss gensupport.JSONFloat64 `json:"trainingLoss"`
3187		*NoMethod
3188	}
3189	s1.NoMethod = (*NoMethod)(s)
3190	if err := json.Unmarshal(data, &s1); err != nil {
3191		return err
3192	}
3193	s.EvalLoss = float64(s1.EvalLoss)
3194	s.LearnRate = float64(s1.LearnRate)
3195	s.TrainingLoss = float64(s1.TrainingLoss)
3196	return nil
3197}
3198
3199type Job struct {
3200	// Configuration: [Required] Describes the job configuration.
3201	Configuration *JobConfiguration `json:"configuration,omitempty"`
3202
3203	// Etag: [Output-only] A hash of this resource.
3204	Etag string `json:"etag,omitempty"`
3205
3206	// Id: [Output-only] Opaque ID field of the job
3207	Id string `json:"id,omitempty"`
3208
3209	// JobReference: [Optional] Reference describing the unique-per-user
3210	// name of the job.
3211	JobReference *JobReference `json:"jobReference,omitempty"`
3212
3213	// Kind: [Output-only] The type of the resource.
3214	Kind string `json:"kind,omitempty"`
3215
3216	// SelfLink: [Output-only] A URL that can be used to access this
3217	// resource again.
3218	SelfLink string `json:"selfLink,omitempty"`
3219
3220	// Statistics: [Output-only] Information about the job, including
3221	// starting time and ending time of the job.
3222	Statistics *JobStatistics `json:"statistics,omitempty"`
3223
3224	// Status: [Output-only] The status of this job. Examine this value when
3225	// polling an asynchronous job to see if the job is complete.
3226	Status *JobStatus `json:"status,omitempty"`
3227
3228	// UserEmail: [Output-only] Email address of the user who ran the job.
3229	UserEmail string `json:"user_email,omitempty"`
3230
3231	// ServerResponse contains the HTTP response code and headers from the
3232	// server.
3233	googleapi.ServerResponse `json:"-"`
3234
3235	// ForceSendFields is a list of field names (e.g. "Configuration") to
3236	// unconditionally include in API requests. By default, fields with
3237	// empty values are omitted from API requests. However, any non-pointer,
3238	// non-interface field appearing in ForceSendFields will be sent to the
3239	// server regardless of whether the field is empty or not. This may be
3240	// used to include empty fields in Patch requests.
3241	ForceSendFields []string `json:"-"`
3242
3243	// NullFields is a list of field names (e.g. "Configuration") to include
3244	// in API requests with the JSON null value. By default, fields with
3245	// empty values are omitted from API requests. However, any field with
3246	// an empty value appearing in NullFields will be sent to the server as
3247	// null. It is an error if a field in this list has a non-empty value.
3248	// This may be used to include null fields in Patch requests.
3249	NullFields []string `json:"-"`
3250}
3251
3252func (s *Job) MarshalJSON() ([]byte, error) {
3253	type NoMethod Job
3254	raw := NoMethod(*s)
3255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3256}
3257
3258type JobCancelResponse struct {
3259	// Job: The final state of the job.
3260	Job *Job `json:"job,omitempty"`
3261
3262	// Kind: The resource type of the response.
3263	Kind string `json:"kind,omitempty"`
3264
3265	// ServerResponse contains the HTTP response code and headers from the
3266	// server.
3267	googleapi.ServerResponse `json:"-"`
3268
3269	// ForceSendFields is a list of field names (e.g. "Job") to
3270	// unconditionally include in API requests. By default, fields with
3271	// empty values are omitted from API requests. However, any non-pointer,
3272	// non-interface field appearing in ForceSendFields will be sent to the
3273	// server regardless of whether the field is empty or not. This may be
3274	// used to include empty fields in Patch requests.
3275	ForceSendFields []string `json:"-"`
3276
3277	// NullFields is a list of field names (e.g. "Job") to include in API
3278	// requests with the JSON null value. By default, fields with empty
3279	// values are omitted from API requests. However, any field with an
3280	// empty value appearing in NullFields will be sent to the server as
3281	// null. It is an error if a field in this list has a non-empty value.
3282	// This may be used to include null fields in Patch requests.
3283	NullFields []string `json:"-"`
3284}
3285
3286func (s *JobCancelResponse) MarshalJSON() ([]byte, error) {
3287	type NoMethod JobCancelResponse
3288	raw := NoMethod(*s)
3289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3290}
3291
3292type JobConfiguration struct {
3293	// Copy: [Pick one] Copies a table.
3294	Copy *JobConfigurationTableCopy `json:"copy,omitempty"`
3295
3296	// DryRun: [Optional] If set, don't actually run this job. A valid query
3297	// will return a mostly empty response with some processing statistics,
3298	// while an invalid query will return the same error it would if it
3299	// wasn't a dry run. Behavior of non-query jobs is undefined.
3300	DryRun bool `json:"dryRun,omitempty"`
3301
3302	// Extract: [Pick one] Configures an extract job.
3303	Extract *JobConfigurationExtract `json:"extract,omitempty"`
3304
3305	// JobTimeoutMs: [Optional] Job timeout in milliseconds. If this time
3306	// limit is exceeded, BigQuery may attempt to terminate the job.
3307	JobTimeoutMs int64 `json:"jobTimeoutMs,omitempty,string"`
3308
3309	// JobType: [Output-only] The type of the job. Can be QUERY, LOAD,
3310	// EXTRACT, COPY or UNKNOWN.
3311	JobType string `json:"jobType,omitempty"`
3312
3313	// Labels: The labels associated with this job. You can use these to
3314	// organize and group your jobs. Label keys and values can be no longer
3315	// than 63 characters, can only contain lowercase letters, numeric
3316	// characters, underscores and dashes. International characters are
3317	// allowed. Label values are optional. Label keys must start with a
3318	// letter and each label in the list must have a different key.
3319	Labels map[string]string `json:"labels,omitempty"`
3320
3321	// Load: [Pick one] Configures a load job.
3322	Load *JobConfigurationLoad `json:"load,omitempty"`
3323
3324	// Query: [Pick one] Configures a query job.
3325	Query *JobConfigurationQuery `json:"query,omitempty"`
3326
3327	// ForceSendFields is a list of field names (e.g. "Copy") to
3328	// unconditionally include in API requests. By default, fields with
3329	// empty values are omitted from API requests. However, any non-pointer,
3330	// non-interface field appearing in ForceSendFields will be sent to the
3331	// server regardless of whether the field is empty or not. This may be
3332	// used to include empty fields in Patch requests.
3333	ForceSendFields []string `json:"-"`
3334
3335	// NullFields is a list of field names (e.g. "Copy") to include in API
3336	// requests with the JSON null value. By default, fields with empty
3337	// values are omitted from API requests. However, any field with an
3338	// empty value appearing in NullFields will be sent to the server as
3339	// null. It is an error if a field in this list has a non-empty value.
3340	// This may be used to include null fields in Patch requests.
3341	NullFields []string `json:"-"`
3342}
3343
3344func (s *JobConfiguration) MarshalJSON() ([]byte, error) {
3345	type NoMethod JobConfiguration
3346	raw := NoMethod(*s)
3347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3348}
3349
3350type JobConfigurationExtract struct {
3351	// Compression: [Optional] The compression type to use for exported
3352	// files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE. The
3353	// default value is NONE. DEFLATE and SNAPPY are only supported for
3354	// Avro. Not applicable when extracting models.
3355	Compression string `json:"compression,omitempty"`
3356
3357	// DestinationFormat: [Optional] The exported file format. Possible
3358	// values include CSV, NEWLINE_DELIMITED_JSON, PARQUET or AVRO for
3359	// tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The
3360	// default value for tables is CSV. Tables with nested or repeated
3361	// fields cannot be exported as CSV. The default value for models is
3362	// ML_TF_SAVED_MODEL.
3363	DestinationFormat string `json:"destinationFormat,omitempty"`
3364
3365	// DestinationUri: [Pick one] DEPRECATED: Use destinationUris instead,
3366	// passing only one URI as necessary. The fully-qualified Google Cloud
3367	// Storage URI where the extracted table should be written.
3368	DestinationUri string `json:"destinationUri,omitempty"`
3369
3370	// DestinationUris: [Pick one] A list of fully-qualified Google Cloud
3371	// Storage URIs where the extracted table should be written.
3372	DestinationUris []string `json:"destinationUris,omitempty"`
3373
3374	// FieldDelimiter: [Optional] Delimiter to use between fields in the
3375	// exported data. Default is ','. Not applicable when extracting models.
3376	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
3377
3378	// PrintHeader: [Optional] Whether to print out a header row in the
3379	// results. Default is true. Not applicable when extracting models.
3380	//
3381	// Default: true
3382	PrintHeader *bool `json:"printHeader,omitempty"`
3383
3384	// SourceModel: A reference to the model being exported.
3385	SourceModel *ModelReference `json:"sourceModel,omitempty"`
3386
3387	// SourceTable: A reference to the table being exported.
3388	SourceTable *TableReference `json:"sourceTable,omitempty"`
3389
3390	// UseAvroLogicalTypes: [Optional] If destinationFormat is set to
3391	// "AVRO", this flag indicates whether to enable extracting applicable
3392	// column types (such as TIMESTAMP) to their corresponding AVRO logical
3393	// types (timestamp-micros), instead of only using their raw types
3394	// (avro-long). Not applicable when extracting models.
3395	UseAvroLogicalTypes bool `json:"useAvroLogicalTypes,omitempty"`
3396
3397	// ForceSendFields is a list of field names (e.g. "Compression") to
3398	// unconditionally include in API requests. By default, fields with
3399	// empty values are omitted from API requests. However, any non-pointer,
3400	// non-interface field appearing in ForceSendFields will be sent to the
3401	// server regardless of whether the field is empty or not. This may be
3402	// used to include empty fields in Patch requests.
3403	ForceSendFields []string `json:"-"`
3404
3405	// NullFields is a list of field names (e.g. "Compression") to include
3406	// in API requests with the JSON null value. By default, fields with
3407	// empty values are omitted from API requests. However, any field with
3408	// an empty value appearing in NullFields will be sent to the server as
3409	// null. It is an error if a field in this list has a non-empty value.
3410	// This may be used to include null fields in Patch requests.
3411	NullFields []string `json:"-"`
3412}
3413
3414func (s *JobConfigurationExtract) MarshalJSON() ([]byte, error) {
3415	type NoMethod JobConfigurationExtract
3416	raw := NoMethod(*s)
3417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3418}
3419
3420type JobConfigurationLoad struct {
3421	// AllowJaggedRows: [Optional] Accept rows that are missing trailing
3422	// optional columns. The missing values are treated as nulls. If false,
3423	// records with missing trailing columns are treated as bad records, and
3424	// if there are too many bad records, an invalid error is returned in
3425	// the job result. The default value is false. Only applicable to CSV,
3426	// ignored for other formats.
3427	AllowJaggedRows bool `json:"allowJaggedRows,omitempty"`
3428
3429	// AllowQuotedNewlines: Indicates if BigQuery should allow quoted data
3430	// sections that contain newline characters in a CSV file. The default
3431	// value is false.
3432	AllowQuotedNewlines bool `json:"allowQuotedNewlines,omitempty"`
3433
3434	// Autodetect: [Optional] Indicates if we should automatically infer the
3435	// options and schema for CSV and JSON sources.
3436	Autodetect bool `json:"autodetect,omitempty"`
3437
3438	// Clustering: [Beta] Clustering specification for the destination
3439	// table. Must be specified with time-based partitioning, data in the
3440	// table will be first partitioned and subsequently clustered.
3441	Clustering *Clustering `json:"clustering,omitempty"`
3442
3443	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3444	// create new tables. The following values are supported:
3445	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3446	// table. CREATE_NEVER: The table must already exist. If it does not, a
3447	// 'notFound' error is returned in the job result. The default value is
3448	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3449	// one atomic update upon job completion.
3450	CreateDisposition string `json:"createDisposition,omitempty"`
3451
3452	// DecimalTargetTypes: [Trusted Tester] Defines the list of possible SQL
3453	// data types to which the source decimal values are converted. This
3454	// list and the precision and the scale parameters of the decimal field
3455	// determine the target type. In the order of NUMERIC, BIGNUMERIC, and
3456	// STRING, a type is picked if it is in the specified list and if it
3457	// supports the precision and the scale. STRING supports all precision
3458	// and scale values. If none of the listed types supports the precision
3459	// and the scale, the type supporting the widest range in the specified
3460	// list is picked, and if a value exceeds the supported range when
3461	// reading the data, an error will be thrown. For example: suppose
3462	// decimal_target_type = ["NUMERIC", "BIGNUMERIC"]. Then if
3463	// (precision,scale) is: * (38,9) -> NUMERIC; * (39,9) -> BIGNUMERIC
3464	// (NUMERIC cannot hold 30 integer digits); * (38,10) -> BIGNUMERIC
3465	// (NUMERIC cannot hold 10 fractional digits); * (76,38) -> BIGNUMERIC;
3466	// * (77,38) -> BIGNUMERIC (error if value exeeds supported range). For
3467	// duplicated types in this field, only one will be considered and the
3468	// rest will be ignored. The order of the types in this field is
3469	// ignored. For example, ["BIGNUMERIC", "NUMERIC"] is the same as
3470	// ["NUMERIC", "BIGNUMERIC"] and NUMERIC always takes precedence over
3471	// BIGNUMERIC.
3472	DecimalTargetTypes []string `json:"decimalTargetTypes,omitempty"`
3473
3474	// DestinationEncryptionConfiguration: Custom encryption configuration
3475	// (e.g., Cloud KMS keys).
3476	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3477
3478	// DestinationTable: [Required] The destination table to load the data
3479	// into.
3480	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3481
3482	// DestinationTableProperties: [Beta] [Optional] Properties with which
3483	// to create the destination table if it is new.
3484	DestinationTableProperties *DestinationTableProperties `json:"destinationTableProperties,omitempty"`
3485
3486	// Encoding: [Optional] The character encoding of the data. The
3487	// supported values are UTF-8 or ISO-8859-1. The default value is UTF-8.
3488	// BigQuery decodes the data after the raw, binary data has been split
3489	// using the values of the quote and fieldDelimiter properties.
3490	Encoding string `json:"encoding,omitempty"`
3491
3492	// FieldDelimiter: [Optional] The separator for fields in a CSV file.
3493	// The separator can be any ISO-8859-1 single-byte character. To use a
3494	// character in the range 128-255, you must encode the character as
3495	// UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then
3496	// uses the first byte of the encoded string to split the data in its
3497	// raw, binary state. BigQuery also supports the escape sequence "\t" to
3498	// specify a tab separator. The default value is a comma (',').
3499	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
3500
3501	// HivePartitioningOptions: [Optional, Trusted Tester] Options to
3502	// configure hive partitioning support.
3503	HivePartitioningOptions *HivePartitioningOptions `json:"hivePartitioningOptions,omitempty"`
3504
3505	// IgnoreUnknownValues: [Optional] Indicates if BigQuery should allow
3506	// extra values that are not represented in the table schema. If true,
3507	// the extra values are ignored. If false, records with extra columns
3508	// are treated as bad records, and if there are too many bad records, an
3509	// invalid error is returned in the job result. The default value is
3510	// false. The sourceFormat property determines what BigQuery treats as
3511	// an extra value: CSV: Trailing columns JSON: Named values that don't
3512	// match any column names
3513	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
3514
3515	// MaxBadRecords: [Optional] The maximum number of bad records that
3516	// BigQuery can ignore when running the job. If the number of bad
3517	// records exceeds this value, an invalid error is returned in the job
3518	// result. This is only valid for CSV and JSON. The default value is 0,
3519	// which requires that all records are valid.
3520	MaxBadRecords int64 `json:"maxBadRecords,omitempty"`
3521
3522	// NullMarker: [Optional] Specifies a string that represents a null
3523	// value in a CSV file. For example, if you specify "\N", BigQuery
3524	// interprets "\N" as a null value when loading a CSV file. The default
3525	// value is the empty string. If you set this property to a custom
3526	// value, BigQuery throws an error if an empty string is present for all
3527	// data types except for STRING and BYTE. For STRING and BYTE columns,
3528	// BigQuery interprets the empty string as an empty value.
3529	NullMarker string `json:"nullMarker,omitempty"`
3530
3531	// ProjectionFields: If sourceFormat is set to "DATASTORE_BACKUP",
3532	// indicates which entity properties to load into BigQuery from a Cloud
3533	// Datastore backup. Property names are case sensitive and must be
3534	// top-level properties. If no properties are specified, BigQuery loads
3535	// all properties. If any named property isn't found in the Cloud
3536	// Datastore backup, an invalid error is returned in the job result.
3537	ProjectionFields []string `json:"projectionFields,omitempty"`
3538
3539	// Quote: [Optional] The value that is used to quote data sections in a
3540	// CSV file. BigQuery converts the string to ISO-8859-1 encoding, and
3541	// then uses the first byte of the encoded string to split the data in
3542	// its raw, binary state. The default value is a double-quote ('"'). If
3543	// your data does not contain quoted sections, set the property value to
3544	// an empty string. If your data contains quoted newline characters, you
3545	// must also set the allowQuotedNewlines property to true.
3546	//
3547	// Default: "
3548	Quote *string `json:"quote,omitempty"`
3549
3550	// RangePartitioning: [TrustedTester] Range partitioning specification
3551	// for this table. Only one of timePartitioning and rangePartitioning
3552	// should be specified.
3553	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
3554
3555	// Schema: [Optional] The schema for the destination table. The schema
3556	// can be omitted if the destination table already exists, or if you're
3557	// loading data from Google Cloud Datastore.
3558	Schema *TableSchema `json:"schema,omitempty"`
3559
3560	// SchemaInline: [Deprecated] The inline schema. For CSV schemas,
3561	// specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING,
3562	// bar:INTEGER, baz:FLOAT".
3563	SchemaInline string `json:"schemaInline,omitempty"`
3564
3565	// SchemaInlineFormat: [Deprecated] The format of the schemaInline
3566	// property.
3567	SchemaInlineFormat string `json:"schemaInlineFormat,omitempty"`
3568
3569	// SchemaUpdateOptions: Allows the schema of the destination table to be
3570	// updated as a side effect of the load job if a schema is autodetected
3571	// or supplied in the job configuration. Schema update options are
3572	// supported in two cases: when writeDisposition is WRITE_APPEND; when
3573	// writeDisposition is WRITE_TRUNCATE and the destination table is a
3574	// partition of a table, specified by partition decorators. For normal
3575	// tables, WRITE_TRUNCATE will always overwrite the schema. One or more
3576	// of the following values are specified: ALLOW_FIELD_ADDITION: allow
3577	// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow
3578	// relaxing a required field in the original schema to nullable.
3579	SchemaUpdateOptions []string `json:"schemaUpdateOptions,omitempty"`
3580
3581	// SkipLeadingRows: [Optional] The number of rows at the top of a CSV
3582	// file that BigQuery will skip when loading the data. The default value
3583	// is 0. This property is useful if you have header rows in the file
3584	// that should be skipped.
3585	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty"`
3586
3587	// SourceFormat: [Optional] The format of the data files. For CSV files,
3588	// specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For
3589	// newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro,
3590	// specify "AVRO". For parquet, specify "PARQUET". For orc, specify
3591	// "ORC". The default value is CSV.
3592	SourceFormat string `json:"sourceFormat,omitempty"`
3593
3594	// SourceUris: [Required] The fully-qualified URIs that point to your
3595	// data in Google Cloud. For Google Cloud Storage URIs: Each URI can
3596	// contain one '*' wildcard character and it must come after the
3597	// 'bucket' name. Size limits related to load jobs apply to external
3598	// data sources. For Google Cloud Bigtable URIs: Exactly one URI can be
3599	// specified and it has be a fully specified and valid HTTPS URL for a
3600	// Google Cloud Bigtable table. For Google Cloud Datastore backups:
3601	// Exactly one URI can be specified. Also, the '*' wildcard character is
3602	// not allowed.
3603	SourceUris []string `json:"sourceUris,omitempty"`
3604
3605	// TimePartitioning: Time-based partitioning specification for the
3606	// destination table. Only one of timePartitioning and rangePartitioning
3607	// should be specified.
3608	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
3609
3610	// UseAvroLogicalTypes: [Optional] If sourceFormat is set to "AVRO",
3611	// indicates whether to enable interpreting logical types into their
3612	// corresponding types (ie. TIMESTAMP), instead of only using their raw
3613	// types (ie. INTEGER).
3614	UseAvroLogicalTypes bool `json:"useAvroLogicalTypes,omitempty"`
3615
3616	// WriteDisposition: [Optional] Specifies the action that occurs if the
3617	// destination table already exists. The following values are supported:
3618	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3619	// table data. WRITE_APPEND: If the table already exists, BigQuery
3620	// appends the data to the table. WRITE_EMPTY: If the table already
3621	// exists and contains data, a 'duplicate' error is returned in the job
3622	// result. The default value is WRITE_APPEND. Each action is atomic and
3623	// only occurs if BigQuery is able to complete the job successfully.
3624	// Creation, truncation and append actions occur as one atomic update
3625	// upon job completion.
3626	WriteDisposition string `json:"writeDisposition,omitempty"`
3627
3628	// ForceSendFields is a list of field names (e.g. "AllowJaggedRows") to
3629	// unconditionally include in API requests. By default, fields with
3630	// empty values are omitted from API requests. However, any non-pointer,
3631	// non-interface field appearing in ForceSendFields will be sent to the
3632	// server regardless of whether the field is empty or not. This may be
3633	// used to include empty fields in Patch requests.
3634	ForceSendFields []string `json:"-"`
3635
3636	// NullFields is a list of field names (e.g. "AllowJaggedRows") to
3637	// include in API requests with the JSON null value. By default, fields
3638	// with empty values are omitted from API requests. However, any field
3639	// with an empty value appearing in NullFields will be sent to the
3640	// server as null. It is an error if a field in this list has a
3641	// non-empty value. This may be used to include null fields in Patch
3642	// requests.
3643	NullFields []string `json:"-"`
3644}
3645
3646func (s *JobConfigurationLoad) MarshalJSON() ([]byte, error) {
3647	type NoMethod JobConfigurationLoad
3648	raw := NoMethod(*s)
3649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3650}
3651
3652type JobConfigurationQuery struct {
3653	// AllowLargeResults: [Optional] If true and query uses legacy SQL
3654	// dialect, allows the query to produce arbitrarily large result tables
3655	// at a slight cost in performance. Requires destinationTable to be set.
3656	// For standard SQL queries, this flag is ignored and large results are
3657	// always allowed. However, you must still set destinationTable when
3658	// result size exceeds the allowed maximum response size.
3659	AllowLargeResults bool `json:"allowLargeResults,omitempty"`
3660
3661	// Clustering: [Beta] Clustering specification for the destination
3662	// table. Must be specified with time-based partitioning, data in the
3663	// table will be first partitioned and subsequently clustered.
3664	Clustering *Clustering `json:"clustering,omitempty"`
3665
3666	// ConnectionProperties: Connection properties.
3667	ConnectionProperties []*ConnectionProperty `json:"connectionProperties,omitempty"`
3668
3669	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3670	// create new tables. The following values are supported:
3671	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3672	// table. CREATE_NEVER: The table must already exist. If it does not, a
3673	// 'notFound' error is returned in the job result. The default value is
3674	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3675	// one atomic update upon job completion.
3676	CreateDisposition string `json:"createDisposition,omitempty"`
3677
3678	// DefaultDataset: [Optional] Specifies the default dataset to use for
3679	// unqualified table names in the query. Note that this does not alter
3680	// behavior of unqualified dataset names.
3681	DefaultDataset *DatasetReference `json:"defaultDataset,omitempty"`
3682
3683	// DestinationEncryptionConfiguration: Custom encryption configuration
3684	// (e.g., Cloud KMS keys).
3685	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3686
3687	// DestinationTable: [Optional] Describes the table where the query
3688	// results should be stored. If not present, a new table will be created
3689	// to store the results. This property must be set for large results
3690	// that exceed the maximum response size.
3691	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3692
3693	// FlattenResults: [Optional] If true and query uses legacy SQL dialect,
3694	// flattens all nested and repeated fields in the query results.
3695	// allowLargeResults must be true if this is set to false. For standard
3696	// SQL queries, this flag is ignored and results are never flattened.
3697	//
3698	// Default: true
3699	FlattenResults *bool `json:"flattenResults,omitempty"`
3700
3701	// MaximumBillingTier: [Optional] Limits the billing tier for this job.
3702	// Queries that have resource usage beyond this tier will fail (without
3703	// incurring a charge). If unspecified, this will be set to your project
3704	// default.
3705	//
3706	// Default: 1
3707	MaximumBillingTier *int64 `json:"maximumBillingTier,omitempty"`
3708
3709	// MaximumBytesBilled: [Optional] Limits the bytes billed for this job.
3710	// Queries that will have bytes billed beyond this limit will fail
3711	// (without incurring a charge). If unspecified, this will be set to
3712	// your project default.
3713	MaximumBytesBilled int64 `json:"maximumBytesBilled,omitempty,string"`
3714
3715	// ParameterMode: Standard SQL only. Set to POSITIONAL to use positional
3716	// (?) query parameters or to NAMED to use named (@myparam) query
3717	// parameters in this query.
3718	ParameterMode string `json:"parameterMode,omitempty"`
3719
3720	// PreserveNulls: [Deprecated] This property is deprecated.
3721	PreserveNulls bool `json:"preserveNulls,omitempty"`
3722
3723	// Priority: [Optional] Specifies a priority for the query. Possible
3724	// values include INTERACTIVE and BATCH. The default value is
3725	// INTERACTIVE.
3726	Priority string `json:"priority,omitempty"`
3727
3728	// Query: [Required] SQL query text to execute. The useLegacySql field
3729	// can be used to indicate whether the query uses legacy SQL or standard
3730	// SQL.
3731	Query string `json:"query,omitempty"`
3732
3733	// QueryParameters: Query parameters for standard SQL queries.
3734	QueryParameters []*QueryParameter `json:"queryParameters,omitempty"`
3735
3736	// RangePartitioning: [TrustedTester] Range partitioning specification
3737	// for this table. Only one of timePartitioning and rangePartitioning
3738	// should be specified.
3739	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
3740
3741	// SchemaUpdateOptions: Allows the schema of the destination table to be
3742	// updated as a side effect of the query job. Schema update options are
3743	// supported in two cases: when writeDisposition is WRITE_APPEND; when
3744	// writeDisposition is WRITE_TRUNCATE and the destination table is a
3745	// partition of a table, specified by partition decorators. For normal
3746	// tables, WRITE_TRUNCATE will always overwrite the schema. One or more
3747	// of the following values are specified: ALLOW_FIELD_ADDITION: allow
3748	// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow
3749	// relaxing a required field in the original schema to nullable.
3750	SchemaUpdateOptions []string `json:"schemaUpdateOptions,omitempty"`
3751
3752	// TableDefinitions: [Optional] If querying an external data source
3753	// outside of BigQuery, describes the data format, location and other
3754	// properties of the data source. By defining these properties, the data
3755	// source can then be queried as if it were a standard BigQuery table.
3756	TableDefinitions map[string]ExternalDataConfiguration `json:"tableDefinitions,omitempty"`
3757
3758	// TimePartitioning: Time-based partitioning specification for the
3759	// destination table. Only one of timePartitioning and rangePartitioning
3760	// should be specified.
3761	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
3762
3763	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL dialect
3764	// for this query. The default value is true. If set to false, the query
3765	// will use BigQuery's standard SQL:
3766	// https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is
3767	// set to false, the value of flattenResults is ignored; query will be
3768	// run as if flattenResults is false.
3769	//
3770	// Default: true
3771	UseLegacySql *bool `json:"useLegacySql,omitempty"`
3772
3773	// UseQueryCache: [Optional] Whether to look for the result in the query
3774	// cache. The query cache is a best-effort cache that will be flushed
3775	// whenever tables in the query are modified. Moreover, the query cache
3776	// is only available when a query does not have a destination table
3777	// specified. The default value is true.
3778	//
3779	// Default: true
3780	UseQueryCache *bool `json:"useQueryCache,omitempty"`
3781
3782	// UserDefinedFunctionResources: Describes user-defined function
3783	// resources used in the query.
3784	UserDefinedFunctionResources []*UserDefinedFunctionResource `json:"userDefinedFunctionResources,omitempty"`
3785
3786	// WriteDisposition: [Optional] Specifies the action that occurs if the
3787	// destination table already exists. The following values are supported:
3788	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3789	// table data and uses the schema from the query result. WRITE_APPEND:
3790	// If the table already exists, BigQuery appends the data to the table.
3791	// WRITE_EMPTY: If the table already exists and contains data, a
3792	// 'duplicate' error is returned in the job result. The default value is
3793	// WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is
3794	// able to complete the job successfully. Creation, truncation and
3795	// append actions occur as one atomic update upon job completion.
3796	WriteDisposition string `json:"writeDisposition,omitempty"`
3797
3798	// ForceSendFields is a list of field names (e.g. "AllowLargeResults")
3799	// to unconditionally include in API requests. By default, fields with
3800	// empty values are omitted from API requests. However, any non-pointer,
3801	// non-interface field appearing in ForceSendFields will be sent to the
3802	// server regardless of whether the field is empty or not. This may be
3803	// used to include empty fields in Patch requests.
3804	ForceSendFields []string `json:"-"`
3805
3806	// NullFields is a list of field names (e.g. "AllowLargeResults") to
3807	// include in API requests with the JSON null value. By default, fields
3808	// with empty values are omitted from API requests. However, any field
3809	// with an empty value appearing in NullFields will be sent to the
3810	// server as null. It is an error if a field in this list has a
3811	// non-empty value. This may be used to include null fields in Patch
3812	// requests.
3813	NullFields []string `json:"-"`
3814}
3815
3816func (s *JobConfigurationQuery) MarshalJSON() ([]byte, error) {
3817	type NoMethod JobConfigurationQuery
3818	raw := NoMethod(*s)
3819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3820}
3821
3822type JobConfigurationTableCopy struct {
3823	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3824	// create new tables. The following values are supported:
3825	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3826	// table. CREATE_NEVER: The table must already exist. If it does not, a
3827	// 'notFound' error is returned in the job result. The default value is
3828	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3829	// one atomic update upon job completion.
3830	CreateDisposition string `json:"createDisposition,omitempty"`
3831
3832	// DestinationEncryptionConfiguration: Custom encryption configuration
3833	// (e.g., Cloud KMS keys).
3834	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3835
3836	// DestinationExpirationTime: [Optional] The time when the destination
3837	// table expires. Expired tables will be deleted and their storage
3838	// reclaimed.
3839	DestinationExpirationTime interface{} `json:"destinationExpirationTime,omitempty"`
3840
3841	// DestinationTable: [Required] The destination table
3842	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3843
3844	// OperationType: [Optional] Supported operation types in table copy
3845	// job.
3846	OperationType string `json:"operationType,omitempty"`
3847
3848	// SourceTable: [Pick one] Source table to copy.
3849	SourceTable *TableReference `json:"sourceTable,omitempty"`
3850
3851	// SourceTables: [Pick one] Source tables to copy.
3852	SourceTables []*TableReference `json:"sourceTables,omitempty"`
3853
3854	// WriteDisposition: [Optional] Specifies the action that occurs if the
3855	// destination table already exists. The following values are supported:
3856	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3857	// table data. WRITE_APPEND: If the table already exists, BigQuery
3858	// appends the data to the table. WRITE_EMPTY: If the table already
3859	// exists and contains data, a 'duplicate' error is returned in the job
3860	// result. The default value is WRITE_EMPTY. Each action is atomic and
3861	// only occurs if BigQuery is able to complete the job successfully.
3862	// Creation, truncation and append actions occur as one atomic update
3863	// upon job completion.
3864	WriteDisposition string `json:"writeDisposition,omitempty"`
3865
3866	// ForceSendFields is a list of field names (e.g. "CreateDisposition")
3867	// to unconditionally include in API requests. By default, fields with
3868	// empty values are omitted from API requests. However, any non-pointer,
3869	// non-interface field appearing in ForceSendFields will be sent to the
3870	// server regardless of whether the field is empty or not. This may be
3871	// used to include empty fields in Patch requests.
3872	ForceSendFields []string `json:"-"`
3873
3874	// NullFields is a list of field names (e.g. "CreateDisposition") to
3875	// include in API requests with the JSON null value. By default, fields
3876	// with empty values are omitted from API requests. However, any field
3877	// with an empty value appearing in NullFields will be sent to the
3878	// server as null. It is an error if a field in this list has a
3879	// non-empty value. This may be used to include null fields in Patch
3880	// requests.
3881	NullFields []string `json:"-"`
3882}
3883
3884func (s *JobConfigurationTableCopy) MarshalJSON() ([]byte, error) {
3885	type NoMethod JobConfigurationTableCopy
3886	raw := NoMethod(*s)
3887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3888}
3889
3890type JobList struct {
3891	// Etag: A hash of this page of results.
3892	Etag string `json:"etag,omitempty"`
3893
3894	// Jobs: List of jobs that were requested.
3895	Jobs []*JobListJobs `json:"jobs,omitempty"`
3896
3897	// Kind: The resource type of the response.
3898	Kind string `json:"kind,omitempty"`
3899
3900	// NextPageToken: A token to request the next page of results.
3901	NextPageToken string `json:"nextPageToken,omitempty"`
3902
3903	// ServerResponse contains the HTTP response code and headers from the
3904	// server.
3905	googleapi.ServerResponse `json:"-"`
3906
3907	// ForceSendFields is a list of field names (e.g. "Etag") to
3908	// unconditionally include in API requests. By default, fields with
3909	// empty values are omitted from API requests. However, any non-pointer,
3910	// non-interface field appearing in ForceSendFields will be sent to the
3911	// server regardless of whether the field is empty or not. This may be
3912	// used to include empty fields in Patch requests.
3913	ForceSendFields []string `json:"-"`
3914
3915	// NullFields is a list of field names (e.g. "Etag") to include in API
3916	// requests with the JSON null value. By default, fields with empty
3917	// values are omitted from API requests. However, any field with an
3918	// empty value appearing in NullFields will be sent to the server as
3919	// null. It is an error if a field in this list has a non-empty value.
3920	// This may be used to include null fields in Patch requests.
3921	NullFields []string `json:"-"`
3922}
3923
3924func (s *JobList) MarshalJSON() ([]byte, error) {
3925	type NoMethod JobList
3926	raw := NoMethod(*s)
3927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3928}
3929
3930type JobListJobs struct {
3931	// Configuration: [Full-projection-only] Specifies the job
3932	// configuration.
3933	Configuration *JobConfiguration `json:"configuration,omitempty"`
3934
3935	// ErrorResult: A result object that will be present only if the job has
3936	// failed.
3937	ErrorResult *ErrorProto `json:"errorResult,omitempty"`
3938
3939	// Id: Unique opaque ID of the job.
3940	Id string `json:"id,omitempty"`
3941
3942	// JobReference: Job reference uniquely identifying the job.
3943	JobReference *JobReference `json:"jobReference,omitempty"`
3944
3945	// Kind: The resource type.
3946	Kind string `json:"kind,omitempty"`
3947
3948	// State: Running state of the job. When the state is DONE, errorResult
3949	// can be checked to determine whether the job succeeded or failed.
3950	State string `json:"state,omitempty"`
3951
3952	// Statistics: [Output-only] Information about the job, including
3953	// starting time and ending time of the job.
3954	Statistics *JobStatistics `json:"statistics,omitempty"`
3955
3956	// Status: [Full-projection-only] Describes the state of the job.
3957	Status *JobStatus `json:"status,omitempty"`
3958
3959	// UserEmail: [Full-projection-only] Email address of the user who ran
3960	// the job.
3961	UserEmail string `json:"user_email,omitempty"`
3962
3963	// ForceSendFields is a list of field names (e.g. "Configuration") to
3964	// unconditionally include in API requests. By default, fields with
3965	// empty values are omitted from API requests. However, any non-pointer,
3966	// non-interface field appearing in ForceSendFields will be sent to the
3967	// server regardless of whether the field is empty or not. This may be
3968	// used to include empty fields in Patch requests.
3969	ForceSendFields []string `json:"-"`
3970
3971	// NullFields is a list of field names (e.g. "Configuration") to include
3972	// in API requests with the JSON null value. By default, fields with
3973	// empty values are omitted from API requests. However, any field with
3974	// an empty value appearing in NullFields will be sent to the server as
3975	// null. It is an error if a field in this list has a non-empty value.
3976	// This may be used to include null fields in Patch requests.
3977	NullFields []string `json:"-"`
3978}
3979
3980func (s *JobListJobs) MarshalJSON() ([]byte, error) {
3981	type NoMethod JobListJobs
3982	raw := NoMethod(*s)
3983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3984}
3985
3986type JobReference struct {
3987	// JobId: [Required] The ID of the job. The ID must contain only letters
3988	// (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The
3989	// maximum length is 1,024 characters.
3990	JobId string `json:"jobId,omitempty"`
3991
3992	// Location: The geographic location of the job. See details at
3993	// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
3994	Location string `json:"location,omitempty"`
3995
3996	// ProjectId: [Required] The ID of the project containing this job.
3997	ProjectId string `json:"projectId,omitempty"`
3998
3999	// ForceSendFields is a list of field names (e.g. "JobId") to
4000	// unconditionally include in API requests. By default, fields with
4001	// empty values are omitted from API requests. However, any non-pointer,
4002	// non-interface field appearing in ForceSendFields will be sent to the
4003	// server regardless of whether the field is empty or not. This may be
4004	// used to include empty fields in Patch requests.
4005	ForceSendFields []string `json:"-"`
4006
4007	// NullFields is a list of field names (e.g. "JobId") to include in API
4008	// requests with the JSON null value. By default, fields with empty
4009	// values are omitted from API requests. However, any field with an
4010	// empty value appearing in NullFields will be sent to the server as
4011	// null. It is an error if a field in this list has a non-empty value.
4012	// This may be used to include null fields in Patch requests.
4013	NullFields []string `json:"-"`
4014}
4015
4016func (s *JobReference) MarshalJSON() ([]byte, error) {
4017	type NoMethod JobReference
4018	raw := NoMethod(*s)
4019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4020}
4021
4022type JobStatistics struct {
4023	// CompletionRatio: [TrustedTester] [Output-only] Job progress (0.0 ->
4024	// 1.0) for LOAD and EXTRACT jobs.
4025	CompletionRatio float64 `json:"completionRatio,omitempty"`
4026
4027	// CreationTime: [Output-only] Creation time of this job, in
4028	// milliseconds since the epoch. This field will be present on all jobs.
4029	CreationTime int64 `json:"creationTime,omitempty,string"`
4030
4031	// EndTime: [Output-only] End time of this job, in milliseconds since
4032	// the epoch. This field will be present whenever a job is in the DONE
4033	// state.
4034	EndTime int64 `json:"endTime,omitempty,string"`
4035
4036	// Extract: [Output-only] Statistics for an extract job.
4037	Extract *JobStatistics4 `json:"extract,omitempty"`
4038
4039	// Load: [Output-only] Statistics for a load job.
4040	Load *JobStatistics3 `json:"load,omitempty"`
4041
4042	// NumChildJobs: [Output-only] Number of child jobs executed.
4043	NumChildJobs int64 `json:"numChildJobs,omitempty,string"`
4044
4045	// ParentJobId: [Output-only] If this is a child job, the id of the
4046	// parent.
4047	ParentJobId string `json:"parentJobId,omitempty"`
4048
4049	// Query: [Output-only] Statistics for a query job.
4050	Query *JobStatistics2 `json:"query,omitempty"`
4051
4052	// QuotaDeferments: [Output-only] Quotas which delayed this job's start
4053	// time.
4054	QuotaDeferments []string `json:"quotaDeferments,omitempty"`
4055
4056	// ReservationUsage: [Output-only] Job resource usage breakdown by
4057	// reservation.
4058	ReservationUsage []*JobStatisticsReservationUsage `json:"reservationUsage,omitempty"`
4059
4060	// ReservationId: [Output-only] Name of the primary reservation assigned
4061	// to this job. Note that this could be different than reservations
4062	// reported in the reservation usage field if parent reservations were
4063	// used to execute this job.
4064	ReservationId string `json:"reservation_id,omitempty"`
4065
4066	// RowLevelSecurityStatistics: [Output-only] [Preview] Statistics for
4067	// row-level security. Present only for query and extract jobs.
4068	RowLevelSecurityStatistics *RowLevelSecurityStatistics `json:"rowLevelSecurityStatistics,omitempty"`
4069
4070	// ScriptStatistics: [Output-only] Statistics for a child job of a
4071	// script.
4072	ScriptStatistics *ScriptStatistics `json:"scriptStatistics,omitempty"`
4073
4074	// StartTime: [Output-only] Start time of this job, in milliseconds
4075	// since the epoch. This field will be present when the job transitions
4076	// from the PENDING state to either RUNNING or DONE.
4077	StartTime int64 `json:"startTime,omitempty,string"`
4078
4079	// TotalBytesProcessed: [Output-only] [Deprecated] Use the bytes
4080	// processed in the query statistics instead.
4081	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
4082
4083	// TotalSlotMs: [Output-only] Slot-milliseconds for the job.
4084	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
4085
4086	// TransactionInfoTemplate: [Output-only] [Alpha] Information of the
4087	// multi-statement transaction if this job is part of one.
4088	TransactionInfoTemplate *TransactionInfo `json:"transactionInfoTemplate,omitempty"`
4089
4090	// ForceSendFields is a list of field names (e.g. "CompletionRatio") to
4091	// unconditionally include in API requests. By default, fields with
4092	// empty values are omitted from API requests. However, any non-pointer,
4093	// non-interface field appearing in ForceSendFields will be sent to the
4094	// server regardless of whether the field is empty or not. This may be
4095	// used to include empty fields in Patch requests.
4096	ForceSendFields []string `json:"-"`
4097
4098	// NullFields is a list of field names (e.g. "CompletionRatio") to
4099	// include in API requests with the JSON null value. By default, fields
4100	// with empty values are omitted from API requests. However, any field
4101	// with an empty value appearing in NullFields will be sent to the
4102	// server as null. It is an error if a field in this list has a
4103	// non-empty value. This may be used to include null fields in Patch
4104	// requests.
4105	NullFields []string `json:"-"`
4106}
4107
4108func (s *JobStatistics) MarshalJSON() ([]byte, error) {
4109	type NoMethod JobStatistics
4110	raw := NoMethod(*s)
4111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4112}
4113
4114func (s *JobStatistics) UnmarshalJSON(data []byte) error {
4115	type NoMethod JobStatistics
4116	var s1 struct {
4117		CompletionRatio gensupport.JSONFloat64 `json:"completionRatio"`
4118		*NoMethod
4119	}
4120	s1.NoMethod = (*NoMethod)(s)
4121	if err := json.Unmarshal(data, &s1); err != nil {
4122		return err
4123	}
4124	s.CompletionRatio = float64(s1.CompletionRatio)
4125	return nil
4126}
4127
4128type JobStatisticsReservationUsage struct {
4129	// Name: [Output-only] Reservation name or "unreserved" for on-demand
4130	// resources usage.
4131	Name string `json:"name,omitempty"`
4132
4133	// SlotMs: [Output-only] Slot-milliseconds the job spent in the given
4134	// reservation.
4135	SlotMs int64 `json:"slotMs,omitempty,string"`
4136
4137	// ForceSendFields is a list of field names (e.g. "Name") to
4138	// unconditionally include in API requests. By default, fields with
4139	// empty values are omitted from API requests. However, any non-pointer,
4140	// non-interface field appearing in ForceSendFields will be sent to the
4141	// server regardless of whether the field is empty or not. This may be
4142	// used to include empty fields in Patch requests.
4143	ForceSendFields []string `json:"-"`
4144
4145	// NullFields is a list of field names (e.g. "Name") to include in API
4146	// requests with the JSON null value. By default, fields with empty
4147	// values are omitted from API requests. However, any field with an
4148	// empty value appearing in NullFields will be sent to the server as
4149	// null. It is an error if a field in this list has a non-empty value.
4150	// This may be used to include null fields in Patch requests.
4151	NullFields []string `json:"-"`
4152}
4153
4154func (s *JobStatisticsReservationUsage) MarshalJSON() ([]byte, error) {
4155	type NoMethod JobStatisticsReservationUsage
4156	raw := NoMethod(*s)
4157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4158}
4159
4160type JobStatistics2 struct {
4161	// BillingTier: [Output-only] Billing tier for the job.
4162	BillingTier int64 `json:"billingTier,omitempty"`
4163
4164	// CacheHit: [Output-only] Whether the query result was fetched from the
4165	// query cache.
4166	CacheHit bool `json:"cacheHit,omitempty"`
4167
4168	// DdlAffectedRowAccessPolicyCount: [Output-only] [Preview] The number
4169	// of row access policies affected by a DDL statement. Present only for
4170	// DROP ALL ROW ACCESS POLICIES queries.
4171	DdlAffectedRowAccessPolicyCount int64 `json:"ddlAffectedRowAccessPolicyCount,omitempty,string"`
4172
4173	// DdlOperationPerformed: The DDL operation performed, possibly
4174	// dependent on the pre-existence of the DDL target. Possible values
4175	// (new values might be added in the future): "CREATE": The query
4176	// created the DDL target. "SKIP": No-op. Example cases: the query is
4177	// CREATE TABLE IF NOT EXISTS while the table already exists, or the
4178	// query is DROP TABLE IF EXISTS while the table does not exist.
4179	// "REPLACE": The query replaced the DDL target. Example case: the query
4180	// is CREATE OR REPLACE TABLE, and the table already exists. "DROP": The
4181	// query deleted the DDL target.
4182	DdlOperationPerformed string `json:"ddlOperationPerformed,omitempty"`
4183
4184	// DdlTargetRoutine: The DDL target routine. Present only for
4185	// CREATE/DROP FUNCTION/PROCEDURE queries.
4186	DdlTargetRoutine *RoutineReference `json:"ddlTargetRoutine,omitempty"`
4187
4188	// DdlTargetRowAccessPolicy: [Output-only] [Preview] The DDL target row
4189	// access policy. Present only for CREATE/DROP ROW ACCESS POLICY
4190	// queries.
4191	DdlTargetRowAccessPolicy *RowAccessPolicyReference `json:"ddlTargetRowAccessPolicy,omitempty"`
4192
4193	// DdlTargetTable: [Output-only] The DDL target table. Present only for
4194	// CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries.
4195	DdlTargetTable *TableReference `json:"ddlTargetTable,omitempty"`
4196
4197	// EstimatedBytesProcessed: [Output-only] The original estimate of bytes
4198	// processed for the job.
4199	EstimatedBytesProcessed int64 `json:"estimatedBytesProcessed,omitempty,string"`
4200
4201	// ModelTraining: [Output-only, Beta] Information about create model
4202	// query job progress.
4203	ModelTraining *BigQueryModelTraining `json:"modelTraining,omitempty"`
4204
4205	// ModelTrainingCurrentIteration: [Output-only, Beta] Deprecated; do not
4206	// use.
4207	ModelTrainingCurrentIteration int64 `json:"modelTrainingCurrentIteration,omitempty"`
4208
4209	// ModelTrainingExpectedTotalIteration: [Output-only, Beta] Deprecated;
4210	// do not use.
4211	ModelTrainingExpectedTotalIteration int64 `json:"modelTrainingExpectedTotalIteration,omitempty,string"`
4212
4213	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
4214	// DML statement. Present only for DML statements INSERT, UPDATE or
4215	// DELETE.
4216	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
4217
4218	// QueryPlan: [Output-only] Describes execution plan for the query.
4219	QueryPlan []*ExplainQueryStage `json:"queryPlan,omitempty"`
4220
4221	// ReferencedRoutines: [Output-only] Referenced routines (persistent
4222	// user-defined functions and stored procedures) for the job.
4223	ReferencedRoutines []*RoutineReference `json:"referencedRoutines,omitempty"`
4224
4225	// ReferencedTables: [Output-only] Referenced tables for the job.
4226	// Queries that reference more than 50 tables will not have a complete
4227	// list.
4228	ReferencedTables []*TableReference `json:"referencedTables,omitempty"`
4229
4230	// ReservationUsage: [Output-only] Job resource usage breakdown by
4231	// reservation.
4232	ReservationUsage []*JobStatistics2ReservationUsage `json:"reservationUsage,omitempty"`
4233
4234	// Schema: [Output-only] The schema of the results. Present only for
4235	// successful dry run of non-legacy SQL queries.
4236	Schema *TableSchema `json:"schema,omitempty"`
4237
4238	// StatementType: The type of query statement, if valid. Possible values
4239	// (new values might be added in the future): "SELECT": SELECT query.
4240	// "INSERT": INSERT query; see
4241	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "UPDATE": UPDATE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "DELETE": DELETE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "MERGE": MERGE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "ALTER_TABLE": ALTER TABLE query. "ALTER_VIEW": ALTER VIEW query. "ASSERT": ASSERT condition AS 'description'. "CREATE_FUNCTION": CREATE FUNCTION query. "CREATE_MODEL": CREATE [OR REPLACE] MODEL ... AS SELECT ... . "CREATE_PROCEDURE": CREATE PROCEDURE query. "CREATE_TABLE": CREATE [OR REPLACE] TABLE without AS SELECT. "CREATE_TABLE_AS_SELECT": CREATE [OR REPLACE] TABLE ... AS SELECT ... . "CREATE_VIEW": CREATE [OR REPLACE] VIEW ... AS SELECT ... . "DROP_FUNCTION" : DROP FUNCTION query. "DROP_PROCEDURE": DROP PROCEDURE query. "DROP_TABLE": DROP TABLE query. "DROP_VIEW": DROP VIEW
4242	// query.
4243	StatementType string `json:"statementType,omitempty"`
4244
4245	// Timeline: [Output-only] [Beta] Describes a timeline of job execution.
4246	Timeline []*QueryTimelineSample `json:"timeline,omitempty"`
4247
4248	// TotalBytesBilled: [Output-only] Total bytes billed for the job.
4249	TotalBytesBilled int64 `json:"totalBytesBilled,omitempty,string"`
4250
4251	// TotalBytesProcessed: [Output-only] Total bytes processed for the job.
4252	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
4253
4254	// TotalBytesProcessedAccuracy: [Output-only] For dry-run jobs,
4255	// totalBytesProcessed is an estimate and this field specifies the
4256	// accuracy of the estimate. Possible values can be: UNKNOWN: accuracy
4257	// of the estimate is unknown. PRECISE: estimate is precise.
4258	// LOWER_BOUND: estimate is lower bound of what the query would cost.
4259	// UPPER_BOUND: estimate is upper bound of what the query would cost.
4260	TotalBytesProcessedAccuracy string `json:"totalBytesProcessedAccuracy,omitempty"`
4261
4262	// TotalPartitionsProcessed: [Output-only] Total number of partitions
4263	// processed from all partitioned tables referenced in the job.
4264	TotalPartitionsProcessed int64 `json:"totalPartitionsProcessed,omitempty,string"`
4265
4266	// TotalSlotMs: [Output-only] Slot-milliseconds for the job.
4267	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
4268
4269	// UndeclaredQueryParameters: Standard SQL only: list of undeclared
4270	// query parameters detected during a dry run validation.
4271	UndeclaredQueryParameters []*QueryParameter `json:"undeclaredQueryParameters,omitempty"`
4272
4273	// ForceSendFields is a list of field names (e.g. "BillingTier") to
4274	// unconditionally include in API requests. By default, fields with
4275	// empty values are omitted from API requests. However, any non-pointer,
4276	// non-interface field appearing in ForceSendFields will be sent to the
4277	// server regardless of whether the field is empty or not. This may be
4278	// used to include empty fields in Patch requests.
4279	ForceSendFields []string `json:"-"`
4280
4281	// NullFields is a list of field names (e.g. "BillingTier") to include
4282	// in API requests with the JSON null value. By default, fields with
4283	// empty values are omitted from API requests. However, any field with
4284	// an empty value appearing in NullFields will be sent to the server as
4285	// null. It is an error if a field in this list has a non-empty value.
4286	// This may be used to include null fields in Patch requests.
4287	NullFields []string `json:"-"`
4288}
4289
4290func (s *JobStatistics2) MarshalJSON() ([]byte, error) {
4291	type NoMethod JobStatistics2
4292	raw := NoMethod(*s)
4293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4294}
4295
4296type JobStatistics2ReservationUsage struct {
4297	// Name: [Output-only] Reservation name or "unreserved" for on-demand
4298	// resources usage.
4299	Name string `json:"name,omitempty"`
4300
4301	// SlotMs: [Output-only] Slot-milliseconds the job spent in the given
4302	// reservation.
4303	SlotMs int64 `json:"slotMs,omitempty,string"`
4304
4305	// ForceSendFields is a list of field names (e.g. "Name") to
4306	// unconditionally include in API requests. By default, fields with
4307	// empty values are omitted from API requests. However, any non-pointer,
4308	// non-interface field appearing in ForceSendFields will be sent to the
4309	// server regardless of whether the field is empty or not. This may be
4310	// used to include empty fields in Patch requests.
4311	ForceSendFields []string `json:"-"`
4312
4313	// NullFields is a list of field names (e.g. "Name") to include in API
4314	// requests with the JSON null value. By default, fields with empty
4315	// values are omitted from API requests. However, any field with an
4316	// empty value appearing in NullFields will be sent to the server as
4317	// null. It is an error if a field in this list has a non-empty value.
4318	// This may be used to include null fields in Patch requests.
4319	NullFields []string `json:"-"`
4320}
4321
4322func (s *JobStatistics2ReservationUsage) MarshalJSON() ([]byte, error) {
4323	type NoMethod JobStatistics2ReservationUsage
4324	raw := NoMethod(*s)
4325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4326}
4327
4328type JobStatistics3 struct {
4329	// BadRecords: [Output-only] The number of bad records encountered. Note
4330	// that if the job has failed because of more bad records encountered
4331	// than the maximum allowed in the load job configuration, then this
4332	// number can be less than the total number of bad records present in
4333	// the input data.
4334	BadRecords int64 `json:"badRecords,omitempty,string"`
4335
4336	// InputFileBytes: [Output-only] Number of bytes of source data in a
4337	// load job.
4338	InputFileBytes int64 `json:"inputFileBytes,omitempty,string"`
4339
4340	// InputFiles: [Output-only] Number of source files in a load job.
4341	InputFiles int64 `json:"inputFiles,omitempty,string"`
4342
4343	// OutputBytes: [Output-only] Size of the loaded data in bytes. Note
4344	// that while a load job is in the running state, this value may change.
4345	OutputBytes int64 `json:"outputBytes,omitempty,string"`
4346
4347	// OutputRows: [Output-only] Number of rows imported in a load job. Note
4348	// that while an import job is in the running state, this value may
4349	// change.
4350	OutputRows int64 `json:"outputRows,omitempty,string"`
4351
4352	// ForceSendFields is a list of field names (e.g. "BadRecords") to
4353	// unconditionally include in API requests. By default, fields with
4354	// empty values are omitted from API requests. However, any non-pointer,
4355	// non-interface field appearing in ForceSendFields will be sent to the
4356	// server regardless of whether the field is empty or not. This may be
4357	// used to include empty fields in Patch requests.
4358	ForceSendFields []string `json:"-"`
4359
4360	// NullFields is a list of field names (e.g. "BadRecords") to include in
4361	// API requests with the JSON null value. By default, fields with empty
4362	// values are omitted from API requests. However, any field with an
4363	// empty value appearing in NullFields will be sent to the server as
4364	// null. It is an error if a field in this list has a non-empty value.
4365	// This may be used to include null fields in Patch requests.
4366	NullFields []string `json:"-"`
4367}
4368
4369func (s *JobStatistics3) MarshalJSON() ([]byte, error) {
4370	type NoMethod JobStatistics3
4371	raw := NoMethod(*s)
4372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4373}
4374
4375type JobStatistics4 struct {
4376	// DestinationUriFileCounts: [Output-only] Number of files per
4377	// destination URI or URI pattern specified in the extract
4378	// configuration. These values will be in the same order as the URIs
4379	// specified in the 'destinationUris' field.
4380	DestinationUriFileCounts googleapi.Int64s `json:"destinationUriFileCounts,omitempty"`
4381
4382	// InputBytes: [Output-only] Number of user bytes extracted into the
4383	// result. This is the byte count as computed by BigQuery for billing
4384	// purposes.
4385	InputBytes int64 `json:"inputBytes,omitempty,string"`
4386
4387	// ForceSendFields is a list of field names (e.g.
4388	// "DestinationUriFileCounts") to unconditionally include in API
4389	// requests. By default, fields with empty values are omitted from API
4390	// requests. However, any non-pointer, non-interface field appearing in
4391	// ForceSendFields will be sent to the server regardless of whether the
4392	// field is empty or not. This may be used to include empty fields in
4393	// Patch requests.
4394	ForceSendFields []string `json:"-"`
4395
4396	// NullFields is a list of field names (e.g. "DestinationUriFileCounts")
4397	// to include in API requests with the JSON null value. By default,
4398	// fields with empty values are omitted from API requests. However, any
4399	// field with an empty value appearing in NullFields will be sent to the
4400	// server as null. It is an error if a field in this list has a
4401	// non-empty value. This may be used to include null fields in Patch
4402	// requests.
4403	NullFields []string `json:"-"`
4404}
4405
4406func (s *JobStatistics4) MarshalJSON() ([]byte, error) {
4407	type NoMethod JobStatistics4
4408	raw := NoMethod(*s)
4409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4410}
4411
4412type JobStatus struct {
4413	// ErrorResult: [Output-only] Final error result of the job. If present,
4414	// indicates that the job has completed and was unsuccessful.
4415	ErrorResult *ErrorProto `json:"errorResult,omitempty"`
4416
4417	// Errors: [Output-only] The first errors encountered during the running
4418	// of the job. The final message includes the number of errors that
4419	// caused the process to stop. Errors here do not necessarily mean that
4420	// the job has completed or was unsuccessful.
4421	Errors []*ErrorProto `json:"errors,omitempty"`
4422
4423	// State: [Output-only] Running state of the job.
4424	State string `json:"state,omitempty"`
4425
4426	// ForceSendFields is a list of field names (e.g. "ErrorResult") to
4427	// unconditionally include in API requests. By default, fields with
4428	// empty values are omitted from API requests. However, any non-pointer,
4429	// non-interface field appearing in ForceSendFields will be sent to the
4430	// server regardless of whether the field is empty or not. This may be
4431	// used to include empty fields in Patch requests.
4432	ForceSendFields []string `json:"-"`
4433
4434	// NullFields is a list of field names (e.g. "ErrorResult") to include
4435	// in API requests with the JSON null value. By default, fields with
4436	// empty values are omitted from API requests. However, any field with
4437	// an empty value appearing in NullFields will be sent to the server as
4438	// null. It is an error if a field in this list has a non-empty value.
4439	// This may be used to include null fields in Patch requests.
4440	NullFields []string `json:"-"`
4441}
4442
4443func (s *JobStatus) MarshalJSON() ([]byte, error) {
4444	type NoMethod JobStatus
4445	raw := NoMethod(*s)
4446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4447}
4448
4449type JsonValue interface{}
4450
4451type ListModelsResponse struct {
4452	// Models: Models in the requested dataset. Only the following fields
4453	// are populated: model_reference, model_type, creation_time,
4454	// last_modified_time and labels.
4455	Models []*Model `json:"models,omitempty"`
4456
4457	// NextPageToken: A token to request the next page of results.
4458	NextPageToken string `json:"nextPageToken,omitempty"`
4459
4460	// ServerResponse contains the HTTP response code and headers from the
4461	// server.
4462	googleapi.ServerResponse `json:"-"`
4463
4464	// ForceSendFields is a list of field names (e.g. "Models") to
4465	// unconditionally include in API requests. By default, fields with
4466	// empty values are omitted from API requests. However, any non-pointer,
4467	// non-interface field appearing in ForceSendFields will be sent to the
4468	// server regardless of whether the field is empty or not. This may be
4469	// used to include empty fields in Patch requests.
4470	ForceSendFields []string `json:"-"`
4471
4472	// NullFields is a list of field names (e.g. "Models") to include in API
4473	// requests with the JSON null value. By default, fields with empty
4474	// values are omitted from API requests. However, any field with an
4475	// empty value appearing in NullFields will be sent to the server as
4476	// null. It is an error if a field in this list has a non-empty value.
4477	// This may be used to include null fields in Patch requests.
4478	NullFields []string `json:"-"`
4479}
4480
4481func (s *ListModelsResponse) MarshalJSON() ([]byte, error) {
4482	type NoMethod ListModelsResponse
4483	raw := NoMethod(*s)
4484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4485}
4486
4487type ListRoutinesResponse struct {
4488	// NextPageToken: A token to request the next page of results.
4489	NextPageToken string `json:"nextPageToken,omitempty"`
4490
4491	// Routines: Routines in the requested dataset. Unless read_mask is set
4492	// in the request, only the following fields are populated: etag,
4493	// project_id, dataset_id, routine_id, routine_type, creation_time,
4494	// last_modified_time, and language.
4495	Routines []*Routine `json:"routines,omitempty"`
4496
4497	// ServerResponse contains the HTTP response code and headers from the
4498	// server.
4499	googleapi.ServerResponse `json:"-"`
4500
4501	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
4502	// unconditionally include in API requests. By default, fields with
4503	// empty values are omitted from API requests. However, any non-pointer,
4504	// non-interface field appearing in ForceSendFields will be sent to the
4505	// server regardless of whether the field is empty or not. This may be
4506	// used to include empty fields in Patch requests.
4507	ForceSendFields []string `json:"-"`
4508
4509	// NullFields is a list of field names (e.g. "NextPageToken") to include
4510	// in API requests with the JSON null value. By default, fields with
4511	// empty values are omitted from API requests. However, any field with
4512	// an empty value appearing in NullFields will be sent to the server as
4513	// null. It is an error if a field in this list has a non-empty value.
4514	// This may be used to include null fields in Patch requests.
4515	NullFields []string `json:"-"`
4516}
4517
4518func (s *ListRoutinesResponse) MarshalJSON() ([]byte, error) {
4519	type NoMethod ListRoutinesResponse
4520	raw := NoMethod(*s)
4521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4522}
4523
4524// ListRowAccessPoliciesResponse: Response message for the
4525// ListRowAccessPolicies method.
4526type ListRowAccessPoliciesResponse struct {
4527	// NextPageToken: A token to request the next page of results.
4528	NextPageToken string `json:"nextPageToken,omitempty"`
4529
4530	// RowAccessPolicies: Row access policies on the requested table.
4531	RowAccessPolicies []*RowAccessPolicy `json:"rowAccessPolicies,omitempty"`
4532
4533	// ServerResponse contains the HTTP response code and headers from the
4534	// server.
4535	googleapi.ServerResponse `json:"-"`
4536
4537	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
4538	// unconditionally include in API requests. By default, fields with
4539	// empty values are omitted from API requests. However, any non-pointer,
4540	// non-interface field appearing in ForceSendFields will be sent to the
4541	// server regardless of whether the field is empty or not. This may be
4542	// used to include empty fields in Patch requests.
4543	ForceSendFields []string `json:"-"`
4544
4545	// NullFields is a list of field names (e.g. "NextPageToken") to include
4546	// in API requests with the JSON null value. By default, fields with
4547	// empty values are omitted from API requests. However, any field with
4548	// an empty value appearing in NullFields will be sent to the server as
4549	// null. It is an error if a field in this list has a non-empty value.
4550	// This may be used to include null fields in Patch requests.
4551	NullFields []string `json:"-"`
4552}
4553
4554func (s *ListRowAccessPoliciesResponse) MarshalJSON() ([]byte, error) {
4555	type NoMethod ListRowAccessPoliciesResponse
4556	raw := NoMethod(*s)
4557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4558}
4559
4560// LocationMetadata: BigQuery-specific metadata about a location. This
4561// will be set on google.cloud.location.Location.metadata in Cloud
4562// Location API responses.
4563type LocationMetadata struct {
4564	// LegacyLocationId: The legacy BigQuery location ID, e.g. “EU” for
4565	// the “europe” location. This is for any API consumers that need
4566	// the legacy “US” and “EU” locations.
4567	LegacyLocationId string `json:"legacyLocationId,omitempty"`
4568
4569	// ForceSendFields is a list of field names (e.g. "LegacyLocationId") to
4570	// unconditionally include in API requests. By default, fields with
4571	// empty values are omitted from API requests. However, any non-pointer,
4572	// non-interface field appearing in ForceSendFields will be sent to the
4573	// server regardless of whether the field is empty or not. This may be
4574	// used to include empty fields in Patch requests.
4575	ForceSendFields []string `json:"-"`
4576
4577	// NullFields is a list of field names (e.g. "LegacyLocationId") to
4578	// include in API requests with the JSON null value. By default, fields
4579	// with empty values are omitted from API requests. However, any field
4580	// with an empty value appearing in NullFields will be sent to the
4581	// server as null. It is an error if a field in this list has a
4582	// non-empty value. This may be used to include null fields in Patch
4583	// requests.
4584	NullFields []string `json:"-"`
4585}
4586
4587func (s *LocationMetadata) MarshalJSON() ([]byte, error) {
4588	type NoMethod LocationMetadata
4589	raw := NoMethod(*s)
4590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4591}
4592
4593type MaterializedViewDefinition struct {
4594	// EnableRefresh: [Optional] [TrustedTester] Enable automatic refresh of
4595	// the materialized view when the base table is updated. The default
4596	// value is "true".
4597	EnableRefresh bool `json:"enableRefresh,omitempty"`
4598
4599	// LastRefreshTime: [Output-only] [TrustedTester] The time when this
4600	// materialized view was last modified, in milliseconds since the epoch.
4601	LastRefreshTime int64 `json:"lastRefreshTime,omitempty,string"`
4602
4603	// Query: [Required] A query whose result is persisted.
4604	Query string `json:"query,omitempty"`
4605
4606	// RefreshIntervalMs: [Optional] [TrustedTester] The maximum frequency
4607	// at which this materialized view will be refreshed. The default value
4608	// is "1800000" (30 minutes).
4609	RefreshIntervalMs int64 `json:"refreshIntervalMs,omitempty,string"`
4610
4611	// ForceSendFields is a list of field names (e.g. "EnableRefresh") to
4612	// unconditionally include in API requests. By default, fields with
4613	// empty values are omitted from API requests. However, any non-pointer,
4614	// non-interface field appearing in ForceSendFields will be sent to the
4615	// server regardless of whether the field is empty or not. This may be
4616	// used to include empty fields in Patch requests.
4617	ForceSendFields []string `json:"-"`
4618
4619	// NullFields is a list of field names (e.g. "EnableRefresh") to include
4620	// in API requests with the JSON null value. By default, fields with
4621	// empty values are omitted from API requests. However, any field with
4622	// an empty value appearing in NullFields will be sent to the server as
4623	// null. It is an error if a field in this list has a non-empty value.
4624	// This may be used to include null fields in Patch requests.
4625	NullFields []string `json:"-"`
4626}
4627
4628func (s *MaterializedViewDefinition) MarshalJSON() ([]byte, error) {
4629	type NoMethod MaterializedViewDefinition
4630	raw := NoMethod(*s)
4631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4632}
4633
4634type Model struct {
4635	// CreationTime: Output only. The time when this model was created, in
4636	// millisecs since the epoch.
4637	CreationTime int64 `json:"creationTime,omitempty,string"`
4638
4639	// Description: Optional. A user-friendly description of this model.
4640	Description string `json:"description,omitempty"`
4641
4642	// EncryptionConfiguration: Custom encryption configuration (e.g., Cloud
4643	// KMS keys). This shows the encryption configuration of the model data
4644	// while stored in BigQuery storage. This field can be used with
4645	// PatchModel to update encryption key for an already encrypted model.
4646	EncryptionConfiguration *EncryptionConfiguration `json:"encryptionConfiguration,omitempty"`
4647
4648	// Etag: Output only. A hash of this resource.
4649	Etag string `json:"etag,omitempty"`
4650
4651	// ExpirationTime: Optional. The time when this model expires, in
4652	// milliseconds since the epoch. If not present, the model will persist
4653	// indefinitely. Expired models will be deleted and their storage
4654	// reclaimed. The defaultTableExpirationMs property of the encapsulating
4655	// dataset can be used to set a default expirationTime on newly created
4656	// models.
4657	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
4658
4659	// FeatureColumns: Output only. Input feature columns that were used to
4660	// train this model.
4661	FeatureColumns []*StandardSqlField `json:"featureColumns,omitempty"`
4662
4663	// FriendlyName: Optional. A descriptive name for this model.
4664	FriendlyName string `json:"friendlyName,omitempty"`
4665
4666	// LabelColumns: Output only. Label columns that were used to train this
4667	// model. The output of the model will have a "predicted_" prefix to
4668	// these columns.
4669	LabelColumns []*StandardSqlField `json:"labelColumns,omitempty"`
4670
4671	// Labels: The labels associated with this model. You can use these to
4672	// organize and group your models. Label keys and values can be no
4673	// longer than 63 characters, can only contain lowercase letters,
4674	// numeric characters, underscores and dashes. International characters
4675	// are allowed. Label values are optional. Label keys must start with a
4676	// letter and each label in the list must have a different key.
4677	Labels map[string]string `json:"labels,omitempty"`
4678
4679	// LastModifiedTime: Output only. The time when this model was last
4680	// modified, in millisecs since the epoch.
4681	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
4682
4683	// Location: Output only. The geographic location where the model
4684	// resides. This value is inherited from the dataset.
4685	Location string `json:"location,omitempty"`
4686
4687	// ModelReference: Required. Unique identifier for this model.
4688	ModelReference *ModelReference `json:"modelReference,omitempty"`
4689
4690	// ModelType: Output only. Type of the model resource.
4691	//
4692	// Possible values:
4693	//   "MODEL_TYPE_UNSPECIFIED"
4694	//   "LINEAR_REGRESSION" - Linear regression model.
4695	//   "LOGISTIC_REGRESSION" - Logistic regression based classification
4696	// model.
4697	//   "KMEANS" - K-means clustering model.
4698	//   "MATRIX_FACTORIZATION" - Matrix factorization model.
4699	//   "DNN_CLASSIFIER" - [Beta] DNN classifier model.
4700	//   "TENSORFLOW" - [Beta] An imported TensorFlow model.
4701	//   "DNN_REGRESSOR" - [Beta] DNN regressor model.
4702	//   "BOOSTED_TREE_REGRESSOR" - [Beta] Boosted tree regressor model.
4703	//   "BOOSTED_TREE_CLASSIFIER" - [Beta] Boosted tree classifier model.
4704	//   "ARIMA" - [Beta] ARIMA model.
4705	//   "AUTOML_REGRESSOR" - [Beta] AutoML Tables regression model.
4706	//   "AUTOML_CLASSIFIER" - [Beta] AutoML Tables classification model.
4707	ModelType string `json:"modelType,omitempty"`
4708
4709	// TrainingRuns: Output only. Information for all training runs in
4710	// increasing order of start_time.
4711	TrainingRuns []*TrainingRun `json:"trainingRuns,omitempty"`
4712
4713	// ServerResponse contains the HTTP response code and headers from the
4714	// server.
4715	googleapi.ServerResponse `json:"-"`
4716
4717	// ForceSendFields is a list of field names (e.g. "CreationTime") to
4718	// unconditionally include in API requests. By default, fields with
4719	// empty values are omitted from API requests. However, any non-pointer,
4720	// non-interface field appearing in ForceSendFields will be sent to the
4721	// server regardless of whether the field is empty or not. This may be
4722	// used to include empty fields in Patch requests.
4723	ForceSendFields []string `json:"-"`
4724
4725	// NullFields is a list of field names (e.g. "CreationTime") to include
4726	// in API requests with the JSON null value. By default, fields with
4727	// empty values are omitted from API requests. However, any field with
4728	// an empty value appearing in NullFields will be sent to the server as
4729	// null. It is an error if a field in this list has a non-empty value.
4730	// This may be used to include null fields in Patch requests.
4731	NullFields []string `json:"-"`
4732}
4733
4734func (s *Model) MarshalJSON() ([]byte, error) {
4735	type NoMethod Model
4736	raw := NoMethod(*s)
4737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4738}
4739
4740type ModelDefinition struct {
4741	// ModelOptions: [Output-only, Beta] Model options used for the first
4742	// training run. These options are immutable for subsequent training
4743	// runs. Default values are used for any options not specified in the
4744	// input query.
4745	ModelOptions *ModelDefinitionModelOptions `json:"modelOptions,omitempty"`
4746
4747	// TrainingRuns: [Output-only, Beta] Information about ml training runs,
4748	// each training run comprises of multiple iterations and there may be
4749	// multiple training runs for the model if warm start is used or if a
4750	// user decides to continue a previously cancelled query.
4751	TrainingRuns []*BqmlTrainingRun `json:"trainingRuns,omitempty"`
4752
4753	// ForceSendFields is a list of field names (e.g. "ModelOptions") to
4754	// unconditionally include in API requests. By default, fields with
4755	// empty values are omitted from API requests. However, any non-pointer,
4756	// non-interface field appearing in ForceSendFields will be sent to the
4757	// server regardless of whether the field is empty or not. This may be
4758	// used to include empty fields in Patch requests.
4759	ForceSendFields []string `json:"-"`
4760
4761	// NullFields is a list of field names (e.g. "ModelOptions") to include
4762	// in API requests with the JSON null value. By default, fields with
4763	// empty values are omitted from API requests. However, any field with
4764	// an empty value appearing in NullFields will be sent to the server as
4765	// null. It is an error if a field in this list has a non-empty value.
4766	// This may be used to include null fields in Patch requests.
4767	NullFields []string `json:"-"`
4768}
4769
4770func (s *ModelDefinition) MarshalJSON() ([]byte, error) {
4771	type NoMethod ModelDefinition
4772	raw := NoMethod(*s)
4773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4774}
4775
4776// ModelDefinitionModelOptions: [Output-only, Beta] Model options used
4777// for the first training run. These options are immutable for
4778// subsequent training runs. Default values are used for any options not
4779// specified in the input query.
4780type ModelDefinitionModelOptions struct {
4781	Labels []string `json:"labels,omitempty"`
4782
4783	LossType string `json:"lossType,omitempty"`
4784
4785	ModelType string `json:"modelType,omitempty"`
4786
4787	// ForceSendFields is a list of field names (e.g. "Labels") to
4788	// unconditionally include in API requests. By default, fields with
4789	// empty values are omitted from API requests. However, any non-pointer,
4790	// non-interface field appearing in ForceSendFields will be sent to the
4791	// server regardless of whether the field is empty or not. This may be
4792	// used to include empty fields in Patch requests.
4793	ForceSendFields []string `json:"-"`
4794
4795	// NullFields is a list of field names (e.g. "Labels") to include in API
4796	// requests with the JSON null value. By default, fields with empty
4797	// values are omitted from API requests. However, any field with an
4798	// empty value appearing in NullFields will be sent to the server as
4799	// null. It is an error if a field in this list has a non-empty value.
4800	// This may be used to include null fields in Patch requests.
4801	NullFields []string `json:"-"`
4802}
4803
4804func (s *ModelDefinitionModelOptions) MarshalJSON() ([]byte, error) {
4805	type NoMethod ModelDefinitionModelOptions
4806	raw := NoMethod(*s)
4807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4808}
4809
4810type ModelReference struct {
4811	// DatasetId: [Required] The ID of the dataset containing this model.
4812	DatasetId string `json:"datasetId,omitempty"`
4813
4814	// ModelId: [Required] The ID of the model. The ID must contain only
4815	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
4816	// length is 1,024 characters.
4817	ModelId string `json:"modelId,omitempty"`
4818
4819	// ProjectId: [Required] The ID of the project containing this model.
4820	ProjectId string `json:"projectId,omitempty"`
4821
4822	// ForceSendFields is a list of field names (e.g. "DatasetId") to
4823	// unconditionally include in API requests. By default, fields with
4824	// empty values are omitted from API requests. However, any non-pointer,
4825	// non-interface field appearing in ForceSendFields will be sent to the
4826	// server regardless of whether the field is empty or not. This may be
4827	// used to include empty fields in Patch requests.
4828	ForceSendFields []string `json:"-"`
4829
4830	// NullFields is a list of field names (e.g. "DatasetId") to include in
4831	// API requests with the JSON null value. By default, fields with empty
4832	// values are omitted from API requests. However, any field with an
4833	// empty value appearing in NullFields will be sent to the server as
4834	// null. It is an error if a field in this list has a non-empty value.
4835	// This may be used to include null fields in Patch requests.
4836	NullFields []string `json:"-"`
4837}
4838
4839func (s *ModelReference) MarshalJSON() ([]byte, error) {
4840	type NoMethod ModelReference
4841	raw := NoMethod(*s)
4842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4843}
4844
4845// MultiClassClassificationMetrics: Evaluation metrics for multi-class
4846// classification/classifier models.
4847type MultiClassClassificationMetrics struct {
4848	// AggregateClassificationMetrics: Aggregate classification metrics.
4849	AggregateClassificationMetrics *AggregateClassificationMetrics `json:"aggregateClassificationMetrics,omitempty"`
4850
4851	// ConfusionMatrixList: Confusion matrix at different thresholds.
4852	ConfusionMatrixList []*ConfusionMatrix `json:"confusionMatrixList,omitempty"`
4853
4854	// ForceSendFields is a list of field names (e.g.
4855	// "AggregateClassificationMetrics") to unconditionally include in API
4856	// requests. By default, fields with empty values are omitted from API
4857	// requests. However, any non-pointer, non-interface field appearing in
4858	// ForceSendFields will be sent to the server regardless of whether the
4859	// field is empty or not. This may be used to include empty fields in
4860	// Patch requests.
4861	ForceSendFields []string `json:"-"`
4862
4863	// NullFields is a list of field names (e.g.
4864	// "AggregateClassificationMetrics") to include in API requests with the
4865	// JSON null value. By default, fields with empty values are omitted
4866	// from API requests. However, any field with an empty value appearing
4867	// in NullFields will be sent to the server as null. It is an error if a
4868	// field in this list has a non-empty value. This may be used to include
4869	// null fields in Patch requests.
4870	NullFields []string `json:"-"`
4871}
4872
4873func (s *MultiClassClassificationMetrics) MarshalJSON() ([]byte, error) {
4874	type NoMethod MultiClassClassificationMetrics
4875	raw := NoMethod(*s)
4876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4877}
4878
4879// Policy: An Identity and Access Management (IAM) policy, which
4880// specifies access controls for Google Cloud resources. A `Policy` is a
4881// collection of `bindings`. A `binding` binds one or more `members` to
4882// a single `role`. Members can be user accounts, service accounts,
4883// Google groups, and domains (such as G Suite). A `role` is a named
4884// list of permissions; each `role` can be an IAM predefined role or a
4885// user-created custom role. For some types of Google Cloud resources, a
4886// `binding` can also specify a `condition`, which is a logical
4887// expression that allows access to a resource only if the expression
4888// evaluates to `true`. A condition can add constraints based on
4889// attributes of the request, the resource, or both. To learn which
4890// resources support conditions in their IAM policies, see the [IAM
4891// documentation](https://cloud.google.com/iam/help/conditions/resource-p
4892// olicies). **JSON example:** { "bindings": [ { "role":
4893// "roles/resourcemanager.organizationAdmin", "members": [
4894// "user:mike@example.com", "group:admins@example.com",
4895// "domain:google.com",
4896// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
4897// "role": "roles/resourcemanager.organizationViewer", "members": [
4898// "user:eve@example.com" ], "condition": { "title": "expirable access",
4899// "description": "Does not grant access after Sep 2020", "expression":
4900// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
4901// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
4902// members: - user:mike@example.com - group:admins@example.com -
4903// domain:google.com -
4904// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
4905// roles/resourcemanager.organizationAdmin - members: -
4906// user:eve@example.com role: roles/resourcemanager.organizationViewer
4907// condition: title: expirable access description: Does not grant access
4908// after Sep 2020 expression: request.time <
4909// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
4910// 3 For a description of IAM and its features, see the [IAM
4911// documentation](https://cloud.google.com/iam/docs/).
4912type Policy struct {
4913	// AuditConfigs: Specifies cloud audit logging configuration for this
4914	// policy.
4915	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
4916
4917	// Bindings: Associates a list of `members` to a `role`. Optionally, may
4918	// specify a `condition` that determines how and when the `bindings` are
4919	// applied. Each of the `bindings` must contain at least one member.
4920	Bindings []*Binding `json:"bindings,omitempty"`
4921
4922	// Etag: `etag` is used for optimistic concurrency control as a way to
4923	// help prevent simultaneous updates of a policy from overwriting each
4924	// other. It is strongly suggested that systems make use of the `etag`
4925	// in the read-modify-write cycle to perform policy updates in order to
4926	// avoid race conditions: An `etag` is returned in the response to
4927	// `getIamPolicy`, and systems are expected to put that etag in the
4928	// request to `setIamPolicy` to ensure that their change will be applied
4929	// to the same version of the policy. **Important:** If you use IAM
4930	// Conditions, you must include the `etag` field whenever you call
4931	// `setIamPolicy`. If you omit this field, then IAM allows you to
4932	// overwrite a version `3` policy with a version `1` policy, and all of
4933	// the conditions in the version `3` policy are lost.
4934	Etag string `json:"etag,omitempty"`
4935
4936	// Version: Specifies the format of the policy. Valid values are `0`,
4937	// `1`, and `3`. Requests that specify an invalid value are rejected.
4938	// Any operation that affects conditional role bindings must specify
4939	// version `3`. This requirement applies to the following operations: *
4940	// Getting a policy that includes a conditional role binding * Adding a
4941	// conditional role binding to a policy * Changing a conditional role
4942	// binding in a policy * Removing any role binding, with or without a
4943	// condition, from a policy that includes conditions **Important:** If
4944	// you use IAM Conditions, you must include the `etag` field whenever
4945	// you call `setIamPolicy`. If you omit this field, then IAM allows you
4946	// to overwrite a version `3` policy with a version `1` policy, and all
4947	// of the conditions in the version `3` policy are lost. If a policy
4948	// does not include any conditions, operations on that policy may
4949	// specify any valid version or leave the field unset. To learn which
4950	// resources support conditions in their IAM policies, see the [IAM
4951	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
4952	// olicies).
4953	Version int64 `json:"version,omitempty"`
4954
4955	// ServerResponse contains the HTTP response code and headers from the
4956	// server.
4957	googleapi.ServerResponse `json:"-"`
4958
4959	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
4960	// unconditionally include in API requests. By default, fields with
4961	// empty values are omitted from API requests. However, any non-pointer,
4962	// non-interface field appearing in ForceSendFields will be sent to the
4963	// server regardless of whether the field is empty or not. This may be
4964	// used to include empty fields in Patch requests.
4965	ForceSendFields []string `json:"-"`
4966
4967	// NullFields is a list of field names (e.g. "AuditConfigs") to include
4968	// in API requests with the JSON null value. By default, fields with
4969	// empty values are omitted from API requests. However, any field with
4970	// an empty value appearing in NullFields will be sent to the server as
4971	// null. It is an error if a field in this list has a non-empty value.
4972	// This may be used to include null fields in Patch requests.
4973	NullFields []string `json:"-"`
4974}
4975
4976func (s *Policy) MarshalJSON() ([]byte, error) {
4977	type NoMethod Policy
4978	raw := NoMethod(*s)
4979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4980}
4981
4982type ProjectList struct {
4983	// Etag: A hash of the page of results
4984	Etag string `json:"etag,omitempty"`
4985
4986	// Kind: The type of list.
4987	Kind string `json:"kind,omitempty"`
4988
4989	// NextPageToken: A token to request the next page of results.
4990	NextPageToken string `json:"nextPageToken,omitempty"`
4991
4992	// Projects: Projects to which you have at least READ access.
4993	Projects []*ProjectListProjects `json:"projects,omitempty"`
4994
4995	// TotalItems: The total number of projects in the list.
4996	TotalItems int64 `json:"totalItems,omitempty"`
4997
4998	// ServerResponse contains the HTTP response code and headers from the
4999	// server.
5000	googleapi.ServerResponse `json:"-"`
5001
5002	// ForceSendFields is a list of field names (e.g. "Etag") to
5003	// unconditionally include in API requests. By default, fields with
5004	// empty values are omitted from API requests. However, any non-pointer,
5005	// non-interface field appearing in ForceSendFields will be sent to the
5006	// server regardless of whether the field is empty or not. This may be
5007	// used to include empty fields in Patch requests.
5008	ForceSendFields []string `json:"-"`
5009
5010	// NullFields is a list of field names (e.g. "Etag") to include in API
5011	// requests with the JSON null value. By default, fields with empty
5012	// values are omitted from API requests. However, any field with an
5013	// empty value appearing in NullFields will be sent to the server as
5014	// null. It is an error if a field in this list has a non-empty value.
5015	// This may be used to include null fields in Patch requests.
5016	NullFields []string `json:"-"`
5017}
5018
5019func (s *ProjectList) MarshalJSON() ([]byte, error) {
5020	type NoMethod ProjectList
5021	raw := NoMethod(*s)
5022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5023}
5024
5025type ProjectListProjects struct {
5026	// FriendlyName: A descriptive name for this project.
5027	FriendlyName string `json:"friendlyName,omitempty"`
5028
5029	// Id: An opaque ID of this project.
5030	Id string `json:"id,omitempty"`
5031
5032	// Kind: The resource type.
5033	Kind string `json:"kind,omitempty"`
5034
5035	// NumericId: The numeric ID of this project.
5036	NumericId uint64 `json:"numericId,omitempty,string"`
5037
5038	// ProjectReference: A unique reference to this project.
5039	ProjectReference *ProjectReference `json:"projectReference,omitempty"`
5040
5041	// ForceSendFields is a list of field names (e.g. "FriendlyName") to
5042	// unconditionally include in API requests. By default, fields with
5043	// empty values are omitted from API requests. However, any non-pointer,
5044	// non-interface field appearing in ForceSendFields will be sent to the
5045	// server regardless of whether the field is empty or not. This may be
5046	// used to include empty fields in Patch requests.
5047	ForceSendFields []string `json:"-"`
5048
5049	// NullFields is a list of field names (e.g. "FriendlyName") to include
5050	// in API requests with the JSON null value. By default, fields with
5051	// empty values are omitted from API requests. However, any field with
5052	// an empty value appearing in NullFields will be sent to the server as
5053	// null. It is an error if a field in this list has a non-empty value.
5054	// This may be used to include null fields in Patch requests.
5055	NullFields []string `json:"-"`
5056}
5057
5058func (s *ProjectListProjects) MarshalJSON() ([]byte, error) {
5059	type NoMethod ProjectListProjects
5060	raw := NoMethod(*s)
5061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5062}
5063
5064type ProjectReference struct {
5065	// ProjectId: [Required] ID of the project. Can be either the numeric ID
5066	// or the assigned ID of the project.
5067	ProjectId string `json:"projectId,omitempty"`
5068
5069	// ForceSendFields is a list of field names (e.g. "ProjectId") to
5070	// unconditionally include in API requests. By default, fields with
5071	// empty values are omitted from API requests. However, any non-pointer,
5072	// non-interface field appearing in ForceSendFields will be sent to the
5073	// server regardless of whether the field is empty or not. This may be
5074	// used to include empty fields in Patch requests.
5075	ForceSendFields []string `json:"-"`
5076
5077	// NullFields is a list of field names (e.g. "ProjectId") to include in
5078	// API requests with the JSON null value. By default, fields with empty
5079	// values are omitted from API requests. However, any field with an
5080	// empty value appearing in NullFields will be sent to the server as
5081	// null. It is an error if a field in this list has a non-empty value.
5082	// This may be used to include null fields in Patch requests.
5083	NullFields []string `json:"-"`
5084}
5085
5086func (s *ProjectReference) MarshalJSON() ([]byte, error) {
5087	type NoMethod ProjectReference
5088	raw := NoMethod(*s)
5089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5090}
5091
5092type QueryParameter struct {
5093	// Name: [Optional] If unset, this is a positional parameter. Otherwise,
5094	// should be unique within a query.
5095	Name string `json:"name,omitempty"`
5096
5097	// ParameterType: [Required] The type of this parameter.
5098	ParameterType *QueryParameterType `json:"parameterType,omitempty"`
5099
5100	// ParameterValue: [Required] The value of this parameter.
5101	ParameterValue *QueryParameterValue `json:"parameterValue,omitempty"`
5102
5103	// ForceSendFields is a list of field names (e.g. "Name") to
5104	// unconditionally include in API requests. By default, fields with
5105	// empty values are omitted from API requests. However, any non-pointer,
5106	// non-interface field appearing in ForceSendFields will be sent to the
5107	// server regardless of whether the field is empty or not. This may be
5108	// used to include empty fields in Patch requests.
5109	ForceSendFields []string `json:"-"`
5110
5111	// NullFields is a list of field names (e.g. "Name") to include in API
5112	// requests with the JSON null value. By default, fields with empty
5113	// values are omitted from API requests. However, any field with an
5114	// empty value appearing in NullFields will be sent to the server as
5115	// null. It is an error if a field in this list has a non-empty value.
5116	// This may be used to include null fields in Patch requests.
5117	NullFields []string `json:"-"`
5118}
5119
5120func (s *QueryParameter) MarshalJSON() ([]byte, error) {
5121	type NoMethod QueryParameter
5122	raw := NoMethod(*s)
5123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5124}
5125
5126type QueryParameterType struct {
5127	// ArrayType: [Optional] The type of the array's elements, if this is an
5128	// array.
5129	ArrayType *QueryParameterType `json:"arrayType,omitempty"`
5130
5131	// StructTypes: [Optional] The types of the fields of this struct, in
5132	// order, if this is a struct.
5133	StructTypes []*QueryParameterTypeStructTypes `json:"structTypes,omitempty"`
5134
5135	// Type: [Required] The top level type of this field.
5136	Type string `json:"type,omitempty"`
5137
5138	// ForceSendFields is a list of field names (e.g. "ArrayType") to
5139	// unconditionally include in API requests. By default, fields with
5140	// empty values are omitted from API requests. However, any non-pointer,
5141	// non-interface field appearing in ForceSendFields will be sent to the
5142	// server regardless of whether the field is empty or not. This may be
5143	// used to include empty fields in Patch requests.
5144	ForceSendFields []string `json:"-"`
5145
5146	// NullFields is a list of field names (e.g. "ArrayType") to include in
5147	// API requests with the JSON null value. By default, fields with empty
5148	// values are omitted from API requests. However, any field with an
5149	// empty value appearing in NullFields will be sent to the server as
5150	// null. It is an error if a field in this list has a non-empty value.
5151	// This may be used to include null fields in Patch requests.
5152	NullFields []string `json:"-"`
5153}
5154
5155func (s *QueryParameterType) MarshalJSON() ([]byte, error) {
5156	type NoMethod QueryParameterType
5157	raw := NoMethod(*s)
5158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5159}
5160
5161type QueryParameterTypeStructTypes struct {
5162	// Description: [Optional] Human-oriented description of the field.
5163	Description string `json:"description,omitempty"`
5164
5165	// Name: [Optional] The name of this field.
5166	Name string `json:"name,omitempty"`
5167
5168	// Type: [Required] The type of this field.
5169	Type *QueryParameterType `json:"type,omitempty"`
5170
5171	// ForceSendFields is a list of field names (e.g. "Description") to
5172	// unconditionally include in API requests. By default, fields with
5173	// empty values are omitted from API requests. However, any non-pointer,
5174	// non-interface field appearing in ForceSendFields will be sent to the
5175	// server regardless of whether the field is empty or not. This may be
5176	// used to include empty fields in Patch requests.
5177	ForceSendFields []string `json:"-"`
5178
5179	// NullFields is a list of field names (e.g. "Description") to include
5180	// in API requests with the JSON null value. By default, fields with
5181	// empty values are omitted from API requests. However, any field with
5182	// an empty value appearing in NullFields will be sent to the server as
5183	// null. It is an error if a field in this list has a non-empty value.
5184	// This may be used to include null fields in Patch requests.
5185	NullFields []string `json:"-"`
5186}
5187
5188func (s *QueryParameterTypeStructTypes) MarshalJSON() ([]byte, error) {
5189	type NoMethod QueryParameterTypeStructTypes
5190	raw := NoMethod(*s)
5191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5192}
5193
5194type QueryParameterValue struct {
5195	// ArrayValues: [Optional] The array values, if this is an array type.
5196	ArrayValues []*QueryParameterValue `json:"arrayValues,omitempty"`
5197
5198	// StructValues: [Optional] The struct field values, in order of the
5199	// struct type's declaration.
5200	StructValues map[string]QueryParameterValue `json:"structValues,omitempty"`
5201
5202	// Value: [Optional] The value of this value, if a simple scalar type.
5203	Value string `json:"value,omitempty"`
5204
5205	// ForceSendFields is a list of field names (e.g. "ArrayValues") to
5206	// unconditionally include in API requests. By default, fields with
5207	// empty values are omitted from API requests. However, any non-pointer,
5208	// non-interface field appearing in ForceSendFields will be sent to the
5209	// server regardless of whether the field is empty or not. This may be
5210	// used to include empty fields in Patch requests.
5211	ForceSendFields []string `json:"-"`
5212
5213	// NullFields is a list of field names (e.g. "ArrayValues") to include
5214	// in API requests with the JSON null value. By default, fields with
5215	// empty values are omitted from API requests. However, any field with
5216	// an empty value appearing in NullFields will be sent to the server as
5217	// null. It is an error if a field in this list has a non-empty value.
5218	// This may be used to include null fields in Patch requests.
5219	NullFields []string `json:"-"`
5220}
5221
5222func (s *QueryParameterValue) MarshalJSON() ([]byte, error) {
5223	type NoMethod QueryParameterValue
5224	raw := NoMethod(*s)
5225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5226}
5227
5228type QueryRequest struct {
5229	// ConnectionProperties: Connection properties.
5230	ConnectionProperties []*ConnectionProperty `json:"connectionProperties,omitempty"`
5231
5232	// DefaultDataset: [Optional] Specifies the default datasetId and
5233	// projectId to assume for any unqualified table names in the query. If
5234	// not set, all table names in the query string must be qualified in the
5235	// format 'datasetId.tableId'.
5236	DefaultDataset *DatasetReference `json:"defaultDataset,omitempty"`
5237
5238	// DryRun: [Optional] If set to true, BigQuery doesn't run the job.
5239	// Instead, if the query is valid, BigQuery returns statistics about the
5240	// job such as how many bytes would be processed. If the query is
5241	// invalid, an error returns. The default value is false.
5242	DryRun bool `json:"dryRun,omitempty"`
5243
5244	// Kind: The resource type of the request.
5245	Kind string `json:"kind,omitempty"`
5246
5247	// Labels: The labels associated with this job. You can use these to
5248	// organize and group your jobs. Label keys and values can be no longer
5249	// than 63 characters, can only contain lowercase letters, numeric
5250	// characters, underscores and dashes. International characters are
5251	// allowed. Label values are optional. Label keys must start with a
5252	// letter and each label in the list must have a different key.
5253	Labels map[string]string `json:"labels,omitempty"`
5254
5255	// Location: The geographic location where the job should run. See
5256	// details at
5257	// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
5258	Location string `json:"location,omitempty"`
5259
5260	// MaxResults: [Optional] The maximum number of rows of data to return
5261	// per page of results. Setting this flag to a small value such as 1000
5262	// and then paging through results might improve reliability when the
5263	// query result set is large. In addition to this limit, responses are
5264	// also limited to 10 MB. By default, there is no maximum row count, and
5265	// only the byte limit applies.
5266	MaxResults int64 `json:"maxResults,omitempty"`
5267
5268	// MaximumBytesBilled: [Optional] Limits the bytes billed for this job.
5269	// Queries that will have bytes billed beyond this limit will fail
5270	// (without incurring a charge). If unspecified, this will be set to
5271	// your project default.
5272	MaximumBytesBilled int64 `json:"maximumBytesBilled,omitempty,string"`
5273
5274	// ParameterMode: Standard SQL only. Set to POSITIONAL to use positional
5275	// (?) query parameters or to NAMED to use named (@myparam) query
5276	// parameters in this query.
5277	ParameterMode string `json:"parameterMode,omitempty"`
5278
5279	// PreserveNulls: [Deprecated] This property is deprecated.
5280	PreserveNulls bool `json:"preserveNulls,omitempty"`
5281
5282	// Query: [Required] A query string, following the BigQuery query
5283	// syntax, of the query to execute. Example: "SELECT count(f1) FROM
5284	// [myProjectId:myDatasetId.myTableId]".
5285	Query string `json:"query,omitempty"`
5286
5287	// QueryParameters: Query parameters for Standard SQL queries.
5288	QueryParameters []*QueryParameter `json:"queryParameters,omitempty"`
5289
5290	// RequestId: A unique user provided identifier to ensure idempotent
5291	// behavior for queries. Note that this is different from the job_id. It
5292	// has the following properties: 1. It is case-sensitive, limited to up
5293	// to 36 ASCII characters. A UUID is recommended. 2. Read only queries
5294	// can ignore this token since they are nullipotent by definition. 3.
5295	// For the purposes of idempotency ensured by the request_id, a request
5296	// is considered duplicate of another only if they have the same
5297	// request_id and are actually duplicates. When determining whether a
5298	// request is a duplicate of the previous request, all parameters in the
5299	// request that may affect the behavior are considered. For example,
5300	// query, connection_properties, query_parameters, use_legacy_sql are
5301	// parameters that affect the result and are considered when determining
5302	// whether a request is a duplicate, but properties like timeout_ms
5303	// don't affect the result and are thus not considered. Dry run query
5304	// requests are never considered duplicate of another request. 4. When a
5305	// duplicate mutating query request is detected, it returns: a. the
5306	// results of the mutation if it completes successfully within the
5307	// timeout. b. the running operation if it is still in progress at the
5308	// end of the timeout. 5. Its lifetime is limited to 15 minutes. In
5309	// other words, if two requests are sent with the same request_id, but
5310	// more than 15 minutes apart, idempotency is not guaranteed.
5311	RequestId string `json:"requestId,omitempty"`
5312
5313	// TimeoutMs: [Optional] How long to wait for the query to complete, in
5314	// milliseconds, before the request times out and returns. Note that
5315	// this is only a timeout for the request, not the query. If the query
5316	// takes longer to run than the timeout value, the call returns without
5317	// any results and with the 'jobComplete' flag set to false. You can
5318	// call GetQueryResults() to wait for the query to complete and read the
5319	// results. The default value is 10000 milliseconds (10 seconds).
5320	TimeoutMs int64 `json:"timeoutMs,omitempty"`
5321
5322	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL dialect
5323	// for this query. The default value is true. If set to false, the query
5324	// will use BigQuery's standard SQL:
5325	// https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is
5326	// set to false, the value of flattenResults is ignored; query will be
5327	// run as if flattenResults is false.
5328	//
5329	// Default: true
5330	UseLegacySql *bool `json:"useLegacySql,omitempty"`
5331
5332	// UseQueryCache: [Optional] Whether to look for the result in the query
5333	// cache. The query cache is a best-effort cache that will be flushed
5334	// whenever tables in the query are modified. The default value is true.
5335	//
5336	// Default: true
5337	UseQueryCache *bool `json:"useQueryCache,omitempty"`
5338
5339	// ForceSendFields is a list of field names (e.g.
5340	// "ConnectionProperties") to unconditionally include in API requests.
5341	// By default, fields with empty values are omitted from API requests.
5342	// However, any non-pointer, non-interface field appearing in
5343	// ForceSendFields will be sent to the server regardless of whether the
5344	// field is empty or not. This may be used to include empty fields in
5345	// Patch requests.
5346	ForceSendFields []string `json:"-"`
5347
5348	// NullFields is a list of field names (e.g. "ConnectionProperties") to
5349	// include in API requests with the JSON null value. By default, fields
5350	// with empty values are omitted from API requests. However, any field
5351	// with an empty value appearing in NullFields will be sent to the
5352	// server as null. It is an error if a field in this list has a
5353	// non-empty value. This may be used to include null fields in Patch
5354	// requests.
5355	NullFields []string `json:"-"`
5356}
5357
5358func (s *QueryRequest) MarshalJSON() ([]byte, error) {
5359	type NoMethod QueryRequest
5360	raw := NoMethod(*s)
5361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5362}
5363
5364type QueryResponse struct {
5365	// CacheHit: Whether the query result was fetched from the query cache.
5366	CacheHit bool `json:"cacheHit,omitempty"`
5367
5368	// Errors: [Output-only] The first errors or warnings encountered during
5369	// the running of the job. The final message includes the number of
5370	// errors that caused the process to stop. Errors here do not
5371	// necessarily mean that the job has completed or was unsuccessful.
5372	Errors []*ErrorProto `json:"errors,omitempty"`
5373
5374	// JobComplete: Whether the query has completed or not. If rows or
5375	// totalRows are present, this will always be true. If this is false,
5376	// totalRows will not be available.
5377	JobComplete bool `json:"jobComplete,omitempty"`
5378
5379	// JobReference: Reference to the Job that was created to run the query.
5380	// This field will be present even if the original request timed out, in
5381	// which case GetQueryResults can be used to read the results once the
5382	// query has completed. Since this API only returns the first page of
5383	// results, subsequent pages can be fetched via the same mechanism
5384	// (GetQueryResults).
5385	JobReference *JobReference `json:"jobReference,omitempty"`
5386
5387	// Kind: The resource type.
5388	Kind string `json:"kind,omitempty"`
5389
5390	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
5391	// DML statement. Present only for DML statements INSERT, UPDATE or
5392	// DELETE.
5393	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
5394
5395	// PageToken: A token used for paging results.
5396	PageToken string `json:"pageToken,omitempty"`
5397
5398	// Rows: An object with as many results as can be contained within the
5399	// maximum permitted reply size. To get any additional rows, you can
5400	// call GetQueryResults and specify the jobReference returned above.
5401	Rows []*TableRow `json:"rows,omitempty"`
5402
5403	// Schema: The schema of the results. Present only when the query
5404	// completes successfully.
5405	Schema *TableSchema `json:"schema,omitempty"`
5406
5407	// TotalBytesProcessed: The total number of bytes processed for this
5408	// query. If this query was a dry run, this is the number of bytes that
5409	// would be processed if the query were run.
5410	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
5411
5412	// TotalRows: The total number of rows in the complete query result set,
5413	// which can be more than the number of rows in this single page of
5414	// results.
5415	TotalRows uint64 `json:"totalRows,omitempty,string"`
5416
5417	// ServerResponse contains the HTTP response code and headers from the
5418	// server.
5419	googleapi.ServerResponse `json:"-"`
5420
5421	// ForceSendFields is a list of field names (e.g. "CacheHit") to
5422	// unconditionally include in API requests. By default, fields with
5423	// empty values are omitted from API requests. However, any non-pointer,
5424	// non-interface field appearing in ForceSendFields will be sent to the
5425	// server regardless of whether the field is empty or not. This may be
5426	// used to include empty fields in Patch requests.
5427	ForceSendFields []string `json:"-"`
5428
5429	// NullFields is a list of field names (e.g. "CacheHit") to include in
5430	// API requests with the JSON null value. By default, fields with empty
5431	// values are omitted from API requests. However, any field with an
5432	// empty value appearing in NullFields will be sent to the server as
5433	// null. It is an error if a field in this list has a non-empty value.
5434	// This may be used to include null fields in Patch requests.
5435	NullFields []string `json:"-"`
5436}
5437
5438func (s *QueryResponse) MarshalJSON() ([]byte, error) {
5439	type NoMethod QueryResponse
5440	raw := NoMethod(*s)
5441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5442}
5443
5444type QueryTimelineSample struct {
5445	// ActiveUnits: Total number of units currently being processed by
5446	// workers. This does not correspond directly to slot usage. This is the
5447	// largest value observed since the last sample.
5448	ActiveUnits int64 `json:"activeUnits,omitempty,string"`
5449
5450	// CompletedUnits: Total parallel units of work completed by this query.
5451	CompletedUnits int64 `json:"completedUnits,omitempty,string"`
5452
5453	// ElapsedMs: Milliseconds elapsed since the start of query execution.
5454	ElapsedMs int64 `json:"elapsedMs,omitempty,string"`
5455
5456	// PendingUnits: Total parallel units of work remaining for the active
5457	// stages.
5458	PendingUnits int64 `json:"pendingUnits,omitempty,string"`
5459
5460	// TotalSlotMs: Cumulative slot-ms consumed by the query.
5461	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
5462
5463	// ForceSendFields is a list of field names (e.g. "ActiveUnits") to
5464	// unconditionally include in API requests. By default, fields with
5465	// empty values are omitted from API requests. However, any non-pointer,
5466	// non-interface field appearing in ForceSendFields will be sent to the
5467	// server regardless of whether the field is empty or not. This may be
5468	// used to include empty fields in Patch requests.
5469	ForceSendFields []string `json:"-"`
5470
5471	// NullFields is a list of field names (e.g. "ActiveUnits") to include
5472	// in API requests with the JSON null value. By default, fields with
5473	// empty values are omitted from API requests. However, any field with
5474	// an empty value appearing in NullFields will be sent to the server as
5475	// null. It is an error if a field in this list has a non-empty value.
5476	// This may be used to include null fields in Patch requests.
5477	NullFields []string `json:"-"`
5478}
5479
5480func (s *QueryTimelineSample) MarshalJSON() ([]byte, error) {
5481	type NoMethod QueryTimelineSample
5482	raw := NoMethod(*s)
5483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5484}
5485
5486type RangePartitioning struct {
5487	// Field: [TrustedTester] [Required] The table is partitioned by this
5488	// field. The field must be a top-level NULLABLE/REQUIRED field. The
5489	// only supported type is INTEGER/INT64.
5490	Field string `json:"field,omitempty"`
5491
5492	// Range: [TrustedTester] [Required] Defines the ranges for range
5493	// partitioning.
5494	Range *RangePartitioningRange `json:"range,omitempty"`
5495
5496	// ForceSendFields is a list of field names (e.g. "Field") to
5497	// unconditionally include in API requests. By default, fields with
5498	// empty values are omitted from API requests. However, any non-pointer,
5499	// non-interface field appearing in ForceSendFields will be sent to the
5500	// server regardless of whether the field is empty or not. This may be
5501	// used to include empty fields in Patch requests.
5502	ForceSendFields []string `json:"-"`
5503
5504	// NullFields is a list of field names (e.g. "Field") to include in API
5505	// requests with the JSON null value. By default, fields with empty
5506	// values are omitted from API requests. However, any field with an
5507	// empty value appearing in NullFields will be sent to the server as
5508	// null. It is an error if a field in this list has a non-empty value.
5509	// This may be used to include null fields in Patch requests.
5510	NullFields []string `json:"-"`
5511}
5512
5513func (s *RangePartitioning) MarshalJSON() ([]byte, error) {
5514	type NoMethod RangePartitioning
5515	raw := NoMethod(*s)
5516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5517}
5518
5519// RangePartitioningRange: [TrustedTester] [Required] Defines the ranges
5520// for range partitioning.
5521type RangePartitioningRange struct {
5522	// End: [TrustedTester] [Required] The end of range partitioning,
5523	// exclusive.
5524	End int64 `json:"end,omitempty,string"`
5525
5526	// Interval: [TrustedTester] [Required] The width of each interval.
5527	Interval int64 `json:"interval,omitempty,string"`
5528
5529	// Start: [TrustedTester] [Required] The start of range partitioning,
5530	// inclusive.
5531	Start int64 `json:"start,omitempty,string"`
5532
5533	// ForceSendFields is a list of field names (e.g. "End") to
5534	// unconditionally include in API requests. By default, fields with
5535	// empty values are omitted from API requests. However, any non-pointer,
5536	// non-interface field appearing in ForceSendFields will be sent to the
5537	// server regardless of whether the field is empty or not. This may be
5538	// used to include empty fields in Patch requests.
5539	ForceSendFields []string `json:"-"`
5540
5541	// NullFields is a list of field names (e.g. "End") to include in API
5542	// requests with the JSON null value. By default, fields with empty
5543	// values are omitted from API requests. However, any field with an
5544	// empty value appearing in NullFields will be sent to the server as
5545	// null. It is an error if a field in this list has a non-empty value.
5546	// This may be used to include null fields in Patch requests.
5547	NullFields []string `json:"-"`
5548}
5549
5550func (s *RangePartitioningRange) MarshalJSON() ([]byte, error) {
5551	type NoMethod RangePartitioningRange
5552	raw := NoMethod(*s)
5553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5554}
5555
5556// RankingMetrics: Evaluation metrics used by weighted-ALS models
5557// specified by feedback_type=implicit.
5558type RankingMetrics struct {
5559	// AverageRank: Determines the goodness of a ranking by computing the
5560	// percentile rank from the predicted confidence and dividing it by the
5561	// original rank.
5562	AverageRank float64 `json:"averageRank,omitempty"`
5563
5564	// MeanAveragePrecision: Calculates a precision per user for all the
5565	// items by ranking them and then averages all the precisions across all
5566	// the users.
5567	MeanAveragePrecision float64 `json:"meanAveragePrecision,omitempty"`
5568
5569	// MeanSquaredError: Similar to the mean squared error computed in
5570	// regression and explicit recommendation models except instead of
5571	// computing the rating directly, the output from evaluate is computed
5572	// against a preference which is 1 or 0 depending on if the rating
5573	// exists or not.
5574	MeanSquaredError float64 `json:"meanSquaredError,omitempty"`
5575
5576	// NormalizedDiscountedCumulativeGain: A metric to determine the
5577	// goodness of a ranking calculated from the predicted confidence by
5578	// comparing it to an ideal rank measured by the original ratings.
5579	NormalizedDiscountedCumulativeGain float64 `json:"normalizedDiscountedCumulativeGain,omitempty"`
5580
5581	// ForceSendFields is a list of field names (e.g. "AverageRank") to
5582	// unconditionally include in API requests. By default, fields with
5583	// empty values are omitted from API requests. However, any non-pointer,
5584	// non-interface field appearing in ForceSendFields will be sent to the
5585	// server regardless of whether the field is empty or not. This may be
5586	// used to include empty fields in Patch requests.
5587	ForceSendFields []string `json:"-"`
5588
5589	// NullFields is a list of field names (e.g. "AverageRank") to include
5590	// in API requests with the JSON null value. By default, fields with
5591	// empty values are omitted from API requests. However, any field with
5592	// an empty value appearing in NullFields will be sent to the server as
5593	// null. It is an error if a field in this list has a non-empty value.
5594	// This may be used to include null fields in Patch requests.
5595	NullFields []string `json:"-"`
5596}
5597
5598func (s *RankingMetrics) MarshalJSON() ([]byte, error) {
5599	type NoMethod RankingMetrics
5600	raw := NoMethod(*s)
5601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5602}
5603
5604func (s *RankingMetrics) UnmarshalJSON(data []byte) error {
5605	type NoMethod RankingMetrics
5606	var s1 struct {
5607		AverageRank                        gensupport.JSONFloat64 `json:"averageRank"`
5608		MeanAveragePrecision               gensupport.JSONFloat64 `json:"meanAveragePrecision"`
5609		MeanSquaredError                   gensupport.JSONFloat64 `json:"meanSquaredError"`
5610		NormalizedDiscountedCumulativeGain gensupport.JSONFloat64 `json:"normalizedDiscountedCumulativeGain"`
5611		*NoMethod
5612	}
5613	s1.NoMethod = (*NoMethod)(s)
5614	if err := json.Unmarshal(data, &s1); err != nil {
5615		return err
5616	}
5617	s.AverageRank = float64(s1.AverageRank)
5618	s.MeanAveragePrecision = float64(s1.MeanAveragePrecision)
5619	s.MeanSquaredError = float64(s1.MeanSquaredError)
5620	s.NormalizedDiscountedCumulativeGain = float64(s1.NormalizedDiscountedCumulativeGain)
5621	return nil
5622}
5623
5624// RegressionMetrics: Evaluation metrics for regression and explicit
5625// feedback type matrix factorization models.
5626type RegressionMetrics struct {
5627	// MeanAbsoluteError: Mean absolute error.
5628	MeanAbsoluteError float64 `json:"meanAbsoluteError,omitempty"`
5629
5630	// MeanSquaredError: Mean squared error.
5631	MeanSquaredError float64 `json:"meanSquaredError,omitempty"`
5632
5633	// MeanSquaredLogError: Mean squared log error.
5634	MeanSquaredLogError float64 `json:"meanSquaredLogError,omitempty"`
5635
5636	// MedianAbsoluteError: Median absolute error.
5637	MedianAbsoluteError float64 `json:"medianAbsoluteError,omitempty"`
5638
5639	// RSquared: R^2 score.
5640	RSquared float64 `json:"rSquared,omitempty"`
5641
5642	// ForceSendFields is a list of field names (e.g. "MeanAbsoluteError")
5643	// to unconditionally include in API requests. By default, fields with
5644	// empty values are omitted from API requests. However, any non-pointer,
5645	// non-interface field appearing in ForceSendFields will be sent to the
5646	// server regardless of whether the field is empty or not. This may be
5647	// used to include empty fields in Patch requests.
5648	ForceSendFields []string `json:"-"`
5649
5650	// NullFields is a list of field names (e.g. "MeanAbsoluteError") to
5651	// include in API requests with the JSON null value. By default, fields
5652	// with empty values are omitted from API requests. However, any field
5653	// with an empty value appearing in NullFields will be sent to the
5654	// server as null. It is an error if a field in this list has a
5655	// non-empty value. This may be used to include null fields in Patch
5656	// requests.
5657	NullFields []string `json:"-"`
5658}
5659
5660func (s *RegressionMetrics) MarshalJSON() ([]byte, error) {
5661	type NoMethod RegressionMetrics
5662	raw := NoMethod(*s)
5663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5664}
5665
5666func (s *RegressionMetrics) UnmarshalJSON(data []byte) error {
5667	type NoMethod RegressionMetrics
5668	var s1 struct {
5669		MeanAbsoluteError   gensupport.JSONFloat64 `json:"meanAbsoluteError"`
5670		MeanSquaredError    gensupport.JSONFloat64 `json:"meanSquaredError"`
5671		MeanSquaredLogError gensupport.JSONFloat64 `json:"meanSquaredLogError"`
5672		MedianAbsoluteError gensupport.JSONFloat64 `json:"medianAbsoluteError"`
5673		RSquared            gensupport.JSONFloat64 `json:"rSquared"`
5674		*NoMethod
5675	}
5676	s1.NoMethod = (*NoMethod)(s)
5677	if err := json.Unmarshal(data, &s1); err != nil {
5678		return err
5679	}
5680	s.MeanAbsoluteError = float64(s1.MeanAbsoluteError)
5681	s.MeanSquaredError = float64(s1.MeanSquaredError)
5682	s.MeanSquaredLogError = float64(s1.MeanSquaredLogError)
5683	s.MedianAbsoluteError = float64(s1.MedianAbsoluteError)
5684	s.RSquared = float64(s1.RSquared)
5685	return nil
5686}
5687
5688// Routine: A user-defined function or a stored procedure.
5689type Routine struct {
5690	// Arguments: Optional.
5691	Arguments []*Argument `json:"arguments,omitempty"`
5692
5693	// CreationTime: Output only. The time when this routine was created, in
5694	// milliseconds since the epoch.
5695	CreationTime int64 `json:"creationTime,omitempty,string"`
5696
5697	// DefinitionBody: Required. The body of the routine. For functions,
5698	// this is the expression in the AS clause. If language=SQL, it is the
5699	// substring inside (but excluding) the parentheses. For example, for
5700	// the function created with the following statement: `CREATE FUNCTION
5701	// JoinLines(x string, y string) as (concat(x, "\n", y))` The
5702	// definition_body is `concat(x, "\n", y)` (\n is not replaced with
5703	// linebreak). If language=JAVASCRIPT, it is the evaluated string in the
5704	// AS clause. For example, for the function created with the following
5705	// statement: `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return
5706	// "\n";\n'` The definition_body is `return "\n";\n` Note that both \n
5707	// are replaced with linebreaks.
5708	DefinitionBody string `json:"definitionBody,omitempty"`
5709
5710	// Description: Optional. [Experimental] The description of the routine
5711	// if defined.
5712	Description string `json:"description,omitempty"`
5713
5714	// DeterminismLevel: Optional. [Experimental] The determinism level of
5715	// the JavaScript UDF if defined.
5716	//
5717	// Possible values:
5718	//   "DETERMINISM_LEVEL_UNSPECIFIED" - The determinism of the UDF is
5719	// unspecified.
5720	//   "DETERMINISTIC" - The UDF is deterministic, meaning that 2 function
5721	// calls with the same inputs always produce the same result, even
5722	// across 2 query runs.
5723	//   "NOT_DETERMINISTIC" - The UDF is not deterministic.
5724	DeterminismLevel string `json:"determinismLevel,omitempty"`
5725
5726	// Etag: Output only. A hash of this resource.
5727	Etag string `json:"etag,omitempty"`
5728
5729	// ImportedLibraries: Optional. If language = "JAVASCRIPT", this field
5730	// stores the path of the imported JAVASCRIPT libraries.
5731	ImportedLibraries []string `json:"importedLibraries,omitempty"`
5732
5733	// Language: Optional. Defaults to "SQL".
5734	//
5735	// Possible values:
5736	//   "LANGUAGE_UNSPECIFIED"
5737	//   "SQL" - SQL language.
5738	//   "JAVASCRIPT" - JavaScript language.
5739	Language string `json:"language,omitempty"`
5740
5741	// LastModifiedTime: Output only. The time when this routine was last
5742	// modified, in milliseconds since the epoch.
5743	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
5744
5745	// ReturnType: Optional if language = "SQL"; required otherwise. If
5746	// absent, the return type is inferred from definition_body at query
5747	// time in each query that references this routine. If present, then the
5748	// evaluated result will be cast to the specified returned type at query
5749	// time. For example, for the functions created with the following
5750	// statements: * `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS
5751	// FLOAT64 AS (x + y);` * `CREATE FUNCTION Increment(x FLOAT64) AS
5752	// (Add(x, 1));` * `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64
5753	// AS (Add(x, -1));` The return_type is `{type_kind: "FLOAT64"}` for
5754	// `Add` and `Decrement`, and is absent for `Increment` (inferred as
5755	// FLOAT64 at query time). Suppose the function `Add` is replaced by
5756	// `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);` Then
5757	// the inferred return type of `Increment` is automatically changed to
5758	// INT64 at query time, while the return type of `Decrement` remains
5759	// FLOAT64.
5760	ReturnType *StandardSqlDataType `json:"returnType,omitempty"`
5761
5762	// RoutineReference: Required. Reference describing the ID of this
5763	// routine.
5764	RoutineReference *RoutineReference `json:"routineReference,omitempty"`
5765
5766	// RoutineType: Required. The type of routine.
5767	//
5768	// Possible values:
5769	//   "ROUTINE_TYPE_UNSPECIFIED"
5770	//   "SCALAR_FUNCTION" - Non-builtin permanent scalar function.
5771	//   "PROCEDURE" - Stored procedure.
5772	RoutineType string `json:"routineType,omitempty"`
5773
5774	// ServerResponse contains the HTTP response code and headers from the
5775	// server.
5776	googleapi.ServerResponse `json:"-"`
5777
5778	// ForceSendFields is a list of field names (e.g. "Arguments") to
5779	// unconditionally include in API requests. By default, fields with
5780	// empty values are omitted from API requests. However, any non-pointer,
5781	// non-interface field appearing in ForceSendFields will be sent to the
5782	// server regardless of whether the field is empty or not. This may be
5783	// used to include empty fields in Patch requests.
5784	ForceSendFields []string `json:"-"`
5785
5786	// NullFields is a list of field names (e.g. "Arguments") to include in
5787	// API requests with the JSON null value. By default, fields with empty
5788	// values are omitted from API requests. However, any field with an
5789	// empty value appearing in NullFields will be sent to the server as
5790	// null. It is an error if a field in this list has a non-empty value.
5791	// This may be used to include null fields in Patch requests.
5792	NullFields []string `json:"-"`
5793}
5794
5795func (s *Routine) MarshalJSON() ([]byte, error) {
5796	type NoMethod Routine
5797	raw := NoMethod(*s)
5798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5799}
5800
5801type RoutineReference struct {
5802	// DatasetId: [Required] The ID of the dataset containing this routine.
5803	DatasetId string `json:"datasetId,omitempty"`
5804
5805	// ProjectId: [Required] The ID of the project containing this routine.
5806	ProjectId string `json:"projectId,omitempty"`
5807
5808	// RoutineId: [Required] The ID of the routine. The ID must contain only
5809	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
5810	// length is 256 characters.
5811	RoutineId string `json:"routineId,omitempty"`
5812
5813	// ForceSendFields is a list of field names (e.g. "DatasetId") to
5814	// unconditionally include in API requests. By default, fields with
5815	// empty values are omitted from API requests. However, any non-pointer,
5816	// non-interface field appearing in ForceSendFields will be sent to the
5817	// server regardless of whether the field is empty or not. This may be
5818	// used to include empty fields in Patch requests.
5819	ForceSendFields []string `json:"-"`
5820
5821	// NullFields is a list of field names (e.g. "DatasetId") to include in
5822	// API requests with the JSON null value. By default, fields with empty
5823	// values are omitted from API requests. However, any field with an
5824	// empty value appearing in NullFields will be sent to the server as
5825	// null. It is an error if a field in this list has a non-empty value.
5826	// This may be used to include null fields in Patch requests.
5827	NullFields []string `json:"-"`
5828}
5829
5830func (s *RoutineReference) MarshalJSON() ([]byte, error) {
5831	type NoMethod RoutineReference
5832	raw := NoMethod(*s)
5833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5834}
5835
5836// Row: A single row in the confusion matrix.
5837type Row struct {
5838	// ActualLabel: The original label of this row.
5839	ActualLabel string `json:"actualLabel,omitempty"`
5840
5841	// Entries: Info describing predicted label distribution.
5842	Entries []*Entry `json:"entries,omitempty"`
5843
5844	// ForceSendFields is a list of field names (e.g. "ActualLabel") to
5845	// unconditionally include in API requests. By default, fields with
5846	// empty values are omitted from API requests. However, any non-pointer,
5847	// non-interface field appearing in ForceSendFields will be sent to the
5848	// server regardless of whether the field is empty or not. This may be
5849	// used to include empty fields in Patch requests.
5850	ForceSendFields []string `json:"-"`
5851
5852	// NullFields is a list of field names (e.g. "ActualLabel") to include
5853	// in API requests with the JSON null value. By default, fields with
5854	// empty values are omitted from API requests. However, any field with
5855	// an empty value appearing in NullFields will be sent to the server as
5856	// null. It is an error if a field in this list has a non-empty value.
5857	// This may be used to include null fields in Patch requests.
5858	NullFields []string `json:"-"`
5859}
5860
5861func (s *Row) MarshalJSON() ([]byte, error) {
5862	type NoMethod Row
5863	raw := NoMethod(*s)
5864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5865}
5866
5867// RowAccessPolicy: Represents access on a subset of rows on the
5868// specified table, defined by its filter predicate. Access to the
5869// subset of rows is controlled by its IAM policy.
5870type RowAccessPolicy struct {
5871	// CreationTime: Output only. The time when this row access policy was
5872	// created, in milliseconds since the epoch.
5873	CreationTime string `json:"creationTime,omitempty"`
5874
5875	// Etag: Output only. A hash of this resource.
5876	Etag string `json:"etag,omitempty"`
5877
5878	// FilterPredicate: Required. A SQL boolean expression that represents
5879	// the rows defined by this row access policy, similar to the boolean
5880	// expression in a WHERE clause of a SELECT query on a table. References
5881	// to other tables, routines, and temporary functions are not supported.
5882	// Examples: region="EU" date_field = CAST('2019-9-27' as DATE)
5883	// nullable_field is not NULL numeric_field BETWEEN 1.0 AND 5.0
5884	FilterPredicate string `json:"filterPredicate,omitempty"`
5885
5886	// LastModifiedTime: Output only. The time when this row access policy
5887	// was last modified, in milliseconds since the epoch.
5888	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
5889
5890	// RowAccessPolicyReference: Required. Reference describing the ID of
5891	// this row access policy.
5892	RowAccessPolicyReference *RowAccessPolicyReference `json:"rowAccessPolicyReference,omitempty"`
5893
5894	// ForceSendFields is a list of field names (e.g. "CreationTime") to
5895	// unconditionally include in API requests. By default, fields with
5896	// empty values are omitted from API requests. However, any non-pointer,
5897	// non-interface field appearing in ForceSendFields will be sent to the
5898	// server regardless of whether the field is empty or not. This may be
5899	// used to include empty fields in Patch requests.
5900	ForceSendFields []string `json:"-"`
5901
5902	// NullFields is a list of field names (e.g. "CreationTime") to include
5903	// in API requests with the JSON null value. By default, fields with
5904	// empty values are omitted from API requests. However, any field with
5905	// an empty value appearing in NullFields will be sent to the server as
5906	// null. It is an error if a field in this list has a non-empty value.
5907	// This may be used to include null fields in Patch requests.
5908	NullFields []string `json:"-"`
5909}
5910
5911func (s *RowAccessPolicy) MarshalJSON() ([]byte, error) {
5912	type NoMethod RowAccessPolicy
5913	raw := NoMethod(*s)
5914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5915}
5916
5917type RowAccessPolicyReference struct {
5918	// DatasetId: [Required] The ID of the dataset containing this row
5919	// access policy.
5920	DatasetId string `json:"datasetId,omitempty"`
5921
5922	// PolicyId: [Required] The ID of the row access policy. The ID must
5923	// contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).
5924	// The maximum length is 256 characters.
5925	PolicyId string `json:"policyId,omitempty"`
5926
5927	// ProjectId: [Required] The ID of the project containing this row
5928	// access policy.
5929	ProjectId string `json:"projectId,omitempty"`
5930
5931	// TableId: [Required] The ID of the table containing this row access
5932	// policy.
5933	TableId string `json:"tableId,omitempty"`
5934
5935	// ForceSendFields is a list of field names (e.g. "DatasetId") to
5936	// unconditionally include in API requests. By default, fields with
5937	// empty values are omitted from API requests. However, any non-pointer,
5938	// non-interface field appearing in ForceSendFields will be sent to the
5939	// server regardless of whether the field is empty or not. This may be
5940	// used to include empty fields in Patch requests.
5941	ForceSendFields []string `json:"-"`
5942
5943	// NullFields is a list of field names (e.g. "DatasetId") to include in
5944	// API requests with the JSON null value. By default, fields with empty
5945	// values are omitted from API requests. However, any field with an
5946	// empty value appearing in NullFields will be sent to the server as
5947	// null. It is an error if a field in this list has a non-empty value.
5948	// This may be used to include null fields in Patch requests.
5949	NullFields []string `json:"-"`
5950}
5951
5952func (s *RowAccessPolicyReference) MarshalJSON() ([]byte, error) {
5953	type NoMethod RowAccessPolicyReference
5954	raw := NoMethod(*s)
5955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5956}
5957
5958type RowLevelSecurityStatistics struct {
5959	// RowLevelSecurityApplied: [Output-only] [Preview] Whether any accessed
5960	// data was protected by row access policies.
5961	RowLevelSecurityApplied bool `json:"rowLevelSecurityApplied,omitempty"`
5962
5963	// ForceSendFields is a list of field names (e.g.
5964	// "RowLevelSecurityApplied") to unconditionally include in API
5965	// requests. By default, fields with empty values are omitted from API
5966	// requests. However, any non-pointer, non-interface field appearing in
5967	// ForceSendFields will be sent to the server regardless of whether the
5968	// field is empty or not. This may be used to include empty fields in
5969	// Patch requests.
5970	ForceSendFields []string `json:"-"`
5971
5972	// NullFields is a list of field names (e.g. "RowLevelSecurityApplied")
5973	// to include in API requests with the JSON null value. By default,
5974	// fields with empty values are omitted from API requests. However, any
5975	// field with an empty value appearing in NullFields will be sent to the
5976	// server as null. It is an error if a field in this list has a
5977	// non-empty value. This may be used to include null fields in Patch
5978	// requests.
5979	NullFields []string `json:"-"`
5980}
5981
5982func (s *RowLevelSecurityStatistics) MarshalJSON() ([]byte, error) {
5983	type NoMethod RowLevelSecurityStatistics
5984	raw := NoMethod(*s)
5985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5986}
5987
5988type ScriptStackFrame struct {
5989	// EndColumn: [Output-only] One-based end column.
5990	EndColumn int64 `json:"endColumn,omitempty"`
5991
5992	// EndLine: [Output-only] One-based end line.
5993	EndLine int64 `json:"endLine,omitempty"`
5994
5995	// ProcedureId: [Output-only] Name of the active procedure, empty if in
5996	// a top-level script.
5997	ProcedureId string `json:"procedureId,omitempty"`
5998
5999	// StartColumn: [Output-only] One-based start column.
6000	StartColumn int64 `json:"startColumn,omitempty"`
6001
6002	// StartLine: [Output-only] One-based start line.
6003	StartLine int64 `json:"startLine,omitempty"`
6004
6005	// Text: [Output-only] Text of the current statement/expression.
6006	Text string `json:"text,omitempty"`
6007
6008	// ForceSendFields is a list of field names (e.g. "EndColumn") to
6009	// unconditionally include in API requests. By default, fields with
6010	// empty values are omitted from API requests. However, any non-pointer,
6011	// non-interface field appearing in ForceSendFields will be sent to the
6012	// server regardless of whether the field is empty or not. This may be
6013	// used to include empty fields in Patch requests.
6014	ForceSendFields []string `json:"-"`
6015
6016	// NullFields is a list of field names (e.g. "EndColumn") to include in
6017	// API requests with the JSON null value. By default, fields with empty
6018	// values are omitted from API requests. However, any field with an
6019	// empty value appearing in NullFields will be sent to the server as
6020	// null. It is an error if a field in this list has a non-empty value.
6021	// This may be used to include null fields in Patch requests.
6022	NullFields []string `json:"-"`
6023}
6024
6025func (s *ScriptStackFrame) MarshalJSON() ([]byte, error) {
6026	type NoMethod ScriptStackFrame
6027	raw := NoMethod(*s)
6028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6029}
6030
6031type ScriptStatistics struct {
6032	// EvaluationKind: [Output-only] Whether this child job was a statement
6033	// or expression.
6034	EvaluationKind string `json:"evaluationKind,omitempty"`
6035
6036	// StackFrames: Stack trace showing the line/column/procedure name of
6037	// each frame on the stack at the point where the current evaluation
6038	// happened. The leaf frame is first, the primary script is last. Never
6039	// empty.
6040	StackFrames []*ScriptStackFrame `json:"stackFrames,omitempty"`
6041
6042	// ForceSendFields is a list of field names (e.g. "EvaluationKind") to
6043	// unconditionally include in API requests. By default, fields with
6044	// empty values are omitted from API requests. However, any non-pointer,
6045	// non-interface field appearing in ForceSendFields will be sent to the
6046	// server regardless of whether the field is empty or not. This may be
6047	// used to include empty fields in Patch requests.
6048	ForceSendFields []string `json:"-"`
6049
6050	// NullFields is a list of field names (e.g. "EvaluationKind") to
6051	// include in API requests with the JSON null value. By default, fields
6052	// with empty values are omitted from API requests. However, any field
6053	// with an empty value appearing in NullFields will be sent to the
6054	// server as null. It is an error if a field in this list has a
6055	// non-empty value. This may be used to include null fields in Patch
6056	// requests.
6057	NullFields []string `json:"-"`
6058}
6059
6060func (s *ScriptStatistics) MarshalJSON() ([]byte, error) {
6061	type NoMethod ScriptStatistics
6062	raw := NoMethod(*s)
6063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6064}
6065
6066// SetIamPolicyRequest: Request message for `SetIamPolicy` method.
6067type SetIamPolicyRequest struct {
6068	// Policy: REQUIRED: The complete policy to be applied to the
6069	// `resource`. The size of the policy is limited to a few 10s of KB. An
6070	// empty policy is a valid policy but certain Cloud Platform services
6071	// (such as Projects) might reject them.
6072	Policy *Policy `json:"policy,omitempty"`
6073
6074	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the
6075	// policy to modify. Only the fields in the mask will be modified. If no
6076	// mask is provided, the following default mask is used: `paths:
6077	// "bindings, etag"
6078	UpdateMask string `json:"updateMask,omitempty"`
6079
6080	// ForceSendFields is a list of field names (e.g. "Policy") to
6081	// unconditionally include in API requests. By default, fields with
6082	// empty values are omitted from API requests. However, any non-pointer,
6083	// non-interface field appearing in ForceSendFields will be sent to the
6084	// server regardless of whether the field is empty or not. This may be
6085	// used to include empty fields in Patch requests.
6086	ForceSendFields []string `json:"-"`
6087
6088	// NullFields is a list of field names (e.g. "Policy") to include in API
6089	// requests with the JSON null value. By default, fields with empty
6090	// values are omitted from API requests. However, any field with an
6091	// empty value appearing in NullFields will be sent to the server as
6092	// null. It is an error if a field in this list has a non-empty value.
6093	// This may be used to include null fields in Patch requests.
6094	NullFields []string `json:"-"`
6095}
6096
6097func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
6098	type NoMethod SetIamPolicyRequest
6099	raw := NoMethod(*s)
6100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6101}
6102
6103type SnapshotDefinition struct {
6104	// BaseTableReference: [Required] Reference describing the ID of the
6105	// table that is snapshotted.
6106	BaseTableReference *TableReference `json:"baseTableReference,omitempty"`
6107
6108	// SnapshotTime: [Required] The time at which the base table was
6109	// snapshot.
6110	SnapshotTime string `json:"snapshotTime,omitempty"`
6111
6112	// ForceSendFields is a list of field names (e.g. "BaseTableReference")
6113	// to unconditionally include in API requests. By default, fields with
6114	// empty values are omitted from API requests. However, any non-pointer,
6115	// non-interface field appearing in ForceSendFields will be sent to the
6116	// server regardless of whether the field is empty or not. This may be
6117	// used to include empty fields in Patch requests.
6118	ForceSendFields []string `json:"-"`
6119
6120	// NullFields is a list of field names (e.g. "BaseTableReference") to
6121	// include in API requests with the JSON null value. By default, fields
6122	// with empty values are omitted from API requests. However, any field
6123	// with an empty value appearing in NullFields will be sent to the
6124	// server as null. It is an error if a field in this list has a
6125	// non-empty value. This may be used to include null fields in Patch
6126	// requests.
6127	NullFields []string `json:"-"`
6128}
6129
6130func (s *SnapshotDefinition) MarshalJSON() ([]byte, error) {
6131	type NoMethod SnapshotDefinition
6132	raw := NoMethod(*s)
6133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6134}
6135
6136// StandardSqlDataType: The type of a variable, e.g., a function
6137// argument. Examples: INT64: {type_kind="INT64"} ARRAY:
6138// {type_kind="ARRAY", array_element_type="STRING"} STRUCT>:
6139// {type_kind="STRUCT", struct_type={fields=[ {name="x",
6140// type={type_kind="STRING"}}, {name="y", type={type_kind="ARRAY",
6141// array_element_type="DATE"}} ]}}
6142type StandardSqlDataType struct {
6143	// ArrayElementType: The type of the array's elements, if type_kind =
6144	// "ARRAY".
6145	ArrayElementType *StandardSqlDataType `json:"arrayElementType,omitempty"`
6146
6147	// StructType: The fields of this struct, in order, if type_kind =
6148	// "STRUCT".
6149	StructType *StandardSqlStructType `json:"structType,omitempty"`
6150
6151	// TypeKind: Required. The top level type of this field. Can be any
6152	// standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
6153	//
6154	// Possible values:
6155	//   "TYPE_KIND_UNSPECIFIED" - Invalid type.
6156	//   "INT64" - Encoded as a string in decimal format.
6157	//   "BOOL" - Encoded as a boolean "false" or "true".
6158	//   "FLOAT64" - Encoded as a number, or string "NaN", "Infinity" or
6159	// "-Infinity".
6160	//   "STRING" - Encoded as a string value.
6161	//   "BYTES" - Encoded as a base64 string per RFC 4648, section 4.
6162	//   "TIMESTAMP" - Encoded as an RFC 3339 timestamp with mandatory "Z"
6163	// time zone string: 1985-04-12T23:20:50.52Z
6164	//   "DATE" - Encoded as RFC 3339 full-date format string: 1985-04-12
6165	//   "TIME" - Encoded as RFC 3339 partial-time format string:
6166	// 23:20:50.52
6167	//   "DATETIME" - Encoded as RFC 3339 full-date "T" partial-time:
6168	// 1985-04-12T23:20:50.52
6169	//   "GEOGRAPHY" - Encoded as WKT
6170	//   "NUMERIC" - Encoded as a decimal string.
6171	//   "BIGNUMERIC" - Encoded as a decimal string.
6172	//   "ARRAY" - Encoded as a list with types matching Type.array_type.
6173	//   "STRUCT" - Encoded as a list with fields of type
6174	// Type.struct_type[i]. List is used because a JSON object cannot have
6175	// duplicate field names.
6176	TypeKind string `json:"typeKind,omitempty"`
6177
6178	// ForceSendFields is a list of field names (e.g. "ArrayElementType") to
6179	// unconditionally include in API requests. By default, fields with
6180	// empty values are omitted from API requests. However, any non-pointer,
6181	// non-interface field appearing in ForceSendFields will be sent to the
6182	// server regardless of whether the field is empty or not. This may be
6183	// used to include empty fields in Patch requests.
6184	ForceSendFields []string `json:"-"`
6185
6186	// NullFields is a list of field names (e.g. "ArrayElementType") to
6187	// include in API requests with the JSON null value. By default, fields
6188	// with empty values are omitted from API requests. However, any field
6189	// with an empty value appearing in NullFields will be sent to the
6190	// server as null. It is an error if a field in this list has a
6191	// non-empty value. This may be used to include null fields in Patch
6192	// requests.
6193	NullFields []string `json:"-"`
6194}
6195
6196func (s *StandardSqlDataType) MarshalJSON() ([]byte, error) {
6197	type NoMethod StandardSqlDataType
6198	raw := NoMethod(*s)
6199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6200}
6201
6202// StandardSqlField: A field or a column.
6203type StandardSqlField struct {
6204	// Name: Optional. The name of this field. Can be absent for struct
6205	// fields.
6206	Name string `json:"name,omitempty"`
6207
6208	// Type: Optional. The type of this parameter. Absent if not explicitly
6209	// specified (e.g., CREATE FUNCTION statement can omit the return type;
6210	// in this case the output parameter does not have this "type" field).
6211	Type *StandardSqlDataType `json:"type,omitempty"`
6212
6213	// ForceSendFields is a list of field names (e.g. "Name") to
6214	// unconditionally include in API requests. By default, fields with
6215	// empty values are omitted from API requests. However, any non-pointer,
6216	// non-interface field appearing in ForceSendFields will be sent to the
6217	// server regardless of whether the field is empty or not. This may be
6218	// used to include empty fields in Patch requests.
6219	ForceSendFields []string `json:"-"`
6220
6221	// NullFields is a list of field names (e.g. "Name") to include in API
6222	// requests with the JSON null value. By default, fields with empty
6223	// values are omitted from API requests. However, any field with an
6224	// empty value appearing in NullFields will be sent to the server as
6225	// null. It is an error if a field in this list has a non-empty value.
6226	// This may be used to include null fields in Patch requests.
6227	NullFields []string `json:"-"`
6228}
6229
6230func (s *StandardSqlField) MarshalJSON() ([]byte, error) {
6231	type NoMethod StandardSqlField
6232	raw := NoMethod(*s)
6233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6234}
6235
6236type StandardSqlStructType struct {
6237	Fields []*StandardSqlField `json:"fields,omitempty"`
6238
6239	// ForceSendFields is a list of field names (e.g. "Fields") to
6240	// unconditionally include in API requests. By default, fields with
6241	// empty values are omitted from API requests. However, any non-pointer,
6242	// non-interface field appearing in ForceSendFields will be sent to the
6243	// server regardless of whether the field is empty or not. This may be
6244	// used to include empty fields in Patch requests.
6245	ForceSendFields []string `json:"-"`
6246
6247	// NullFields is a list of field names (e.g. "Fields") to include in API
6248	// requests with the JSON null value. By default, fields with empty
6249	// values are omitted from API requests. However, any field with an
6250	// empty value appearing in NullFields will be sent to the server as
6251	// null. It is an error if a field in this list has a non-empty value.
6252	// This may be used to include null fields in Patch requests.
6253	NullFields []string `json:"-"`
6254}
6255
6256func (s *StandardSqlStructType) MarshalJSON() ([]byte, error) {
6257	type NoMethod StandardSqlStructType
6258	raw := NoMethod(*s)
6259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6260}
6261
6262type Streamingbuffer struct {
6263	// EstimatedBytes: [Output-only] A lower-bound estimate of the number of
6264	// bytes currently in the streaming buffer.
6265	EstimatedBytes uint64 `json:"estimatedBytes,omitempty,string"`
6266
6267	// EstimatedRows: [Output-only] A lower-bound estimate of the number of
6268	// rows currently in the streaming buffer.
6269	EstimatedRows uint64 `json:"estimatedRows,omitempty,string"`
6270
6271	// OldestEntryTime: [Output-only] Contains the timestamp of the oldest
6272	// entry in the streaming buffer, in milliseconds since the epoch, if
6273	// the streaming buffer is available.
6274	OldestEntryTime uint64 `json:"oldestEntryTime,omitempty,string"`
6275
6276	// ForceSendFields is a list of field names (e.g. "EstimatedBytes") to
6277	// unconditionally include in API requests. By default, fields with
6278	// empty values are omitted from API requests. However, any non-pointer,
6279	// non-interface field appearing in ForceSendFields will be sent to the
6280	// server regardless of whether the field is empty or not. This may be
6281	// used to include empty fields in Patch requests.
6282	ForceSendFields []string `json:"-"`
6283
6284	// NullFields is a list of field names (e.g. "EstimatedBytes") to
6285	// include in API requests with the JSON null value. By default, fields
6286	// with empty values are omitted from API requests. However, any field
6287	// with an empty value appearing in NullFields will be sent to the
6288	// server as null. It is an error if a field in this list has a
6289	// non-empty value. This may be used to include null fields in Patch
6290	// requests.
6291	NullFields []string `json:"-"`
6292}
6293
6294func (s *Streamingbuffer) MarshalJSON() ([]byte, error) {
6295	type NoMethod Streamingbuffer
6296	raw := NoMethod(*s)
6297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6298}
6299
6300type Table struct {
6301	// Clustering: [Beta] Clustering specification for the table. Must be
6302	// specified with partitioning, data in the table will be first
6303	// partitioned and subsequently clustered.
6304	Clustering *Clustering `json:"clustering,omitempty"`
6305
6306	// CreationTime: [Output-only] The time when this table was created, in
6307	// milliseconds since the epoch.
6308	CreationTime int64 `json:"creationTime,omitempty,string"`
6309
6310	// Description: [Optional] A user-friendly description of this table.
6311	Description string `json:"description,omitempty"`
6312
6313	// EncryptionConfiguration: Custom encryption configuration (e.g., Cloud
6314	// KMS keys).
6315	EncryptionConfiguration *EncryptionConfiguration `json:"encryptionConfiguration,omitempty"`
6316
6317	// Etag: [Output-only] A hash of the table metadata. Used to ensure
6318	// there were no concurrent modifications to the resource when
6319	// attempting an update. Not guaranteed to change when the table
6320	// contents or the fields numRows, numBytes, numLongTermBytes or
6321	// lastModifiedTime change.
6322	Etag string `json:"etag,omitempty"`
6323
6324	// ExpirationTime: [Optional] The time when this table expires, in
6325	// milliseconds since the epoch. If not present, the table will persist
6326	// indefinitely. Expired tables will be deleted and their storage
6327	// reclaimed. The defaultTableExpirationMs property of the encapsulating
6328	// dataset can be used to set a default expirationTime on newly created
6329	// tables.
6330	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
6331
6332	// ExternalDataConfiguration: [Optional] Describes the data format,
6333	// location, and other properties of a table stored outside of BigQuery.
6334	// By defining these properties, the data source can then be queried as
6335	// if it were a standard BigQuery table.
6336	ExternalDataConfiguration *ExternalDataConfiguration `json:"externalDataConfiguration,omitempty"`
6337
6338	// FriendlyName: [Optional] A descriptive name for this table.
6339	FriendlyName string `json:"friendlyName,omitempty"`
6340
6341	// Id: [Output-only] An opaque ID uniquely identifying the table.
6342	Id string `json:"id,omitempty"`
6343
6344	// Kind: [Output-only] The type of the resource.
6345	Kind string `json:"kind,omitempty"`
6346
6347	// Labels: The labels associated with this table. You can use these to
6348	// organize and group your tables. Label keys and values can be no
6349	// longer than 63 characters, can only contain lowercase letters,
6350	// numeric characters, underscores and dashes. International characters
6351	// are allowed. Label values are optional. Label keys must start with a
6352	// letter and each label in the list must have a different key.
6353	Labels map[string]string `json:"labels,omitempty"`
6354
6355	// LastModifiedTime: [Output-only] The time when this table was last
6356	// modified, in milliseconds since the epoch.
6357	LastModifiedTime uint64 `json:"lastModifiedTime,omitempty,string"`
6358
6359	// Location: [Output-only] The geographic location where the table
6360	// resides. This value is inherited from the dataset.
6361	Location string `json:"location,omitempty"`
6362
6363	// MaterializedView: [Optional] Materialized view definition.
6364	MaterializedView *MaterializedViewDefinition `json:"materializedView,omitempty"`
6365
6366	// Model: [Output-only, Beta] Present iff this table represents a ML
6367	// model. Describes the training information for the model, and it is
6368	// required to run 'PREDICT' queries.
6369	Model *ModelDefinition `json:"model,omitempty"`
6370
6371	// NumBytes: [Output-only] The size of this table in bytes, excluding
6372	// any data in the streaming buffer.
6373	NumBytes int64 `json:"numBytes,omitempty,string"`
6374
6375	// NumLongTermBytes: [Output-only] The number of bytes in the table that
6376	// are considered "long-term storage".
6377	NumLongTermBytes int64 `json:"numLongTermBytes,omitempty,string"`
6378
6379	// NumPhysicalBytes: [Output-only] [TrustedTester] The physical size of
6380	// this table in bytes, excluding any data in the streaming buffer. This
6381	// includes compression and storage used for time travel.
6382	NumPhysicalBytes int64 `json:"numPhysicalBytes,omitempty,string"`
6383
6384	// NumRows: [Output-only] The number of rows of data in this table,
6385	// excluding any data in the streaming buffer.
6386	NumRows uint64 `json:"numRows,omitempty,string"`
6387
6388	// RangePartitioning: [TrustedTester] Range partitioning specification
6389	// for this table. Only one of timePartitioning and rangePartitioning
6390	// should be specified.
6391	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
6392
6393	// RequirePartitionFilter: [Optional] If set to true, queries over this
6394	// table require a partition filter that can be used for partition
6395	// elimination to be specified.
6396	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
6397
6398	// Schema: [Optional] Describes the schema of this table.
6399	Schema *TableSchema `json:"schema,omitempty"`
6400
6401	// SelfLink: [Output-only] A URL that can be used to access this
6402	// resource again.
6403	SelfLink string `json:"selfLink,omitempty"`
6404
6405	// SnapshotDefinition: [Output-only] Snapshot definition.
6406	SnapshotDefinition *SnapshotDefinition `json:"snapshotDefinition,omitempty"`
6407
6408	// StreamingBuffer: [Output-only] Contains information regarding this
6409	// table's streaming buffer, if one is present. This field will be
6410	// absent if the table is not being streamed to or if there is no data
6411	// in the streaming buffer.
6412	StreamingBuffer *Streamingbuffer `json:"streamingBuffer,omitempty"`
6413
6414	// TableReference: [Required] Reference describing the ID of this table.
6415	TableReference *TableReference `json:"tableReference,omitempty"`
6416
6417	// TimePartitioning: Time-based partitioning specification for this
6418	// table. Only one of timePartitioning and rangePartitioning should be
6419	// specified.
6420	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
6421
6422	// Type: [Output-only] Describes the table type. The following values
6423	// are supported: TABLE: A normal BigQuery table. VIEW: A virtual table
6424	// defined by a SQL query. SNAPSHOT: An immutable, read-only table that
6425	// is a copy of another table. [TrustedTester] MATERIALIZED_VIEW: SQL
6426	// query whose result is persisted. EXTERNAL: A table that references
6427	// data stored in an external storage system, such as Google Cloud
6428	// Storage. The default value is TABLE.
6429	Type string `json:"type,omitempty"`
6430
6431	// View: [Optional] The view definition.
6432	View *ViewDefinition `json:"view,omitempty"`
6433
6434	// ServerResponse contains the HTTP response code and headers from the
6435	// server.
6436	googleapi.ServerResponse `json:"-"`
6437
6438	// ForceSendFields is a list of field names (e.g. "Clustering") to
6439	// unconditionally include in API requests. By default, fields with
6440	// empty values are omitted from API requests. However, any non-pointer,
6441	// non-interface field appearing in ForceSendFields will be sent to the
6442	// server regardless of whether the field is empty or not. This may be
6443	// used to include empty fields in Patch requests.
6444	ForceSendFields []string `json:"-"`
6445
6446	// NullFields is a list of field names (e.g. "Clustering") to include in
6447	// API requests with the JSON null value. By default, fields with empty
6448	// values are omitted from API requests. However, any field with an
6449	// empty value appearing in NullFields will be sent to the server as
6450	// null. It is an error if a field in this list has a non-empty value.
6451	// This may be used to include null fields in Patch requests.
6452	NullFields []string `json:"-"`
6453}
6454
6455func (s *Table) MarshalJSON() ([]byte, error) {
6456	type NoMethod Table
6457	raw := NoMethod(*s)
6458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6459}
6460
6461type TableCell struct {
6462	V interface{} `json:"v,omitempty"`
6463
6464	// ForceSendFields is a list of field names (e.g. "V") to
6465	// unconditionally include in API requests. By default, fields with
6466	// empty values are omitted from API requests. However, any non-pointer,
6467	// non-interface field appearing in ForceSendFields will be sent to the
6468	// server regardless of whether the field is empty or not. This may be
6469	// used to include empty fields in Patch requests.
6470	ForceSendFields []string `json:"-"`
6471
6472	// NullFields is a list of field names (e.g. "V") to include in API
6473	// requests with the JSON null value. By default, fields with empty
6474	// values are omitted from API requests. However, any field with an
6475	// empty value appearing in NullFields will be sent to the server as
6476	// null. It is an error if a field in this list has a non-empty value.
6477	// This may be used to include null fields in Patch requests.
6478	NullFields []string `json:"-"`
6479}
6480
6481func (s *TableCell) MarshalJSON() ([]byte, error) {
6482	type NoMethod TableCell
6483	raw := NoMethod(*s)
6484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6485}
6486
6487type TableDataInsertAllRequest struct {
6488	// IgnoreUnknownValues: [Optional] Accept rows that contain values that
6489	// do not match the schema. The unknown values are ignored. Default is
6490	// false, which treats unknown values as errors.
6491	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
6492
6493	// Kind: The resource type of the response.
6494	Kind string `json:"kind,omitempty"`
6495
6496	// Rows: The rows to insert.
6497	Rows []*TableDataInsertAllRequestRows `json:"rows,omitempty"`
6498
6499	// SkipInvalidRows: [Optional] Insert all valid rows of a request, even
6500	// if invalid rows exist. The default value is false, which causes the
6501	// entire request to fail if any invalid rows exist.
6502	SkipInvalidRows bool `json:"skipInvalidRows,omitempty"`
6503
6504	// TemplateSuffix: If specified, treats the destination table as a base
6505	// template, and inserts the rows into an instance table named
6506	// "{destination}{templateSuffix}". BigQuery will manage creation of the
6507	// instance table, using the schema of the base template table. See
6508	// https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates
6509	// tables.
6510	TemplateSuffix string `json:"templateSuffix,omitempty"`
6511
6512	// ForceSendFields is a list of field names (e.g. "IgnoreUnknownValues")
6513	// to unconditionally include in API requests. By default, fields with
6514	// empty values are omitted from API requests. However, any non-pointer,
6515	// non-interface field appearing in ForceSendFields will be sent to the
6516	// server regardless of whether the field is empty or not. This may be
6517	// used to include empty fields in Patch requests.
6518	ForceSendFields []string `json:"-"`
6519
6520	// NullFields is a list of field names (e.g. "IgnoreUnknownValues") to
6521	// include in API requests with the JSON null value. By default, fields
6522	// with empty values are omitted from API requests. However, any field
6523	// with an empty value appearing in NullFields will be sent to the
6524	// server as null. It is an error if a field in this list has a
6525	// non-empty value. This may be used to include null fields in Patch
6526	// requests.
6527	NullFields []string `json:"-"`
6528}
6529
6530func (s *TableDataInsertAllRequest) MarshalJSON() ([]byte, error) {
6531	type NoMethod TableDataInsertAllRequest
6532	raw := NoMethod(*s)
6533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6534}
6535
6536type TableDataInsertAllRequestRows struct {
6537	// InsertId: [Optional] A unique ID for each row. BigQuery uses this
6538	// property to detect duplicate insertion requests on a best-effort
6539	// basis.
6540	InsertId string `json:"insertId,omitempty"`
6541
6542	// Json: [Required] A JSON object that contains a row of data. The
6543	// object's properties and values must match the destination table's
6544	// schema.
6545	Json map[string]JsonValue `json:"json,omitempty"`
6546
6547	// ForceSendFields is a list of field names (e.g. "InsertId") to
6548	// unconditionally include in API requests. By default, fields with
6549	// empty values are omitted from API requests. However, any non-pointer,
6550	// non-interface field appearing in ForceSendFields will be sent to the
6551	// server regardless of whether the field is empty or not. This may be
6552	// used to include empty fields in Patch requests.
6553	ForceSendFields []string `json:"-"`
6554
6555	// NullFields is a list of field names (e.g. "InsertId") to include in
6556	// API requests with the JSON null value. By default, fields with empty
6557	// values are omitted from API requests. However, any field with an
6558	// empty value appearing in NullFields will be sent to the server as
6559	// null. It is an error if a field in this list has a non-empty value.
6560	// This may be used to include null fields in Patch requests.
6561	NullFields []string `json:"-"`
6562}
6563
6564func (s *TableDataInsertAllRequestRows) MarshalJSON() ([]byte, error) {
6565	type NoMethod TableDataInsertAllRequestRows
6566	raw := NoMethod(*s)
6567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6568}
6569
6570type TableDataInsertAllResponse struct {
6571	// InsertErrors: An array of errors for rows that were not inserted.
6572	InsertErrors []*TableDataInsertAllResponseInsertErrors `json:"insertErrors,omitempty"`
6573
6574	// Kind: The resource type of the response.
6575	Kind string `json:"kind,omitempty"`
6576
6577	// ServerResponse contains the HTTP response code and headers from the
6578	// server.
6579	googleapi.ServerResponse `json:"-"`
6580
6581	// ForceSendFields is a list of field names (e.g. "InsertErrors") to
6582	// unconditionally include in API requests. By default, fields with
6583	// empty values are omitted from API requests. However, any non-pointer,
6584	// non-interface field appearing in ForceSendFields will be sent to the
6585	// server regardless of whether the field is empty or not. This may be
6586	// used to include empty fields in Patch requests.
6587	ForceSendFields []string `json:"-"`
6588
6589	// NullFields is a list of field names (e.g. "InsertErrors") to include
6590	// in API requests with the JSON null value. By default, fields with
6591	// empty values are omitted from API requests. However, any field with
6592	// an empty value appearing in NullFields will be sent to the server as
6593	// null. It is an error if a field in this list has a non-empty value.
6594	// This may be used to include null fields in Patch requests.
6595	NullFields []string `json:"-"`
6596}
6597
6598func (s *TableDataInsertAllResponse) MarshalJSON() ([]byte, error) {
6599	type NoMethod TableDataInsertAllResponse
6600	raw := NoMethod(*s)
6601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6602}
6603
6604type TableDataInsertAllResponseInsertErrors struct {
6605	// Errors: Error information for the row indicated by the index
6606	// property.
6607	Errors []*ErrorProto `json:"errors,omitempty"`
6608
6609	// Index: The index of the row that error applies to.
6610	Index int64 `json:"index,omitempty"`
6611
6612	// ForceSendFields is a list of field names (e.g. "Errors") to
6613	// unconditionally include in API requests. By default, fields with
6614	// empty values are omitted from API requests. However, any non-pointer,
6615	// non-interface field appearing in ForceSendFields will be sent to the
6616	// server regardless of whether the field is empty or not. This may be
6617	// used to include empty fields in Patch requests.
6618	ForceSendFields []string `json:"-"`
6619
6620	// NullFields is a list of field names (e.g. "Errors") to include in API
6621	// requests with the JSON null value. By default, fields with empty
6622	// values are omitted from API requests. However, any field with an
6623	// empty value appearing in NullFields will be sent to the server as
6624	// null. It is an error if a field in this list has a non-empty value.
6625	// This may be used to include null fields in Patch requests.
6626	NullFields []string `json:"-"`
6627}
6628
6629func (s *TableDataInsertAllResponseInsertErrors) MarshalJSON() ([]byte, error) {
6630	type NoMethod TableDataInsertAllResponseInsertErrors
6631	raw := NoMethod(*s)
6632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6633}
6634
6635type TableDataList struct {
6636	// Etag: A hash of this page of results.
6637	Etag string `json:"etag,omitempty"`
6638
6639	// Kind: The resource type of the response.
6640	Kind string `json:"kind,omitempty"`
6641
6642	// PageToken: A token used for paging results. Providing this token
6643	// instead of the startIndex parameter can help you retrieve stable
6644	// results when an underlying table is changing.
6645	PageToken string `json:"pageToken,omitempty"`
6646
6647	// Rows: Rows of results.
6648	Rows []*TableRow `json:"rows,omitempty"`
6649
6650	// TotalRows: The total number of rows in the complete table.
6651	TotalRows int64 `json:"totalRows,omitempty,string"`
6652
6653	// ServerResponse contains the HTTP response code and headers from the
6654	// server.
6655	googleapi.ServerResponse `json:"-"`
6656
6657	// ForceSendFields is a list of field names (e.g. "Etag") to
6658	// unconditionally include in API requests. By default, fields with
6659	// empty values are omitted from API requests. However, any non-pointer,
6660	// non-interface field appearing in ForceSendFields will be sent to the
6661	// server regardless of whether the field is empty or not. This may be
6662	// used to include empty fields in Patch requests.
6663	ForceSendFields []string `json:"-"`
6664
6665	// NullFields is a list of field names (e.g. "Etag") to include in API
6666	// requests with the JSON null value. By default, fields with empty
6667	// values are omitted from API requests. However, any field with an
6668	// empty value appearing in NullFields will be sent to the server as
6669	// null. It is an error if a field in this list has a non-empty value.
6670	// This may be used to include null fields in Patch requests.
6671	NullFields []string `json:"-"`
6672}
6673
6674func (s *TableDataList) MarshalJSON() ([]byte, error) {
6675	type NoMethod TableDataList
6676	raw := NoMethod(*s)
6677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6678}
6679
6680type TableFieldSchema struct {
6681	// Categories: [Optional] The categories attached to this field, used
6682	// for field-level access control.
6683	Categories *TableFieldSchemaCategories `json:"categories,omitempty"`
6684
6685	// Description: [Optional] The field description. The maximum length is
6686	// 1,024 characters.
6687	Description string `json:"description,omitempty"`
6688
6689	// Fields: [Optional] Describes the nested schema fields if the type
6690	// property is set to RECORD.
6691	Fields []*TableFieldSchema `json:"fields,omitempty"`
6692
6693	// Mode: [Optional] The field mode. Possible values include NULLABLE,
6694	// REQUIRED and REPEATED. The default value is NULLABLE.
6695	Mode string `json:"mode,omitempty"`
6696
6697	// Name: [Required] The field name. The name must contain only letters
6698	// (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a
6699	// letter or underscore. The maximum length is 128 characters.
6700	Name string `json:"name,omitempty"`
6701
6702	PolicyTags *TableFieldSchemaPolicyTags `json:"policyTags,omitempty"`
6703
6704	// Type: [Required] The field data type. Possible values include STRING,
6705	// BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as
6706	// FLOAT), BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME,
6707	// DATETIME, RECORD (where RECORD indicates that the field contains a
6708	// nested schema) or STRUCT (same as RECORD).
6709	Type string `json:"type,omitempty"`
6710
6711	// ForceSendFields is a list of field names (e.g. "Categories") to
6712	// unconditionally include in API requests. By default, fields with
6713	// empty values are omitted from API requests. However, any non-pointer,
6714	// non-interface field appearing in ForceSendFields will be sent to the
6715	// server regardless of whether the field is empty or not. This may be
6716	// used to include empty fields in Patch requests.
6717	ForceSendFields []string `json:"-"`
6718
6719	// NullFields is a list of field names (e.g. "Categories") to include in
6720	// API requests with the JSON null value. By default, fields with empty
6721	// values are omitted from API requests. However, any field with an
6722	// empty value appearing in NullFields will be sent to the server as
6723	// null. It is an error if a field in this list has a non-empty value.
6724	// This may be used to include null fields in Patch requests.
6725	NullFields []string `json:"-"`
6726}
6727
6728func (s *TableFieldSchema) MarshalJSON() ([]byte, error) {
6729	type NoMethod TableFieldSchema
6730	raw := NoMethod(*s)
6731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6732}
6733
6734// TableFieldSchemaCategories: [Optional] The categories attached to
6735// this field, used for field-level access control.
6736type TableFieldSchemaCategories struct {
6737	// Names: A list of category resource names. For example,
6738	// "projects/1/taxonomies/2/categories/3". At most 5 categories are
6739	// allowed.
6740	Names []string `json:"names,omitempty"`
6741
6742	// ForceSendFields is a list of field names (e.g. "Names") to
6743	// unconditionally include in API requests. By default, fields with
6744	// empty values are omitted from API requests. However, any non-pointer,
6745	// non-interface field appearing in ForceSendFields will be sent to the
6746	// server regardless of whether the field is empty or not. This may be
6747	// used to include empty fields in Patch requests.
6748	ForceSendFields []string `json:"-"`
6749
6750	// NullFields is a list of field names (e.g. "Names") to include in API
6751	// requests with the JSON null value. By default, fields with empty
6752	// values are omitted from API requests. However, any field with an
6753	// empty value appearing in NullFields will be sent to the server as
6754	// null. It is an error if a field in this list has a non-empty value.
6755	// This may be used to include null fields in Patch requests.
6756	NullFields []string `json:"-"`
6757}
6758
6759func (s *TableFieldSchemaCategories) MarshalJSON() ([]byte, error) {
6760	type NoMethod TableFieldSchemaCategories
6761	raw := NoMethod(*s)
6762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6763}
6764
6765type TableFieldSchemaPolicyTags struct {
6766	// Names: A list of category resource names. For example,
6767	// "projects/1/location/eu/taxonomies/2/policyTags/3". At most 1 policy
6768	// tag is allowed.
6769	Names []string `json:"names,omitempty"`
6770
6771	// ForceSendFields is a list of field names (e.g. "Names") to
6772	// unconditionally include in API requests. By default, fields with
6773	// empty values are omitted from API requests. However, any non-pointer,
6774	// non-interface field appearing in ForceSendFields will be sent to the
6775	// server regardless of whether the field is empty or not. This may be
6776	// used to include empty fields in Patch requests.
6777	ForceSendFields []string `json:"-"`
6778
6779	// NullFields is a list of field names (e.g. "Names") to include in API
6780	// requests with the JSON null value. By default, fields with empty
6781	// values are omitted from API requests. However, any field with an
6782	// empty value appearing in NullFields will be sent to the server as
6783	// null. It is an error if a field in this list has a non-empty value.
6784	// This may be used to include null fields in Patch requests.
6785	NullFields []string `json:"-"`
6786}
6787
6788func (s *TableFieldSchemaPolicyTags) MarshalJSON() ([]byte, error) {
6789	type NoMethod TableFieldSchemaPolicyTags
6790	raw := NoMethod(*s)
6791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6792}
6793
6794type TableList struct {
6795	// Etag: A hash of this page of results.
6796	Etag string `json:"etag,omitempty"`
6797
6798	// Kind: The type of list.
6799	Kind string `json:"kind,omitempty"`
6800
6801	// NextPageToken: A token to request the next page of results.
6802	NextPageToken string `json:"nextPageToken,omitempty"`
6803
6804	// Tables: Tables in the requested dataset.
6805	Tables []*TableListTables `json:"tables,omitempty"`
6806
6807	// TotalItems: The total number of tables in the dataset.
6808	TotalItems int64 `json:"totalItems,omitempty"`
6809
6810	// ServerResponse contains the HTTP response code and headers from the
6811	// server.
6812	googleapi.ServerResponse `json:"-"`
6813
6814	// ForceSendFields is a list of field names (e.g. "Etag") to
6815	// unconditionally include in API requests. By default, fields with
6816	// empty values are omitted from API requests. However, any non-pointer,
6817	// non-interface field appearing in ForceSendFields will be sent to the
6818	// server regardless of whether the field is empty or not. This may be
6819	// used to include empty fields in Patch requests.
6820	ForceSendFields []string `json:"-"`
6821
6822	// NullFields is a list of field names (e.g. "Etag") to include in API
6823	// requests with the JSON null value. By default, fields with empty
6824	// values are omitted from API requests. However, any field with an
6825	// empty value appearing in NullFields will be sent to the server as
6826	// null. It is an error if a field in this list has a non-empty value.
6827	// This may be used to include null fields in Patch requests.
6828	NullFields []string `json:"-"`
6829}
6830
6831func (s *TableList) MarshalJSON() ([]byte, error) {
6832	type NoMethod TableList
6833	raw := NoMethod(*s)
6834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6835}
6836
6837type TableListTables struct {
6838	// Clustering: [Beta] Clustering specification for this table, if
6839	// configured.
6840	Clustering *Clustering `json:"clustering,omitempty"`
6841
6842	// CreationTime: The time when this table was created, in milliseconds
6843	// since the epoch.
6844	CreationTime int64 `json:"creationTime,omitempty,string"`
6845
6846	// ExpirationTime: [Optional] The time when this table expires, in
6847	// milliseconds since the epoch. If not present, the table will persist
6848	// indefinitely. Expired tables will be deleted and their storage
6849	// reclaimed.
6850	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
6851
6852	// FriendlyName: The user-friendly name for this table.
6853	FriendlyName string `json:"friendlyName,omitempty"`
6854
6855	// Id: An opaque ID of the table
6856	Id string `json:"id,omitempty"`
6857
6858	// Kind: The resource type.
6859	Kind string `json:"kind,omitempty"`
6860
6861	// Labels: The labels associated with this table. You can use these to
6862	// organize and group your tables.
6863	Labels map[string]string `json:"labels,omitempty"`
6864
6865	// RangePartitioning: The range partitioning specification for this
6866	// table, if configured.
6867	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
6868
6869	// TableReference: A reference uniquely identifying the table.
6870	TableReference *TableReference `json:"tableReference,omitempty"`
6871
6872	// TimePartitioning: The time-based partitioning specification for this
6873	// table, if configured.
6874	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
6875
6876	// Type: The type of table. Possible values are: TABLE, VIEW.
6877	Type string `json:"type,omitempty"`
6878
6879	// View: Additional details for a view.
6880	View *TableListTablesView `json:"view,omitempty"`
6881
6882	// ForceSendFields is a list of field names (e.g. "Clustering") to
6883	// unconditionally include in API requests. By default, fields with
6884	// empty values are omitted from API requests. However, any non-pointer,
6885	// non-interface field appearing in ForceSendFields will be sent to the
6886	// server regardless of whether the field is empty or not. This may be
6887	// used to include empty fields in Patch requests.
6888	ForceSendFields []string `json:"-"`
6889
6890	// NullFields is a list of field names (e.g. "Clustering") to include in
6891	// API requests with the JSON null value. By default, fields with empty
6892	// values are omitted from API requests. However, any field with an
6893	// empty value appearing in NullFields will be sent to the server as
6894	// null. It is an error if a field in this list has a non-empty value.
6895	// This may be used to include null fields in Patch requests.
6896	NullFields []string `json:"-"`
6897}
6898
6899func (s *TableListTables) MarshalJSON() ([]byte, error) {
6900	type NoMethod TableListTables
6901	raw := NoMethod(*s)
6902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6903}
6904
6905// TableListTablesView: Additional details for a view.
6906type TableListTablesView struct {
6907	// UseLegacySql: True if view is defined in legacy SQL dialect, false if
6908	// in standard SQL.
6909	UseLegacySql bool `json:"useLegacySql,omitempty"`
6910
6911	// ForceSendFields is a list of field names (e.g. "UseLegacySql") to
6912	// unconditionally include in API requests. By default, fields with
6913	// empty values are omitted from API requests. However, any non-pointer,
6914	// non-interface field appearing in ForceSendFields will be sent to the
6915	// server regardless of whether the field is empty or not. This may be
6916	// used to include empty fields in Patch requests.
6917	ForceSendFields []string `json:"-"`
6918
6919	// NullFields is a list of field names (e.g. "UseLegacySql") to include
6920	// in API requests with the JSON null value. By default, fields with
6921	// empty values are omitted from API requests. However, any field with
6922	// an empty value appearing in NullFields will be sent to the server as
6923	// null. It is an error if a field in this list has a non-empty value.
6924	// This may be used to include null fields in Patch requests.
6925	NullFields []string `json:"-"`
6926}
6927
6928func (s *TableListTablesView) MarshalJSON() ([]byte, error) {
6929	type NoMethod TableListTablesView
6930	raw := NoMethod(*s)
6931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6932}
6933
6934type TableReference struct {
6935	// DatasetId: [Required] The ID of the dataset containing this table.
6936	DatasetId string `json:"datasetId,omitempty"`
6937
6938	// ProjectId: [Required] The ID of the project containing this table.
6939	ProjectId string `json:"projectId,omitempty"`
6940
6941	// TableId: [Required] The ID of the table. The ID must contain only
6942	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
6943	// length is 1,024 characters.
6944	TableId string `json:"tableId,omitempty"`
6945
6946	// ForceSendFields is a list of field names (e.g. "DatasetId") to
6947	// unconditionally include in API requests. By default, fields with
6948	// empty values are omitted from API requests. However, any non-pointer,
6949	// non-interface field appearing in ForceSendFields will be sent to the
6950	// server regardless of whether the field is empty or not. This may be
6951	// used to include empty fields in Patch requests.
6952	ForceSendFields []string `json:"-"`
6953
6954	// NullFields is a list of field names (e.g. "DatasetId") to include in
6955	// API requests with the JSON null value. By default, fields with empty
6956	// values are omitted from API requests. However, any field with an
6957	// empty value appearing in NullFields will be sent to the server as
6958	// null. It is an error if a field in this list has a non-empty value.
6959	// This may be used to include null fields in Patch requests.
6960	NullFields []string `json:"-"`
6961}
6962
6963func (s *TableReference) MarshalJSON() ([]byte, error) {
6964	type NoMethod TableReference
6965	raw := NoMethod(*s)
6966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6967}
6968
6969type TableRow struct {
6970	// F: Represents a single row in the result set, consisting of one or
6971	// more fields.
6972	F []*TableCell `json:"f,omitempty"`
6973
6974	// ForceSendFields is a list of field names (e.g. "F") to
6975	// unconditionally include in API requests. By default, fields with
6976	// empty values are omitted from API requests. However, any non-pointer,
6977	// non-interface field appearing in ForceSendFields will be sent to the
6978	// server regardless of whether the field is empty or not. This may be
6979	// used to include empty fields in Patch requests.
6980	ForceSendFields []string `json:"-"`
6981
6982	// NullFields is a list of field names (e.g. "F") to include in API
6983	// requests with the JSON null value. By default, fields with empty
6984	// values are omitted from API requests. However, any field with an
6985	// empty value appearing in NullFields will be sent to the server as
6986	// null. It is an error if a field in this list has a non-empty value.
6987	// This may be used to include null fields in Patch requests.
6988	NullFields []string `json:"-"`
6989}
6990
6991func (s *TableRow) MarshalJSON() ([]byte, error) {
6992	type NoMethod TableRow
6993	raw := NoMethod(*s)
6994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6995}
6996
6997type TableSchema struct {
6998	// Fields: Describes the fields in a table.
6999	Fields []*TableFieldSchema `json:"fields,omitempty"`
7000
7001	// ForceSendFields is a list of field names (e.g. "Fields") to
7002	// unconditionally include in API requests. By default, fields with
7003	// empty values are omitted from API requests. However, any non-pointer,
7004	// non-interface field appearing in ForceSendFields will be sent to the
7005	// server regardless of whether the field is empty or not. This may be
7006	// used to include empty fields in Patch requests.
7007	ForceSendFields []string `json:"-"`
7008
7009	// NullFields is a list of field names (e.g. "Fields") to include in API
7010	// requests with the JSON null value. By default, fields with empty
7011	// values are omitted from API requests. However, any field with an
7012	// empty value appearing in NullFields will be sent to the server as
7013	// null. It is an error if a field in this list has a non-empty value.
7014	// This may be used to include null fields in Patch requests.
7015	NullFields []string `json:"-"`
7016}
7017
7018func (s *TableSchema) MarshalJSON() ([]byte, error) {
7019	type NoMethod TableSchema
7020	raw := NoMethod(*s)
7021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7022}
7023
7024// TestIamPermissionsRequest: Request message for `TestIamPermissions`
7025// method.
7026type TestIamPermissionsRequest struct {
7027	// Permissions: The set of permissions to check for the `resource`.
7028	// Permissions with wildcards (such as '*' or 'storage.*') are not
7029	// allowed. For more information see [IAM
7030	// Overview](https://cloud.google.com/iam/docs/overview#permissions).
7031	Permissions []string `json:"permissions,omitempty"`
7032
7033	// ForceSendFields is a list of field names (e.g. "Permissions") to
7034	// unconditionally include in API requests. By default, fields with
7035	// empty values are omitted from API requests. However, any non-pointer,
7036	// non-interface field appearing in ForceSendFields will be sent to the
7037	// server regardless of whether the field is empty or not. This may be
7038	// used to include empty fields in Patch requests.
7039	ForceSendFields []string `json:"-"`
7040
7041	// NullFields is a list of field names (e.g. "Permissions") to include
7042	// in API requests with the JSON null value. By default, fields with
7043	// empty values are omitted from API requests. However, any field with
7044	// an empty value appearing in NullFields will be sent to the server as
7045	// null. It is an error if a field in this list has a non-empty value.
7046	// This may be used to include null fields in Patch requests.
7047	NullFields []string `json:"-"`
7048}
7049
7050func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
7051	type NoMethod TestIamPermissionsRequest
7052	raw := NoMethod(*s)
7053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7054}
7055
7056// TestIamPermissionsResponse: Response message for `TestIamPermissions`
7057// method.
7058type TestIamPermissionsResponse struct {
7059	// Permissions: A subset of `TestPermissionsRequest.permissions` that
7060	// the caller is allowed.
7061	Permissions []string `json:"permissions,omitempty"`
7062
7063	// ServerResponse contains the HTTP response code and headers from the
7064	// server.
7065	googleapi.ServerResponse `json:"-"`
7066
7067	// ForceSendFields is a list of field names (e.g. "Permissions") to
7068	// unconditionally include in API requests. By default, fields with
7069	// empty values are omitted from API requests. However, any non-pointer,
7070	// non-interface field appearing in ForceSendFields will be sent to the
7071	// server regardless of whether the field is empty or not. This may be
7072	// used to include empty fields in Patch requests.
7073	ForceSendFields []string `json:"-"`
7074
7075	// NullFields is a list of field names (e.g. "Permissions") to include
7076	// in API requests with the JSON null value. By default, fields with
7077	// empty values are omitted from API requests. However, any field with
7078	// an empty value appearing in NullFields will be sent to the server as
7079	// null. It is an error if a field in this list has a non-empty value.
7080	// This may be used to include null fields in Patch requests.
7081	NullFields []string `json:"-"`
7082}
7083
7084func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
7085	type NoMethod TestIamPermissionsResponse
7086	raw := NoMethod(*s)
7087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7088}
7089
7090type TimePartitioning struct {
7091	// ExpirationMs: [Optional] Number of milliseconds for which to keep the
7092	// storage for partitions in the table. The storage in a partition will
7093	// have an expiration time of its partition time plus this value.
7094	ExpirationMs int64 `json:"expirationMs,omitempty,string"`
7095
7096	// Field: [Beta] [Optional] If not set, the table is partitioned by
7097	// pseudo column, referenced via either '_PARTITIONTIME' as TIMESTAMP
7098	// type, or '_PARTITIONDATE' as DATE type. If field is specified, the
7099	// table is instead partitioned by this field. The field must be a
7100	// top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or
7101	// REQUIRED.
7102	Field string `json:"field,omitempty"`
7103
7104	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
7105
7106	// Type: [Required] The supported types are DAY, HOUR, MONTH, and YEAR,
7107	// which will generate one partition per day, hour, month, and year,
7108	// respectively. When the type is not specified, the default behavior is
7109	// DAY.
7110	Type string `json:"type,omitempty"`
7111
7112	// ForceSendFields is a list of field names (e.g. "ExpirationMs") to
7113	// unconditionally include in API requests. By default, fields with
7114	// empty values are omitted from API requests. However, any non-pointer,
7115	// non-interface field appearing in ForceSendFields will be sent to the
7116	// server regardless of whether the field is empty or not. This may be
7117	// used to include empty fields in Patch requests.
7118	ForceSendFields []string `json:"-"`
7119
7120	// NullFields is a list of field names (e.g. "ExpirationMs") to include
7121	// in API requests with the JSON null value. By default, fields with
7122	// empty values are omitted from API requests. However, any field with
7123	// an empty value appearing in NullFields will be sent to the server as
7124	// null. It is an error if a field in this list has a non-empty value.
7125	// This may be used to include null fields in Patch requests.
7126	NullFields []string `json:"-"`
7127}
7128
7129func (s *TimePartitioning) MarshalJSON() ([]byte, error) {
7130	type NoMethod TimePartitioning
7131	raw := NoMethod(*s)
7132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7133}
7134
7135type TrainingOptions struct {
7136	// AutoArima: Whether to enable auto ARIMA or not.
7137	AutoArima bool `json:"autoArima,omitempty"`
7138
7139	// AutoArimaMaxOrder: The max value of non-seasonal p and q.
7140	AutoArimaMaxOrder int64 `json:"autoArimaMaxOrder,omitempty,string"`
7141
7142	// BatchSize: Batch size for dnn models.
7143	BatchSize int64 `json:"batchSize,omitempty,string"`
7144
7145	// DataFrequency: The data frequency of a time series.
7146	//
7147	// Possible values:
7148	//   "DATA_FREQUENCY_UNSPECIFIED"
7149	//   "AUTO_FREQUENCY" - Automatically inferred from timestamps.
7150	//   "YEARLY" - Yearly data.
7151	//   "QUARTERLY" - Quarterly data.
7152	//   "MONTHLY" - Monthly data.
7153	//   "WEEKLY" - Weekly data.
7154	//   "DAILY" - Daily data.
7155	//   "HOURLY" - Hourly data.
7156	DataFrequency string `json:"dataFrequency,omitempty"`
7157
7158	// DataSplitColumn: The column to split data with. This column won't be
7159	// used as a feature. 1. When data_split_method is CUSTOM, the
7160	// corresponding column should be boolean. The rows with true value tag
7161	// are eval data, and the false are training data. 2. When
7162	// data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows
7163	// (from smallest to largest) in the corresponding column are used as
7164	// training data, and the rest are eval data. It respects the order in
7165	// Orderable data types:
7166	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
7167	DataSplitColumn string `json:"dataSplitColumn,omitempty"`
7168
7169	// DataSplitEvalFraction: The fraction of evaluation data over the whole
7170	// input data. The rest of data will be used as training data. The
7171	// format should be double. Accurate to two decimal places. Default
7172	// value is 0.2.
7173	DataSplitEvalFraction float64 `json:"dataSplitEvalFraction,omitempty"`
7174
7175	// DataSplitMethod: The data split type for training and evaluation,
7176	// e.g. RANDOM.
7177	//
7178	// Possible values:
7179	//   "DATA_SPLIT_METHOD_UNSPECIFIED"
7180	//   "RANDOM" - Splits data randomly.
7181	//   "CUSTOM" - Splits data with the user provided tags.
7182	//   "SEQUENTIAL" - Splits data sequentially.
7183	//   "NO_SPLIT" - Data split will be skipped.
7184	//   "AUTO_SPLIT" - Splits data automatically: Uses NO_SPLIT if the data
7185	// size is small. Otherwise uses RANDOM.
7186	DataSplitMethod string `json:"dataSplitMethod,omitempty"`
7187
7188	// DistanceType: Distance type for clustering models.
7189	//
7190	// Possible values:
7191	//   "DISTANCE_TYPE_UNSPECIFIED"
7192	//   "EUCLIDEAN" - Eculidean distance.
7193	//   "COSINE" - Cosine distance.
7194	DistanceType string `json:"distanceType,omitempty"`
7195
7196	// Dropout: Dropout probability for dnn models.
7197	Dropout float64 `json:"dropout,omitempty"`
7198
7199	// EarlyStop: Whether to stop early when the loss doesn't improve
7200	// significantly any more (compared to min_relative_progress). Used only
7201	// for iterative training algorithms.
7202	EarlyStop bool `json:"earlyStop,omitempty"`
7203
7204	// FeedbackType: Feedback type that specifies which algorithm to run for
7205	// matrix factorization.
7206	//
7207	// Possible values:
7208	//   "FEEDBACK_TYPE_UNSPECIFIED"
7209	//   "IMPLICIT" - Use weighted-als for implicit feedback problems.
7210	//   "EXPLICIT" - Use nonweighted-als for explicit feedback problems.
7211	FeedbackType string `json:"feedbackType,omitempty"`
7212
7213	// HiddenUnits: Hidden units for dnn models.
7214	HiddenUnits googleapi.Int64s `json:"hiddenUnits,omitempty"`
7215
7216	// HolidayRegion: The geographical region based on which the holidays
7217	// are considered in time series modeling. If a valid value is
7218	// specified, then holiday effects modeling is enabled.
7219	//
7220	// Possible values:
7221	//   "HOLIDAY_REGION_UNSPECIFIED" - Holiday region unspecified.
7222	//   "GLOBAL" - Global.
7223	//   "NA" - North America.
7224	//   "JAPAC" - Japan and Asia Pacific: Korea, Greater China, India,
7225	// Australia, and New Zealand.
7226	//   "EMEA" - Europe, the Middle East and Africa.
7227	//   "LAC" - Latin America and the Caribbean.
7228	//   "AE" - United Arab Emirates
7229	//   "AR" - Argentina
7230	//   "AT" - Austria
7231	//   "AU" - Australia
7232	//   "BE" - Belgium
7233	//   "BR" - Brazil
7234	//   "CA" - Canada
7235	//   "CH" - Switzerland
7236	//   "CL" - Chile
7237	//   "CN" - China
7238	//   "CO" - Colombia
7239	//   "CS" - Czechoslovakia
7240	//   "CZ" - Czech Republic
7241	//   "DE" - Germany
7242	//   "DK" - Denmark
7243	//   "DZ" - Algeria
7244	//   "EC" - Ecuador
7245	//   "EE" - Estonia
7246	//   "EG" - Egypt
7247	//   "ES" - Spain
7248	//   "FI" - Finland
7249	//   "FR" - France
7250	//   "GB" - Great Britain (United Kingdom)
7251	//   "GR" - Greece
7252	//   "HK" - Hong Kong
7253	//   "HU" - Hungary
7254	//   "ID" - Indonesia
7255	//   "IE" - Ireland
7256	//   "IL" - Israel
7257	//   "IN" - India
7258	//   "IR" - Iran
7259	//   "IT" - Italy
7260	//   "JP" - Japan
7261	//   "KR" - Korea (South)
7262	//   "LV" - Latvia
7263	//   "MA" - Morocco
7264	//   "MX" - Mexico
7265	//   "MY" - Malaysia
7266	//   "NG" - Nigeria
7267	//   "NL" - Netherlands
7268	//   "NO" - Norway
7269	//   "NZ" - New Zealand
7270	//   "PE" - Peru
7271	//   "PH" - Philippines
7272	//   "PK" - Pakistan
7273	//   "PL" - Poland
7274	//   "PT" - Portugal
7275	//   "RO" - Romania
7276	//   "RS" - Serbia
7277	//   "RU" - Russian Federation
7278	//   "SA" - Saudi Arabia
7279	//   "SE" - Sweden
7280	//   "SG" - Singapore
7281	//   "SI" - Slovenia
7282	//   "SK" - Slovakia
7283	//   "TH" - Thailand
7284	//   "TR" - Turkey
7285	//   "TW" - Taiwan
7286	//   "UA" - Ukraine
7287	//   "US" - United States
7288	//   "VE" - Venezuela
7289	//   "VN" - Viet Nam
7290	//   "ZA" - South Africa
7291	HolidayRegion string `json:"holidayRegion,omitempty"`
7292
7293	// Horizon: The number of periods ahead that need to be forecasted.
7294	Horizon int64 `json:"horizon,omitempty,string"`
7295
7296	// IncludeDrift: Include drift when fitting an ARIMA model.
7297	IncludeDrift bool `json:"includeDrift,omitempty"`
7298
7299	// InitialLearnRate: Specifies the initial learning rate for the line
7300	// search learn rate strategy.
7301	InitialLearnRate float64 `json:"initialLearnRate,omitempty"`
7302
7303	// InputLabelColumns: Name of input label columns in training data.
7304	InputLabelColumns []string `json:"inputLabelColumns,omitempty"`
7305
7306	// ItemColumn: Item column specified for matrix factorization models.
7307	ItemColumn string `json:"itemColumn,omitempty"`
7308
7309	// KmeansInitializationColumn: The column used to provide the initial
7310	// centroids for kmeans algorithm when kmeans_initialization_method is
7311	// CUSTOM.
7312	KmeansInitializationColumn string `json:"kmeansInitializationColumn,omitempty"`
7313
7314	// KmeansInitializationMethod: The method used to initialize the
7315	// centroids for kmeans algorithm.
7316	//
7317	// Possible values:
7318	//   "KMEANS_INITIALIZATION_METHOD_UNSPECIFIED"
7319	//   "RANDOM" - Initializes the centroids randomly.
7320	//   "CUSTOM" - Initializes the centroids using data specified in
7321	// kmeans_initialization_column.
7322	//   "KMEANS_PLUS_PLUS" - Initializes with kmeans++.
7323	KmeansInitializationMethod string `json:"kmeansInitializationMethod,omitempty"`
7324
7325	// L1Regularization: L1 regularization coefficient.
7326	L1Regularization float64 `json:"l1Regularization,omitempty"`
7327
7328	// L2Regularization: L2 regularization coefficient.
7329	L2Regularization float64 `json:"l2Regularization,omitempty"`
7330
7331	// LabelClassWeights: Weights associated with each label class, for
7332	// rebalancing the training data. Only applicable for classification
7333	// models.
7334	LabelClassWeights map[string]float64 `json:"labelClassWeights,omitempty"`
7335
7336	// LearnRate: Learning rate in training. Used only for iterative
7337	// training algorithms.
7338	LearnRate float64 `json:"learnRate,omitempty"`
7339
7340	// LearnRateStrategy: The strategy to determine learn rate for the
7341	// current iteration.
7342	//
7343	// Possible values:
7344	//   "LEARN_RATE_STRATEGY_UNSPECIFIED"
7345	//   "LINE_SEARCH" - Use line search to determine learning rate.
7346	//   "CONSTANT" - Use a constant learning rate.
7347	LearnRateStrategy string `json:"learnRateStrategy,omitempty"`
7348
7349	// LossType: Type of loss function used during training run.
7350	//
7351	// Possible values:
7352	//   "LOSS_TYPE_UNSPECIFIED"
7353	//   "MEAN_SQUARED_LOSS" - Mean squared loss, used for linear
7354	// regression.
7355	//   "MEAN_LOG_LOSS" - Mean log loss, used for logistic regression.
7356	LossType string `json:"lossType,omitempty"`
7357
7358	// MaxIterations: The maximum number of iterations in training. Used
7359	// only for iterative training algorithms.
7360	MaxIterations int64 `json:"maxIterations,omitempty,string"`
7361
7362	// MaxTreeDepth: Maximum depth of a tree for boosted tree models.
7363	MaxTreeDepth int64 `json:"maxTreeDepth,omitempty,string"`
7364
7365	// MinRelativeProgress: When early_stop is true, stops training when
7366	// accuracy improvement is less than 'min_relative_progress'. Used only
7367	// for iterative training algorithms.
7368	MinRelativeProgress float64 `json:"minRelativeProgress,omitempty"`
7369
7370	// MinSplitLoss: Minimum split loss for boosted tree models.
7371	MinSplitLoss float64 `json:"minSplitLoss,omitempty"`
7372
7373	// ModelUri: [Beta] Google Cloud Storage URI from which the model was
7374	// imported. Only applicable for imported models.
7375	ModelUri string `json:"modelUri,omitempty"`
7376
7377	// NonSeasonalOrder: A specification of the non-seasonal part of the
7378	// ARIMA model: the three components (p, d, q) are the AR order, the
7379	// degree of differencing, and the MA order.
7380	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
7381
7382	// NumClusters: Number of clusters for clustering models.
7383	NumClusters int64 `json:"numClusters,omitempty,string"`
7384
7385	// NumFactors: Num factors specified for matrix factorization models.
7386	NumFactors int64 `json:"numFactors,omitempty,string"`
7387
7388	// OptimizationStrategy: Optimization strategy for training linear
7389	// regression models.
7390	//
7391	// Possible values:
7392	//   "OPTIMIZATION_STRATEGY_UNSPECIFIED"
7393	//   "BATCH_GRADIENT_DESCENT" - Uses an iterative batch gradient descent
7394	// algorithm.
7395	//   "NORMAL_EQUATION" - Uses a normal equation to solve linear
7396	// regression problem.
7397	OptimizationStrategy string `json:"optimizationStrategy,omitempty"`
7398
7399	// PreserveInputStructs: Whether to preserve the input structs in output
7400	// feature names. Suppose there is a struct A with field b. When false
7401	// (default), the output feature name is A_b. When true, the output
7402	// feature name is A.b.
7403	PreserveInputStructs bool `json:"preserveInputStructs,omitempty"`
7404
7405	// Subsample: Subsample fraction of the training data to grow tree to
7406	// prevent overfitting for boosted tree models.
7407	Subsample float64 `json:"subsample,omitempty"`
7408
7409	// TimeSeriesDataColumn: Column to be designated as time series data for
7410	// ARIMA model.
7411	TimeSeriesDataColumn string `json:"timeSeriesDataColumn,omitempty"`
7412
7413	// TimeSeriesIdColumn: The id column that will be used to indicate
7414	// different time series to forecast in parallel.
7415	TimeSeriesIdColumn string `json:"timeSeriesIdColumn,omitempty"`
7416
7417	// TimeSeriesTimestampColumn: Column to be designated as time series
7418	// timestamp for ARIMA model.
7419	TimeSeriesTimestampColumn string `json:"timeSeriesTimestampColumn,omitempty"`
7420
7421	// UserColumn: User column specified for matrix factorization models.
7422	UserColumn string `json:"userColumn,omitempty"`
7423
7424	// WalsAlpha: Hyperparameter for matrix factoration when implicit
7425	// feedback type is specified.
7426	WalsAlpha float64 `json:"walsAlpha,omitempty"`
7427
7428	// WarmStart: Whether to train a model from the last checkpoint.
7429	WarmStart bool `json:"warmStart,omitempty"`
7430
7431	// ForceSendFields is a list of field names (e.g. "AutoArima") to
7432	// unconditionally include in API requests. By default, fields with
7433	// empty values are omitted from API requests. However, any non-pointer,
7434	// non-interface field appearing in ForceSendFields will be sent to the
7435	// server regardless of whether the field is empty or not. This may be
7436	// used to include empty fields in Patch requests.
7437	ForceSendFields []string `json:"-"`
7438
7439	// NullFields is a list of field names (e.g. "AutoArima") to include in
7440	// API requests with the JSON null value. By default, fields with empty
7441	// values are omitted from API requests. However, any field with an
7442	// empty value appearing in NullFields will be sent to the server as
7443	// null. It is an error if a field in this list has a non-empty value.
7444	// This may be used to include null fields in Patch requests.
7445	NullFields []string `json:"-"`
7446}
7447
7448func (s *TrainingOptions) MarshalJSON() ([]byte, error) {
7449	type NoMethod TrainingOptions
7450	raw := NoMethod(*s)
7451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7452}
7453
7454func (s *TrainingOptions) UnmarshalJSON(data []byte) error {
7455	type NoMethod TrainingOptions
7456	var s1 struct {
7457		DataSplitEvalFraction gensupport.JSONFloat64 `json:"dataSplitEvalFraction"`
7458		Dropout               gensupport.JSONFloat64 `json:"dropout"`
7459		InitialLearnRate      gensupport.JSONFloat64 `json:"initialLearnRate"`
7460		L1Regularization      gensupport.JSONFloat64 `json:"l1Regularization"`
7461		L2Regularization      gensupport.JSONFloat64 `json:"l2Regularization"`
7462		LearnRate             gensupport.JSONFloat64 `json:"learnRate"`
7463		MinRelativeProgress   gensupport.JSONFloat64 `json:"minRelativeProgress"`
7464		MinSplitLoss          gensupport.JSONFloat64 `json:"minSplitLoss"`
7465		Subsample             gensupport.JSONFloat64 `json:"subsample"`
7466		WalsAlpha             gensupport.JSONFloat64 `json:"walsAlpha"`
7467		*NoMethod
7468	}
7469	s1.NoMethod = (*NoMethod)(s)
7470	if err := json.Unmarshal(data, &s1); err != nil {
7471		return err
7472	}
7473	s.DataSplitEvalFraction = float64(s1.DataSplitEvalFraction)
7474	s.Dropout = float64(s1.Dropout)
7475	s.InitialLearnRate = float64(s1.InitialLearnRate)
7476	s.L1Regularization = float64(s1.L1Regularization)
7477	s.L2Regularization = float64(s1.L2Regularization)
7478	s.LearnRate = float64(s1.LearnRate)
7479	s.MinRelativeProgress = float64(s1.MinRelativeProgress)
7480	s.MinSplitLoss = float64(s1.MinSplitLoss)
7481	s.Subsample = float64(s1.Subsample)
7482	s.WalsAlpha = float64(s1.WalsAlpha)
7483	return nil
7484}
7485
7486// TrainingRun: Information about a single training query run for the
7487// model.
7488type TrainingRun struct {
7489	// DataSplitResult: Data split result of the training run. Only set when
7490	// the input data is actually split.
7491	DataSplitResult *DataSplitResult `json:"dataSplitResult,omitempty"`
7492
7493	// EvaluationMetrics: The evaluation metrics over training/eval data
7494	// that were computed at the end of training.
7495	EvaluationMetrics *EvaluationMetrics `json:"evaluationMetrics,omitempty"`
7496
7497	// GlobalExplanations: Global explanations for important features of the
7498	// model. For multi-class models, there is one entry for each label
7499	// class. For other models, there is only one entry in the list.
7500	GlobalExplanations []*GlobalExplanation `json:"globalExplanations,omitempty"`
7501
7502	// Results: Output of each iteration run, results.size() <=
7503	// max_iterations.
7504	Results []*IterationResult `json:"results,omitempty"`
7505
7506	// StartTime: The start time of this training run.
7507	StartTime string `json:"startTime,omitempty"`
7508
7509	// TrainingOptions: Options that were used for this training run,
7510	// includes user specified and default options that were used.
7511	TrainingOptions *TrainingOptions `json:"trainingOptions,omitempty"`
7512
7513	// ForceSendFields is a list of field names (e.g. "DataSplitResult") to
7514	// unconditionally include in API requests. By default, fields with
7515	// empty values are omitted from API requests. However, any non-pointer,
7516	// non-interface field appearing in ForceSendFields will be sent to the
7517	// server regardless of whether the field is empty or not. This may be
7518	// used to include empty fields in Patch requests.
7519	ForceSendFields []string `json:"-"`
7520
7521	// NullFields is a list of field names (e.g. "DataSplitResult") to
7522	// include in API requests with the JSON null value. By default, fields
7523	// with empty values are omitted from API requests. However, any field
7524	// with an empty value appearing in NullFields will be sent to the
7525	// server as null. It is an error if a field in this list has a
7526	// non-empty value. This may be used to include null fields in Patch
7527	// requests.
7528	NullFields []string `json:"-"`
7529}
7530
7531func (s *TrainingRun) MarshalJSON() ([]byte, error) {
7532	type NoMethod TrainingRun
7533	raw := NoMethod(*s)
7534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7535}
7536
7537type TransactionInfo struct {
7538	// TransactionId: [Output-only] // [Alpha] Id of the transaction.
7539	TransactionId string `json:"transactionId,omitempty"`
7540
7541	// ForceSendFields is a list of field names (e.g. "TransactionId") to
7542	// unconditionally include in API requests. By default, fields with
7543	// empty values are omitted from API requests. However, any non-pointer,
7544	// non-interface field appearing in ForceSendFields will be sent to the
7545	// server regardless of whether the field is empty or not. This may be
7546	// used to include empty fields in Patch requests.
7547	ForceSendFields []string `json:"-"`
7548
7549	// NullFields is a list of field names (e.g. "TransactionId") to include
7550	// in API requests with the JSON null value. By default, fields with
7551	// empty values are omitted from API requests. However, any field with
7552	// an empty value appearing in NullFields will be sent to the server as
7553	// null. It is an error if a field in this list has a non-empty value.
7554	// This may be used to include null fields in Patch requests.
7555	NullFields []string `json:"-"`
7556}
7557
7558func (s *TransactionInfo) MarshalJSON() ([]byte, error) {
7559	type NoMethod TransactionInfo
7560	raw := NoMethod(*s)
7561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7562}
7563
7564// UserDefinedFunctionResource: This is used for defining User Defined
7565// Function (UDF) resources only when using legacy SQL. Users of
7566// Standard SQL should leverage either DDL (e.g. CREATE [TEMPORARY]
7567// FUNCTION ... ) or the Routines API to define UDF resources. For
7568// additional information on migrating, see:
7569// https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions
7570type UserDefinedFunctionResource struct {
7571	// InlineCode: [Pick one] An inline resource that contains code for a
7572	// user-defined function (UDF). Providing a inline code resource is
7573	// equivalent to providing a URI for a file containing the same code.
7574	InlineCode string `json:"inlineCode,omitempty"`
7575
7576	// ResourceUri: [Pick one] A code resource to load from a Google Cloud
7577	// Storage URI (gs://bucket/path).
7578	ResourceUri string `json:"resourceUri,omitempty"`
7579
7580	// ForceSendFields is a list of field names (e.g. "InlineCode") to
7581	// unconditionally include in API requests. By default, fields with
7582	// empty values are omitted from API requests. However, any non-pointer,
7583	// non-interface field appearing in ForceSendFields will be sent to the
7584	// server regardless of whether the field is empty or not. This may be
7585	// used to include empty fields in Patch requests.
7586	ForceSendFields []string `json:"-"`
7587
7588	// NullFields is a list of field names (e.g. "InlineCode") to include in
7589	// API requests with the JSON null value. By default, fields with empty
7590	// values are omitted from API requests. However, any field with an
7591	// empty value appearing in NullFields will be sent to the server as
7592	// null. It is an error if a field in this list has a non-empty value.
7593	// This may be used to include null fields in Patch requests.
7594	NullFields []string `json:"-"`
7595}
7596
7597func (s *UserDefinedFunctionResource) MarshalJSON() ([]byte, error) {
7598	type NoMethod UserDefinedFunctionResource
7599	raw := NoMethod(*s)
7600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7601}
7602
7603type ViewDefinition struct {
7604	// Query: [Required] A query that BigQuery executes when the view is
7605	// referenced.
7606	Query string `json:"query,omitempty"`
7607
7608	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL for this
7609	// view. The default value is true. If set to false, the view will use
7610	// BigQuery's standard SQL:
7611	// https://cloud.google.com/bigquery/sql-reference/ Queries and views
7612	// that reference this view must use the same flag value.
7613	UseLegacySql bool `json:"useLegacySql,omitempty"`
7614
7615	// UserDefinedFunctionResources: Describes user-defined function
7616	// resources used in the query.
7617	UserDefinedFunctionResources []*UserDefinedFunctionResource `json:"userDefinedFunctionResources,omitempty"`
7618
7619	// ForceSendFields is a list of field names (e.g. "Query") to
7620	// unconditionally include in API requests. By default, fields with
7621	// empty values are omitted from API requests. However, any non-pointer,
7622	// non-interface field appearing in ForceSendFields will be sent to the
7623	// server regardless of whether the field is empty or not. This may be
7624	// used to include empty fields in Patch requests.
7625	ForceSendFields []string `json:"-"`
7626
7627	// NullFields is a list of field names (e.g. "Query") to include in API
7628	// requests with the JSON null value. By default, fields with empty
7629	// values are omitted from API requests. However, any field with an
7630	// empty value appearing in NullFields will be sent to the server as
7631	// null. It is an error if a field in this list has a non-empty value.
7632	// This may be used to include null fields in Patch requests.
7633	NullFields []string `json:"-"`
7634}
7635
7636func (s *ViewDefinition) MarshalJSON() ([]byte, error) {
7637	type NoMethod ViewDefinition
7638	raw := NoMethod(*s)
7639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7640}
7641
7642// method id "bigquery.datasets.delete":
7643
7644type DatasetsDeleteCall struct {
7645	s          *Service
7646	projectId  string
7647	datasetId  string
7648	urlParams_ gensupport.URLParams
7649	ctx_       context.Context
7650	header_    http.Header
7651}
7652
7653// Delete: Deletes the dataset specified by the datasetId value. Before
7654// you can delete a dataset, you must delete all its tables, either
7655// manually or by specifying deleteContents. Immediately after deletion,
7656// you can create another dataset with the same name.
7657func (r *DatasetsService) Delete(projectId string, datasetId string) *DatasetsDeleteCall {
7658	c := &DatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7659	c.projectId = projectId
7660	c.datasetId = datasetId
7661	return c
7662}
7663
7664// DeleteContents sets the optional parameter "deleteContents": If True,
7665// delete all the tables in the dataset. If False and the dataset
7666// contains tables, the request will fail. Default is False
7667func (c *DatasetsDeleteCall) DeleteContents(deleteContents bool) *DatasetsDeleteCall {
7668	c.urlParams_.Set("deleteContents", fmt.Sprint(deleteContents))
7669	return c
7670}
7671
7672// Fields allows partial responses to be retrieved. See
7673// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7674// for more information.
7675func (c *DatasetsDeleteCall) Fields(s ...googleapi.Field) *DatasetsDeleteCall {
7676	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7677	return c
7678}
7679
7680// Context sets the context to be used in this call's Do method. Any
7681// pending HTTP request will be aborted if the provided context is
7682// canceled.
7683func (c *DatasetsDeleteCall) Context(ctx context.Context) *DatasetsDeleteCall {
7684	c.ctx_ = ctx
7685	return c
7686}
7687
7688// Header returns an http.Header that can be modified by the caller to
7689// add HTTP headers to the request.
7690func (c *DatasetsDeleteCall) Header() http.Header {
7691	if c.header_ == nil {
7692		c.header_ = make(http.Header)
7693	}
7694	return c.header_
7695}
7696
7697func (c *DatasetsDeleteCall) doRequest(alt string) (*http.Response, error) {
7698	reqHeaders := make(http.Header)
7699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
7700	for k, v := range c.header_ {
7701		reqHeaders[k] = v
7702	}
7703	reqHeaders.Set("User-Agent", c.s.userAgent())
7704	var body io.Reader = nil
7705	c.urlParams_.Set("alt", alt)
7706	c.urlParams_.Set("prettyPrint", "false")
7707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
7708	urls += "?" + c.urlParams_.Encode()
7709	req, err := http.NewRequest("DELETE", urls, body)
7710	if err != nil {
7711		return nil, err
7712	}
7713	req.Header = reqHeaders
7714	googleapi.Expand(req.URL, map[string]string{
7715		"projectId": c.projectId,
7716		"datasetId": c.datasetId,
7717	})
7718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7719}
7720
7721// Do executes the "bigquery.datasets.delete" call.
7722func (c *DatasetsDeleteCall) Do(opts ...googleapi.CallOption) error {
7723	gensupport.SetOptions(c.urlParams_, opts...)
7724	res, err := c.doRequest("json")
7725	if err != nil {
7726		return err
7727	}
7728	defer googleapi.CloseBody(res)
7729	if err := googleapi.CheckResponse(res); err != nil {
7730		return err
7731	}
7732	return nil
7733	// {
7734	//   "description": "Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.",
7735	//   "httpMethod": "DELETE",
7736	//   "id": "bigquery.datasets.delete",
7737	//   "parameterOrder": [
7738	//     "projectId",
7739	//     "datasetId"
7740	//   ],
7741	//   "parameters": {
7742	//     "datasetId": {
7743	//       "description": "Dataset ID of dataset being deleted",
7744	//       "location": "path",
7745	//       "required": true,
7746	//       "type": "string"
7747	//     },
7748	//     "deleteContents": {
7749	//       "description": "If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False",
7750	//       "location": "query",
7751	//       "type": "boolean"
7752	//     },
7753	//     "projectId": {
7754	//       "description": "Project ID of the dataset being deleted",
7755	//       "location": "path",
7756	//       "required": true,
7757	//       "type": "string"
7758	//     }
7759	//   },
7760	//   "path": "projects/{projectId}/datasets/{datasetId}",
7761	//   "scopes": [
7762	//     "https://www.googleapis.com/auth/bigquery",
7763	//     "https://www.googleapis.com/auth/cloud-platform"
7764	//   ]
7765	// }
7766
7767}
7768
7769// method id "bigquery.datasets.get":
7770
7771type DatasetsGetCall struct {
7772	s            *Service
7773	projectId    string
7774	datasetId    string
7775	urlParams_   gensupport.URLParams
7776	ifNoneMatch_ string
7777	ctx_         context.Context
7778	header_      http.Header
7779}
7780
7781// Get: Returns the dataset specified by datasetID.
7782func (r *DatasetsService) Get(projectId string, datasetId string) *DatasetsGetCall {
7783	c := &DatasetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7784	c.projectId = projectId
7785	c.datasetId = datasetId
7786	return c
7787}
7788
7789// Fields allows partial responses to be retrieved. See
7790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7791// for more information.
7792func (c *DatasetsGetCall) Fields(s ...googleapi.Field) *DatasetsGetCall {
7793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7794	return c
7795}
7796
7797// IfNoneMatch sets the optional parameter which makes the operation
7798// fail if the object's ETag matches the given value. This is useful for
7799// getting updates only after the object has changed since the last
7800// request. Use googleapi.IsNotModified to check whether the response
7801// error from Do is the result of In-None-Match.
7802func (c *DatasetsGetCall) IfNoneMatch(entityTag string) *DatasetsGetCall {
7803	c.ifNoneMatch_ = entityTag
7804	return c
7805}
7806
7807// Context sets the context to be used in this call's Do method. Any
7808// pending HTTP request will be aborted if the provided context is
7809// canceled.
7810func (c *DatasetsGetCall) Context(ctx context.Context) *DatasetsGetCall {
7811	c.ctx_ = ctx
7812	return c
7813}
7814
7815// Header returns an http.Header that can be modified by the caller to
7816// add HTTP headers to the request.
7817func (c *DatasetsGetCall) Header() http.Header {
7818	if c.header_ == nil {
7819		c.header_ = make(http.Header)
7820	}
7821	return c.header_
7822}
7823
7824func (c *DatasetsGetCall) doRequest(alt string) (*http.Response, error) {
7825	reqHeaders := make(http.Header)
7826	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
7827	for k, v := range c.header_ {
7828		reqHeaders[k] = v
7829	}
7830	reqHeaders.Set("User-Agent", c.s.userAgent())
7831	if c.ifNoneMatch_ != "" {
7832		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7833	}
7834	var body io.Reader = nil
7835	c.urlParams_.Set("alt", alt)
7836	c.urlParams_.Set("prettyPrint", "false")
7837	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
7838	urls += "?" + c.urlParams_.Encode()
7839	req, err := http.NewRequest("GET", urls, body)
7840	if err != nil {
7841		return nil, err
7842	}
7843	req.Header = reqHeaders
7844	googleapi.Expand(req.URL, map[string]string{
7845		"projectId": c.projectId,
7846		"datasetId": c.datasetId,
7847	})
7848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7849}
7850
7851// Do executes the "bigquery.datasets.get" call.
7852// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
7853// code is an error. Response headers are in either
7854// *Dataset.ServerResponse.Header or (if a response was returned at all)
7855// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7856// check whether the returned error was because http.StatusNotModified
7857// was returned.
7858func (c *DatasetsGetCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
7859	gensupport.SetOptions(c.urlParams_, opts...)
7860	res, err := c.doRequest("json")
7861	if res != nil && res.StatusCode == http.StatusNotModified {
7862		if res.Body != nil {
7863			res.Body.Close()
7864		}
7865		return nil, &googleapi.Error{
7866			Code:   res.StatusCode,
7867			Header: res.Header,
7868		}
7869	}
7870	if err != nil {
7871		return nil, err
7872	}
7873	defer googleapi.CloseBody(res)
7874	if err := googleapi.CheckResponse(res); err != nil {
7875		return nil, err
7876	}
7877	ret := &Dataset{
7878		ServerResponse: googleapi.ServerResponse{
7879			Header:         res.Header,
7880			HTTPStatusCode: res.StatusCode,
7881		},
7882	}
7883	target := &ret
7884	if err := gensupport.DecodeResponse(target, res); err != nil {
7885		return nil, err
7886	}
7887	return ret, nil
7888	// {
7889	//   "description": "Returns the dataset specified by datasetID.",
7890	//   "httpMethod": "GET",
7891	//   "id": "bigquery.datasets.get",
7892	//   "parameterOrder": [
7893	//     "projectId",
7894	//     "datasetId"
7895	//   ],
7896	//   "parameters": {
7897	//     "datasetId": {
7898	//       "description": "Dataset ID of the requested dataset",
7899	//       "location": "path",
7900	//       "required": true,
7901	//       "type": "string"
7902	//     },
7903	//     "projectId": {
7904	//       "description": "Project ID of the requested dataset",
7905	//       "location": "path",
7906	//       "required": true,
7907	//       "type": "string"
7908	//     }
7909	//   },
7910	//   "path": "projects/{projectId}/datasets/{datasetId}",
7911	//   "response": {
7912	//     "$ref": "Dataset"
7913	//   },
7914	//   "scopes": [
7915	//     "https://www.googleapis.com/auth/bigquery",
7916	//     "https://www.googleapis.com/auth/bigquery.readonly",
7917	//     "https://www.googleapis.com/auth/cloud-platform",
7918	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
7919	//   ]
7920	// }
7921
7922}
7923
7924// method id "bigquery.datasets.insert":
7925
7926type DatasetsInsertCall struct {
7927	s          *Service
7928	projectId  string
7929	dataset    *Dataset
7930	urlParams_ gensupport.URLParams
7931	ctx_       context.Context
7932	header_    http.Header
7933}
7934
7935// Insert: Creates a new empty dataset.
7936func (r *DatasetsService) Insert(projectId string, dataset *Dataset) *DatasetsInsertCall {
7937	c := &DatasetsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7938	c.projectId = projectId
7939	c.dataset = dataset
7940	return c
7941}
7942
7943// Fields allows partial responses to be retrieved. See
7944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7945// for more information.
7946func (c *DatasetsInsertCall) Fields(s ...googleapi.Field) *DatasetsInsertCall {
7947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7948	return c
7949}
7950
7951// Context sets the context to be used in this call's Do method. Any
7952// pending HTTP request will be aborted if the provided context is
7953// canceled.
7954func (c *DatasetsInsertCall) Context(ctx context.Context) *DatasetsInsertCall {
7955	c.ctx_ = ctx
7956	return c
7957}
7958
7959// Header returns an http.Header that can be modified by the caller to
7960// add HTTP headers to the request.
7961func (c *DatasetsInsertCall) Header() http.Header {
7962	if c.header_ == nil {
7963		c.header_ = make(http.Header)
7964	}
7965	return c.header_
7966}
7967
7968func (c *DatasetsInsertCall) doRequest(alt string) (*http.Response, error) {
7969	reqHeaders := make(http.Header)
7970	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
7971	for k, v := range c.header_ {
7972		reqHeaders[k] = v
7973	}
7974	reqHeaders.Set("User-Agent", c.s.userAgent())
7975	var body io.Reader = nil
7976	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
7977	if err != nil {
7978		return nil, err
7979	}
7980	reqHeaders.Set("Content-Type", "application/json")
7981	c.urlParams_.Set("alt", alt)
7982	c.urlParams_.Set("prettyPrint", "false")
7983	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets")
7984	urls += "?" + c.urlParams_.Encode()
7985	req, err := http.NewRequest("POST", urls, body)
7986	if err != nil {
7987		return nil, err
7988	}
7989	req.Header = reqHeaders
7990	googleapi.Expand(req.URL, map[string]string{
7991		"projectId": c.projectId,
7992	})
7993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7994}
7995
7996// Do executes the "bigquery.datasets.insert" call.
7997// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
7998// code is an error. Response headers are in either
7999// *Dataset.ServerResponse.Header or (if a response was returned at all)
8000// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8001// check whether the returned error was because http.StatusNotModified
8002// was returned.
8003func (c *DatasetsInsertCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8004	gensupport.SetOptions(c.urlParams_, opts...)
8005	res, err := c.doRequest("json")
8006	if res != nil && res.StatusCode == http.StatusNotModified {
8007		if res.Body != nil {
8008			res.Body.Close()
8009		}
8010		return nil, &googleapi.Error{
8011			Code:   res.StatusCode,
8012			Header: res.Header,
8013		}
8014	}
8015	if err != nil {
8016		return nil, err
8017	}
8018	defer googleapi.CloseBody(res)
8019	if err := googleapi.CheckResponse(res); err != nil {
8020		return nil, err
8021	}
8022	ret := &Dataset{
8023		ServerResponse: googleapi.ServerResponse{
8024			Header:         res.Header,
8025			HTTPStatusCode: res.StatusCode,
8026		},
8027	}
8028	target := &ret
8029	if err := gensupport.DecodeResponse(target, res); err != nil {
8030		return nil, err
8031	}
8032	return ret, nil
8033	// {
8034	//   "description": "Creates a new empty dataset.",
8035	//   "httpMethod": "POST",
8036	//   "id": "bigquery.datasets.insert",
8037	//   "parameterOrder": [
8038	//     "projectId"
8039	//   ],
8040	//   "parameters": {
8041	//     "projectId": {
8042	//       "description": "Project ID of the new dataset",
8043	//       "location": "path",
8044	//       "required": true,
8045	//       "type": "string"
8046	//     }
8047	//   },
8048	//   "path": "projects/{projectId}/datasets",
8049	//   "request": {
8050	//     "$ref": "Dataset"
8051	//   },
8052	//   "response": {
8053	//     "$ref": "Dataset"
8054	//   },
8055	//   "scopes": [
8056	//     "https://www.googleapis.com/auth/bigquery",
8057	//     "https://www.googleapis.com/auth/cloud-platform"
8058	//   ]
8059	// }
8060
8061}
8062
8063// method id "bigquery.datasets.list":
8064
8065type DatasetsListCall struct {
8066	s            *Service
8067	projectId    string
8068	urlParams_   gensupport.URLParams
8069	ifNoneMatch_ string
8070	ctx_         context.Context
8071	header_      http.Header
8072}
8073
8074// List: Lists all datasets in the specified project to which you have
8075// been granted the READER dataset role.
8076func (r *DatasetsService) List(projectId string) *DatasetsListCall {
8077	c := &DatasetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8078	c.projectId = projectId
8079	return c
8080}
8081
8082// All sets the optional parameter "all": Whether to list all datasets,
8083// including hidden ones
8084func (c *DatasetsListCall) All(all bool) *DatasetsListCall {
8085	c.urlParams_.Set("all", fmt.Sprint(all))
8086	return c
8087}
8088
8089// Filter sets the optional parameter "filter": An expression for
8090// filtering the results of the request by label. The syntax is
8091// "labels.<name>[:<value>]". Multiple filters can be ANDed together by
8092// connecting with a space. Example: "labels.department:receiving
8093// labels.active". See Filtering datasets using labels for details.
8094func (c *DatasetsListCall) Filter(filter string) *DatasetsListCall {
8095	c.urlParams_.Set("filter", filter)
8096	return c
8097}
8098
8099// MaxResults sets the optional parameter "maxResults": The maximum
8100// number of results to return
8101func (c *DatasetsListCall) MaxResults(maxResults int64) *DatasetsListCall {
8102	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8103	return c
8104}
8105
8106// PageToken sets the optional parameter "pageToken": Page token,
8107// returned by a previous call, to request the next page of results
8108func (c *DatasetsListCall) PageToken(pageToken string) *DatasetsListCall {
8109	c.urlParams_.Set("pageToken", pageToken)
8110	return c
8111}
8112
8113// Fields allows partial responses to be retrieved. See
8114// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8115// for more information.
8116func (c *DatasetsListCall) Fields(s ...googleapi.Field) *DatasetsListCall {
8117	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8118	return c
8119}
8120
8121// IfNoneMatch sets the optional parameter which makes the operation
8122// fail if the object's ETag matches the given value. This is useful for
8123// getting updates only after the object has changed since the last
8124// request. Use googleapi.IsNotModified to check whether the response
8125// error from Do is the result of In-None-Match.
8126func (c *DatasetsListCall) IfNoneMatch(entityTag string) *DatasetsListCall {
8127	c.ifNoneMatch_ = entityTag
8128	return c
8129}
8130
8131// Context sets the context to be used in this call's Do method. Any
8132// pending HTTP request will be aborted if the provided context is
8133// canceled.
8134func (c *DatasetsListCall) Context(ctx context.Context) *DatasetsListCall {
8135	c.ctx_ = ctx
8136	return c
8137}
8138
8139// Header returns an http.Header that can be modified by the caller to
8140// add HTTP headers to the request.
8141func (c *DatasetsListCall) Header() http.Header {
8142	if c.header_ == nil {
8143		c.header_ = make(http.Header)
8144	}
8145	return c.header_
8146}
8147
8148func (c *DatasetsListCall) doRequest(alt string) (*http.Response, error) {
8149	reqHeaders := make(http.Header)
8150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
8151	for k, v := range c.header_ {
8152		reqHeaders[k] = v
8153	}
8154	reqHeaders.Set("User-Agent", c.s.userAgent())
8155	if c.ifNoneMatch_ != "" {
8156		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8157	}
8158	var body io.Reader = nil
8159	c.urlParams_.Set("alt", alt)
8160	c.urlParams_.Set("prettyPrint", "false")
8161	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets")
8162	urls += "?" + c.urlParams_.Encode()
8163	req, err := http.NewRequest("GET", urls, body)
8164	if err != nil {
8165		return nil, err
8166	}
8167	req.Header = reqHeaders
8168	googleapi.Expand(req.URL, map[string]string{
8169		"projectId": c.projectId,
8170	})
8171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8172}
8173
8174// Do executes the "bigquery.datasets.list" call.
8175// Exactly one of *DatasetList or error will be non-nil. Any non-2xx
8176// status code is an error. Response headers are in either
8177// *DatasetList.ServerResponse.Header or (if a response was returned at
8178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8179// to check whether the returned error was because
8180// http.StatusNotModified was returned.
8181func (c *DatasetsListCall) Do(opts ...googleapi.CallOption) (*DatasetList, error) {
8182	gensupport.SetOptions(c.urlParams_, opts...)
8183	res, err := c.doRequest("json")
8184	if res != nil && res.StatusCode == http.StatusNotModified {
8185		if res.Body != nil {
8186			res.Body.Close()
8187		}
8188		return nil, &googleapi.Error{
8189			Code:   res.StatusCode,
8190			Header: res.Header,
8191		}
8192	}
8193	if err != nil {
8194		return nil, err
8195	}
8196	defer googleapi.CloseBody(res)
8197	if err := googleapi.CheckResponse(res); err != nil {
8198		return nil, err
8199	}
8200	ret := &DatasetList{
8201		ServerResponse: googleapi.ServerResponse{
8202			Header:         res.Header,
8203			HTTPStatusCode: res.StatusCode,
8204		},
8205	}
8206	target := &ret
8207	if err := gensupport.DecodeResponse(target, res); err != nil {
8208		return nil, err
8209	}
8210	return ret, nil
8211	// {
8212	//   "description": "Lists all datasets in the specified project to which you have been granted the READER dataset role.",
8213	//   "httpMethod": "GET",
8214	//   "id": "bigquery.datasets.list",
8215	//   "parameterOrder": [
8216	//     "projectId"
8217	//   ],
8218	//   "parameters": {
8219	//     "all": {
8220	//       "description": "Whether to list all datasets, including hidden ones",
8221	//       "location": "query",
8222	//       "type": "boolean"
8223	//     },
8224	//     "filter": {
8225	//       "description": "An expression for filtering the results of the request by label. The syntax is \"labels.\u003cname\u003e[:\u003cvalue\u003e]\". Multiple filters can be ANDed together by connecting with a space. Example: \"labels.department:receiving labels.active\". See Filtering datasets using labels for details.",
8226	//       "location": "query",
8227	//       "type": "string"
8228	//     },
8229	//     "maxResults": {
8230	//       "description": "The maximum number of results to return",
8231	//       "format": "uint32",
8232	//       "location": "query",
8233	//       "type": "integer"
8234	//     },
8235	//     "pageToken": {
8236	//       "description": "Page token, returned by a previous call, to request the next page of results",
8237	//       "location": "query",
8238	//       "type": "string"
8239	//     },
8240	//     "projectId": {
8241	//       "description": "Project ID of the datasets to be listed",
8242	//       "location": "path",
8243	//       "required": true,
8244	//       "type": "string"
8245	//     }
8246	//   },
8247	//   "path": "projects/{projectId}/datasets",
8248	//   "response": {
8249	//     "$ref": "DatasetList"
8250	//   },
8251	//   "scopes": [
8252	//     "https://www.googleapis.com/auth/bigquery",
8253	//     "https://www.googleapis.com/auth/bigquery.readonly",
8254	//     "https://www.googleapis.com/auth/cloud-platform",
8255	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
8256	//   ]
8257	// }
8258
8259}
8260
8261// Pages invokes f for each page of results.
8262// A non-nil error returned from f will halt the iteration.
8263// The provided context supersedes any context provided to the Context method.
8264func (c *DatasetsListCall) Pages(ctx context.Context, f func(*DatasetList) error) error {
8265	c.ctx_ = ctx
8266	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8267	for {
8268		x, err := c.Do()
8269		if err != nil {
8270			return err
8271		}
8272		if err := f(x); err != nil {
8273			return err
8274		}
8275		if x.NextPageToken == "" {
8276			return nil
8277		}
8278		c.PageToken(x.NextPageToken)
8279	}
8280}
8281
8282// method id "bigquery.datasets.patch":
8283
8284type DatasetsPatchCall struct {
8285	s          *Service
8286	projectId  string
8287	datasetId  string
8288	dataset    *Dataset
8289	urlParams_ gensupport.URLParams
8290	ctx_       context.Context
8291	header_    http.Header
8292}
8293
8294// Patch: Updates information in an existing dataset. The update method
8295// replaces the entire dataset resource, whereas the patch method only
8296// replaces fields that are provided in the submitted dataset resource.
8297// This method supports patch semantics.
8298func (r *DatasetsService) Patch(projectId string, datasetId string, dataset *Dataset) *DatasetsPatchCall {
8299	c := &DatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8300	c.projectId = projectId
8301	c.datasetId = datasetId
8302	c.dataset = dataset
8303	return c
8304}
8305
8306// Fields allows partial responses to be retrieved. See
8307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8308// for more information.
8309func (c *DatasetsPatchCall) Fields(s ...googleapi.Field) *DatasetsPatchCall {
8310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8311	return c
8312}
8313
8314// Context sets the context to be used in this call's Do method. Any
8315// pending HTTP request will be aborted if the provided context is
8316// canceled.
8317func (c *DatasetsPatchCall) Context(ctx context.Context) *DatasetsPatchCall {
8318	c.ctx_ = ctx
8319	return c
8320}
8321
8322// Header returns an http.Header that can be modified by the caller to
8323// add HTTP headers to the request.
8324func (c *DatasetsPatchCall) Header() http.Header {
8325	if c.header_ == nil {
8326		c.header_ = make(http.Header)
8327	}
8328	return c.header_
8329}
8330
8331func (c *DatasetsPatchCall) doRequest(alt string) (*http.Response, error) {
8332	reqHeaders := make(http.Header)
8333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
8334	for k, v := range c.header_ {
8335		reqHeaders[k] = v
8336	}
8337	reqHeaders.Set("User-Agent", c.s.userAgent())
8338	var body io.Reader = nil
8339	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
8340	if err != nil {
8341		return nil, err
8342	}
8343	reqHeaders.Set("Content-Type", "application/json")
8344	c.urlParams_.Set("alt", alt)
8345	c.urlParams_.Set("prettyPrint", "false")
8346	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8347	urls += "?" + c.urlParams_.Encode()
8348	req, err := http.NewRequest("PATCH", urls, body)
8349	if err != nil {
8350		return nil, err
8351	}
8352	req.Header = reqHeaders
8353	googleapi.Expand(req.URL, map[string]string{
8354		"projectId": c.projectId,
8355		"datasetId": c.datasetId,
8356	})
8357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8358}
8359
8360// Do executes the "bigquery.datasets.patch" call.
8361// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8362// code is an error. Response headers are in either
8363// *Dataset.ServerResponse.Header or (if a response was returned at all)
8364// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8365// check whether the returned error was because http.StatusNotModified
8366// was returned.
8367func (c *DatasetsPatchCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8368	gensupport.SetOptions(c.urlParams_, opts...)
8369	res, err := c.doRequest("json")
8370	if res != nil && res.StatusCode == http.StatusNotModified {
8371		if res.Body != nil {
8372			res.Body.Close()
8373		}
8374		return nil, &googleapi.Error{
8375			Code:   res.StatusCode,
8376			Header: res.Header,
8377		}
8378	}
8379	if err != nil {
8380		return nil, err
8381	}
8382	defer googleapi.CloseBody(res)
8383	if err := googleapi.CheckResponse(res); err != nil {
8384		return nil, err
8385	}
8386	ret := &Dataset{
8387		ServerResponse: googleapi.ServerResponse{
8388			Header:         res.Header,
8389			HTTPStatusCode: res.StatusCode,
8390		},
8391	}
8392	target := &ret
8393	if err := gensupport.DecodeResponse(target, res); err != nil {
8394		return nil, err
8395	}
8396	return ret, nil
8397	// {
8398	//   "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.",
8399	//   "httpMethod": "PATCH",
8400	//   "id": "bigquery.datasets.patch",
8401	//   "parameterOrder": [
8402	//     "projectId",
8403	//     "datasetId"
8404	//   ],
8405	//   "parameters": {
8406	//     "datasetId": {
8407	//       "description": "Dataset ID of the dataset being updated",
8408	//       "location": "path",
8409	//       "required": true,
8410	//       "type": "string"
8411	//     },
8412	//     "projectId": {
8413	//       "description": "Project ID of the dataset being updated",
8414	//       "location": "path",
8415	//       "required": true,
8416	//       "type": "string"
8417	//     }
8418	//   },
8419	//   "path": "projects/{projectId}/datasets/{datasetId}",
8420	//   "request": {
8421	//     "$ref": "Dataset"
8422	//   },
8423	//   "response": {
8424	//     "$ref": "Dataset"
8425	//   },
8426	//   "scopes": [
8427	//     "https://www.googleapis.com/auth/bigquery",
8428	//     "https://www.googleapis.com/auth/cloud-platform"
8429	//   ]
8430	// }
8431
8432}
8433
8434// method id "bigquery.datasets.update":
8435
8436type DatasetsUpdateCall struct {
8437	s          *Service
8438	projectId  string
8439	datasetId  string
8440	dataset    *Dataset
8441	urlParams_ gensupport.URLParams
8442	ctx_       context.Context
8443	header_    http.Header
8444}
8445
8446// Update: Updates information in an existing dataset. The update method
8447// replaces the entire dataset resource, whereas the patch method only
8448// replaces fields that are provided in the submitted dataset resource.
8449func (r *DatasetsService) Update(projectId string, datasetId string, dataset *Dataset) *DatasetsUpdateCall {
8450	c := &DatasetsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8451	c.projectId = projectId
8452	c.datasetId = datasetId
8453	c.dataset = dataset
8454	return c
8455}
8456
8457// Fields allows partial responses to be retrieved. See
8458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8459// for more information.
8460func (c *DatasetsUpdateCall) Fields(s ...googleapi.Field) *DatasetsUpdateCall {
8461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8462	return c
8463}
8464
8465// Context sets the context to be used in this call's Do method. Any
8466// pending HTTP request will be aborted if the provided context is
8467// canceled.
8468func (c *DatasetsUpdateCall) Context(ctx context.Context) *DatasetsUpdateCall {
8469	c.ctx_ = ctx
8470	return c
8471}
8472
8473// Header returns an http.Header that can be modified by the caller to
8474// add HTTP headers to the request.
8475func (c *DatasetsUpdateCall) Header() http.Header {
8476	if c.header_ == nil {
8477		c.header_ = make(http.Header)
8478	}
8479	return c.header_
8480}
8481
8482func (c *DatasetsUpdateCall) doRequest(alt string) (*http.Response, error) {
8483	reqHeaders := make(http.Header)
8484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
8485	for k, v := range c.header_ {
8486		reqHeaders[k] = v
8487	}
8488	reqHeaders.Set("User-Agent", c.s.userAgent())
8489	var body io.Reader = nil
8490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
8491	if err != nil {
8492		return nil, err
8493	}
8494	reqHeaders.Set("Content-Type", "application/json")
8495	c.urlParams_.Set("alt", alt)
8496	c.urlParams_.Set("prettyPrint", "false")
8497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8498	urls += "?" + c.urlParams_.Encode()
8499	req, err := http.NewRequest("PUT", urls, body)
8500	if err != nil {
8501		return nil, err
8502	}
8503	req.Header = reqHeaders
8504	googleapi.Expand(req.URL, map[string]string{
8505		"projectId": c.projectId,
8506		"datasetId": c.datasetId,
8507	})
8508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8509}
8510
8511// Do executes the "bigquery.datasets.update" call.
8512// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8513// code is an error. Response headers are in either
8514// *Dataset.ServerResponse.Header or (if a response was returned at all)
8515// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8516// check whether the returned error was because http.StatusNotModified
8517// was returned.
8518func (c *DatasetsUpdateCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8519	gensupport.SetOptions(c.urlParams_, opts...)
8520	res, err := c.doRequest("json")
8521	if res != nil && res.StatusCode == http.StatusNotModified {
8522		if res.Body != nil {
8523			res.Body.Close()
8524		}
8525		return nil, &googleapi.Error{
8526			Code:   res.StatusCode,
8527			Header: res.Header,
8528		}
8529	}
8530	if err != nil {
8531		return nil, err
8532	}
8533	defer googleapi.CloseBody(res)
8534	if err := googleapi.CheckResponse(res); err != nil {
8535		return nil, err
8536	}
8537	ret := &Dataset{
8538		ServerResponse: googleapi.ServerResponse{
8539			Header:         res.Header,
8540			HTTPStatusCode: res.StatusCode,
8541		},
8542	}
8543	target := &ret
8544	if err := gensupport.DecodeResponse(target, res); err != nil {
8545		return nil, err
8546	}
8547	return ret, nil
8548	// {
8549	//   "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.",
8550	//   "httpMethod": "PUT",
8551	//   "id": "bigquery.datasets.update",
8552	//   "parameterOrder": [
8553	//     "projectId",
8554	//     "datasetId"
8555	//   ],
8556	//   "parameters": {
8557	//     "datasetId": {
8558	//       "description": "Dataset ID of the dataset being updated",
8559	//       "location": "path",
8560	//       "required": true,
8561	//       "type": "string"
8562	//     },
8563	//     "projectId": {
8564	//       "description": "Project ID of the dataset being updated",
8565	//       "location": "path",
8566	//       "required": true,
8567	//       "type": "string"
8568	//     }
8569	//   },
8570	//   "path": "projects/{projectId}/datasets/{datasetId}",
8571	//   "request": {
8572	//     "$ref": "Dataset"
8573	//   },
8574	//   "response": {
8575	//     "$ref": "Dataset"
8576	//   },
8577	//   "scopes": [
8578	//     "https://www.googleapis.com/auth/bigquery",
8579	//     "https://www.googleapis.com/auth/cloud-platform"
8580	//   ]
8581	// }
8582
8583}
8584
8585// method id "bigquery.jobs.cancel":
8586
8587type JobsCancelCall struct {
8588	s          *Service
8589	projectId  string
8590	jobId      string
8591	urlParams_ gensupport.URLParams
8592	ctx_       context.Context
8593	header_    http.Header
8594}
8595
8596// Cancel: Requests that a job be cancelled. This call will return
8597// immediately, and the client will need to poll for the job status to
8598// see if the cancel completed successfully. Cancelled jobs may still
8599// incur costs.
8600func (r *JobsService) Cancel(projectId string, jobId string) *JobsCancelCall {
8601	c := &JobsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8602	c.projectId = projectId
8603	c.jobId = jobId
8604	return c
8605}
8606
8607// Location sets the optional parameter "location": The geographic
8608// location of the job. Required except for US and EU. See details at
8609// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
8610func (c *JobsCancelCall) Location(location string) *JobsCancelCall {
8611	c.urlParams_.Set("location", location)
8612	return c
8613}
8614
8615// Fields allows partial responses to be retrieved. See
8616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8617// for more information.
8618func (c *JobsCancelCall) Fields(s ...googleapi.Field) *JobsCancelCall {
8619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8620	return c
8621}
8622
8623// Context sets the context to be used in this call's Do method. Any
8624// pending HTTP request will be aborted if the provided context is
8625// canceled.
8626func (c *JobsCancelCall) Context(ctx context.Context) *JobsCancelCall {
8627	c.ctx_ = ctx
8628	return c
8629}
8630
8631// Header returns an http.Header that can be modified by the caller to
8632// add HTTP headers to the request.
8633func (c *JobsCancelCall) Header() http.Header {
8634	if c.header_ == nil {
8635		c.header_ = make(http.Header)
8636	}
8637	return c.header_
8638}
8639
8640func (c *JobsCancelCall) doRequest(alt string) (*http.Response, error) {
8641	reqHeaders := make(http.Header)
8642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
8643	for k, v := range c.header_ {
8644		reqHeaders[k] = v
8645	}
8646	reqHeaders.Set("User-Agent", c.s.userAgent())
8647	var body io.Reader = nil
8648	c.urlParams_.Set("alt", alt)
8649	c.urlParams_.Set("prettyPrint", "false")
8650	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs/{jobId}/cancel")
8651	urls += "?" + c.urlParams_.Encode()
8652	req, err := http.NewRequest("POST", urls, body)
8653	if err != nil {
8654		return nil, err
8655	}
8656	req.Header = reqHeaders
8657	googleapi.Expand(req.URL, map[string]string{
8658		"projectId": c.projectId,
8659		"jobId":     c.jobId,
8660	})
8661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8662}
8663
8664// Do executes the "bigquery.jobs.cancel" call.
8665// Exactly one of *JobCancelResponse or error will be non-nil. Any
8666// non-2xx status code is an error. Response headers are in either
8667// *JobCancelResponse.ServerResponse.Header or (if a response was
8668// returned at all) in error.(*googleapi.Error).Header. Use
8669// googleapi.IsNotModified to check whether the returned error was
8670// because http.StatusNotModified was returned.
8671func (c *JobsCancelCall) Do(opts ...googleapi.CallOption) (*JobCancelResponse, error) {
8672	gensupport.SetOptions(c.urlParams_, opts...)
8673	res, err := c.doRequest("json")
8674	if res != nil && res.StatusCode == http.StatusNotModified {
8675		if res.Body != nil {
8676			res.Body.Close()
8677		}
8678		return nil, &googleapi.Error{
8679			Code:   res.StatusCode,
8680			Header: res.Header,
8681		}
8682	}
8683	if err != nil {
8684		return nil, err
8685	}
8686	defer googleapi.CloseBody(res)
8687	if err := googleapi.CheckResponse(res); err != nil {
8688		return nil, err
8689	}
8690	ret := &JobCancelResponse{
8691		ServerResponse: googleapi.ServerResponse{
8692			Header:         res.Header,
8693			HTTPStatusCode: res.StatusCode,
8694		},
8695	}
8696	target := &ret
8697	if err := gensupport.DecodeResponse(target, res); err != nil {
8698		return nil, err
8699	}
8700	return ret, nil
8701	// {
8702	//   "description": "Requests that a job be cancelled. This call will return immediately, and the client will need to poll for the job status to see if the cancel completed successfully. Cancelled jobs may still incur costs.",
8703	//   "httpMethod": "POST",
8704	//   "id": "bigquery.jobs.cancel",
8705	//   "parameterOrder": [
8706	//     "projectId",
8707	//     "jobId"
8708	//   ],
8709	//   "parameters": {
8710	//     "jobId": {
8711	//       "description": "[Required] Job ID of the job to cancel",
8712	//       "location": "path",
8713	//       "required": true,
8714	//       "type": "string"
8715	//     },
8716	//     "location": {
8717	//       "description": "The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.",
8718	//       "location": "query",
8719	//       "type": "string"
8720	//     },
8721	//     "projectId": {
8722	//       "description": "[Required] Project ID of the job to cancel",
8723	//       "location": "path",
8724	//       "required": true,
8725	//       "type": "string"
8726	//     }
8727	//   },
8728	//   "path": "projects/{projectId}/jobs/{jobId}/cancel",
8729	//   "response": {
8730	//     "$ref": "JobCancelResponse"
8731	//   },
8732	//   "scopes": [
8733	//     "https://www.googleapis.com/auth/bigquery",
8734	//     "https://www.googleapis.com/auth/cloud-platform"
8735	//   ]
8736	// }
8737
8738}
8739
8740// method id "bigquery.jobs.get":
8741
8742type JobsGetCall struct {
8743	s            *Service
8744	projectId    string
8745	jobId        string
8746	urlParams_   gensupport.URLParams
8747	ifNoneMatch_ string
8748	ctx_         context.Context
8749	header_      http.Header
8750}
8751
8752// Get: Returns information about a specific job. Job information is
8753// available for a six month period after creation. Requires that you're
8754// the person who ran the job, or have the Is Owner project role.
8755func (r *JobsService) Get(projectId string, jobId string) *JobsGetCall {
8756	c := &JobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8757	c.projectId = projectId
8758	c.jobId = jobId
8759	return c
8760}
8761
8762// Location sets the optional parameter "location": The geographic
8763// location of the job. Required except for US and EU. See details at
8764// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
8765func (c *JobsGetCall) Location(location string) *JobsGetCall {
8766	c.urlParams_.Set("location", location)
8767	return c
8768}
8769
8770// Fields allows partial responses to be retrieved. See
8771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8772// for more information.
8773func (c *JobsGetCall) Fields(s ...googleapi.Field) *JobsGetCall {
8774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8775	return c
8776}
8777
8778// IfNoneMatch sets the optional parameter which makes the operation
8779// fail if the object's ETag matches the given value. This is useful for
8780// getting updates only after the object has changed since the last
8781// request. Use googleapi.IsNotModified to check whether the response
8782// error from Do is the result of In-None-Match.
8783func (c *JobsGetCall) IfNoneMatch(entityTag string) *JobsGetCall {
8784	c.ifNoneMatch_ = entityTag
8785	return c
8786}
8787
8788// Context sets the context to be used in this call's Do method. Any
8789// pending HTTP request will be aborted if the provided context is
8790// canceled.
8791func (c *JobsGetCall) Context(ctx context.Context) *JobsGetCall {
8792	c.ctx_ = ctx
8793	return c
8794}
8795
8796// Header returns an http.Header that can be modified by the caller to
8797// add HTTP headers to the request.
8798func (c *JobsGetCall) Header() http.Header {
8799	if c.header_ == nil {
8800		c.header_ = make(http.Header)
8801	}
8802	return c.header_
8803}
8804
8805func (c *JobsGetCall) doRequest(alt string) (*http.Response, error) {
8806	reqHeaders := make(http.Header)
8807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
8808	for k, v := range c.header_ {
8809		reqHeaders[k] = v
8810	}
8811	reqHeaders.Set("User-Agent", c.s.userAgent())
8812	if c.ifNoneMatch_ != "" {
8813		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8814	}
8815	var body io.Reader = nil
8816	c.urlParams_.Set("alt", alt)
8817	c.urlParams_.Set("prettyPrint", "false")
8818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs/{jobId}")
8819	urls += "?" + c.urlParams_.Encode()
8820	req, err := http.NewRequest("GET", urls, body)
8821	if err != nil {
8822		return nil, err
8823	}
8824	req.Header = reqHeaders
8825	googleapi.Expand(req.URL, map[string]string{
8826		"projectId": c.projectId,
8827		"jobId":     c.jobId,
8828	})
8829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8830}
8831
8832// Do executes the "bigquery.jobs.get" call.
8833// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8834// is an error. Response headers are in either
8835// *Job.ServerResponse.Header or (if a response was returned at all) in
8836// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8837// whether the returned error was because http.StatusNotModified was
8838// returned.
8839func (c *JobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8840	gensupport.SetOptions(c.urlParams_, opts...)
8841	res, err := c.doRequest("json")
8842	if res != nil && res.StatusCode == http.StatusNotModified {
8843		if res.Body != nil {
8844			res.Body.Close()
8845		}
8846		return nil, &googleapi.Error{
8847			Code:   res.StatusCode,
8848			Header: res.Header,
8849		}
8850	}
8851	if err != nil {
8852		return nil, err
8853	}
8854	defer googleapi.CloseBody(res)
8855	if err := googleapi.CheckResponse(res); err != nil {
8856		return nil, err
8857	}
8858	ret := &Job{
8859		ServerResponse: googleapi.ServerResponse{
8860			Header:         res.Header,
8861			HTTPStatusCode: res.StatusCode,
8862		},
8863	}
8864	target := &ret
8865	if err := gensupport.DecodeResponse(target, res); err != nil {
8866		return nil, err
8867	}
8868	return ret, nil
8869	// {
8870	//   "description": "Returns information about a specific job. Job information is available for a six month period after creation. Requires that you're the person who ran the job, or have the Is Owner project role.",
8871	//   "httpMethod": "GET",
8872	//   "id": "bigquery.jobs.get",
8873	//   "parameterOrder": [
8874	//     "projectId",
8875	//     "jobId"
8876	//   ],
8877	//   "parameters": {
8878	//     "jobId": {
8879	//       "description": "[Required] Job ID of the requested job",
8880	//       "location": "path",
8881	//       "required": true,
8882	//       "type": "string"
8883	//     },
8884	//     "location": {
8885	//       "description": "The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.",
8886	//       "location": "query",
8887	//       "type": "string"
8888	//     },
8889	//     "projectId": {
8890	//       "description": "[Required] Project ID of the requested job",
8891	//       "location": "path",
8892	//       "required": true,
8893	//       "type": "string"
8894	//     }
8895	//   },
8896	//   "path": "projects/{projectId}/jobs/{jobId}",
8897	//   "response": {
8898	//     "$ref": "Job"
8899	//   },
8900	//   "scopes": [
8901	//     "https://www.googleapis.com/auth/bigquery",
8902	//     "https://www.googleapis.com/auth/bigquery.readonly",
8903	//     "https://www.googleapis.com/auth/cloud-platform",
8904	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
8905	//   ]
8906	// }
8907
8908}
8909
8910// method id "bigquery.jobs.getQueryResults":
8911
8912type JobsGetQueryResultsCall struct {
8913	s            *Service
8914	projectId    string
8915	jobId        string
8916	urlParams_   gensupport.URLParams
8917	ifNoneMatch_ string
8918	ctx_         context.Context
8919	header_      http.Header
8920}
8921
8922// GetQueryResults: Retrieves the results of a query job.
8923func (r *JobsService) GetQueryResults(projectId string, jobId string) *JobsGetQueryResultsCall {
8924	c := &JobsGetQueryResultsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8925	c.projectId = projectId
8926	c.jobId = jobId
8927	return c
8928}
8929
8930// Location sets the optional parameter "location": The geographic
8931// location where the job should run. Required except for US and EU. See
8932// details at
8933// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
8934func (c *JobsGetQueryResultsCall) Location(location string) *JobsGetQueryResultsCall {
8935	c.urlParams_.Set("location", location)
8936	return c
8937}
8938
8939// MaxResults sets the optional parameter "maxResults": Maximum number
8940// of results to read
8941func (c *JobsGetQueryResultsCall) MaxResults(maxResults int64) *JobsGetQueryResultsCall {
8942	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8943	return c
8944}
8945
8946// PageToken sets the optional parameter "pageToken": Page token,
8947// returned by a previous call, to request the next page of results
8948func (c *JobsGetQueryResultsCall) PageToken(pageToken string) *JobsGetQueryResultsCall {
8949	c.urlParams_.Set("pageToken", pageToken)
8950	return c
8951}
8952
8953// StartIndex sets the optional parameter "startIndex": Zero-based index
8954// of the starting row
8955func (c *JobsGetQueryResultsCall) StartIndex(startIndex uint64) *JobsGetQueryResultsCall {
8956	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
8957	return c
8958}
8959
8960// TimeoutMs sets the optional parameter "timeoutMs": How long to wait
8961// for the query to complete, in milliseconds, before returning. Default
8962// is 10 seconds. If the timeout passes before the job completes, the
8963// 'jobComplete' field in the response will be false
8964func (c *JobsGetQueryResultsCall) TimeoutMs(timeoutMs int64) *JobsGetQueryResultsCall {
8965	c.urlParams_.Set("timeoutMs", fmt.Sprint(timeoutMs))
8966	return c
8967}
8968
8969// Fields allows partial responses to be retrieved. See
8970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8971// for more information.
8972func (c *JobsGetQueryResultsCall) Fields(s ...googleapi.Field) *JobsGetQueryResultsCall {
8973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8974	return c
8975}
8976
8977// IfNoneMatch sets the optional parameter which makes the operation
8978// fail if the object's ETag matches the given value. This is useful for
8979// getting updates only after the object has changed since the last
8980// request. Use googleapi.IsNotModified to check whether the response
8981// error from Do is the result of In-None-Match.
8982func (c *JobsGetQueryResultsCall) IfNoneMatch(entityTag string) *JobsGetQueryResultsCall {
8983	c.ifNoneMatch_ = entityTag
8984	return c
8985}
8986
8987// Context sets the context to be used in this call's Do method. Any
8988// pending HTTP request will be aborted if the provided context is
8989// canceled.
8990func (c *JobsGetQueryResultsCall) Context(ctx context.Context) *JobsGetQueryResultsCall {
8991	c.ctx_ = ctx
8992	return c
8993}
8994
8995// Header returns an http.Header that can be modified by the caller to
8996// add HTTP headers to the request.
8997func (c *JobsGetQueryResultsCall) Header() http.Header {
8998	if c.header_ == nil {
8999		c.header_ = make(http.Header)
9000	}
9001	return c.header_
9002}
9003
9004func (c *JobsGetQueryResultsCall) doRequest(alt string) (*http.Response, error) {
9005	reqHeaders := make(http.Header)
9006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
9007	for k, v := range c.header_ {
9008		reqHeaders[k] = v
9009	}
9010	reqHeaders.Set("User-Agent", c.s.userAgent())
9011	if c.ifNoneMatch_ != "" {
9012		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9013	}
9014	var body io.Reader = nil
9015	c.urlParams_.Set("alt", alt)
9016	c.urlParams_.Set("prettyPrint", "false")
9017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/queries/{jobId}")
9018	urls += "?" + c.urlParams_.Encode()
9019	req, err := http.NewRequest("GET", urls, body)
9020	if err != nil {
9021		return nil, err
9022	}
9023	req.Header = reqHeaders
9024	googleapi.Expand(req.URL, map[string]string{
9025		"projectId": c.projectId,
9026		"jobId":     c.jobId,
9027	})
9028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9029}
9030
9031// Do executes the "bigquery.jobs.getQueryResults" call.
9032// Exactly one of *GetQueryResultsResponse or error will be non-nil. Any
9033// non-2xx status code is an error. Response headers are in either
9034// *GetQueryResultsResponse.ServerResponse.Header or (if a response was
9035// returned at all) in error.(*googleapi.Error).Header. Use
9036// googleapi.IsNotModified to check whether the returned error was
9037// because http.StatusNotModified was returned.
9038func (c *JobsGetQueryResultsCall) Do(opts ...googleapi.CallOption) (*GetQueryResultsResponse, error) {
9039	gensupport.SetOptions(c.urlParams_, opts...)
9040	res, err := c.doRequest("json")
9041	if res != nil && res.StatusCode == http.StatusNotModified {
9042		if res.Body != nil {
9043			res.Body.Close()
9044		}
9045		return nil, &googleapi.Error{
9046			Code:   res.StatusCode,
9047			Header: res.Header,
9048		}
9049	}
9050	if err != nil {
9051		return nil, err
9052	}
9053	defer googleapi.CloseBody(res)
9054	if err := googleapi.CheckResponse(res); err != nil {
9055		return nil, err
9056	}
9057	ret := &GetQueryResultsResponse{
9058		ServerResponse: googleapi.ServerResponse{
9059			Header:         res.Header,
9060			HTTPStatusCode: res.StatusCode,
9061		},
9062	}
9063	target := &ret
9064	if err := gensupport.DecodeResponse(target, res); err != nil {
9065		return nil, err
9066	}
9067	return ret, nil
9068	// {
9069	//   "description": "Retrieves the results of a query job.",
9070	//   "httpMethod": "GET",
9071	//   "id": "bigquery.jobs.getQueryResults",
9072	//   "parameterOrder": [
9073	//     "projectId",
9074	//     "jobId"
9075	//   ],
9076	//   "parameters": {
9077	//     "jobId": {
9078	//       "description": "[Required] Job ID of the query job",
9079	//       "location": "path",
9080	//       "required": true,
9081	//       "type": "string"
9082	//     },
9083	//     "location": {
9084	//       "description": "The geographic location where the job should run. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.",
9085	//       "location": "query",
9086	//       "type": "string"
9087	//     },
9088	//     "maxResults": {
9089	//       "description": "Maximum number of results to read",
9090	//       "format": "uint32",
9091	//       "location": "query",
9092	//       "type": "integer"
9093	//     },
9094	//     "pageToken": {
9095	//       "description": "Page token, returned by a previous call, to request the next page of results",
9096	//       "location": "query",
9097	//       "type": "string"
9098	//     },
9099	//     "projectId": {
9100	//       "description": "[Required] Project ID of the query job",
9101	//       "location": "path",
9102	//       "required": true,
9103	//       "type": "string"
9104	//     },
9105	//     "startIndex": {
9106	//       "description": "Zero-based index of the starting row",
9107	//       "format": "uint64",
9108	//       "location": "query",
9109	//       "type": "string"
9110	//     },
9111	//     "timeoutMs": {
9112	//       "description": "How long to wait for the query to complete, in milliseconds, before returning. Default is 10 seconds. If the timeout passes before the job completes, the 'jobComplete' field in the response will be false",
9113	//       "format": "uint32",
9114	//       "location": "query",
9115	//       "type": "integer"
9116	//     }
9117	//   },
9118	//   "path": "projects/{projectId}/queries/{jobId}",
9119	//   "response": {
9120	//     "$ref": "GetQueryResultsResponse"
9121	//   },
9122	//   "scopes": [
9123	//     "https://www.googleapis.com/auth/bigquery",
9124	//     "https://www.googleapis.com/auth/bigquery.readonly",
9125	//     "https://www.googleapis.com/auth/cloud-platform",
9126	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9127	//   ]
9128	// }
9129
9130}
9131
9132// Pages invokes f for each page of results.
9133// A non-nil error returned from f will halt the iteration.
9134// The provided context supersedes any context provided to the Context method.
9135func (c *JobsGetQueryResultsCall) Pages(ctx context.Context, f func(*GetQueryResultsResponse) error) error {
9136	c.ctx_ = ctx
9137	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9138	for {
9139		x, err := c.Do()
9140		if err != nil {
9141			return err
9142		}
9143		if err := f(x); err != nil {
9144			return err
9145		}
9146		if x.PageToken == "" {
9147			return nil
9148		}
9149		c.PageToken(x.PageToken)
9150	}
9151}
9152
9153// method id "bigquery.jobs.insert":
9154
9155type JobsInsertCall struct {
9156	s          *Service
9157	projectId  string
9158	job        *Job
9159	urlParams_ gensupport.URLParams
9160	mediaInfo_ *gensupport.MediaInfo
9161	ctx_       context.Context
9162	header_    http.Header
9163}
9164
9165// Insert: Starts a new asynchronous job. Requires the Can View project
9166// role.
9167func (r *JobsService) Insert(projectId string, job *Job) *JobsInsertCall {
9168	c := &JobsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9169	c.projectId = projectId
9170	c.job = job
9171	return c
9172}
9173
9174// Media specifies the media to upload in one or more chunks. The chunk
9175// size may be controlled by supplying a MediaOption generated by
9176// googleapi.ChunkSize. The chunk size defaults to
9177// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
9178// upload request will be determined by sniffing the contents of r,
9179// unless a MediaOption generated by googleapi.ContentType is
9180// supplied.
9181// At most one of Media and ResumableMedia may be set.
9182func (c *JobsInsertCall) Media(r io.Reader, options ...googleapi.MediaOption) *JobsInsertCall {
9183	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
9184	return c
9185}
9186
9187// ResumableMedia specifies the media to upload in chunks and can be
9188// canceled with ctx.
9189//
9190// Deprecated: use Media instead.
9191//
9192// At most one of Media and ResumableMedia may be set. mediaType
9193// identifies the MIME media type of the upload, such as "image/png". If
9194// mediaType is "", it will be auto-detected. The provided ctx will
9195// supersede any context previously provided to the Context method.
9196func (c *JobsInsertCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *JobsInsertCall {
9197	c.ctx_ = ctx
9198	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
9199	return c
9200}
9201
9202// ProgressUpdater provides a callback function that will be called
9203// after every chunk. It should be a low-latency function in order to
9204// not slow down the upload operation. This should only be called when
9205// using ResumableMedia (as opposed to Media).
9206func (c *JobsInsertCall) ProgressUpdater(pu googleapi.ProgressUpdater) *JobsInsertCall {
9207	c.mediaInfo_.SetProgressUpdater(pu)
9208	return c
9209}
9210
9211// Fields allows partial responses to be retrieved. See
9212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9213// for more information.
9214func (c *JobsInsertCall) Fields(s ...googleapi.Field) *JobsInsertCall {
9215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9216	return c
9217}
9218
9219// Context sets the context to be used in this call's Do method. Any
9220// pending HTTP request will be aborted if the provided context is
9221// canceled.
9222// This context will supersede any context previously provided to the
9223// ResumableMedia method.
9224func (c *JobsInsertCall) Context(ctx context.Context) *JobsInsertCall {
9225	c.ctx_ = ctx
9226	return c
9227}
9228
9229// Header returns an http.Header that can be modified by the caller to
9230// add HTTP headers to the request.
9231func (c *JobsInsertCall) Header() http.Header {
9232	if c.header_ == nil {
9233		c.header_ = make(http.Header)
9234	}
9235	return c.header_
9236}
9237
9238func (c *JobsInsertCall) doRequest(alt string) (*http.Response, error) {
9239	reqHeaders := make(http.Header)
9240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
9241	for k, v := range c.header_ {
9242		reqHeaders[k] = v
9243	}
9244	reqHeaders.Set("User-Agent", c.s.userAgent())
9245	var body io.Reader = nil
9246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
9247	if err != nil {
9248		return nil, err
9249	}
9250	reqHeaders.Set("Content-Type", "application/json")
9251	c.urlParams_.Set("alt", alt)
9252	c.urlParams_.Set("prettyPrint", "false")
9253	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs")
9254	if c.mediaInfo_ != nil {
9255		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/bigquery/v2/projects/{projectId}/jobs")
9256		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
9257	}
9258	if body == nil {
9259		body = new(bytes.Buffer)
9260		reqHeaders.Set("Content-Type", "application/json")
9261	}
9262	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
9263	defer cleanup()
9264	urls += "?" + c.urlParams_.Encode()
9265	req, err := http.NewRequest("POST", urls, body)
9266	if err != nil {
9267		return nil, err
9268	}
9269	req.Header = reqHeaders
9270	req.GetBody = getBody
9271	googleapi.Expand(req.URL, map[string]string{
9272		"projectId": c.projectId,
9273	})
9274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9275}
9276
9277// Do executes the "bigquery.jobs.insert" call.
9278// Exactly one of *Job or error will be non-nil. Any non-2xx status code
9279// is an error. Response headers are in either
9280// *Job.ServerResponse.Header or (if a response was returned at all) in
9281// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9282// whether the returned error was because http.StatusNotModified was
9283// returned.
9284func (c *JobsInsertCall) Do(opts ...googleapi.CallOption) (*Job, error) {
9285	gensupport.SetOptions(c.urlParams_, opts...)
9286	res, err := c.doRequest("json")
9287	if res != nil && res.StatusCode == http.StatusNotModified {
9288		if res.Body != nil {
9289			res.Body.Close()
9290		}
9291		return nil, &googleapi.Error{
9292			Code:   res.StatusCode,
9293			Header: res.Header,
9294		}
9295	}
9296	if err != nil {
9297		return nil, err
9298	}
9299	defer googleapi.CloseBody(res)
9300	if err := googleapi.CheckResponse(res); err != nil {
9301		return nil, err
9302	}
9303	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
9304	if rx != nil {
9305		rx.Client = c.s.client
9306		rx.UserAgent = c.s.userAgent()
9307		ctx := c.ctx_
9308		if ctx == nil {
9309			ctx = context.TODO()
9310		}
9311		res, err = rx.Upload(ctx)
9312		if err != nil {
9313			return nil, err
9314		}
9315		defer res.Body.Close()
9316		if err := googleapi.CheckResponse(res); err != nil {
9317			return nil, err
9318		}
9319	}
9320	ret := &Job{
9321		ServerResponse: googleapi.ServerResponse{
9322			Header:         res.Header,
9323			HTTPStatusCode: res.StatusCode,
9324		},
9325	}
9326	target := &ret
9327	if err := gensupport.DecodeResponse(target, res); err != nil {
9328		return nil, err
9329	}
9330	return ret, nil
9331	// {
9332	//   "description": "Starts a new asynchronous job. Requires the Can View project role.",
9333	//   "httpMethod": "POST",
9334	//   "id": "bigquery.jobs.insert",
9335	//   "mediaUpload": {
9336	//     "accept": [
9337	//       "*/*"
9338	//     ],
9339	//     "protocols": {
9340	//       "resumable": {
9341	//         "multipart": true,
9342	//         "path": "/resumable/upload/bigquery/v2/projects/{projectId}/jobs"
9343	//       },
9344	//       "simple": {
9345	//         "multipart": true,
9346	//         "path": "/upload/bigquery/v2/projects/{projectId}/jobs"
9347	//       }
9348	//     }
9349	//   },
9350	//   "parameterOrder": [
9351	//     "projectId"
9352	//   ],
9353	//   "parameters": {
9354	//     "projectId": {
9355	//       "description": "Project ID of the project that will be billed for the job",
9356	//       "location": "path",
9357	//       "required": true,
9358	//       "type": "string"
9359	//     }
9360	//   },
9361	//   "path": "projects/{projectId}/jobs",
9362	//   "request": {
9363	//     "$ref": "Job"
9364	//   },
9365	//   "response": {
9366	//     "$ref": "Job"
9367	//   },
9368	//   "scopes": [
9369	//     "https://www.googleapis.com/auth/bigquery",
9370	//     "https://www.googleapis.com/auth/cloud-platform",
9371	//     "https://www.googleapis.com/auth/devstorage.full_control",
9372	//     "https://www.googleapis.com/auth/devstorage.read_only",
9373	//     "https://www.googleapis.com/auth/devstorage.read_write"
9374	//   ],
9375	//   "supportsMediaUpload": true
9376	// }
9377
9378}
9379
9380// method id "bigquery.jobs.list":
9381
9382type JobsListCall struct {
9383	s            *Service
9384	projectId    string
9385	urlParams_   gensupport.URLParams
9386	ifNoneMatch_ string
9387	ctx_         context.Context
9388	header_      http.Header
9389}
9390
9391// List: Lists all jobs that you started in the specified project. Job
9392// information is available for a six month period after creation. The
9393// job list is sorted in reverse chronological order, by job creation
9394// time. Requires the Can View project role, or the Is Owner project
9395// role if you set the allUsers property.
9396func (r *JobsService) List(projectId string) *JobsListCall {
9397	c := &JobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9398	c.projectId = projectId
9399	return c
9400}
9401
9402// AllUsers sets the optional parameter "allUsers": Whether to display
9403// jobs owned by all users in the project. Default false
9404func (c *JobsListCall) AllUsers(allUsers bool) *JobsListCall {
9405	c.urlParams_.Set("allUsers", fmt.Sprint(allUsers))
9406	return c
9407}
9408
9409// MaxCreationTime sets the optional parameter "maxCreationTime": Max
9410// value for job creation time, in milliseconds since the POSIX epoch.
9411// If set, only jobs created before or at this timestamp are returned
9412func (c *JobsListCall) MaxCreationTime(maxCreationTime uint64) *JobsListCall {
9413	c.urlParams_.Set("maxCreationTime", fmt.Sprint(maxCreationTime))
9414	return c
9415}
9416
9417// MaxResults sets the optional parameter "maxResults": Maximum number
9418// of results to return
9419func (c *JobsListCall) MaxResults(maxResults int64) *JobsListCall {
9420	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
9421	return c
9422}
9423
9424// MinCreationTime sets the optional parameter "minCreationTime": Min
9425// value for job creation time, in milliseconds since the POSIX epoch.
9426// If set, only jobs created after or at this timestamp are returned
9427func (c *JobsListCall) MinCreationTime(minCreationTime uint64) *JobsListCall {
9428	c.urlParams_.Set("minCreationTime", fmt.Sprint(minCreationTime))
9429	return c
9430}
9431
9432// PageToken sets the optional parameter "pageToken": Page token,
9433// returned by a previous call, to request the next page of results
9434func (c *JobsListCall) PageToken(pageToken string) *JobsListCall {
9435	c.urlParams_.Set("pageToken", pageToken)
9436	return c
9437}
9438
9439// ParentJobId sets the optional parameter "parentJobId": If set,
9440// retrieves only jobs whose parent is this job. Otherwise, retrieves
9441// only jobs which have no parent
9442func (c *JobsListCall) ParentJobId(parentJobId string) *JobsListCall {
9443	c.urlParams_.Set("parentJobId", parentJobId)
9444	return c
9445}
9446
9447// Projection sets the optional parameter "projection": Restrict
9448// information returned to a set of selected fields
9449//
9450// Possible values:
9451//   "full" - Includes all job data
9452//   "minimal" - Does not include the job configuration
9453func (c *JobsListCall) Projection(projection string) *JobsListCall {
9454	c.urlParams_.Set("projection", projection)
9455	return c
9456}
9457
9458// StateFilter sets the optional parameter "stateFilter": Filter for job
9459// state
9460//
9461// Possible values:
9462//   "done" - Finished jobs
9463//   "pending" - Pending jobs
9464//   "running" - Running jobs
9465func (c *JobsListCall) StateFilter(stateFilter ...string) *JobsListCall {
9466	c.urlParams_.SetMulti("stateFilter", append([]string{}, stateFilter...))
9467	return c
9468}
9469
9470// Fields allows partial responses to be retrieved. See
9471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9472// for more information.
9473func (c *JobsListCall) Fields(s ...googleapi.Field) *JobsListCall {
9474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9475	return c
9476}
9477
9478// IfNoneMatch sets the optional parameter which makes the operation
9479// fail if the object's ETag matches the given value. This is useful for
9480// getting updates only after the object has changed since the last
9481// request. Use googleapi.IsNotModified to check whether the response
9482// error from Do is the result of In-None-Match.
9483func (c *JobsListCall) IfNoneMatch(entityTag string) *JobsListCall {
9484	c.ifNoneMatch_ = entityTag
9485	return c
9486}
9487
9488// Context sets the context to be used in this call's Do method. Any
9489// pending HTTP request will be aborted if the provided context is
9490// canceled.
9491func (c *JobsListCall) Context(ctx context.Context) *JobsListCall {
9492	c.ctx_ = ctx
9493	return c
9494}
9495
9496// Header returns an http.Header that can be modified by the caller to
9497// add HTTP headers to the request.
9498func (c *JobsListCall) Header() http.Header {
9499	if c.header_ == nil {
9500		c.header_ = make(http.Header)
9501	}
9502	return c.header_
9503}
9504
9505func (c *JobsListCall) doRequest(alt string) (*http.Response, error) {
9506	reqHeaders := make(http.Header)
9507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
9508	for k, v := range c.header_ {
9509		reqHeaders[k] = v
9510	}
9511	reqHeaders.Set("User-Agent", c.s.userAgent())
9512	if c.ifNoneMatch_ != "" {
9513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9514	}
9515	var body io.Reader = nil
9516	c.urlParams_.Set("alt", alt)
9517	c.urlParams_.Set("prettyPrint", "false")
9518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs")
9519	urls += "?" + c.urlParams_.Encode()
9520	req, err := http.NewRequest("GET", urls, body)
9521	if err != nil {
9522		return nil, err
9523	}
9524	req.Header = reqHeaders
9525	googleapi.Expand(req.URL, map[string]string{
9526		"projectId": c.projectId,
9527	})
9528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9529}
9530
9531// Do executes the "bigquery.jobs.list" call.
9532// Exactly one of *JobList or error will be non-nil. Any non-2xx status
9533// code is an error. Response headers are in either
9534// *JobList.ServerResponse.Header or (if a response was returned at all)
9535// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
9536// check whether the returned error was because http.StatusNotModified
9537// was returned.
9538func (c *JobsListCall) Do(opts ...googleapi.CallOption) (*JobList, error) {
9539	gensupport.SetOptions(c.urlParams_, opts...)
9540	res, err := c.doRequest("json")
9541	if res != nil && res.StatusCode == http.StatusNotModified {
9542		if res.Body != nil {
9543			res.Body.Close()
9544		}
9545		return nil, &googleapi.Error{
9546			Code:   res.StatusCode,
9547			Header: res.Header,
9548		}
9549	}
9550	if err != nil {
9551		return nil, err
9552	}
9553	defer googleapi.CloseBody(res)
9554	if err := googleapi.CheckResponse(res); err != nil {
9555		return nil, err
9556	}
9557	ret := &JobList{
9558		ServerResponse: googleapi.ServerResponse{
9559			Header:         res.Header,
9560			HTTPStatusCode: res.StatusCode,
9561		},
9562	}
9563	target := &ret
9564	if err := gensupport.DecodeResponse(target, res); err != nil {
9565		return nil, err
9566	}
9567	return ret, nil
9568	// {
9569	//   "description": "Lists all jobs that you started in the specified project. Job information is available for a six month period after creation. The job list is sorted in reverse chronological order, by job creation time. Requires the Can View project role, or the Is Owner project role if you set the allUsers property.",
9570	//   "httpMethod": "GET",
9571	//   "id": "bigquery.jobs.list",
9572	//   "parameterOrder": [
9573	//     "projectId"
9574	//   ],
9575	//   "parameters": {
9576	//     "allUsers": {
9577	//       "description": "Whether to display jobs owned by all users in the project. Default false",
9578	//       "location": "query",
9579	//       "type": "boolean"
9580	//     },
9581	//     "maxCreationTime": {
9582	//       "description": "Max value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned",
9583	//       "format": "uint64",
9584	//       "location": "query",
9585	//       "type": "string"
9586	//     },
9587	//     "maxResults": {
9588	//       "description": "Maximum number of results to return",
9589	//       "format": "uint32",
9590	//       "location": "query",
9591	//       "type": "integer"
9592	//     },
9593	//     "minCreationTime": {
9594	//       "description": "Min value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned",
9595	//       "format": "uint64",
9596	//       "location": "query",
9597	//       "type": "string"
9598	//     },
9599	//     "pageToken": {
9600	//       "description": "Page token, returned by a previous call, to request the next page of results",
9601	//       "location": "query",
9602	//       "type": "string"
9603	//     },
9604	//     "parentJobId": {
9605	//       "description": "If set, retrieves only jobs whose parent is this job. Otherwise, retrieves only jobs which have no parent",
9606	//       "location": "query",
9607	//       "type": "string"
9608	//     },
9609	//     "projectId": {
9610	//       "description": "Project ID of the jobs to list",
9611	//       "location": "path",
9612	//       "required": true,
9613	//       "type": "string"
9614	//     },
9615	//     "projection": {
9616	//       "description": "Restrict information returned to a set of selected fields",
9617	//       "enum": [
9618	//         "full",
9619	//         "minimal"
9620	//       ],
9621	//       "enumDescriptions": [
9622	//         "Includes all job data",
9623	//         "Does not include the job configuration"
9624	//       ],
9625	//       "location": "query",
9626	//       "type": "string"
9627	//     },
9628	//     "stateFilter": {
9629	//       "description": "Filter for job state",
9630	//       "enum": [
9631	//         "done",
9632	//         "pending",
9633	//         "running"
9634	//       ],
9635	//       "enumDescriptions": [
9636	//         "Finished jobs",
9637	//         "Pending jobs",
9638	//         "Running jobs"
9639	//       ],
9640	//       "location": "query",
9641	//       "repeated": true,
9642	//       "type": "string"
9643	//     }
9644	//   },
9645	//   "path": "projects/{projectId}/jobs",
9646	//   "response": {
9647	//     "$ref": "JobList"
9648	//   },
9649	//   "scopes": [
9650	//     "https://www.googleapis.com/auth/bigquery",
9651	//     "https://www.googleapis.com/auth/bigquery.readonly",
9652	//     "https://www.googleapis.com/auth/cloud-platform",
9653	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9654	//   ]
9655	// }
9656
9657}
9658
9659// Pages invokes f for each page of results.
9660// A non-nil error returned from f will halt the iteration.
9661// The provided context supersedes any context provided to the Context method.
9662func (c *JobsListCall) Pages(ctx context.Context, f func(*JobList) error) error {
9663	c.ctx_ = ctx
9664	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9665	for {
9666		x, err := c.Do()
9667		if err != nil {
9668			return err
9669		}
9670		if err := f(x); err != nil {
9671			return err
9672		}
9673		if x.NextPageToken == "" {
9674			return nil
9675		}
9676		c.PageToken(x.NextPageToken)
9677	}
9678}
9679
9680// method id "bigquery.jobs.query":
9681
9682type JobsQueryCall struct {
9683	s            *Service
9684	projectId    string
9685	queryrequest *QueryRequest
9686	urlParams_   gensupport.URLParams
9687	ctx_         context.Context
9688	header_      http.Header
9689}
9690
9691// Query: Runs a BigQuery SQL query synchronously and returns query
9692// results if the query completes within a specified timeout.
9693func (r *JobsService) Query(projectId string, queryrequest *QueryRequest) *JobsQueryCall {
9694	c := &JobsQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9695	c.projectId = projectId
9696	c.queryrequest = queryrequest
9697	return c
9698}
9699
9700// Fields allows partial responses to be retrieved. See
9701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9702// for more information.
9703func (c *JobsQueryCall) Fields(s ...googleapi.Field) *JobsQueryCall {
9704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9705	return c
9706}
9707
9708// Context sets the context to be used in this call's Do method. Any
9709// pending HTTP request will be aborted if the provided context is
9710// canceled.
9711func (c *JobsQueryCall) Context(ctx context.Context) *JobsQueryCall {
9712	c.ctx_ = ctx
9713	return c
9714}
9715
9716// Header returns an http.Header that can be modified by the caller to
9717// add HTTP headers to the request.
9718func (c *JobsQueryCall) Header() http.Header {
9719	if c.header_ == nil {
9720		c.header_ = make(http.Header)
9721	}
9722	return c.header_
9723}
9724
9725func (c *JobsQueryCall) doRequest(alt string) (*http.Response, error) {
9726	reqHeaders := make(http.Header)
9727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
9728	for k, v := range c.header_ {
9729		reqHeaders[k] = v
9730	}
9731	reqHeaders.Set("User-Agent", c.s.userAgent())
9732	var body io.Reader = nil
9733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryrequest)
9734	if err != nil {
9735		return nil, err
9736	}
9737	reqHeaders.Set("Content-Type", "application/json")
9738	c.urlParams_.Set("alt", alt)
9739	c.urlParams_.Set("prettyPrint", "false")
9740	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/queries")
9741	urls += "?" + c.urlParams_.Encode()
9742	req, err := http.NewRequest("POST", urls, body)
9743	if err != nil {
9744		return nil, err
9745	}
9746	req.Header = reqHeaders
9747	googleapi.Expand(req.URL, map[string]string{
9748		"projectId": c.projectId,
9749	})
9750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9751}
9752
9753// Do executes the "bigquery.jobs.query" call.
9754// Exactly one of *QueryResponse or error will be non-nil. Any non-2xx
9755// status code is an error. Response headers are in either
9756// *QueryResponse.ServerResponse.Header or (if a response was returned
9757// at all) in error.(*googleapi.Error).Header. Use
9758// googleapi.IsNotModified to check whether the returned error was
9759// because http.StatusNotModified was returned.
9760func (c *JobsQueryCall) Do(opts ...googleapi.CallOption) (*QueryResponse, error) {
9761	gensupport.SetOptions(c.urlParams_, opts...)
9762	res, err := c.doRequest("json")
9763	if res != nil && res.StatusCode == http.StatusNotModified {
9764		if res.Body != nil {
9765			res.Body.Close()
9766		}
9767		return nil, &googleapi.Error{
9768			Code:   res.StatusCode,
9769			Header: res.Header,
9770		}
9771	}
9772	if err != nil {
9773		return nil, err
9774	}
9775	defer googleapi.CloseBody(res)
9776	if err := googleapi.CheckResponse(res); err != nil {
9777		return nil, err
9778	}
9779	ret := &QueryResponse{
9780		ServerResponse: googleapi.ServerResponse{
9781			Header:         res.Header,
9782			HTTPStatusCode: res.StatusCode,
9783		},
9784	}
9785	target := &ret
9786	if err := gensupport.DecodeResponse(target, res); err != nil {
9787		return nil, err
9788	}
9789	return ret, nil
9790	// {
9791	//   "description": "Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.",
9792	//   "httpMethod": "POST",
9793	//   "id": "bigquery.jobs.query",
9794	//   "parameterOrder": [
9795	//     "projectId"
9796	//   ],
9797	//   "parameters": {
9798	//     "projectId": {
9799	//       "description": "Project ID of the project billed for the query",
9800	//       "location": "path",
9801	//       "required": true,
9802	//       "type": "string"
9803	//     }
9804	//   },
9805	//   "path": "projects/{projectId}/queries",
9806	//   "request": {
9807	//     "$ref": "QueryRequest"
9808	//   },
9809	//   "response": {
9810	//     "$ref": "QueryResponse"
9811	//   },
9812	//   "scopes": [
9813	//     "https://www.googleapis.com/auth/bigquery",
9814	//     "https://www.googleapis.com/auth/bigquery.readonly",
9815	//     "https://www.googleapis.com/auth/cloud-platform",
9816	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9817	//   ]
9818	// }
9819
9820}
9821
9822// method id "bigquery.models.delete":
9823
9824type ModelsDeleteCall struct {
9825	s          *Service
9826	projectId  string
9827	datasetId  string
9828	modelId    string
9829	urlParams_ gensupport.URLParams
9830	ctx_       context.Context
9831	header_    http.Header
9832}
9833
9834// Delete: Deletes the model specified by modelId from the dataset.
9835func (r *ModelsService) Delete(projectId string, datasetId string, modelId string) *ModelsDeleteCall {
9836	c := &ModelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9837	c.projectId = projectId
9838	c.datasetId = datasetId
9839	c.modelId = modelId
9840	return c
9841}
9842
9843// Fields allows partial responses to be retrieved. See
9844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9845// for more information.
9846func (c *ModelsDeleteCall) Fields(s ...googleapi.Field) *ModelsDeleteCall {
9847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9848	return c
9849}
9850
9851// Context sets the context to be used in this call's Do method. Any
9852// pending HTTP request will be aborted if the provided context is
9853// canceled.
9854func (c *ModelsDeleteCall) Context(ctx context.Context) *ModelsDeleteCall {
9855	c.ctx_ = ctx
9856	return c
9857}
9858
9859// Header returns an http.Header that can be modified by the caller to
9860// add HTTP headers to the request.
9861func (c *ModelsDeleteCall) Header() http.Header {
9862	if c.header_ == nil {
9863		c.header_ = make(http.Header)
9864	}
9865	return c.header_
9866}
9867
9868func (c *ModelsDeleteCall) doRequest(alt string) (*http.Response, error) {
9869	reqHeaders := make(http.Header)
9870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
9871	for k, v := range c.header_ {
9872		reqHeaders[k] = v
9873	}
9874	reqHeaders.Set("User-Agent", c.s.userAgent())
9875	var body io.Reader = nil
9876	c.urlParams_.Set("alt", alt)
9877	c.urlParams_.Set("prettyPrint", "false")
9878	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
9879	urls += "?" + c.urlParams_.Encode()
9880	req, err := http.NewRequest("DELETE", urls, body)
9881	if err != nil {
9882		return nil, err
9883	}
9884	req.Header = reqHeaders
9885	googleapi.Expand(req.URL, map[string]string{
9886		"projectId": c.projectId,
9887		"datasetId": c.datasetId,
9888		"modelId":   c.modelId,
9889	})
9890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9891}
9892
9893// Do executes the "bigquery.models.delete" call.
9894func (c *ModelsDeleteCall) Do(opts ...googleapi.CallOption) error {
9895	gensupport.SetOptions(c.urlParams_, opts...)
9896	res, err := c.doRequest("json")
9897	if err != nil {
9898		return err
9899	}
9900	defer googleapi.CloseBody(res)
9901	if err := googleapi.CheckResponse(res); err != nil {
9902		return err
9903	}
9904	return nil
9905	// {
9906	//   "description": "Deletes the model specified by modelId from the dataset.",
9907	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
9908	//   "httpMethod": "DELETE",
9909	//   "id": "bigquery.models.delete",
9910	//   "parameterOrder": [
9911	//     "projectId",
9912	//     "datasetId",
9913	//     "modelId"
9914	//   ],
9915	//   "parameters": {
9916	//     "datasetId": {
9917	//       "description": "Required. Dataset ID of the model to delete.",
9918	//       "location": "path",
9919	//       "pattern": "^[^/]+$",
9920	//       "required": true,
9921	//       "type": "string"
9922	//     },
9923	//     "modelId": {
9924	//       "description": "Required. Model ID of the model to delete.",
9925	//       "location": "path",
9926	//       "pattern": "^[^/]+$",
9927	//       "required": true,
9928	//       "type": "string"
9929	//     },
9930	//     "projectId": {
9931	//       "description": "Required. Project ID of the model to delete.",
9932	//       "location": "path",
9933	//       "pattern": "^[^/]+$",
9934	//       "required": true,
9935	//       "type": "string"
9936	//     }
9937	//   },
9938	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
9939	//   "scopes": [
9940	//     "https://www.googleapis.com/auth/bigquery",
9941	//     "https://www.googleapis.com/auth/cloud-platform"
9942	//   ]
9943	// }
9944
9945}
9946
9947// method id "bigquery.models.get":
9948
9949type ModelsGetCall struct {
9950	s            *Service
9951	projectId    string
9952	datasetId    string
9953	modelId      string
9954	urlParams_   gensupport.URLParams
9955	ifNoneMatch_ string
9956	ctx_         context.Context
9957	header_      http.Header
9958}
9959
9960// Get: Gets the specified model resource by model ID.
9961func (r *ModelsService) Get(projectId string, datasetId string, modelId string) *ModelsGetCall {
9962	c := &ModelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9963	c.projectId = projectId
9964	c.datasetId = datasetId
9965	c.modelId = modelId
9966	return c
9967}
9968
9969// Fields allows partial responses to be retrieved. See
9970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9971// for more information.
9972func (c *ModelsGetCall) Fields(s ...googleapi.Field) *ModelsGetCall {
9973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9974	return c
9975}
9976
9977// IfNoneMatch sets the optional parameter which makes the operation
9978// fail if the object's ETag matches the given value. This is useful for
9979// getting updates only after the object has changed since the last
9980// request. Use googleapi.IsNotModified to check whether the response
9981// error from Do is the result of In-None-Match.
9982func (c *ModelsGetCall) IfNoneMatch(entityTag string) *ModelsGetCall {
9983	c.ifNoneMatch_ = entityTag
9984	return c
9985}
9986
9987// Context sets the context to be used in this call's Do method. Any
9988// pending HTTP request will be aborted if the provided context is
9989// canceled.
9990func (c *ModelsGetCall) Context(ctx context.Context) *ModelsGetCall {
9991	c.ctx_ = ctx
9992	return c
9993}
9994
9995// Header returns an http.Header that can be modified by the caller to
9996// add HTTP headers to the request.
9997func (c *ModelsGetCall) Header() http.Header {
9998	if c.header_ == nil {
9999		c.header_ = make(http.Header)
10000	}
10001	return c.header_
10002}
10003
10004func (c *ModelsGetCall) doRequest(alt string) (*http.Response, error) {
10005	reqHeaders := make(http.Header)
10006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10007	for k, v := range c.header_ {
10008		reqHeaders[k] = v
10009	}
10010	reqHeaders.Set("User-Agent", c.s.userAgent())
10011	if c.ifNoneMatch_ != "" {
10012		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10013	}
10014	var body io.Reader = nil
10015	c.urlParams_.Set("alt", alt)
10016	c.urlParams_.Set("prettyPrint", "false")
10017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
10018	urls += "?" + c.urlParams_.Encode()
10019	req, err := http.NewRequest("GET", urls, body)
10020	if err != nil {
10021		return nil, err
10022	}
10023	req.Header = reqHeaders
10024	googleapi.Expand(req.URL, map[string]string{
10025		"projectId": c.projectId,
10026		"datasetId": c.datasetId,
10027		"modelId":   c.modelId,
10028	})
10029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10030}
10031
10032// Do executes the "bigquery.models.get" call.
10033// Exactly one of *Model or error will be non-nil. Any non-2xx status
10034// code is an error. Response headers are in either
10035// *Model.ServerResponse.Header or (if a response was returned at all)
10036// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10037// check whether the returned error was because http.StatusNotModified
10038// was returned.
10039func (c *ModelsGetCall) Do(opts ...googleapi.CallOption) (*Model, error) {
10040	gensupport.SetOptions(c.urlParams_, opts...)
10041	res, err := c.doRequest("json")
10042	if res != nil && res.StatusCode == http.StatusNotModified {
10043		if res.Body != nil {
10044			res.Body.Close()
10045		}
10046		return nil, &googleapi.Error{
10047			Code:   res.StatusCode,
10048			Header: res.Header,
10049		}
10050	}
10051	if err != nil {
10052		return nil, err
10053	}
10054	defer googleapi.CloseBody(res)
10055	if err := googleapi.CheckResponse(res); err != nil {
10056		return nil, err
10057	}
10058	ret := &Model{
10059		ServerResponse: googleapi.ServerResponse{
10060			Header:         res.Header,
10061			HTTPStatusCode: res.StatusCode,
10062		},
10063	}
10064	target := &ret
10065	if err := gensupport.DecodeResponse(target, res); err != nil {
10066		return nil, err
10067	}
10068	return ret, nil
10069	// {
10070	//   "description": "Gets the specified model resource by model ID.",
10071	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
10072	//   "httpMethod": "GET",
10073	//   "id": "bigquery.models.get",
10074	//   "parameterOrder": [
10075	//     "projectId",
10076	//     "datasetId",
10077	//     "modelId"
10078	//   ],
10079	//   "parameters": {
10080	//     "datasetId": {
10081	//       "description": "Required. Dataset ID of the requested model.",
10082	//       "location": "path",
10083	//       "pattern": "^[^/]+$",
10084	//       "required": true,
10085	//       "type": "string"
10086	//     },
10087	//     "modelId": {
10088	//       "description": "Required. Model ID of the requested model.",
10089	//       "location": "path",
10090	//       "pattern": "^[^/]+$",
10091	//       "required": true,
10092	//       "type": "string"
10093	//     },
10094	//     "projectId": {
10095	//       "description": "Required. Project ID of the requested model.",
10096	//       "location": "path",
10097	//       "pattern": "^[^/]+$",
10098	//       "required": true,
10099	//       "type": "string"
10100	//     }
10101	//   },
10102	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
10103	//   "response": {
10104	//     "$ref": "Model"
10105	//   },
10106	//   "scopes": [
10107	//     "https://www.googleapis.com/auth/bigquery",
10108	//     "https://www.googleapis.com/auth/bigquery.readonly",
10109	//     "https://www.googleapis.com/auth/cloud-platform",
10110	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10111	//   ]
10112	// }
10113
10114}
10115
10116// method id "bigquery.models.list":
10117
10118type ModelsListCall struct {
10119	s            *Service
10120	projectId    string
10121	datasetId    string
10122	urlParams_   gensupport.URLParams
10123	ifNoneMatch_ string
10124	ctx_         context.Context
10125	header_      http.Header
10126}
10127
10128// List: Lists all models in the specified dataset. Requires the READER
10129// dataset role.
10130func (r *ModelsService) List(projectId string, datasetId string) *ModelsListCall {
10131	c := &ModelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10132	c.projectId = projectId
10133	c.datasetId = datasetId
10134	return c
10135}
10136
10137// MaxResults sets the optional parameter "maxResults": The maximum
10138// number of results to return in a single response page. Leverage the
10139// page tokens to iterate through the entire collection.
10140func (c *ModelsListCall) MaxResults(maxResults int64) *ModelsListCall {
10141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
10142	return c
10143}
10144
10145// PageToken sets the optional parameter "pageToken": Page token,
10146// returned by a previous call to request the next page of results
10147func (c *ModelsListCall) PageToken(pageToken string) *ModelsListCall {
10148	c.urlParams_.Set("pageToken", pageToken)
10149	return c
10150}
10151
10152// Fields allows partial responses to be retrieved. See
10153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10154// for more information.
10155func (c *ModelsListCall) Fields(s ...googleapi.Field) *ModelsListCall {
10156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10157	return c
10158}
10159
10160// IfNoneMatch sets the optional parameter which makes the operation
10161// fail if the object's ETag matches the given value. This is useful for
10162// getting updates only after the object has changed since the last
10163// request. Use googleapi.IsNotModified to check whether the response
10164// error from Do is the result of In-None-Match.
10165func (c *ModelsListCall) IfNoneMatch(entityTag string) *ModelsListCall {
10166	c.ifNoneMatch_ = entityTag
10167	return c
10168}
10169
10170// Context sets the context to be used in this call's Do method. Any
10171// pending HTTP request will be aborted if the provided context is
10172// canceled.
10173func (c *ModelsListCall) Context(ctx context.Context) *ModelsListCall {
10174	c.ctx_ = ctx
10175	return c
10176}
10177
10178// Header returns an http.Header that can be modified by the caller to
10179// add HTTP headers to the request.
10180func (c *ModelsListCall) Header() http.Header {
10181	if c.header_ == nil {
10182		c.header_ = make(http.Header)
10183	}
10184	return c.header_
10185}
10186
10187func (c *ModelsListCall) doRequest(alt string) (*http.Response, error) {
10188	reqHeaders := make(http.Header)
10189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10190	for k, v := range c.header_ {
10191		reqHeaders[k] = v
10192	}
10193	reqHeaders.Set("User-Agent", c.s.userAgent())
10194	if c.ifNoneMatch_ != "" {
10195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10196	}
10197	var body io.Reader = nil
10198	c.urlParams_.Set("alt", alt)
10199	c.urlParams_.Set("prettyPrint", "false")
10200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models")
10201	urls += "?" + c.urlParams_.Encode()
10202	req, err := http.NewRequest("GET", urls, body)
10203	if err != nil {
10204		return nil, err
10205	}
10206	req.Header = reqHeaders
10207	googleapi.Expand(req.URL, map[string]string{
10208		"projectId": c.projectId,
10209		"datasetId": c.datasetId,
10210	})
10211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10212}
10213
10214// Do executes the "bigquery.models.list" call.
10215// Exactly one of *ListModelsResponse or error will be non-nil. Any
10216// non-2xx status code is an error. Response headers are in either
10217// *ListModelsResponse.ServerResponse.Header or (if a response was
10218// returned at all) in error.(*googleapi.Error).Header. Use
10219// googleapi.IsNotModified to check whether the returned error was
10220// because http.StatusNotModified was returned.
10221func (c *ModelsListCall) Do(opts ...googleapi.CallOption) (*ListModelsResponse, error) {
10222	gensupport.SetOptions(c.urlParams_, opts...)
10223	res, err := c.doRequest("json")
10224	if res != nil && res.StatusCode == http.StatusNotModified {
10225		if res.Body != nil {
10226			res.Body.Close()
10227		}
10228		return nil, &googleapi.Error{
10229			Code:   res.StatusCode,
10230			Header: res.Header,
10231		}
10232	}
10233	if err != nil {
10234		return nil, err
10235	}
10236	defer googleapi.CloseBody(res)
10237	if err := googleapi.CheckResponse(res); err != nil {
10238		return nil, err
10239	}
10240	ret := &ListModelsResponse{
10241		ServerResponse: googleapi.ServerResponse{
10242			Header:         res.Header,
10243			HTTPStatusCode: res.StatusCode,
10244		},
10245	}
10246	target := &ret
10247	if err := gensupport.DecodeResponse(target, res); err != nil {
10248		return nil, err
10249	}
10250	return ret, nil
10251	// {
10252	//   "description": "Lists all models in the specified dataset. Requires the READER dataset role.",
10253	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models",
10254	//   "httpMethod": "GET",
10255	//   "id": "bigquery.models.list",
10256	//   "parameterOrder": [
10257	//     "projectId",
10258	//     "datasetId"
10259	//   ],
10260	//   "parameters": {
10261	//     "datasetId": {
10262	//       "description": "Required. Dataset ID of the models to list.",
10263	//       "location": "path",
10264	//       "pattern": "^[^/]+$",
10265	//       "required": true,
10266	//       "type": "string"
10267	//     },
10268	//     "maxResults": {
10269	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
10270	//       "format": "uint32",
10271	//       "location": "query",
10272	//       "type": "integer"
10273	//     },
10274	//     "pageToken": {
10275	//       "description": "Page token, returned by a previous call to request the next page of results",
10276	//       "location": "query",
10277	//       "type": "string"
10278	//     },
10279	//     "projectId": {
10280	//       "description": "Required. Project ID of the models to list.",
10281	//       "location": "path",
10282	//       "pattern": "^[^/]+$",
10283	//       "required": true,
10284	//       "type": "string"
10285	//     }
10286	//   },
10287	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models",
10288	//   "response": {
10289	//     "$ref": "ListModelsResponse"
10290	//   },
10291	//   "scopes": [
10292	//     "https://www.googleapis.com/auth/bigquery",
10293	//     "https://www.googleapis.com/auth/bigquery.readonly",
10294	//     "https://www.googleapis.com/auth/cloud-platform",
10295	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10296	//   ]
10297	// }
10298
10299}
10300
10301// Pages invokes f for each page of results.
10302// A non-nil error returned from f will halt the iteration.
10303// The provided context supersedes any context provided to the Context method.
10304func (c *ModelsListCall) Pages(ctx context.Context, f func(*ListModelsResponse) error) error {
10305	c.ctx_ = ctx
10306	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10307	for {
10308		x, err := c.Do()
10309		if err != nil {
10310			return err
10311		}
10312		if err := f(x); err != nil {
10313			return err
10314		}
10315		if x.NextPageToken == "" {
10316			return nil
10317		}
10318		c.PageToken(x.NextPageToken)
10319	}
10320}
10321
10322// method id "bigquery.models.patch":
10323
10324type ModelsPatchCall struct {
10325	s          *Service
10326	projectId  string
10327	datasetId  string
10328	modelId    string
10329	model      *Model
10330	urlParams_ gensupport.URLParams
10331	ctx_       context.Context
10332	header_    http.Header
10333}
10334
10335// Patch: Patch specific fields in the specified model.
10336func (r *ModelsService) Patch(projectId string, datasetId string, modelId string, model *Model) *ModelsPatchCall {
10337	c := &ModelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10338	c.projectId = projectId
10339	c.datasetId = datasetId
10340	c.modelId = modelId
10341	c.model = model
10342	return c
10343}
10344
10345// Fields allows partial responses to be retrieved. See
10346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10347// for more information.
10348func (c *ModelsPatchCall) Fields(s ...googleapi.Field) *ModelsPatchCall {
10349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10350	return c
10351}
10352
10353// Context sets the context to be used in this call's Do method. Any
10354// pending HTTP request will be aborted if the provided context is
10355// canceled.
10356func (c *ModelsPatchCall) Context(ctx context.Context) *ModelsPatchCall {
10357	c.ctx_ = ctx
10358	return c
10359}
10360
10361// Header returns an http.Header that can be modified by the caller to
10362// add HTTP headers to the request.
10363func (c *ModelsPatchCall) Header() http.Header {
10364	if c.header_ == nil {
10365		c.header_ = make(http.Header)
10366	}
10367	return c.header_
10368}
10369
10370func (c *ModelsPatchCall) doRequest(alt string) (*http.Response, error) {
10371	reqHeaders := make(http.Header)
10372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10373	for k, v := range c.header_ {
10374		reqHeaders[k] = v
10375	}
10376	reqHeaders.Set("User-Agent", c.s.userAgent())
10377	var body io.Reader = nil
10378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.model)
10379	if err != nil {
10380		return nil, err
10381	}
10382	reqHeaders.Set("Content-Type", "application/json")
10383	c.urlParams_.Set("alt", alt)
10384	c.urlParams_.Set("prettyPrint", "false")
10385	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
10386	urls += "?" + c.urlParams_.Encode()
10387	req, err := http.NewRequest("PATCH", urls, body)
10388	if err != nil {
10389		return nil, err
10390	}
10391	req.Header = reqHeaders
10392	googleapi.Expand(req.URL, map[string]string{
10393		"projectId": c.projectId,
10394		"datasetId": c.datasetId,
10395		"modelId":   c.modelId,
10396	})
10397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10398}
10399
10400// Do executes the "bigquery.models.patch" call.
10401// Exactly one of *Model or error will be non-nil. Any non-2xx status
10402// code is an error. Response headers are in either
10403// *Model.ServerResponse.Header or (if a response was returned at all)
10404// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10405// check whether the returned error was because http.StatusNotModified
10406// was returned.
10407func (c *ModelsPatchCall) Do(opts ...googleapi.CallOption) (*Model, error) {
10408	gensupport.SetOptions(c.urlParams_, opts...)
10409	res, err := c.doRequest("json")
10410	if res != nil && res.StatusCode == http.StatusNotModified {
10411		if res.Body != nil {
10412			res.Body.Close()
10413		}
10414		return nil, &googleapi.Error{
10415			Code:   res.StatusCode,
10416			Header: res.Header,
10417		}
10418	}
10419	if err != nil {
10420		return nil, err
10421	}
10422	defer googleapi.CloseBody(res)
10423	if err := googleapi.CheckResponse(res); err != nil {
10424		return nil, err
10425	}
10426	ret := &Model{
10427		ServerResponse: googleapi.ServerResponse{
10428			Header:         res.Header,
10429			HTTPStatusCode: res.StatusCode,
10430		},
10431	}
10432	target := &ret
10433	if err := gensupport.DecodeResponse(target, res); err != nil {
10434		return nil, err
10435	}
10436	return ret, nil
10437	// {
10438	//   "description": "Patch specific fields in the specified model.",
10439	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
10440	//   "httpMethod": "PATCH",
10441	//   "id": "bigquery.models.patch",
10442	//   "parameterOrder": [
10443	//     "projectId",
10444	//     "datasetId",
10445	//     "modelId"
10446	//   ],
10447	//   "parameters": {
10448	//     "datasetId": {
10449	//       "description": "Required. Dataset ID of the model to patch.",
10450	//       "location": "path",
10451	//       "pattern": "^[^/]+$",
10452	//       "required": true,
10453	//       "type": "string"
10454	//     },
10455	//     "modelId": {
10456	//       "description": "Required. Model ID of the model to patch.",
10457	//       "location": "path",
10458	//       "pattern": "^[^/]+$",
10459	//       "required": true,
10460	//       "type": "string"
10461	//     },
10462	//     "projectId": {
10463	//       "description": "Required. Project ID of the model to patch.",
10464	//       "location": "path",
10465	//       "pattern": "^[^/]+$",
10466	//       "required": true,
10467	//       "type": "string"
10468	//     }
10469	//   },
10470	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
10471	//   "request": {
10472	//     "$ref": "Model"
10473	//   },
10474	//   "response": {
10475	//     "$ref": "Model"
10476	//   },
10477	//   "scopes": [
10478	//     "https://www.googleapis.com/auth/bigquery",
10479	//     "https://www.googleapis.com/auth/cloud-platform"
10480	//   ]
10481	// }
10482
10483}
10484
10485// method id "bigquery.projects.getServiceAccount":
10486
10487type ProjectsGetServiceAccountCall struct {
10488	s            *Service
10489	projectId    string
10490	urlParams_   gensupport.URLParams
10491	ifNoneMatch_ string
10492	ctx_         context.Context
10493	header_      http.Header
10494}
10495
10496// GetServiceAccount: Returns the email address of the service account
10497// for your project used for interactions with Google Cloud KMS.
10498func (r *ProjectsService) GetServiceAccount(projectId string) *ProjectsGetServiceAccountCall {
10499	c := &ProjectsGetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10500	c.projectId = projectId
10501	return c
10502}
10503
10504// Fields allows partial responses to be retrieved. See
10505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10506// for more information.
10507func (c *ProjectsGetServiceAccountCall) Fields(s ...googleapi.Field) *ProjectsGetServiceAccountCall {
10508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10509	return c
10510}
10511
10512// IfNoneMatch sets the optional parameter which makes the operation
10513// fail if the object's ETag matches the given value. This is useful for
10514// getting updates only after the object has changed since the last
10515// request. Use googleapi.IsNotModified to check whether the response
10516// error from Do is the result of In-None-Match.
10517func (c *ProjectsGetServiceAccountCall) IfNoneMatch(entityTag string) *ProjectsGetServiceAccountCall {
10518	c.ifNoneMatch_ = entityTag
10519	return c
10520}
10521
10522// Context sets the context to be used in this call's Do method. Any
10523// pending HTTP request will be aborted if the provided context is
10524// canceled.
10525func (c *ProjectsGetServiceAccountCall) Context(ctx context.Context) *ProjectsGetServiceAccountCall {
10526	c.ctx_ = ctx
10527	return c
10528}
10529
10530// Header returns an http.Header that can be modified by the caller to
10531// add HTTP headers to the request.
10532func (c *ProjectsGetServiceAccountCall) Header() http.Header {
10533	if c.header_ == nil {
10534		c.header_ = make(http.Header)
10535	}
10536	return c.header_
10537}
10538
10539func (c *ProjectsGetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
10540	reqHeaders := make(http.Header)
10541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10542	for k, v := range c.header_ {
10543		reqHeaders[k] = v
10544	}
10545	reqHeaders.Set("User-Agent", c.s.userAgent())
10546	if c.ifNoneMatch_ != "" {
10547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10548	}
10549	var body io.Reader = nil
10550	c.urlParams_.Set("alt", alt)
10551	c.urlParams_.Set("prettyPrint", "false")
10552	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/serviceAccount")
10553	urls += "?" + c.urlParams_.Encode()
10554	req, err := http.NewRequest("GET", urls, body)
10555	if err != nil {
10556		return nil, err
10557	}
10558	req.Header = reqHeaders
10559	googleapi.Expand(req.URL, map[string]string{
10560		"projectId": c.projectId,
10561	})
10562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10563}
10564
10565// Do executes the "bigquery.projects.getServiceAccount" call.
10566// Exactly one of *GetServiceAccountResponse or error will be non-nil.
10567// Any non-2xx status code is an error. Response headers are in either
10568// *GetServiceAccountResponse.ServerResponse.Header or (if a response
10569// was returned at all) in error.(*googleapi.Error).Header. Use
10570// googleapi.IsNotModified to check whether the returned error was
10571// because http.StatusNotModified was returned.
10572func (c *ProjectsGetServiceAccountCall) Do(opts ...googleapi.CallOption) (*GetServiceAccountResponse, error) {
10573	gensupport.SetOptions(c.urlParams_, opts...)
10574	res, err := c.doRequest("json")
10575	if res != nil && res.StatusCode == http.StatusNotModified {
10576		if res.Body != nil {
10577			res.Body.Close()
10578		}
10579		return nil, &googleapi.Error{
10580			Code:   res.StatusCode,
10581			Header: res.Header,
10582		}
10583	}
10584	if err != nil {
10585		return nil, err
10586	}
10587	defer googleapi.CloseBody(res)
10588	if err := googleapi.CheckResponse(res); err != nil {
10589		return nil, err
10590	}
10591	ret := &GetServiceAccountResponse{
10592		ServerResponse: googleapi.ServerResponse{
10593			Header:         res.Header,
10594			HTTPStatusCode: res.StatusCode,
10595		},
10596	}
10597	target := &ret
10598	if err := gensupport.DecodeResponse(target, res); err != nil {
10599		return nil, err
10600	}
10601	return ret, nil
10602	// {
10603	//   "description": "Returns the email address of the service account for your project used for interactions with Google Cloud KMS.",
10604	//   "httpMethod": "GET",
10605	//   "id": "bigquery.projects.getServiceAccount",
10606	//   "parameterOrder": [
10607	//     "projectId"
10608	//   ],
10609	//   "parameters": {
10610	//     "projectId": {
10611	//       "description": "Project ID for which the service account is requested.",
10612	//       "location": "path",
10613	//       "required": true,
10614	//       "type": "string"
10615	//     }
10616	//   },
10617	//   "path": "projects/{projectId}/serviceAccount",
10618	//   "response": {
10619	//     "$ref": "GetServiceAccountResponse"
10620	//   },
10621	//   "scopes": [
10622	//     "https://www.googleapis.com/auth/bigquery",
10623	//     "https://www.googleapis.com/auth/bigquery.readonly",
10624	//     "https://www.googleapis.com/auth/cloud-platform",
10625	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10626	//   ]
10627	// }
10628
10629}
10630
10631// method id "bigquery.projects.list":
10632
10633type ProjectsListCall struct {
10634	s            *Service
10635	urlParams_   gensupport.URLParams
10636	ifNoneMatch_ string
10637	ctx_         context.Context
10638	header_      http.Header
10639}
10640
10641// List: Lists all projects to which you have been granted any project
10642// role.
10643func (r *ProjectsService) List() *ProjectsListCall {
10644	c := &ProjectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10645	return c
10646}
10647
10648// MaxResults sets the optional parameter "maxResults": Maximum number
10649// of results to return
10650func (c *ProjectsListCall) MaxResults(maxResults int64) *ProjectsListCall {
10651	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
10652	return c
10653}
10654
10655// PageToken sets the optional parameter "pageToken": Page token,
10656// returned by a previous call, to request the next page of results
10657func (c *ProjectsListCall) PageToken(pageToken string) *ProjectsListCall {
10658	c.urlParams_.Set("pageToken", pageToken)
10659	return c
10660}
10661
10662// Fields allows partial responses to be retrieved. See
10663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10664// for more information.
10665func (c *ProjectsListCall) Fields(s ...googleapi.Field) *ProjectsListCall {
10666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10667	return c
10668}
10669
10670// IfNoneMatch sets the optional parameter which makes the operation
10671// fail if the object's ETag matches the given value. This is useful for
10672// getting updates only after the object has changed since the last
10673// request. Use googleapi.IsNotModified to check whether the response
10674// error from Do is the result of In-None-Match.
10675func (c *ProjectsListCall) IfNoneMatch(entityTag string) *ProjectsListCall {
10676	c.ifNoneMatch_ = entityTag
10677	return c
10678}
10679
10680// Context sets the context to be used in this call's Do method. Any
10681// pending HTTP request will be aborted if the provided context is
10682// canceled.
10683func (c *ProjectsListCall) Context(ctx context.Context) *ProjectsListCall {
10684	c.ctx_ = ctx
10685	return c
10686}
10687
10688// Header returns an http.Header that can be modified by the caller to
10689// add HTTP headers to the request.
10690func (c *ProjectsListCall) Header() http.Header {
10691	if c.header_ == nil {
10692		c.header_ = make(http.Header)
10693	}
10694	return c.header_
10695}
10696
10697func (c *ProjectsListCall) doRequest(alt string) (*http.Response, error) {
10698	reqHeaders := make(http.Header)
10699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10700	for k, v := range c.header_ {
10701		reqHeaders[k] = v
10702	}
10703	reqHeaders.Set("User-Agent", c.s.userAgent())
10704	if c.ifNoneMatch_ != "" {
10705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10706	}
10707	var body io.Reader = nil
10708	c.urlParams_.Set("alt", alt)
10709	c.urlParams_.Set("prettyPrint", "false")
10710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects")
10711	urls += "?" + c.urlParams_.Encode()
10712	req, err := http.NewRequest("GET", urls, body)
10713	if err != nil {
10714		return nil, err
10715	}
10716	req.Header = reqHeaders
10717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10718}
10719
10720// Do executes the "bigquery.projects.list" call.
10721// Exactly one of *ProjectList or error will be non-nil. Any non-2xx
10722// status code is an error. Response headers are in either
10723// *ProjectList.ServerResponse.Header or (if a response was returned at
10724// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10725// to check whether the returned error was because
10726// http.StatusNotModified was returned.
10727func (c *ProjectsListCall) Do(opts ...googleapi.CallOption) (*ProjectList, error) {
10728	gensupport.SetOptions(c.urlParams_, opts...)
10729	res, err := c.doRequest("json")
10730	if res != nil && res.StatusCode == http.StatusNotModified {
10731		if res.Body != nil {
10732			res.Body.Close()
10733		}
10734		return nil, &googleapi.Error{
10735			Code:   res.StatusCode,
10736			Header: res.Header,
10737		}
10738	}
10739	if err != nil {
10740		return nil, err
10741	}
10742	defer googleapi.CloseBody(res)
10743	if err := googleapi.CheckResponse(res); err != nil {
10744		return nil, err
10745	}
10746	ret := &ProjectList{
10747		ServerResponse: googleapi.ServerResponse{
10748			Header:         res.Header,
10749			HTTPStatusCode: res.StatusCode,
10750		},
10751	}
10752	target := &ret
10753	if err := gensupport.DecodeResponse(target, res); err != nil {
10754		return nil, err
10755	}
10756	return ret, nil
10757	// {
10758	//   "description": "Lists all projects to which you have been granted any project role.",
10759	//   "httpMethod": "GET",
10760	//   "id": "bigquery.projects.list",
10761	//   "parameters": {
10762	//     "maxResults": {
10763	//       "description": "Maximum number of results to return",
10764	//       "format": "uint32",
10765	//       "location": "query",
10766	//       "type": "integer"
10767	//     },
10768	//     "pageToken": {
10769	//       "description": "Page token, returned by a previous call, to request the next page of results",
10770	//       "location": "query",
10771	//       "type": "string"
10772	//     }
10773	//   },
10774	//   "path": "projects",
10775	//   "response": {
10776	//     "$ref": "ProjectList"
10777	//   },
10778	//   "scopes": [
10779	//     "https://www.googleapis.com/auth/bigquery",
10780	//     "https://www.googleapis.com/auth/bigquery.readonly",
10781	//     "https://www.googleapis.com/auth/cloud-platform",
10782	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10783	//   ]
10784	// }
10785
10786}
10787
10788// Pages invokes f for each page of results.
10789// A non-nil error returned from f will halt the iteration.
10790// The provided context supersedes any context provided to the Context method.
10791func (c *ProjectsListCall) Pages(ctx context.Context, f func(*ProjectList) error) error {
10792	c.ctx_ = ctx
10793	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10794	for {
10795		x, err := c.Do()
10796		if err != nil {
10797			return err
10798		}
10799		if err := f(x); err != nil {
10800			return err
10801		}
10802		if x.NextPageToken == "" {
10803			return nil
10804		}
10805		c.PageToken(x.NextPageToken)
10806	}
10807}
10808
10809// method id "bigquery.routines.delete":
10810
10811type RoutinesDeleteCall struct {
10812	s          *Service
10813	projectId  string
10814	datasetId  string
10815	routineId  string
10816	urlParams_ gensupport.URLParams
10817	ctx_       context.Context
10818	header_    http.Header
10819}
10820
10821// Delete: Deletes the routine specified by routineId from the dataset.
10822func (r *RoutinesService) Delete(projectId string, datasetId string, routineId string) *RoutinesDeleteCall {
10823	c := &RoutinesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10824	c.projectId = projectId
10825	c.datasetId = datasetId
10826	c.routineId = routineId
10827	return c
10828}
10829
10830// Fields allows partial responses to be retrieved. See
10831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10832// for more information.
10833func (c *RoutinesDeleteCall) Fields(s ...googleapi.Field) *RoutinesDeleteCall {
10834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10835	return c
10836}
10837
10838// Context sets the context to be used in this call's Do method. Any
10839// pending HTTP request will be aborted if the provided context is
10840// canceled.
10841func (c *RoutinesDeleteCall) Context(ctx context.Context) *RoutinesDeleteCall {
10842	c.ctx_ = ctx
10843	return c
10844}
10845
10846// Header returns an http.Header that can be modified by the caller to
10847// add HTTP headers to the request.
10848func (c *RoutinesDeleteCall) Header() http.Header {
10849	if c.header_ == nil {
10850		c.header_ = make(http.Header)
10851	}
10852	return c.header_
10853}
10854
10855func (c *RoutinesDeleteCall) doRequest(alt string) (*http.Response, error) {
10856	reqHeaders := make(http.Header)
10857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
10858	for k, v := range c.header_ {
10859		reqHeaders[k] = v
10860	}
10861	reqHeaders.Set("User-Agent", c.s.userAgent())
10862	var body io.Reader = nil
10863	c.urlParams_.Set("alt", alt)
10864	c.urlParams_.Set("prettyPrint", "false")
10865	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
10866	urls += "?" + c.urlParams_.Encode()
10867	req, err := http.NewRequest("DELETE", urls, body)
10868	if err != nil {
10869		return nil, err
10870	}
10871	req.Header = reqHeaders
10872	googleapi.Expand(req.URL, map[string]string{
10873		"projectId": c.projectId,
10874		"datasetId": c.datasetId,
10875		"routineId": c.routineId,
10876	})
10877	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10878}
10879
10880// Do executes the "bigquery.routines.delete" call.
10881func (c *RoutinesDeleteCall) Do(opts ...googleapi.CallOption) error {
10882	gensupport.SetOptions(c.urlParams_, opts...)
10883	res, err := c.doRequest("json")
10884	if err != nil {
10885		return err
10886	}
10887	defer googleapi.CloseBody(res)
10888	if err := googleapi.CheckResponse(res); err != nil {
10889		return err
10890	}
10891	return nil
10892	// {
10893	//   "description": "Deletes the routine specified by routineId from the dataset.",
10894	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
10895	//   "httpMethod": "DELETE",
10896	//   "id": "bigquery.routines.delete",
10897	//   "parameterOrder": [
10898	//     "projectId",
10899	//     "datasetId",
10900	//     "routineId"
10901	//   ],
10902	//   "parameters": {
10903	//     "datasetId": {
10904	//       "description": "Required. Dataset ID of the routine to delete",
10905	//       "location": "path",
10906	//       "pattern": "^[^/]+$",
10907	//       "required": true,
10908	//       "type": "string"
10909	//     },
10910	//     "projectId": {
10911	//       "description": "Required. Project ID of the routine to delete",
10912	//       "location": "path",
10913	//       "pattern": "^[^/]+$",
10914	//       "required": true,
10915	//       "type": "string"
10916	//     },
10917	//     "routineId": {
10918	//       "description": "Required. Routine ID of the routine to delete",
10919	//       "location": "path",
10920	//       "pattern": "^[^/]+$",
10921	//       "required": true,
10922	//       "type": "string"
10923	//     }
10924	//   },
10925	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
10926	//   "scopes": [
10927	//     "https://www.googleapis.com/auth/bigquery",
10928	//     "https://www.googleapis.com/auth/cloud-platform"
10929	//   ]
10930	// }
10931
10932}
10933
10934// method id "bigquery.routines.get":
10935
10936type RoutinesGetCall struct {
10937	s            *Service
10938	projectId    string
10939	datasetId    string
10940	routineId    string
10941	urlParams_   gensupport.URLParams
10942	ifNoneMatch_ string
10943	ctx_         context.Context
10944	header_      http.Header
10945}
10946
10947// Get: Gets the specified routine resource by routine ID.
10948func (r *RoutinesService) Get(projectId string, datasetId string, routineId string) *RoutinesGetCall {
10949	c := &RoutinesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10950	c.projectId = projectId
10951	c.datasetId = datasetId
10952	c.routineId = routineId
10953	return c
10954}
10955
10956// ReadMask sets the optional parameter "readMask": If set, only the
10957// Routine fields in the field mask are returned in the response. If
10958// unset, all Routine fields are returned.
10959func (c *RoutinesGetCall) ReadMask(readMask string) *RoutinesGetCall {
10960	c.urlParams_.Set("readMask", readMask)
10961	return c
10962}
10963
10964// Fields allows partial responses to be retrieved. See
10965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10966// for more information.
10967func (c *RoutinesGetCall) Fields(s ...googleapi.Field) *RoutinesGetCall {
10968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10969	return c
10970}
10971
10972// IfNoneMatch sets the optional parameter which makes the operation
10973// fail if the object's ETag matches the given value. This is useful for
10974// getting updates only after the object has changed since the last
10975// request. Use googleapi.IsNotModified to check whether the response
10976// error from Do is the result of In-None-Match.
10977func (c *RoutinesGetCall) IfNoneMatch(entityTag string) *RoutinesGetCall {
10978	c.ifNoneMatch_ = entityTag
10979	return c
10980}
10981
10982// Context sets the context to be used in this call's Do method. Any
10983// pending HTTP request will be aborted if the provided context is
10984// canceled.
10985func (c *RoutinesGetCall) Context(ctx context.Context) *RoutinesGetCall {
10986	c.ctx_ = ctx
10987	return c
10988}
10989
10990// Header returns an http.Header that can be modified by the caller to
10991// add HTTP headers to the request.
10992func (c *RoutinesGetCall) Header() http.Header {
10993	if c.header_ == nil {
10994		c.header_ = make(http.Header)
10995	}
10996	return c.header_
10997}
10998
10999func (c *RoutinesGetCall) doRequest(alt string) (*http.Response, error) {
11000	reqHeaders := make(http.Header)
11001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11002	for k, v := range c.header_ {
11003		reqHeaders[k] = v
11004	}
11005	reqHeaders.Set("User-Agent", c.s.userAgent())
11006	if c.ifNoneMatch_ != "" {
11007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11008	}
11009	var body io.Reader = nil
11010	c.urlParams_.Set("alt", alt)
11011	c.urlParams_.Set("prettyPrint", "false")
11012	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
11013	urls += "?" + c.urlParams_.Encode()
11014	req, err := http.NewRequest("GET", urls, body)
11015	if err != nil {
11016		return nil, err
11017	}
11018	req.Header = reqHeaders
11019	googleapi.Expand(req.URL, map[string]string{
11020		"projectId": c.projectId,
11021		"datasetId": c.datasetId,
11022		"routineId": c.routineId,
11023	})
11024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11025}
11026
11027// Do executes the "bigquery.routines.get" call.
11028// Exactly one of *Routine or error will be non-nil. Any non-2xx status
11029// code is an error. Response headers are in either
11030// *Routine.ServerResponse.Header or (if a response was returned at all)
11031// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11032// check whether the returned error was because http.StatusNotModified
11033// was returned.
11034func (c *RoutinesGetCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
11035	gensupport.SetOptions(c.urlParams_, opts...)
11036	res, err := c.doRequest("json")
11037	if res != nil && res.StatusCode == http.StatusNotModified {
11038		if res.Body != nil {
11039			res.Body.Close()
11040		}
11041		return nil, &googleapi.Error{
11042			Code:   res.StatusCode,
11043			Header: res.Header,
11044		}
11045	}
11046	if err != nil {
11047		return nil, err
11048	}
11049	defer googleapi.CloseBody(res)
11050	if err := googleapi.CheckResponse(res); err != nil {
11051		return nil, err
11052	}
11053	ret := &Routine{
11054		ServerResponse: googleapi.ServerResponse{
11055			Header:         res.Header,
11056			HTTPStatusCode: res.StatusCode,
11057		},
11058	}
11059	target := &ret
11060	if err := gensupport.DecodeResponse(target, res); err != nil {
11061		return nil, err
11062	}
11063	return ret, nil
11064	// {
11065	//   "description": "Gets the specified routine resource by routine ID.",
11066	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
11067	//   "httpMethod": "GET",
11068	//   "id": "bigquery.routines.get",
11069	//   "parameterOrder": [
11070	//     "projectId",
11071	//     "datasetId",
11072	//     "routineId"
11073	//   ],
11074	//   "parameters": {
11075	//     "datasetId": {
11076	//       "description": "Required. Dataset ID of the requested routine",
11077	//       "location": "path",
11078	//       "pattern": "^[^/]+$",
11079	//       "required": true,
11080	//       "type": "string"
11081	//     },
11082	//     "projectId": {
11083	//       "description": "Required. Project ID of the requested routine",
11084	//       "location": "path",
11085	//       "pattern": "^[^/]+$",
11086	//       "required": true,
11087	//       "type": "string"
11088	//     },
11089	//     "readMask": {
11090	//       "description": "If set, only the Routine fields in the field mask are returned in the response. If unset, all Routine fields are returned.",
11091	//       "format": "google-fieldmask",
11092	//       "location": "query",
11093	//       "type": "string"
11094	//     },
11095	//     "routineId": {
11096	//       "description": "Required. Routine ID of the requested routine",
11097	//       "location": "path",
11098	//       "pattern": "^[^/]+$",
11099	//       "required": true,
11100	//       "type": "string"
11101	//     }
11102	//   },
11103	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
11104	//   "response": {
11105	//     "$ref": "Routine"
11106	//   },
11107	//   "scopes": [
11108	//     "https://www.googleapis.com/auth/bigquery",
11109	//     "https://www.googleapis.com/auth/bigquery.readonly",
11110	//     "https://www.googleapis.com/auth/cloud-platform",
11111	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11112	//   ]
11113	// }
11114
11115}
11116
11117// method id "bigquery.routines.insert":
11118
11119type RoutinesInsertCall struct {
11120	s          *Service
11121	projectId  string
11122	datasetId  string
11123	routine    *Routine
11124	urlParams_ gensupport.URLParams
11125	ctx_       context.Context
11126	header_    http.Header
11127}
11128
11129// Insert: Creates a new routine in the dataset.
11130func (r *RoutinesService) Insert(projectId string, datasetId string, routine *Routine) *RoutinesInsertCall {
11131	c := &RoutinesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11132	c.projectId = projectId
11133	c.datasetId = datasetId
11134	c.routine = routine
11135	return c
11136}
11137
11138// Fields allows partial responses to be retrieved. See
11139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11140// for more information.
11141func (c *RoutinesInsertCall) Fields(s ...googleapi.Field) *RoutinesInsertCall {
11142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11143	return c
11144}
11145
11146// Context sets the context to be used in this call's Do method. Any
11147// pending HTTP request will be aborted if the provided context is
11148// canceled.
11149func (c *RoutinesInsertCall) Context(ctx context.Context) *RoutinesInsertCall {
11150	c.ctx_ = ctx
11151	return c
11152}
11153
11154// Header returns an http.Header that can be modified by the caller to
11155// add HTTP headers to the request.
11156func (c *RoutinesInsertCall) Header() http.Header {
11157	if c.header_ == nil {
11158		c.header_ = make(http.Header)
11159	}
11160	return c.header_
11161}
11162
11163func (c *RoutinesInsertCall) doRequest(alt string) (*http.Response, error) {
11164	reqHeaders := make(http.Header)
11165	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11166	for k, v := range c.header_ {
11167		reqHeaders[k] = v
11168	}
11169	reqHeaders.Set("User-Agent", c.s.userAgent())
11170	var body io.Reader = nil
11171	body, err := googleapi.WithoutDataWrapper.JSONReader(c.routine)
11172	if err != nil {
11173		return nil, err
11174	}
11175	reqHeaders.Set("Content-Type", "application/json")
11176	c.urlParams_.Set("alt", alt)
11177	c.urlParams_.Set("prettyPrint", "false")
11178	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines")
11179	urls += "?" + c.urlParams_.Encode()
11180	req, err := http.NewRequest("POST", urls, body)
11181	if err != nil {
11182		return nil, err
11183	}
11184	req.Header = reqHeaders
11185	googleapi.Expand(req.URL, map[string]string{
11186		"projectId": c.projectId,
11187		"datasetId": c.datasetId,
11188	})
11189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11190}
11191
11192// Do executes the "bigquery.routines.insert" call.
11193// Exactly one of *Routine or error will be non-nil. Any non-2xx status
11194// code is an error. Response headers are in either
11195// *Routine.ServerResponse.Header or (if a response was returned at all)
11196// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11197// check whether the returned error was because http.StatusNotModified
11198// was returned.
11199func (c *RoutinesInsertCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
11200	gensupport.SetOptions(c.urlParams_, opts...)
11201	res, err := c.doRequest("json")
11202	if res != nil && res.StatusCode == http.StatusNotModified {
11203		if res.Body != nil {
11204			res.Body.Close()
11205		}
11206		return nil, &googleapi.Error{
11207			Code:   res.StatusCode,
11208			Header: res.Header,
11209		}
11210	}
11211	if err != nil {
11212		return nil, err
11213	}
11214	defer googleapi.CloseBody(res)
11215	if err := googleapi.CheckResponse(res); err != nil {
11216		return nil, err
11217	}
11218	ret := &Routine{
11219		ServerResponse: googleapi.ServerResponse{
11220			Header:         res.Header,
11221			HTTPStatusCode: res.StatusCode,
11222		},
11223	}
11224	target := &ret
11225	if err := gensupport.DecodeResponse(target, res); err != nil {
11226		return nil, err
11227	}
11228	return ret, nil
11229	// {
11230	//   "description": "Creates a new routine in the dataset.",
11231	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines",
11232	//   "httpMethod": "POST",
11233	//   "id": "bigquery.routines.insert",
11234	//   "parameterOrder": [
11235	//     "projectId",
11236	//     "datasetId"
11237	//   ],
11238	//   "parameters": {
11239	//     "datasetId": {
11240	//       "description": "Required. Dataset ID of the new routine",
11241	//       "location": "path",
11242	//       "pattern": "^[^/]+$",
11243	//       "required": true,
11244	//       "type": "string"
11245	//     },
11246	//     "projectId": {
11247	//       "description": "Required. Project ID of the new routine",
11248	//       "location": "path",
11249	//       "pattern": "^[^/]+$",
11250	//       "required": true,
11251	//       "type": "string"
11252	//     }
11253	//   },
11254	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines",
11255	//   "request": {
11256	//     "$ref": "Routine"
11257	//   },
11258	//   "response": {
11259	//     "$ref": "Routine"
11260	//   },
11261	//   "scopes": [
11262	//     "https://www.googleapis.com/auth/bigquery",
11263	//     "https://www.googleapis.com/auth/cloud-platform"
11264	//   ]
11265	// }
11266
11267}
11268
11269// method id "bigquery.routines.list":
11270
11271type RoutinesListCall struct {
11272	s            *Service
11273	projectId    string
11274	datasetId    string
11275	urlParams_   gensupport.URLParams
11276	ifNoneMatch_ string
11277	ctx_         context.Context
11278	header_      http.Header
11279}
11280
11281// List: Lists all routines in the specified dataset. Requires the
11282// READER dataset role.
11283func (r *RoutinesService) List(projectId string, datasetId string) *RoutinesListCall {
11284	c := &RoutinesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11285	c.projectId = projectId
11286	c.datasetId = datasetId
11287	return c
11288}
11289
11290// Filter sets the optional parameter "filter": If set, then only the
11291// Routines matching this filter are returned. The current supported
11292// form is either "routine_type:" or "routineType:", where is a
11293// RoutineType enum. Example: "routineType:SCALAR_FUNCTION".
11294func (c *RoutinesListCall) Filter(filter string) *RoutinesListCall {
11295	c.urlParams_.Set("filter", filter)
11296	return c
11297}
11298
11299// MaxResults sets the optional parameter "maxResults": The maximum
11300// number of results to return in a single response page. Leverage the
11301// page tokens to iterate through the entire collection.
11302func (c *RoutinesListCall) MaxResults(maxResults int64) *RoutinesListCall {
11303	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
11304	return c
11305}
11306
11307// PageToken sets the optional parameter "pageToken": Page token,
11308// returned by a previous call, to request the next page of results
11309func (c *RoutinesListCall) PageToken(pageToken string) *RoutinesListCall {
11310	c.urlParams_.Set("pageToken", pageToken)
11311	return c
11312}
11313
11314// ReadMask sets the optional parameter "readMask": If set, then only
11315// the Routine fields in the field mask, as well as project_id,
11316// dataset_id and routine_id, are returned in the response. If unset,
11317// then the following Routine fields are returned: etag, project_id,
11318// dataset_id, routine_id, routine_type, creation_time,
11319// last_modified_time, and language.
11320func (c *RoutinesListCall) ReadMask(readMask string) *RoutinesListCall {
11321	c.urlParams_.Set("readMask", readMask)
11322	return c
11323}
11324
11325// Fields allows partial responses to be retrieved. See
11326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11327// for more information.
11328func (c *RoutinesListCall) Fields(s ...googleapi.Field) *RoutinesListCall {
11329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11330	return c
11331}
11332
11333// IfNoneMatch sets the optional parameter which makes the operation
11334// fail if the object's ETag matches the given value. This is useful for
11335// getting updates only after the object has changed since the last
11336// request. Use googleapi.IsNotModified to check whether the response
11337// error from Do is the result of In-None-Match.
11338func (c *RoutinesListCall) IfNoneMatch(entityTag string) *RoutinesListCall {
11339	c.ifNoneMatch_ = entityTag
11340	return c
11341}
11342
11343// Context sets the context to be used in this call's Do method. Any
11344// pending HTTP request will be aborted if the provided context is
11345// canceled.
11346func (c *RoutinesListCall) Context(ctx context.Context) *RoutinesListCall {
11347	c.ctx_ = ctx
11348	return c
11349}
11350
11351// Header returns an http.Header that can be modified by the caller to
11352// add HTTP headers to the request.
11353func (c *RoutinesListCall) Header() http.Header {
11354	if c.header_ == nil {
11355		c.header_ = make(http.Header)
11356	}
11357	return c.header_
11358}
11359
11360func (c *RoutinesListCall) doRequest(alt string) (*http.Response, error) {
11361	reqHeaders := make(http.Header)
11362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11363	for k, v := range c.header_ {
11364		reqHeaders[k] = v
11365	}
11366	reqHeaders.Set("User-Agent", c.s.userAgent())
11367	if c.ifNoneMatch_ != "" {
11368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11369	}
11370	var body io.Reader = nil
11371	c.urlParams_.Set("alt", alt)
11372	c.urlParams_.Set("prettyPrint", "false")
11373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines")
11374	urls += "?" + c.urlParams_.Encode()
11375	req, err := http.NewRequest("GET", urls, body)
11376	if err != nil {
11377		return nil, err
11378	}
11379	req.Header = reqHeaders
11380	googleapi.Expand(req.URL, map[string]string{
11381		"projectId": c.projectId,
11382		"datasetId": c.datasetId,
11383	})
11384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11385}
11386
11387// Do executes the "bigquery.routines.list" call.
11388// Exactly one of *ListRoutinesResponse or error will be non-nil. Any
11389// non-2xx status code is an error. Response headers are in either
11390// *ListRoutinesResponse.ServerResponse.Header or (if a response was
11391// returned at all) in error.(*googleapi.Error).Header. Use
11392// googleapi.IsNotModified to check whether the returned error was
11393// because http.StatusNotModified was returned.
11394func (c *RoutinesListCall) Do(opts ...googleapi.CallOption) (*ListRoutinesResponse, error) {
11395	gensupport.SetOptions(c.urlParams_, opts...)
11396	res, err := c.doRequest("json")
11397	if res != nil && res.StatusCode == http.StatusNotModified {
11398		if res.Body != nil {
11399			res.Body.Close()
11400		}
11401		return nil, &googleapi.Error{
11402			Code:   res.StatusCode,
11403			Header: res.Header,
11404		}
11405	}
11406	if err != nil {
11407		return nil, err
11408	}
11409	defer googleapi.CloseBody(res)
11410	if err := googleapi.CheckResponse(res); err != nil {
11411		return nil, err
11412	}
11413	ret := &ListRoutinesResponse{
11414		ServerResponse: googleapi.ServerResponse{
11415			Header:         res.Header,
11416			HTTPStatusCode: res.StatusCode,
11417		},
11418	}
11419	target := &ret
11420	if err := gensupport.DecodeResponse(target, res); err != nil {
11421		return nil, err
11422	}
11423	return ret, nil
11424	// {
11425	//   "description": "Lists all routines in the specified dataset. Requires the READER dataset role.",
11426	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines",
11427	//   "httpMethod": "GET",
11428	//   "id": "bigquery.routines.list",
11429	//   "parameterOrder": [
11430	//     "projectId",
11431	//     "datasetId"
11432	//   ],
11433	//   "parameters": {
11434	//     "datasetId": {
11435	//       "description": "Required. Dataset ID of the routines to list",
11436	//       "location": "path",
11437	//       "pattern": "^[^/]+$",
11438	//       "required": true,
11439	//       "type": "string"
11440	//     },
11441	//     "filter": {
11442	//       "description": "If set, then only the Routines matching this filter are returned. The current supported form is either \"routine_type:\" or \"routineType:\", where is a RoutineType enum. Example: \"routineType:SCALAR_FUNCTION\".",
11443	//       "location": "query",
11444	//       "type": "string"
11445	//     },
11446	//     "maxResults": {
11447	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
11448	//       "format": "uint32",
11449	//       "location": "query",
11450	//       "type": "integer"
11451	//     },
11452	//     "pageToken": {
11453	//       "description": "Page token, returned by a previous call, to request the next page of results",
11454	//       "location": "query",
11455	//       "type": "string"
11456	//     },
11457	//     "projectId": {
11458	//       "description": "Required. Project ID of the routines to list",
11459	//       "location": "path",
11460	//       "pattern": "^[^/]+$",
11461	//       "required": true,
11462	//       "type": "string"
11463	//     },
11464	//     "readMask": {
11465	//       "description": "If set, then only the Routine fields in the field mask, as well as project_id, dataset_id and routine_id, are returned in the response. If unset, then the following Routine fields are returned: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, and language.",
11466	//       "format": "google-fieldmask",
11467	//       "location": "query",
11468	//       "type": "string"
11469	//     }
11470	//   },
11471	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines",
11472	//   "response": {
11473	//     "$ref": "ListRoutinesResponse"
11474	//   },
11475	//   "scopes": [
11476	//     "https://www.googleapis.com/auth/bigquery",
11477	//     "https://www.googleapis.com/auth/bigquery.readonly",
11478	//     "https://www.googleapis.com/auth/cloud-platform",
11479	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11480	//   ]
11481	// }
11482
11483}
11484
11485// Pages invokes f for each page of results.
11486// A non-nil error returned from f will halt the iteration.
11487// The provided context supersedes any context provided to the Context method.
11488func (c *RoutinesListCall) Pages(ctx context.Context, f func(*ListRoutinesResponse) error) error {
11489	c.ctx_ = ctx
11490	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11491	for {
11492		x, err := c.Do()
11493		if err != nil {
11494			return err
11495		}
11496		if err := f(x); err != nil {
11497			return err
11498		}
11499		if x.NextPageToken == "" {
11500			return nil
11501		}
11502		c.PageToken(x.NextPageToken)
11503	}
11504}
11505
11506// method id "bigquery.routines.update":
11507
11508type RoutinesUpdateCall struct {
11509	s          *Service
11510	projectId  string
11511	datasetId  string
11512	routineId  string
11513	routine    *Routine
11514	urlParams_ gensupport.URLParams
11515	ctx_       context.Context
11516	header_    http.Header
11517}
11518
11519// Update: Updates information in an existing routine. The update method
11520// replaces the entire Routine resource.
11521func (r *RoutinesService) Update(projectId string, datasetId string, routineId string, routine *Routine) *RoutinesUpdateCall {
11522	c := &RoutinesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11523	c.projectId = projectId
11524	c.datasetId = datasetId
11525	c.routineId = routineId
11526	c.routine = routine
11527	return c
11528}
11529
11530// Fields allows partial responses to be retrieved. See
11531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11532// for more information.
11533func (c *RoutinesUpdateCall) Fields(s ...googleapi.Field) *RoutinesUpdateCall {
11534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11535	return c
11536}
11537
11538// Context sets the context to be used in this call's Do method. Any
11539// pending HTTP request will be aborted if the provided context is
11540// canceled.
11541func (c *RoutinesUpdateCall) Context(ctx context.Context) *RoutinesUpdateCall {
11542	c.ctx_ = ctx
11543	return c
11544}
11545
11546// Header returns an http.Header that can be modified by the caller to
11547// add HTTP headers to the request.
11548func (c *RoutinesUpdateCall) Header() http.Header {
11549	if c.header_ == nil {
11550		c.header_ = make(http.Header)
11551	}
11552	return c.header_
11553}
11554
11555func (c *RoutinesUpdateCall) doRequest(alt string) (*http.Response, error) {
11556	reqHeaders := make(http.Header)
11557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11558	for k, v := range c.header_ {
11559		reqHeaders[k] = v
11560	}
11561	reqHeaders.Set("User-Agent", c.s.userAgent())
11562	var body io.Reader = nil
11563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.routine)
11564	if err != nil {
11565		return nil, err
11566	}
11567	reqHeaders.Set("Content-Type", "application/json")
11568	c.urlParams_.Set("alt", alt)
11569	c.urlParams_.Set("prettyPrint", "false")
11570	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
11571	urls += "?" + c.urlParams_.Encode()
11572	req, err := http.NewRequest("PUT", urls, body)
11573	if err != nil {
11574		return nil, err
11575	}
11576	req.Header = reqHeaders
11577	googleapi.Expand(req.URL, map[string]string{
11578		"projectId": c.projectId,
11579		"datasetId": c.datasetId,
11580		"routineId": c.routineId,
11581	})
11582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11583}
11584
11585// Do executes the "bigquery.routines.update" call.
11586// Exactly one of *Routine or error will be non-nil. Any non-2xx status
11587// code is an error. Response headers are in either
11588// *Routine.ServerResponse.Header or (if a response was returned at all)
11589// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11590// check whether the returned error was because http.StatusNotModified
11591// was returned.
11592func (c *RoutinesUpdateCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
11593	gensupport.SetOptions(c.urlParams_, opts...)
11594	res, err := c.doRequest("json")
11595	if res != nil && res.StatusCode == http.StatusNotModified {
11596		if res.Body != nil {
11597			res.Body.Close()
11598		}
11599		return nil, &googleapi.Error{
11600			Code:   res.StatusCode,
11601			Header: res.Header,
11602		}
11603	}
11604	if err != nil {
11605		return nil, err
11606	}
11607	defer googleapi.CloseBody(res)
11608	if err := googleapi.CheckResponse(res); err != nil {
11609		return nil, err
11610	}
11611	ret := &Routine{
11612		ServerResponse: googleapi.ServerResponse{
11613			Header:         res.Header,
11614			HTTPStatusCode: res.StatusCode,
11615		},
11616	}
11617	target := &ret
11618	if err := gensupport.DecodeResponse(target, res); err != nil {
11619		return nil, err
11620	}
11621	return ret, nil
11622	// {
11623	//   "description": "Updates information in an existing routine. The update method replaces the entire Routine resource.",
11624	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
11625	//   "httpMethod": "PUT",
11626	//   "id": "bigquery.routines.update",
11627	//   "parameterOrder": [
11628	//     "projectId",
11629	//     "datasetId",
11630	//     "routineId"
11631	//   ],
11632	//   "parameters": {
11633	//     "datasetId": {
11634	//       "description": "Required. Dataset ID of the routine to update",
11635	//       "location": "path",
11636	//       "pattern": "^[^/]+$",
11637	//       "required": true,
11638	//       "type": "string"
11639	//     },
11640	//     "projectId": {
11641	//       "description": "Required. Project ID of the routine to update",
11642	//       "location": "path",
11643	//       "pattern": "^[^/]+$",
11644	//       "required": true,
11645	//       "type": "string"
11646	//     },
11647	//     "routineId": {
11648	//       "description": "Required. Routine ID of the routine to update",
11649	//       "location": "path",
11650	//       "pattern": "^[^/]+$",
11651	//       "required": true,
11652	//       "type": "string"
11653	//     }
11654	//   },
11655	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
11656	//   "request": {
11657	//     "$ref": "Routine"
11658	//   },
11659	//   "response": {
11660	//     "$ref": "Routine"
11661	//   },
11662	//   "scopes": [
11663	//     "https://www.googleapis.com/auth/bigquery",
11664	//     "https://www.googleapis.com/auth/cloud-platform"
11665	//   ]
11666	// }
11667
11668}
11669
11670// method id "bigquery.rowAccessPolicies.list":
11671
11672type RowAccessPoliciesListCall struct {
11673	s            *Service
11674	projectId    string
11675	datasetId    string
11676	tableId      string
11677	urlParams_   gensupport.URLParams
11678	ifNoneMatch_ string
11679	ctx_         context.Context
11680	header_      http.Header
11681}
11682
11683// List: Lists all row access policies on the specified table.
11684func (r *RowAccessPoliciesService) List(projectId string, datasetId string, tableId string) *RowAccessPoliciesListCall {
11685	c := &RowAccessPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11686	c.projectId = projectId
11687	c.datasetId = datasetId
11688	c.tableId = tableId
11689	return c
11690}
11691
11692// PageSize sets the optional parameter "pageSize": The maximum number
11693// of results to return in a single response page. Leverage the page
11694// tokens to iterate through the entire collection.
11695func (c *RowAccessPoliciesListCall) PageSize(pageSize int64) *RowAccessPoliciesListCall {
11696	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11697	return c
11698}
11699
11700// PageToken sets the optional parameter "pageToken": Page token,
11701// returned by a previous call, to request the next page of results.
11702func (c *RowAccessPoliciesListCall) PageToken(pageToken string) *RowAccessPoliciesListCall {
11703	c.urlParams_.Set("pageToken", pageToken)
11704	return c
11705}
11706
11707// Fields allows partial responses to be retrieved. See
11708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11709// for more information.
11710func (c *RowAccessPoliciesListCall) Fields(s ...googleapi.Field) *RowAccessPoliciesListCall {
11711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11712	return c
11713}
11714
11715// IfNoneMatch sets the optional parameter which makes the operation
11716// fail if the object's ETag matches the given value. This is useful for
11717// getting updates only after the object has changed since the last
11718// request. Use googleapi.IsNotModified to check whether the response
11719// error from Do is the result of In-None-Match.
11720func (c *RowAccessPoliciesListCall) IfNoneMatch(entityTag string) *RowAccessPoliciesListCall {
11721	c.ifNoneMatch_ = entityTag
11722	return c
11723}
11724
11725// Context sets the context to be used in this call's Do method. Any
11726// pending HTTP request will be aborted if the provided context is
11727// canceled.
11728func (c *RowAccessPoliciesListCall) Context(ctx context.Context) *RowAccessPoliciesListCall {
11729	c.ctx_ = ctx
11730	return c
11731}
11732
11733// Header returns an http.Header that can be modified by the caller to
11734// add HTTP headers to the request.
11735func (c *RowAccessPoliciesListCall) Header() http.Header {
11736	if c.header_ == nil {
11737		c.header_ = make(http.Header)
11738	}
11739	return c.header_
11740}
11741
11742func (c *RowAccessPoliciesListCall) doRequest(alt string) (*http.Response, error) {
11743	reqHeaders := make(http.Header)
11744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11745	for k, v := range c.header_ {
11746		reqHeaders[k] = v
11747	}
11748	reqHeaders.Set("User-Agent", c.s.userAgent())
11749	if c.ifNoneMatch_ != "" {
11750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11751	}
11752	var body io.Reader = nil
11753	c.urlParams_.Set("alt", alt)
11754	c.urlParams_.Set("prettyPrint", "false")
11755	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/rowAccessPolicies")
11756	urls += "?" + c.urlParams_.Encode()
11757	req, err := http.NewRequest("GET", urls, body)
11758	if err != nil {
11759		return nil, err
11760	}
11761	req.Header = reqHeaders
11762	googleapi.Expand(req.URL, map[string]string{
11763		"projectId": c.projectId,
11764		"datasetId": c.datasetId,
11765		"tableId":   c.tableId,
11766	})
11767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11768}
11769
11770// Do executes the "bigquery.rowAccessPolicies.list" call.
11771// Exactly one of *ListRowAccessPoliciesResponse or error will be
11772// non-nil. Any non-2xx status code is an error. Response headers are in
11773// either *ListRowAccessPoliciesResponse.ServerResponse.Header or (if a
11774// response was returned at all) in error.(*googleapi.Error).Header. Use
11775// googleapi.IsNotModified to check whether the returned error was
11776// because http.StatusNotModified was returned.
11777func (c *RowAccessPoliciesListCall) Do(opts ...googleapi.CallOption) (*ListRowAccessPoliciesResponse, error) {
11778	gensupport.SetOptions(c.urlParams_, opts...)
11779	res, err := c.doRequest("json")
11780	if res != nil && res.StatusCode == http.StatusNotModified {
11781		if res.Body != nil {
11782			res.Body.Close()
11783		}
11784		return nil, &googleapi.Error{
11785			Code:   res.StatusCode,
11786			Header: res.Header,
11787		}
11788	}
11789	if err != nil {
11790		return nil, err
11791	}
11792	defer googleapi.CloseBody(res)
11793	if err := googleapi.CheckResponse(res); err != nil {
11794		return nil, err
11795	}
11796	ret := &ListRowAccessPoliciesResponse{
11797		ServerResponse: googleapi.ServerResponse{
11798			Header:         res.Header,
11799			HTTPStatusCode: res.StatusCode,
11800		},
11801	}
11802	target := &ret
11803	if err := gensupport.DecodeResponse(target, res); err != nil {
11804		return nil, err
11805	}
11806	return ret, nil
11807	// {
11808	//   "description": "Lists all row access policies on the specified table.",
11809	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies",
11810	//   "httpMethod": "GET",
11811	//   "id": "bigquery.rowAccessPolicies.list",
11812	//   "parameterOrder": [
11813	//     "projectId",
11814	//     "datasetId",
11815	//     "tableId"
11816	//   ],
11817	//   "parameters": {
11818	//     "datasetId": {
11819	//       "description": "Required. Dataset ID of row access policies to list.",
11820	//       "location": "path",
11821	//       "pattern": "^[^/]+$",
11822	//       "required": true,
11823	//       "type": "string"
11824	//     },
11825	//     "pageSize": {
11826	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
11827	//       "format": "int32",
11828	//       "location": "query",
11829	//       "type": "integer"
11830	//     },
11831	//     "pageToken": {
11832	//       "description": "Page token, returned by a previous call, to request the next page of results.",
11833	//       "location": "query",
11834	//       "type": "string"
11835	//     },
11836	//     "projectId": {
11837	//       "description": "Required. Project ID of the row access policies to list.",
11838	//       "location": "path",
11839	//       "pattern": "^[^/]+$",
11840	//       "required": true,
11841	//       "type": "string"
11842	//     },
11843	//     "tableId": {
11844	//       "description": "Required. Table ID of the table to list row access policies.",
11845	//       "location": "path",
11846	//       "pattern": "^[^/]+$",
11847	//       "required": true,
11848	//       "type": "string"
11849	//     }
11850	//   },
11851	//   "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/rowAccessPolicies",
11852	//   "response": {
11853	//     "$ref": "ListRowAccessPoliciesResponse"
11854	//   },
11855	//   "scopes": [
11856	//     "https://www.googleapis.com/auth/bigquery",
11857	//     "https://www.googleapis.com/auth/bigquery.readonly",
11858	//     "https://www.googleapis.com/auth/cloud-platform",
11859	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11860	//   ]
11861	// }
11862
11863}
11864
11865// Pages invokes f for each page of results.
11866// A non-nil error returned from f will halt the iteration.
11867// The provided context supersedes any context provided to the Context method.
11868func (c *RowAccessPoliciesListCall) Pages(ctx context.Context, f func(*ListRowAccessPoliciesResponse) error) error {
11869	c.ctx_ = ctx
11870	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11871	for {
11872		x, err := c.Do()
11873		if err != nil {
11874			return err
11875		}
11876		if err := f(x); err != nil {
11877			return err
11878		}
11879		if x.NextPageToken == "" {
11880			return nil
11881		}
11882		c.PageToken(x.NextPageToken)
11883	}
11884}
11885
11886// method id "bigquery.tabledata.insertAll":
11887
11888type TabledataInsertAllCall struct {
11889	s                         *Service
11890	projectId                 string
11891	datasetId                 string
11892	tableId                   string
11893	tabledatainsertallrequest *TableDataInsertAllRequest
11894	urlParams_                gensupport.URLParams
11895	ctx_                      context.Context
11896	header_                   http.Header
11897}
11898
11899// InsertAll: Streams data into BigQuery one record at a time without
11900// needing to run a load job. Requires the WRITER dataset role.
11901func (r *TabledataService) InsertAll(projectId string, datasetId string, tableId string, tabledatainsertallrequest *TableDataInsertAllRequest) *TabledataInsertAllCall {
11902	c := &TabledataInsertAllCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11903	c.projectId = projectId
11904	c.datasetId = datasetId
11905	c.tableId = tableId
11906	c.tabledatainsertallrequest = tabledatainsertallrequest
11907	return c
11908}
11909
11910// Fields allows partial responses to be retrieved. See
11911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11912// for more information.
11913func (c *TabledataInsertAllCall) Fields(s ...googleapi.Field) *TabledataInsertAllCall {
11914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11915	return c
11916}
11917
11918// Context sets the context to be used in this call's Do method. Any
11919// pending HTTP request will be aborted if the provided context is
11920// canceled.
11921func (c *TabledataInsertAllCall) Context(ctx context.Context) *TabledataInsertAllCall {
11922	c.ctx_ = ctx
11923	return c
11924}
11925
11926// Header returns an http.Header that can be modified by the caller to
11927// add HTTP headers to the request.
11928func (c *TabledataInsertAllCall) Header() http.Header {
11929	if c.header_ == nil {
11930		c.header_ = make(http.Header)
11931	}
11932	return c.header_
11933}
11934
11935func (c *TabledataInsertAllCall) doRequest(alt string) (*http.Response, error) {
11936	reqHeaders := make(http.Header)
11937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11938	for k, v := range c.header_ {
11939		reqHeaders[k] = v
11940	}
11941	reqHeaders.Set("User-Agent", c.s.userAgent())
11942	var body io.Reader = nil
11943	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tabledatainsertallrequest)
11944	if err != nil {
11945		return nil, err
11946	}
11947	reqHeaders.Set("Content-Type", "application/json")
11948	c.urlParams_.Set("alt", alt)
11949	c.urlParams_.Set("prettyPrint", "false")
11950	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll")
11951	urls += "?" + c.urlParams_.Encode()
11952	req, err := http.NewRequest("POST", urls, body)
11953	if err != nil {
11954		return nil, err
11955	}
11956	req.Header = reqHeaders
11957	googleapi.Expand(req.URL, map[string]string{
11958		"projectId": c.projectId,
11959		"datasetId": c.datasetId,
11960		"tableId":   c.tableId,
11961	})
11962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11963}
11964
11965// Do executes the "bigquery.tabledata.insertAll" call.
11966// Exactly one of *TableDataInsertAllResponse or error will be non-nil.
11967// Any non-2xx status code is an error. Response headers are in either
11968// *TableDataInsertAllResponse.ServerResponse.Header or (if a response
11969// was returned at all) in error.(*googleapi.Error).Header. Use
11970// googleapi.IsNotModified to check whether the returned error was
11971// because http.StatusNotModified was returned.
11972func (c *TabledataInsertAllCall) Do(opts ...googleapi.CallOption) (*TableDataInsertAllResponse, error) {
11973	gensupport.SetOptions(c.urlParams_, opts...)
11974	res, err := c.doRequest("json")
11975	if res != nil && res.StatusCode == http.StatusNotModified {
11976		if res.Body != nil {
11977			res.Body.Close()
11978		}
11979		return nil, &googleapi.Error{
11980			Code:   res.StatusCode,
11981			Header: res.Header,
11982		}
11983	}
11984	if err != nil {
11985		return nil, err
11986	}
11987	defer googleapi.CloseBody(res)
11988	if err := googleapi.CheckResponse(res); err != nil {
11989		return nil, err
11990	}
11991	ret := &TableDataInsertAllResponse{
11992		ServerResponse: googleapi.ServerResponse{
11993			Header:         res.Header,
11994			HTTPStatusCode: res.StatusCode,
11995		},
11996	}
11997	target := &ret
11998	if err := gensupport.DecodeResponse(target, res); err != nil {
11999		return nil, err
12000	}
12001	return ret, nil
12002	// {
12003	//   "description": "Streams data into BigQuery one record at a time without needing to run a load job. Requires the WRITER dataset role.",
12004	//   "httpMethod": "POST",
12005	//   "id": "bigquery.tabledata.insertAll",
12006	//   "parameterOrder": [
12007	//     "projectId",
12008	//     "datasetId",
12009	//     "tableId"
12010	//   ],
12011	//   "parameters": {
12012	//     "datasetId": {
12013	//       "description": "Dataset ID of the destination table.",
12014	//       "location": "path",
12015	//       "required": true,
12016	//       "type": "string"
12017	//     },
12018	//     "projectId": {
12019	//       "description": "Project ID of the destination table.",
12020	//       "location": "path",
12021	//       "required": true,
12022	//       "type": "string"
12023	//     },
12024	//     "tableId": {
12025	//       "description": "Table ID of the destination table.",
12026	//       "location": "path",
12027	//       "required": true,
12028	//       "type": "string"
12029	//     }
12030	//   },
12031	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll",
12032	//   "request": {
12033	//     "$ref": "TableDataInsertAllRequest"
12034	//   },
12035	//   "response": {
12036	//     "$ref": "TableDataInsertAllResponse"
12037	//   },
12038	//   "scopes": [
12039	//     "https://www.googleapis.com/auth/bigquery",
12040	//     "https://www.googleapis.com/auth/bigquery.insertdata",
12041	//     "https://www.googleapis.com/auth/cloud-platform"
12042	//   ]
12043	// }
12044
12045}
12046
12047// method id "bigquery.tabledata.list":
12048
12049type TabledataListCall struct {
12050	s            *Service
12051	projectId    string
12052	datasetId    string
12053	tableId      string
12054	urlParams_   gensupport.URLParams
12055	ifNoneMatch_ string
12056	ctx_         context.Context
12057	header_      http.Header
12058}
12059
12060// List: Retrieves table data from a specified set of rows. Requires the
12061// READER dataset role.
12062func (r *TabledataService) List(projectId string, datasetId string, tableId string) *TabledataListCall {
12063	c := &TabledataListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12064	c.projectId = projectId
12065	c.datasetId = datasetId
12066	c.tableId = tableId
12067	return c
12068}
12069
12070// MaxResults sets the optional parameter "maxResults": Maximum number
12071// of results to return
12072func (c *TabledataListCall) MaxResults(maxResults int64) *TabledataListCall {
12073	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
12074	return c
12075}
12076
12077// PageToken sets the optional parameter "pageToken": Page token,
12078// returned by a previous call, identifying the result set
12079func (c *TabledataListCall) PageToken(pageToken string) *TabledataListCall {
12080	c.urlParams_.Set("pageToken", pageToken)
12081	return c
12082}
12083
12084// SelectedFields sets the optional parameter "selectedFields": List of
12085// fields to return (comma-separated). If unspecified, all fields are
12086// returned
12087func (c *TabledataListCall) SelectedFields(selectedFields string) *TabledataListCall {
12088	c.urlParams_.Set("selectedFields", selectedFields)
12089	return c
12090}
12091
12092// StartIndex sets the optional parameter "startIndex": Zero-based index
12093// of the starting row to read
12094func (c *TabledataListCall) StartIndex(startIndex uint64) *TabledataListCall {
12095	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
12096	return c
12097}
12098
12099// Fields allows partial responses to be retrieved. See
12100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12101// for more information.
12102func (c *TabledataListCall) Fields(s ...googleapi.Field) *TabledataListCall {
12103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12104	return c
12105}
12106
12107// IfNoneMatch sets the optional parameter which makes the operation
12108// fail if the object's ETag matches the given value. This is useful for
12109// getting updates only after the object has changed since the last
12110// request. Use googleapi.IsNotModified to check whether the response
12111// error from Do is the result of In-None-Match.
12112func (c *TabledataListCall) IfNoneMatch(entityTag string) *TabledataListCall {
12113	c.ifNoneMatch_ = entityTag
12114	return c
12115}
12116
12117// Context sets the context to be used in this call's Do method. Any
12118// pending HTTP request will be aborted if the provided context is
12119// canceled.
12120func (c *TabledataListCall) Context(ctx context.Context) *TabledataListCall {
12121	c.ctx_ = ctx
12122	return c
12123}
12124
12125// Header returns an http.Header that can be modified by the caller to
12126// add HTTP headers to the request.
12127func (c *TabledataListCall) Header() http.Header {
12128	if c.header_ == nil {
12129		c.header_ = make(http.Header)
12130	}
12131	return c.header_
12132}
12133
12134func (c *TabledataListCall) doRequest(alt string) (*http.Response, error) {
12135	reqHeaders := make(http.Header)
12136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12137	for k, v := range c.header_ {
12138		reqHeaders[k] = v
12139	}
12140	reqHeaders.Set("User-Agent", c.s.userAgent())
12141	if c.ifNoneMatch_ != "" {
12142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12143	}
12144	var body io.Reader = nil
12145	c.urlParams_.Set("alt", alt)
12146	c.urlParams_.Set("prettyPrint", "false")
12147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data")
12148	urls += "?" + c.urlParams_.Encode()
12149	req, err := http.NewRequest("GET", urls, body)
12150	if err != nil {
12151		return nil, err
12152	}
12153	req.Header = reqHeaders
12154	googleapi.Expand(req.URL, map[string]string{
12155		"projectId": c.projectId,
12156		"datasetId": c.datasetId,
12157		"tableId":   c.tableId,
12158	})
12159	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12160}
12161
12162// Do executes the "bigquery.tabledata.list" call.
12163// Exactly one of *TableDataList or error will be non-nil. Any non-2xx
12164// status code is an error. Response headers are in either
12165// *TableDataList.ServerResponse.Header or (if a response was returned
12166// at all) in error.(*googleapi.Error).Header. Use
12167// googleapi.IsNotModified to check whether the returned error was
12168// because http.StatusNotModified was returned.
12169func (c *TabledataListCall) Do(opts ...googleapi.CallOption) (*TableDataList, error) {
12170	gensupport.SetOptions(c.urlParams_, opts...)
12171	res, err := c.doRequest("json")
12172	if res != nil && res.StatusCode == http.StatusNotModified {
12173		if res.Body != nil {
12174			res.Body.Close()
12175		}
12176		return nil, &googleapi.Error{
12177			Code:   res.StatusCode,
12178			Header: res.Header,
12179		}
12180	}
12181	if err != nil {
12182		return nil, err
12183	}
12184	defer googleapi.CloseBody(res)
12185	if err := googleapi.CheckResponse(res); err != nil {
12186		return nil, err
12187	}
12188	ret := &TableDataList{
12189		ServerResponse: googleapi.ServerResponse{
12190			Header:         res.Header,
12191			HTTPStatusCode: res.StatusCode,
12192		},
12193	}
12194	target := &ret
12195	if err := gensupport.DecodeResponse(target, res); err != nil {
12196		return nil, err
12197	}
12198	return ret, nil
12199	// {
12200	//   "description": "Retrieves table data from a specified set of rows. Requires the READER dataset role.",
12201	//   "httpMethod": "GET",
12202	//   "id": "bigquery.tabledata.list",
12203	//   "parameterOrder": [
12204	//     "projectId",
12205	//     "datasetId",
12206	//     "tableId"
12207	//   ],
12208	//   "parameters": {
12209	//     "datasetId": {
12210	//       "description": "Dataset ID of the table to read",
12211	//       "location": "path",
12212	//       "required": true,
12213	//       "type": "string"
12214	//     },
12215	//     "maxResults": {
12216	//       "description": "Maximum number of results to return",
12217	//       "format": "uint32",
12218	//       "location": "query",
12219	//       "type": "integer"
12220	//     },
12221	//     "pageToken": {
12222	//       "description": "Page token, returned by a previous call, identifying the result set",
12223	//       "location": "query",
12224	//       "type": "string"
12225	//     },
12226	//     "projectId": {
12227	//       "description": "Project ID of the table to read",
12228	//       "location": "path",
12229	//       "required": true,
12230	//       "type": "string"
12231	//     },
12232	//     "selectedFields": {
12233	//       "description": "List of fields to return (comma-separated). If unspecified, all fields are returned",
12234	//       "location": "query",
12235	//       "type": "string"
12236	//     },
12237	//     "startIndex": {
12238	//       "description": "Zero-based index of the starting row to read",
12239	//       "format": "uint64",
12240	//       "location": "query",
12241	//       "type": "string"
12242	//     },
12243	//     "tableId": {
12244	//       "description": "Table ID of the table to read",
12245	//       "location": "path",
12246	//       "required": true,
12247	//       "type": "string"
12248	//     }
12249	//   },
12250	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data",
12251	//   "response": {
12252	//     "$ref": "TableDataList"
12253	//   },
12254	//   "scopes": [
12255	//     "https://www.googleapis.com/auth/bigquery",
12256	//     "https://www.googleapis.com/auth/bigquery.readonly",
12257	//     "https://www.googleapis.com/auth/cloud-platform",
12258	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12259	//   ]
12260	// }
12261
12262}
12263
12264// Pages invokes f for each page of results.
12265// A non-nil error returned from f will halt the iteration.
12266// The provided context supersedes any context provided to the Context method.
12267func (c *TabledataListCall) Pages(ctx context.Context, f func(*TableDataList) error) error {
12268	c.ctx_ = ctx
12269	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
12270	for {
12271		x, err := c.Do()
12272		if err != nil {
12273			return err
12274		}
12275		if err := f(x); err != nil {
12276			return err
12277		}
12278		if x.PageToken == "" {
12279			return nil
12280		}
12281		c.PageToken(x.PageToken)
12282	}
12283}
12284
12285// method id "bigquery.tables.delete":
12286
12287type TablesDeleteCall struct {
12288	s          *Service
12289	projectId  string
12290	datasetId  string
12291	tableId    string
12292	urlParams_ gensupport.URLParams
12293	ctx_       context.Context
12294	header_    http.Header
12295}
12296
12297// Delete: Deletes the table specified by tableId from the dataset. If
12298// the table contains data, all the data will be deleted.
12299func (r *TablesService) Delete(projectId string, datasetId string, tableId string) *TablesDeleteCall {
12300	c := &TablesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12301	c.projectId = projectId
12302	c.datasetId = datasetId
12303	c.tableId = tableId
12304	return c
12305}
12306
12307// Fields allows partial responses to be retrieved. See
12308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12309// for more information.
12310func (c *TablesDeleteCall) Fields(s ...googleapi.Field) *TablesDeleteCall {
12311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12312	return c
12313}
12314
12315// Context sets the context to be used in this call's Do method. Any
12316// pending HTTP request will be aborted if the provided context is
12317// canceled.
12318func (c *TablesDeleteCall) Context(ctx context.Context) *TablesDeleteCall {
12319	c.ctx_ = ctx
12320	return c
12321}
12322
12323// Header returns an http.Header that can be modified by the caller to
12324// add HTTP headers to the request.
12325func (c *TablesDeleteCall) Header() http.Header {
12326	if c.header_ == nil {
12327		c.header_ = make(http.Header)
12328	}
12329	return c.header_
12330}
12331
12332func (c *TablesDeleteCall) doRequest(alt string) (*http.Response, error) {
12333	reqHeaders := make(http.Header)
12334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12335	for k, v := range c.header_ {
12336		reqHeaders[k] = v
12337	}
12338	reqHeaders.Set("User-Agent", c.s.userAgent())
12339	var body io.Reader = nil
12340	c.urlParams_.Set("alt", alt)
12341	c.urlParams_.Set("prettyPrint", "false")
12342	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
12343	urls += "?" + c.urlParams_.Encode()
12344	req, err := http.NewRequest("DELETE", urls, body)
12345	if err != nil {
12346		return nil, err
12347	}
12348	req.Header = reqHeaders
12349	googleapi.Expand(req.URL, map[string]string{
12350		"projectId": c.projectId,
12351		"datasetId": c.datasetId,
12352		"tableId":   c.tableId,
12353	})
12354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12355}
12356
12357// Do executes the "bigquery.tables.delete" call.
12358func (c *TablesDeleteCall) Do(opts ...googleapi.CallOption) error {
12359	gensupport.SetOptions(c.urlParams_, opts...)
12360	res, err := c.doRequest("json")
12361	if err != nil {
12362		return err
12363	}
12364	defer googleapi.CloseBody(res)
12365	if err := googleapi.CheckResponse(res); err != nil {
12366		return err
12367	}
12368	return nil
12369	// {
12370	//   "description": "Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.",
12371	//   "httpMethod": "DELETE",
12372	//   "id": "bigquery.tables.delete",
12373	//   "parameterOrder": [
12374	//     "projectId",
12375	//     "datasetId",
12376	//     "tableId"
12377	//   ],
12378	//   "parameters": {
12379	//     "datasetId": {
12380	//       "description": "Dataset ID of the table to delete",
12381	//       "location": "path",
12382	//       "required": true,
12383	//       "type": "string"
12384	//     },
12385	//     "projectId": {
12386	//       "description": "Project ID of the table to delete",
12387	//       "location": "path",
12388	//       "required": true,
12389	//       "type": "string"
12390	//     },
12391	//     "tableId": {
12392	//       "description": "Table ID of the table to delete",
12393	//       "location": "path",
12394	//       "required": true,
12395	//       "type": "string"
12396	//     }
12397	//   },
12398	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
12399	//   "scopes": [
12400	//     "https://www.googleapis.com/auth/bigquery",
12401	//     "https://www.googleapis.com/auth/cloud-platform"
12402	//   ]
12403	// }
12404
12405}
12406
12407// method id "bigquery.tables.get":
12408
12409type TablesGetCall struct {
12410	s            *Service
12411	projectId    string
12412	datasetId    string
12413	tableId      string
12414	urlParams_   gensupport.URLParams
12415	ifNoneMatch_ string
12416	ctx_         context.Context
12417	header_      http.Header
12418}
12419
12420// Get: Gets the specified table resource by table ID. This method does
12421// not return the data in the table, it only returns the table resource,
12422// which describes the structure of this table.
12423func (r *TablesService) Get(projectId string, datasetId string, tableId string) *TablesGetCall {
12424	c := &TablesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12425	c.projectId = projectId
12426	c.datasetId = datasetId
12427	c.tableId = tableId
12428	return c
12429}
12430
12431// SelectedFields sets the optional parameter "selectedFields": List of
12432// fields to return (comma-separated). If unspecified, all fields are
12433// returned
12434func (c *TablesGetCall) SelectedFields(selectedFields string) *TablesGetCall {
12435	c.urlParams_.Set("selectedFields", selectedFields)
12436	return c
12437}
12438
12439// Fields allows partial responses to be retrieved. See
12440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12441// for more information.
12442func (c *TablesGetCall) Fields(s ...googleapi.Field) *TablesGetCall {
12443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12444	return c
12445}
12446
12447// IfNoneMatch sets the optional parameter which makes the operation
12448// fail if the object's ETag matches the given value. This is useful for
12449// getting updates only after the object has changed since the last
12450// request. Use googleapi.IsNotModified to check whether the response
12451// error from Do is the result of In-None-Match.
12452func (c *TablesGetCall) IfNoneMatch(entityTag string) *TablesGetCall {
12453	c.ifNoneMatch_ = entityTag
12454	return c
12455}
12456
12457// Context sets the context to be used in this call's Do method. Any
12458// pending HTTP request will be aborted if the provided context is
12459// canceled.
12460func (c *TablesGetCall) Context(ctx context.Context) *TablesGetCall {
12461	c.ctx_ = ctx
12462	return c
12463}
12464
12465// Header returns an http.Header that can be modified by the caller to
12466// add HTTP headers to the request.
12467func (c *TablesGetCall) Header() http.Header {
12468	if c.header_ == nil {
12469		c.header_ = make(http.Header)
12470	}
12471	return c.header_
12472}
12473
12474func (c *TablesGetCall) doRequest(alt string) (*http.Response, error) {
12475	reqHeaders := make(http.Header)
12476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12477	for k, v := range c.header_ {
12478		reqHeaders[k] = v
12479	}
12480	reqHeaders.Set("User-Agent", c.s.userAgent())
12481	if c.ifNoneMatch_ != "" {
12482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12483	}
12484	var body io.Reader = nil
12485	c.urlParams_.Set("alt", alt)
12486	c.urlParams_.Set("prettyPrint", "false")
12487	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
12488	urls += "?" + c.urlParams_.Encode()
12489	req, err := http.NewRequest("GET", urls, body)
12490	if err != nil {
12491		return nil, err
12492	}
12493	req.Header = reqHeaders
12494	googleapi.Expand(req.URL, map[string]string{
12495		"projectId": c.projectId,
12496		"datasetId": c.datasetId,
12497		"tableId":   c.tableId,
12498	})
12499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12500}
12501
12502// Do executes the "bigquery.tables.get" call.
12503// Exactly one of *Table or error will be non-nil. Any non-2xx status
12504// code is an error. Response headers are in either
12505// *Table.ServerResponse.Header or (if a response was returned at all)
12506// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12507// check whether the returned error was because http.StatusNotModified
12508// was returned.
12509func (c *TablesGetCall) Do(opts ...googleapi.CallOption) (*Table, error) {
12510	gensupport.SetOptions(c.urlParams_, opts...)
12511	res, err := c.doRequest("json")
12512	if res != nil && res.StatusCode == http.StatusNotModified {
12513		if res.Body != nil {
12514			res.Body.Close()
12515		}
12516		return nil, &googleapi.Error{
12517			Code:   res.StatusCode,
12518			Header: res.Header,
12519		}
12520	}
12521	if err != nil {
12522		return nil, err
12523	}
12524	defer googleapi.CloseBody(res)
12525	if err := googleapi.CheckResponse(res); err != nil {
12526		return nil, err
12527	}
12528	ret := &Table{
12529		ServerResponse: googleapi.ServerResponse{
12530			Header:         res.Header,
12531			HTTPStatusCode: res.StatusCode,
12532		},
12533	}
12534	target := &ret
12535	if err := gensupport.DecodeResponse(target, res); err != nil {
12536		return nil, err
12537	}
12538	return ret, nil
12539	// {
12540	//   "description": "Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.",
12541	//   "httpMethod": "GET",
12542	//   "id": "bigquery.tables.get",
12543	//   "parameterOrder": [
12544	//     "projectId",
12545	//     "datasetId",
12546	//     "tableId"
12547	//   ],
12548	//   "parameters": {
12549	//     "datasetId": {
12550	//       "description": "Dataset ID of the requested table",
12551	//       "location": "path",
12552	//       "required": true,
12553	//       "type": "string"
12554	//     },
12555	//     "projectId": {
12556	//       "description": "Project ID of the requested table",
12557	//       "location": "path",
12558	//       "required": true,
12559	//       "type": "string"
12560	//     },
12561	//     "selectedFields": {
12562	//       "description": "List of fields to return (comma-separated). If unspecified, all fields are returned",
12563	//       "location": "query",
12564	//       "type": "string"
12565	//     },
12566	//     "tableId": {
12567	//       "description": "Table ID of the requested table",
12568	//       "location": "path",
12569	//       "required": true,
12570	//       "type": "string"
12571	//     }
12572	//   },
12573	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
12574	//   "response": {
12575	//     "$ref": "Table"
12576	//   },
12577	//   "scopes": [
12578	//     "https://www.googleapis.com/auth/bigquery",
12579	//     "https://www.googleapis.com/auth/bigquery.readonly",
12580	//     "https://www.googleapis.com/auth/cloud-platform",
12581	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12582	//   ]
12583	// }
12584
12585}
12586
12587// method id "bigquery.tables.getIamPolicy":
12588
12589type TablesGetIamPolicyCall struct {
12590	s                   *Service
12591	resource            string
12592	getiampolicyrequest *GetIamPolicyRequest
12593	urlParams_          gensupport.URLParams
12594	ctx_                context.Context
12595	header_             http.Header
12596}
12597
12598// GetIamPolicy: Gets the access control policy for a resource. Returns
12599// an empty policy if the resource exists and does not have a policy
12600// set.
12601func (r *TablesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *TablesGetIamPolicyCall {
12602	c := &TablesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12603	c.resource = resource
12604	c.getiampolicyrequest = getiampolicyrequest
12605	return c
12606}
12607
12608// Fields allows partial responses to be retrieved. See
12609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12610// for more information.
12611func (c *TablesGetIamPolicyCall) Fields(s ...googleapi.Field) *TablesGetIamPolicyCall {
12612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12613	return c
12614}
12615
12616// Context sets the context to be used in this call's Do method. Any
12617// pending HTTP request will be aborted if the provided context is
12618// canceled.
12619func (c *TablesGetIamPolicyCall) Context(ctx context.Context) *TablesGetIamPolicyCall {
12620	c.ctx_ = ctx
12621	return c
12622}
12623
12624// Header returns an http.Header that can be modified by the caller to
12625// add HTTP headers to the request.
12626func (c *TablesGetIamPolicyCall) Header() http.Header {
12627	if c.header_ == nil {
12628		c.header_ = make(http.Header)
12629	}
12630	return c.header_
12631}
12632
12633func (c *TablesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
12634	reqHeaders := make(http.Header)
12635	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12636	for k, v := range c.header_ {
12637		reqHeaders[k] = v
12638	}
12639	reqHeaders.Set("User-Agent", c.s.userAgent())
12640	var body io.Reader = nil
12641	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
12642	if err != nil {
12643		return nil, err
12644	}
12645	reqHeaders.Set("Content-Type", "application/json")
12646	c.urlParams_.Set("alt", alt)
12647	c.urlParams_.Set("prettyPrint", "false")
12648	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:getIamPolicy")
12649	urls += "?" + c.urlParams_.Encode()
12650	req, err := http.NewRequest("POST", urls, body)
12651	if err != nil {
12652		return nil, err
12653	}
12654	req.Header = reqHeaders
12655	googleapi.Expand(req.URL, map[string]string{
12656		"resource": c.resource,
12657	})
12658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12659}
12660
12661// Do executes the "bigquery.tables.getIamPolicy" call.
12662// Exactly one of *Policy or error will be non-nil. Any non-2xx status
12663// code is an error. Response headers are in either
12664// *Policy.ServerResponse.Header or (if a response was returned at all)
12665// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12666// check whether the returned error was because http.StatusNotModified
12667// was returned.
12668func (c *TablesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
12669	gensupport.SetOptions(c.urlParams_, opts...)
12670	res, err := c.doRequest("json")
12671	if res != nil && res.StatusCode == http.StatusNotModified {
12672		if res.Body != nil {
12673			res.Body.Close()
12674		}
12675		return nil, &googleapi.Error{
12676			Code:   res.StatusCode,
12677			Header: res.Header,
12678		}
12679	}
12680	if err != nil {
12681		return nil, err
12682	}
12683	defer googleapi.CloseBody(res)
12684	if err := googleapi.CheckResponse(res); err != nil {
12685		return nil, err
12686	}
12687	ret := &Policy{
12688		ServerResponse: googleapi.ServerResponse{
12689			Header:         res.Header,
12690			HTTPStatusCode: res.StatusCode,
12691		},
12692	}
12693	target := &ret
12694	if err := gensupport.DecodeResponse(target, res); err != nil {
12695		return nil, err
12696	}
12697	return ret, nil
12698	// {
12699	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
12700	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:getIamPolicy",
12701	//   "httpMethod": "POST",
12702	//   "id": "bigquery.tables.getIamPolicy",
12703	//   "parameterOrder": [
12704	//     "resource"
12705	//   ],
12706	//   "parameters": {
12707	//     "resource": {
12708	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
12709	//       "location": "path",
12710	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
12711	//       "required": true,
12712	//       "type": "string"
12713	//     }
12714	//   },
12715	//   "path": "{+resource}:getIamPolicy",
12716	//   "request": {
12717	//     "$ref": "GetIamPolicyRequest"
12718	//   },
12719	//   "response": {
12720	//     "$ref": "Policy"
12721	//   },
12722	//   "scopes": [
12723	//     "https://www.googleapis.com/auth/bigquery",
12724	//     "https://www.googleapis.com/auth/bigquery.readonly",
12725	//     "https://www.googleapis.com/auth/cloud-platform",
12726	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12727	//   ]
12728	// }
12729
12730}
12731
12732// method id "bigquery.tables.insert":
12733
12734type TablesInsertCall struct {
12735	s          *Service
12736	projectId  string
12737	datasetId  string
12738	table      *Table
12739	urlParams_ gensupport.URLParams
12740	ctx_       context.Context
12741	header_    http.Header
12742}
12743
12744// Insert: Creates a new, empty table in the dataset.
12745func (r *TablesService) Insert(projectId string, datasetId string, table *Table) *TablesInsertCall {
12746	c := &TablesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12747	c.projectId = projectId
12748	c.datasetId = datasetId
12749	c.table = table
12750	return c
12751}
12752
12753// Fields allows partial responses to be retrieved. See
12754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12755// for more information.
12756func (c *TablesInsertCall) Fields(s ...googleapi.Field) *TablesInsertCall {
12757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12758	return c
12759}
12760
12761// Context sets the context to be used in this call's Do method. Any
12762// pending HTTP request will be aborted if the provided context is
12763// canceled.
12764func (c *TablesInsertCall) Context(ctx context.Context) *TablesInsertCall {
12765	c.ctx_ = ctx
12766	return c
12767}
12768
12769// Header returns an http.Header that can be modified by the caller to
12770// add HTTP headers to the request.
12771func (c *TablesInsertCall) Header() http.Header {
12772	if c.header_ == nil {
12773		c.header_ = make(http.Header)
12774	}
12775	return c.header_
12776}
12777
12778func (c *TablesInsertCall) doRequest(alt string) (*http.Response, error) {
12779	reqHeaders := make(http.Header)
12780	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12781	for k, v := range c.header_ {
12782		reqHeaders[k] = v
12783	}
12784	reqHeaders.Set("User-Agent", c.s.userAgent())
12785	var body io.Reader = nil
12786	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
12787	if err != nil {
12788		return nil, err
12789	}
12790	reqHeaders.Set("Content-Type", "application/json")
12791	c.urlParams_.Set("alt", alt)
12792	c.urlParams_.Set("prettyPrint", "false")
12793	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables")
12794	urls += "?" + c.urlParams_.Encode()
12795	req, err := http.NewRequest("POST", urls, body)
12796	if err != nil {
12797		return nil, err
12798	}
12799	req.Header = reqHeaders
12800	googleapi.Expand(req.URL, map[string]string{
12801		"projectId": c.projectId,
12802		"datasetId": c.datasetId,
12803	})
12804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12805}
12806
12807// Do executes the "bigquery.tables.insert" call.
12808// Exactly one of *Table or error will be non-nil. Any non-2xx status
12809// code is an error. Response headers are in either
12810// *Table.ServerResponse.Header or (if a response was returned at all)
12811// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12812// check whether the returned error was because http.StatusNotModified
12813// was returned.
12814func (c *TablesInsertCall) Do(opts ...googleapi.CallOption) (*Table, error) {
12815	gensupport.SetOptions(c.urlParams_, opts...)
12816	res, err := c.doRequest("json")
12817	if res != nil && res.StatusCode == http.StatusNotModified {
12818		if res.Body != nil {
12819			res.Body.Close()
12820		}
12821		return nil, &googleapi.Error{
12822			Code:   res.StatusCode,
12823			Header: res.Header,
12824		}
12825	}
12826	if err != nil {
12827		return nil, err
12828	}
12829	defer googleapi.CloseBody(res)
12830	if err := googleapi.CheckResponse(res); err != nil {
12831		return nil, err
12832	}
12833	ret := &Table{
12834		ServerResponse: googleapi.ServerResponse{
12835			Header:         res.Header,
12836			HTTPStatusCode: res.StatusCode,
12837		},
12838	}
12839	target := &ret
12840	if err := gensupport.DecodeResponse(target, res); err != nil {
12841		return nil, err
12842	}
12843	return ret, nil
12844	// {
12845	//   "description": "Creates a new, empty table in the dataset.",
12846	//   "httpMethod": "POST",
12847	//   "id": "bigquery.tables.insert",
12848	//   "parameterOrder": [
12849	//     "projectId",
12850	//     "datasetId"
12851	//   ],
12852	//   "parameters": {
12853	//     "datasetId": {
12854	//       "description": "Dataset ID of the new table",
12855	//       "location": "path",
12856	//       "required": true,
12857	//       "type": "string"
12858	//     },
12859	//     "projectId": {
12860	//       "description": "Project ID of the new table",
12861	//       "location": "path",
12862	//       "required": true,
12863	//       "type": "string"
12864	//     }
12865	//   },
12866	//   "path": "projects/{projectId}/datasets/{datasetId}/tables",
12867	//   "request": {
12868	//     "$ref": "Table"
12869	//   },
12870	//   "response": {
12871	//     "$ref": "Table"
12872	//   },
12873	//   "scopes": [
12874	//     "https://www.googleapis.com/auth/bigquery",
12875	//     "https://www.googleapis.com/auth/cloud-platform"
12876	//   ]
12877	// }
12878
12879}
12880
12881// method id "bigquery.tables.list":
12882
12883type TablesListCall struct {
12884	s            *Service
12885	projectId    string
12886	datasetId    string
12887	urlParams_   gensupport.URLParams
12888	ifNoneMatch_ string
12889	ctx_         context.Context
12890	header_      http.Header
12891}
12892
12893// List: Lists all tables in the specified dataset. Requires the READER
12894// dataset role.
12895func (r *TablesService) List(projectId string, datasetId string) *TablesListCall {
12896	c := &TablesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12897	c.projectId = projectId
12898	c.datasetId = datasetId
12899	return c
12900}
12901
12902// MaxResults sets the optional parameter "maxResults": Maximum number
12903// of results to return
12904func (c *TablesListCall) MaxResults(maxResults int64) *TablesListCall {
12905	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
12906	return c
12907}
12908
12909// PageToken sets the optional parameter "pageToken": Page token,
12910// returned by a previous call, to request the next page of results
12911func (c *TablesListCall) PageToken(pageToken string) *TablesListCall {
12912	c.urlParams_.Set("pageToken", pageToken)
12913	return c
12914}
12915
12916// Fields allows partial responses to be retrieved. See
12917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12918// for more information.
12919func (c *TablesListCall) Fields(s ...googleapi.Field) *TablesListCall {
12920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12921	return c
12922}
12923
12924// IfNoneMatch sets the optional parameter which makes the operation
12925// fail if the object's ETag matches the given value. This is useful for
12926// getting updates only after the object has changed since the last
12927// request. Use googleapi.IsNotModified to check whether the response
12928// error from Do is the result of In-None-Match.
12929func (c *TablesListCall) IfNoneMatch(entityTag string) *TablesListCall {
12930	c.ifNoneMatch_ = entityTag
12931	return c
12932}
12933
12934// Context sets the context to be used in this call's Do method. Any
12935// pending HTTP request will be aborted if the provided context is
12936// canceled.
12937func (c *TablesListCall) Context(ctx context.Context) *TablesListCall {
12938	c.ctx_ = ctx
12939	return c
12940}
12941
12942// Header returns an http.Header that can be modified by the caller to
12943// add HTTP headers to the request.
12944func (c *TablesListCall) Header() http.Header {
12945	if c.header_ == nil {
12946		c.header_ = make(http.Header)
12947	}
12948	return c.header_
12949}
12950
12951func (c *TablesListCall) doRequest(alt string) (*http.Response, error) {
12952	reqHeaders := make(http.Header)
12953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12954	for k, v := range c.header_ {
12955		reqHeaders[k] = v
12956	}
12957	reqHeaders.Set("User-Agent", c.s.userAgent())
12958	if c.ifNoneMatch_ != "" {
12959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12960	}
12961	var body io.Reader = nil
12962	c.urlParams_.Set("alt", alt)
12963	c.urlParams_.Set("prettyPrint", "false")
12964	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables")
12965	urls += "?" + c.urlParams_.Encode()
12966	req, err := http.NewRequest("GET", urls, body)
12967	if err != nil {
12968		return nil, err
12969	}
12970	req.Header = reqHeaders
12971	googleapi.Expand(req.URL, map[string]string{
12972		"projectId": c.projectId,
12973		"datasetId": c.datasetId,
12974	})
12975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12976}
12977
12978// Do executes the "bigquery.tables.list" call.
12979// Exactly one of *TableList or error will be non-nil. Any non-2xx
12980// status code is an error. Response headers are in either
12981// *TableList.ServerResponse.Header or (if a response was returned at
12982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12983// to check whether the returned error was because
12984// http.StatusNotModified was returned.
12985func (c *TablesListCall) Do(opts ...googleapi.CallOption) (*TableList, error) {
12986	gensupport.SetOptions(c.urlParams_, opts...)
12987	res, err := c.doRequest("json")
12988	if res != nil && res.StatusCode == http.StatusNotModified {
12989		if res.Body != nil {
12990			res.Body.Close()
12991		}
12992		return nil, &googleapi.Error{
12993			Code:   res.StatusCode,
12994			Header: res.Header,
12995		}
12996	}
12997	if err != nil {
12998		return nil, err
12999	}
13000	defer googleapi.CloseBody(res)
13001	if err := googleapi.CheckResponse(res); err != nil {
13002		return nil, err
13003	}
13004	ret := &TableList{
13005		ServerResponse: googleapi.ServerResponse{
13006			Header:         res.Header,
13007			HTTPStatusCode: res.StatusCode,
13008		},
13009	}
13010	target := &ret
13011	if err := gensupport.DecodeResponse(target, res); err != nil {
13012		return nil, err
13013	}
13014	return ret, nil
13015	// {
13016	//   "description": "Lists all tables in the specified dataset. Requires the READER dataset role.",
13017	//   "httpMethod": "GET",
13018	//   "id": "bigquery.tables.list",
13019	//   "parameterOrder": [
13020	//     "projectId",
13021	//     "datasetId"
13022	//   ],
13023	//   "parameters": {
13024	//     "datasetId": {
13025	//       "description": "Dataset ID of the tables to list",
13026	//       "location": "path",
13027	//       "required": true,
13028	//       "type": "string"
13029	//     },
13030	//     "maxResults": {
13031	//       "description": "Maximum number of results to return",
13032	//       "format": "uint32",
13033	//       "location": "query",
13034	//       "type": "integer"
13035	//     },
13036	//     "pageToken": {
13037	//       "description": "Page token, returned by a previous call, to request the next page of results",
13038	//       "location": "query",
13039	//       "type": "string"
13040	//     },
13041	//     "projectId": {
13042	//       "description": "Project ID of the tables to list",
13043	//       "location": "path",
13044	//       "required": true,
13045	//       "type": "string"
13046	//     }
13047	//   },
13048	//   "path": "projects/{projectId}/datasets/{datasetId}/tables",
13049	//   "response": {
13050	//     "$ref": "TableList"
13051	//   },
13052	//   "scopes": [
13053	//     "https://www.googleapis.com/auth/bigquery",
13054	//     "https://www.googleapis.com/auth/bigquery.readonly",
13055	//     "https://www.googleapis.com/auth/cloud-platform",
13056	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
13057	//   ]
13058	// }
13059
13060}
13061
13062// Pages invokes f for each page of results.
13063// A non-nil error returned from f will halt the iteration.
13064// The provided context supersedes any context provided to the Context method.
13065func (c *TablesListCall) Pages(ctx context.Context, f func(*TableList) error) error {
13066	c.ctx_ = ctx
13067	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
13068	for {
13069		x, err := c.Do()
13070		if err != nil {
13071			return err
13072		}
13073		if err := f(x); err != nil {
13074			return err
13075		}
13076		if x.NextPageToken == "" {
13077			return nil
13078		}
13079		c.PageToken(x.NextPageToken)
13080	}
13081}
13082
13083// method id "bigquery.tables.patch":
13084
13085type TablesPatchCall struct {
13086	s          *Service
13087	projectId  string
13088	datasetId  string
13089	tableId    string
13090	table      *Table
13091	urlParams_ gensupport.URLParams
13092	ctx_       context.Context
13093	header_    http.Header
13094}
13095
13096// Patch: Updates information in an existing table. The update method
13097// replaces the entire table resource, whereas the patch method only
13098// replaces fields that are provided in the submitted table resource.
13099// This method supports patch semantics.
13100func (r *TablesService) Patch(projectId string, datasetId string, tableId string, table *Table) *TablesPatchCall {
13101	c := &TablesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13102	c.projectId = projectId
13103	c.datasetId = datasetId
13104	c.tableId = tableId
13105	c.table = table
13106	return c
13107}
13108
13109// Fields allows partial responses to be retrieved. See
13110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13111// for more information.
13112func (c *TablesPatchCall) Fields(s ...googleapi.Field) *TablesPatchCall {
13113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13114	return c
13115}
13116
13117// Context sets the context to be used in this call's Do method. Any
13118// pending HTTP request will be aborted if the provided context is
13119// canceled.
13120func (c *TablesPatchCall) Context(ctx context.Context) *TablesPatchCall {
13121	c.ctx_ = ctx
13122	return c
13123}
13124
13125// Header returns an http.Header that can be modified by the caller to
13126// add HTTP headers to the request.
13127func (c *TablesPatchCall) Header() http.Header {
13128	if c.header_ == nil {
13129		c.header_ = make(http.Header)
13130	}
13131	return c.header_
13132}
13133
13134func (c *TablesPatchCall) doRequest(alt string) (*http.Response, error) {
13135	reqHeaders := make(http.Header)
13136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13137	for k, v := range c.header_ {
13138		reqHeaders[k] = v
13139	}
13140	reqHeaders.Set("User-Agent", c.s.userAgent())
13141	var body io.Reader = nil
13142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
13143	if err != nil {
13144		return nil, err
13145	}
13146	reqHeaders.Set("Content-Type", "application/json")
13147	c.urlParams_.Set("alt", alt)
13148	c.urlParams_.Set("prettyPrint", "false")
13149	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
13150	urls += "?" + c.urlParams_.Encode()
13151	req, err := http.NewRequest("PATCH", urls, body)
13152	if err != nil {
13153		return nil, err
13154	}
13155	req.Header = reqHeaders
13156	googleapi.Expand(req.URL, map[string]string{
13157		"projectId": c.projectId,
13158		"datasetId": c.datasetId,
13159		"tableId":   c.tableId,
13160	})
13161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13162}
13163
13164// Do executes the "bigquery.tables.patch" call.
13165// Exactly one of *Table or error will be non-nil. Any non-2xx status
13166// code is an error. Response headers are in either
13167// *Table.ServerResponse.Header or (if a response was returned at all)
13168// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13169// check whether the returned error was because http.StatusNotModified
13170// was returned.
13171func (c *TablesPatchCall) Do(opts ...googleapi.CallOption) (*Table, error) {
13172	gensupport.SetOptions(c.urlParams_, opts...)
13173	res, err := c.doRequest("json")
13174	if res != nil && res.StatusCode == http.StatusNotModified {
13175		if res.Body != nil {
13176			res.Body.Close()
13177		}
13178		return nil, &googleapi.Error{
13179			Code:   res.StatusCode,
13180			Header: res.Header,
13181		}
13182	}
13183	if err != nil {
13184		return nil, err
13185	}
13186	defer googleapi.CloseBody(res)
13187	if err := googleapi.CheckResponse(res); err != nil {
13188		return nil, err
13189	}
13190	ret := &Table{
13191		ServerResponse: googleapi.ServerResponse{
13192			Header:         res.Header,
13193			HTTPStatusCode: res.StatusCode,
13194		},
13195	}
13196	target := &ret
13197	if err := gensupport.DecodeResponse(target, res); err != nil {
13198		return nil, err
13199	}
13200	return ret, nil
13201	// {
13202	//   "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.",
13203	//   "httpMethod": "PATCH",
13204	//   "id": "bigquery.tables.patch",
13205	//   "parameterOrder": [
13206	//     "projectId",
13207	//     "datasetId",
13208	//     "tableId"
13209	//   ],
13210	//   "parameters": {
13211	//     "datasetId": {
13212	//       "description": "Dataset ID of the table to update",
13213	//       "location": "path",
13214	//       "required": true,
13215	//       "type": "string"
13216	//     },
13217	//     "projectId": {
13218	//       "description": "Project ID of the table to update",
13219	//       "location": "path",
13220	//       "required": true,
13221	//       "type": "string"
13222	//     },
13223	//     "tableId": {
13224	//       "description": "Table ID of the table to update",
13225	//       "location": "path",
13226	//       "required": true,
13227	//       "type": "string"
13228	//     }
13229	//   },
13230	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
13231	//   "request": {
13232	//     "$ref": "Table"
13233	//   },
13234	//   "response": {
13235	//     "$ref": "Table"
13236	//   },
13237	//   "scopes": [
13238	//     "https://www.googleapis.com/auth/bigquery",
13239	//     "https://www.googleapis.com/auth/cloud-platform"
13240	//   ]
13241	// }
13242
13243}
13244
13245// method id "bigquery.tables.setIamPolicy":
13246
13247type TablesSetIamPolicyCall struct {
13248	s                   *Service
13249	resource            string
13250	setiampolicyrequest *SetIamPolicyRequest
13251	urlParams_          gensupport.URLParams
13252	ctx_                context.Context
13253	header_             http.Header
13254}
13255
13256// SetIamPolicy: Sets the access control policy on the specified
13257// resource. Replaces any existing policy. Can return `NOT_FOUND`,
13258// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
13259func (r *TablesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *TablesSetIamPolicyCall {
13260	c := &TablesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13261	c.resource = resource
13262	c.setiampolicyrequest = setiampolicyrequest
13263	return c
13264}
13265
13266// Fields allows partial responses to be retrieved. See
13267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13268// for more information.
13269func (c *TablesSetIamPolicyCall) Fields(s ...googleapi.Field) *TablesSetIamPolicyCall {
13270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13271	return c
13272}
13273
13274// Context sets the context to be used in this call's Do method. Any
13275// pending HTTP request will be aborted if the provided context is
13276// canceled.
13277func (c *TablesSetIamPolicyCall) Context(ctx context.Context) *TablesSetIamPolicyCall {
13278	c.ctx_ = ctx
13279	return c
13280}
13281
13282// Header returns an http.Header that can be modified by the caller to
13283// add HTTP headers to the request.
13284func (c *TablesSetIamPolicyCall) Header() http.Header {
13285	if c.header_ == nil {
13286		c.header_ = make(http.Header)
13287	}
13288	return c.header_
13289}
13290
13291func (c *TablesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
13292	reqHeaders := make(http.Header)
13293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13294	for k, v := range c.header_ {
13295		reqHeaders[k] = v
13296	}
13297	reqHeaders.Set("User-Agent", c.s.userAgent())
13298	var body io.Reader = nil
13299	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
13300	if err != nil {
13301		return nil, err
13302	}
13303	reqHeaders.Set("Content-Type", "application/json")
13304	c.urlParams_.Set("alt", alt)
13305	c.urlParams_.Set("prettyPrint", "false")
13306	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:setIamPolicy")
13307	urls += "?" + c.urlParams_.Encode()
13308	req, err := http.NewRequest("POST", urls, body)
13309	if err != nil {
13310		return nil, err
13311	}
13312	req.Header = reqHeaders
13313	googleapi.Expand(req.URL, map[string]string{
13314		"resource": c.resource,
13315	})
13316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13317}
13318
13319// Do executes the "bigquery.tables.setIamPolicy" call.
13320// Exactly one of *Policy or error will be non-nil. Any non-2xx status
13321// code is an error. Response headers are in either
13322// *Policy.ServerResponse.Header or (if a response was returned at all)
13323// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13324// check whether the returned error was because http.StatusNotModified
13325// was returned.
13326func (c *TablesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
13327	gensupport.SetOptions(c.urlParams_, opts...)
13328	res, err := c.doRequest("json")
13329	if res != nil && res.StatusCode == http.StatusNotModified {
13330		if res.Body != nil {
13331			res.Body.Close()
13332		}
13333		return nil, &googleapi.Error{
13334			Code:   res.StatusCode,
13335			Header: res.Header,
13336		}
13337	}
13338	if err != nil {
13339		return nil, err
13340	}
13341	defer googleapi.CloseBody(res)
13342	if err := googleapi.CheckResponse(res); err != nil {
13343		return nil, err
13344	}
13345	ret := &Policy{
13346		ServerResponse: googleapi.ServerResponse{
13347			Header:         res.Header,
13348			HTTPStatusCode: res.StatusCode,
13349		},
13350	}
13351	target := &ret
13352	if err := gensupport.DecodeResponse(target, res); err != nil {
13353		return nil, err
13354	}
13355	return ret, nil
13356	// {
13357	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
13358	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:setIamPolicy",
13359	//   "httpMethod": "POST",
13360	//   "id": "bigquery.tables.setIamPolicy",
13361	//   "parameterOrder": [
13362	//     "resource"
13363	//   ],
13364	//   "parameters": {
13365	//     "resource": {
13366	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
13367	//       "location": "path",
13368	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
13369	//       "required": true,
13370	//       "type": "string"
13371	//     }
13372	//   },
13373	//   "path": "{+resource}:setIamPolicy",
13374	//   "request": {
13375	//     "$ref": "SetIamPolicyRequest"
13376	//   },
13377	//   "response": {
13378	//     "$ref": "Policy"
13379	//   },
13380	//   "scopes": [
13381	//     "https://www.googleapis.com/auth/bigquery",
13382	//     "https://www.googleapis.com/auth/cloud-platform"
13383	//   ]
13384	// }
13385
13386}
13387
13388// method id "bigquery.tables.testIamPermissions":
13389
13390type TablesTestIamPermissionsCall struct {
13391	s                         *Service
13392	resource                  string
13393	testiampermissionsrequest *TestIamPermissionsRequest
13394	urlParams_                gensupport.URLParams
13395	ctx_                      context.Context
13396	header_                   http.Header
13397}
13398
13399// TestIamPermissions: Returns permissions that a caller has on the
13400// specified resource. If the resource does not exist, this will return
13401// an empty set of permissions, not a `NOT_FOUND` error. Note: This
13402// operation is designed to be used for building permission-aware UIs
13403// and command-line tools, not for authorization checking. This
13404// operation may "fail open" without warning.
13405func (r *TablesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *TablesTestIamPermissionsCall {
13406	c := &TablesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13407	c.resource = resource
13408	c.testiampermissionsrequest = testiampermissionsrequest
13409	return c
13410}
13411
13412// Fields allows partial responses to be retrieved. See
13413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13414// for more information.
13415func (c *TablesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TablesTestIamPermissionsCall {
13416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13417	return c
13418}
13419
13420// Context sets the context to be used in this call's Do method. Any
13421// pending HTTP request will be aborted if the provided context is
13422// canceled.
13423func (c *TablesTestIamPermissionsCall) Context(ctx context.Context) *TablesTestIamPermissionsCall {
13424	c.ctx_ = ctx
13425	return c
13426}
13427
13428// Header returns an http.Header that can be modified by the caller to
13429// add HTTP headers to the request.
13430func (c *TablesTestIamPermissionsCall) Header() http.Header {
13431	if c.header_ == nil {
13432		c.header_ = make(http.Header)
13433	}
13434	return c.header_
13435}
13436
13437func (c *TablesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
13438	reqHeaders := make(http.Header)
13439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13440	for k, v := range c.header_ {
13441		reqHeaders[k] = v
13442	}
13443	reqHeaders.Set("User-Agent", c.s.userAgent())
13444	var body io.Reader = nil
13445	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
13446	if err != nil {
13447		return nil, err
13448	}
13449	reqHeaders.Set("Content-Type", "application/json")
13450	c.urlParams_.Set("alt", alt)
13451	c.urlParams_.Set("prettyPrint", "false")
13452	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:testIamPermissions")
13453	urls += "?" + c.urlParams_.Encode()
13454	req, err := http.NewRequest("POST", urls, body)
13455	if err != nil {
13456		return nil, err
13457	}
13458	req.Header = reqHeaders
13459	googleapi.Expand(req.URL, map[string]string{
13460		"resource": c.resource,
13461	})
13462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13463}
13464
13465// Do executes the "bigquery.tables.testIamPermissions" call.
13466// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
13467// Any non-2xx status code is an error. Response headers are in either
13468// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
13469// was returned at all) in error.(*googleapi.Error).Header. Use
13470// googleapi.IsNotModified to check whether the returned error was
13471// because http.StatusNotModified was returned.
13472func (c *TablesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
13473	gensupport.SetOptions(c.urlParams_, opts...)
13474	res, err := c.doRequest("json")
13475	if res != nil && res.StatusCode == http.StatusNotModified {
13476		if res.Body != nil {
13477			res.Body.Close()
13478		}
13479		return nil, &googleapi.Error{
13480			Code:   res.StatusCode,
13481			Header: res.Header,
13482		}
13483	}
13484	if err != nil {
13485		return nil, err
13486	}
13487	defer googleapi.CloseBody(res)
13488	if err := googleapi.CheckResponse(res); err != nil {
13489		return nil, err
13490	}
13491	ret := &TestIamPermissionsResponse{
13492		ServerResponse: googleapi.ServerResponse{
13493			Header:         res.Header,
13494			HTTPStatusCode: res.StatusCode,
13495		},
13496	}
13497	target := &ret
13498	if err := gensupport.DecodeResponse(target, res); err != nil {
13499		return nil, err
13500	}
13501	return ret, nil
13502	// {
13503	//   "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
13504	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:testIamPermissions",
13505	//   "httpMethod": "POST",
13506	//   "id": "bigquery.tables.testIamPermissions",
13507	//   "parameterOrder": [
13508	//     "resource"
13509	//   ],
13510	//   "parameters": {
13511	//     "resource": {
13512	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
13513	//       "location": "path",
13514	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
13515	//       "required": true,
13516	//       "type": "string"
13517	//     }
13518	//   },
13519	//   "path": "{+resource}:testIamPermissions",
13520	//   "request": {
13521	//     "$ref": "TestIamPermissionsRequest"
13522	//   },
13523	//   "response": {
13524	//     "$ref": "TestIamPermissionsResponse"
13525	//   },
13526	//   "scopes": [
13527	//     "https://www.googleapis.com/auth/bigquery",
13528	//     "https://www.googleapis.com/auth/bigquery.readonly",
13529	//     "https://www.googleapis.com/auth/cloud-platform",
13530	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
13531	//   ]
13532	// }
13533
13534}
13535
13536// method id "bigquery.tables.update":
13537
13538type TablesUpdateCall struct {
13539	s          *Service
13540	projectId  string
13541	datasetId  string
13542	tableId    string
13543	table      *Table
13544	urlParams_ gensupport.URLParams
13545	ctx_       context.Context
13546	header_    http.Header
13547}
13548
13549// Update: Updates information in an existing table. The update method
13550// replaces the entire table resource, whereas the patch method only
13551// replaces fields that are provided in the submitted table resource.
13552func (r *TablesService) Update(projectId string, datasetId string, tableId string, table *Table) *TablesUpdateCall {
13553	c := &TablesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13554	c.projectId = projectId
13555	c.datasetId = datasetId
13556	c.tableId = tableId
13557	c.table = table
13558	return c
13559}
13560
13561// Fields allows partial responses to be retrieved. See
13562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13563// for more information.
13564func (c *TablesUpdateCall) Fields(s ...googleapi.Field) *TablesUpdateCall {
13565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13566	return c
13567}
13568
13569// Context sets the context to be used in this call's Do method. Any
13570// pending HTTP request will be aborted if the provided context is
13571// canceled.
13572func (c *TablesUpdateCall) Context(ctx context.Context) *TablesUpdateCall {
13573	c.ctx_ = ctx
13574	return c
13575}
13576
13577// Header returns an http.Header that can be modified by the caller to
13578// add HTTP headers to the request.
13579func (c *TablesUpdateCall) Header() http.Header {
13580	if c.header_ == nil {
13581		c.header_ = make(http.Header)
13582	}
13583	return c.header_
13584}
13585
13586func (c *TablesUpdateCall) doRequest(alt string) (*http.Response, error) {
13587	reqHeaders := make(http.Header)
13588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13589	for k, v := range c.header_ {
13590		reqHeaders[k] = v
13591	}
13592	reqHeaders.Set("User-Agent", c.s.userAgent())
13593	var body io.Reader = nil
13594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
13595	if err != nil {
13596		return nil, err
13597	}
13598	reqHeaders.Set("Content-Type", "application/json")
13599	c.urlParams_.Set("alt", alt)
13600	c.urlParams_.Set("prettyPrint", "false")
13601	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
13602	urls += "?" + c.urlParams_.Encode()
13603	req, err := http.NewRequest("PUT", urls, body)
13604	if err != nil {
13605		return nil, err
13606	}
13607	req.Header = reqHeaders
13608	googleapi.Expand(req.URL, map[string]string{
13609		"projectId": c.projectId,
13610		"datasetId": c.datasetId,
13611		"tableId":   c.tableId,
13612	})
13613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13614}
13615
13616// Do executes the "bigquery.tables.update" call.
13617// Exactly one of *Table or error will be non-nil. Any non-2xx status
13618// code is an error. Response headers are in either
13619// *Table.ServerResponse.Header or (if a response was returned at all)
13620// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13621// check whether the returned error was because http.StatusNotModified
13622// was returned.
13623func (c *TablesUpdateCall) Do(opts ...googleapi.CallOption) (*Table, error) {
13624	gensupport.SetOptions(c.urlParams_, opts...)
13625	res, err := c.doRequest("json")
13626	if res != nil && res.StatusCode == http.StatusNotModified {
13627		if res.Body != nil {
13628			res.Body.Close()
13629		}
13630		return nil, &googleapi.Error{
13631			Code:   res.StatusCode,
13632			Header: res.Header,
13633		}
13634	}
13635	if err != nil {
13636		return nil, err
13637	}
13638	defer googleapi.CloseBody(res)
13639	if err := googleapi.CheckResponse(res); err != nil {
13640		return nil, err
13641	}
13642	ret := &Table{
13643		ServerResponse: googleapi.ServerResponse{
13644			Header:         res.Header,
13645			HTTPStatusCode: res.StatusCode,
13646		},
13647	}
13648	target := &ret
13649	if err := gensupport.DecodeResponse(target, res); err != nil {
13650		return nil, err
13651	}
13652	return ret, nil
13653	// {
13654	//   "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.",
13655	//   "httpMethod": "PUT",
13656	//   "id": "bigquery.tables.update",
13657	//   "parameterOrder": [
13658	//     "projectId",
13659	//     "datasetId",
13660	//     "tableId"
13661	//   ],
13662	//   "parameters": {
13663	//     "datasetId": {
13664	//       "description": "Dataset ID of the table to update",
13665	//       "location": "path",
13666	//       "required": true,
13667	//       "type": "string"
13668	//     },
13669	//     "projectId": {
13670	//       "description": "Project ID of the table to update",
13671	//       "location": "path",
13672	//       "required": true,
13673	//       "type": "string"
13674	//     },
13675	//     "tableId": {
13676	//       "description": "Table ID of the table to update",
13677	//       "location": "path",
13678	//       "required": true,
13679	//       "type": "string"
13680	//     }
13681	//   },
13682	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
13683	//   "request": {
13684	//     "$ref": "Table"
13685	//   },
13686	//   "response": {
13687	//     "$ref": "Table"
13688	//   },
13689	//   "scopes": [
13690	//     "https://www.googleapis.com/auth/bigquery",
13691	//     "https://www.googleapis.com/auth/cloud-platform"
13692	//   ]
13693	// }
13694
13695}
13696